feat(W3MWagmi): dynamic network & SIWX selection; wallet dual link-mode domains#553
Merged
Merged
Conversation
…de domains W3MWagmi: - Add an "AppKit settings & networks" screen (from Settings) to pick, per chain, which networks AppKit connects with (EVM chains + Solana + Bitcoin) and to toggle SIWX (One-Click Auth). Selection is persisted in a unified AppKitConfigStore (MMKV) and read at launch in App.tsx, since createAppKit is a singleton (applied on reload). - Show the connected wallet's link-mode value and the active session's transport mode (relay / link_mode) in the Settings WalletInfo section. Wallet (rn_cli_wallet): - Support both lab.reown.com and appkit-lab.reown.com for universal links / link mode via Android intent-filters and iOS associated domains. Bump build numbers for both apps (Android versionCode + iOS CURRENT_PROJECT_VERSION). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Claude finished @ignaciosantise's task in 1m 47s —— View job PR Review in Progress
|
There was a problem hiding this comment.
Pull request overview
Adds configurable AppKit startup behavior in the W3MWagmi dapp (persisted per-network + SIWX toggle) and expands the rn_cli_wallet deep-link domains to support both lab.reown.com and appkit-lab.reown.com, alongside version/build-number bumps.
Changes:
- Introduce a persisted AppKit launch config store (MMKV) and a new “AppKit settings & networks” screen to control enabled networks and SIWX, applied on next app launch.
- Refactor AppKit initialization to build adapters/networks/connectors dynamically from the persisted selection.
- Add additional universal-link / app-link domains for the wallet (iOS associated domains + Android intent-filters) and bump iOS/Android build numbers.
Reviewed changes
Copilot reviewed 17 out of 17 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| wallets/rn_cli_wallet/ios/RNWeb3Wallet/RNWeb3WalletDebug.entitlements | Adds appkit-lab.reown.com to associated domains for debug builds. |
| wallets/rn_cli_wallet/ios/RNWeb3Wallet/RNWeb3Wallet.entitlements | Adds appkit-lab.reown.com to associated domains for non-debug builds. |
| wallets/rn_cli_wallet/ios/RNWeb3Wallet.xcodeproj/project.pbxproj | Bumps iOS build numbers (CURRENT_PROJECT_VERSION) across variants. |
| wallets/rn_cli_wallet/android/app/src/main/AndroidManifest.xml | Adds appkit-lab.reown.com host for verified https deep links. |
| wallets/rn_cli_wallet/android/app/src/internal/AndroidManifest.xml | Adds appkit-lab.reown.com host for internal flavor deep links. |
| wallets/rn_cli_wallet/android/app/src/debug/AndroidManifest.xml | Adds appkit-lab.reown.com host for debug flavor deep links. |
| wallets/rn_cli_wallet/android/app/build.gradle | Bumps Android versionCode. |
| dapps/W3MWagmi/src/utils/WagmiUtils.ts | Adds network registry + buildNetworkConfig() to assemble adapters/networks/connectors from selection. |
| dapps/W3MWagmi/src/utils/TypesUtil.ts | Adds NetworkSettings route to the root stack type. |
| dapps/W3MWagmi/src/stores/AppKitConfigStore.ts | New persisted config store for enabled networks + SIWX toggle (MMKV + valtio). |
| dapps/W3MWagmi/src/screens/Settings/index.tsx | Adds navigation entry to the new network/settings screen. |
| dapps/W3MWagmi/src/screens/Settings/components/WalletInfo.tsx | Displays wallet link-mode support and active session transport mode. |
| dapps/W3MWagmi/src/screens/NetworkSettings/index.tsx | New UI screen to toggle SIWX and per-network enablement, with restart reminder. |
| dapps/W3MWagmi/src/navigators/RootStackNavigator.tsx | Registers NetworkSettings screen in the native stack. |
| dapps/W3MWagmi/src/App.tsx | Uses buildNetworkConfig() + persisted SIWX toggle to initialize the AppKit singleton at launch. |
| dapps/W3MWagmi/ios/W3MWagmi.xcodeproj/project.pbxproj | Bumps iOS build numbers (CURRENT_PROJECT_VERSION) across variants. |
| dapps/W3MWagmi/android/app/build.gradle | Bumps Android versionCode. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Filter stored network ids to known ALL_NETWORK_IDS, drop duplicates, and fall back to defaults when the result is empty. Prevents unknown/duplicate ids from being unremovable in the UI and from skewing the settings dirty-check. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
bc22cea to
c94d781
Compare
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
W3MWagmi (dapp)
AppKitConfigStore(raw MMKV) and read at launch inApp.tsx.createAppKitis a documented singleton, so changes apply after an app reload — leaving the screen with unsaved changes shows a non-blocking "Restart required" reminder.buildNetworkConfig()inWagmiUtils.tsconditionally assembles the Wagmi/Solana/Bitcoin adapters, networks, and connectors from the selection (EVM always keeps ≥1 chain soWagmiProviderstays valid).relay/link_mode).Wallet (rn_cli_wallet)
lab.reown.comandappkit-lab.reown.comfor universal links / link mode, via Android intent-filters (extra<data android:host>) and iOS associated domains (extraapplinks:entry) across all build variants.Both apps
versionCodeand iOSCURRENT_PROJECT_VERSION(all variants).Notes
redirect.universal(insrc/utils/misc.ts) stays a single URL (lab.reown.com); "supporting both" is handled at the OS routing layer. Both hosts must serve validassetlinks.json/apple-app-site-associationfor verified deep linking.Podfile.lockchecksums,RNWallet.xcschemeversion) were intentionally left out of this PR.Test plan
lab.reown.com/rn_walletkit*and anappkit-lab.reown.com/rn_walletkit*link → both open the wallet.🤖 Generated with Claude Code