diff --git a/demo/vue-app-new/package-lock.json b/demo/vue-app-new/package-lock.json index 9e98a071d..4f812b9ad 100644 --- a/demo/vue-app-new/package-lock.json +++ b/demo/vue-app-new/package-lock.json @@ -261,7 +261,6 @@ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.2.tgz", "integrity": "sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==", "license": "MIT", - "peer": true, "engines": { "node": ">=6.9.0" } @@ -1655,6 +1654,29 @@ "node": "^20.19.0 || >=22.12.0" } }, + "node_modules/@rolldown/binding-wasm32-wasi/node_modules/@emnapi/core": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.9.2.tgz", + "integrity": "sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.1", + "tslib": "^2.4.0" + } + }, + "node_modules/@rolldown/binding-wasm32-wasi/node_modules/@emnapi/runtime": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.2.tgz", + "integrity": "sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@rolldown/binding-wasm32-wasi/node_modules/@napi-rs/wasm-runtime": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz", @@ -2171,7 +2193,6 @@ "resolved": "https://registry.npmjs.org/@solana/kit/-/kit-6.8.0.tgz", "integrity": "sha512-+McC1aCgcUBdM7Cd7U6k2ZHJ9OKCy5mzpb0XWrhkrgsFxT0QoRr0AcWJc85o6tIDfG6Jz7vVhbS3l8ugYz2Vzw==", "license": "MIT", - "peer": true, "dependencies": { "@solana/accounts": "6.8.0", "@solana/addresses": "6.8.0", @@ -3140,7 +3161,6 @@ "resolved": "https://registry.npmjs.org/@tanstack/vue-query/-/vue-query-5.100.6.tgz", "integrity": "sha512-aUvBla5roKKI311C4KHg+n0dHe+s9MKXwhUcro6Ajvu0L6IERoZ+/CjRqUCUgd5Y51ytuZAJl85uahgp7ViVlg==", "license": "MIT", - "peer": true, "dependencies": { "@tanstack/match-sorter-utils": "^8.19.4", "@tanstack/query-core": "5.100.6", @@ -3398,7 +3418,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "@adraffy/ens-normalize": "^1.11.0", "@noble/ciphers": "^1.3.0", @@ -3615,6 +3634,7 @@ "resolved": "https://registry.npmjs.org/@solana/accounts/-/accounts-5.5.1.tgz", "integrity": "sha512-TfOY9xixg5rizABuLVuZ9XI2x2tmWUC/OoN556xwfDlhBHBjKfszicYYOyD6nbFmwTGYarCmyGIdteXxTXIdhQ==", "license": "MIT", + "peer": true, "dependencies": { "@solana/addresses": "5.5.1", "@solana/codecs-core": "5.5.1", @@ -3640,6 +3660,7 @@ "resolved": "https://registry.npmjs.org/@solana/addresses/-/addresses-5.5.1.tgz", "integrity": "sha512-5xoah3Q9G30HQghu/9BiHLb5pzlPKRC3zydQDmE3O9H//WfayxTFppsUDCL6FjYUHqj/wzK6CWHySglc2RkpdA==", "license": "MIT", + "peer": true, "dependencies": { "@solana/assertions": "5.5.1", "@solana/codecs-core": "5.5.1", @@ -3664,6 +3685,7 @@ "resolved": "https://registry.npmjs.org/@solana/assertions/-/assertions-5.5.1.tgz", "integrity": "sha512-YTCSWAlGwSlVPnWtWLm3ukz81wH4j2YaCveK+TjpvUU88hTy6fmUqxi0+hvAMAe4zKXpJyj3Az7BrLJRxbIm4Q==", "license": "MIT", + "peer": true, "dependencies": { "@solana/errors": "5.5.1" }, @@ -3684,6 +3706,7 @@ "resolved": "https://registry.npmjs.org/@solana/codecs/-/codecs-5.5.1.tgz", "integrity": "sha512-Vea29nJub/bXjfzEV7ZZQ/PWr1pYLZo3z0qW0LQL37uKKVzVFRQlwetd7INk3YtTD3xm9WUYr7bCvYUk3uKy2g==", "license": "MIT", + "peer": true, "dependencies": { "@solana/codecs-core": "5.5.1", "@solana/codecs-data-structures": "5.5.1", @@ -3708,6 +3731,7 @@ "resolved": "https://registry.npmjs.org/@solana/codecs-core/-/codecs-core-5.5.1.tgz", "integrity": "sha512-TgBt//bbKBct0t6/MpA8ElaOA3sa8eYVvR7LGslCZ84WiAwwjCY0lW/lOYsFHJQzwREMdUyuEyy5YWBKtdh8Rw==", "license": "MIT", + "peer": true, "dependencies": { "@solana/errors": "5.5.1" }, @@ -3728,6 +3752,7 @@ "resolved": "https://registry.npmjs.org/@solana/codecs-data-structures/-/codecs-data-structures-5.5.1.tgz", "integrity": "sha512-97bJWGyUY9WvBz3mX1UV3YPWGDTez6btCfD0ip3UVEXJbItVuUiOkzcO5iFDUtQT5riKT6xC+Mzl+0nO76gd0w==", "license": "MIT", + "peer": true, "dependencies": { "@solana/codecs-core": "5.5.1", "@solana/codecs-numbers": "5.5.1", @@ -3750,6 +3775,7 @@ "resolved": "https://registry.npmjs.org/@solana/codecs-numbers/-/codecs-numbers-5.5.1.tgz", "integrity": "sha512-rllMIZAHqmtvC0HO/dc/21wDuWaD0B8Ryv8o+YtsICQBuiL/0U4AGwH7Pi5GNFySYk0/crSuwfIqQFtmxNSPFw==", "license": "MIT", + "peer": true, "dependencies": { "@solana/codecs-core": "5.5.1", "@solana/errors": "5.5.1" @@ -3771,6 +3797,7 @@ "resolved": "https://registry.npmjs.org/@solana/codecs-strings/-/codecs-strings-5.5.1.tgz", "integrity": "sha512-7klX4AhfHYA+uKKC/nxRGP2MntbYQCR3N6+v7bk1W/rSxYuhNmt+FN8aoThSZtWIKwN6BEyR1167ka8Co1+E7A==", "license": "MIT", + "peer": true, "dependencies": { "@solana/codecs-core": "5.5.1", "@solana/codecs-numbers": "5.5.1", @@ -3797,6 +3824,7 @@ "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-5.5.1.tgz", "integrity": "sha512-vFO3p+S7HoyyrcAectnXbdsMfwUzY2zYFUc2DEe5BwpiE9J1IAxPBGjOWO6hL1bbYdBrlmjNx8DXCslqS+Kcmg==", "license": "MIT", + "peer": true, "dependencies": { "chalk": "5.6.2", "commander": "14.0.2" @@ -3821,6 +3849,7 @@ "resolved": "https://registry.npmjs.org/@solana/nominal-types/-/nominal-types-5.5.1.tgz", "integrity": "sha512-I1ImR+kfrLFxN5z22UDiTWLdRZeKtU0J/pkWkO8qm/8WxveiwdIv4hooi8pb6JnlR4mSrWhq0pCIOxDYrL9GIQ==", "license": "MIT", + "peer": true, "engines": { "node": ">=20.18.0" }, @@ -3838,6 +3867,7 @@ "resolved": "https://registry.npmjs.org/@solana/options/-/options-5.5.1.tgz", "integrity": "sha512-eo971c9iLNLmk+yOFyo7yKIJzJ/zou6uKpy6mBuyb/thKtS/haiKIc3VLhyTXty3OH2PW8yOlORJnv4DexJB8A==", "license": "MIT", + "peer": true, "dependencies": { "@solana/codecs-core": "5.5.1", "@solana/codecs-data-structures": "5.5.1", @@ -3862,6 +3892,7 @@ "resolved": "https://registry.npmjs.org/@solana/rpc-spec/-/rpc-spec-5.5.1.tgz", "integrity": "sha512-m3LX2bChm3E3by4mQrH4YwCAFY57QBzuUSWqlUw7ChuZ+oLLOq7b2czi4i6L4Vna67j3eCmB3e+4tqy1j5wy7Q==", "license": "MIT", + "peer": true, "dependencies": { "@solana/errors": "5.5.1", "@solana/rpc-spec-types": "5.5.1" @@ -3883,6 +3914,7 @@ "resolved": "https://registry.npmjs.org/@solana/rpc-spec-types/-/rpc-spec-types-5.5.1.tgz", "integrity": "sha512-6OFKtRpIEJQs8Jb2C4OO8KyP2h2Hy1MFhatMAoXA+0Ik8S3H+CicIuMZvGZ91mIu/tXicuOOsNNLu3HAkrakrw==", "license": "MIT", + "peer": true, "engines": { "node": ">=20.18.0" }, @@ -3900,6 +3932,7 @@ "resolved": "https://registry.npmjs.org/@solana/rpc-types/-/rpc-types-5.5.1.tgz", "integrity": "sha512-bibTFQ7PbHJJjGJPmfYC2I+/5CRFS4O2p9WwbFraX1Keeel+nRrt/NBXIy8veP5AEn2sVJIyJPpWBRpCx1oATA==", "license": "MIT", + "peer": true, "dependencies": { "@solana/addresses": "5.5.1", "@solana/codecs-core": "5.5.1", @@ -3949,6 +3982,7 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.2.tgz", "integrity": "sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==", "license": "MIT", + "peer": true, "engines": { "node": ">=20" } @@ -4069,7 +4103,6 @@ "integrity": "sha512-BOziFIfE+6osHO9FoJG4zjoHUcvI7fTNBSpdAwrNH0/TLvzjsk2oo8XSSOT2HhqUyhZPfHv4UOffoJ9oEEQ7Ag==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/regexpp": "^4.12.2", "@typescript-eslint/scope-manager": "8.59.1", @@ -4099,7 +4132,6 @@ "integrity": "sha512-HDQH9O/47Dxi1ceDhBXdaldtf/WV9yRYMjbjCuNk3qnaTD564qwv61Y7+gTxwxRKzSrgO5uhtw584igXVuuZkA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.59.1", "@typescript-eslint/types": "8.59.1", @@ -4943,7 +4975,6 @@ "resolved": "https://registry.npmjs.org/@wagmi/core/-/core-3.4.7.tgz", "integrity": "sha512-OdqGDB8ewTQzesrtf6BmixFa+BWeWw7G/htUyUGXlew89kT+E2NRDX4Sfb+6F/Oqj6y41o5zSr36xHtbVUt4NA==", "license": "MIT", - "peer": true, "dependencies": { "eventemitter3": "5.0.1", "mipd": "0.0.7", @@ -5127,7 +5158,6 @@ "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", "dev": true, "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -5693,6 +5723,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-3.1.3.tgz", "integrity": "sha512-fasDH2ont2GqF5HpyO4w0+BcewlhHEZOFn9c1ckZdHpJ56Qb7MHhH/IcJZbBGgvdtwdwNbLvxiBEdg336iA9Sg==", "license": "MIT", + "peer": true, "dependencies": { "color-name": "^2.0.0" }, @@ -5705,6 +5736,7 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-2.1.0.tgz", "integrity": "sha512-1bPaDNFm0axzE4MEAzKPuqKWeRaT43U/hyxKPBdqTfmPF+d6n7FSoTFxLVULUJOmiLp01KjhIPPH+HrXZJN4Rg==", "license": "MIT", + "peer": true, "engines": { "node": ">=12.20" } @@ -5714,6 +5746,7 @@ "resolved": "https://registry.npmjs.org/color-string/-/color-string-2.1.4.tgz", "integrity": "sha512-Bb6Cq8oq0IjDOe8wJmi4JeNn763Xs9cfrBcaylK1tPypWzyoy2G3l90v9k64kjphl/ZJjPIShFztenRomi8WTg==", "license": "MIT", + "peer": true, "dependencies": { "color-name": "^2.0.0" }, @@ -6253,7 +6286,6 @@ "integrity": "sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -6330,7 +6362,6 @@ "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", "dev": true, "license": "MIT", - "peer": true, "bin": { "eslint-config-prettier": "bin/cli.js" }, @@ -6457,7 +6488,6 @@ "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@rtsao/scc": "^1.1.0", "array-includes": "^3.1.9", @@ -6764,7 +6794,6 @@ "integrity": "sha512-EFNNzu4HqtTRb5DJINpyd+u3bDdzETWDMpCzG+UBHz1tpsnMDCeOcf61u4Wy/cbXnMymK+MT9bjH7KcG1fItSw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "natural-compare": "^1.4.0", @@ -8334,7 +8363,6 @@ "integrity": "sha512-75EA7EWZExL/j+MDKQrRbdzcRI2HOkRlmUw8fZJc1ioqFEOvBsq7Rt+A6yCxOt9w/TYNpkt52gC6nm/g5tFIng==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "acorn": "^8.5.0", "eslint-visitor-keys": "^5.0.0", @@ -9438,7 +9466,6 @@ "integrity": "sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw==", "dev": true, "license": "MIT", - "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -9507,7 +9534,6 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.2.5.tgz", "integrity": "sha512-llUJLzz1zTUBrskt2pwZgLq59AemifIftw4aB7JxOqf1HY2FDaGDxgwpAPVzHU1kdWabH7FauP4i1oEeer2WCA==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -10454,8 +10480,7 @@ "version": "4.2.4", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.4.tgz", "integrity": "sha512-HhKppgO81FQof5m6TEnuBWCZGgfRAWbaeOaGT00KOy/Pf/j6oUihdvBpA7ltCeAvZpFhW3j0PTclkxsd4IXYDA==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/tapable": { "version": "2.3.3", @@ -10526,7 +10551,6 @@ "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -10698,7 +10722,6 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "devOptional": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -10763,7 +10786,6 @@ "dev": true, "hasInstallScript": true, "license": "MIT", - "peer": true, "dependencies": { "napi-postinstall": "^0.3.0" }, @@ -10838,7 +10860,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "@noble/curves": "1.9.1", "@noble/hashes": "1.8.0", @@ -10933,7 +10954,6 @@ "integrity": "sha512-t7g7GVRpMXjNpa67HaVWI/8BWtdVIQPCL2WoozXXA7LBGEFK4AkkKkHx2hAQf5x1GZSlcmEDPkVLSGahxnEEZw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "lightningcss": "^1.32.0", "picomatch": "^4.0.4", @@ -11031,7 +11051,6 @@ "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.33.tgz", "integrity": "sha512-1AgChhx5w3ALgT4oK3acm2Es/7jyZhWSVUfs3rOBlGQC0rjEDkS7G4lWlJJGGNQD+BV3reCwbQrOe1mPNwKHBQ==", "license": "MIT", - "peer": true, "dependencies": { "@vue/compiler-dom": "3.5.33", "@vue/compiler-sfc": "3.5.33", @@ -11080,7 +11099,6 @@ "integrity": "sha512-Vxi9pJdbN3ZnVGLODVtZ7y4Y2kzAAE2Cm0CZ3ZDRvydVYxZ6VrnBhLikBsRS+dpwj4Jv4UCv21PTEwF5rQ9WXg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "debug": "^4.4.0", "eslint-scope": "^8.2.0 || ^9.0.0", @@ -11360,7 +11378,6 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.0.tgz", "integrity": "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==", "license": "MIT", - "peer": true, "engines": { "node": ">=10.0.0" }, @@ -11427,7 +11444,6 @@ "integrity": "sha512-odxVsHAkZYYglR30aPYRY4nUGJnoJ2y1ww2HDvZALo0BDETv9kWbi16J52eHs+PWRNmF4ub6nZqfVOeesOvntg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "eslint-visitor-keys": "^3.0.0", "yaml": "^2.0.0" diff --git a/demo/vue-app-new/src/components/AppDashboard.vue b/demo/vue-app-new/src/components/AppDashboard.vue index 769b9e111..620bc62d4 100644 --- a/demo/vue-app-new/src/components/AppDashboard.vue +++ b/demo/vue-app-new/src/components/AppDashboard.vue @@ -4,23 +4,17 @@ import { address as solanaAddress } from "@solana/kit"; import { getTransferSolInstruction } from "@solana-program/system"; import { Button, Card } from "@toruslabs/vue-components"; import { getCallsStatus, getCapabilities, sendCalls, showCallsStatus } from "@wagmi/core"; -import { - useBalance, - useChainId, - useConfig, - useConnection, - useSignMessage, - useSignTypedData, - useSwitchChain as useWagmiSwitchChain, -} from "@wagmi/vue"; +import { useBalance, useConfig, useConnection, useSignMessage, useSignTypedData } from "@wagmi/vue"; import { CHAIN_NAMESPACES, IProvider, log, WALLET_CONNECTORS } from "@web3auth/modal"; import { useAuthTokenInfo, + useChain, useCheckout, useEnableMFA, useFunding, useManageMFA, useReceive, + useSwitchChain, useWalletConnectScanner, useWalletUI, useWeb3Auth, @@ -44,7 +38,7 @@ const { isConnected, connection, web3Auth, isMFAEnabled, isAuthorized } = useWeb const { userInfo, loading: userInfoLoading } = useWeb3AuthUser(); const { enableMFA } = useEnableMFA(); const { manageMFA } = useManageMFA(); -const { mutateAsync: switchChainAsync } = useWagmiSwitchChain(); +const { switchChain, loading: switchChainLoading, error: switchChainError } = useSwitchChain(); const { showWalletUI, loading: showWalletUILoading } = useWalletUI(); const { showWalletConnectScanner, loading: showWalletConnectScannerLoading } = useWalletConnectScanner(); @@ -52,10 +46,10 @@ const { showCheckout, loading: showCheckoutLoading } = useCheckout(); const { showFunding, loading: showFundingLoading } = useFunding(); const { showReceive, loading: showReceiveLoading } = useReceive(); const { getAuthTokenInfo, loading: getAuthTokenInfoLoading } = useAuthTokenInfo(); +const { chainId: web3AuthChainId, chainNamespace } = useChain(); const { status, address } = useConnection(); const { mutateAsync: signTypedDataAsync } = useSignTypedData(); const { mutateAsync: signMessageAsync } = useSignMessage(); -const wagmiChainId = useChainId(); const balance = useBalance({ address: address, }); @@ -68,28 +62,6 @@ const { accounts: solanaAccounts, getPrivateKey: getSolanaPrivateKey } = useSola const solanaClient = useSolanaClient(); const { signMessage: signSolanaMessage } = useSolanaSignMessage(); -const currentChainId = ref(web3Auth.value?.currentChain?.chainId); - -const chainChangedListener = (chainId: string) => { - currentChainId.value = chainId; -}; - -watch( - [isConnected, connection], - ([newIsConnected], _, onCleanup) => { - const ethereumProvider = connection.value?.ethereumProvider; - if (!newIsConnected || !ethereumProvider) return; - currentChainId.value = web3Auth.value?.currentChain?.chainId; - ethereumProvider.on("chainChanged", chainChangedListener); - onCleanup(() => { - ethereumProvider.removeListener("chainChanged", chainChangedListener); - }); - }, - { - immediate: true, - } -); - const isDisplay = (name: "dashboard" | "ethServices" | "solServices" | "walletServices"): boolean => { const conn = connection.value; @@ -180,7 +152,10 @@ const onGetPrivateKey = async () => { }; const getConnectedChainId = async () => { - printToConsole("chainId", wagmiChainId.value); + printToConsole("chainId", { + chainId: web3AuthChainId.value, + chainNamespace: chainNamespace.value, + }); }; const onGetBalance = async () => { @@ -375,14 +350,16 @@ const canSwitchEvmChain = computed(() => { const onSwitchChain = async () => { log.info("switching chain"); try { - const chainId = connection.value?.ethereumProvider?.chainId; - if (!chainId) throw new Error("No ethereum provider chainId"); - if (chainId !== currentChainId.value) throw new Error("chainId does not match current chainId"); + const providerChainId = connection.value?.ethereumProvider?.chainId; + if (!providerChainId) throw new Error("No ethereum provider chainId"); - const newChain = eip155Chains.value.find((c) => c.chainId !== chainId); + // `useChain()` reflects the active Web3Auth chain across namespaces, so use the + // EVM provider itself as the source of truth when choosing the next EVM chain. + const newChain = eip155Chains.value.find((c) => c.chainId !== providerChainId); if (!newChain) throw new Error("Please configure at least 2 EVM chains in the config"); - const data = await switchChainAsync({ chainId: Number(newChain.chainId) }); - printToConsole("switchedChain", { chainId: data.id }); + await switchChain({ chainId: newChain.chainId }); + if (switchChainError.value) throw switchChainError.value; + printToConsole("switchedChain", { chainId: newChain.chainId }); } catch (error) { printToConsole("switchedChain error", error); } @@ -467,7 +444,7 @@ const onSwitchChain = async () => { -