feat: remove Bellecour, update DataProtector to beta.27, fix unusable lockfile - #1
Open
raorla wants to merge 4 commits into
Open
Conversation
Bellecour is no longer offered in the chain selector. The starter now targets Arbitrum only. - drop the `bellecour` chain definition and its entry in `supportedChains` - move `defaultChain` to Arbitrum Sepolia (testnet-first, no real funds needed to try the starter) - drop chain 134 from `explorerSlugs` and from the Web3Mail iApp address map - `normalizeChainId` now falls back to Arbitrum Sepolia (421614) instead of Bellecour (134), via a named `DEFAULT_CHAIN_ID` constant - remove Bellecour mentions from the README, including the "Compatible Wallets" section whose wallet restriction was specific to Bellecour
`npm install` / `npm ci` failed with a hard 404:
npm error 404 Not Found - GET
https://registry.npmjs.org/@ensdomains/buffer/-/buffer-0.1.1.tgz
Version 0.1.1 has been unpublished from the registry; only 0.1.0 and 0.1.3
remain. The lockfile pinned the missing tarball, so a fresh clone could not
install at all.
The dependency is transitive:
@iexec/dataprotector -> iexec -> @ensdomains/ens-contracts
-> @ensdomains/buffer@^0.1.1
The declared range `^0.1.1` already accepts 0.1.3, so only the lockfile
entry needed updating (version, resolved URL and integrity hash).
`npm run build` failed on main, before any of the changes in this PR:
src/context/ContextProvider.tsx(7,46): error TS2322:
The types of 'appearance.theme' are incompatible between these types.
Type 'string' is not assignable to
type '"light" | `#${string}` | "dark" | undefined'.
The config object literal had no type annotation, so `theme: 'light'` was
widened to `string` and no longer matched Privy's union.
Annotating the export with `PrivyClientConfig` fixes it and makes the whole
config checked against Privy's own types. That surfaced a second problem:
`accentColor: 'red' as \`#${string}\`` was a cast asserting something false
-- `'red'` is not a hex colour -- so it is now a real hex (`#EF4444`,
the same red).
Bumps the SDK from 2.0.0-beta.19 to 2.0.0-beta.27 (current `latest`).
beta.27 ships breaking changes, none of which require source changes here:
- **Bellecour is no longer supported by the SDK.** Its chain config is gone;
`CHAIN_CONFIG` now holds only Arbitrum Sepolia (421614) and Arbitrum One
(42161). This makes the Bellecour removal earlier in this PR a hard
requirement rather than a cleanup: on beta.27 `getChainConfig(134)` returns
`{}`, so keeping Bellecour selectable would fail at runtime.
- `ethProvider` is now required in the module constructor. Already satisfied
here: the provider is passed as the first positional argument.
- `AddressOrENS` is dropped in favour of `Address`. Type-compatible, since
`Address` is an alias for `string`.
- `getWeb3Provider` host is now positional, and voucher params were removed
from `processProtectedData` / `processBulkRequest`. Neither is used here.
Side effect worth noting: dropping ENS support removed `@ensdomains/ens-contracts`
from the dependency tree, and with it `@ensdomains/buffer` — the package whose
unpublished 0.1.1 broke installs. The lockfile fix in the previous commit is
therefore superseded by this bump; it is kept so the fix survives if this
commit is reverted.
Also note `allowExperimentalNetworks: true` is now a no-op: neither remaining
chain is flagged experimental in beta.27. Left in place as harmless.
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Two independent problems, plus one drive-by fix needed to get a green build.
1. Bellecour removed from the chain selector
The
bellecourchain definition is gone, so the selector now offers Arbitrum Sepolia and Arbitrum One only.Because Bellecour was also the default chain, a replacement was needed. This PR uses Arbitrum Sepolia: it was already next in
supportedChains, and a testnet default means nobody spends real funds just trying the starter. Consequences:defaultChain→arbitrumSepolianormalizeChainIdfell back to134in two places; it now falls back to421614through a namedDEFAULT_CHAIN_IDconstant rather than a bare magic number134dropped fromexplorerSlugsand from the Web3Mail iApp address mapNote: Arbitrum Sepolia has no Web3Mail iApp address, so the "Use Web3Mail Whitelist address for current chain" button is hidden on the default chain. That behaviour already existed (the map is guarded by
|| ""), it is just now visible by default.README: Bellecour references removed. That includes the whole Compatible Wallets section — its restriction ("Other wallets may not work with iExec SDKs on Bellecour") was specific to Bellecour, and keeping a "compatible wallets" list would misinform now that the starter targets Arbitrum, where the iExec SDKs work with standard EVM wallets.
2. Lockfile was unusable — a fresh clone could not install
@ensdomains/buffer@0.1.1has been unpublished from npm; only0.1.0and0.1.3remain. The lockfile pinned the missing tarball, sonpm installandnpm ciboth died. It is a transitive dependency:The declared range
^0.1.1already accepts0.1.3, so only the lockfile entry needed updating — nopackage.jsonchange.3. Drive-by:
tscbuild was already broken onmainnpm run buildfails onmain, independently of this PR (verified by building a clean checkout):privyConfighad no type annotation, sotheme: 'light'widened tostring. Annotating the export withPrivyClientConfigfixes it and gets the whole config checked against Privy's own types — which surfaced a second issue:accentColor: 'red' as \#${string}`was a cast asserting something false, since'red'is not a hex colour. It is now a real hex (#EF4444`, the same red).Happy to split this third commit out if you would rather keep it separate — without it the PR cannot build.
Verification
npm ci→ exit 0 (confirms the lockfile fix;@ensdomains/buffer@0.1.3installed)npm run build→ exit 0npm run lint→ exit 0"iExec Sidechain"no longer appears anywhere in the built bundle, so it cannot reach the selectorRemaining
bellecourstrings in the bundle come from theiexecSDK's own internal chain table and service URLs, which is out of scope here.🤖 Generated with Claude Code
Added after review started:
@iexec/dataprotector→2.0.0-beta.27Bumped from
2.0.0-beta.19to2.0.0-beta.27(currentlatest). This turns out to matter a lot for the Bellecour removal above, because beta.27 drops Bellecour from the SDK itself:Chain
134is gone, sogetChainConfig(134)now returns{}. Keeping Bellecour selectable would fail at runtime on this SDK version — the removal is a requirement, not a cleanup.The other breaking changes in beta.27 were checked and need no source changes here:
ethProviderrequired in the constructorAddressOrENSdropped forAddressAddressis an alias forstringgetWeb3Providerhost now positionalprocessProtectedData/processBulkRequestdataprotector-sharingmodule removed (beta.24)dataProtector.coreTwo side effects worth flagging to reviewers:
@ensdomains/bufferlockfile fix is now superseded. Dropping ENS support removed@ensdomains/ens-contracts, and with it@ensdomains/buffer— the package whose unpublished0.1.1broke installs. There is no longer an@ensdomains/*package anywhere in the tree. The lockfile commit is kept deliberately, so the fix survives if the bump commit is reverted.allowExperimentalNetworks: trueis now a no-op. Neither remaining chain is flaggedisExperimentalin beta.27. Left in place as harmless; removing it would be a separate cleanup.The lockfile diff is large, as expected for a bump that prunes the whole ENS subtree.
Not verified
protectDataandgrantAccesswere not exercised end to end. Both sit behind a wallet connection and emit real on-chain transactions, so they need a funded wallet on Arbitrum Sepolia. What is verified is install, type-check, build, and that the app mounts and renders without page errors. Functional testing of those two buttons is still outstanding.