From fe8e505446ac1c57defe1d9081b787769b077298 Mon Sep 17 00:00:00 2001
From: Le-Caignec
Date: Tue, 14 Oct 2025 23:27:55 +0200
Subject: [PATCH 1/6] feat: update dependencies and enhance Arbitrum Sepolia
support
---
package-lock.json | 34 +--
package.json | 4 +-
src/components/ChainNotSupportedBadge.vue | 4 +-
src/get-started/helloWorld/3-buildIApp.md | 99 ++++++++
src/get-started/helloWorld/5-bonusChapter.md | 2 +-
.../blockchain-explorer.md | 17 +-
.../build-iapp/advanced/result-callback.md | 21 +-
src/guides/build-iapp/deploy-&-run.md | 216 ++++++++++++++++++
src/modules/helloWorld/ProtectData.vue | 12 +-
.../iapp-generator/building-your-iexec-app.md | 6 +-
src/utils/chain.utils.ts | 18 +-
src/utils/wagmiNetworks.ts | 9 +-
12 files changed, 387 insertions(+), 55 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index ab28cdd4..1b43ef1c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8,9 +8,9 @@
"name": "iexec-documentation",
"version": "0.0.0",
"dependencies": {
- "@iexec/dataprotector": "^2.0.0-beta.19",
+ "@iexec/dataprotector": "^2.0.0-beta.20",
"@iexec/dataprotector-deserializer": "^0.1.1",
- "@iexec/web3mail": "^1.5.0",
+ "@iexec/web3mail": "^1.6.0",
"@iexec/web3telegram": "^0.1.0-alpha.4",
"@reown/appkit": "^1.7.17",
"@reown/appkit-adapter-wagmi": "^1.7.17",
@@ -801,9 +801,9 @@
}
},
"node_modules/@iexec/dataprotector": {
- "version": "2.0.0-beta.19",
- "resolved": "https://registry.npmjs.org/@iexec/dataprotector/-/dataprotector-2.0.0-beta.19.tgz",
- "integrity": "sha512-nKfM8H2AGFPmSHt96FhNSOIctqRWyQt34zh9chVeI7PSy6TVFQMnEV4rj1ce+O8yFO9TM/8YXxu+V2izBO00WQ==",
+ "version": "2.0.0-beta.20",
+ "resolved": "https://registry.npmjs.org/@iexec/dataprotector/-/dataprotector-2.0.0-beta.20.tgz",
+ "integrity": "sha512-SXBttatqJ7UUBosTH9P72F/F1i4yVtiiYY8fk7mjHqHwwJgBqdBfqIVSyDr65LHPFqcwAEfR7vLGGKIxZgXgaw==",
"license": "Apache-2.0",
"dependencies": {
"@ethersproject/bytes": "^5.7.0",
@@ -815,7 +815,7 @@
"debug": "^4.3.4",
"ethers": "^6.13.2",
"graphql-request": "^6.0.0",
- "iexec": "^8.18.0",
+ "iexec": "^8.20.0",
"jszip": "^3.7.1",
"kubo-rpc-client": "^4.1.1",
"magic-bytes.js": "^1.0.15",
@@ -890,9 +890,9 @@
}
},
"node_modules/@iexec/web3mail": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@iexec/web3mail/-/web3mail-1.5.0.tgz",
- "integrity": "sha512-ohgPocAidWreTOchamwMiuwIt0Nns290vS/KbcLbhOB4ZUDtQGS8V5lES3s9WUZjMvf+bWByN4RQdoaNhgIPAw==",
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/@iexec/web3mail/-/web3mail-1.6.0.tgz",
+ "integrity": "sha512-+RgPAbBHgWaDXncT/C/llrDAxwq6pclaE77mbh6nDMbR71C8G5IaBCh+4AgDVPXg5AzuXztCc7mQbUVEy2HQXQ==",
"license": "Apache-2.0",
"dependencies": {
"@ethersproject/bytes": "^5.7.0",
@@ -900,15 +900,15 @@
"buffer": "^6.0.3",
"ethers": "^6.13.2",
"graphql-request": "^6.1.0",
- "iexec": "^8.18.0",
+ "iexec": "^8.20.0",
"kubo-rpc-client": "^4.1.1",
"yup": "^1.1.1"
}
},
"node_modules/@iexec/web3telegram": {
- "version": "0.1.0-alpha.4",
- "resolved": "https://registry.npmjs.org/@iexec/web3telegram/-/web3telegram-0.1.0-alpha.4.tgz",
- "integrity": "sha512-JYWjLpV7Ufi8wjlHlwCOYnjHf1oRGh9GycfKuhIq2TZDK4JrEG/tUytMagakn3C9T0UOByrM9DM/hMMoxVcG6A==",
+ "version": "0.1.0-alpha.5",
+ "resolved": "https://registry.npmjs.org/@iexec/web3telegram/-/web3telegram-0.1.0-alpha.5.tgz",
+ "integrity": "sha512-QeNEr0zEAfdD3rMhsdJLnJJcXrJezRX11PmWLVNpGCzArjTy+wCpxBC8KgsAbnlkvWRwQdal7maupSOVbzfKVQ==",
"license": "Apache-2.0",
"dependencies": {
"@ethersproject/bytes": "^5.7.0",
@@ -916,7 +916,7 @@
"buffer": "^6.0.3",
"ethers": "^6.8.1",
"graphql-request": "^6.1.0",
- "iexec": "^8.18.0",
+ "iexec": "^8.20.0",
"kubo-rpc-client": "^4.1.3",
"yup": "^1.1.1"
}
@@ -8975,9 +8975,9 @@
"license": "BSD-3-Clause"
},
"node_modules/iexec": {
- "version": "8.18.0",
- "resolved": "https://registry.npmjs.org/iexec/-/iexec-8.18.0.tgz",
- "integrity": "sha512-lj2La67p0IKyCHhpV4F2SZD7kmE1AFhGmD26jf8si7/sTelrXun3wNTun6WAOEO9uMi49J0AlA6MxUNBxuCflg==",
+ "version": "8.20.0",
+ "resolved": "https://registry.npmjs.org/iexec/-/iexec-8.20.0.tgz",
+ "integrity": "sha512-ce0l1eJWqOj85kWXbUJ7yF6IhbHiHz1hRqLdDEAJhCvlIAArdyrwJcWtXz6gmuYoSQ0F8gkKvEWC/FHg4Gr/8w==",
"license": "Apache-2.0",
"dependencies": {
"@ensdomains/ens-contracts": "^1.2.5",
diff --git a/package.json b/package.json
index b2334164..faf1a13b 100644
--- a/package.json
+++ b/package.json
@@ -11,9 +11,9 @@
"format": "prettier --ignore-path .gitignore --write ."
},
"dependencies": {
- "@iexec/dataprotector": "^2.0.0-beta.19",
+ "@iexec/dataprotector": "^2.0.0-beta.20",
"@iexec/dataprotector-deserializer": "^0.1.1",
- "@iexec/web3mail": "^1.5.0",
+ "@iexec/web3mail": "^1.6.0",
"@iexec/web3telegram": "^0.1.0-alpha.4",
"@reown/appkit": "^1.7.17",
"@reown/appkit-adapter-wagmi": "^1.7.17",
diff --git a/src/components/ChainNotSupportedBadge.vue b/src/components/ChainNotSupportedBadge.vue
index d7f88c0b..3254743d 100644
--- a/src/components/ChainNotSupportedBadge.vue
+++ b/src/components/ChainNotSupportedBadge.vue
@@ -5,9 +5,9 @@ import useUserStore from '@/stores/useUser.store';
const userStore = useUserStore();
-// Check if Arbitrum is selected (Arbitrum chain ID is 42161)
+// Check if Arbitrum or Arbitrum Sepolia is selected (chain IDs are 42161 and 421614)
const isArbitrumSelected = computed(() => {
- return userStore.chainId === 42161;
+ return userStore.chainId === 42161 || userStore.chainId === 421614;
});
// Only show the badge when Arbitrum is selected
diff --git a/src/get-started/helloWorld/3-buildIApp.md b/src/get-started/helloWorld/3-buildIApp.md
index 11c428d4..f578e3b7 100644
--- a/src/get-started/helloWorld/3-buildIApp.md
+++ b/src/get-started/helloWorld/3-buildIApp.md
@@ -351,6 +351,19 @@ Once you have your token, you can deploy your iApp.
/>
+
+
+
+
diff --git a/src/get-started/helloWorld/5-bonusChapter.md b/src/get-started/helloWorld/5-bonusChapter.md
index d8320a9d..07847959 100644
--- a/src/get-started/helloWorld/5-bonusChapter.md
+++ b/src/get-started/helloWorld/5-bonusChapter.md
@@ -41,7 +41,7 @@ Community** for support!
-
+
## 🎁 Claim your Voucher
diff --git a/src/get-started/tooling-and-explorers/blockchain-explorer.md b/src/get-started/tooling-and-explorers/blockchain-explorer.md
index 064acc19..8590ac1f 100644
--- a/src/get-started/tooling-and-explorers/blockchain-explorer.md
+++ b/src/get-started/tooling-and-explorers/blockchain-explorer.md
@@ -7,7 +7,7 @@ description:
# 🔍 Blockchain Explorers
-Monitor iExec protocol smart contracts on both supported networks through
+Monitor iExec protocol smart contracts on all supported networks through
verified blockchain explorers. All protocol contracts have been verified and are
publicly auditable.
@@ -25,6 +25,17 @@ publicly auditable.
demo-label="Visit Arbiscan"
/>
+
+
-import { computed } from 'vue';
-import useUserStore from '@/stores/useUser.store';
-import { getChainById } from '@/utils/chain.utils';
-
-// Get current chain info
-const userStore = useUserStore();
-const selectedChain = computed(() => userStore.getCurrentChainId());
-const chainData = computed(() => getChainById(selectedChain.value));
-const chainName = computed(() => chainData.value.chainName);
-
-const gasLimit = computed(() => {
- const chainId = selectedChain.value;
- if (chainId === 42161) return '100,000'; // Arbitrum One
- if (chainId === 134) return '200,000'; // Bellecour
- return '100,000'; // default
-});
-
diff --git a/src/guides/build-iapp/deploy-&-run.md b/src/guides/build-iapp/deploy-&-run.md
index 0dfb1510..b098aa80 100644
--- a/src/guides/build-iapp/deploy-&-run.md
+++ b/src/guides/build-iapp/deploy-&-run.md
@@ -29,6 +29,19 @@ specify your app version, and push both standard and TEE-compatible images:
/>
+
+
+
+
+
+
+
+
diff --git a/src/modules/helloWorld/ProtectData.vue b/src/modules/helloWorld/ProtectData.vue
index 876fb8a5..d9f1e5f2 100644
--- a/src/modules/helloWorld/ProtectData.vue
+++ b/src/modules/helloWorld/ProtectData.vue
@@ -77,7 +77,9 @@
{{
userStore.getCurrentChainId() === 42161
? 'the Arbitrum explorer'
- : 'the iExec explorer'
+ : userStore.getCurrentChainId() === 421614
+ ? 'the Arbitrum Sepolia explorer'
+ : 'the iExec explorer'
}}
@@ -127,8 +129,12 @@ const protectError = ref(null);
// Computed property for explorer URL based on selected chain
const explorerUrl = computed(() => {
const currentChainId = userStore.getCurrentChainId();
- const networkPath =
- currentChainId === 42161 ? 'arbitrum-mainnet' : 'bellecour';
+ let networkPath = 'bellecour';
+ if (currentChainId === 42161) {
+ networkPath = 'arbitrum-mainnet';
+ } else if (currentChainId === 421614) {
+ networkPath = 'arbitrum-sepolia-testnet';
+ }
return `https://explorer.iex.ec/${networkPath}/dataset/${protectedDataAddress.value}`;
});
diff --git a/src/references/iapp-generator/building-your-iexec-app.md b/src/references/iapp-generator/building-your-iexec-app.md
index 28d1d405..6878bef4 100644
--- a/src/references/iapp-generator/building-your-iexec-app.md
+++ b/src/references/iapp-generator/building-your-iexec-app.md
@@ -150,7 +150,7 @@ templates through interactive prompts.
**Options**:
- `--chain ` – Specify the blockchain network for deployment (e.g.,
- `arbitrum-mainnet`, `bellecour`)
+ `arbitrum-mainnet`, `arbitrum-sepolia-testnet`, `bellecour`)
### `iapp run `
@@ -170,7 +170,7 @@ templates through interactive prompts.
- `--requesterSecret ` – Key-value requester secrets (`index=value`)
available inside the iApp at `$IEXEC_REQUESTER_SECRET_*`
- `--chain ` – Specify the blockchain network to run the iApp on (e.g.,
- `arbitrum-mainnet`, `bellecour`)
+ `arbitrum-mainnet`, `arbitrum-sepolia-testnet`, `bellecour`)
### `iapp debug `
@@ -183,7 +183,7 @@ templates through interactive prompts.
**Options**:
- `--chain ` – Specify the blockchain network of the task (e.g.,
- `arbitrum-mainnet`, `bellecour`)
+ `arbitrum-mainnet`, `arbitrum-sepolia-testnet`, `bellecour`)
### `iapp mock `
diff --git a/src/utils/chain.utils.ts b/src/utils/chain.utils.ts
index 5c8f4caa..afcba993 100644
--- a/src/utils/chain.utils.ts
+++ b/src/utils/chain.utils.ts
@@ -1,4 +1,4 @@
-import { arbitrum } from 'viem/chains';
+import { arbitrum, arbitrumSepolia } from 'viem/chains';
import { bellecour } from './wagmiNetworks';
import arbitrumLogo from '@/assets/icons/arbitrum.svg';
import iexecLogo from '@/assets/icons/iexec-logo.png';
@@ -51,6 +51,22 @@ export function getSupportedChains(): Chain[] {
web3TelegramAddress: '0xD8614ad70A73A426A15F6474EB4aE633e0015805',
web3TelegramAppWhitelist: '0x53AFc09a647e7D5Fa9BDC784Eb3623385C45eF89',
},
+ {
+ id: arbitrumSepolia.id,
+ name: arbitrumSepolia.name,
+ icon: arbitrumLogo,
+ nativeCurrency: arbitrumSepolia.nativeCurrency,
+ rpcUrls: arbitrumSepolia.rpcUrls,
+ blockExplorers: arbitrumSepolia.blockExplorers,
+ chainName: 'arbitrum-sepolia',
+ iexecExplorerUrl: 'https://explorer.iex.ec/arbitrum-sepolia-testnet',
+ workerpoolAddress: '0xB967057a21dc6A66A29721d96b8Aa7454B7c383F',
+ ipfsGateway: 'https://ipfs-gateway.arbitrum-sepolia-testnet.iex.ec',
+ web3MailAddress: '0x54f48937d1a26dd250dc8adbef07bc76f6e27df3',
+ web3MailAppWhitelist: '0x8d46d40840f1Aa2264F96184Ffadf04e5D573B9B',
+ web3TelegramAddress: '0x54cb7f6d417b2b29c2a4b2e95a66f670812c869d',
+ web3TelegramAppWhitelist: '0x7291ff96100DA6CF97933C225B86124ef95aEc9b',
+ },
{
id: Number(bellecour.id),
name: bellecour.name,
diff --git a/src/utils/wagmiNetworks.ts b/src/utils/wagmiNetworks.ts
index 310047c2..d9b15472 100644
--- a/src/utils/wagmiNetworks.ts
+++ b/src/utils/wagmiNetworks.ts
@@ -1,6 +1,8 @@
-import { AppKitNetwork, arbitrum } from '@reown/appkit/networks';
-
-export { arbitrum } from '@reown/appkit/networks';
+import {
+ AppKitNetwork,
+ arbitrum,
+ arbitrumSepolia,
+} from '@reown/appkit/networks';
export const bellecour: AppKitNetwork = {
id: 0x86,
@@ -26,6 +28,7 @@ export const bellecour: AppKitNetwork = {
const wagmiNetworks = {
bellecour,
arbitrum,
+ arbitrumSepolia,
};
export default wagmiNetworks;
From e1a16c3cc43c8cc172d28f2545887bb4fcafc422 Mon Sep 17 00:00:00 2001
From: Le-Caignec
Date: Tue, 14 Oct 2025 23:39:27 +0200
Subject: [PATCH 2/6] feat: add remainingAccess parameter to revokeOneAccess
method
---
src/references/dataProtector/methods/revokeOneAccess.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/references/dataProtector/methods/revokeOneAccess.md b/src/references/dataProtector/methods/revokeOneAccess.md
index fc85b386..778e30f2 100644
--- a/src/references/dataProtector/methods/revokeOneAccess.md
+++ b/src/references/dataProtector/methods/revokeOneAccess.md
@@ -38,6 +38,7 @@ const revokeAccess = await dataProtectorCore.revokeOneAccess({
tag: '0x0000000000000000000000000000000000000000000000000000000000000003',
volume: '1',
workerpoolrestrict: '0x000...',
+ remainingAccess: 1,
});
```
@@ -70,6 +71,7 @@ const revokeAccess = await dataProtectorCore.revokeOneAccess({
tag: '0x0000000000000000000000000000000000000000000000000000000000000003', // [!code focus]
volume: '1', // [!code focus]
workerpoolrestrict: '0x000...', // [!code focus]
+ remainingAccess: 1, // [!code focus]
});
```
From 1e94cb8a1c708a30f5dfe0e5e3d84487870576d8 Mon Sep 17 00:00:00 2001
From: Le-Caignec
Date: Wed, 15 Oct 2025 00:01:14 +0200
Subject: [PATCH 3/6] feat: enhance subgraph explorer with Arbitrum Sepolia
support and update deployment commands
---
.../subgraph-explorer.md | 25 ++++++++++++++++++-
src/guides/build-iapp/deploy-&-run.md | 8 +++---
2 files changed, 28 insertions(+), 5 deletions(-)
diff --git a/src/get-started/tooling-and-explorers/subgraph-explorer.md b/src/get-started/tooling-and-explorers/subgraph-explorer.md
index 99ed5848..29078baa 100644
--- a/src/get-started/tooling-and-explorers/subgraph-explorer.md
+++ b/src/get-started/tooling-and-explorers/subgraph-explorer.md
@@ -2,7 +2,8 @@
title: The Graph Explorer
description:
Explore and query blockchain data using The Graph's decentralized indexing
- protocol. Access iExec subgraphs on Arbitrum and Bellecour networks.
+ protocol. Access iExec subgraphs on Arbitrum, Arbitrum Sepolia, and Bellecour
+ networks.
---
# 🔍 The Graph Explorer
@@ -70,6 +71,28 @@ protocol.
button-rel="noreferrer"
/>
+
+
+
+
Date: Wed, 15 Oct 2025 08:47:31 +0200
Subject: [PATCH 4/6] Update src/guides/build-iapp/advanced/result-callback.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---
src/guides/build-iapp/advanced/result-callback.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/guides/build-iapp/advanced/result-callback.md b/src/guides/build-iapp/advanced/result-callback.md
index 26754a19..c707a4ac 100644
--- a/src/guides/build-iapp/advanced/result-callback.md
+++ b/src/guides/build-iapp/advanced/result-callback.md
@@ -59,7 +59,7 @@ contract IExecCallbackReceiver {
::: tip Important
-The callback transaction is subject to a gas limit of 200 000.
+The callback transaction is subject to a maximum gas limit of 200,000 enforced by the protocol.
Ensure your callback logic fits within this limit to avoid out-of-gas errors.
:::
From 5eb5dfda6b3041ab1efa6b61c8baa2fd1c4e59d4 Mon Sep 17 00:00:00 2001
From: Robin Le Caignec <72495599+Le-Caignec@users.noreply.github.com>
Date: Wed, 15 Oct 2025 08:48:24 +0200
Subject: [PATCH 5/6] Update src/guides/build-iapp/deploy-&-run.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---
src/guides/build-iapp/deploy-&-run.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/guides/build-iapp/deploy-&-run.md b/src/guides/build-iapp/deploy-&-run.md
index 4dd49453..fb2dc29d 100644
--- a/src/guides/build-iapp/deploy-&-run.md
+++ b/src/guides/build-iapp/deploy-&-run.md
@@ -672,7 +672,7 @@ const arbitrumSepoliaRunSteps = [
{
showAt: 11,
completeAt: 13,
- question:'Would you like to download the result ?',
+ question:'Would you like to download the result?',
answer: 'Yes',
options: [
{ label: 'Yes', selected: true },
From a7bdc50992176168528bd3a1dc8cd0959b53c16d Mon Sep 17 00:00:00 2001
From: Le-Caignec
Date: Wed, 15 Oct 2025 09:22:40 +0200
Subject: [PATCH 6/6] fix: adjust formatting of gas limit note in
result-callback.md for clarity
---
src/guides/build-iapp/advanced/result-callback.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/guides/build-iapp/advanced/result-callback.md b/src/guides/build-iapp/advanced/result-callback.md
index c707a4ac..5b292acb 100644
--- a/src/guides/build-iapp/advanced/result-callback.md
+++ b/src/guides/build-iapp/advanced/result-callback.md
@@ -59,7 +59,8 @@ contract IExecCallbackReceiver {
::: tip Important
-The callback transaction is subject to a maximum gas limit of 200,000 enforced by the protocol.
+The callback transaction is subject to a maximum gas limit of 200,000 enforced
+by the protocol.
Ensure your callback logic fits within this limit to avoid out-of-gas errors.
:::