From a6360235f0f75033abd1810cd3693dc00c59d6bc Mon Sep 17 00:00:00 2001 From: gomes <17035424+gomesalexandre@users.noreply.github.com> Date: Wed, 26 Nov 2025 13:39:53 +0100 Subject: [PATCH 01/26] feat: wire up GridPlus SafeCard wallet UID validation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Added walletUid and isExternal fields to Redux SafeCard type - Updated Redux actions to store wallet UID and type during pairing - Modified utils.ts to pass expectedWalletUid for reconnection validation - Updated GridPlusSetup to capture and store wallet UID on first pairing - Updated handleSelectSafeCard to validate wallet UID on SafeCard selection - Integrated with hdwallet-gridplus@1.62.12 for validation support This enables validation that the correct SafeCard is inserted before signing, fixing the "trust me bro" issue from #10904. When reconnecting, the system now validates the wallet UID matches the expected SafeCard. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .yarnrc.yml | 5 +-- package.json | 4 +-- .../GridPlus/components/GridPlusSetup.tsx | 9 ++++- .../GridPlus/hooks/useGridPlusConnection.ts | 8 +++++ src/context/WalletProvider/GridPlus/utils.ts | 35 ++++++++++++++++--- .../slices/gridplusSlice/gridplusSlice.ts | 20 +++++++++++ src/state/slices/gridplusSlice/types.ts | 12 +++++++ yarn.lock | 29 +++++++++++---- 8 files changed, 107 insertions(+), 15 deletions(-) diff --git a/.yarnrc.yml b/.yarnrc.yml index 039a809f305..443b520ba5d 100644 --- a/.yarnrc.yml +++ b/.yarnrc.yml @@ -1,6 +1,8 @@ nodeLinker: node-modules -npmRegistryServer: "https://registry.npmjs.org" +npmAuthToken: "${NPM_AUTH-fallback}" + +npmRegistryServer: "http://127.0.0.1:4873" plugins: - path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs @@ -15,4 +17,3 @@ unsafeHttpWhitelist: - 127.0.0.1 yarnPath: .yarn/releases/yarn-3.5.0.cjs -npmAuthToken: ${NPM_AUTH-fallback} diff --git a/package.json b/package.json index 64d70562b50..8345375bc15 100644 --- a/package.json +++ b/package.json @@ -101,8 +101,8 @@ "@shapeshiftoss/contracts": "workspace:^", "@shapeshiftoss/errors": "workspace:^", "@shapeshiftoss/hdwallet-coinbase": "1.62.10", - "@shapeshiftoss/hdwallet-core": "1.62.10", - "@shapeshiftoss/hdwallet-gridplus": "1.62.10", + "@shapeshiftoss/hdwallet-core": "1.62.12-gridplus-validation.4", + "@shapeshiftoss/hdwallet-gridplus": "1.62.12", "@shapeshiftoss/hdwallet-keepkey": "1.62.10", "@shapeshiftoss/hdwallet-keepkey-webusb": "1.62.10", "@shapeshiftoss/hdwallet-keplr": "1.62.10", diff --git a/src/context/WalletProvider/GridPlus/components/GridPlusSetup.tsx b/src/context/WalletProvider/GridPlus/components/GridPlusSetup.tsx index 7cc9a884981..3c5ca578320 100644 --- a/src/context/WalletProvider/GridPlus/components/GridPlusSetup.tsx +++ b/src/context/WalletProvider/GridPlus/components/GridPlusSetup.tsx @@ -65,6 +65,8 @@ export const GridPlusSetup = () => { try { let finalWallet = wallet + let walletUid: string | undefined + let isExternal: boolean | undefined if (!finalWallet) { const adapter = await getAdapter(KeyManager.GridPlus) @@ -77,12 +79,15 @@ export const GridPlusSetup = () => { if (!deviceId) { throw new Error(translate('walletProvider.gridplus.errors.deviceIdRequired')) } - finalWallet = await pairConnectedDevice({ + const result = await pairConnectedDevice({ adapter, deviceId, pairingCode, dispatch: appDispatch, }) + finalWallet = result.wallet + walletUid = result.walletUid + isExternal = result.isExternal } else { const connectionDeviceId = physicalDeviceId || deviceId || state?.deviceId if (!connectionDeviceId) { @@ -114,6 +119,8 @@ export const GridPlusSetup = () => { gridplusSlice.actions.addSafeCard({ id: safeCardUuid, name: finalSafeCardName, + walletUid, + isExternal, }), ) diff --git a/src/context/WalletProvider/GridPlus/hooks/useGridPlusConnection.ts b/src/context/WalletProvider/GridPlus/hooks/useGridPlusConnection.ts index 8084657238f..7916686400f 100644 --- a/src/context/WalletProvider/GridPlus/hooks/useGridPlusConnection.ts +++ b/src/context/WalletProvider/GridPlus/hooks/useGridPlusConnection.ts @@ -137,6 +137,10 @@ export const useGridPlusConnection = () => { try { appDispatch(gridplusSlice.actions.setActiveSafeCard(id)) + // Get the SafeCard details to check for walletUid + const safeCard = safeCards.find(card => card.id === id) + const expectedWalletUid = safeCard?.walletUid + const safeCardWalletId = `gridplus:${id}` const connectionDeviceId = getConnectionDeviceId() const adapter = await getAdapterWithKeyring() @@ -146,6 +150,7 @@ export const useGridPlusConnection = () => { deviceId: connectionDeviceId, sessionId: sessionId ?? undefined, dispatch: appDispatch, + expectedWalletUid, }) if (!wallet) { @@ -163,6 +168,8 @@ export const useGridPlusConnection = () => { localWallet, navigate, appDispatch, + walletUid: safeCard?.walletUid, + isExternal: safeCard?.isExternal, }) } catch (e) { setConnectingCardId(null) @@ -171,6 +178,7 @@ export const useGridPlusConnection = () => { }, [ appDispatch, + safeCards, getConnectionDeviceId, getAdapterWithKeyring, sessionId, diff --git a/src/context/WalletProvider/GridPlus/utils.ts b/src/context/WalletProvider/GridPlus/utils.ts index 927565aa2a0..c8a739fcac6 100644 --- a/src/context/WalletProvider/GridPlus/utils.ts +++ b/src/context/WalletProvider/GridPlus/utils.ts @@ -18,6 +18,7 @@ type ConnectAndPairDeviceParams = { deviceId: string sessionId: string | undefined dispatch: AppDispatch + expectedWalletUid?: string } export const connectAndPairDevice = async ({ @@ -25,6 +26,7 @@ export const connectAndPairDevice = async ({ deviceId, sessionId, dispatch, + expectedWalletUid, }: ConnectAndPairDeviceParams): Promise => { if (!sessionId) { const { isPaired, sessionId: newSessionId } = await adapter.connectDevice( @@ -47,7 +49,13 @@ export const connectAndPairDevice = async ({ } } - const wallet = await adapter.pairDevice(deviceId, undefined, undefined, sessionId ?? undefined) + const wallet = await adapter.pairDevice( + deviceId, + undefined, + undefined, + sessionId ?? undefined, + expectedWalletUid, + ) if (!sessionId && wallet.getSessionId) { const walletSessionId = wallet.getSessionId() @@ -76,8 +84,12 @@ export const pairConnectedDevice = async ({ deviceId, pairingCode, dispatch, -}: PairConnectedDeviceParams): Promise => { - const wallet = await adapter.pairConnectedDevice(deviceId, pairingCode) +}: PairConnectedDeviceParams): Promise<{ + wallet: GridPlusHDWallet + walletUid: string + isExternal: boolean +}> => { + const { wallet, walletUid, isExternal } = await adapter.pairConnectedDevice(deviceId, pairingCode) if (wallet.getSessionId) { const walletSessionId = wallet.getSessionId() @@ -91,7 +103,7 @@ export const pairConnectedDevice = async ({ } } - return wallet + return { wallet, walletUid, isExternal } } type FinalizeWalletSetupParams = { @@ -101,6 +113,8 @@ type FinalizeWalletSetupParams = { localWallet: LocalWallet navigate: NavigateFunction appDispatch: AppDispatch + walletUid?: string + isExternal?: boolean } export const finalizeWalletSetup = ({ @@ -110,6 +124,8 @@ export const finalizeWalletSetup = ({ localWallet, navigate, appDispatch, + walletUid, + isExternal, }: FinalizeWalletSetupParams): void => { const safeCardUuid = safeCardWalletId.replace('gridplus:', '') @@ -137,6 +153,17 @@ export const finalizeWalletSetup = ({ appDispatch(gridplusSlice.actions.setLastConnectedAt(safeCardUuid)) + // Update the SafeCard's walletUid if it was provided + if (walletUid !== undefined && isExternal !== undefined) { + appDispatch( + gridplusSlice.actions.updateSafeCardWalletUid({ + id: safeCardUuid, + walletUid, + isExternal, + }), + ) + } + walletDispatch({ type: WalletActions.SET_WALLET_MODAL, payload: false }) navigate('/') } diff --git a/src/state/slices/gridplusSlice/gridplusSlice.ts b/src/state/slices/gridplusSlice/gridplusSlice.ts index 43b7b34ea2d..0e3b9036731 100644 --- a/src/state/slices/gridplusSlice/gridplusSlice.ts +++ b/src/state/slices/gridplusSlice/gridplusSlice.ts @@ -39,6 +39,8 @@ export const gridplusSlice = createSlice({ action: PayloadAction<{ id?: string name: string + walletUid?: string + isExternal?: boolean }>, ) => { const id = action.payload.id || uuidv4() @@ -46,6 +48,8 @@ export const gridplusSlice = createSlice({ id, name: action.payload.name, createdAt: Date.now(), + walletUid: action.payload.walletUid, + isExternal: action.payload.isExternal, } state.safecards.byId[id] = safeCard state.safecards.ids.push(id) @@ -88,6 +92,22 @@ export const gridplusSlice = createSlice({ }, ), + updateSafeCardWalletUid: create.reducer( + ( + state, + action: PayloadAction<{ + id: string + walletUid: string + isExternal: boolean + }>, + ) => { + if (state.safecards.byId[action.payload.id]) { + state.safecards.byId[action.payload.id].walletUid = action.payload.walletUid + state.safecards.byId[action.payload.id].isExternal = action.payload.isExternal + } + }, + ), + clear: create.reducer(() => initialState), }), diff --git a/src/state/slices/gridplusSlice/types.ts b/src/state/slices/gridplusSlice/types.ts index baafe0b3997..ab1f1a7899e 100644 --- a/src/state/slices/gridplusSlice/types.ts +++ b/src/state/slices/gridplusSlice/types.ts @@ -3,6 +3,18 @@ export type SafeCard = { name: string createdAt: number lastConnectedAt?: number + /** + * The actual wallet UID from the GridPlus device (hex string). + * This is the unique identifier for the wallet seed stored on the SafeCard or internal storage. + * Added in migration 27 - will be undefined for legacy SafeCards until re-paired. + */ + walletUid?: string + /** + * Whether this is an external (SafeCard) or internal wallet. + * true = SafeCard, false = internal device wallet. + * Added in migration 27 - will be undefined for legacy SafeCards until re-paired. + */ + isExternal?: boolean } export type GridPlusConnection = { diff --git a/yarn.lock b/yarn.lock index 44df86b0f64..49b5ca7f236 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10885,6 +10885,23 @@ __metadata: languageName: node linkType: hard +"@shapeshiftoss/hdwallet-core@npm:1.62.12-gridplus-validation.4": + version: 1.62.12-gridplus-validation.4 + resolution: "@shapeshiftoss/hdwallet-core@npm:1.62.12-gridplus-validation.4" + dependencies: + "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 + "@shapeshiftoss/proto-tx-builder": 0.10.0 + "@solana/web3.js": 1.95.8 + eip-712: ^1.0.0 + ethers: 5.7.2 + eventemitter2: ^5.0.1 + lodash: ^4.17.21 + rxjs: ^6.4.0 + type-assertions: ^1.1.0 + checksum: 9514ad3da2666b183ea49fb01910ffe5a1a7bb42d791bc24ec8649a5c9597602614ff634e05094e7421fd76365af1ba03e1aa91e8faf5550c6962cb1316f141e + languageName: node + linkType: hard + "@shapeshiftoss/hdwallet-core@npm:1.62.3": version: 1.62.3 resolution: "@shapeshiftoss/hdwallet-core@npm:1.62.3" @@ -10916,9 +10933,9 @@ __metadata: languageName: node linkType: hard -"@shapeshiftoss/hdwallet-gridplus@npm:1.62.10": - version: 1.62.10 - resolution: "@shapeshiftoss/hdwallet-gridplus@npm:1.62.10" +"@shapeshiftoss/hdwallet-gridplus@npm:1.62.12": + version: 1.62.12 + resolution: "@shapeshiftoss/hdwallet-gridplus@npm:1.62.12" dependencies: "@bitcoinerlab/secp256k1": ^1.1.1 "@ethereumjs/common": 4.4.0 @@ -10930,7 +10947,7 @@ __metadata: crypto-js: ^4.2.0 gridplus-sdk: ^3.2.0 lodash: ^4.17.21 - checksum: 3cc97a1fd43822e555f28315fcc834e2c43d35b50cfd2d206f71f46803fa1d55297a7a4de49cf1f91312248d0c4b5626ba667054e0a6fdd1a6fa253b6df43ce0 + checksum: e9952555f0d8608dac360c2b69e493b331f4b15e2f33e30a08317fa9d5ab3ca91e71b8a4d6e65564b33042834e2dddd897c35c5ebabc72c088b08f12cc4c77f6 languageName: node linkType: hard @@ -11442,8 +11459,8 @@ __metadata: "@shapeshiftoss/contracts": "workspace:^" "@shapeshiftoss/errors": "workspace:^" "@shapeshiftoss/hdwallet-coinbase": 1.62.10 - "@shapeshiftoss/hdwallet-core": 1.62.10 - "@shapeshiftoss/hdwallet-gridplus": 1.62.10 + "@shapeshiftoss/hdwallet-core": 1.62.12-gridplus-validation.4 + "@shapeshiftoss/hdwallet-gridplus": 1.62.12 "@shapeshiftoss/hdwallet-keepkey": 1.62.10 "@shapeshiftoss/hdwallet-keepkey-webusb": 1.62.10 "@shapeshiftoss/hdwallet-keplr": 1.62.10 From 0cd71cee17d8e3713bd57c236301d8d364b342c5 Mon Sep 17 00:00:00 2001 From: gomes <17035424+gomesalexandre@users.noreply.github.com> Date: Wed, 26 Nov 2025 13:50:00 +0100 Subject: [PATCH 02/26] fix: properly destructure wallet from pairConnectedDevice result MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The pairConnectedDevice function now returns an object with { wallet, walletUid, isExternal } but GridPlusPair.tsx was passing the entire object as the wallet prop, causing "wallet.getVendor is not a function" error. - Destructured the result in GridPlusPair.tsx to extract wallet, walletUid, isExternal - Pass walletUid and isExternal through navigation state - Updated GridPlusSetup to accept and use walletUid/isExternal from location state 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .../GridPlus/components/GridPlusPair.tsx | 10 ++++++++-- .../GridPlus/components/GridPlusSetup.tsx | 7 +++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/context/WalletProvider/GridPlus/components/GridPlusPair.tsx b/src/context/WalletProvider/GridPlus/components/GridPlusPair.tsx index 837a9f0a957..df400750070 100644 --- a/src/context/WalletProvider/GridPlus/components/GridPlusPair.tsx +++ b/src/context/WalletProvider/GridPlus/components/GridPlusPair.tsx @@ -51,7 +51,7 @@ export const GridPlusPair = () => { throw new Error(translate('walletProvider.gridplus.errors.adapterNotAvailable')) } - const wallet = await pairConnectedDevice({ + const { wallet, walletUid, isExternal } = await pairConnectedDevice({ adapter, deviceId, pairingCode, @@ -61,7 +61,13 @@ export const GridPlusPair = () => { appDispatch(gridplusSlice.actions.setActiveSafeCard(safeCardUuid)) navigate('/gridplus/setup', { - state: { safeCardUuid, wallet, safeCardWalletId: `gridplus:${safeCardUuid}` }, + state: { + safeCardUuid, + wallet, + safeCardWalletId: `gridplus:${safeCardUuid}`, + walletUid, + isExternal, + }, }) } catch (err) { setError((err as Error).message) diff --git a/src/context/WalletProvider/GridPlus/components/GridPlusSetup.tsx b/src/context/WalletProvider/GridPlus/components/GridPlusSetup.tsx index 3c5ca578320..b9130a145cf 100644 --- a/src/context/WalletProvider/GridPlus/components/GridPlusSetup.tsx +++ b/src/context/WalletProvider/GridPlus/components/GridPlusSetup.tsx @@ -21,6 +21,8 @@ type LocationState = { defaultName?: string needsPairing?: boolean deviceId?: string + walletUid?: string + isExternal?: boolean } export const GridPlusSetup = () => { @@ -65,8 +67,9 @@ export const GridPlusSetup = () => { try { let finalWallet = wallet - let walletUid: string | undefined - let isExternal: boolean | undefined + // Use walletUid and isExternal from state if available (from pairing flow) + let walletUid: string | undefined = state?.walletUid + let isExternal: boolean | undefined = state?.isExternal if (!finalWallet) { const adapter = await getAdapter(KeyManager.GridPlus) From 9c9b3e7b4f6ebdaf269e15c8812ef4fd38deacdd Mon Sep 17 00:00:00 2001 From: gomes <17035424+gomesalexandre@users.noreply.github.com> Date: Wed, 26 Nov 2025 14:02:10 +0100 Subject: [PATCH 03/26] fix: capture wallet UID for all GridPlus SafeCard flows MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Added validation call in GridPlusSetup when walletUid is undefined - This fixes the "Add New SafeCard" flow which wasn't capturing UIDs - Ensures all SafeCards have their hardware UID stored for validation - No duplicate validation calls - only fetches when needed Now all flows properly capture and validate wallet UIDs: 1. Initial pairing ✅ 2. Add new SafeCard ✅ 3. Reconnection with validation ✅ 4. Wrong SafeCard shows error ✅ 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .../WalletProvider/GridPlus/components/GridPlusSetup.tsx | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/context/WalletProvider/GridPlus/components/GridPlusSetup.tsx b/src/context/WalletProvider/GridPlus/components/GridPlusSetup.tsx index b9130a145cf..eb8a8921b13 100644 --- a/src/context/WalletProvider/GridPlus/components/GridPlusSetup.tsx +++ b/src/context/WalletProvider/GridPlus/components/GridPlusSetup.tsx @@ -115,6 +115,15 @@ export const GridPlusSetup = () => { throw new Error(translate('walletProvider.gridplus.errors.walletNotAvailable')) } + // If we don't have walletUid yet (e.g., when adding new SafeCard with existing wallet), + // we need to fetch it from the wallet + if (walletUid === undefined || isExternal === undefined) { + const validation = await finalWallet.validateActiveWallet() + walletUid = validation.uid + isExternal = validation.isExternal + console.log('[GridPlusSetup] Captured wallet UID for new SafeCard:', walletUid) + } + const safeCardWalletId = state?.safeCardWalletId || `gridplus:${safeCardUuid}` const finalSafeCardName = safeCardName.trim() || defaultName From 334cd26c923b1e00753b76529024a215523b5930 Mon Sep 17 00:00:00 2001 From: gomes <17035424+gomesalexandre@users.noreply.github.com> Date: Wed, 26 Nov 2025 14:09:04 +0100 Subject: [PATCH 04/26] feat: add UI enhancements for GridPlus SafeCards MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Added Tag indicators for SafeCard (blue) vs Internal (green) wallets in list - Added "Switch SafeCard" menu option that disconnects and reopens wallet drawer - Created GridPlusMenu component to extend wallet menu functionality - Added translations for new menu option - Shows visual distinction between external SafeCards and internal device wallets Users can now easily: 1. See which type of wallet they're using (SafeCard vs Internal) 2. Quickly switch between SafeCards via the wallet menu 3. Understand their wallet configuration at a glance 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- src/assets/translations/en/main.json | 3 ++ .../GridPlus/components/GridPlusMenu.tsx | 42 +++++++++++++++++++ .../GridPlus/components/GridPlusSetup.tsx | 2 + .../GridPlus/components/SafeCardRow.tsx | 25 ++++++++++- src/context/WalletProvider/config.ts | 13 +++--- 5 files changed, 75 insertions(+), 10 deletions(-) create mode 100644 src/context/WalletProvider/GridPlus/components/GridPlusMenu.tsx diff --git a/src/assets/translations/en/main.json b/src/assets/translations/en/main.json index e4e34e7e171..b4fc6301711 100644 --- a/src/assets/translations/en/main.json +++ b/src/assets/translations/en/main.json @@ -1463,6 +1463,9 @@ "deviceNotConnected": "Device not connected. Call connectDevice first.", "connectFailure": "Unable to connect GridPlus wallet", "unknown": "An unexpected error occurred communicating with GridPlus wallet" + }, + "menu": { + "switchSafeCard": "Switch SafeCard" } }, "ledger": { diff --git a/src/context/WalletProvider/GridPlus/components/GridPlusMenu.tsx b/src/context/WalletProvider/GridPlus/components/GridPlusMenu.tsx new file mode 100644 index 00000000000..325dd121525 --- /dev/null +++ b/src/context/WalletProvider/GridPlus/components/GridPlusMenu.tsx @@ -0,0 +1,42 @@ +import { RepeatIcon } from '@chakra-ui/icons' +import { MenuItem } from '@chakra-ui/react' +import { useCallback } from 'react' +import { useTranslate } from 'react-polyglot' + +import { ManageAccountsMenuItem } from '@/components/Layout/Header/NavBar/ManageAccountsMenuItem' +import { WalletActions } from '@/context/WalletProvider/actions' +import { useWallet } from '@/hooks/useWallet/useWallet' + +const switchIcon = + +type GridPlusMenuProps = { + onClose?: () => void +} + +export const GridPlusMenu = ({ onClose }: GridPlusMenuProps) => { + const translate = useTranslate() + const { dispatch } = useWallet() + + const handleSwitchSafeCard = useCallback(() => { + // Disconnect current wallet + dispatch({ type: WalletActions.RESET_STATE }) + + // Open wallet modal to GridPlus connect screen + dispatch({ + type: WalletActions.SET_INITIAL_ROUTE, + payload: '/gridplus/connect', + }) + dispatch({ type: WalletActions.SET_WALLET_MODAL, payload: true }) + + onClose?.() + }, [dispatch, onClose]) + + return ( + <> + + {translate('walletProvider.gridplus.menu.switchSafeCard')} + + + + ) +} diff --git a/src/context/WalletProvider/GridPlus/components/GridPlusSetup.tsx b/src/context/WalletProvider/GridPlus/components/GridPlusSetup.tsx index eb8a8921b13..b9a04b228f8 100644 --- a/src/context/WalletProvider/GridPlus/components/GridPlusSetup.tsx +++ b/src/context/WalletProvider/GridPlus/components/GridPlusSetup.tsx @@ -182,6 +182,8 @@ export const GridPlusSetup = () => { defaultName, state?.safeCardWalletId, state?.deviceId, + state?.walletUid, + state?.isExternal, physicalDeviceId, sessionId, translate, diff --git a/src/context/WalletProvider/GridPlus/components/SafeCardRow.tsx b/src/context/WalletProvider/GridPlus/components/SafeCardRow.tsx index bd472735674..53675d388dd 100644 --- a/src/context/WalletProvider/GridPlus/components/SafeCardRow.tsx +++ b/src/context/WalletProvider/GridPlus/components/SafeCardRow.tsx @@ -1,4 +1,14 @@ -import { Box, Button, ButtonGroup, HStack, IconButton, Input, Text, VStack } from '@chakra-ui/react' +import { + Box, + Button, + ButtonGroup, + HStack, + IconButton, + Input, + Tag, + Text, + VStack, +} from '@chakra-ui/react' import { memo } from 'react' import { FaWallet } from 'react-icons/fa' import { IoMdCreate, IoMdTrash } from 'react-icons/io' @@ -68,7 +78,18 @@ export const SafeCardRow = memo( /> ) : ( - {safeCard.name} + + {safeCard.name} + {safeCard.isExternal !== undefined && ( + + {safeCard.isExternal ? 'SafeCard' : 'Internal'} + + )} + {safeCard.lastConnectedAt && ( {translate('walletProvider.gridplus.list.lastConnected', { diff --git a/src/context/WalletProvider/config.ts b/src/context/WalletProvider/config.ts index 762a158d25f..1cf8cf5edc8 100644 --- a/src/context/WalletProvider/config.ts +++ b/src/context/WalletProvider/config.ts @@ -310,13 +310,6 @@ const TrezorMenu = lazy(() => default: TrezorMenu, })), ) -const ManageAccountsMenuItem = lazy(() => - import('@/components/Layout/Header/NavBar/ManageAccountsMenuItem').then( - ({ ManageAccountsMenuItem }) => ({ - default: ManageAccountsMenuItem, - }), - ), -) const MobileCreate = lazy(() => import('./MobileWallet/components/MobileCreate').then(({ MobileCreate }) => ({ @@ -510,7 +503,11 @@ export const SUPPORTED_WALLETS: SupportedWalletInfoByKeyManager = { { path: '/gridplus/pair', component: GridPlusPair }, { path: '/gridplus/setup', component: GridPlusSetup }, ], - connectedMenuComponent: ManageAccountsMenuItem, + connectedMenuComponent: lazy(() => + import('./GridPlus/components/GridPlusMenu').then(({ GridPlusMenu }) => ({ + default: GridPlusMenu, + })), + ), }, } From ba339c9113788ad3c078fa95118536a6ae1ca487 Mon Sep 17 00:00:00 2001 From: gomes <17035424+gomesalexandre@users.noreply.github.com> Date: Wed, 26 Nov 2025 14:55:59 +0100 Subject: [PATCH 05/26] feat(gridplus): add SafeCard validation for improved UX MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Validate correct SafeCard on reconnection in WalletProvider - Set expected wallet UID for JIT validation before signing - Add UI tags for SafeCard/Internal distinction - Add Switch SafeCard menu option - Reject connections without stored walletUid (cache clear required) Closes #10904 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- gridplus-safecard-validation.md | 60 +++++++++++++++++++ package.json | 2 +- .../GridPlus/hooks/useGridPlusConnection.ts | 5 +- src/context/WalletProvider/GridPlus/utils.ts | 32 ++++++++-- src/context/WalletProvider/WalletProvider.tsx | 35 +++++++++++ yarn.lock | 10 ++-- 6 files changed, 130 insertions(+), 14 deletions(-) create mode 100644 gridplus-safecard-validation.md diff --git a/gridplus-safecard-validation.md b/gridplus-safecard-validation.md new file mode 100644 index 00000000000..9684a43b0b0 --- /dev/null +++ b/gridplus-safecard-validation.md @@ -0,0 +1,60 @@ +# GridPlus SafeCard Validation + +## Problem + +Previously, ShapeShift operated on a "trust me bro" basis when handling GridPlus SafeCards. The app would: +- Store SafeCards using app-generated UUIDs only +- Never validate which physical SafeCard was actually inserted +- Allow users to connect the wrong SafeCard without detection +- Proceed with signing transactions without verifying the correct card was present + +This could lead to confusing UX where users might accidentally use the wrong wallet or end up in weird app states. + +## Solution + +Implement hardware-based wallet UID validation at three critical points: + +### 1. Initial Pairing +When a user first pairs a SafeCard, we now: +- Fetch the hardware wallet UID from the device (32-byte identifier from firmware) +- Store this UID alongside the user's SafeCard in Redux state +- Use this UID as the source of truth for that SafeCard + +### 2. Reconnection +When the app loads and finds a GridPlus wallet from a previous session, we now: +- Validate that the inserted SafeCard's UID matches the expected stored UID +- Reject the connection if the wrong SafeCard is inserted +- Provide clear error messages to guide users to insert the correct card + +### 3. Just-In-Time (JIT) Signing Validation +Before every signing operation (transaction, message, typed data), we now: +- Re-validate that the correct SafeCard is still inserted +- Prevent signing if the SafeCard was swapped after connection +- Support all chains: Ethereum, Bitcoin, Solana, Cosmos, Thorchain, Mayachain + +## Implementation + +### hdwallet Package Changes (shapeshift/hdwallet) +Added to `GridPlusHDWallet` class: +- `setExpectedWalletUid(walletUid: string)`: Configure expected UID for validation +- `validateActiveWallet(expectedUid?: string)`: Fetch current wallet UID and validate +- Private `validateBeforeSigning()`: Called before all signing methods + +### Web Changes (shapeshift/web) +- **WalletProvider reconnection**: Validates SafeCard on app load +- **finalizeWalletSetup**: Sets expected UID after connection for JIT validation +- **GridPlus utils**: Wire up validation through connection flow +- **Redux state**: Store `walletUid` and `isExternal` flag per SafeCard + +## User Experience + +Users will now see clear feedback when: +- They try to reconnect with the wrong SafeCard inserted +- They swap SafeCards after connecting but before signing +- Legacy SafeCards without stored UIDs (requires cache clear to use) + +This ensures the app state always matches the physical hardware, preventing confusion and improving overall UX. + +## Migration + +No data migration provided. Users with existing SafeCards will need to clear their cache and re-pair their devices. This is a one-time operation that establishes the UID mapping for future sessions. diff --git a/package.json b/package.json index 8345375bc15..b29de21607a 100644 --- a/package.json +++ b/package.json @@ -102,7 +102,7 @@ "@shapeshiftoss/errors": "workspace:^", "@shapeshiftoss/hdwallet-coinbase": "1.62.10", "@shapeshiftoss/hdwallet-core": "1.62.12-gridplus-validation.4", - "@shapeshiftoss/hdwallet-gridplus": "1.62.12", + "@shapeshiftoss/hdwallet-gridplus": "1.62.13-gridplus-validation.2", "@shapeshiftoss/hdwallet-keepkey": "1.62.10", "@shapeshiftoss/hdwallet-keepkey-webusb": "1.62.10", "@shapeshiftoss/hdwallet-keplr": "1.62.10", diff --git a/src/context/WalletProvider/GridPlus/hooks/useGridPlusConnection.ts b/src/context/WalletProvider/GridPlus/hooks/useGridPlusConnection.ts index 7916686400f..da5bd7993f4 100644 --- a/src/context/WalletProvider/GridPlus/hooks/useGridPlusConnection.ts +++ b/src/context/WalletProvider/GridPlus/hooks/useGridPlusConnection.ts @@ -135,8 +135,6 @@ export const useGridPlusConnection = () => { setError(null) try { - appDispatch(gridplusSlice.actions.setActiveSafeCard(id)) - // Get the SafeCard details to check for walletUid const safeCard = safeCards.find(card => card.id === id) const expectedWalletUid = safeCard?.walletUid @@ -161,6 +159,9 @@ export const useGridPlusConnection = () => { return } + // Only set active AFTER successful validation + appDispatch(gridplusSlice.actions.setActiveSafeCard(id)) + finalizeWalletSetup({ wallet, safeCardWalletId, diff --git a/src/context/WalletProvider/GridPlus/utils.ts b/src/context/WalletProvider/GridPlus/utils.ts index c8a739fcac6..68c4c992d0c 100644 --- a/src/context/WalletProvider/GridPlus/utils.ts +++ b/src/context/WalletProvider/GridPlus/utils.ts @@ -117,7 +117,7 @@ type FinalizeWalletSetupParams = { isExternal?: boolean } -export const finalizeWalletSetup = ({ +export const finalizeWalletSetup = async ({ wallet, safeCardWalletId, walletDispatch, @@ -126,9 +126,29 @@ export const finalizeWalletSetup = ({ appDispatch, walletUid, isExternal, -}: FinalizeWalletSetupParams): void => { +}: FinalizeWalletSetupParams): Promise => { const safeCardUuid = safeCardWalletId.replace('gridplus:', '') + // If walletUid is missing, fetch it from the wallet + let finalWalletUid = walletUid + let finalIsExternal = isExternal + + if (finalWalletUid === undefined || finalIsExternal === undefined) { + try { + const validation = await wallet.validateActiveWallet() + finalWalletUid = validation.uid + finalIsExternal = validation.isExternal + console.log('[finalizeWalletSetup] Fetched missing wallet UID:', finalWalletUid) + } catch (error) { + console.error('[finalizeWalletSetup] Failed to fetch wallet UID:', error) + } + } + + // Set expected wallet UID for JIT validation before signing + if (finalWalletUid && wallet.setExpectedWalletUid) { + wallet.setExpectedWalletUid(finalWalletUid) + } + walletDispatch({ type: WalletActions.SET_WALLET, payload: { @@ -153,13 +173,13 @@ export const finalizeWalletSetup = ({ appDispatch(gridplusSlice.actions.setLastConnectedAt(safeCardUuid)) - // Update the SafeCard's walletUid if it was provided - if (walletUid !== undefined && isExternal !== undefined) { + // Always update the SafeCard's walletUid if we have it + if (finalWalletUid !== undefined && finalIsExternal !== undefined) { appDispatch( gridplusSlice.actions.updateSafeCardWalletUid({ id: safeCardUuid, - walletUid, - isExternal, + walletUid: finalWalletUid, + isExternal: finalIsExternal, }), ) } diff --git a/src/context/WalletProvider/WalletProvider.tsx b/src/context/WalletProvider/WalletProvider.tsx index 0dbbb5abf8c..c2884f9260d 100644 --- a/src/context/WalletProvider/WalletProvider.tsx +++ b/src/context/WalletProvider/WalletProvider.tsx @@ -2,6 +2,7 @@ import type { ComponentWithAs, IconProps } from '@chakra-ui/react' import { useColorModeValue } from '@chakra-ui/react' import type { HDWallet } from '@shapeshiftoss/hdwallet-core' import { Keyring } from '@shapeshiftoss/hdwallet-core' +import type { GridPlusHDWallet } from '@shapeshiftoss/hdwallet-gridplus' import type { MetaMaskMultiChainHDWallet } from '@shapeshiftoss/hdwallet-metamask-multichain' import type { EthereumProvider as EthereumProviderType } from '@walletconnect/ethereum-provider/dist/types/EthereumProvider' import findIndex from 'lodash/findIndex' @@ -828,6 +829,39 @@ export const WalletProvider = ({ children }: { children: React.ReactNode }): JSX if (gridPlusWallet) { const { name, icon } = SUPPORTED_WALLETS[KeyManager.GridPlus] try { + // Validate that the correct SafeCard is inserted before connecting + const safeCardUuid = localWalletDeviceId.replace('gridplus:', '') + const gridPlusState = store.getState().gridplus + const safeCard = gridPlusState.safecards.byId[safeCardUuid] + + if (!safeCard?.walletUid) { + console.error( + '[WalletProvider] SafeCard missing walletUid - clear cache required', + ) + disconnect() + dispatch({ type: WalletActions.SET_LOCAL_WALLET_LOADING, payload: false }) + break + } + + // Validate that the inserted card matches the expected walletUid + const validation = await (gridPlusWallet as GridPlusHDWallet).validateActiveWallet( + safeCard.walletUid, + ) + + if (!validation.isValid) { + console.error('[WalletProvider] Wrong SafeCard inserted on reconnection') + disconnect() + dispatch({ type: WalletActions.SET_LOCAL_WALLET_LOADING, payload: false }) + break + } + + console.log('[WalletProvider] SafeCard validation passed on reconnection') + + // Set expected wallet UID for JIT validation before signing + if ((gridPlusWallet as GridPlusHDWallet).setExpectedWalletUid) { + ;(gridPlusWallet as GridPlusHDWallet).setExpectedWalletUid(safeCard.walletUid) + } + dispatch({ type: WalletActions.SET_WALLET, payload: { @@ -843,6 +877,7 @@ export const WalletProvider = ({ children }: { children: React.ReactNode }): JSX payload: true, }) } catch (e) { + console.error('[WalletProvider] GridPlus reconnection validation failed:', e) disconnect() } } else { diff --git a/yarn.lock b/yarn.lock index 49b5ca7f236..d969a860da6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10933,9 +10933,9 @@ __metadata: languageName: node linkType: hard -"@shapeshiftoss/hdwallet-gridplus@npm:1.62.12": - version: 1.62.12 - resolution: "@shapeshiftoss/hdwallet-gridplus@npm:1.62.12" +"@shapeshiftoss/hdwallet-gridplus@npm:1.62.13-gridplus-validation.2": + version: 1.62.13-gridplus-validation.2 + resolution: "@shapeshiftoss/hdwallet-gridplus@npm:1.62.13-gridplus-validation.2" dependencies: "@bitcoinerlab/secp256k1": ^1.1.1 "@ethereumjs/common": 4.4.0 @@ -10947,7 +10947,7 @@ __metadata: crypto-js: ^4.2.0 gridplus-sdk: ^3.2.0 lodash: ^4.17.21 - checksum: e9952555f0d8608dac360c2b69e493b331f4b15e2f33e30a08317fa9d5ab3ca91e71b8a4d6e65564b33042834e2dddd897c35c5ebabc72c088b08f12cc4c77f6 + checksum: 6ad58883e9cabae6c2f323bcfbc94850633fc58efbb0798862263b0468a1efcc692017f4eed28bea6c39c4c84cfd9e96a09b378dcf5eabbbda1731adabc2029a languageName: node linkType: hard @@ -11460,7 +11460,7 @@ __metadata: "@shapeshiftoss/errors": "workspace:^" "@shapeshiftoss/hdwallet-coinbase": 1.62.10 "@shapeshiftoss/hdwallet-core": 1.62.12-gridplus-validation.4 - "@shapeshiftoss/hdwallet-gridplus": 1.62.12 + "@shapeshiftoss/hdwallet-gridplus": 1.62.13-gridplus-validation.2 "@shapeshiftoss/hdwallet-keepkey": 1.62.10 "@shapeshiftoss/hdwallet-keepkey-webusb": 1.62.10 "@shapeshiftoss/hdwallet-keplr": 1.62.10 From 0f6dd5489e7e30d7fb6e53915b076fea08484fd5 Mon Sep 17 00:00:00 2001 From: gomes <17035424+gomesalexandre@users.noreply.github.com> Date: Wed, 26 Nov 2025 17:09:05 +0100 Subject: [PATCH 06/26] fix: update web to use new hdwallet adapter API - Rewrote connectAndPairDevice to use new connectDevice() return type - Rewrote pairConnectedDevice to call connectDevice() then pairDevice() - Fixed type declarations (type: 'external' | 'internal' instead of boolean) - Fixed WalletProvider validation to use throw-based API (removed isValid check) - Removed dead code accessing getSessionId() - Removed unused sessionId variables - All lint and type-check passing Version: 1.62.13-gridplus-validation.10 --- package.json | 36 +-- .../GridPlus/components/GridPlusPair.tsx | 5 +- .../GridPlus/components/GridPlusSetup.tsx | 22 +- .../GridPlus/components/SafeCardRow.tsx | 6 +- .../GridPlus/hooks/useGridPlusConnection.ts | 10 +- src/context/WalletProvider/GridPlus/utils.ts | 84 +----- src/context/WalletProvider/WalletProvider.tsx | 15 +- .../slices/gridplusSlice/gridplusSlice.ts | 8 +- src/state/slices/gridplusSlice/types.ts | 12 +- yarn.lock | 275 ++++++++---------- 10 files changed, 176 insertions(+), 297 deletions(-) diff --git a/package.json b/package.json index b29de21607a..387f17eedd3 100644 --- a/package.json +++ b/package.json @@ -100,24 +100,24 @@ "@shapeshiftoss/chain-adapters": "workspace:^", "@shapeshiftoss/contracts": "workspace:^", "@shapeshiftoss/errors": "workspace:^", - "@shapeshiftoss/hdwallet-coinbase": "1.62.10", - "@shapeshiftoss/hdwallet-core": "1.62.12-gridplus-validation.4", - "@shapeshiftoss/hdwallet-gridplus": "1.62.13-gridplus-validation.2", - "@shapeshiftoss/hdwallet-keepkey": "1.62.10", - "@shapeshiftoss/hdwallet-keepkey-webusb": "1.62.10", - "@shapeshiftoss/hdwallet-keplr": "1.62.10", - "@shapeshiftoss/hdwallet-ledger": "1.62.10", - "@shapeshiftoss/hdwallet-ledger-webhid": "1.62.10", - "@shapeshiftoss/hdwallet-ledger-webusb": "1.62.10", - "@shapeshiftoss/hdwallet-metamask-multichain": "1.62.10", - "@shapeshiftoss/hdwallet-native": "1.62.10", - "@shapeshiftoss/hdwallet-native-vault": "1.62.10", - "@shapeshiftoss/hdwallet-phantom": "1.62.10", - "@shapeshiftoss/hdwallet-trezor": "1.62.10", - "@shapeshiftoss/hdwallet-trezor-connect": "1.62.10", - "@shapeshiftoss/hdwallet-vultisig": "1.62.10", - "@shapeshiftoss/hdwallet-walletconnect": "1.62.10", - "@shapeshiftoss/hdwallet-walletconnectv2": "1.62.10", + "@shapeshiftoss/hdwallet-coinbase": "1.62.13-gridplus-validation.10", + "@shapeshiftoss/hdwallet-core": "1.62.13-gridplus-validation.10", + "@shapeshiftoss/hdwallet-gridplus": "1.62.13-gridplus-validation.10", + "@shapeshiftoss/hdwallet-keepkey": "1.62.13-gridplus-validation.10", + "@shapeshiftoss/hdwallet-keepkey-webusb": "1.62.13-gridplus-validation.10", + "@shapeshiftoss/hdwallet-keplr": "1.62.13-gridplus-validation.10", + "@shapeshiftoss/hdwallet-ledger": "1.62.13-gridplus-validation.10", + "@shapeshiftoss/hdwallet-ledger-webhid": "1.62.13-gridplus-validation.10", + "@shapeshiftoss/hdwallet-ledger-webusb": "1.62.13-gridplus-validation.10", + "@shapeshiftoss/hdwallet-metamask-multichain": "1.62.13-gridplus-validation.10", + "@shapeshiftoss/hdwallet-native": "1.62.13-gridplus-validation.10", + "@shapeshiftoss/hdwallet-native-vault": "1.62.13-gridplus-validation.10", + "@shapeshiftoss/hdwallet-phantom": "1.62.13-gridplus-validation.10", + "@shapeshiftoss/hdwallet-trezor": "1.62.13-gridplus-validation.10", + "@shapeshiftoss/hdwallet-trezor-connect": "1.62.13-gridplus-validation.10", + "@shapeshiftoss/hdwallet-vultisig": "1.62.13-gridplus-validation.10", + "@shapeshiftoss/hdwallet-walletconnect": "1.62.13-gridplus-validation.10", + "@shapeshiftoss/hdwallet-walletconnectv2": "1.62.13-gridplus-validation.10", "@shapeshiftoss/swapper": "workspace:^", "@shapeshiftoss/types": "workspace:^", "@shapeshiftoss/unchained-client": "workspace:^", diff --git a/src/context/WalletProvider/GridPlus/components/GridPlusPair.tsx b/src/context/WalletProvider/GridPlus/components/GridPlusPair.tsx index df400750070..5e08eab0841 100644 --- a/src/context/WalletProvider/GridPlus/components/GridPlusPair.tsx +++ b/src/context/WalletProvider/GridPlus/components/GridPlusPair.tsx @@ -51,11 +51,10 @@ export const GridPlusPair = () => { throw new Error(translate('walletProvider.gridplus.errors.adapterNotAvailable')) } - const { wallet, walletUid, isExternal } = await pairConnectedDevice({ + const { wallet, walletUid, type } = await pairConnectedDevice({ adapter, deviceId, pairingCode, - dispatch: appDispatch, }) appDispatch(gridplusSlice.actions.setActiveSafeCard(safeCardUuid)) @@ -66,7 +65,7 @@ export const GridPlusPair = () => { wallet, safeCardWalletId: `gridplus:${safeCardUuid}`, walletUid, - isExternal, + type, }, }) } catch (err) { diff --git a/src/context/WalletProvider/GridPlus/components/GridPlusSetup.tsx b/src/context/WalletProvider/GridPlus/components/GridPlusSetup.tsx index b9a04b228f8..81b0292f7f5 100644 --- a/src/context/WalletProvider/GridPlus/components/GridPlusSetup.tsx +++ b/src/context/WalletProvider/GridPlus/components/GridPlusSetup.tsx @@ -22,7 +22,7 @@ type LocationState = { needsPairing?: boolean deviceId?: string walletUid?: string - isExternal?: boolean + type?: 'external' | 'internal' } export const GridPlusSetup = () => { @@ -34,7 +34,6 @@ export const GridPlusSetup = () => { const appDispatch = useAppDispatch() const physicalDeviceId = useAppSelector(gridplusSlice.selectors.selectPhysicalDeviceId) - const sessionId = useAppSelector(gridplusSlice.selectors.selectSessionId) const state = location.state as LocationState | undefined const safeCardUuid = state?.safeCardUuid @@ -67,9 +66,9 @@ export const GridPlusSetup = () => { try { let finalWallet = wallet - // Use walletUid and isExternal from state if available (from pairing flow) + // Use walletUid and type from state if available (from pairing flow) let walletUid: string | undefined = state?.walletUid - let isExternal: boolean | undefined = state?.isExternal + let type: 'external' | 'internal' | undefined = state?.type if (!finalWallet) { const adapter = await getAdapter(KeyManager.GridPlus) @@ -86,11 +85,10 @@ export const GridPlusSetup = () => { adapter, deviceId, pairingCode, - dispatch: appDispatch, }) finalWallet = result.wallet walletUid = result.walletUid - isExternal = result.isExternal + type = result.type } else { const connectionDeviceId = physicalDeviceId || deviceId || state?.deviceId if (!connectionDeviceId) { @@ -100,8 +98,6 @@ export const GridPlusSetup = () => { const result = await connectAndPairDevice({ adapter, deviceId: connectionDeviceId, - sessionId: sessionId ?? undefined, - dispatch: appDispatch, }) finalWallet = result ?? undefined } @@ -117,11 +113,10 @@ export const GridPlusSetup = () => { // If we don't have walletUid yet (e.g., when adding new SafeCard with existing wallet), // we need to fetch it from the wallet - if (walletUid === undefined || isExternal === undefined) { + if (walletUid === undefined || type === undefined) { const validation = await finalWallet.validateActiveWallet() walletUid = validation.uid - isExternal = validation.isExternal - console.log('[GridPlusSetup] Captured wallet UID for new SafeCard:', walletUid) + type = validation.type } const safeCardWalletId = state?.safeCardWalletId || `gridplus:${safeCardUuid}` @@ -132,7 +127,7 @@ export const GridPlusSetup = () => { id: safeCardUuid, name: finalSafeCardName, walletUid, - isExternal, + type, }), ) @@ -183,9 +178,8 @@ export const GridPlusSetup = () => { state?.safeCardWalletId, state?.deviceId, state?.walletUid, - state?.isExternal, + state?.type, physicalDeviceId, - sessionId, translate, getAdapter, walletDispatch, diff --git a/src/context/WalletProvider/GridPlus/components/SafeCardRow.tsx b/src/context/WalletProvider/GridPlus/components/SafeCardRow.tsx index 53675d388dd..8649fc1fc42 100644 --- a/src/context/WalletProvider/GridPlus/components/SafeCardRow.tsx +++ b/src/context/WalletProvider/GridPlus/components/SafeCardRow.tsx @@ -80,13 +80,13 @@ export const SafeCardRow = memo( {safeCard.name} - {safeCard.isExternal !== undefined && ( + {safeCard.type && ( - {safeCard.isExternal ? 'SafeCard' : 'Internal'} + {safeCard.type === 'internal' ? 'Internal' : 'SafeCard'} )} diff --git a/src/context/WalletProvider/GridPlus/hooks/useGridPlusConnection.ts b/src/context/WalletProvider/GridPlus/hooks/useGridPlusConnection.ts index da5bd7993f4..5ae9e0da5bb 100644 --- a/src/context/WalletProvider/GridPlus/hooks/useGridPlusConnection.ts +++ b/src/context/WalletProvider/GridPlus/hooks/useGridPlusConnection.ts @@ -21,7 +21,6 @@ export const useGridPlusConnection = () => { const safeCards = useAppSelector(gridplusSlice.selectors.selectSafeCards) const physicalDeviceId = useAppSelector(gridplusSlice.selectors.selectPhysicalDeviceId) - const sessionId = useAppSelector(gridplusSlice.selectors.selectSessionId) const [isAddingNew, setIsAddingNew] = useState(false) const [connectingCardId, setConnectingCardId] = useState(null) @@ -91,8 +90,6 @@ export const useGridPlusConnection = () => { const wallet = await connectAndPairDevice({ adapter, deviceId: connectionDeviceId, - sessionId: sessionId ?? undefined, - dispatch: appDispatch, }) if (!wallet) { @@ -122,8 +119,6 @@ export const useGridPlusConnection = () => { defaultSafeCardName, getConnectionDeviceId, getAdapterWithKeyring, - sessionId, - appDispatch, navigate, setErrorLoading, ], @@ -146,8 +141,6 @@ export const useGridPlusConnection = () => { const wallet = await connectAndPairDevice({ adapter, deviceId: connectionDeviceId, - sessionId: sessionId ?? undefined, - dispatch: appDispatch, expectedWalletUid, }) @@ -170,7 +163,7 @@ export const useGridPlusConnection = () => { navigate, appDispatch, walletUid: safeCard?.walletUid, - isExternal: safeCard?.isExternal, + type: safeCard?.type, }) } catch (e) { setConnectingCardId(null) @@ -182,7 +175,6 @@ export const useGridPlusConnection = () => { safeCards, getConnectionDeviceId, getAdapterWithKeyring, - sessionId, walletDispatch, localWallet, navigate, diff --git a/src/context/WalletProvider/GridPlus/utils.ts b/src/context/WalletProvider/GridPlus/utils.ts index 68c4c992d0c..e02a9409557 100644 --- a/src/context/WalletProvider/GridPlus/utils.ts +++ b/src/context/WalletProvider/GridPlus/utils.ts @@ -16,57 +16,18 @@ type LocalWallet = ReturnType type ConnectAndPairDeviceParams = { adapter: GridPlusAdapter deviceId: string - sessionId: string | undefined - dispatch: AppDispatch expectedWalletUid?: string } export const connectAndPairDevice = async ({ adapter, deviceId, - sessionId, - dispatch, expectedWalletUid, }: ConnectAndPairDeviceParams): Promise => { - if (!sessionId) { - const { isPaired, sessionId: newSessionId } = await adapter.connectDevice( - deviceId, - undefined, - undefined, - ) - - if (!isPaired) { - return null - } - - if (newSessionId) { - dispatch( - gridplusSlice.actions.setConnection({ - physicalDeviceId: deviceId, - sessionId: newSessionId, - }), - ) - } - } + const wallet = await adapter.connectDevice(deviceId, undefined, expectedWalletUid) - const wallet = await adapter.pairDevice( - deviceId, - undefined, - undefined, - sessionId ?? undefined, - expectedWalletUid, - ) - - if (!sessionId && wallet.getSessionId) { - const walletSessionId = wallet.getSessionId() - if (walletSessionId) { - dispatch( - gridplusSlice.actions.setConnection({ - physicalDeviceId: deviceId, - sessionId: walletSessionId, - }), - ) - } + if (!wallet) { + return null } return wallet @@ -76,34 +37,22 @@ type PairConnectedDeviceParams = { adapter: GridPlusAdapter deviceId: string pairingCode: string - dispatch: AppDispatch } export const pairConnectedDevice = async ({ adapter, deviceId, pairingCode, - dispatch, }: PairConnectedDeviceParams): Promise<{ wallet: GridPlusHDWallet walletUid: string - isExternal: boolean + type: 'external' | 'internal' }> => { - const { wallet, walletUid, isExternal } = await adapter.pairConnectedDevice(deviceId, pairingCode) - - if (wallet.getSessionId) { - const walletSessionId = wallet.getSessionId() - if (walletSessionId) { - dispatch( - gridplusSlice.actions.setConnection({ - physicalDeviceId: deviceId, - sessionId: walletSessionId, - }), - ) - } - } + await adapter.connectDevice(deviceId) + + const { wallet, walletUid, type } = await adapter.pairDevice(pairingCode) - return { wallet, walletUid, isExternal } + return { wallet, walletUid, type } } type FinalizeWalletSetupParams = { @@ -114,7 +63,7 @@ type FinalizeWalletSetupParams = { navigate: NavigateFunction appDispatch: AppDispatch walletUid?: string - isExternal?: boolean + type?: 'external' | 'internal' } export const finalizeWalletSetup = async ({ @@ -125,22 +74,21 @@ export const finalizeWalletSetup = async ({ navigate, appDispatch, walletUid, - isExternal, + type, }: FinalizeWalletSetupParams): Promise => { const safeCardUuid = safeCardWalletId.replace('gridplus:', '') // If walletUid is missing, fetch it from the wallet let finalWalletUid = walletUid - let finalIsExternal = isExternal + let finalType = type - if (finalWalletUid === undefined || finalIsExternal === undefined) { + if (finalWalletUid === undefined || finalType === undefined) { try { const validation = await wallet.validateActiveWallet() finalWalletUid = validation.uid - finalIsExternal = validation.isExternal - console.log('[finalizeWalletSetup] Fetched missing wallet UID:', finalWalletUid) + finalType = validation.type } catch (error) { - console.error('[finalizeWalletSetup] Failed to fetch wallet UID:', error) + // Silently fail - validation not critical for setup } } @@ -174,12 +122,12 @@ export const finalizeWalletSetup = async ({ appDispatch(gridplusSlice.actions.setLastConnectedAt(safeCardUuid)) // Always update the SafeCard's walletUid if we have it - if (finalWalletUid !== undefined && finalIsExternal !== undefined) { + if (finalWalletUid !== undefined && finalType !== undefined) { appDispatch( gridplusSlice.actions.updateSafeCardWalletUid({ id: safeCardUuid, walletUid: finalWalletUid, - isExternal: finalIsExternal, + type: finalType, }), ) } diff --git a/src/context/WalletProvider/WalletProvider.tsx b/src/context/WalletProvider/WalletProvider.tsx index c2884f9260d..76dadfbafa1 100644 --- a/src/context/WalletProvider/WalletProvider.tsx +++ b/src/context/WalletProvider/WalletProvider.tsx @@ -843,19 +843,8 @@ export const WalletProvider = ({ children }: { children: React.ReactNode }): JSX break } - // Validate that the inserted card matches the expected walletUid - const validation = await (gridPlusWallet as GridPlusHDWallet).validateActiveWallet( - safeCard.walletUid, - ) - - if (!validation.isValid) { - console.error('[WalletProvider] Wrong SafeCard inserted on reconnection') - disconnect() - dispatch({ type: WalletActions.SET_LOCAL_WALLET_LOADING, payload: false }) - break - } - - console.log('[WalletProvider] SafeCard validation passed on reconnection') + // Validate that the inserted card matches the expected walletUid (throws on mismatch) + await (gridPlusWallet as GridPlusHDWallet).validateActiveWallet(safeCard.walletUid) // Set expected wallet UID for JIT validation before signing if ((gridPlusWallet as GridPlusHDWallet).setExpectedWalletUid) { diff --git a/src/state/slices/gridplusSlice/gridplusSlice.ts b/src/state/slices/gridplusSlice/gridplusSlice.ts index 0e3b9036731..d83b0bc2101 100644 --- a/src/state/slices/gridplusSlice/gridplusSlice.ts +++ b/src/state/slices/gridplusSlice/gridplusSlice.ts @@ -40,7 +40,7 @@ export const gridplusSlice = createSlice({ id?: string name: string walletUid?: string - isExternal?: boolean + type?: 'external' | 'internal' }>, ) => { const id = action.payload.id || uuidv4() @@ -49,7 +49,7 @@ export const gridplusSlice = createSlice({ name: action.payload.name, createdAt: Date.now(), walletUid: action.payload.walletUid, - isExternal: action.payload.isExternal, + type: action.payload.type, } state.safecards.byId[id] = safeCard state.safecards.ids.push(id) @@ -98,12 +98,12 @@ export const gridplusSlice = createSlice({ action: PayloadAction<{ id: string walletUid: string - isExternal: boolean + type: 'external' | 'internal' }>, ) => { if (state.safecards.byId[action.payload.id]) { state.safecards.byId[action.payload.id].walletUid = action.payload.walletUid - state.safecards.byId[action.payload.id].isExternal = action.payload.isExternal + state.safecards.byId[action.payload.id].type = action.payload.type } }, ), diff --git a/src/state/slices/gridplusSlice/types.ts b/src/state/slices/gridplusSlice/types.ts index ab1f1a7899e..781e9773dac 100644 --- a/src/state/slices/gridplusSlice/types.ts +++ b/src/state/slices/gridplusSlice/types.ts @@ -3,18 +3,8 @@ export type SafeCard = { name: string createdAt: number lastConnectedAt?: number - /** - * The actual wallet UID from the GridPlus device (hex string). - * This is the unique identifier for the wallet seed stored on the SafeCard or internal storage. - * Added in migration 27 - will be undefined for legacy SafeCards until re-paired. - */ walletUid?: string - /** - * Whether this is an external (SafeCard) or internal wallet. - * true = SafeCard, false = internal device wallet. - * Added in migration 27 - will be undefined for legacy SafeCards until re-paired. - */ - isExternal?: boolean + type?: 'external' | 'internal' } export type GridPlusConnection = { diff --git a/yarn.lock b/yarn.lock index d969a860da6..172d47651c8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5872,6 +5872,15 @@ __metadata: languageName: node linkType: hard +"@ethereumjs/rlp@npm:5.0.2, @ethereumjs/rlp@npm:^5.0.2": + version: 5.0.2 + resolution: "@ethereumjs/rlp@npm:5.0.2" + bin: + rlp: bin/rlp.cjs + checksum: b569061ddb1f4cf56a82f7a677c735ba37f9e94e2bbaf567404beb9e2da7aa1f595e72fc12a17c61f7aec67fd5448443efe542967c685a2fe0ffc435793dcbab + languageName: node + linkType: hard + "@ethereumjs/rlp@npm:^10.1.0": version: 10.1.0 resolution: "@ethereumjs/rlp@npm:10.1.0" @@ -5890,15 +5899,6 @@ __metadata: languageName: node linkType: hard -"@ethereumjs/rlp@npm:^5.0.2": - version: 5.0.2 - resolution: "@ethereumjs/rlp@npm:5.0.2" - bin: - rlp: bin/rlp.cjs - checksum: b569061ddb1f4cf56a82f7a677c735ba37f9e94e2bbaf567404beb9e2da7aa1f595e72fc12a17c61f7aec67fd5448443efe542967c685a2fe0ffc435793dcbab - languageName: node - linkType: hard - "@ethereumjs/tx@npm:4.2.0, @ethereumjs/tx@npm:^4.1.2, @ethereumjs/tx@npm:^4.2.0": version: 4.2.0 resolution: "@ethereumjs/tx@npm:4.2.0" @@ -10827,15 +10827,15 @@ __metadata: languageName: node linkType: hard -"@shapeshiftoss/hdwallet-coinbase@npm:1.62.10": - version: 1.62.10 - resolution: "@shapeshiftoss/hdwallet-coinbase@npm:1.62.10" +"@shapeshiftoss/hdwallet-coinbase@npm:1.62.13-gridplus-validation.10": + version: 1.62.13-gridplus-validation.10 + resolution: "@shapeshiftoss/hdwallet-coinbase@npm:1.62.13-gridplus-validation.10" dependencies: "@coinbase/wallet-sdk": ^3.6.6 - "@shapeshiftoss/hdwallet-core": 1.62.10 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.10 eth-rpc-errors: ^4.0.3 lodash: ^4.17.21 - checksum: 00451c03268290ea682be567a324de3ae657493c5f4810c31218a6eea63bd964dba175904c57e29e69b84188e5474997a70ca361efbb3d902ef860b19b8a1b78 + checksum: 7091ebbe0dc6ecb907c3322e39de783bd8f6308aceeb20155b84e9b2dfcecc5a13991346bc64a8d57e19ee1dd393e1493fc5ab316dd7625cb9923eb91d55209a languageName: node linkType: hard @@ -10868,43 +10868,9 @@ __metadata: languageName: node linkType: hard -"@shapeshiftoss/hdwallet-core@npm:1.62.10": - version: 1.62.10 - resolution: "@shapeshiftoss/hdwallet-core@npm:1.62.10" - dependencies: - "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/proto-tx-builder": 0.10.0 - "@solana/web3.js": 1.95.8 - eip-712: ^1.0.0 - ethers: 5.7.2 - eventemitter2: ^5.0.1 - lodash: ^4.17.21 - rxjs: ^6.4.0 - type-assertions: ^1.1.0 - checksum: 86fdd33a78ef114e68da7c2b7f85932327eeb5ca4b64aa427e101704d93b5d0d26bb5c7f09778ee585e028382d5bcc62534e9a3d78a43f772fbcfc60222350d7 - languageName: node - linkType: hard - -"@shapeshiftoss/hdwallet-core@npm:1.62.12-gridplus-validation.4": - version: 1.62.12-gridplus-validation.4 - resolution: "@shapeshiftoss/hdwallet-core@npm:1.62.12-gridplus-validation.4" - dependencies: - "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/proto-tx-builder": 0.10.0 - "@solana/web3.js": 1.95.8 - eip-712: ^1.0.0 - ethers: 5.7.2 - eventemitter2: ^5.0.1 - lodash: ^4.17.21 - rxjs: ^6.4.0 - type-assertions: ^1.1.0 - checksum: 9514ad3da2666b183ea49fb01910ffe5a1a7bb42d791bc24ec8649a5c9597602614ff634e05094e7421fd76365af1ba03e1aa91e8faf5550c6962cb1316f141e - languageName: node - linkType: hard - -"@shapeshiftoss/hdwallet-core@npm:1.62.3": - version: 1.62.3 - resolution: "@shapeshiftoss/hdwallet-core@npm:1.62.3" +"@shapeshiftoss/hdwallet-core@npm:1.62.13-gridplus-validation.10, @shapeshiftoss/hdwallet-core@npm:^1.62.13-gridplus-validation.10": + version: 1.62.13-gridplus-validation.10 + resolution: "@shapeshiftoss/hdwallet-core@npm:1.62.13-gridplus-validation.10" dependencies: "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 "@shapeshiftoss/proto-tx-builder": 0.10.0 @@ -10915,7 +10881,7 @@ __metadata: lodash: ^4.17.21 rxjs: ^6.4.0 type-assertions: ^1.1.0 - checksum: 01af01bb5c2a929ad0cfdb782329954bad941c6b5f776e040be86882823588b771d5f9a256e8893dc28e6f45b883c646f759a27f7d9326949ad53816b233d707 + checksum: fee44e0a81312c6ebede827f97ce4589fd30ef00f1619db137d48801d83ede8643ea8fe48614c616bc15268f247b69e2e7ca31a656eb13f4f7d1a04e648ba45a languageName: node linkType: hard @@ -10933,37 +10899,38 @@ __metadata: languageName: node linkType: hard -"@shapeshiftoss/hdwallet-gridplus@npm:1.62.13-gridplus-validation.2": - version: 1.62.13-gridplus-validation.2 - resolution: "@shapeshiftoss/hdwallet-gridplus@npm:1.62.13-gridplus-validation.2" +"@shapeshiftoss/hdwallet-gridplus@npm:1.62.13-gridplus-validation.10": + version: 1.62.13-gridplus-validation.10 + resolution: "@shapeshiftoss/hdwallet-gridplus@npm:1.62.13-gridplus-validation.10" dependencies: "@bitcoinerlab/secp256k1": ^1.1.1 "@ethereumjs/common": 4.4.0 + "@ethereumjs/rlp": 5.0.2 "@ethereumjs/tx": 5.4.0 "@metamask/eth-sig-util": ^7.0.0 - "@shapeshiftoss/hdwallet-core": 1.62.3 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.10 bech32: ^1.1.4 bs58: ^5.0.0 crypto-js: ^4.2.0 gridplus-sdk: ^3.2.0 lodash: ^4.17.21 - checksum: 6ad58883e9cabae6c2f323bcfbc94850633fc58efbb0798862263b0468a1efcc692017f4eed28bea6c39c4c84cfd9e96a09b378dcf5eabbbda1731adabc2029a + checksum: 3c528765ae680fab5c4ce3d4c0601fa4d09e13e7a28794fa0764f420a1b60cf0858546601a423804bc1b14a7b2b641428e0234ec8d769a8a7d8ca9baea21a5ca languageName: node linkType: hard -"@shapeshiftoss/hdwallet-keepkey-webusb@npm:1.62.10": - version: 1.62.10 - resolution: "@shapeshiftoss/hdwallet-keepkey-webusb@npm:1.62.10" +"@shapeshiftoss/hdwallet-keepkey-webusb@npm:1.62.13-gridplus-validation.10": + version: 1.62.13-gridplus-validation.10 + resolution: "@shapeshiftoss/hdwallet-keepkey-webusb@npm:1.62.13-gridplus-validation.10" dependencies: - "@shapeshiftoss/hdwallet-core": 1.62.10 - "@shapeshiftoss/hdwallet-keepkey": 1.62.10 - checksum: 5694b91130184098ca0ae475b1972f2f254324a5cbef7df593699c7a2a2f709c0491c653770b840b02b41c043923285a609fa2f6f20b5fb2be4140e0ff6ba37b + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.10 + "@shapeshiftoss/hdwallet-keepkey": ^1.62.13-gridplus-validation.10 + checksum: 9d007ceb631d6819b455b28325c07ea770597ffda1e697a10e2964d054c569a72a0ac88d40a63740d53596b22ea46ee999c9ea18bd87777b4624d8e0d5b16a48 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-keepkey@npm:1.62.10": - version: 1.62.10 - resolution: "@shapeshiftoss/hdwallet-keepkey@npm:1.62.10" +"@shapeshiftoss/hdwallet-keepkey@npm:1.62.13-gridplus-validation.10, @shapeshiftoss/hdwallet-keepkey@npm:^1.62.13-gridplus-validation.10": + version: 1.62.13-gridplus-validation.10 + resolution: "@shapeshiftoss/hdwallet-keepkey@npm:1.62.13-gridplus-validation.10" dependencies: "@bitcoinerlab/secp256k1": ^1.1.1 "@ethereumjs/common": 3.2.0 @@ -10971,7 +10938,7 @@ __metadata: "@keepkey/device-protocol": 7.13.4 "@metamask/eth-sig-util": ^7.0.0 "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": 1.62.10 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.10 "@shapeshiftoss/proto-tx-builder": 0.10.0 bignumber.js: ^9.0.1 bnb-javascript-sdk-nobroadcast: 2.16.15 @@ -10982,44 +10949,44 @@ __metadata: lodash: ^4.17.21 p-lazy: ^3.1.0 semver: ^7.3.8 - checksum: e5ea0960e5531172f7c4da088e1946cf0a99fa9a01cdd48116ab818fc64a0b6495a0f98cd0cbe023a6e9cb772abcce046b8e8e0ad439ec093134b6f05a477486 + checksum: a71f179ff6478de408ef0865429c67fb47885a1d0656c19ce9ea36b681166261584bc5b116c1e6650d7958fb346e78b355fa01169dd97574ca7b36e2d2d5cc75 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-keplr@npm:1.62.10": - version: 1.62.10 - resolution: "@shapeshiftoss/hdwallet-keplr@npm:1.62.10" +"@shapeshiftoss/hdwallet-keplr@npm:1.62.13-gridplus-validation.10": + version: 1.62.13-gridplus-validation.10 + resolution: "@shapeshiftoss/hdwallet-keplr@npm:1.62.13-gridplus-validation.10" dependencies: "@cosmjs/amino": ^0.28.13 "@cosmjs/stargate": ^0.28.13 "@shapeshiftoss/caip": 8.15.0 - "@shapeshiftoss/hdwallet-core": 1.62.10 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.10 "@shapeshiftoss/proto-tx-builder": 0.10.0 "@shapeshiftoss/types": 3.1.3 base64-js: ^1.5.1 lodash: ^4.17.21 - checksum: 42a0bb94d4ff60061687ef5a5b2d623d6da2156fa2beb1723599bc7280f3ea23951069d52a134b1db2b2c3fbfaf3fc426d99742baa352cd3199e3c6df110288d + checksum: ee7aa90ef3b9ceb6c5862a056b909268a67f42bcaff1184533093310769c4fa96c57cc7cfea17c7704cb79131a8b214bfb4badfaabf13088b07ae5c82d1a5a22 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-ledger-webhid@npm:1.62.10": - version: 1.62.10 - resolution: "@shapeshiftoss/hdwallet-ledger-webhid@npm:1.62.10" +"@shapeshiftoss/hdwallet-ledger-webhid@npm:1.62.13-gridplus-validation.10": + version: 1.62.13-gridplus-validation.10 + resolution: "@shapeshiftoss/hdwallet-ledger-webhid@npm:1.62.13-gridplus-validation.10" dependencies: "@ledgerhq/hw-app-btc": ^10.10.0 "@ledgerhq/hw-app-eth": ^6.45.13 "@ledgerhq/hw-transport": 6.31.8 "@ledgerhq/hw-transport-webhid": ^6.30.4 - "@shapeshiftoss/hdwallet-core": 1.62.10 - "@shapeshiftoss/hdwallet-ledger": 1.62.10 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.10 + "@shapeshiftoss/hdwallet-ledger": ^1.62.13-gridplus-validation.10 "@types/w3c-web-hid": ^1.0.2 - checksum: be042cf0d6a078b35bdc1c5c017e99153a585e07231bf0435700fca092d04de2791a66c4153ee5ad15c10fbf832dd6decbbaa7c045e5269223080aa3c9e087b8 + checksum: 58834501e800532bd0fecf5515aaa77c7d8a00761d24b202b793c1c7638d58dbf027cfd984799bfb27259a0817126541aaef5288bd180d29b8db6d1acc56e1a1 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-ledger-webusb@npm:1.62.10": - version: 1.62.10 - resolution: "@shapeshiftoss/hdwallet-ledger-webusb@npm:1.62.10" +"@shapeshiftoss/hdwallet-ledger-webusb@npm:1.62.13-gridplus-validation.10": + version: 1.62.13-gridplus-validation.10 + resolution: "@shapeshiftoss/hdwallet-ledger-webusb@npm:1.62.13-gridplus-validation.10" dependencies: "@ledgerhq/hw-app-btc": ^10.10.0 "@ledgerhq/hw-app-cosmos": ^6.32.4 @@ -11027,17 +10994,17 @@ __metadata: "@ledgerhq/hw-app-solana": ^7.5.1 "@ledgerhq/hw-transport": 6.31.8 "@ledgerhq/hw-transport-webusb": 6.29.8 - "@shapeshiftoss/hdwallet-core": 1.62.10 - "@shapeshiftoss/hdwallet-ledger": 1.62.10 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.10 + "@shapeshiftoss/hdwallet-ledger": ^1.62.13-gridplus-validation.10 "@types/w3c-web-usb": ^1.0.4 p-queue: ^7.4.1 - checksum: 48559c8801e970e25ac92388eecd6cfb5f13d6b93fa75e56460d3462a5f9279b9054765d82d45589488ace16ec6daa45cfb0a798f779ab31bfbfa0a6a2a0c498 + checksum: ef3b096b6d0f722e1d34555199081364774b2eed162aa6dc342da4aec1c7c9b996020b13c97a528772c7f9dcb9168e308007685e4abef3bbf9e734b2ed9589b0 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-ledger@npm:1.62.10": - version: 1.62.10 - resolution: "@shapeshiftoss/hdwallet-ledger@npm:1.62.10" +"@shapeshiftoss/hdwallet-ledger@npm:1.62.13-gridplus-validation.10, @shapeshiftoss/hdwallet-ledger@npm:^1.62.13-gridplus-validation.10": + version: 1.62.13-gridplus-validation.10 + resolution: "@shapeshiftoss/hdwallet-ledger@npm:1.62.13-gridplus-validation.10" dependencies: "@ethereumjs/common": 3.2.0 "@ethereumjs/tx": 4.2.0 @@ -11049,7 +11016,7 @@ __metadata: "@ledgerhq/hw-transport": 6.31.8 "@ledgerhq/logs": 6.13.0 "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": 1.62.10 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.10 "@solana/web3.js": 1.95.8 base64-js: ^1.5.1 bchaddrjs: ^0.4.4 @@ -11059,33 +11026,33 @@ __metadata: ethereumjs-util: ^6.1.0 ethers: 5.7.2 lodash: ^4.17.21 - checksum: ace2736bd2d4d1ab85a47d80ddfeea23319e61118445de3fb0e556f1c848096b551b51a16e30ee6f281825abb92f5e9650dbb4cec785265d4c90cd0d589440d6 + checksum: 824634ba67afb40bfae33f1fb7f553860f41b516e7d1efc71cdbd9d984e01975827596e2865c198433f01e894c7ecff921186d3599764349c89d76c78a72f8ff languageName: node linkType: hard -"@shapeshiftoss/hdwallet-metamask-multichain@npm:1.62.10": - version: 1.62.10 - resolution: "@shapeshiftoss/hdwallet-metamask-multichain@npm:1.62.10" +"@shapeshiftoss/hdwallet-metamask-multichain@npm:1.62.13-gridplus-validation.10": + version: 1.62.13-gridplus-validation.10 + resolution: "@shapeshiftoss/hdwallet-metamask-multichain@npm:1.62.13-gridplus-validation.10" dependencies: "@metamask/detect-provider": ^1.2.0 "@metamask/onboarding": ^1.0.1 "@shapeshiftoss/common-api": ^9.3.0 - "@shapeshiftoss/hdwallet-core": 1.62.10 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.10 "@shapeshiftoss/metamask-snaps-adapter": ^1.0.12 "@shapeshiftoss/metamask-snaps-types": ^1.0.12 eth-rpc-errors: ^4.0.3 lodash: ^4.17.21 mipd: ^0.0.7 - checksum: aabc4cf3c49738099b7478a2f7c13b9a03e54cc3ad7a0f820b36f6b894cbaa0bc7f6658599fd0164ebd1cdb7ec4b57acacf7c355c718181f85b5cc2b8e6c55d0 + checksum: 8a09e432844bb5f20cd5f61a38f9760f60a865f477c4d2d96e278a0a801021ca63a0adbbe0a35be50bfccdca9626b61a95a95a266872a4b4a8f5b04320b1a6b1 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-native-vault@npm:1.62.10": - version: 1.62.10 - resolution: "@shapeshiftoss/hdwallet-native-vault@npm:1.62.10" +"@shapeshiftoss/hdwallet-native-vault@npm:1.62.13-gridplus-validation.10": + version: 1.62.13-gridplus-validation.10 + resolution: "@shapeshiftoss/hdwallet-native-vault@npm:1.62.13-gridplus-validation.10" dependencies: "@bitcoinerlab/secp256k1": ^1.1.1 - "@shapeshiftoss/hdwallet-native": 1.62.10 + "@shapeshiftoss/hdwallet-native": ^1.62.13-gridplus-validation.10 bip39: ^3.0.4 hash-wasm: ^4.11.0 idb-keyval: ^6.0.3 @@ -11093,18 +11060,18 @@ __metadata: p-lazy: ^3.1.0 type-assertions: ^1.1.0 uuid: ^8.3.2 - checksum: 092d52f92ec89fe876b7ff2b2bdb13bf180a136de694d2333c86b64ce776d50afc2b10b6e01168375bc37f7447a9b4a77efb7b8bbd9c09719995971dc94844df + checksum: efdd93e0fd03abe616060ada384135c015b09336ada904fbe8d22dbdef36eb855b6fdf52f55f3115dcae40c1d0c8a6db368fdac9749e6ca301e4e7926efd0573 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-native@npm:1.62.10": - version: 1.62.10 - resolution: "@shapeshiftoss/hdwallet-native@npm:1.62.10" +"@shapeshiftoss/hdwallet-native@npm:1.62.13-gridplus-validation.10, @shapeshiftoss/hdwallet-native@npm:^1.62.13-gridplus-validation.10": + version: 1.62.13-gridplus-validation.10 + resolution: "@shapeshiftoss/hdwallet-native@npm:1.62.13-gridplus-validation.10" dependencies: "@bitcoinerlab/secp256k1": ^1.1.1 "@noble/curves": ^1.4.0 "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": 1.62.10 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.10 "@shapeshiftoss/proto-tx-builder": 0.10.0 "@zxing/text-encoding": ^0.9.0 bchaddrjs: ^0.4.9 @@ -11125,7 +11092,7 @@ __metadata: p-lazy: ^3.1.0 scrypt-js: ^3.0.1 tendermint-tx-builder: 1.0.16 - checksum: 3b8452faf4f5823306c5a48a61b8e8d6522cd2cc9c6b35be6f670534dd49ec52cf5df9399e978fb35d8ffa6ed8493ffb6a9d31e28397dd0452ddcb94c01f73ef + checksum: 8558447be0d7daff19a615e49d2be7168cb84a22171112bcabac97aa9fb6474ff22dd7ca4180f610069622fd5bfa6eadaa2dcc68275e02f5b64decb3833f642a languageName: node linkType: hard @@ -11162,83 +11129,83 @@ __metadata: languageName: node linkType: hard -"@shapeshiftoss/hdwallet-phantom@npm:1.62.10": - version: 1.62.10 - resolution: "@shapeshiftoss/hdwallet-phantom@npm:1.62.10" +"@shapeshiftoss/hdwallet-phantom@npm:1.62.13-gridplus-validation.10": + version: 1.62.13-gridplus-validation.10 + resolution: "@shapeshiftoss/hdwallet-phantom@npm:1.62.13-gridplus-validation.10" dependencies: "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": 1.62.10 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.10 "@solana/web3.js": 1.95.8 base64-js: ^1.5.1 bitcoinjs-message: ^2.0.0 ethers: 5.7.2 lodash: ^4.17.21 - checksum: 3d7b2faf94c9211bc63097be0b0e4dc6150613d096085b7c58b92e615663daffc225a0e6e41005cb1e3a0620c898f4d99ad808b8cafaa2f7186ee597175d3130 + checksum: f0664ea2eea0d51718210228223c2033123cd358269c4630fb5edfb27f4a8cb4511f14268a622bce0a66a305189cd77581980f9976985925dec7477fd21f1d18 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-trezor-connect@npm:1.62.10": - version: 1.62.10 - resolution: "@shapeshiftoss/hdwallet-trezor-connect@npm:1.62.10" +"@shapeshiftoss/hdwallet-trezor-connect@npm:1.62.13-gridplus-validation.10": + version: 1.62.13-gridplus-validation.10 + resolution: "@shapeshiftoss/hdwallet-trezor-connect@npm:1.62.13-gridplus-validation.10" dependencies: - "@shapeshiftoss/hdwallet-core": 1.62.10 - "@shapeshiftoss/hdwallet-trezor": 1.62.10 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.10 + "@shapeshiftoss/hdwallet-trezor": ^1.62.13-gridplus-validation.10 "@trezor/connect-web": ^9.6.4 - checksum: 8f8e0d278f9ae208b93faca613ef53a712c5073daff6be44fdb824aa8221c2dd31377aa55b8677cfa90dc5d9da5358cd1b97af9c0ef50810168097add75e3951 + checksum: 1fd8eed0274e46b76d6c3eb4a21ffbb49d0d80441081c4f79eddd55e4f1a8c03797e188e452961c34ded2b05ed4d91a69d1df4fadf1bd5ff55c3937246125d35 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-trezor@npm:1.62.10": - version: 1.62.10 - resolution: "@shapeshiftoss/hdwallet-trezor@npm:1.62.10" +"@shapeshiftoss/hdwallet-trezor@npm:1.62.13-gridplus-validation.10, @shapeshiftoss/hdwallet-trezor@npm:^1.62.13-gridplus-validation.10": + version: 1.62.13-gridplus-validation.10 + resolution: "@shapeshiftoss/hdwallet-trezor@npm:1.62.13-gridplus-validation.10" dependencies: "@ethereumjs/common": 3.2.0 "@ethereumjs/tx": 4.2.0 - "@shapeshiftoss/hdwallet-core": 1.62.10 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.10 base64-js: ^1.5.1 lodash: ^4.17.21 - checksum: 54a279bbcc2f2edcd5ea34fb9a0cd09d356858d5d611589086fa8faa490a001d2833ea3080c885d1255f95d0e5f28e414cbb1955529e7eccc531114fd9bb4478 + checksum: 47870ab6d3d7d11048abaeee1be17f665d26695e9f85fc37320b3aa669777100eae318e87d1551c31267baaa1ac2da620a2a0788753319e858ff2f15bab649af languageName: node linkType: hard -"@shapeshiftoss/hdwallet-vultisig@npm:1.62.10": - version: 1.62.10 - resolution: "@shapeshiftoss/hdwallet-vultisig@npm:1.62.10" +"@shapeshiftoss/hdwallet-vultisig@npm:1.62.13-gridplus-validation.10": + version: 1.62.13-gridplus-validation.10 + resolution: "@shapeshiftoss/hdwallet-vultisig@npm:1.62.13-gridplus-validation.10" dependencies: "@cosmjs/amino": ^0.28.13 "@cosmjs/stargate": ^0.28.13 "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": 1.62.10 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.10 "@solana/web3.js": 1.95.8 base64-js: ^1.5.1 bitcoinjs-message: ^2.0.0 ethers: 5.7.2 lodash: ^4.17.21 - checksum: 15f8201395685a5dd2dab393b958fe30a461d3656be4614c73c9f31a64f005dbbb16b39469e3829c80b171260b4a31b5462462788b78b445c53b49277c2f38be + checksum: 33e6e73f28b91d7f14990e9bf6e52c966809df854ec5bb23e189dc2f61efa1634a31be4d46ab5b6538821d3f40173775678737722b491fd6aad6af8462f29278 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-walletconnect@npm:1.62.10": - version: 1.62.10 - resolution: "@shapeshiftoss/hdwallet-walletconnect@npm:1.62.10" +"@shapeshiftoss/hdwallet-walletconnect@npm:1.62.13-gridplus-validation.10": + version: 1.62.13-gridplus-validation.10 + resolution: "@shapeshiftoss/hdwallet-walletconnect@npm:1.62.13-gridplus-validation.10" dependencies: - "@shapeshiftoss/hdwallet-core": 1.62.10 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.10 "@walletconnect/qrcode-modal": ^1.7.8 "@walletconnect/web3-provider": ^1.7.8 ethers: ^5.6.5 - checksum: 3c6aeecca8aaab2294adc1bbdac7c6d3fd55c4c2592d7d58d70f09d568a6ba0e752a85c72d39dde811e7e6665ea27a5eff4fdf245212b607ca2c2799224462c5 + checksum: 1b761fcbaabe347f977eaf37016a27f1fb74ca720e62ffbb4d1cc3284c3b998e72522bbee263682ccce0aee9f8c731e023fbe362afc64f725cff74251e9a78db languageName: node linkType: hard -"@shapeshiftoss/hdwallet-walletconnectv2@npm:1.62.10": - version: 1.62.10 - resolution: "@shapeshiftoss/hdwallet-walletconnectv2@npm:1.62.10" +"@shapeshiftoss/hdwallet-walletconnectv2@npm:1.62.13-gridplus-validation.10": + version: 1.62.13-gridplus-validation.10 + resolution: "@shapeshiftoss/hdwallet-walletconnectv2@npm:1.62.13-gridplus-validation.10" dependencies: - "@shapeshiftoss/hdwallet-core": 1.62.10 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.10 "@walletconnect/ethereum-provider": ^2.20.2 "@walletconnect/modal": ^2.6.2 ethers: ^5.6.5 - checksum: 8224f1f2c34e8292958e547488c81611a933ca741d123d49fcfa9368b6e155d07fc7ec80c79ea92d7dec4b90affa3adc591a4ae1c45c50b0a976de454fd570fd + checksum: 792014131ec44fb733a339b45e6fcbfaadb216ab61e73c2be720c03853c5250f8e9b5ee8e92098a94a60119f64f2d6b5768e4466ac1243bdd0ad50547279dd0b languageName: node linkType: hard @@ -11458,24 +11425,24 @@ __metadata: "@shapeshiftoss/chain-adapters": "workspace:^" "@shapeshiftoss/contracts": "workspace:^" "@shapeshiftoss/errors": "workspace:^" - "@shapeshiftoss/hdwallet-coinbase": 1.62.10 - "@shapeshiftoss/hdwallet-core": 1.62.12-gridplus-validation.4 - "@shapeshiftoss/hdwallet-gridplus": 1.62.13-gridplus-validation.2 - "@shapeshiftoss/hdwallet-keepkey": 1.62.10 - "@shapeshiftoss/hdwallet-keepkey-webusb": 1.62.10 - "@shapeshiftoss/hdwallet-keplr": 1.62.10 - "@shapeshiftoss/hdwallet-ledger": 1.62.10 - "@shapeshiftoss/hdwallet-ledger-webhid": 1.62.10 - "@shapeshiftoss/hdwallet-ledger-webusb": 1.62.10 - "@shapeshiftoss/hdwallet-metamask-multichain": 1.62.10 - "@shapeshiftoss/hdwallet-native": 1.62.10 - "@shapeshiftoss/hdwallet-native-vault": 1.62.10 - "@shapeshiftoss/hdwallet-phantom": 1.62.10 - "@shapeshiftoss/hdwallet-trezor": 1.62.10 - "@shapeshiftoss/hdwallet-trezor-connect": 1.62.10 - "@shapeshiftoss/hdwallet-vultisig": 1.62.10 - "@shapeshiftoss/hdwallet-walletconnect": 1.62.10 - "@shapeshiftoss/hdwallet-walletconnectv2": 1.62.10 + "@shapeshiftoss/hdwallet-coinbase": 1.62.13-gridplus-validation.10 + "@shapeshiftoss/hdwallet-core": 1.62.13-gridplus-validation.10 + "@shapeshiftoss/hdwallet-gridplus": 1.62.13-gridplus-validation.10 + "@shapeshiftoss/hdwallet-keepkey": 1.62.13-gridplus-validation.10 + "@shapeshiftoss/hdwallet-keepkey-webusb": 1.62.13-gridplus-validation.10 + "@shapeshiftoss/hdwallet-keplr": 1.62.13-gridplus-validation.10 + "@shapeshiftoss/hdwallet-ledger": 1.62.13-gridplus-validation.10 + "@shapeshiftoss/hdwallet-ledger-webhid": 1.62.13-gridplus-validation.10 + "@shapeshiftoss/hdwallet-ledger-webusb": 1.62.13-gridplus-validation.10 + "@shapeshiftoss/hdwallet-metamask-multichain": 1.62.13-gridplus-validation.10 + "@shapeshiftoss/hdwallet-native": 1.62.13-gridplus-validation.10 + "@shapeshiftoss/hdwallet-native-vault": 1.62.13-gridplus-validation.10 + "@shapeshiftoss/hdwallet-phantom": 1.62.13-gridplus-validation.10 + "@shapeshiftoss/hdwallet-trezor": 1.62.13-gridplus-validation.10 + "@shapeshiftoss/hdwallet-trezor-connect": 1.62.13-gridplus-validation.10 + "@shapeshiftoss/hdwallet-vultisig": 1.62.13-gridplus-validation.10 + "@shapeshiftoss/hdwallet-walletconnect": 1.62.13-gridplus-validation.10 + "@shapeshiftoss/hdwallet-walletconnectv2": 1.62.13-gridplus-validation.10 "@shapeshiftoss/swapper": "workspace:^" "@shapeshiftoss/types": "workspace:^" "@shapeshiftoss/unchained-client": "workspace:^" From 91b4a59a52af28d5755b4c9b17dbb1bff11fbd36 Mon Sep 17 00:00:00 2001 From: gomes <17035424+gomesalexandre@users.noreply.github.com> Date: Wed, 26 Nov 2025 17:53:17 +0100 Subject: [PATCH 07/26] refactor: rename walletUid to activeWalletId for consistency MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Renamed across GridPlus integration: - walletUid → activeWalletId in Redux state types - uid → activeWalletId in validation return types - Updated all usages in components, utils, and hooks Updated to @shapeshiftoss/hdwallet-*@1.62.13-gridplus-validation.12 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- package.json | 36 +-- .../GridPlus/components/GridPlusPair.tsx | 4 +- .../GridPlus/components/GridPlusSetup.tsx | 18 +- .../GridPlus/hooks/useGridPlusConnection.ts | 6 +- src/context/WalletProvider/GridPlus/utils.ts | 24 +- src/context/WalletProvider/WalletProvider.tsx | 16 +- .../slices/gridplusSlice/gridplusSlice.ts | 8 +- src/state/slices/gridplusSlice/types.ts | 2 +- yarn.lock | 222 +++++++++--------- 9 files changed, 170 insertions(+), 166 deletions(-) diff --git a/package.json b/package.json index 387f17eedd3..78bdb965841 100644 --- a/package.json +++ b/package.json @@ -100,24 +100,24 @@ "@shapeshiftoss/chain-adapters": "workspace:^", "@shapeshiftoss/contracts": "workspace:^", "@shapeshiftoss/errors": "workspace:^", - "@shapeshiftoss/hdwallet-coinbase": "1.62.13-gridplus-validation.10", - "@shapeshiftoss/hdwallet-core": "1.62.13-gridplus-validation.10", - "@shapeshiftoss/hdwallet-gridplus": "1.62.13-gridplus-validation.10", - "@shapeshiftoss/hdwallet-keepkey": "1.62.13-gridplus-validation.10", - "@shapeshiftoss/hdwallet-keepkey-webusb": "1.62.13-gridplus-validation.10", - "@shapeshiftoss/hdwallet-keplr": "1.62.13-gridplus-validation.10", - "@shapeshiftoss/hdwallet-ledger": "1.62.13-gridplus-validation.10", - "@shapeshiftoss/hdwallet-ledger-webhid": "1.62.13-gridplus-validation.10", - "@shapeshiftoss/hdwallet-ledger-webusb": "1.62.13-gridplus-validation.10", - "@shapeshiftoss/hdwallet-metamask-multichain": "1.62.13-gridplus-validation.10", - "@shapeshiftoss/hdwallet-native": "1.62.13-gridplus-validation.10", - "@shapeshiftoss/hdwallet-native-vault": "1.62.13-gridplus-validation.10", - "@shapeshiftoss/hdwallet-phantom": "1.62.13-gridplus-validation.10", - "@shapeshiftoss/hdwallet-trezor": "1.62.13-gridplus-validation.10", - "@shapeshiftoss/hdwallet-trezor-connect": "1.62.13-gridplus-validation.10", - "@shapeshiftoss/hdwallet-vultisig": "1.62.13-gridplus-validation.10", - "@shapeshiftoss/hdwallet-walletconnect": "1.62.13-gridplus-validation.10", - "@shapeshiftoss/hdwallet-walletconnectv2": "1.62.13-gridplus-validation.10", + "@shapeshiftoss/hdwallet-coinbase": "1.62.13-gridplus-validation.12", + "@shapeshiftoss/hdwallet-core": "1.62.13-gridplus-validation.12", + "@shapeshiftoss/hdwallet-gridplus": "1.62.13-gridplus-validation.12", + "@shapeshiftoss/hdwallet-keepkey": "1.62.13-gridplus-validation.12", + "@shapeshiftoss/hdwallet-keepkey-webusb": "1.62.13-gridplus-validation.12", + "@shapeshiftoss/hdwallet-keplr": "1.62.13-gridplus-validation.12", + "@shapeshiftoss/hdwallet-ledger": "1.62.13-gridplus-validation.12", + "@shapeshiftoss/hdwallet-ledger-webhid": "1.62.13-gridplus-validation.12", + "@shapeshiftoss/hdwallet-ledger-webusb": "1.62.13-gridplus-validation.12", + "@shapeshiftoss/hdwallet-metamask-multichain": "1.62.13-gridplus-validation.12", + "@shapeshiftoss/hdwallet-native": "1.62.13-gridplus-validation.12", + "@shapeshiftoss/hdwallet-native-vault": "1.62.13-gridplus-validation.12", + "@shapeshiftoss/hdwallet-phantom": "1.62.13-gridplus-validation.12", + "@shapeshiftoss/hdwallet-trezor": "1.62.13-gridplus-validation.12", + "@shapeshiftoss/hdwallet-trezor-connect": "1.62.13-gridplus-validation.12", + "@shapeshiftoss/hdwallet-vultisig": "1.62.13-gridplus-validation.12", + "@shapeshiftoss/hdwallet-walletconnect": "1.62.13-gridplus-validation.12", + "@shapeshiftoss/hdwallet-walletconnectv2": "1.62.13-gridplus-validation.12", "@shapeshiftoss/swapper": "workspace:^", "@shapeshiftoss/types": "workspace:^", "@shapeshiftoss/unchained-client": "workspace:^", diff --git a/src/context/WalletProvider/GridPlus/components/GridPlusPair.tsx b/src/context/WalletProvider/GridPlus/components/GridPlusPair.tsx index 5e08eab0841..86718fe9a48 100644 --- a/src/context/WalletProvider/GridPlus/components/GridPlusPair.tsx +++ b/src/context/WalletProvider/GridPlus/components/GridPlusPair.tsx @@ -51,7 +51,7 @@ export const GridPlusPair = () => { throw new Error(translate('walletProvider.gridplus.errors.adapterNotAvailable')) } - const { wallet, walletUid, type } = await pairConnectedDevice({ + const { wallet, activeWalletId, type } = await pairConnectedDevice({ adapter, deviceId, pairingCode, @@ -64,7 +64,7 @@ export const GridPlusPair = () => { safeCardUuid, wallet, safeCardWalletId: `gridplus:${safeCardUuid}`, - walletUid, + activeWalletId, type, }, }) diff --git a/src/context/WalletProvider/GridPlus/components/GridPlusSetup.tsx b/src/context/WalletProvider/GridPlus/components/GridPlusSetup.tsx index 81b0292f7f5..14f685ba23d 100644 --- a/src/context/WalletProvider/GridPlus/components/GridPlusSetup.tsx +++ b/src/context/WalletProvider/GridPlus/components/GridPlusSetup.tsx @@ -21,7 +21,7 @@ type LocationState = { defaultName?: string needsPairing?: boolean deviceId?: string - walletUid?: string + activeWalletId?: string type?: 'external' | 'internal' } @@ -66,8 +66,8 @@ export const GridPlusSetup = () => { try { let finalWallet = wallet - // Use walletUid and type from state if available (from pairing flow) - let walletUid: string | undefined = state?.walletUid + // Use activeWalletId and type from state if available (from pairing flow) + let activeWalletId: string | undefined = state?.activeWalletId let type: 'external' | 'internal' | undefined = state?.type if (!finalWallet) { @@ -87,7 +87,7 @@ export const GridPlusSetup = () => { pairingCode, }) finalWallet = result.wallet - walletUid = result.walletUid + activeWalletId = result.activeWalletId type = result.type } else { const connectionDeviceId = physicalDeviceId || deviceId || state?.deviceId @@ -111,11 +111,11 @@ export const GridPlusSetup = () => { throw new Error(translate('walletProvider.gridplus.errors.walletNotAvailable')) } - // If we don't have walletUid yet (e.g., when adding new SafeCard with existing wallet), + // If we don't have activeWalletId yet (e.g., when adding new SafeCard with existing wallet), // we need to fetch it from the wallet - if (walletUid === undefined || type === undefined) { + if (activeWalletId === undefined || type === undefined) { const validation = await finalWallet.validateActiveWallet() - walletUid = validation.uid + activeWalletId = validation.activeWalletId type = validation.type } @@ -126,7 +126,7 @@ export const GridPlusSetup = () => { gridplusSlice.actions.addSafeCard({ id: safeCardUuid, name: finalSafeCardName, - walletUid, + activeWalletId, type, }), ) @@ -177,7 +177,7 @@ export const GridPlusSetup = () => { defaultName, state?.safeCardWalletId, state?.deviceId, - state?.walletUid, + state?.activeWalletId, state?.type, physicalDeviceId, translate, diff --git a/src/context/WalletProvider/GridPlus/hooks/useGridPlusConnection.ts b/src/context/WalletProvider/GridPlus/hooks/useGridPlusConnection.ts index 5ae9e0da5bb..cbc474b53eb 100644 --- a/src/context/WalletProvider/GridPlus/hooks/useGridPlusConnection.ts +++ b/src/context/WalletProvider/GridPlus/hooks/useGridPlusConnection.ts @@ -130,9 +130,9 @@ export const useGridPlusConnection = () => { setError(null) try { - // Get the SafeCard details to check for walletUid + // Get the SafeCard details to check for activeWalletId const safeCard = safeCards.find(card => card.id === id) - const expectedWalletUid = safeCard?.walletUid + const expectedWalletUid = safeCard?.activeWalletId const safeCardWalletId = `gridplus:${id}` const connectionDeviceId = getConnectionDeviceId() @@ -162,7 +162,7 @@ export const useGridPlusConnection = () => { localWallet, navigate, appDispatch, - walletUid: safeCard?.walletUid, + activeWalletId: safeCard?.activeWalletId, type: safeCard?.type, }) } catch (e) { diff --git a/src/context/WalletProvider/GridPlus/utils.ts b/src/context/WalletProvider/GridPlus/utils.ts index e02a9409557..abdefcc3ba2 100644 --- a/src/context/WalletProvider/GridPlus/utils.ts +++ b/src/context/WalletProvider/GridPlus/utils.ts @@ -45,14 +45,14 @@ export const pairConnectedDevice = async ({ pairingCode, }: PairConnectedDeviceParams): Promise<{ wallet: GridPlusHDWallet - walletUid: string + activeWalletId: string type: 'external' | 'internal' }> => { await adapter.connectDevice(deviceId) - const { wallet, walletUid, type } = await adapter.pairDevice(pairingCode) + const { wallet, activeWalletId, type } = await adapter.pairDevice(pairingCode) - return { wallet, walletUid, type } + return { wallet, activeWalletId, type } } type FinalizeWalletSetupParams = { @@ -62,7 +62,7 @@ type FinalizeWalletSetupParams = { localWallet: LocalWallet navigate: NavigateFunction appDispatch: AppDispatch - walletUid?: string + activeWalletId?: string type?: 'external' | 'internal' } @@ -73,19 +73,19 @@ export const finalizeWalletSetup = async ({ localWallet, navigate, appDispatch, - walletUid, + activeWalletId, type, }: FinalizeWalletSetupParams): Promise => { const safeCardUuid = safeCardWalletId.replace('gridplus:', '') - // If walletUid is missing, fetch it from the wallet - let finalWalletUid = walletUid + // If activeWalletId is missing, fetch it from the wallet + let finalWalletUid = activeWalletId let finalType = type if (finalWalletUid === undefined || finalType === undefined) { try { const validation = await wallet.validateActiveWallet() - finalWalletUid = validation.uid + finalWalletUid = validation.activeWalletId finalType = validation.type } catch (error) { // Silently fail - validation not critical for setup @@ -93,8 +93,8 @@ export const finalizeWalletSetup = async ({ } // Set expected wallet UID for JIT validation before signing - if (finalWalletUid && wallet.setExpectedWalletUid) { - wallet.setExpectedWalletUid(finalWalletUid) + if (finalWalletUid && wallet.setExpectedActiveWalletId) { + wallet.setExpectedActiveWalletId(finalWalletUid) } walletDispatch({ @@ -121,12 +121,12 @@ export const finalizeWalletSetup = async ({ appDispatch(gridplusSlice.actions.setLastConnectedAt(safeCardUuid)) - // Always update the SafeCard's walletUid if we have it + // Always update the SafeCard's activeWalletId if we have it if (finalWalletUid !== undefined && finalType !== undefined) { appDispatch( gridplusSlice.actions.updateSafeCardWalletUid({ id: safeCardUuid, - walletUid: finalWalletUid, + activeWalletId: finalWalletUid, type: finalType, }), ) diff --git a/src/context/WalletProvider/WalletProvider.tsx b/src/context/WalletProvider/WalletProvider.tsx index 76dadfbafa1..1ed0787678c 100644 --- a/src/context/WalletProvider/WalletProvider.tsx +++ b/src/context/WalletProvider/WalletProvider.tsx @@ -834,21 +834,25 @@ export const WalletProvider = ({ children }: { children: React.ReactNode }): JSX const gridPlusState = store.getState().gridplus const safeCard = gridPlusState.safecards.byId[safeCardUuid] - if (!safeCard?.walletUid) { + if (!safeCard?.activeWalletId) { console.error( - '[WalletProvider] SafeCard missing walletUid - clear cache required', + '[WalletProvider] SafeCard missing activeWalletId - clear cache required', ) disconnect() dispatch({ type: WalletActions.SET_LOCAL_WALLET_LOADING, payload: false }) break } - // Validate that the inserted card matches the expected walletUid (throws on mismatch) - await (gridPlusWallet as GridPlusHDWallet).validateActiveWallet(safeCard.walletUid) + // Validate that the inserted card matches the expected activeWalletId (throws on mismatch) + await (gridPlusWallet as GridPlusHDWallet).validateActiveWallet( + safeCard.activeWalletId, + ) // Set expected wallet UID for JIT validation before signing - if ((gridPlusWallet as GridPlusHDWallet).setExpectedWalletUid) { - ;(gridPlusWallet as GridPlusHDWallet).setExpectedWalletUid(safeCard.walletUid) + if ((gridPlusWallet as GridPlusHDWallet).setExpectedActiveWalletId) { + ;(gridPlusWallet as GridPlusHDWallet).setExpectedActiveWalletId( + safeCard.activeWalletId, + ) } dispatch({ diff --git a/src/state/slices/gridplusSlice/gridplusSlice.ts b/src/state/slices/gridplusSlice/gridplusSlice.ts index d83b0bc2101..5c1a00214b6 100644 --- a/src/state/slices/gridplusSlice/gridplusSlice.ts +++ b/src/state/slices/gridplusSlice/gridplusSlice.ts @@ -39,7 +39,7 @@ export const gridplusSlice = createSlice({ action: PayloadAction<{ id?: string name: string - walletUid?: string + activeWalletId?: string type?: 'external' | 'internal' }>, ) => { @@ -48,7 +48,7 @@ export const gridplusSlice = createSlice({ id, name: action.payload.name, createdAt: Date.now(), - walletUid: action.payload.walletUid, + activeWalletId: action.payload.activeWalletId, type: action.payload.type, } state.safecards.byId[id] = safeCard @@ -97,12 +97,12 @@ export const gridplusSlice = createSlice({ state, action: PayloadAction<{ id: string - walletUid: string + activeWalletId: string type: 'external' | 'internal' }>, ) => { if (state.safecards.byId[action.payload.id]) { - state.safecards.byId[action.payload.id].walletUid = action.payload.walletUid + state.safecards.byId[action.payload.id].activeWalletId = action.payload.activeWalletId state.safecards.byId[action.payload.id].type = action.payload.type } }, diff --git a/src/state/slices/gridplusSlice/types.ts b/src/state/slices/gridplusSlice/types.ts index 781e9773dac..ae8871c99af 100644 --- a/src/state/slices/gridplusSlice/types.ts +++ b/src/state/slices/gridplusSlice/types.ts @@ -3,7 +3,7 @@ export type SafeCard = { name: string createdAt: number lastConnectedAt?: number - walletUid?: string + activeWalletId?: string type?: 'external' | 'internal' } diff --git a/yarn.lock b/yarn.lock index 172d47651c8..78d662a8cf7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10827,15 +10827,15 @@ __metadata: languageName: node linkType: hard -"@shapeshiftoss/hdwallet-coinbase@npm:1.62.13-gridplus-validation.10": - version: 1.62.13-gridplus-validation.10 - resolution: "@shapeshiftoss/hdwallet-coinbase@npm:1.62.13-gridplus-validation.10" +"@shapeshiftoss/hdwallet-coinbase@npm:1.62.13-gridplus-validation.12": + version: 1.62.13-gridplus-validation.12 + resolution: "@shapeshiftoss/hdwallet-coinbase@npm:1.62.13-gridplus-validation.12" dependencies: "@coinbase/wallet-sdk": ^3.6.6 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.10 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.12 eth-rpc-errors: ^4.0.3 lodash: ^4.17.21 - checksum: 7091ebbe0dc6ecb907c3322e39de783bd8f6308aceeb20155b84e9b2dfcecc5a13991346bc64a8d57e19ee1dd393e1493fc5ab316dd7625cb9923eb91d55209a + checksum: 2c676bca1892e825fcf6fa1fbdb8e859bb9703e4b620717840cb1efb6262851aa1ae27c0418492d73d132027c6fe3a03284b005bcea6f95a8ca579f6b01d7be6 languageName: node linkType: hard @@ -10868,9 +10868,9 @@ __metadata: languageName: node linkType: hard -"@shapeshiftoss/hdwallet-core@npm:1.62.13-gridplus-validation.10, @shapeshiftoss/hdwallet-core@npm:^1.62.13-gridplus-validation.10": - version: 1.62.13-gridplus-validation.10 - resolution: "@shapeshiftoss/hdwallet-core@npm:1.62.13-gridplus-validation.10" +"@shapeshiftoss/hdwallet-core@npm:1.62.13-gridplus-validation.12, @shapeshiftoss/hdwallet-core@npm:^1.62.13-gridplus-validation.12": + version: 1.62.13-gridplus-validation.12 + resolution: "@shapeshiftoss/hdwallet-core@npm:1.62.13-gridplus-validation.12" dependencies: "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 "@shapeshiftoss/proto-tx-builder": 0.10.0 @@ -10881,7 +10881,7 @@ __metadata: lodash: ^4.17.21 rxjs: ^6.4.0 type-assertions: ^1.1.0 - checksum: fee44e0a81312c6ebede827f97ce4589fd30ef00f1619db137d48801d83ede8643ea8fe48614c616bc15268f247b69e2e7ca31a656eb13f4f7d1a04e648ba45a + checksum: 2eec5503dd5bd19057d4d12b3d2300d5cd789e2cf46fc1afac0ada21c6c4bddf2bf7c6526a330fc4e0a9f79ce8fc3505a87ee4e15121a167deda584ec56bbf8b languageName: node linkType: hard @@ -10899,38 +10899,38 @@ __metadata: languageName: node linkType: hard -"@shapeshiftoss/hdwallet-gridplus@npm:1.62.13-gridplus-validation.10": - version: 1.62.13-gridplus-validation.10 - resolution: "@shapeshiftoss/hdwallet-gridplus@npm:1.62.13-gridplus-validation.10" +"@shapeshiftoss/hdwallet-gridplus@npm:1.62.13-gridplus-validation.12": + version: 1.62.13-gridplus-validation.12 + resolution: "@shapeshiftoss/hdwallet-gridplus@npm:1.62.13-gridplus-validation.12" dependencies: "@bitcoinerlab/secp256k1": ^1.1.1 "@ethereumjs/common": 4.4.0 "@ethereumjs/rlp": 5.0.2 "@ethereumjs/tx": 5.4.0 "@metamask/eth-sig-util": ^7.0.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.10 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.12 bech32: ^1.1.4 bs58: ^5.0.0 crypto-js: ^4.2.0 gridplus-sdk: ^3.2.0 lodash: ^4.17.21 - checksum: 3c528765ae680fab5c4ce3d4c0601fa4d09e13e7a28794fa0764f420a1b60cf0858546601a423804bc1b14a7b2b641428e0234ec8d769a8a7d8ca9baea21a5ca + checksum: 39a2b1c126407090f8726cf6ff5f315fd93ba9b2d14dfa3e6f378be8344911a5e81056a6e3c49266ed134b8908d7b355e28baf451b2a46e343e345f5717131c5 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-keepkey-webusb@npm:1.62.13-gridplus-validation.10": - version: 1.62.13-gridplus-validation.10 - resolution: "@shapeshiftoss/hdwallet-keepkey-webusb@npm:1.62.13-gridplus-validation.10" +"@shapeshiftoss/hdwallet-keepkey-webusb@npm:1.62.13-gridplus-validation.12": + version: 1.62.13-gridplus-validation.12 + resolution: "@shapeshiftoss/hdwallet-keepkey-webusb@npm:1.62.13-gridplus-validation.12" dependencies: - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.10 - "@shapeshiftoss/hdwallet-keepkey": ^1.62.13-gridplus-validation.10 - checksum: 9d007ceb631d6819b455b28325c07ea770597ffda1e697a10e2964d054c569a72a0ac88d40a63740d53596b22ea46ee999c9ea18bd87777b4624d8e0d5b16a48 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.12 + "@shapeshiftoss/hdwallet-keepkey": ^1.62.13-gridplus-validation.12 + checksum: 50cf4fd46460eb2e7c7116da01f8fef9da9ac9910341dd891107b08116496f2adca747be49bdb9e929ba9a66435517cf72f426ac233c497fa531674722829cb2 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-keepkey@npm:1.62.13-gridplus-validation.10, @shapeshiftoss/hdwallet-keepkey@npm:^1.62.13-gridplus-validation.10": - version: 1.62.13-gridplus-validation.10 - resolution: "@shapeshiftoss/hdwallet-keepkey@npm:1.62.13-gridplus-validation.10" +"@shapeshiftoss/hdwallet-keepkey@npm:1.62.13-gridplus-validation.12, @shapeshiftoss/hdwallet-keepkey@npm:^1.62.13-gridplus-validation.12": + version: 1.62.13-gridplus-validation.12 + resolution: "@shapeshiftoss/hdwallet-keepkey@npm:1.62.13-gridplus-validation.12" dependencies: "@bitcoinerlab/secp256k1": ^1.1.1 "@ethereumjs/common": 3.2.0 @@ -10938,7 +10938,7 @@ __metadata: "@keepkey/device-protocol": 7.13.4 "@metamask/eth-sig-util": ^7.0.0 "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.10 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.12 "@shapeshiftoss/proto-tx-builder": 0.10.0 bignumber.js: ^9.0.1 bnb-javascript-sdk-nobroadcast: 2.16.15 @@ -10949,44 +10949,44 @@ __metadata: lodash: ^4.17.21 p-lazy: ^3.1.0 semver: ^7.3.8 - checksum: a71f179ff6478de408ef0865429c67fb47885a1d0656c19ce9ea36b681166261584bc5b116c1e6650d7958fb346e78b355fa01169dd97574ca7b36e2d2d5cc75 + checksum: 50aa3821ea227931d6e83c07d9245d73b081ec199cd6ad57fca8ee252ebb7d8012a442a4b596f5f7804fc2d7707e9f8e6bb57e6d1317cca71ad3d74436fc3ae1 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-keplr@npm:1.62.13-gridplus-validation.10": - version: 1.62.13-gridplus-validation.10 - resolution: "@shapeshiftoss/hdwallet-keplr@npm:1.62.13-gridplus-validation.10" +"@shapeshiftoss/hdwallet-keplr@npm:1.62.13-gridplus-validation.12": + version: 1.62.13-gridplus-validation.12 + resolution: "@shapeshiftoss/hdwallet-keplr@npm:1.62.13-gridplus-validation.12" dependencies: "@cosmjs/amino": ^0.28.13 "@cosmjs/stargate": ^0.28.13 "@shapeshiftoss/caip": 8.15.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.10 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.12 "@shapeshiftoss/proto-tx-builder": 0.10.0 "@shapeshiftoss/types": 3.1.3 base64-js: ^1.5.1 lodash: ^4.17.21 - checksum: ee7aa90ef3b9ceb6c5862a056b909268a67f42bcaff1184533093310769c4fa96c57cc7cfea17c7704cb79131a8b214bfb4badfaabf13088b07ae5c82d1a5a22 + checksum: a40ad8a27a6e6ecaf44cd94fab13c5a698106fb536c96bbbc569c99947e13fa748b4f1218973d4fc4a301cea74483b5c7e596661fc310794f809ac27288aac29 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-ledger-webhid@npm:1.62.13-gridplus-validation.10": - version: 1.62.13-gridplus-validation.10 - resolution: "@shapeshiftoss/hdwallet-ledger-webhid@npm:1.62.13-gridplus-validation.10" +"@shapeshiftoss/hdwallet-ledger-webhid@npm:1.62.13-gridplus-validation.12": + version: 1.62.13-gridplus-validation.12 + resolution: "@shapeshiftoss/hdwallet-ledger-webhid@npm:1.62.13-gridplus-validation.12" dependencies: "@ledgerhq/hw-app-btc": ^10.10.0 "@ledgerhq/hw-app-eth": ^6.45.13 "@ledgerhq/hw-transport": 6.31.8 "@ledgerhq/hw-transport-webhid": ^6.30.4 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.10 - "@shapeshiftoss/hdwallet-ledger": ^1.62.13-gridplus-validation.10 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.12 + "@shapeshiftoss/hdwallet-ledger": ^1.62.13-gridplus-validation.12 "@types/w3c-web-hid": ^1.0.2 - checksum: 58834501e800532bd0fecf5515aaa77c7d8a00761d24b202b793c1c7638d58dbf027cfd984799bfb27259a0817126541aaef5288bd180d29b8db6d1acc56e1a1 + checksum: 6b6fde3cd49f025378d940a6bee361907f9fd35242e4110de6418720872b494dbfef3ab989cba83b5a86b19ad1419c0401a66828d24ac7d1e7968fc5a5de6868 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-ledger-webusb@npm:1.62.13-gridplus-validation.10": - version: 1.62.13-gridplus-validation.10 - resolution: "@shapeshiftoss/hdwallet-ledger-webusb@npm:1.62.13-gridplus-validation.10" +"@shapeshiftoss/hdwallet-ledger-webusb@npm:1.62.13-gridplus-validation.12": + version: 1.62.13-gridplus-validation.12 + resolution: "@shapeshiftoss/hdwallet-ledger-webusb@npm:1.62.13-gridplus-validation.12" dependencies: "@ledgerhq/hw-app-btc": ^10.10.0 "@ledgerhq/hw-app-cosmos": ^6.32.4 @@ -10994,17 +10994,17 @@ __metadata: "@ledgerhq/hw-app-solana": ^7.5.1 "@ledgerhq/hw-transport": 6.31.8 "@ledgerhq/hw-transport-webusb": 6.29.8 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.10 - "@shapeshiftoss/hdwallet-ledger": ^1.62.13-gridplus-validation.10 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.12 + "@shapeshiftoss/hdwallet-ledger": ^1.62.13-gridplus-validation.12 "@types/w3c-web-usb": ^1.0.4 p-queue: ^7.4.1 - checksum: ef3b096b6d0f722e1d34555199081364774b2eed162aa6dc342da4aec1c7c9b996020b13c97a528772c7f9dcb9168e308007685e4abef3bbf9e734b2ed9589b0 + checksum: 4d9743b27251b1702bcf4a2c93f34100323810ccf107755edc85db7f7dd83868a3e771a1febae08b5d5234ae558efc22b2dce980df96b0614de2ec18b0319ba5 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-ledger@npm:1.62.13-gridplus-validation.10, @shapeshiftoss/hdwallet-ledger@npm:^1.62.13-gridplus-validation.10": - version: 1.62.13-gridplus-validation.10 - resolution: "@shapeshiftoss/hdwallet-ledger@npm:1.62.13-gridplus-validation.10" +"@shapeshiftoss/hdwallet-ledger@npm:1.62.13-gridplus-validation.12, @shapeshiftoss/hdwallet-ledger@npm:^1.62.13-gridplus-validation.12": + version: 1.62.13-gridplus-validation.12 + resolution: "@shapeshiftoss/hdwallet-ledger@npm:1.62.13-gridplus-validation.12" dependencies: "@ethereumjs/common": 3.2.0 "@ethereumjs/tx": 4.2.0 @@ -11016,7 +11016,7 @@ __metadata: "@ledgerhq/hw-transport": 6.31.8 "@ledgerhq/logs": 6.13.0 "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.10 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.12 "@solana/web3.js": 1.95.8 base64-js: ^1.5.1 bchaddrjs: ^0.4.4 @@ -11026,33 +11026,33 @@ __metadata: ethereumjs-util: ^6.1.0 ethers: 5.7.2 lodash: ^4.17.21 - checksum: 824634ba67afb40bfae33f1fb7f553860f41b516e7d1efc71cdbd9d984e01975827596e2865c198433f01e894c7ecff921186d3599764349c89d76c78a72f8ff + checksum: 377b96957b51b08382b5e1de893587a898e5bcad67da32aa127bca1776709804a3f56f121411c6696873004e9e4a1ac4ce3ef635feb6d3eaccf7489b20801f3e languageName: node linkType: hard -"@shapeshiftoss/hdwallet-metamask-multichain@npm:1.62.13-gridplus-validation.10": - version: 1.62.13-gridplus-validation.10 - resolution: "@shapeshiftoss/hdwallet-metamask-multichain@npm:1.62.13-gridplus-validation.10" +"@shapeshiftoss/hdwallet-metamask-multichain@npm:1.62.13-gridplus-validation.12": + version: 1.62.13-gridplus-validation.12 + resolution: "@shapeshiftoss/hdwallet-metamask-multichain@npm:1.62.13-gridplus-validation.12" dependencies: "@metamask/detect-provider": ^1.2.0 "@metamask/onboarding": ^1.0.1 "@shapeshiftoss/common-api": ^9.3.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.10 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.12 "@shapeshiftoss/metamask-snaps-adapter": ^1.0.12 "@shapeshiftoss/metamask-snaps-types": ^1.0.12 eth-rpc-errors: ^4.0.3 lodash: ^4.17.21 mipd: ^0.0.7 - checksum: 8a09e432844bb5f20cd5f61a38f9760f60a865f477c4d2d96e278a0a801021ca63a0adbbe0a35be50bfccdca9626b61a95a95a266872a4b4a8f5b04320b1a6b1 + checksum: 0e6975c6866447e4364c6872405f4f94b8e0958df9cb270ef16eaec14f28da47273fa159937145b4efb92f3672786a6830f41b88d664c3548a383eae86113e38 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-native-vault@npm:1.62.13-gridplus-validation.10": - version: 1.62.13-gridplus-validation.10 - resolution: "@shapeshiftoss/hdwallet-native-vault@npm:1.62.13-gridplus-validation.10" +"@shapeshiftoss/hdwallet-native-vault@npm:1.62.13-gridplus-validation.12": + version: 1.62.13-gridplus-validation.12 + resolution: "@shapeshiftoss/hdwallet-native-vault@npm:1.62.13-gridplus-validation.12" dependencies: "@bitcoinerlab/secp256k1": ^1.1.1 - "@shapeshiftoss/hdwallet-native": ^1.62.13-gridplus-validation.10 + "@shapeshiftoss/hdwallet-native": ^1.62.13-gridplus-validation.12 bip39: ^3.0.4 hash-wasm: ^4.11.0 idb-keyval: ^6.0.3 @@ -11060,18 +11060,18 @@ __metadata: p-lazy: ^3.1.0 type-assertions: ^1.1.0 uuid: ^8.3.2 - checksum: efdd93e0fd03abe616060ada384135c015b09336ada904fbe8d22dbdef36eb855b6fdf52f55f3115dcae40c1d0c8a6db368fdac9749e6ca301e4e7926efd0573 + checksum: 4ecdab79eb66c2faf00cfa0a2c67db5b497589ddbbce7eda1e7cfdc479b6d463e5406701dc94d848f69882abbe4540911fca539cef5d1bea6b3f1b17c2fbb324 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-native@npm:1.62.13-gridplus-validation.10, @shapeshiftoss/hdwallet-native@npm:^1.62.13-gridplus-validation.10": - version: 1.62.13-gridplus-validation.10 - resolution: "@shapeshiftoss/hdwallet-native@npm:1.62.13-gridplus-validation.10" +"@shapeshiftoss/hdwallet-native@npm:1.62.13-gridplus-validation.12, @shapeshiftoss/hdwallet-native@npm:^1.62.13-gridplus-validation.12": + version: 1.62.13-gridplus-validation.12 + resolution: "@shapeshiftoss/hdwallet-native@npm:1.62.13-gridplus-validation.12" dependencies: "@bitcoinerlab/secp256k1": ^1.1.1 "@noble/curves": ^1.4.0 "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.10 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.12 "@shapeshiftoss/proto-tx-builder": 0.10.0 "@zxing/text-encoding": ^0.9.0 bchaddrjs: ^0.4.9 @@ -11092,7 +11092,7 @@ __metadata: p-lazy: ^3.1.0 scrypt-js: ^3.0.1 tendermint-tx-builder: 1.0.16 - checksum: 8558447be0d7daff19a615e49d2be7168cb84a22171112bcabac97aa9fb6474ff22dd7ca4180f610069622fd5bfa6eadaa2dcc68275e02f5b64decb3833f642a + checksum: a989d67054dfc4f1af02f02231b15e68493f2bf3a106cd0074517449d2f35ec130a5d6d9caad0de7496a7566d1d01150de205d0d47550a81d34aefd039ba5624 languageName: node linkType: hard @@ -11129,83 +11129,83 @@ __metadata: languageName: node linkType: hard -"@shapeshiftoss/hdwallet-phantom@npm:1.62.13-gridplus-validation.10": - version: 1.62.13-gridplus-validation.10 - resolution: "@shapeshiftoss/hdwallet-phantom@npm:1.62.13-gridplus-validation.10" +"@shapeshiftoss/hdwallet-phantom@npm:1.62.13-gridplus-validation.12": + version: 1.62.13-gridplus-validation.12 + resolution: "@shapeshiftoss/hdwallet-phantom@npm:1.62.13-gridplus-validation.12" dependencies: "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.10 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.12 "@solana/web3.js": 1.95.8 base64-js: ^1.5.1 bitcoinjs-message: ^2.0.0 ethers: 5.7.2 lodash: ^4.17.21 - checksum: f0664ea2eea0d51718210228223c2033123cd358269c4630fb5edfb27f4a8cb4511f14268a622bce0a66a305189cd77581980f9976985925dec7477fd21f1d18 + checksum: f226118397038680fc4205620b94b2660c7c3a3ed02ca70de5fb85b8fe560836d7036981a9150b6f5caec0267c3400718773f09df5e983eea639022dae456181 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-trezor-connect@npm:1.62.13-gridplus-validation.10": - version: 1.62.13-gridplus-validation.10 - resolution: "@shapeshiftoss/hdwallet-trezor-connect@npm:1.62.13-gridplus-validation.10" +"@shapeshiftoss/hdwallet-trezor-connect@npm:1.62.13-gridplus-validation.12": + version: 1.62.13-gridplus-validation.12 + resolution: "@shapeshiftoss/hdwallet-trezor-connect@npm:1.62.13-gridplus-validation.12" dependencies: - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.10 - "@shapeshiftoss/hdwallet-trezor": ^1.62.13-gridplus-validation.10 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.12 + "@shapeshiftoss/hdwallet-trezor": ^1.62.13-gridplus-validation.12 "@trezor/connect-web": ^9.6.4 - checksum: 1fd8eed0274e46b76d6c3eb4a21ffbb49d0d80441081c4f79eddd55e4f1a8c03797e188e452961c34ded2b05ed4d91a69d1df4fadf1bd5ff55c3937246125d35 + checksum: 19ad66a294a5840a30d134a9e4d43a56992dd9def61a05aa1c0b2c531c9b4201d83a75bcb65311f5ff675a039a33af3ae5b4929c86fa8ded527ea6a8641bcd3a languageName: node linkType: hard -"@shapeshiftoss/hdwallet-trezor@npm:1.62.13-gridplus-validation.10, @shapeshiftoss/hdwallet-trezor@npm:^1.62.13-gridplus-validation.10": - version: 1.62.13-gridplus-validation.10 - resolution: "@shapeshiftoss/hdwallet-trezor@npm:1.62.13-gridplus-validation.10" +"@shapeshiftoss/hdwallet-trezor@npm:1.62.13-gridplus-validation.12, @shapeshiftoss/hdwallet-trezor@npm:^1.62.13-gridplus-validation.12": + version: 1.62.13-gridplus-validation.12 + resolution: "@shapeshiftoss/hdwallet-trezor@npm:1.62.13-gridplus-validation.12" dependencies: "@ethereumjs/common": 3.2.0 "@ethereumjs/tx": 4.2.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.10 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.12 base64-js: ^1.5.1 lodash: ^4.17.21 - checksum: 47870ab6d3d7d11048abaeee1be17f665d26695e9f85fc37320b3aa669777100eae318e87d1551c31267baaa1ac2da620a2a0788753319e858ff2f15bab649af + checksum: bcd357afb48dfe0d11de0952a112287e1625210f21f4a11845f3bd1c61155b33575bebcea3999532f600e2a373751f005c5594ea172557cacadb8ffe3d6e5f53 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-vultisig@npm:1.62.13-gridplus-validation.10": - version: 1.62.13-gridplus-validation.10 - resolution: "@shapeshiftoss/hdwallet-vultisig@npm:1.62.13-gridplus-validation.10" +"@shapeshiftoss/hdwallet-vultisig@npm:1.62.13-gridplus-validation.12": + version: 1.62.13-gridplus-validation.12 + resolution: "@shapeshiftoss/hdwallet-vultisig@npm:1.62.13-gridplus-validation.12" dependencies: "@cosmjs/amino": ^0.28.13 "@cosmjs/stargate": ^0.28.13 "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.10 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.12 "@solana/web3.js": 1.95.8 base64-js: ^1.5.1 bitcoinjs-message: ^2.0.0 ethers: 5.7.2 lodash: ^4.17.21 - checksum: 33e6e73f28b91d7f14990e9bf6e52c966809df854ec5bb23e189dc2f61efa1634a31be4d46ab5b6538821d3f40173775678737722b491fd6aad6af8462f29278 + checksum: 5683b5e9b1728efa51a83f962c0653f5894fb6793c45a36b822c9f9bcab1280457ee73aed36cf70e536831472bb3bc86e2938830a2ff52ea3786d90e07eea213 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-walletconnect@npm:1.62.13-gridplus-validation.10": - version: 1.62.13-gridplus-validation.10 - resolution: "@shapeshiftoss/hdwallet-walletconnect@npm:1.62.13-gridplus-validation.10" +"@shapeshiftoss/hdwallet-walletconnect@npm:1.62.13-gridplus-validation.12": + version: 1.62.13-gridplus-validation.12 + resolution: "@shapeshiftoss/hdwallet-walletconnect@npm:1.62.13-gridplus-validation.12" dependencies: - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.10 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.12 "@walletconnect/qrcode-modal": ^1.7.8 "@walletconnect/web3-provider": ^1.7.8 ethers: ^5.6.5 - checksum: 1b761fcbaabe347f977eaf37016a27f1fb74ca720e62ffbb4d1cc3284c3b998e72522bbee263682ccce0aee9f8c731e023fbe362afc64f725cff74251e9a78db + checksum: e4d32391a70529e812c02df4ee247f0898308d812c31673fc08d881597d4b0ec338a1c65ab790fd6b3bf7acddba9c86590a8315eb743602569292832ee43a3a7 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-walletconnectv2@npm:1.62.13-gridplus-validation.10": - version: 1.62.13-gridplus-validation.10 - resolution: "@shapeshiftoss/hdwallet-walletconnectv2@npm:1.62.13-gridplus-validation.10" +"@shapeshiftoss/hdwallet-walletconnectv2@npm:1.62.13-gridplus-validation.12": + version: 1.62.13-gridplus-validation.12 + resolution: "@shapeshiftoss/hdwallet-walletconnectv2@npm:1.62.13-gridplus-validation.12" dependencies: - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.10 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.12 "@walletconnect/ethereum-provider": ^2.20.2 "@walletconnect/modal": ^2.6.2 ethers: ^5.6.5 - checksum: 792014131ec44fb733a339b45e6fcbfaadb216ab61e73c2be720c03853c5250f8e9b5ee8e92098a94a60119f64f2d6b5768e4466ac1243bdd0ad50547279dd0b + checksum: 27106c9b17b7f3d471e113e078cd52462627609fe3f38004cd4d0c3cd55a80ccad6027d5096d67578856b824d3c91b8674118fc165ff1696aee0dd6a0db9e0e0 languageName: node linkType: hard @@ -11425,24 +11425,24 @@ __metadata: "@shapeshiftoss/chain-adapters": "workspace:^" "@shapeshiftoss/contracts": "workspace:^" "@shapeshiftoss/errors": "workspace:^" - "@shapeshiftoss/hdwallet-coinbase": 1.62.13-gridplus-validation.10 - "@shapeshiftoss/hdwallet-core": 1.62.13-gridplus-validation.10 - "@shapeshiftoss/hdwallet-gridplus": 1.62.13-gridplus-validation.10 - "@shapeshiftoss/hdwallet-keepkey": 1.62.13-gridplus-validation.10 - "@shapeshiftoss/hdwallet-keepkey-webusb": 1.62.13-gridplus-validation.10 - "@shapeshiftoss/hdwallet-keplr": 1.62.13-gridplus-validation.10 - "@shapeshiftoss/hdwallet-ledger": 1.62.13-gridplus-validation.10 - "@shapeshiftoss/hdwallet-ledger-webhid": 1.62.13-gridplus-validation.10 - "@shapeshiftoss/hdwallet-ledger-webusb": 1.62.13-gridplus-validation.10 - "@shapeshiftoss/hdwallet-metamask-multichain": 1.62.13-gridplus-validation.10 - "@shapeshiftoss/hdwallet-native": 1.62.13-gridplus-validation.10 - "@shapeshiftoss/hdwallet-native-vault": 1.62.13-gridplus-validation.10 - "@shapeshiftoss/hdwallet-phantom": 1.62.13-gridplus-validation.10 - "@shapeshiftoss/hdwallet-trezor": 1.62.13-gridplus-validation.10 - "@shapeshiftoss/hdwallet-trezor-connect": 1.62.13-gridplus-validation.10 - "@shapeshiftoss/hdwallet-vultisig": 1.62.13-gridplus-validation.10 - "@shapeshiftoss/hdwallet-walletconnect": 1.62.13-gridplus-validation.10 - "@shapeshiftoss/hdwallet-walletconnectv2": 1.62.13-gridplus-validation.10 + "@shapeshiftoss/hdwallet-coinbase": 1.62.13-gridplus-validation.12 + "@shapeshiftoss/hdwallet-core": 1.62.13-gridplus-validation.12 + "@shapeshiftoss/hdwallet-gridplus": 1.62.13-gridplus-validation.12 + "@shapeshiftoss/hdwallet-keepkey": 1.62.13-gridplus-validation.12 + "@shapeshiftoss/hdwallet-keepkey-webusb": 1.62.13-gridplus-validation.12 + "@shapeshiftoss/hdwallet-keplr": 1.62.13-gridplus-validation.12 + "@shapeshiftoss/hdwallet-ledger": 1.62.13-gridplus-validation.12 + "@shapeshiftoss/hdwallet-ledger-webhid": 1.62.13-gridplus-validation.12 + "@shapeshiftoss/hdwallet-ledger-webusb": 1.62.13-gridplus-validation.12 + "@shapeshiftoss/hdwallet-metamask-multichain": 1.62.13-gridplus-validation.12 + "@shapeshiftoss/hdwallet-native": 1.62.13-gridplus-validation.12 + "@shapeshiftoss/hdwallet-native-vault": 1.62.13-gridplus-validation.12 + "@shapeshiftoss/hdwallet-phantom": 1.62.13-gridplus-validation.12 + "@shapeshiftoss/hdwallet-trezor": 1.62.13-gridplus-validation.12 + "@shapeshiftoss/hdwallet-trezor-connect": 1.62.13-gridplus-validation.12 + "@shapeshiftoss/hdwallet-vultisig": 1.62.13-gridplus-validation.12 + "@shapeshiftoss/hdwallet-walletconnect": 1.62.13-gridplus-validation.12 + "@shapeshiftoss/hdwallet-walletconnectv2": 1.62.13-gridplus-validation.12 "@shapeshiftoss/swapper": "workspace:^" "@shapeshiftoss/types": "workspace:^" "@shapeshiftoss/unchained-client": "workspace:^" From 2225d1247bae6bf999075501b0bb579bf8083ea9 Mon Sep 17 00:00:00 2001 From: gomes <17035424+gomesalexandre@users.noreply.github.com> Date: Wed, 26 Nov 2025 18:22:36 +0100 Subject: [PATCH 08/26] chore: update hdwallet packages to .13 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Updated all @shapeshiftoss/hdwallet-* packages to 1.62.13-gridplus-validation.13 Fixes Device Locked error during initial pairing by removing resetActiveWallets() call that was clearing cache unnecessarily. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- package.json | 36 ++++----- yarn.lock | 222 +++++++++++++++++++++++++-------------------------- 2 files changed, 129 insertions(+), 129 deletions(-) diff --git a/package.json b/package.json index 78bdb965841..62ff8b3728f 100644 --- a/package.json +++ b/package.json @@ -100,24 +100,24 @@ "@shapeshiftoss/chain-adapters": "workspace:^", "@shapeshiftoss/contracts": "workspace:^", "@shapeshiftoss/errors": "workspace:^", - "@shapeshiftoss/hdwallet-coinbase": "1.62.13-gridplus-validation.12", - "@shapeshiftoss/hdwallet-core": "1.62.13-gridplus-validation.12", - "@shapeshiftoss/hdwallet-gridplus": "1.62.13-gridplus-validation.12", - "@shapeshiftoss/hdwallet-keepkey": "1.62.13-gridplus-validation.12", - "@shapeshiftoss/hdwallet-keepkey-webusb": "1.62.13-gridplus-validation.12", - "@shapeshiftoss/hdwallet-keplr": "1.62.13-gridplus-validation.12", - "@shapeshiftoss/hdwallet-ledger": "1.62.13-gridplus-validation.12", - "@shapeshiftoss/hdwallet-ledger-webhid": "1.62.13-gridplus-validation.12", - "@shapeshiftoss/hdwallet-ledger-webusb": "1.62.13-gridplus-validation.12", - "@shapeshiftoss/hdwallet-metamask-multichain": "1.62.13-gridplus-validation.12", - "@shapeshiftoss/hdwallet-native": "1.62.13-gridplus-validation.12", - "@shapeshiftoss/hdwallet-native-vault": "1.62.13-gridplus-validation.12", - "@shapeshiftoss/hdwallet-phantom": "1.62.13-gridplus-validation.12", - "@shapeshiftoss/hdwallet-trezor": "1.62.13-gridplus-validation.12", - "@shapeshiftoss/hdwallet-trezor-connect": "1.62.13-gridplus-validation.12", - "@shapeshiftoss/hdwallet-vultisig": "1.62.13-gridplus-validation.12", - "@shapeshiftoss/hdwallet-walletconnect": "1.62.13-gridplus-validation.12", - "@shapeshiftoss/hdwallet-walletconnectv2": "1.62.13-gridplus-validation.12", + "@shapeshiftoss/hdwallet-coinbase": "1.62.13-gridplus-validation.13", + "@shapeshiftoss/hdwallet-core": "1.62.13-gridplus-validation.13", + "@shapeshiftoss/hdwallet-gridplus": "1.62.13-gridplus-validation.13", + "@shapeshiftoss/hdwallet-keepkey": "1.62.13-gridplus-validation.13", + "@shapeshiftoss/hdwallet-keepkey-webusb": "1.62.13-gridplus-validation.13", + "@shapeshiftoss/hdwallet-keplr": "1.62.13-gridplus-validation.13", + "@shapeshiftoss/hdwallet-ledger": "1.62.13-gridplus-validation.13", + "@shapeshiftoss/hdwallet-ledger-webhid": "1.62.13-gridplus-validation.13", + "@shapeshiftoss/hdwallet-ledger-webusb": "1.62.13-gridplus-validation.13", + "@shapeshiftoss/hdwallet-metamask-multichain": "1.62.13-gridplus-validation.13", + "@shapeshiftoss/hdwallet-native": "1.62.13-gridplus-validation.13", + "@shapeshiftoss/hdwallet-native-vault": "1.62.13-gridplus-validation.13", + "@shapeshiftoss/hdwallet-phantom": "1.62.13-gridplus-validation.13", + "@shapeshiftoss/hdwallet-trezor": "1.62.13-gridplus-validation.13", + "@shapeshiftoss/hdwallet-trezor-connect": "1.62.13-gridplus-validation.13", + "@shapeshiftoss/hdwallet-vultisig": "1.62.13-gridplus-validation.13", + "@shapeshiftoss/hdwallet-walletconnect": "1.62.13-gridplus-validation.13", + "@shapeshiftoss/hdwallet-walletconnectv2": "1.62.13-gridplus-validation.13", "@shapeshiftoss/swapper": "workspace:^", "@shapeshiftoss/types": "workspace:^", "@shapeshiftoss/unchained-client": "workspace:^", diff --git a/yarn.lock b/yarn.lock index 78d662a8cf7..a0d22c70732 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10827,15 +10827,15 @@ __metadata: languageName: node linkType: hard -"@shapeshiftoss/hdwallet-coinbase@npm:1.62.13-gridplus-validation.12": - version: 1.62.13-gridplus-validation.12 - resolution: "@shapeshiftoss/hdwallet-coinbase@npm:1.62.13-gridplus-validation.12" +"@shapeshiftoss/hdwallet-coinbase@npm:1.62.13-gridplus-validation.13": + version: 1.62.13-gridplus-validation.13 + resolution: "@shapeshiftoss/hdwallet-coinbase@npm:1.62.13-gridplus-validation.13" dependencies: "@coinbase/wallet-sdk": ^3.6.6 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.12 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.13 eth-rpc-errors: ^4.0.3 lodash: ^4.17.21 - checksum: 2c676bca1892e825fcf6fa1fbdb8e859bb9703e4b620717840cb1efb6262851aa1ae27c0418492d73d132027c6fe3a03284b005bcea6f95a8ca579f6b01d7be6 + checksum: 08c37938958e9255d5f41c8d7b45eb402a1dc760e710715795fe47e0114fefb246c86ee1827833a43a269da1770c8dbd246e7ce2253a43f3919ef39c492e772b languageName: node linkType: hard @@ -10868,9 +10868,9 @@ __metadata: languageName: node linkType: hard -"@shapeshiftoss/hdwallet-core@npm:1.62.13-gridplus-validation.12, @shapeshiftoss/hdwallet-core@npm:^1.62.13-gridplus-validation.12": - version: 1.62.13-gridplus-validation.12 - resolution: "@shapeshiftoss/hdwallet-core@npm:1.62.13-gridplus-validation.12" +"@shapeshiftoss/hdwallet-core@npm:1.62.13-gridplus-validation.13, @shapeshiftoss/hdwallet-core@npm:^1.62.13-gridplus-validation.13": + version: 1.62.13-gridplus-validation.13 + resolution: "@shapeshiftoss/hdwallet-core@npm:1.62.13-gridplus-validation.13" dependencies: "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 "@shapeshiftoss/proto-tx-builder": 0.10.0 @@ -10881,7 +10881,7 @@ __metadata: lodash: ^4.17.21 rxjs: ^6.4.0 type-assertions: ^1.1.0 - checksum: 2eec5503dd5bd19057d4d12b3d2300d5cd789e2cf46fc1afac0ada21c6c4bddf2bf7c6526a330fc4e0a9f79ce8fc3505a87ee4e15121a167deda584ec56bbf8b + checksum: 18f52475b0ea8d44d9cb35a987b7703229c9da55b7121eab701150d85e0a07f609296349aaddfb08a49ae14921068b01823893b292bbd54942ed172935370fef languageName: node linkType: hard @@ -10899,38 +10899,38 @@ __metadata: languageName: node linkType: hard -"@shapeshiftoss/hdwallet-gridplus@npm:1.62.13-gridplus-validation.12": - version: 1.62.13-gridplus-validation.12 - resolution: "@shapeshiftoss/hdwallet-gridplus@npm:1.62.13-gridplus-validation.12" +"@shapeshiftoss/hdwallet-gridplus@npm:1.62.13-gridplus-validation.13": + version: 1.62.13-gridplus-validation.13 + resolution: "@shapeshiftoss/hdwallet-gridplus@npm:1.62.13-gridplus-validation.13" dependencies: "@bitcoinerlab/secp256k1": ^1.1.1 "@ethereumjs/common": 4.4.0 "@ethereumjs/rlp": 5.0.2 "@ethereumjs/tx": 5.4.0 "@metamask/eth-sig-util": ^7.0.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.12 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.13 bech32: ^1.1.4 bs58: ^5.0.0 crypto-js: ^4.2.0 gridplus-sdk: ^3.2.0 lodash: ^4.17.21 - checksum: 39a2b1c126407090f8726cf6ff5f315fd93ba9b2d14dfa3e6f378be8344911a5e81056a6e3c49266ed134b8908d7b355e28baf451b2a46e343e345f5717131c5 + checksum: d97e8e831161342ccbf602188459213c503912fbf02bc0aaa66f95b979c31272dc8e242ece584e1917f7a72a28556777d536582d534c71fc907972cd8cb1a6c1 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-keepkey-webusb@npm:1.62.13-gridplus-validation.12": - version: 1.62.13-gridplus-validation.12 - resolution: "@shapeshiftoss/hdwallet-keepkey-webusb@npm:1.62.13-gridplus-validation.12" +"@shapeshiftoss/hdwallet-keepkey-webusb@npm:1.62.13-gridplus-validation.13": + version: 1.62.13-gridplus-validation.13 + resolution: "@shapeshiftoss/hdwallet-keepkey-webusb@npm:1.62.13-gridplus-validation.13" dependencies: - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.12 - "@shapeshiftoss/hdwallet-keepkey": ^1.62.13-gridplus-validation.12 - checksum: 50cf4fd46460eb2e7c7116da01f8fef9da9ac9910341dd891107b08116496f2adca747be49bdb9e929ba9a66435517cf72f426ac233c497fa531674722829cb2 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.13 + "@shapeshiftoss/hdwallet-keepkey": ^1.62.13-gridplus-validation.13 + checksum: e191bd9aac9f212f6bec2d3d34d25d95dc158c5c57e5411676cc7d6007e4def585af97cc777432bbdaf8b8bf42466d7faa573c41dd4f3a7a1e8efec34c661be1 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-keepkey@npm:1.62.13-gridplus-validation.12, @shapeshiftoss/hdwallet-keepkey@npm:^1.62.13-gridplus-validation.12": - version: 1.62.13-gridplus-validation.12 - resolution: "@shapeshiftoss/hdwallet-keepkey@npm:1.62.13-gridplus-validation.12" +"@shapeshiftoss/hdwallet-keepkey@npm:1.62.13-gridplus-validation.13, @shapeshiftoss/hdwallet-keepkey@npm:^1.62.13-gridplus-validation.13": + version: 1.62.13-gridplus-validation.13 + resolution: "@shapeshiftoss/hdwallet-keepkey@npm:1.62.13-gridplus-validation.13" dependencies: "@bitcoinerlab/secp256k1": ^1.1.1 "@ethereumjs/common": 3.2.0 @@ -10938,7 +10938,7 @@ __metadata: "@keepkey/device-protocol": 7.13.4 "@metamask/eth-sig-util": ^7.0.0 "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.12 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.13 "@shapeshiftoss/proto-tx-builder": 0.10.0 bignumber.js: ^9.0.1 bnb-javascript-sdk-nobroadcast: 2.16.15 @@ -10949,44 +10949,44 @@ __metadata: lodash: ^4.17.21 p-lazy: ^3.1.0 semver: ^7.3.8 - checksum: 50aa3821ea227931d6e83c07d9245d73b081ec199cd6ad57fca8ee252ebb7d8012a442a4b596f5f7804fc2d7707e9f8e6bb57e6d1317cca71ad3d74436fc3ae1 + checksum: b382536aef8d35a8461ba506da406b2b275b8de390285cb71f13661f259d438c4f4e8bc63f9bf2339df15a3992738fb4edf9cc74b142ad13a4430ce3743944f2 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-keplr@npm:1.62.13-gridplus-validation.12": - version: 1.62.13-gridplus-validation.12 - resolution: "@shapeshiftoss/hdwallet-keplr@npm:1.62.13-gridplus-validation.12" +"@shapeshiftoss/hdwallet-keplr@npm:1.62.13-gridplus-validation.13": + version: 1.62.13-gridplus-validation.13 + resolution: "@shapeshiftoss/hdwallet-keplr@npm:1.62.13-gridplus-validation.13" dependencies: "@cosmjs/amino": ^0.28.13 "@cosmjs/stargate": ^0.28.13 "@shapeshiftoss/caip": 8.15.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.12 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.13 "@shapeshiftoss/proto-tx-builder": 0.10.0 "@shapeshiftoss/types": 3.1.3 base64-js: ^1.5.1 lodash: ^4.17.21 - checksum: a40ad8a27a6e6ecaf44cd94fab13c5a698106fb536c96bbbc569c99947e13fa748b4f1218973d4fc4a301cea74483b5c7e596661fc310794f809ac27288aac29 + checksum: a5cf435f5b2099bf2574643d75780e54851439faef3e21c2de3d0a45e6cfcdf29a3c5fd316515346760215c07090ee9a9b6b289e21233d1b559e2df6b1980ff6 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-ledger-webhid@npm:1.62.13-gridplus-validation.12": - version: 1.62.13-gridplus-validation.12 - resolution: "@shapeshiftoss/hdwallet-ledger-webhid@npm:1.62.13-gridplus-validation.12" +"@shapeshiftoss/hdwallet-ledger-webhid@npm:1.62.13-gridplus-validation.13": + version: 1.62.13-gridplus-validation.13 + resolution: "@shapeshiftoss/hdwallet-ledger-webhid@npm:1.62.13-gridplus-validation.13" dependencies: "@ledgerhq/hw-app-btc": ^10.10.0 "@ledgerhq/hw-app-eth": ^6.45.13 "@ledgerhq/hw-transport": 6.31.8 "@ledgerhq/hw-transport-webhid": ^6.30.4 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.12 - "@shapeshiftoss/hdwallet-ledger": ^1.62.13-gridplus-validation.12 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.13 + "@shapeshiftoss/hdwallet-ledger": ^1.62.13-gridplus-validation.13 "@types/w3c-web-hid": ^1.0.2 - checksum: 6b6fde3cd49f025378d940a6bee361907f9fd35242e4110de6418720872b494dbfef3ab989cba83b5a86b19ad1419c0401a66828d24ac7d1e7968fc5a5de6868 + checksum: aaa65c9fa468e40b1c0986db6893ab4b52f1fb755410fd77e266666734fb5bb42da585afc73b834484c18000259be6ac8ca8e821f4ae60f125a4d6f4b843f8e7 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-ledger-webusb@npm:1.62.13-gridplus-validation.12": - version: 1.62.13-gridplus-validation.12 - resolution: "@shapeshiftoss/hdwallet-ledger-webusb@npm:1.62.13-gridplus-validation.12" +"@shapeshiftoss/hdwallet-ledger-webusb@npm:1.62.13-gridplus-validation.13": + version: 1.62.13-gridplus-validation.13 + resolution: "@shapeshiftoss/hdwallet-ledger-webusb@npm:1.62.13-gridplus-validation.13" dependencies: "@ledgerhq/hw-app-btc": ^10.10.0 "@ledgerhq/hw-app-cosmos": ^6.32.4 @@ -10994,17 +10994,17 @@ __metadata: "@ledgerhq/hw-app-solana": ^7.5.1 "@ledgerhq/hw-transport": 6.31.8 "@ledgerhq/hw-transport-webusb": 6.29.8 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.12 - "@shapeshiftoss/hdwallet-ledger": ^1.62.13-gridplus-validation.12 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.13 + "@shapeshiftoss/hdwallet-ledger": ^1.62.13-gridplus-validation.13 "@types/w3c-web-usb": ^1.0.4 p-queue: ^7.4.1 - checksum: 4d9743b27251b1702bcf4a2c93f34100323810ccf107755edc85db7f7dd83868a3e771a1febae08b5d5234ae558efc22b2dce980df96b0614de2ec18b0319ba5 + checksum: 78f0bd4c04b2d3a627b03c67cbfc7025cbe5fd776272e4d80feaf77789ba4a4b81bdaf778969543fba671d9e26cc9c417aecac3430bc4983844babbb5f96cd3d languageName: node linkType: hard -"@shapeshiftoss/hdwallet-ledger@npm:1.62.13-gridplus-validation.12, @shapeshiftoss/hdwallet-ledger@npm:^1.62.13-gridplus-validation.12": - version: 1.62.13-gridplus-validation.12 - resolution: "@shapeshiftoss/hdwallet-ledger@npm:1.62.13-gridplus-validation.12" +"@shapeshiftoss/hdwallet-ledger@npm:1.62.13-gridplus-validation.13, @shapeshiftoss/hdwallet-ledger@npm:^1.62.13-gridplus-validation.13": + version: 1.62.13-gridplus-validation.13 + resolution: "@shapeshiftoss/hdwallet-ledger@npm:1.62.13-gridplus-validation.13" dependencies: "@ethereumjs/common": 3.2.0 "@ethereumjs/tx": 4.2.0 @@ -11016,7 +11016,7 @@ __metadata: "@ledgerhq/hw-transport": 6.31.8 "@ledgerhq/logs": 6.13.0 "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.12 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.13 "@solana/web3.js": 1.95.8 base64-js: ^1.5.1 bchaddrjs: ^0.4.4 @@ -11026,33 +11026,33 @@ __metadata: ethereumjs-util: ^6.1.0 ethers: 5.7.2 lodash: ^4.17.21 - checksum: 377b96957b51b08382b5e1de893587a898e5bcad67da32aa127bca1776709804a3f56f121411c6696873004e9e4a1ac4ce3ef635feb6d3eaccf7489b20801f3e + checksum: 05c4a9aadb56178715cb69860af2834d230ec8d7171c5fa11a2f75f07876ece214d94980aedc3f98831cfa6d0075d0a607970f648b00499560671176d707d0d2 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-metamask-multichain@npm:1.62.13-gridplus-validation.12": - version: 1.62.13-gridplus-validation.12 - resolution: "@shapeshiftoss/hdwallet-metamask-multichain@npm:1.62.13-gridplus-validation.12" +"@shapeshiftoss/hdwallet-metamask-multichain@npm:1.62.13-gridplus-validation.13": + version: 1.62.13-gridplus-validation.13 + resolution: "@shapeshiftoss/hdwallet-metamask-multichain@npm:1.62.13-gridplus-validation.13" dependencies: "@metamask/detect-provider": ^1.2.0 "@metamask/onboarding": ^1.0.1 "@shapeshiftoss/common-api": ^9.3.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.12 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.13 "@shapeshiftoss/metamask-snaps-adapter": ^1.0.12 "@shapeshiftoss/metamask-snaps-types": ^1.0.12 eth-rpc-errors: ^4.0.3 lodash: ^4.17.21 mipd: ^0.0.7 - checksum: 0e6975c6866447e4364c6872405f4f94b8e0958df9cb270ef16eaec14f28da47273fa159937145b4efb92f3672786a6830f41b88d664c3548a383eae86113e38 + checksum: 9c1a2763cb69584a96a8e9be2b6ccd80242a5855be006e479effd9fa7e4f5a8c7146255cb368fc3b6420ba793686a7f2db380e3ad3f3abd1d6b3f677b47e7107 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-native-vault@npm:1.62.13-gridplus-validation.12": - version: 1.62.13-gridplus-validation.12 - resolution: "@shapeshiftoss/hdwallet-native-vault@npm:1.62.13-gridplus-validation.12" +"@shapeshiftoss/hdwallet-native-vault@npm:1.62.13-gridplus-validation.13": + version: 1.62.13-gridplus-validation.13 + resolution: "@shapeshiftoss/hdwallet-native-vault@npm:1.62.13-gridplus-validation.13" dependencies: "@bitcoinerlab/secp256k1": ^1.1.1 - "@shapeshiftoss/hdwallet-native": ^1.62.13-gridplus-validation.12 + "@shapeshiftoss/hdwallet-native": ^1.62.13-gridplus-validation.13 bip39: ^3.0.4 hash-wasm: ^4.11.0 idb-keyval: ^6.0.3 @@ -11060,18 +11060,18 @@ __metadata: p-lazy: ^3.1.0 type-assertions: ^1.1.0 uuid: ^8.3.2 - checksum: 4ecdab79eb66c2faf00cfa0a2c67db5b497589ddbbce7eda1e7cfdc479b6d463e5406701dc94d848f69882abbe4540911fca539cef5d1bea6b3f1b17c2fbb324 + checksum: f0ed1a9b3041d73c60cc0b145cb52c95ba269b1b0c8968503c662c9b3641e995f92cd9acbd54a97baba79742b32c1b0acab794166af7982c11fe81ef5a4409a5 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-native@npm:1.62.13-gridplus-validation.12, @shapeshiftoss/hdwallet-native@npm:^1.62.13-gridplus-validation.12": - version: 1.62.13-gridplus-validation.12 - resolution: "@shapeshiftoss/hdwallet-native@npm:1.62.13-gridplus-validation.12" +"@shapeshiftoss/hdwallet-native@npm:1.62.13-gridplus-validation.13, @shapeshiftoss/hdwallet-native@npm:^1.62.13-gridplus-validation.13": + version: 1.62.13-gridplus-validation.13 + resolution: "@shapeshiftoss/hdwallet-native@npm:1.62.13-gridplus-validation.13" dependencies: "@bitcoinerlab/secp256k1": ^1.1.1 "@noble/curves": ^1.4.0 "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.12 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.13 "@shapeshiftoss/proto-tx-builder": 0.10.0 "@zxing/text-encoding": ^0.9.0 bchaddrjs: ^0.4.9 @@ -11092,7 +11092,7 @@ __metadata: p-lazy: ^3.1.0 scrypt-js: ^3.0.1 tendermint-tx-builder: 1.0.16 - checksum: a989d67054dfc4f1af02f02231b15e68493f2bf3a106cd0074517449d2f35ec130a5d6d9caad0de7496a7566d1d01150de205d0d47550a81d34aefd039ba5624 + checksum: a86e75f756fbf4791ec27c96379566dc30e80cbfb5cfd97f1fe4d047345e831e4acc66287cde84466df22a20b910a83b12d0aeafd3740307307e61fbc4087c15 languageName: node linkType: hard @@ -11129,83 +11129,83 @@ __metadata: languageName: node linkType: hard -"@shapeshiftoss/hdwallet-phantom@npm:1.62.13-gridplus-validation.12": - version: 1.62.13-gridplus-validation.12 - resolution: "@shapeshiftoss/hdwallet-phantom@npm:1.62.13-gridplus-validation.12" +"@shapeshiftoss/hdwallet-phantom@npm:1.62.13-gridplus-validation.13": + version: 1.62.13-gridplus-validation.13 + resolution: "@shapeshiftoss/hdwallet-phantom@npm:1.62.13-gridplus-validation.13" dependencies: "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.12 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.13 "@solana/web3.js": 1.95.8 base64-js: ^1.5.1 bitcoinjs-message: ^2.0.0 ethers: 5.7.2 lodash: ^4.17.21 - checksum: f226118397038680fc4205620b94b2660c7c3a3ed02ca70de5fb85b8fe560836d7036981a9150b6f5caec0267c3400718773f09df5e983eea639022dae456181 + checksum: d72883716197e1c9ba04f3fb5f8eb139e3b9b6f810f11118b7b2f985cac697d2159ef0c651696b0d63f310e326c8b0adeda8e2921d1a6575b91bf138a3140080 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-trezor-connect@npm:1.62.13-gridplus-validation.12": - version: 1.62.13-gridplus-validation.12 - resolution: "@shapeshiftoss/hdwallet-trezor-connect@npm:1.62.13-gridplus-validation.12" +"@shapeshiftoss/hdwallet-trezor-connect@npm:1.62.13-gridplus-validation.13": + version: 1.62.13-gridplus-validation.13 + resolution: "@shapeshiftoss/hdwallet-trezor-connect@npm:1.62.13-gridplus-validation.13" dependencies: - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.12 - "@shapeshiftoss/hdwallet-trezor": ^1.62.13-gridplus-validation.12 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.13 + "@shapeshiftoss/hdwallet-trezor": ^1.62.13-gridplus-validation.13 "@trezor/connect-web": ^9.6.4 - checksum: 19ad66a294a5840a30d134a9e4d43a56992dd9def61a05aa1c0b2c531c9b4201d83a75bcb65311f5ff675a039a33af3ae5b4929c86fa8ded527ea6a8641bcd3a + checksum: e79b0f98346707edbb7cd7cad31f6673bd62c49c8d5169f76551b7520b4de9cf01fa375efa32d585a4c9206f4476e2c9675ecc76707fc20c4e2d3376b2b34d14 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-trezor@npm:1.62.13-gridplus-validation.12, @shapeshiftoss/hdwallet-trezor@npm:^1.62.13-gridplus-validation.12": - version: 1.62.13-gridplus-validation.12 - resolution: "@shapeshiftoss/hdwallet-trezor@npm:1.62.13-gridplus-validation.12" +"@shapeshiftoss/hdwallet-trezor@npm:1.62.13-gridplus-validation.13, @shapeshiftoss/hdwallet-trezor@npm:^1.62.13-gridplus-validation.13": + version: 1.62.13-gridplus-validation.13 + resolution: "@shapeshiftoss/hdwallet-trezor@npm:1.62.13-gridplus-validation.13" dependencies: "@ethereumjs/common": 3.2.0 "@ethereumjs/tx": 4.2.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.12 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.13 base64-js: ^1.5.1 lodash: ^4.17.21 - checksum: bcd357afb48dfe0d11de0952a112287e1625210f21f4a11845f3bd1c61155b33575bebcea3999532f600e2a373751f005c5594ea172557cacadb8ffe3d6e5f53 + checksum: 91fbd0feed0d23c33ff266ec590bfe4b1db749db2cbb25d8798206d8c870f445c9020617aa596bddb7cdeab6ca3062b86d69e934b80b844f68e7dc7e092555b8 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-vultisig@npm:1.62.13-gridplus-validation.12": - version: 1.62.13-gridplus-validation.12 - resolution: "@shapeshiftoss/hdwallet-vultisig@npm:1.62.13-gridplus-validation.12" +"@shapeshiftoss/hdwallet-vultisig@npm:1.62.13-gridplus-validation.13": + version: 1.62.13-gridplus-validation.13 + resolution: "@shapeshiftoss/hdwallet-vultisig@npm:1.62.13-gridplus-validation.13" dependencies: "@cosmjs/amino": ^0.28.13 "@cosmjs/stargate": ^0.28.13 "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.12 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.13 "@solana/web3.js": 1.95.8 base64-js: ^1.5.1 bitcoinjs-message: ^2.0.0 ethers: 5.7.2 lodash: ^4.17.21 - checksum: 5683b5e9b1728efa51a83f962c0653f5894fb6793c45a36b822c9f9bcab1280457ee73aed36cf70e536831472bb3bc86e2938830a2ff52ea3786d90e07eea213 + checksum: 3026cdd6bdf0b49bd58a95ce883bf3edf92a8ae92d656f576b2f05c09de564f667e22c8a2f706591d6a08ba203715256bbd91ea36f8f84e50538bfe1338ae5db languageName: node linkType: hard -"@shapeshiftoss/hdwallet-walletconnect@npm:1.62.13-gridplus-validation.12": - version: 1.62.13-gridplus-validation.12 - resolution: "@shapeshiftoss/hdwallet-walletconnect@npm:1.62.13-gridplus-validation.12" +"@shapeshiftoss/hdwallet-walletconnect@npm:1.62.13-gridplus-validation.13": + version: 1.62.13-gridplus-validation.13 + resolution: "@shapeshiftoss/hdwallet-walletconnect@npm:1.62.13-gridplus-validation.13" dependencies: - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.12 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.13 "@walletconnect/qrcode-modal": ^1.7.8 "@walletconnect/web3-provider": ^1.7.8 ethers: ^5.6.5 - checksum: e4d32391a70529e812c02df4ee247f0898308d812c31673fc08d881597d4b0ec338a1c65ab790fd6b3bf7acddba9c86590a8315eb743602569292832ee43a3a7 + checksum: 0d1358d3a1fb776830a0d73d2f83609f0b7aaf13b63fb7f8fc04dc6f5d11553b91f5a2384729c0c2c8b640a01c46f10e2226b69055f36923a1c6bb1f4d615187 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-walletconnectv2@npm:1.62.13-gridplus-validation.12": - version: 1.62.13-gridplus-validation.12 - resolution: "@shapeshiftoss/hdwallet-walletconnectv2@npm:1.62.13-gridplus-validation.12" +"@shapeshiftoss/hdwallet-walletconnectv2@npm:1.62.13-gridplus-validation.13": + version: 1.62.13-gridplus-validation.13 + resolution: "@shapeshiftoss/hdwallet-walletconnectv2@npm:1.62.13-gridplus-validation.13" dependencies: - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.12 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.13 "@walletconnect/ethereum-provider": ^2.20.2 "@walletconnect/modal": ^2.6.2 ethers: ^5.6.5 - checksum: 27106c9b17b7f3d471e113e078cd52462627609fe3f38004cd4d0c3cd55a80ccad6027d5096d67578856b824d3c91b8674118fc165ff1696aee0dd6a0db9e0e0 + checksum: 70b5de4e8b048f96a1b3d7befb847dba06ab27ff2040f0a828b229e43317604cfd89ef096f153fe0e2ba4ac653585c5acb46771fd15f82fee1dbf300ca0a39c6 languageName: node linkType: hard @@ -11425,24 +11425,24 @@ __metadata: "@shapeshiftoss/chain-adapters": "workspace:^" "@shapeshiftoss/contracts": "workspace:^" "@shapeshiftoss/errors": "workspace:^" - "@shapeshiftoss/hdwallet-coinbase": 1.62.13-gridplus-validation.12 - "@shapeshiftoss/hdwallet-core": 1.62.13-gridplus-validation.12 - "@shapeshiftoss/hdwallet-gridplus": 1.62.13-gridplus-validation.12 - "@shapeshiftoss/hdwallet-keepkey": 1.62.13-gridplus-validation.12 - "@shapeshiftoss/hdwallet-keepkey-webusb": 1.62.13-gridplus-validation.12 - "@shapeshiftoss/hdwallet-keplr": 1.62.13-gridplus-validation.12 - "@shapeshiftoss/hdwallet-ledger": 1.62.13-gridplus-validation.12 - "@shapeshiftoss/hdwallet-ledger-webhid": 1.62.13-gridplus-validation.12 - "@shapeshiftoss/hdwallet-ledger-webusb": 1.62.13-gridplus-validation.12 - "@shapeshiftoss/hdwallet-metamask-multichain": 1.62.13-gridplus-validation.12 - "@shapeshiftoss/hdwallet-native": 1.62.13-gridplus-validation.12 - "@shapeshiftoss/hdwallet-native-vault": 1.62.13-gridplus-validation.12 - "@shapeshiftoss/hdwallet-phantom": 1.62.13-gridplus-validation.12 - "@shapeshiftoss/hdwallet-trezor": 1.62.13-gridplus-validation.12 - "@shapeshiftoss/hdwallet-trezor-connect": 1.62.13-gridplus-validation.12 - "@shapeshiftoss/hdwallet-vultisig": 1.62.13-gridplus-validation.12 - "@shapeshiftoss/hdwallet-walletconnect": 1.62.13-gridplus-validation.12 - "@shapeshiftoss/hdwallet-walletconnectv2": 1.62.13-gridplus-validation.12 + "@shapeshiftoss/hdwallet-coinbase": 1.62.13-gridplus-validation.13 + "@shapeshiftoss/hdwallet-core": 1.62.13-gridplus-validation.13 + "@shapeshiftoss/hdwallet-gridplus": 1.62.13-gridplus-validation.13 + "@shapeshiftoss/hdwallet-keepkey": 1.62.13-gridplus-validation.13 + "@shapeshiftoss/hdwallet-keepkey-webusb": 1.62.13-gridplus-validation.13 + "@shapeshiftoss/hdwallet-keplr": 1.62.13-gridplus-validation.13 + "@shapeshiftoss/hdwallet-ledger": 1.62.13-gridplus-validation.13 + "@shapeshiftoss/hdwallet-ledger-webhid": 1.62.13-gridplus-validation.13 + "@shapeshiftoss/hdwallet-ledger-webusb": 1.62.13-gridplus-validation.13 + "@shapeshiftoss/hdwallet-metamask-multichain": 1.62.13-gridplus-validation.13 + "@shapeshiftoss/hdwallet-native": 1.62.13-gridplus-validation.13 + "@shapeshiftoss/hdwallet-native-vault": 1.62.13-gridplus-validation.13 + "@shapeshiftoss/hdwallet-phantom": 1.62.13-gridplus-validation.13 + "@shapeshiftoss/hdwallet-trezor": 1.62.13-gridplus-validation.13 + "@shapeshiftoss/hdwallet-trezor-connect": 1.62.13-gridplus-validation.13 + "@shapeshiftoss/hdwallet-vultisig": 1.62.13-gridplus-validation.13 + "@shapeshiftoss/hdwallet-walletconnect": 1.62.13-gridplus-validation.13 + "@shapeshiftoss/hdwallet-walletconnectv2": 1.62.13-gridplus-validation.13 "@shapeshiftoss/swapper": "workspace:^" "@shapeshiftoss/types": "workspace:^" "@shapeshiftoss/unchained-client": "workspace:^" From 5c107c097a68dbc002f9e0ad88fb312611c12aef Mon Sep 17 00:00:00 2001 From: gomes <17035424+gomesalexandre@users.noreply.github.com> Date: Wed, 26 Nov 2025 18:45:04 +0100 Subject: [PATCH 09/26] fix: remove duplicate connectDevice() call in pairConnectedDevice MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Device Locked error was caused by calling adapter.connectDevice() twice during initial pairing flow: 1. Connect screen calls connectDevice() - device enters pairing mode 2. Pair screen was calling connectDevice() AGAIN - device already in pairing mode causes "Device Locked" error Fixed by removing the second connectDevice() call from pairConnectedDevice(). The connection is already established from the first call, we only need to call pairDevice() with the pairing code. This matches the master/develop behavior before our changes. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .../WalletProvider/GridPlus/components/GridPlusPair.tsx | 1 - .../WalletProvider/GridPlus/components/GridPlusSetup.tsx | 1 - src/context/WalletProvider/GridPlus/utils.ts | 4 ---- 3 files changed, 6 deletions(-) diff --git a/src/context/WalletProvider/GridPlus/components/GridPlusPair.tsx b/src/context/WalletProvider/GridPlus/components/GridPlusPair.tsx index 86718fe9a48..bf5e9ee2d17 100644 --- a/src/context/WalletProvider/GridPlus/components/GridPlusPair.tsx +++ b/src/context/WalletProvider/GridPlus/components/GridPlusPair.tsx @@ -53,7 +53,6 @@ export const GridPlusPair = () => { const { wallet, activeWalletId, type } = await pairConnectedDevice({ adapter, - deviceId, pairingCode, }) diff --git a/src/context/WalletProvider/GridPlus/components/GridPlusSetup.tsx b/src/context/WalletProvider/GridPlus/components/GridPlusSetup.tsx index 14f685ba23d..f0d125e83c1 100644 --- a/src/context/WalletProvider/GridPlus/components/GridPlusSetup.tsx +++ b/src/context/WalletProvider/GridPlus/components/GridPlusSetup.tsx @@ -83,7 +83,6 @@ export const GridPlusSetup = () => { } const result = await pairConnectedDevice({ adapter, - deviceId, pairingCode, }) finalWallet = result.wallet diff --git a/src/context/WalletProvider/GridPlus/utils.ts b/src/context/WalletProvider/GridPlus/utils.ts index abdefcc3ba2..30d7b70f34e 100644 --- a/src/context/WalletProvider/GridPlus/utils.ts +++ b/src/context/WalletProvider/GridPlus/utils.ts @@ -35,21 +35,17 @@ export const connectAndPairDevice = async ({ type PairConnectedDeviceParams = { adapter: GridPlusAdapter - deviceId: string pairingCode: string } export const pairConnectedDevice = async ({ adapter, - deviceId, pairingCode, }: PairConnectedDeviceParams): Promise<{ wallet: GridPlusHDWallet activeWalletId: string type: 'external' | 'internal' }> => { - await adapter.connectDevice(deviceId) - const { wallet, activeWalletId, type } = await adapter.pairDevice(pairingCode) return { wallet, activeWalletId, type } From c454ac6d08aace3f523aef6b8e63d5c4b4122290 Mon Sep 17 00:00:00 2001 From: gomes <17035424+gomesalexandre@users.noreply.github.com> Date: Wed, 26 Nov 2025 18:46:50 +0100 Subject: [PATCH 10/26] chore: update hdwallet packages to .14 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Updated to 1.62.13-gridplus-validation.14 with resetActiveWallets() restored in adapter. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- package.json | 36 ++++----- yarn.lock | 222 +++++++++++++++++++++++++-------------------------- 2 files changed, 129 insertions(+), 129 deletions(-) diff --git a/package.json b/package.json index 62ff8b3728f..5bdfc86af6a 100644 --- a/package.json +++ b/package.json @@ -100,24 +100,24 @@ "@shapeshiftoss/chain-adapters": "workspace:^", "@shapeshiftoss/contracts": "workspace:^", "@shapeshiftoss/errors": "workspace:^", - "@shapeshiftoss/hdwallet-coinbase": "1.62.13-gridplus-validation.13", - "@shapeshiftoss/hdwallet-core": "1.62.13-gridplus-validation.13", - "@shapeshiftoss/hdwallet-gridplus": "1.62.13-gridplus-validation.13", - "@shapeshiftoss/hdwallet-keepkey": "1.62.13-gridplus-validation.13", - "@shapeshiftoss/hdwallet-keepkey-webusb": "1.62.13-gridplus-validation.13", - "@shapeshiftoss/hdwallet-keplr": "1.62.13-gridplus-validation.13", - "@shapeshiftoss/hdwallet-ledger": "1.62.13-gridplus-validation.13", - "@shapeshiftoss/hdwallet-ledger-webhid": "1.62.13-gridplus-validation.13", - "@shapeshiftoss/hdwallet-ledger-webusb": "1.62.13-gridplus-validation.13", - "@shapeshiftoss/hdwallet-metamask-multichain": "1.62.13-gridplus-validation.13", - "@shapeshiftoss/hdwallet-native": "1.62.13-gridplus-validation.13", - "@shapeshiftoss/hdwallet-native-vault": "1.62.13-gridplus-validation.13", - "@shapeshiftoss/hdwallet-phantom": "1.62.13-gridplus-validation.13", - "@shapeshiftoss/hdwallet-trezor": "1.62.13-gridplus-validation.13", - "@shapeshiftoss/hdwallet-trezor-connect": "1.62.13-gridplus-validation.13", - "@shapeshiftoss/hdwallet-vultisig": "1.62.13-gridplus-validation.13", - "@shapeshiftoss/hdwallet-walletconnect": "1.62.13-gridplus-validation.13", - "@shapeshiftoss/hdwallet-walletconnectv2": "1.62.13-gridplus-validation.13", + "@shapeshiftoss/hdwallet-coinbase": "1.62.13-gridplus-validation.14", + "@shapeshiftoss/hdwallet-core": "1.62.13-gridplus-validation.14", + "@shapeshiftoss/hdwallet-gridplus": "1.62.13-gridplus-validation.14", + "@shapeshiftoss/hdwallet-keepkey": "1.62.13-gridplus-validation.14", + "@shapeshiftoss/hdwallet-keepkey-webusb": "1.62.13-gridplus-validation.14", + "@shapeshiftoss/hdwallet-keplr": "1.62.13-gridplus-validation.14", + "@shapeshiftoss/hdwallet-ledger": "1.62.13-gridplus-validation.14", + "@shapeshiftoss/hdwallet-ledger-webhid": "1.62.13-gridplus-validation.14", + "@shapeshiftoss/hdwallet-ledger-webusb": "1.62.13-gridplus-validation.14", + "@shapeshiftoss/hdwallet-metamask-multichain": "1.62.13-gridplus-validation.14", + "@shapeshiftoss/hdwallet-native": "1.62.13-gridplus-validation.14", + "@shapeshiftoss/hdwallet-native-vault": "1.62.13-gridplus-validation.14", + "@shapeshiftoss/hdwallet-phantom": "1.62.13-gridplus-validation.14", + "@shapeshiftoss/hdwallet-trezor": "1.62.13-gridplus-validation.14", + "@shapeshiftoss/hdwallet-trezor-connect": "1.62.13-gridplus-validation.14", + "@shapeshiftoss/hdwallet-vultisig": "1.62.13-gridplus-validation.14", + "@shapeshiftoss/hdwallet-walletconnect": "1.62.13-gridplus-validation.14", + "@shapeshiftoss/hdwallet-walletconnectv2": "1.62.13-gridplus-validation.14", "@shapeshiftoss/swapper": "workspace:^", "@shapeshiftoss/types": "workspace:^", "@shapeshiftoss/unchained-client": "workspace:^", diff --git a/yarn.lock b/yarn.lock index a0d22c70732..59474036d83 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10827,15 +10827,15 @@ __metadata: languageName: node linkType: hard -"@shapeshiftoss/hdwallet-coinbase@npm:1.62.13-gridplus-validation.13": - version: 1.62.13-gridplus-validation.13 - resolution: "@shapeshiftoss/hdwallet-coinbase@npm:1.62.13-gridplus-validation.13" +"@shapeshiftoss/hdwallet-coinbase@npm:1.62.13-gridplus-validation.14": + version: 1.62.13-gridplus-validation.14 + resolution: "@shapeshiftoss/hdwallet-coinbase@npm:1.62.13-gridplus-validation.14" dependencies: "@coinbase/wallet-sdk": ^3.6.6 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.13 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.14 eth-rpc-errors: ^4.0.3 lodash: ^4.17.21 - checksum: 08c37938958e9255d5f41c8d7b45eb402a1dc760e710715795fe47e0114fefb246c86ee1827833a43a269da1770c8dbd246e7ce2253a43f3919ef39c492e772b + checksum: 4b64a079bfbc452c863b0a6184d48aeadb9afcde34b74741eee44ef36996a9d750a6f15af48e7fa3369d91165eae5ffcba8d363d4195756bbac7c03eab5d9c72 languageName: node linkType: hard @@ -10868,9 +10868,9 @@ __metadata: languageName: node linkType: hard -"@shapeshiftoss/hdwallet-core@npm:1.62.13-gridplus-validation.13, @shapeshiftoss/hdwallet-core@npm:^1.62.13-gridplus-validation.13": - version: 1.62.13-gridplus-validation.13 - resolution: "@shapeshiftoss/hdwallet-core@npm:1.62.13-gridplus-validation.13" +"@shapeshiftoss/hdwallet-core@npm:1.62.13-gridplus-validation.14, @shapeshiftoss/hdwallet-core@npm:^1.62.13-gridplus-validation.14": + version: 1.62.13-gridplus-validation.14 + resolution: "@shapeshiftoss/hdwallet-core@npm:1.62.13-gridplus-validation.14" dependencies: "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 "@shapeshiftoss/proto-tx-builder": 0.10.0 @@ -10881,7 +10881,7 @@ __metadata: lodash: ^4.17.21 rxjs: ^6.4.0 type-assertions: ^1.1.0 - checksum: 18f52475b0ea8d44d9cb35a987b7703229c9da55b7121eab701150d85e0a07f609296349aaddfb08a49ae14921068b01823893b292bbd54942ed172935370fef + checksum: b1e3b4c86f1ce8ce7cbe269ec17649c2f362491a20aeddb6001030c0c22271ff18801d996350759a7b4761992d33ca6f547fb2e3037834cb622ee3843bdfeac0 languageName: node linkType: hard @@ -10899,38 +10899,38 @@ __metadata: languageName: node linkType: hard -"@shapeshiftoss/hdwallet-gridplus@npm:1.62.13-gridplus-validation.13": - version: 1.62.13-gridplus-validation.13 - resolution: "@shapeshiftoss/hdwallet-gridplus@npm:1.62.13-gridplus-validation.13" +"@shapeshiftoss/hdwallet-gridplus@npm:1.62.13-gridplus-validation.14": + version: 1.62.13-gridplus-validation.14 + resolution: "@shapeshiftoss/hdwallet-gridplus@npm:1.62.13-gridplus-validation.14" dependencies: "@bitcoinerlab/secp256k1": ^1.1.1 "@ethereumjs/common": 4.4.0 "@ethereumjs/rlp": 5.0.2 "@ethereumjs/tx": 5.4.0 "@metamask/eth-sig-util": ^7.0.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.13 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.14 bech32: ^1.1.4 bs58: ^5.0.0 crypto-js: ^4.2.0 gridplus-sdk: ^3.2.0 lodash: ^4.17.21 - checksum: d97e8e831161342ccbf602188459213c503912fbf02bc0aaa66f95b979c31272dc8e242ece584e1917f7a72a28556777d536582d534c71fc907972cd8cb1a6c1 + checksum: 635d00eae7d5067cdaeb171d65a1e3957ec731aeff56417200bd3e4c392277ae0cc47998478de93e36f7f4711279abbba24a90e02bb5452f79fa7d6750ccd1b6 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-keepkey-webusb@npm:1.62.13-gridplus-validation.13": - version: 1.62.13-gridplus-validation.13 - resolution: "@shapeshiftoss/hdwallet-keepkey-webusb@npm:1.62.13-gridplus-validation.13" +"@shapeshiftoss/hdwallet-keepkey-webusb@npm:1.62.13-gridplus-validation.14": + version: 1.62.13-gridplus-validation.14 + resolution: "@shapeshiftoss/hdwallet-keepkey-webusb@npm:1.62.13-gridplus-validation.14" dependencies: - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.13 - "@shapeshiftoss/hdwallet-keepkey": ^1.62.13-gridplus-validation.13 - checksum: e191bd9aac9f212f6bec2d3d34d25d95dc158c5c57e5411676cc7d6007e4def585af97cc777432bbdaf8b8bf42466d7faa573c41dd4f3a7a1e8efec34c661be1 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.14 + "@shapeshiftoss/hdwallet-keepkey": ^1.62.13-gridplus-validation.14 + checksum: f74afcfc6f8a021d0bd4ab34444427396fe90f04cf5e1669d19e7641ea2c7d978cab0aefdd05de08cfeea011247301bffbfa7888af04284827ab6762a4fab6e4 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-keepkey@npm:1.62.13-gridplus-validation.13, @shapeshiftoss/hdwallet-keepkey@npm:^1.62.13-gridplus-validation.13": - version: 1.62.13-gridplus-validation.13 - resolution: "@shapeshiftoss/hdwallet-keepkey@npm:1.62.13-gridplus-validation.13" +"@shapeshiftoss/hdwallet-keepkey@npm:1.62.13-gridplus-validation.14, @shapeshiftoss/hdwallet-keepkey@npm:^1.62.13-gridplus-validation.14": + version: 1.62.13-gridplus-validation.14 + resolution: "@shapeshiftoss/hdwallet-keepkey@npm:1.62.13-gridplus-validation.14" dependencies: "@bitcoinerlab/secp256k1": ^1.1.1 "@ethereumjs/common": 3.2.0 @@ -10938,7 +10938,7 @@ __metadata: "@keepkey/device-protocol": 7.13.4 "@metamask/eth-sig-util": ^7.0.0 "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.13 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.14 "@shapeshiftoss/proto-tx-builder": 0.10.0 bignumber.js: ^9.0.1 bnb-javascript-sdk-nobroadcast: 2.16.15 @@ -10949,44 +10949,44 @@ __metadata: lodash: ^4.17.21 p-lazy: ^3.1.0 semver: ^7.3.8 - checksum: b382536aef8d35a8461ba506da406b2b275b8de390285cb71f13661f259d438c4f4e8bc63f9bf2339df15a3992738fb4edf9cc74b142ad13a4430ce3743944f2 + checksum: 500bc1a98372e03429fe1b27bc8ed71ecef90072f1c40e1e41c38861a7197b17774314d7f68fddec98780f03e288bdf17b13f414db1475b67edb8414e07d37f7 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-keplr@npm:1.62.13-gridplus-validation.13": - version: 1.62.13-gridplus-validation.13 - resolution: "@shapeshiftoss/hdwallet-keplr@npm:1.62.13-gridplus-validation.13" +"@shapeshiftoss/hdwallet-keplr@npm:1.62.13-gridplus-validation.14": + version: 1.62.13-gridplus-validation.14 + resolution: "@shapeshiftoss/hdwallet-keplr@npm:1.62.13-gridplus-validation.14" dependencies: "@cosmjs/amino": ^0.28.13 "@cosmjs/stargate": ^0.28.13 "@shapeshiftoss/caip": 8.15.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.13 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.14 "@shapeshiftoss/proto-tx-builder": 0.10.0 "@shapeshiftoss/types": 3.1.3 base64-js: ^1.5.1 lodash: ^4.17.21 - checksum: a5cf435f5b2099bf2574643d75780e54851439faef3e21c2de3d0a45e6cfcdf29a3c5fd316515346760215c07090ee9a9b6b289e21233d1b559e2df6b1980ff6 + checksum: bff885ef5e7cae5a476e5f988656d292985c5475cf7cce61276856b65c650ed00532ca148a872b0887fc3676fee830e6a515339e82f50b483cda4459396a37c8 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-ledger-webhid@npm:1.62.13-gridplus-validation.13": - version: 1.62.13-gridplus-validation.13 - resolution: "@shapeshiftoss/hdwallet-ledger-webhid@npm:1.62.13-gridplus-validation.13" +"@shapeshiftoss/hdwallet-ledger-webhid@npm:1.62.13-gridplus-validation.14": + version: 1.62.13-gridplus-validation.14 + resolution: "@shapeshiftoss/hdwallet-ledger-webhid@npm:1.62.13-gridplus-validation.14" dependencies: "@ledgerhq/hw-app-btc": ^10.10.0 "@ledgerhq/hw-app-eth": ^6.45.13 "@ledgerhq/hw-transport": 6.31.8 "@ledgerhq/hw-transport-webhid": ^6.30.4 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.13 - "@shapeshiftoss/hdwallet-ledger": ^1.62.13-gridplus-validation.13 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.14 + "@shapeshiftoss/hdwallet-ledger": ^1.62.13-gridplus-validation.14 "@types/w3c-web-hid": ^1.0.2 - checksum: aaa65c9fa468e40b1c0986db6893ab4b52f1fb755410fd77e266666734fb5bb42da585afc73b834484c18000259be6ac8ca8e821f4ae60f125a4d6f4b843f8e7 + checksum: 367cc36ca1c94c4c9ff425d4648315aa5d8a4fb003044dd21c0420689684c590f5e175b842c5a30e53c8fe9df9b67ce941798fdcff56db9db0ad613a95061236 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-ledger-webusb@npm:1.62.13-gridplus-validation.13": - version: 1.62.13-gridplus-validation.13 - resolution: "@shapeshiftoss/hdwallet-ledger-webusb@npm:1.62.13-gridplus-validation.13" +"@shapeshiftoss/hdwallet-ledger-webusb@npm:1.62.13-gridplus-validation.14": + version: 1.62.13-gridplus-validation.14 + resolution: "@shapeshiftoss/hdwallet-ledger-webusb@npm:1.62.13-gridplus-validation.14" dependencies: "@ledgerhq/hw-app-btc": ^10.10.0 "@ledgerhq/hw-app-cosmos": ^6.32.4 @@ -10994,17 +10994,17 @@ __metadata: "@ledgerhq/hw-app-solana": ^7.5.1 "@ledgerhq/hw-transport": 6.31.8 "@ledgerhq/hw-transport-webusb": 6.29.8 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.13 - "@shapeshiftoss/hdwallet-ledger": ^1.62.13-gridplus-validation.13 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.14 + "@shapeshiftoss/hdwallet-ledger": ^1.62.13-gridplus-validation.14 "@types/w3c-web-usb": ^1.0.4 p-queue: ^7.4.1 - checksum: 78f0bd4c04b2d3a627b03c67cbfc7025cbe5fd776272e4d80feaf77789ba4a4b81bdaf778969543fba671d9e26cc9c417aecac3430bc4983844babbb5f96cd3d + checksum: ad89cc26eca03629e6844695fdb8a852d19cdb9e8e2b315a8f9b33ac1ab753a77e1c124aa2fece8b1e6c2107cd7972106d673337a30fc0f5f513839317f54537 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-ledger@npm:1.62.13-gridplus-validation.13, @shapeshiftoss/hdwallet-ledger@npm:^1.62.13-gridplus-validation.13": - version: 1.62.13-gridplus-validation.13 - resolution: "@shapeshiftoss/hdwallet-ledger@npm:1.62.13-gridplus-validation.13" +"@shapeshiftoss/hdwallet-ledger@npm:1.62.13-gridplus-validation.14, @shapeshiftoss/hdwallet-ledger@npm:^1.62.13-gridplus-validation.14": + version: 1.62.13-gridplus-validation.14 + resolution: "@shapeshiftoss/hdwallet-ledger@npm:1.62.13-gridplus-validation.14" dependencies: "@ethereumjs/common": 3.2.0 "@ethereumjs/tx": 4.2.0 @@ -11016,7 +11016,7 @@ __metadata: "@ledgerhq/hw-transport": 6.31.8 "@ledgerhq/logs": 6.13.0 "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.13 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.14 "@solana/web3.js": 1.95.8 base64-js: ^1.5.1 bchaddrjs: ^0.4.4 @@ -11026,33 +11026,33 @@ __metadata: ethereumjs-util: ^6.1.0 ethers: 5.7.2 lodash: ^4.17.21 - checksum: 05c4a9aadb56178715cb69860af2834d230ec8d7171c5fa11a2f75f07876ece214d94980aedc3f98831cfa6d0075d0a607970f648b00499560671176d707d0d2 + checksum: 1af3b1e2d972fea63c2da755d5288ced67d0b2671de3576f654890bbc738af682398da0b7c82232a1f3c4f87299067b25631795668a1929c5db4cc663c85ed7a languageName: node linkType: hard -"@shapeshiftoss/hdwallet-metamask-multichain@npm:1.62.13-gridplus-validation.13": - version: 1.62.13-gridplus-validation.13 - resolution: "@shapeshiftoss/hdwallet-metamask-multichain@npm:1.62.13-gridplus-validation.13" +"@shapeshiftoss/hdwallet-metamask-multichain@npm:1.62.13-gridplus-validation.14": + version: 1.62.13-gridplus-validation.14 + resolution: "@shapeshiftoss/hdwallet-metamask-multichain@npm:1.62.13-gridplus-validation.14" dependencies: "@metamask/detect-provider": ^1.2.0 "@metamask/onboarding": ^1.0.1 "@shapeshiftoss/common-api": ^9.3.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.13 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.14 "@shapeshiftoss/metamask-snaps-adapter": ^1.0.12 "@shapeshiftoss/metamask-snaps-types": ^1.0.12 eth-rpc-errors: ^4.0.3 lodash: ^4.17.21 mipd: ^0.0.7 - checksum: 9c1a2763cb69584a96a8e9be2b6ccd80242a5855be006e479effd9fa7e4f5a8c7146255cb368fc3b6420ba793686a7f2db380e3ad3f3abd1d6b3f677b47e7107 + checksum: cf2735b9db740c286fef3869f6522d8849d35dd26f4e3cd5e020f7ea6c8cde137c909c66272a5f1c41c3113ca4ceb7580c74591a16028d8844289956362a3daa languageName: node linkType: hard -"@shapeshiftoss/hdwallet-native-vault@npm:1.62.13-gridplus-validation.13": - version: 1.62.13-gridplus-validation.13 - resolution: "@shapeshiftoss/hdwallet-native-vault@npm:1.62.13-gridplus-validation.13" +"@shapeshiftoss/hdwallet-native-vault@npm:1.62.13-gridplus-validation.14": + version: 1.62.13-gridplus-validation.14 + resolution: "@shapeshiftoss/hdwallet-native-vault@npm:1.62.13-gridplus-validation.14" dependencies: "@bitcoinerlab/secp256k1": ^1.1.1 - "@shapeshiftoss/hdwallet-native": ^1.62.13-gridplus-validation.13 + "@shapeshiftoss/hdwallet-native": ^1.62.13-gridplus-validation.14 bip39: ^3.0.4 hash-wasm: ^4.11.0 idb-keyval: ^6.0.3 @@ -11060,18 +11060,18 @@ __metadata: p-lazy: ^3.1.0 type-assertions: ^1.1.0 uuid: ^8.3.2 - checksum: f0ed1a9b3041d73c60cc0b145cb52c95ba269b1b0c8968503c662c9b3641e995f92cd9acbd54a97baba79742b32c1b0acab794166af7982c11fe81ef5a4409a5 + checksum: c04f52ef386205ef4bd5987a9bea3b41f60c6b3d222f2f8da4e8b5bc23330ece2ec1c49484815c86a92635a0a92425daca62b7bcf8716c191a2a8b06f767ffd3 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-native@npm:1.62.13-gridplus-validation.13, @shapeshiftoss/hdwallet-native@npm:^1.62.13-gridplus-validation.13": - version: 1.62.13-gridplus-validation.13 - resolution: "@shapeshiftoss/hdwallet-native@npm:1.62.13-gridplus-validation.13" +"@shapeshiftoss/hdwallet-native@npm:1.62.13-gridplus-validation.14, @shapeshiftoss/hdwallet-native@npm:^1.62.13-gridplus-validation.14": + version: 1.62.13-gridplus-validation.14 + resolution: "@shapeshiftoss/hdwallet-native@npm:1.62.13-gridplus-validation.14" dependencies: "@bitcoinerlab/secp256k1": ^1.1.1 "@noble/curves": ^1.4.0 "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.13 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.14 "@shapeshiftoss/proto-tx-builder": 0.10.0 "@zxing/text-encoding": ^0.9.0 bchaddrjs: ^0.4.9 @@ -11092,7 +11092,7 @@ __metadata: p-lazy: ^3.1.0 scrypt-js: ^3.0.1 tendermint-tx-builder: 1.0.16 - checksum: a86e75f756fbf4791ec27c96379566dc30e80cbfb5cfd97f1fe4d047345e831e4acc66287cde84466df22a20b910a83b12d0aeafd3740307307e61fbc4087c15 + checksum: 0202957a33450ff1f2f7e9fe1719b2b228a4384177f35fdd99d0f4ae898523aee580845cd0c63341e1aa0b6459ebef11f268341dfc26e4af3416640c6a8c437a languageName: node linkType: hard @@ -11129,83 +11129,83 @@ __metadata: languageName: node linkType: hard -"@shapeshiftoss/hdwallet-phantom@npm:1.62.13-gridplus-validation.13": - version: 1.62.13-gridplus-validation.13 - resolution: "@shapeshiftoss/hdwallet-phantom@npm:1.62.13-gridplus-validation.13" +"@shapeshiftoss/hdwallet-phantom@npm:1.62.13-gridplus-validation.14": + version: 1.62.13-gridplus-validation.14 + resolution: "@shapeshiftoss/hdwallet-phantom@npm:1.62.13-gridplus-validation.14" dependencies: "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.13 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.14 "@solana/web3.js": 1.95.8 base64-js: ^1.5.1 bitcoinjs-message: ^2.0.0 ethers: 5.7.2 lodash: ^4.17.21 - checksum: d72883716197e1c9ba04f3fb5f8eb139e3b9b6f810f11118b7b2f985cac697d2159ef0c651696b0d63f310e326c8b0adeda8e2921d1a6575b91bf138a3140080 + checksum: add0b17e12aa6ff00e51705efe56b4da223919f21e7943fa7b24964c1dcd2740d5e01e294a1bb010debba3dc491cd5f6136bfb327a72a05813d099069c49eecc languageName: node linkType: hard -"@shapeshiftoss/hdwallet-trezor-connect@npm:1.62.13-gridplus-validation.13": - version: 1.62.13-gridplus-validation.13 - resolution: "@shapeshiftoss/hdwallet-trezor-connect@npm:1.62.13-gridplus-validation.13" +"@shapeshiftoss/hdwallet-trezor-connect@npm:1.62.13-gridplus-validation.14": + version: 1.62.13-gridplus-validation.14 + resolution: "@shapeshiftoss/hdwallet-trezor-connect@npm:1.62.13-gridplus-validation.14" dependencies: - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.13 - "@shapeshiftoss/hdwallet-trezor": ^1.62.13-gridplus-validation.13 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.14 + "@shapeshiftoss/hdwallet-trezor": ^1.62.13-gridplus-validation.14 "@trezor/connect-web": ^9.6.4 - checksum: e79b0f98346707edbb7cd7cad31f6673bd62c49c8d5169f76551b7520b4de9cf01fa375efa32d585a4c9206f4476e2c9675ecc76707fc20c4e2d3376b2b34d14 + checksum: 7fc0dd25c4f2a5427127ca7e1c115815280b72122c8f49502c20e97093898df61143764c66d46f0fb3c546296778174cc91343225f6b26f83dec222b2c3e9b38 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-trezor@npm:1.62.13-gridplus-validation.13, @shapeshiftoss/hdwallet-trezor@npm:^1.62.13-gridplus-validation.13": - version: 1.62.13-gridplus-validation.13 - resolution: "@shapeshiftoss/hdwallet-trezor@npm:1.62.13-gridplus-validation.13" +"@shapeshiftoss/hdwallet-trezor@npm:1.62.13-gridplus-validation.14, @shapeshiftoss/hdwallet-trezor@npm:^1.62.13-gridplus-validation.14": + version: 1.62.13-gridplus-validation.14 + resolution: "@shapeshiftoss/hdwallet-trezor@npm:1.62.13-gridplus-validation.14" dependencies: "@ethereumjs/common": 3.2.0 "@ethereumjs/tx": 4.2.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.13 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.14 base64-js: ^1.5.1 lodash: ^4.17.21 - checksum: 91fbd0feed0d23c33ff266ec590bfe4b1db749db2cbb25d8798206d8c870f445c9020617aa596bddb7cdeab6ca3062b86d69e934b80b844f68e7dc7e092555b8 + checksum: f0c5658899c7ac8b29091514dad2aa0ee0f6a0c81e499c83426a27a760c3140d9d9703353e3efb462cc16a48b675b9030cddbaf56cb4494737dc0a9b8d401eeb languageName: node linkType: hard -"@shapeshiftoss/hdwallet-vultisig@npm:1.62.13-gridplus-validation.13": - version: 1.62.13-gridplus-validation.13 - resolution: "@shapeshiftoss/hdwallet-vultisig@npm:1.62.13-gridplus-validation.13" +"@shapeshiftoss/hdwallet-vultisig@npm:1.62.13-gridplus-validation.14": + version: 1.62.13-gridplus-validation.14 + resolution: "@shapeshiftoss/hdwallet-vultisig@npm:1.62.13-gridplus-validation.14" dependencies: "@cosmjs/amino": ^0.28.13 "@cosmjs/stargate": ^0.28.13 "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.13 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.14 "@solana/web3.js": 1.95.8 base64-js: ^1.5.1 bitcoinjs-message: ^2.0.0 ethers: 5.7.2 lodash: ^4.17.21 - checksum: 3026cdd6bdf0b49bd58a95ce883bf3edf92a8ae92d656f576b2f05c09de564f667e22c8a2f706591d6a08ba203715256bbd91ea36f8f84e50538bfe1338ae5db + checksum: 1d2bf78544cc629e1b0d344532700f479838bd6c040aa0f9cf8b0ef00a9f7ed73a72e34cadfa6b41d18bc93c60968e5dabe666318aebfc8f47ef6ff988eed06f languageName: node linkType: hard -"@shapeshiftoss/hdwallet-walletconnect@npm:1.62.13-gridplus-validation.13": - version: 1.62.13-gridplus-validation.13 - resolution: "@shapeshiftoss/hdwallet-walletconnect@npm:1.62.13-gridplus-validation.13" +"@shapeshiftoss/hdwallet-walletconnect@npm:1.62.13-gridplus-validation.14": + version: 1.62.13-gridplus-validation.14 + resolution: "@shapeshiftoss/hdwallet-walletconnect@npm:1.62.13-gridplus-validation.14" dependencies: - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.13 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.14 "@walletconnect/qrcode-modal": ^1.7.8 "@walletconnect/web3-provider": ^1.7.8 ethers: ^5.6.5 - checksum: 0d1358d3a1fb776830a0d73d2f83609f0b7aaf13b63fb7f8fc04dc6f5d11553b91f5a2384729c0c2c8b640a01c46f10e2226b69055f36923a1c6bb1f4d615187 + checksum: c5aaf1b6d64631536b00fb8089d6c1e6de5835024a4581be9b8ac85b9a75aa27137f944d9a8b02756c3043288aba36037cabb2d65ddb38e3e9e04981ae405d98 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-walletconnectv2@npm:1.62.13-gridplus-validation.13": - version: 1.62.13-gridplus-validation.13 - resolution: "@shapeshiftoss/hdwallet-walletconnectv2@npm:1.62.13-gridplus-validation.13" +"@shapeshiftoss/hdwallet-walletconnectv2@npm:1.62.13-gridplus-validation.14": + version: 1.62.13-gridplus-validation.14 + resolution: "@shapeshiftoss/hdwallet-walletconnectv2@npm:1.62.13-gridplus-validation.14" dependencies: - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.13 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.14 "@walletconnect/ethereum-provider": ^2.20.2 "@walletconnect/modal": ^2.6.2 ethers: ^5.6.5 - checksum: 70b5de4e8b048f96a1b3d7befb847dba06ab27ff2040f0a828b229e43317604cfd89ef096f153fe0e2ba4ac653585c5acb46771fd15f82fee1dbf300ca0a39c6 + checksum: a172aee417a5b02066cf191890eb3f68c5f0d32b5bbdb7b9f9de30cd613ad3779a449ab6961ffd9a4ab11593694a86059d247321ea6d4a0049b0de4397830dee languageName: node linkType: hard @@ -11425,24 +11425,24 @@ __metadata: "@shapeshiftoss/chain-adapters": "workspace:^" "@shapeshiftoss/contracts": "workspace:^" "@shapeshiftoss/errors": "workspace:^" - "@shapeshiftoss/hdwallet-coinbase": 1.62.13-gridplus-validation.13 - "@shapeshiftoss/hdwallet-core": 1.62.13-gridplus-validation.13 - "@shapeshiftoss/hdwallet-gridplus": 1.62.13-gridplus-validation.13 - "@shapeshiftoss/hdwallet-keepkey": 1.62.13-gridplus-validation.13 - "@shapeshiftoss/hdwallet-keepkey-webusb": 1.62.13-gridplus-validation.13 - "@shapeshiftoss/hdwallet-keplr": 1.62.13-gridplus-validation.13 - "@shapeshiftoss/hdwallet-ledger": 1.62.13-gridplus-validation.13 - "@shapeshiftoss/hdwallet-ledger-webhid": 1.62.13-gridplus-validation.13 - "@shapeshiftoss/hdwallet-ledger-webusb": 1.62.13-gridplus-validation.13 - "@shapeshiftoss/hdwallet-metamask-multichain": 1.62.13-gridplus-validation.13 - "@shapeshiftoss/hdwallet-native": 1.62.13-gridplus-validation.13 - "@shapeshiftoss/hdwallet-native-vault": 1.62.13-gridplus-validation.13 - "@shapeshiftoss/hdwallet-phantom": 1.62.13-gridplus-validation.13 - "@shapeshiftoss/hdwallet-trezor": 1.62.13-gridplus-validation.13 - "@shapeshiftoss/hdwallet-trezor-connect": 1.62.13-gridplus-validation.13 - "@shapeshiftoss/hdwallet-vultisig": 1.62.13-gridplus-validation.13 - "@shapeshiftoss/hdwallet-walletconnect": 1.62.13-gridplus-validation.13 - "@shapeshiftoss/hdwallet-walletconnectv2": 1.62.13-gridplus-validation.13 + "@shapeshiftoss/hdwallet-coinbase": 1.62.13-gridplus-validation.14 + "@shapeshiftoss/hdwallet-core": 1.62.13-gridplus-validation.14 + "@shapeshiftoss/hdwallet-gridplus": 1.62.13-gridplus-validation.14 + "@shapeshiftoss/hdwallet-keepkey": 1.62.13-gridplus-validation.14 + "@shapeshiftoss/hdwallet-keepkey-webusb": 1.62.13-gridplus-validation.14 + "@shapeshiftoss/hdwallet-keplr": 1.62.13-gridplus-validation.14 + "@shapeshiftoss/hdwallet-ledger": 1.62.13-gridplus-validation.14 + "@shapeshiftoss/hdwallet-ledger-webhid": 1.62.13-gridplus-validation.14 + "@shapeshiftoss/hdwallet-ledger-webusb": 1.62.13-gridplus-validation.14 + "@shapeshiftoss/hdwallet-metamask-multichain": 1.62.13-gridplus-validation.14 + "@shapeshiftoss/hdwallet-native": 1.62.13-gridplus-validation.14 + "@shapeshiftoss/hdwallet-native-vault": 1.62.13-gridplus-validation.14 + "@shapeshiftoss/hdwallet-phantom": 1.62.13-gridplus-validation.14 + "@shapeshiftoss/hdwallet-trezor": 1.62.13-gridplus-validation.14 + "@shapeshiftoss/hdwallet-trezor-connect": 1.62.13-gridplus-validation.14 + "@shapeshiftoss/hdwallet-vultisig": 1.62.13-gridplus-validation.14 + "@shapeshiftoss/hdwallet-walletconnect": 1.62.13-gridplus-validation.14 + "@shapeshiftoss/hdwallet-walletconnectv2": 1.62.13-gridplus-validation.14 "@shapeshiftoss/swapper": "workspace:^" "@shapeshiftoss/types": "workspace:^" "@shapeshiftoss/unchained-client": "workspace:^" From fcc77854b9098cf1e1db0c3f3bd4b68bb2a5276b Mon Sep 17 00:00:00 2001 From: gomes <17035424+gomesalexandre@users.noreply.github.com> Date: Wed, 26 Nov 2025 19:01:08 +0100 Subject: [PATCH 11/26] fix: restore physicalDeviceId storage for Add New and Connect buttons MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We accidentally removed the setConnection() dispatch calls when updating to the new adapter API. This caused: - physicalDeviceId always null in Redux - "Add New" button dead click (checks physicalDeviceId) - Connect button fails with "Device Id required" Fixed by: - Re-adding dispatch parameter to connectAndPairDevice() - Calling setConnection() after successful connect - Making sessionId nullable in action type (no longer used in new API) - Passing dispatch from all call sites 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .../GridPlus/components/GridPlusSetup.tsx | 1 + .../GridPlus/hooks/useGridPlusConnection.ts | 5 ++++- src/context/WalletProvider/GridPlus/utils.ts | 15 ++++++++++++--- src/state/slices/gridplusSlice/gridplusSlice.ts | 2 +- 4 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/context/WalletProvider/GridPlus/components/GridPlusSetup.tsx b/src/context/WalletProvider/GridPlus/components/GridPlusSetup.tsx index f0d125e83c1..d983b19675d 100644 --- a/src/context/WalletProvider/GridPlus/components/GridPlusSetup.tsx +++ b/src/context/WalletProvider/GridPlus/components/GridPlusSetup.tsx @@ -97,6 +97,7 @@ export const GridPlusSetup = () => { const result = await connectAndPairDevice({ adapter, deviceId: connectionDeviceId, + dispatch: appDispatch, }) finalWallet = result ?? undefined } diff --git a/src/context/WalletProvider/GridPlus/hooks/useGridPlusConnection.ts b/src/context/WalletProvider/GridPlus/hooks/useGridPlusConnection.ts index cbc474b53eb..8a09cddfcec 100644 --- a/src/context/WalletProvider/GridPlus/hooks/useGridPlusConnection.ts +++ b/src/context/WalletProvider/GridPlus/hooks/useGridPlusConnection.ts @@ -90,6 +90,7 @@ export const useGridPlusConnection = () => { const wallet = await connectAndPairDevice({ adapter, deviceId: connectionDeviceId, + dispatch: appDispatch, }) if (!wallet) { @@ -119,6 +120,7 @@ export const useGridPlusConnection = () => { defaultSafeCardName, getConnectionDeviceId, getAdapterWithKeyring, + appDispatch, navigate, setErrorLoading, ], @@ -141,7 +143,8 @@ export const useGridPlusConnection = () => { const wallet = await connectAndPairDevice({ adapter, deviceId: connectionDeviceId, - expectedWalletUid, + expectedActiveWalletId: expectedWalletUid, + dispatch: appDispatch, }) if (!wallet) { diff --git a/src/context/WalletProvider/GridPlus/utils.ts b/src/context/WalletProvider/GridPlus/utils.ts index 30d7b70f34e..524c33f86a9 100644 --- a/src/context/WalletProvider/GridPlus/utils.ts +++ b/src/context/WalletProvider/GridPlus/utils.ts @@ -16,20 +16,29 @@ type LocalWallet = ReturnType type ConnectAndPairDeviceParams = { adapter: GridPlusAdapter deviceId: string - expectedWalletUid?: string + expectedActiveWalletId?: string + dispatch: AppDispatch } export const connectAndPairDevice = async ({ adapter, deviceId, - expectedWalletUid, + expectedActiveWalletId, + dispatch, }: ConnectAndPairDeviceParams): Promise => { - const wallet = await adapter.connectDevice(deviceId, undefined, expectedWalletUid) + const wallet = await adapter.connectDevice(deviceId, undefined, expectedActiveWalletId) if (!wallet) { return null } + dispatch( + gridplusSlice.actions.setConnection({ + physicalDeviceId: deviceId, + sessionId: null, + }), + ) + return wallet } diff --git a/src/state/slices/gridplusSlice/gridplusSlice.ts b/src/state/slices/gridplusSlice/gridplusSlice.ts index 5c1a00214b6..eb0089be967 100644 --- a/src/state/slices/gridplusSlice/gridplusSlice.ts +++ b/src/state/slices/gridplusSlice/gridplusSlice.ts @@ -25,7 +25,7 @@ export const gridplusSlice = createSlice({ state, action: PayloadAction<{ physicalDeviceId: string - sessionId: string + sessionId: string | null }>, ) => { state.connection.physicalDeviceId = action.payload.physicalDeviceId From a3302daf449c241f7c1657942030487604481572 Mon Sep 17 00:00:00 2001 From: gomes <17035424+gomesalexandre@users.noreply.github.com> Date: Wed, 26 Nov 2025 19:14:41 +0100 Subject: [PATCH 12/26] feat: display specific error message for SafeCard mismatch MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When signing fails due to wrong SafeCard inserted, show helpful error message instead of generic "Failed to sign transaction". Changes: - Added error check in ErrorHandler for SafeCard mismatch message - Throws ChainAdapterError with specific translation key - Added translation: "Wrong SafeCard inserted. Please insert the correct SafeCard and try again." Works across all chain adapters (EVM, UTXO, Solana, Cosmos) since they all use the same ErrorHandler. Applies to both Send and Swap flows. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- packages/chain-adapters/src/error/ErrorHandler.ts | 9 +++++++++ src/assets/translations/en/main.json | 5 ++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/chain-adapters/src/error/ErrorHandler.ts b/packages/chain-adapters/src/error/ErrorHandler.ts index cc22406a512..48d340696a2 100644 --- a/packages/chain-adapters/src/error/ErrorHandler.ts +++ b/packages/chain-adapters/src/error/ErrorHandler.ts @@ -32,6 +32,15 @@ export const ErrorHandler = async (err: unknown, metadata?: ErrorMetadata): Prom }) } + if ( + err instanceof Error && + err.message.includes("Active SafeCard doesn't match expected SafeCard") + ) { + throw new ChainAdapterError(err, { + translation: 'chainAdapters.errors.gridplus.wrongSafeCard', + }) + } + if ((err as AxiosError).isAxiosError) { const response = JSON.stringify((err as AxiosError).response?.data) if (metadata) throw new ChainAdapterError(response, metadata) diff --git a/src/assets/translations/en/main.json b/src/assets/translations/en/main.json index b4fc6301711..04e13ed8482 100644 --- a/src/assets/translations/en/main.json +++ b/src/assets/translations/en/main.json @@ -2521,7 +2521,10 @@ "getFeeData": "Failed to estimate network fees.", "getPublicKey": "Failed to get public key from wallet.", "getUtxos": "Failed to get utxos.", - "getValidator": "Failed to get validator." + "getValidator": "Failed to get validator.", + "gridplus": { + "wrongSafeCard": "Wrong SafeCard inserted. Please insert the correct SafeCard and try again." + } } }, "actionCenter": { From 969a2e2ea4f8ac517e6283b8fe5e32dfe4683116 Mon Sep 17 00:00:00 2001 From: gomes <17035424+gomesalexandre@users.noreply.github.com> Date: Wed, 26 Nov 2025 19:20:16 +0100 Subject: [PATCH 13/26] refactor: update SafeCard tag display to use consistent color MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Changed internal SafeCard tag from green to blue to match external SafeCard tags. Updated text from "Internal" to "Internal SafeCard" for clarity. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .../WalletProvider/GridPlus/components/SafeCardRow.tsx | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/context/WalletProvider/GridPlus/components/SafeCardRow.tsx b/src/context/WalletProvider/GridPlus/components/SafeCardRow.tsx index 8649fc1fc42..20487cf2988 100644 --- a/src/context/WalletProvider/GridPlus/components/SafeCardRow.tsx +++ b/src/context/WalletProvider/GridPlus/components/SafeCardRow.tsx @@ -81,12 +81,8 @@ export const SafeCardRow = memo( {safeCard.name} {safeCard.type && ( - - {safeCard.type === 'internal' ? 'Internal' : 'SafeCard'} + + {safeCard.type === 'internal' ? 'Internal SafeCard' : 'SafeCard'} )} From 864fcce4327bced7d037986ae15a8e255047e644 Mon Sep 17 00:00:00 2001 From: gomes <17035424+gomesalexandre@users.noreply.github.com> Date: Wed, 26 Nov 2025 19:33:03 +0100 Subject: [PATCH 14/26] feat: add context-aware error messages for SafeCard validation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Updated to hdwallet 1.62.13-gridplus-validation.15 with type-aware validation errors. Added two distinct error messages and translations: 1. External mismatch: "Wrong SafeCard inserted. Please insert the correct SafeCard and try again." 2. Internal blocked: "Remove inserted SafeCard to access internal GridPlus wallet." Changes: - Added error check in ErrorHandler for internal wallet access message - Added translation key: chainAdapters.errors.gridplus.removeSafeCard - Pass type parameter when setting expected wallet ID - Works across all chains (EVM, UTXO, Solana, Cosmos) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- package.json | 36 +-- .../chain-adapters/src/error/ErrorHandler.ts | 9 + src/assets/translations/en/main.json | 3 +- src/context/WalletProvider/GridPlus/utils.ts | 4 +- src/context/WalletProvider/WalletProvider.tsx | 3 +- yarn.lock | 222 +++++++++--------- 6 files changed, 144 insertions(+), 133 deletions(-) diff --git a/package.json b/package.json index 5bdfc86af6a..86677c601a2 100644 --- a/package.json +++ b/package.json @@ -100,24 +100,24 @@ "@shapeshiftoss/chain-adapters": "workspace:^", "@shapeshiftoss/contracts": "workspace:^", "@shapeshiftoss/errors": "workspace:^", - "@shapeshiftoss/hdwallet-coinbase": "1.62.13-gridplus-validation.14", - "@shapeshiftoss/hdwallet-core": "1.62.13-gridplus-validation.14", - "@shapeshiftoss/hdwallet-gridplus": "1.62.13-gridplus-validation.14", - "@shapeshiftoss/hdwallet-keepkey": "1.62.13-gridplus-validation.14", - "@shapeshiftoss/hdwallet-keepkey-webusb": "1.62.13-gridplus-validation.14", - "@shapeshiftoss/hdwallet-keplr": "1.62.13-gridplus-validation.14", - "@shapeshiftoss/hdwallet-ledger": "1.62.13-gridplus-validation.14", - "@shapeshiftoss/hdwallet-ledger-webhid": "1.62.13-gridplus-validation.14", - "@shapeshiftoss/hdwallet-ledger-webusb": "1.62.13-gridplus-validation.14", - "@shapeshiftoss/hdwallet-metamask-multichain": "1.62.13-gridplus-validation.14", - "@shapeshiftoss/hdwallet-native": "1.62.13-gridplus-validation.14", - "@shapeshiftoss/hdwallet-native-vault": "1.62.13-gridplus-validation.14", - "@shapeshiftoss/hdwallet-phantom": "1.62.13-gridplus-validation.14", - "@shapeshiftoss/hdwallet-trezor": "1.62.13-gridplus-validation.14", - "@shapeshiftoss/hdwallet-trezor-connect": "1.62.13-gridplus-validation.14", - "@shapeshiftoss/hdwallet-vultisig": "1.62.13-gridplus-validation.14", - "@shapeshiftoss/hdwallet-walletconnect": "1.62.13-gridplus-validation.14", - "@shapeshiftoss/hdwallet-walletconnectv2": "1.62.13-gridplus-validation.14", + "@shapeshiftoss/hdwallet-coinbase": "1.62.13-gridplus-validation.15", + "@shapeshiftoss/hdwallet-core": "1.62.13-gridplus-validation.15", + "@shapeshiftoss/hdwallet-gridplus": "1.62.13-gridplus-validation.15", + "@shapeshiftoss/hdwallet-keepkey": "1.62.13-gridplus-validation.15", + "@shapeshiftoss/hdwallet-keepkey-webusb": "1.62.13-gridplus-validation.15", + "@shapeshiftoss/hdwallet-keplr": "1.62.13-gridplus-validation.15", + "@shapeshiftoss/hdwallet-ledger": "1.62.13-gridplus-validation.15", + "@shapeshiftoss/hdwallet-ledger-webhid": "1.62.13-gridplus-validation.15", + "@shapeshiftoss/hdwallet-ledger-webusb": "1.62.13-gridplus-validation.15", + "@shapeshiftoss/hdwallet-metamask-multichain": "1.62.13-gridplus-validation.15", + "@shapeshiftoss/hdwallet-native": "1.62.13-gridplus-validation.15", + "@shapeshiftoss/hdwallet-native-vault": "1.62.13-gridplus-validation.15", + "@shapeshiftoss/hdwallet-phantom": "1.62.13-gridplus-validation.15", + "@shapeshiftoss/hdwallet-trezor": "1.62.13-gridplus-validation.15", + "@shapeshiftoss/hdwallet-trezor-connect": "1.62.13-gridplus-validation.15", + "@shapeshiftoss/hdwallet-vultisig": "1.62.13-gridplus-validation.15", + "@shapeshiftoss/hdwallet-walletconnect": "1.62.13-gridplus-validation.15", + "@shapeshiftoss/hdwallet-walletconnectv2": "1.62.13-gridplus-validation.15", "@shapeshiftoss/swapper": "workspace:^", "@shapeshiftoss/types": "workspace:^", "@shapeshiftoss/unchained-client": "workspace:^", diff --git a/packages/chain-adapters/src/error/ErrorHandler.ts b/packages/chain-adapters/src/error/ErrorHandler.ts index 48d340696a2..1cc75e12dd0 100644 --- a/packages/chain-adapters/src/error/ErrorHandler.ts +++ b/packages/chain-adapters/src/error/ErrorHandler.ts @@ -32,6 +32,15 @@ export const ErrorHandler = async (err: unknown, metadata?: ErrorMetadata): Prom }) } + if ( + err instanceof Error && + err.message.includes('Remove inserted SafeCard to access internal GridPlus wallet') + ) { + throw new ChainAdapterError(err, { + translation: 'chainAdapters.errors.gridplus.removeSafeCard', + }) + } + if ( err instanceof Error && err.message.includes("Active SafeCard doesn't match expected SafeCard") diff --git a/src/assets/translations/en/main.json b/src/assets/translations/en/main.json index 04e13ed8482..3227b3c3fe3 100644 --- a/src/assets/translations/en/main.json +++ b/src/assets/translations/en/main.json @@ -2523,7 +2523,8 @@ "getUtxos": "Failed to get utxos.", "getValidator": "Failed to get validator.", "gridplus": { - "wrongSafeCard": "Wrong SafeCard inserted. Please insert the correct SafeCard and try again." + "wrongSafeCard": "Wrong SafeCard inserted. Please insert the correct SafeCard and try again.", + "removeSafeCard": "Remove inserted SafeCard to access internal GridPlus wallet." } } }, diff --git a/src/context/WalletProvider/GridPlus/utils.ts b/src/context/WalletProvider/GridPlus/utils.ts index 524c33f86a9..0e7799a4255 100644 --- a/src/context/WalletProvider/GridPlus/utils.ts +++ b/src/context/WalletProvider/GridPlus/utils.ts @@ -97,9 +97,9 @@ export const finalizeWalletSetup = async ({ } } - // Set expected wallet UID for JIT validation before signing + // Set expected wallet UID and type for JIT validation before signing if (finalWalletUid && wallet.setExpectedActiveWalletId) { - wallet.setExpectedActiveWalletId(finalWalletUid) + wallet.setExpectedActiveWalletId(finalWalletUid, finalType) } walletDispatch({ diff --git a/src/context/WalletProvider/WalletProvider.tsx b/src/context/WalletProvider/WalletProvider.tsx index 1ed0787678c..1191e67047e 100644 --- a/src/context/WalletProvider/WalletProvider.tsx +++ b/src/context/WalletProvider/WalletProvider.tsx @@ -848,10 +848,11 @@ export const WalletProvider = ({ children }: { children: React.ReactNode }): JSX safeCard.activeWalletId, ) - // Set expected wallet UID for JIT validation before signing + // Set expected wallet UID and type for JIT validation before signing if ((gridPlusWallet as GridPlusHDWallet).setExpectedActiveWalletId) { ;(gridPlusWallet as GridPlusHDWallet).setExpectedActiveWalletId( safeCard.activeWalletId, + safeCard.type, ) } diff --git a/yarn.lock b/yarn.lock index 59474036d83..123e10f59e6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10827,15 +10827,15 @@ __metadata: languageName: node linkType: hard -"@shapeshiftoss/hdwallet-coinbase@npm:1.62.13-gridplus-validation.14": - version: 1.62.13-gridplus-validation.14 - resolution: "@shapeshiftoss/hdwallet-coinbase@npm:1.62.13-gridplus-validation.14" +"@shapeshiftoss/hdwallet-coinbase@npm:1.62.13-gridplus-validation.15": + version: 1.62.13-gridplus-validation.15 + resolution: "@shapeshiftoss/hdwallet-coinbase@npm:1.62.13-gridplus-validation.15" dependencies: "@coinbase/wallet-sdk": ^3.6.6 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.14 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.15 eth-rpc-errors: ^4.0.3 lodash: ^4.17.21 - checksum: 4b64a079bfbc452c863b0a6184d48aeadb9afcde34b74741eee44ef36996a9d750a6f15af48e7fa3369d91165eae5ffcba8d363d4195756bbac7c03eab5d9c72 + checksum: 1485226c35dc1039c0720e2b7062d3a9396c264ea3369abb187be24ccc5daaabc9fef3c3fbd4cfbf8b26db692eb7331ff1be386f87e84148ad94137e0751109f languageName: node linkType: hard @@ -10868,9 +10868,9 @@ __metadata: languageName: node linkType: hard -"@shapeshiftoss/hdwallet-core@npm:1.62.13-gridplus-validation.14, @shapeshiftoss/hdwallet-core@npm:^1.62.13-gridplus-validation.14": - version: 1.62.13-gridplus-validation.14 - resolution: "@shapeshiftoss/hdwallet-core@npm:1.62.13-gridplus-validation.14" +"@shapeshiftoss/hdwallet-core@npm:1.62.13-gridplus-validation.15, @shapeshiftoss/hdwallet-core@npm:^1.62.13-gridplus-validation.15": + version: 1.62.13-gridplus-validation.15 + resolution: "@shapeshiftoss/hdwallet-core@npm:1.62.13-gridplus-validation.15" dependencies: "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 "@shapeshiftoss/proto-tx-builder": 0.10.0 @@ -10881,7 +10881,7 @@ __metadata: lodash: ^4.17.21 rxjs: ^6.4.0 type-assertions: ^1.1.0 - checksum: b1e3b4c86f1ce8ce7cbe269ec17649c2f362491a20aeddb6001030c0c22271ff18801d996350759a7b4761992d33ca6f547fb2e3037834cb622ee3843bdfeac0 + checksum: da9d49d6ebca07d8b083458e485f81e1b0b0cd558d181de379a751d8e716823b001c01d1d4f503b4e72fb1b2f35f827a88092c85a887e13b6400c69cc1483e96 languageName: node linkType: hard @@ -10899,38 +10899,38 @@ __metadata: languageName: node linkType: hard -"@shapeshiftoss/hdwallet-gridplus@npm:1.62.13-gridplus-validation.14": - version: 1.62.13-gridplus-validation.14 - resolution: "@shapeshiftoss/hdwallet-gridplus@npm:1.62.13-gridplus-validation.14" +"@shapeshiftoss/hdwallet-gridplus@npm:1.62.13-gridplus-validation.15": + version: 1.62.13-gridplus-validation.15 + resolution: "@shapeshiftoss/hdwallet-gridplus@npm:1.62.13-gridplus-validation.15" dependencies: "@bitcoinerlab/secp256k1": ^1.1.1 "@ethereumjs/common": 4.4.0 "@ethereumjs/rlp": 5.0.2 "@ethereumjs/tx": 5.4.0 "@metamask/eth-sig-util": ^7.0.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.14 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.15 bech32: ^1.1.4 bs58: ^5.0.0 crypto-js: ^4.2.0 gridplus-sdk: ^3.2.0 lodash: ^4.17.21 - checksum: 635d00eae7d5067cdaeb171d65a1e3957ec731aeff56417200bd3e4c392277ae0cc47998478de93e36f7f4711279abbba24a90e02bb5452f79fa7d6750ccd1b6 + checksum: fd260cd1b727753d0b5dfc96b5dca4e33c1c8bdd87a97d9df05399970dee61d5e3b4bea3429b00a9c65fd8a533668981ecb4e045025456588624ea0bbcaa68fe languageName: node linkType: hard -"@shapeshiftoss/hdwallet-keepkey-webusb@npm:1.62.13-gridplus-validation.14": - version: 1.62.13-gridplus-validation.14 - resolution: "@shapeshiftoss/hdwallet-keepkey-webusb@npm:1.62.13-gridplus-validation.14" +"@shapeshiftoss/hdwallet-keepkey-webusb@npm:1.62.13-gridplus-validation.15": + version: 1.62.13-gridplus-validation.15 + resolution: "@shapeshiftoss/hdwallet-keepkey-webusb@npm:1.62.13-gridplus-validation.15" dependencies: - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.14 - "@shapeshiftoss/hdwallet-keepkey": ^1.62.13-gridplus-validation.14 - checksum: f74afcfc6f8a021d0bd4ab34444427396fe90f04cf5e1669d19e7641ea2c7d978cab0aefdd05de08cfeea011247301bffbfa7888af04284827ab6762a4fab6e4 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.15 + "@shapeshiftoss/hdwallet-keepkey": ^1.62.13-gridplus-validation.15 + checksum: b8d205c1ee2c6c2ab3c4b8abf474dfdd484708cdb4a1067c6247c967f1c813d145a69027fc5d3696db3225cbf8745c11633fc4748530452092c1b039d390ee37 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-keepkey@npm:1.62.13-gridplus-validation.14, @shapeshiftoss/hdwallet-keepkey@npm:^1.62.13-gridplus-validation.14": - version: 1.62.13-gridplus-validation.14 - resolution: "@shapeshiftoss/hdwallet-keepkey@npm:1.62.13-gridplus-validation.14" +"@shapeshiftoss/hdwallet-keepkey@npm:1.62.13-gridplus-validation.15, @shapeshiftoss/hdwallet-keepkey@npm:^1.62.13-gridplus-validation.15": + version: 1.62.13-gridplus-validation.15 + resolution: "@shapeshiftoss/hdwallet-keepkey@npm:1.62.13-gridplus-validation.15" dependencies: "@bitcoinerlab/secp256k1": ^1.1.1 "@ethereumjs/common": 3.2.0 @@ -10938,7 +10938,7 @@ __metadata: "@keepkey/device-protocol": 7.13.4 "@metamask/eth-sig-util": ^7.0.0 "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.14 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.15 "@shapeshiftoss/proto-tx-builder": 0.10.0 bignumber.js: ^9.0.1 bnb-javascript-sdk-nobroadcast: 2.16.15 @@ -10949,44 +10949,44 @@ __metadata: lodash: ^4.17.21 p-lazy: ^3.1.0 semver: ^7.3.8 - checksum: 500bc1a98372e03429fe1b27bc8ed71ecef90072f1c40e1e41c38861a7197b17774314d7f68fddec98780f03e288bdf17b13f414db1475b67edb8414e07d37f7 + checksum: 65a3e6a8e0ee966997e8879b9932dbbd31296a9f9accc8b09c7f6c28cb9b586830a4d6a80971dac9ac17cd5ea2bffaa6306aeade676cbff6bc0fd033dbdf8d3c languageName: node linkType: hard -"@shapeshiftoss/hdwallet-keplr@npm:1.62.13-gridplus-validation.14": - version: 1.62.13-gridplus-validation.14 - resolution: "@shapeshiftoss/hdwallet-keplr@npm:1.62.13-gridplus-validation.14" +"@shapeshiftoss/hdwallet-keplr@npm:1.62.13-gridplus-validation.15": + version: 1.62.13-gridplus-validation.15 + resolution: "@shapeshiftoss/hdwallet-keplr@npm:1.62.13-gridplus-validation.15" dependencies: "@cosmjs/amino": ^0.28.13 "@cosmjs/stargate": ^0.28.13 "@shapeshiftoss/caip": 8.15.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.14 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.15 "@shapeshiftoss/proto-tx-builder": 0.10.0 "@shapeshiftoss/types": 3.1.3 base64-js: ^1.5.1 lodash: ^4.17.21 - checksum: bff885ef5e7cae5a476e5f988656d292985c5475cf7cce61276856b65c650ed00532ca148a872b0887fc3676fee830e6a515339e82f50b483cda4459396a37c8 + checksum: 096583f22b787bc90d069611627702c72ea3692cdb717c5a19961f39395075807f00a9fcc514eb4eef0f5f38d5f2d519427d2666fdd1cba1b292252cd3e8a4c7 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-ledger-webhid@npm:1.62.13-gridplus-validation.14": - version: 1.62.13-gridplus-validation.14 - resolution: "@shapeshiftoss/hdwallet-ledger-webhid@npm:1.62.13-gridplus-validation.14" +"@shapeshiftoss/hdwallet-ledger-webhid@npm:1.62.13-gridplus-validation.15": + version: 1.62.13-gridplus-validation.15 + resolution: "@shapeshiftoss/hdwallet-ledger-webhid@npm:1.62.13-gridplus-validation.15" dependencies: "@ledgerhq/hw-app-btc": ^10.10.0 "@ledgerhq/hw-app-eth": ^6.45.13 "@ledgerhq/hw-transport": 6.31.8 "@ledgerhq/hw-transport-webhid": ^6.30.4 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.14 - "@shapeshiftoss/hdwallet-ledger": ^1.62.13-gridplus-validation.14 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.15 + "@shapeshiftoss/hdwallet-ledger": ^1.62.13-gridplus-validation.15 "@types/w3c-web-hid": ^1.0.2 - checksum: 367cc36ca1c94c4c9ff425d4648315aa5d8a4fb003044dd21c0420689684c590f5e175b842c5a30e53c8fe9df9b67ce941798fdcff56db9db0ad613a95061236 + checksum: b410934681c8bb3234e78a8b828735da730e82c043ae27f042b0f03426b950b68aa1597db073883ada75893af538ce39fecad4f3d03e4d1caa3ef2521803c3c2 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-ledger-webusb@npm:1.62.13-gridplus-validation.14": - version: 1.62.13-gridplus-validation.14 - resolution: "@shapeshiftoss/hdwallet-ledger-webusb@npm:1.62.13-gridplus-validation.14" +"@shapeshiftoss/hdwallet-ledger-webusb@npm:1.62.13-gridplus-validation.15": + version: 1.62.13-gridplus-validation.15 + resolution: "@shapeshiftoss/hdwallet-ledger-webusb@npm:1.62.13-gridplus-validation.15" dependencies: "@ledgerhq/hw-app-btc": ^10.10.0 "@ledgerhq/hw-app-cosmos": ^6.32.4 @@ -10994,17 +10994,17 @@ __metadata: "@ledgerhq/hw-app-solana": ^7.5.1 "@ledgerhq/hw-transport": 6.31.8 "@ledgerhq/hw-transport-webusb": 6.29.8 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.14 - "@shapeshiftoss/hdwallet-ledger": ^1.62.13-gridplus-validation.14 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.15 + "@shapeshiftoss/hdwallet-ledger": ^1.62.13-gridplus-validation.15 "@types/w3c-web-usb": ^1.0.4 p-queue: ^7.4.1 - checksum: ad89cc26eca03629e6844695fdb8a852d19cdb9e8e2b315a8f9b33ac1ab753a77e1c124aa2fece8b1e6c2107cd7972106d673337a30fc0f5f513839317f54537 + checksum: 84024cac9477dccf47ba129cc5692504f639fc3e649455c29caf3cf704578342be293a9e6a2ed8195a25cc0a1229a733594d56451ffc3415fcf63cbd4cc46a0f languageName: node linkType: hard -"@shapeshiftoss/hdwallet-ledger@npm:1.62.13-gridplus-validation.14, @shapeshiftoss/hdwallet-ledger@npm:^1.62.13-gridplus-validation.14": - version: 1.62.13-gridplus-validation.14 - resolution: "@shapeshiftoss/hdwallet-ledger@npm:1.62.13-gridplus-validation.14" +"@shapeshiftoss/hdwallet-ledger@npm:1.62.13-gridplus-validation.15, @shapeshiftoss/hdwallet-ledger@npm:^1.62.13-gridplus-validation.15": + version: 1.62.13-gridplus-validation.15 + resolution: "@shapeshiftoss/hdwallet-ledger@npm:1.62.13-gridplus-validation.15" dependencies: "@ethereumjs/common": 3.2.0 "@ethereumjs/tx": 4.2.0 @@ -11016,7 +11016,7 @@ __metadata: "@ledgerhq/hw-transport": 6.31.8 "@ledgerhq/logs": 6.13.0 "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.14 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.15 "@solana/web3.js": 1.95.8 base64-js: ^1.5.1 bchaddrjs: ^0.4.4 @@ -11026,33 +11026,33 @@ __metadata: ethereumjs-util: ^6.1.0 ethers: 5.7.2 lodash: ^4.17.21 - checksum: 1af3b1e2d972fea63c2da755d5288ced67d0b2671de3576f654890bbc738af682398da0b7c82232a1f3c4f87299067b25631795668a1929c5db4cc663c85ed7a + checksum: 167d11cccc1aa10d217d247ff25c4fab4424c4c7c2943a66ac38bd8aee487f6b1df4631ca577cb9284e104db63a7d6eb3ad463009658951f6f9ac8aaceaa0cdd languageName: node linkType: hard -"@shapeshiftoss/hdwallet-metamask-multichain@npm:1.62.13-gridplus-validation.14": - version: 1.62.13-gridplus-validation.14 - resolution: "@shapeshiftoss/hdwallet-metamask-multichain@npm:1.62.13-gridplus-validation.14" +"@shapeshiftoss/hdwallet-metamask-multichain@npm:1.62.13-gridplus-validation.15": + version: 1.62.13-gridplus-validation.15 + resolution: "@shapeshiftoss/hdwallet-metamask-multichain@npm:1.62.13-gridplus-validation.15" dependencies: "@metamask/detect-provider": ^1.2.0 "@metamask/onboarding": ^1.0.1 "@shapeshiftoss/common-api": ^9.3.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.14 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.15 "@shapeshiftoss/metamask-snaps-adapter": ^1.0.12 "@shapeshiftoss/metamask-snaps-types": ^1.0.12 eth-rpc-errors: ^4.0.3 lodash: ^4.17.21 mipd: ^0.0.7 - checksum: cf2735b9db740c286fef3869f6522d8849d35dd26f4e3cd5e020f7ea6c8cde137c909c66272a5f1c41c3113ca4ceb7580c74591a16028d8844289956362a3daa + checksum: 169e31b97874e139950feeeb25b2c075154812783dee19511c3c836105ac95544ec502fa5de8b1a51a9c10753f6f6cf2ca048f4c2f720fedd80ef14d2d093820 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-native-vault@npm:1.62.13-gridplus-validation.14": - version: 1.62.13-gridplus-validation.14 - resolution: "@shapeshiftoss/hdwallet-native-vault@npm:1.62.13-gridplus-validation.14" +"@shapeshiftoss/hdwallet-native-vault@npm:1.62.13-gridplus-validation.15": + version: 1.62.13-gridplus-validation.15 + resolution: "@shapeshiftoss/hdwallet-native-vault@npm:1.62.13-gridplus-validation.15" dependencies: "@bitcoinerlab/secp256k1": ^1.1.1 - "@shapeshiftoss/hdwallet-native": ^1.62.13-gridplus-validation.14 + "@shapeshiftoss/hdwallet-native": ^1.62.13-gridplus-validation.15 bip39: ^3.0.4 hash-wasm: ^4.11.0 idb-keyval: ^6.0.3 @@ -11060,18 +11060,18 @@ __metadata: p-lazy: ^3.1.0 type-assertions: ^1.1.0 uuid: ^8.3.2 - checksum: c04f52ef386205ef4bd5987a9bea3b41f60c6b3d222f2f8da4e8b5bc23330ece2ec1c49484815c86a92635a0a92425daca62b7bcf8716c191a2a8b06f767ffd3 + checksum: f014cce72af2f93047e31a9facc96b5d7d60c80b7c0ef08006996ce1cd2803fbe8ddb9ef1bf39dfd4ef16973f0a45ae56b866eba69b02bfbb0265961d87cefa0 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-native@npm:1.62.13-gridplus-validation.14, @shapeshiftoss/hdwallet-native@npm:^1.62.13-gridplus-validation.14": - version: 1.62.13-gridplus-validation.14 - resolution: "@shapeshiftoss/hdwallet-native@npm:1.62.13-gridplus-validation.14" +"@shapeshiftoss/hdwallet-native@npm:1.62.13-gridplus-validation.15, @shapeshiftoss/hdwallet-native@npm:^1.62.13-gridplus-validation.15": + version: 1.62.13-gridplus-validation.15 + resolution: "@shapeshiftoss/hdwallet-native@npm:1.62.13-gridplus-validation.15" dependencies: "@bitcoinerlab/secp256k1": ^1.1.1 "@noble/curves": ^1.4.0 "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.14 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.15 "@shapeshiftoss/proto-tx-builder": 0.10.0 "@zxing/text-encoding": ^0.9.0 bchaddrjs: ^0.4.9 @@ -11092,7 +11092,7 @@ __metadata: p-lazy: ^3.1.0 scrypt-js: ^3.0.1 tendermint-tx-builder: 1.0.16 - checksum: 0202957a33450ff1f2f7e9fe1719b2b228a4384177f35fdd99d0f4ae898523aee580845cd0c63341e1aa0b6459ebef11f268341dfc26e4af3416640c6a8c437a + checksum: 620d5d2f17c7c62804d0019b168018dc1ea63a80e8a3644ac44ab90bc39029f6b31eab5f17ef2183fddaa6ed867bf62c7ef076d94c47eb4235db83c93f1eaadf languageName: node linkType: hard @@ -11129,83 +11129,83 @@ __metadata: languageName: node linkType: hard -"@shapeshiftoss/hdwallet-phantom@npm:1.62.13-gridplus-validation.14": - version: 1.62.13-gridplus-validation.14 - resolution: "@shapeshiftoss/hdwallet-phantom@npm:1.62.13-gridplus-validation.14" +"@shapeshiftoss/hdwallet-phantom@npm:1.62.13-gridplus-validation.15": + version: 1.62.13-gridplus-validation.15 + resolution: "@shapeshiftoss/hdwallet-phantom@npm:1.62.13-gridplus-validation.15" dependencies: "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.14 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.15 "@solana/web3.js": 1.95.8 base64-js: ^1.5.1 bitcoinjs-message: ^2.0.0 ethers: 5.7.2 lodash: ^4.17.21 - checksum: add0b17e12aa6ff00e51705efe56b4da223919f21e7943fa7b24964c1dcd2740d5e01e294a1bb010debba3dc491cd5f6136bfb327a72a05813d099069c49eecc + checksum: 6471ae61cd7adfd4becfc6cab05b6f7748b50e4bdfb511747df8fabb64d37e0bca10d8f041fd02b4ec22ef061569c58253135361280cf708e737740f88437da6 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-trezor-connect@npm:1.62.13-gridplus-validation.14": - version: 1.62.13-gridplus-validation.14 - resolution: "@shapeshiftoss/hdwallet-trezor-connect@npm:1.62.13-gridplus-validation.14" +"@shapeshiftoss/hdwallet-trezor-connect@npm:1.62.13-gridplus-validation.15": + version: 1.62.13-gridplus-validation.15 + resolution: "@shapeshiftoss/hdwallet-trezor-connect@npm:1.62.13-gridplus-validation.15" dependencies: - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.14 - "@shapeshiftoss/hdwallet-trezor": ^1.62.13-gridplus-validation.14 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.15 + "@shapeshiftoss/hdwallet-trezor": ^1.62.13-gridplus-validation.15 "@trezor/connect-web": ^9.6.4 - checksum: 7fc0dd25c4f2a5427127ca7e1c115815280b72122c8f49502c20e97093898df61143764c66d46f0fb3c546296778174cc91343225f6b26f83dec222b2c3e9b38 + checksum: e5e5e01d3accbb6181a4dd70cb12520d1b33250c745f4e4996b9afa23fb18b7320428057741ba48ccebd72ce1201e40aaaeeaa8916c8016c4a851c50f942401f languageName: node linkType: hard -"@shapeshiftoss/hdwallet-trezor@npm:1.62.13-gridplus-validation.14, @shapeshiftoss/hdwallet-trezor@npm:^1.62.13-gridplus-validation.14": - version: 1.62.13-gridplus-validation.14 - resolution: "@shapeshiftoss/hdwallet-trezor@npm:1.62.13-gridplus-validation.14" +"@shapeshiftoss/hdwallet-trezor@npm:1.62.13-gridplus-validation.15, @shapeshiftoss/hdwallet-trezor@npm:^1.62.13-gridplus-validation.15": + version: 1.62.13-gridplus-validation.15 + resolution: "@shapeshiftoss/hdwallet-trezor@npm:1.62.13-gridplus-validation.15" dependencies: "@ethereumjs/common": 3.2.0 "@ethereumjs/tx": 4.2.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.14 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.15 base64-js: ^1.5.1 lodash: ^4.17.21 - checksum: f0c5658899c7ac8b29091514dad2aa0ee0f6a0c81e499c83426a27a760c3140d9d9703353e3efb462cc16a48b675b9030cddbaf56cb4494737dc0a9b8d401eeb + checksum: b6f2c8fcae7934e48addf7aa8f9ac8d40002ce937d2d3b6a5648cae632214a5255d4fa60dfafba3677d3bdb0f48ff5bb77b269f34b116dbddba1789fc538a936 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-vultisig@npm:1.62.13-gridplus-validation.14": - version: 1.62.13-gridplus-validation.14 - resolution: "@shapeshiftoss/hdwallet-vultisig@npm:1.62.13-gridplus-validation.14" +"@shapeshiftoss/hdwallet-vultisig@npm:1.62.13-gridplus-validation.15": + version: 1.62.13-gridplus-validation.15 + resolution: "@shapeshiftoss/hdwallet-vultisig@npm:1.62.13-gridplus-validation.15" dependencies: "@cosmjs/amino": ^0.28.13 "@cosmjs/stargate": ^0.28.13 "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.14 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.15 "@solana/web3.js": 1.95.8 base64-js: ^1.5.1 bitcoinjs-message: ^2.0.0 ethers: 5.7.2 lodash: ^4.17.21 - checksum: 1d2bf78544cc629e1b0d344532700f479838bd6c040aa0f9cf8b0ef00a9f7ed73a72e34cadfa6b41d18bc93c60968e5dabe666318aebfc8f47ef6ff988eed06f + checksum: d990b3bf145b8f7c2f1ea5f9386d5b1bc1bac24ad1b7c481692834a7829d2a2e99e9075a2814563066417ccd2bf991a2ddb38043b184ef4ced20a40da52f172c languageName: node linkType: hard -"@shapeshiftoss/hdwallet-walletconnect@npm:1.62.13-gridplus-validation.14": - version: 1.62.13-gridplus-validation.14 - resolution: "@shapeshiftoss/hdwallet-walletconnect@npm:1.62.13-gridplus-validation.14" +"@shapeshiftoss/hdwallet-walletconnect@npm:1.62.13-gridplus-validation.15": + version: 1.62.13-gridplus-validation.15 + resolution: "@shapeshiftoss/hdwallet-walletconnect@npm:1.62.13-gridplus-validation.15" dependencies: - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.14 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.15 "@walletconnect/qrcode-modal": ^1.7.8 "@walletconnect/web3-provider": ^1.7.8 ethers: ^5.6.5 - checksum: c5aaf1b6d64631536b00fb8089d6c1e6de5835024a4581be9b8ac85b9a75aa27137f944d9a8b02756c3043288aba36037cabb2d65ddb38e3e9e04981ae405d98 + checksum: b3f8a355d7a3ac14f554baa2d699401a9636a9a1b8b08c8447d52c90d511537cc7e689d91d1119fd6c573fe1e9a75a7b249b4eb9988d4cf14294b107b019e0cc languageName: node linkType: hard -"@shapeshiftoss/hdwallet-walletconnectv2@npm:1.62.13-gridplus-validation.14": - version: 1.62.13-gridplus-validation.14 - resolution: "@shapeshiftoss/hdwallet-walletconnectv2@npm:1.62.13-gridplus-validation.14" +"@shapeshiftoss/hdwallet-walletconnectv2@npm:1.62.13-gridplus-validation.15": + version: 1.62.13-gridplus-validation.15 + resolution: "@shapeshiftoss/hdwallet-walletconnectv2@npm:1.62.13-gridplus-validation.15" dependencies: - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.14 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.15 "@walletconnect/ethereum-provider": ^2.20.2 "@walletconnect/modal": ^2.6.2 ethers: ^5.6.5 - checksum: a172aee417a5b02066cf191890eb3f68c5f0d32b5bbdb7b9f9de30cd613ad3779a449ab6961ffd9a4ab11593694a86059d247321ea6d4a0049b0de4397830dee + checksum: 93831e2f7475f04ca78e2d402aff1952626ac96df6c7664965e7059db8a8624635da69a72274e693401bea441adc44fd65a5d370056f4c476ff3662f0a5524b9 languageName: node linkType: hard @@ -11425,24 +11425,24 @@ __metadata: "@shapeshiftoss/chain-adapters": "workspace:^" "@shapeshiftoss/contracts": "workspace:^" "@shapeshiftoss/errors": "workspace:^" - "@shapeshiftoss/hdwallet-coinbase": 1.62.13-gridplus-validation.14 - "@shapeshiftoss/hdwallet-core": 1.62.13-gridplus-validation.14 - "@shapeshiftoss/hdwallet-gridplus": 1.62.13-gridplus-validation.14 - "@shapeshiftoss/hdwallet-keepkey": 1.62.13-gridplus-validation.14 - "@shapeshiftoss/hdwallet-keepkey-webusb": 1.62.13-gridplus-validation.14 - "@shapeshiftoss/hdwallet-keplr": 1.62.13-gridplus-validation.14 - "@shapeshiftoss/hdwallet-ledger": 1.62.13-gridplus-validation.14 - "@shapeshiftoss/hdwallet-ledger-webhid": 1.62.13-gridplus-validation.14 - "@shapeshiftoss/hdwallet-ledger-webusb": 1.62.13-gridplus-validation.14 - "@shapeshiftoss/hdwallet-metamask-multichain": 1.62.13-gridplus-validation.14 - "@shapeshiftoss/hdwallet-native": 1.62.13-gridplus-validation.14 - "@shapeshiftoss/hdwallet-native-vault": 1.62.13-gridplus-validation.14 - "@shapeshiftoss/hdwallet-phantom": 1.62.13-gridplus-validation.14 - "@shapeshiftoss/hdwallet-trezor": 1.62.13-gridplus-validation.14 - "@shapeshiftoss/hdwallet-trezor-connect": 1.62.13-gridplus-validation.14 - "@shapeshiftoss/hdwallet-vultisig": 1.62.13-gridplus-validation.14 - "@shapeshiftoss/hdwallet-walletconnect": 1.62.13-gridplus-validation.14 - "@shapeshiftoss/hdwallet-walletconnectv2": 1.62.13-gridplus-validation.14 + "@shapeshiftoss/hdwallet-coinbase": 1.62.13-gridplus-validation.15 + "@shapeshiftoss/hdwallet-core": 1.62.13-gridplus-validation.15 + "@shapeshiftoss/hdwallet-gridplus": 1.62.13-gridplus-validation.15 + "@shapeshiftoss/hdwallet-keepkey": 1.62.13-gridplus-validation.15 + "@shapeshiftoss/hdwallet-keepkey-webusb": 1.62.13-gridplus-validation.15 + "@shapeshiftoss/hdwallet-keplr": 1.62.13-gridplus-validation.15 + "@shapeshiftoss/hdwallet-ledger": 1.62.13-gridplus-validation.15 + "@shapeshiftoss/hdwallet-ledger-webhid": 1.62.13-gridplus-validation.15 + "@shapeshiftoss/hdwallet-ledger-webusb": 1.62.13-gridplus-validation.15 + "@shapeshiftoss/hdwallet-metamask-multichain": 1.62.13-gridplus-validation.15 + "@shapeshiftoss/hdwallet-native": 1.62.13-gridplus-validation.15 + "@shapeshiftoss/hdwallet-native-vault": 1.62.13-gridplus-validation.15 + "@shapeshiftoss/hdwallet-phantom": 1.62.13-gridplus-validation.15 + "@shapeshiftoss/hdwallet-trezor": 1.62.13-gridplus-validation.15 + "@shapeshiftoss/hdwallet-trezor-connect": 1.62.13-gridplus-validation.15 + "@shapeshiftoss/hdwallet-vultisig": 1.62.13-gridplus-validation.15 + "@shapeshiftoss/hdwallet-walletconnect": 1.62.13-gridplus-validation.15 + "@shapeshiftoss/hdwallet-walletconnectv2": 1.62.13-gridplus-validation.15 "@shapeshiftoss/swapper": "workspace:^" "@shapeshiftoss/types": "workspace:^" "@shapeshiftoss/unchained-client": "workspace:^" From bdfea04c6d2fe5615a8199e827e6b90050b0fc12 Mon Sep 17 00:00:00 2001 From: gomes <17035424+gomesalexandre@users.noreply.github.com> Date: Wed, 26 Nov 2025 19:50:55 +0100 Subject: [PATCH 15/26] feat: wire up expectedType parameter through reconnection flow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Updated to hdwallet 1.62.13-gridplus-validation.16 and wired up expectedType parameter: - Added expectedType to ConnectAndPairDeviceParams - Pass safeCard.type when reconnecting to existing SafeCard - Adapter now passes expectedType to validateActiveWallet This enables context-aware error messages when wrong SafeCard is inserted during reconnection or signing. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- package.json | 36 +-- .../GridPlus/hooks/useGridPlusConnection.ts | 1 + src/context/WalletProvider/GridPlus/utils.ts | 9 +- yarn.lock | 222 +++++++++--------- 4 files changed, 138 insertions(+), 130 deletions(-) diff --git a/package.json b/package.json index 86677c601a2..e23a3ca642f 100644 --- a/package.json +++ b/package.json @@ -100,24 +100,24 @@ "@shapeshiftoss/chain-adapters": "workspace:^", "@shapeshiftoss/contracts": "workspace:^", "@shapeshiftoss/errors": "workspace:^", - "@shapeshiftoss/hdwallet-coinbase": "1.62.13-gridplus-validation.15", - "@shapeshiftoss/hdwallet-core": "1.62.13-gridplus-validation.15", - "@shapeshiftoss/hdwallet-gridplus": "1.62.13-gridplus-validation.15", - "@shapeshiftoss/hdwallet-keepkey": "1.62.13-gridplus-validation.15", - "@shapeshiftoss/hdwallet-keepkey-webusb": "1.62.13-gridplus-validation.15", - "@shapeshiftoss/hdwallet-keplr": "1.62.13-gridplus-validation.15", - "@shapeshiftoss/hdwallet-ledger": "1.62.13-gridplus-validation.15", - "@shapeshiftoss/hdwallet-ledger-webhid": "1.62.13-gridplus-validation.15", - "@shapeshiftoss/hdwallet-ledger-webusb": "1.62.13-gridplus-validation.15", - "@shapeshiftoss/hdwallet-metamask-multichain": "1.62.13-gridplus-validation.15", - "@shapeshiftoss/hdwallet-native": "1.62.13-gridplus-validation.15", - "@shapeshiftoss/hdwallet-native-vault": "1.62.13-gridplus-validation.15", - "@shapeshiftoss/hdwallet-phantom": "1.62.13-gridplus-validation.15", - "@shapeshiftoss/hdwallet-trezor": "1.62.13-gridplus-validation.15", - "@shapeshiftoss/hdwallet-trezor-connect": "1.62.13-gridplus-validation.15", - "@shapeshiftoss/hdwallet-vultisig": "1.62.13-gridplus-validation.15", - "@shapeshiftoss/hdwallet-walletconnect": "1.62.13-gridplus-validation.15", - "@shapeshiftoss/hdwallet-walletconnectv2": "1.62.13-gridplus-validation.15", + "@shapeshiftoss/hdwallet-coinbase": "1.62.13-gridplus-validation.16", + "@shapeshiftoss/hdwallet-core": "1.62.13-gridplus-validation.16", + "@shapeshiftoss/hdwallet-gridplus": "1.62.13-gridplus-validation.16", + "@shapeshiftoss/hdwallet-keepkey": "1.62.13-gridplus-validation.16", + "@shapeshiftoss/hdwallet-keepkey-webusb": "1.62.13-gridplus-validation.16", + "@shapeshiftoss/hdwallet-keplr": "1.62.13-gridplus-validation.16", + "@shapeshiftoss/hdwallet-ledger": "1.62.13-gridplus-validation.16", + "@shapeshiftoss/hdwallet-ledger-webhid": "1.62.13-gridplus-validation.16", + "@shapeshiftoss/hdwallet-ledger-webusb": "1.62.13-gridplus-validation.16", + "@shapeshiftoss/hdwallet-metamask-multichain": "1.62.13-gridplus-validation.16", + "@shapeshiftoss/hdwallet-native": "1.62.13-gridplus-validation.16", + "@shapeshiftoss/hdwallet-native-vault": "1.62.13-gridplus-validation.16", + "@shapeshiftoss/hdwallet-phantom": "1.62.13-gridplus-validation.16", + "@shapeshiftoss/hdwallet-trezor": "1.62.13-gridplus-validation.16", + "@shapeshiftoss/hdwallet-trezor-connect": "1.62.13-gridplus-validation.16", + "@shapeshiftoss/hdwallet-vultisig": "1.62.13-gridplus-validation.16", + "@shapeshiftoss/hdwallet-walletconnect": "1.62.13-gridplus-validation.16", + "@shapeshiftoss/hdwallet-walletconnectv2": "1.62.13-gridplus-validation.16", "@shapeshiftoss/swapper": "workspace:^", "@shapeshiftoss/types": "workspace:^", "@shapeshiftoss/unchained-client": "workspace:^", diff --git a/src/context/WalletProvider/GridPlus/hooks/useGridPlusConnection.ts b/src/context/WalletProvider/GridPlus/hooks/useGridPlusConnection.ts index 8a09cddfcec..8b6a06d958e 100644 --- a/src/context/WalletProvider/GridPlus/hooks/useGridPlusConnection.ts +++ b/src/context/WalletProvider/GridPlus/hooks/useGridPlusConnection.ts @@ -144,6 +144,7 @@ export const useGridPlusConnection = () => { adapter, deviceId: connectionDeviceId, expectedActiveWalletId: expectedWalletUid, + expectedType: safeCard?.type, dispatch: appDispatch, }) diff --git a/src/context/WalletProvider/GridPlus/utils.ts b/src/context/WalletProvider/GridPlus/utils.ts index 0e7799a4255..b2483f19a07 100644 --- a/src/context/WalletProvider/GridPlus/utils.ts +++ b/src/context/WalletProvider/GridPlus/utils.ts @@ -17,6 +17,7 @@ type ConnectAndPairDeviceParams = { adapter: GridPlusAdapter deviceId: string expectedActiveWalletId?: string + expectedType?: 'external' | 'internal' dispatch: AppDispatch } @@ -24,9 +25,15 @@ export const connectAndPairDevice = async ({ adapter, deviceId, expectedActiveWalletId, + expectedType, dispatch, }: ConnectAndPairDeviceParams): Promise => { - const wallet = await adapter.connectDevice(deviceId, undefined, expectedActiveWalletId) + const wallet = await adapter.connectDevice( + deviceId, + undefined, + expectedActiveWalletId, + expectedType, + ) if (!wallet) { return null diff --git a/yarn.lock b/yarn.lock index 123e10f59e6..03343ab7701 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10827,15 +10827,15 @@ __metadata: languageName: node linkType: hard -"@shapeshiftoss/hdwallet-coinbase@npm:1.62.13-gridplus-validation.15": - version: 1.62.13-gridplus-validation.15 - resolution: "@shapeshiftoss/hdwallet-coinbase@npm:1.62.13-gridplus-validation.15" +"@shapeshiftoss/hdwallet-coinbase@npm:1.62.13-gridplus-validation.16": + version: 1.62.13-gridplus-validation.16 + resolution: "@shapeshiftoss/hdwallet-coinbase@npm:1.62.13-gridplus-validation.16" dependencies: "@coinbase/wallet-sdk": ^3.6.6 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.15 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.16 eth-rpc-errors: ^4.0.3 lodash: ^4.17.21 - checksum: 1485226c35dc1039c0720e2b7062d3a9396c264ea3369abb187be24ccc5daaabc9fef3c3fbd4cfbf8b26db692eb7331ff1be386f87e84148ad94137e0751109f + checksum: 05a4816b2e6870c8170c92953caa3b01c38b5c401c18542c4f2bc16bf1fc3a9e780b291f430e5d809314dabcf1afd5e45bbfa1969865b927eae011b5cdf74b5c languageName: node linkType: hard @@ -10868,9 +10868,9 @@ __metadata: languageName: node linkType: hard -"@shapeshiftoss/hdwallet-core@npm:1.62.13-gridplus-validation.15, @shapeshiftoss/hdwallet-core@npm:^1.62.13-gridplus-validation.15": - version: 1.62.13-gridplus-validation.15 - resolution: "@shapeshiftoss/hdwallet-core@npm:1.62.13-gridplus-validation.15" +"@shapeshiftoss/hdwallet-core@npm:1.62.13-gridplus-validation.16, @shapeshiftoss/hdwallet-core@npm:^1.62.13-gridplus-validation.16": + version: 1.62.13-gridplus-validation.16 + resolution: "@shapeshiftoss/hdwallet-core@npm:1.62.13-gridplus-validation.16" dependencies: "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 "@shapeshiftoss/proto-tx-builder": 0.10.0 @@ -10881,7 +10881,7 @@ __metadata: lodash: ^4.17.21 rxjs: ^6.4.0 type-assertions: ^1.1.0 - checksum: da9d49d6ebca07d8b083458e485f81e1b0b0cd558d181de379a751d8e716823b001c01d1d4f503b4e72fb1b2f35f827a88092c85a887e13b6400c69cc1483e96 + checksum: 0ec39c49a40837f93bd23608514a30aae066b77bd6dffa38078f7d6bd64ee3c33aa6f489af3bb47921b3e9101e8479a8f7395dcdb8ec82b4ed3ac4907def822a languageName: node linkType: hard @@ -10899,38 +10899,38 @@ __metadata: languageName: node linkType: hard -"@shapeshiftoss/hdwallet-gridplus@npm:1.62.13-gridplus-validation.15": - version: 1.62.13-gridplus-validation.15 - resolution: "@shapeshiftoss/hdwallet-gridplus@npm:1.62.13-gridplus-validation.15" +"@shapeshiftoss/hdwallet-gridplus@npm:1.62.13-gridplus-validation.16": + version: 1.62.13-gridplus-validation.16 + resolution: "@shapeshiftoss/hdwallet-gridplus@npm:1.62.13-gridplus-validation.16" dependencies: "@bitcoinerlab/secp256k1": ^1.1.1 "@ethereumjs/common": 4.4.0 "@ethereumjs/rlp": 5.0.2 "@ethereumjs/tx": 5.4.0 "@metamask/eth-sig-util": ^7.0.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.15 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.16 bech32: ^1.1.4 bs58: ^5.0.0 crypto-js: ^4.2.0 gridplus-sdk: ^3.2.0 lodash: ^4.17.21 - checksum: fd260cd1b727753d0b5dfc96b5dca4e33c1c8bdd87a97d9df05399970dee61d5e3b4bea3429b00a9c65fd8a533668981ecb4e045025456588624ea0bbcaa68fe + checksum: fa13da8c1afe8f5d761dbd1d1feb126d5e05ebfae7e2754e098cf83e83b2b33c6b9f0676af4fa0282b75e47031fda8b146c9aee296c31ec9656e9805e6d071b6 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-keepkey-webusb@npm:1.62.13-gridplus-validation.15": - version: 1.62.13-gridplus-validation.15 - resolution: "@shapeshiftoss/hdwallet-keepkey-webusb@npm:1.62.13-gridplus-validation.15" +"@shapeshiftoss/hdwallet-keepkey-webusb@npm:1.62.13-gridplus-validation.16": + version: 1.62.13-gridplus-validation.16 + resolution: "@shapeshiftoss/hdwallet-keepkey-webusb@npm:1.62.13-gridplus-validation.16" dependencies: - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.15 - "@shapeshiftoss/hdwallet-keepkey": ^1.62.13-gridplus-validation.15 - checksum: b8d205c1ee2c6c2ab3c4b8abf474dfdd484708cdb4a1067c6247c967f1c813d145a69027fc5d3696db3225cbf8745c11633fc4748530452092c1b039d390ee37 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.16 + "@shapeshiftoss/hdwallet-keepkey": ^1.62.13-gridplus-validation.16 + checksum: 0fd7f50021eec07acd651f734dde40a0f8bc493e478f1b5061b27e8dd8570a2bebafd6cb6552f2cd53e1380c42aea9056a24193ba198f2fc08bd65aa24526189 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-keepkey@npm:1.62.13-gridplus-validation.15, @shapeshiftoss/hdwallet-keepkey@npm:^1.62.13-gridplus-validation.15": - version: 1.62.13-gridplus-validation.15 - resolution: "@shapeshiftoss/hdwallet-keepkey@npm:1.62.13-gridplus-validation.15" +"@shapeshiftoss/hdwallet-keepkey@npm:1.62.13-gridplus-validation.16, @shapeshiftoss/hdwallet-keepkey@npm:^1.62.13-gridplus-validation.16": + version: 1.62.13-gridplus-validation.16 + resolution: "@shapeshiftoss/hdwallet-keepkey@npm:1.62.13-gridplus-validation.16" dependencies: "@bitcoinerlab/secp256k1": ^1.1.1 "@ethereumjs/common": 3.2.0 @@ -10938,7 +10938,7 @@ __metadata: "@keepkey/device-protocol": 7.13.4 "@metamask/eth-sig-util": ^7.0.0 "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.15 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.16 "@shapeshiftoss/proto-tx-builder": 0.10.0 bignumber.js: ^9.0.1 bnb-javascript-sdk-nobroadcast: 2.16.15 @@ -10949,44 +10949,44 @@ __metadata: lodash: ^4.17.21 p-lazy: ^3.1.0 semver: ^7.3.8 - checksum: 65a3e6a8e0ee966997e8879b9932dbbd31296a9f9accc8b09c7f6c28cb9b586830a4d6a80971dac9ac17cd5ea2bffaa6306aeade676cbff6bc0fd033dbdf8d3c + checksum: c37144571abe645843004312902e0e7b483f499582c57bd3610b0408926041d3ceb5d5e8fe14b9c6a1ad904df298d840ceed988f2745fa32d79ae0c70e617692 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-keplr@npm:1.62.13-gridplus-validation.15": - version: 1.62.13-gridplus-validation.15 - resolution: "@shapeshiftoss/hdwallet-keplr@npm:1.62.13-gridplus-validation.15" +"@shapeshiftoss/hdwallet-keplr@npm:1.62.13-gridplus-validation.16": + version: 1.62.13-gridplus-validation.16 + resolution: "@shapeshiftoss/hdwallet-keplr@npm:1.62.13-gridplus-validation.16" dependencies: "@cosmjs/amino": ^0.28.13 "@cosmjs/stargate": ^0.28.13 "@shapeshiftoss/caip": 8.15.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.15 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.16 "@shapeshiftoss/proto-tx-builder": 0.10.0 "@shapeshiftoss/types": 3.1.3 base64-js: ^1.5.1 lodash: ^4.17.21 - checksum: 096583f22b787bc90d069611627702c72ea3692cdb717c5a19961f39395075807f00a9fcc514eb4eef0f5f38d5f2d519427d2666fdd1cba1b292252cd3e8a4c7 + checksum: ae973704a57e582a4254b1142d0927ddf11a90487fab78cb43b2e6a6b6ccc6cfba532d3337562dd7f531b883af6728cde731d584b0269a4f47ef01fb8f8bb8d0 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-ledger-webhid@npm:1.62.13-gridplus-validation.15": - version: 1.62.13-gridplus-validation.15 - resolution: "@shapeshiftoss/hdwallet-ledger-webhid@npm:1.62.13-gridplus-validation.15" +"@shapeshiftoss/hdwallet-ledger-webhid@npm:1.62.13-gridplus-validation.16": + version: 1.62.13-gridplus-validation.16 + resolution: "@shapeshiftoss/hdwallet-ledger-webhid@npm:1.62.13-gridplus-validation.16" dependencies: "@ledgerhq/hw-app-btc": ^10.10.0 "@ledgerhq/hw-app-eth": ^6.45.13 "@ledgerhq/hw-transport": 6.31.8 "@ledgerhq/hw-transport-webhid": ^6.30.4 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.15 - "@shapeshiftoss/hdwallet-ledger": ^1.62.13-gridplus-validation.15 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.16 + "@shapeshiftoss/hdwallet-ledger": ^1.62.13-gridplus-validation.16 "@types/w3c-web-hid": ^1.0.2 - checksum: b410934681c8bb3234e78a8b828735da730e82c043ae27f042b0f03426b950b68aa1597db073883ada75893af538ce39fecad4f3d03e4d1caa3ef2521803c3c2 + checksum: 17c5a2866ac905e6424d6e332cd90782a7a70b4dc7bfa703a31327807cc2b13f066da067ca656ef2b6beca2fed5af26a7a4cf7abf00d2a8c1f07491b818c83f4 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-ledger-webusb@npm:1.62.13-gridplus-validation.15": - version: 1.62.13-gridplus-validation.15 - resolution: "@shapeshiftoss/hdwallet-ledger-webusb@npm:1.62.13-gridplus-validation.15" +"@shapeshiftoss/hdwallet-ledger-webusb@npm:1.62.13-gridplus-validation.16": + version: 1.62.13-gridplus-validation.16 + resolution: "@shapeshiftoss/hdwallet-ledger-webusb@npm:1.62.13-gridplus-validation.16" dependencies: "@ledgerhq/hw-app-btc": ^10.10.0 "@ledgerhq/hw-app-cosmos": ^6.32.4 @@ -10994,17 +10994,17 @@ __metadata: "@ledgerhq/hw-app-solana": ^7.5.1 "@ledgerhq/hw-transport": 6.31.8 "@ledgerhq/hw-transport-webusb": 6.29.8 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.15 - "@shapeshiftoss/hdwallet-ledger": ^1.62.13-gridplus-validation.15 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.16 + "@shapeshiftoss/hdwallet-ledger": ^1.62.13-gridplus-validation.16 "@types/w3c-web-usb": ^1.0.4 p-queue: ^7.4.1 - checksum: 84024cac9477dccf47ba129cc5692504f639fc3e649455c29caf3cf704578342be293a9e6a2ed8195a25cc0a1229a733594d56451ffc3415fcf63cbd4cc46a0f + checksum: a105c1d61a59af19c0004e271730d2cf0faddd777cc72821ea5f60ce582c8d077b5a23e9b885561cf1ce7f02dc9f2d730a81dfcdfd91842bf75159de7fb6f837 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-ledger@npm:1.62.13-gridplus-validation.15, @shapeshiftoss/hdwallet-ledger@npm:^1.62.13-gridplus-validation.15": - version: 1.62.13-gridplus-validation.15 - resolution: "@shapeshiftoss/hdwallet-ledger@npm:1.62.13-gridplus-validation.15" +"@shapeshiftoss/hdwallet-ledger@npm:1.62.13-gridplus-validation.16, @shapeshiftoss/hdwallet-ledger@npm:^1.62.13-gridplus-validation.16": + version: 1.62.13-gridplus-validation.16 + resolution: "@shapeshiftoss/hdwallet-ledger@npm:1.62.13-gridplus-validation.16" dependencies: "@ethereumjs/common": 3.2.0 "@ethereumjs/tx": 4.2.0 @@ -11016,7 +11016,7 @@ __metadata: "@ledgerhq/hw-transport": 6.31.8 "@ledgerhq/logs": 6.13.0 "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.15 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.16 "@solana/web3.js": 1.95.8 base64-js: ^1.5.1 bchaddrjs: ^0.4.4 @@ -11026,33 +11026,33 @@ __metadata: ethereumjs-util: ^6.1.0 ethers: 5.7.2 lodash: ^4.17.21 - checksum: 167d11cccc1aa10d217d247ff25c4fab4424c4c7c2943a66ac38bd8aee487f6b1df4631ca577cb9284e104db63a7d6eb3ad463009658951f6f9ac8aaceaa0cdd + checksum: f59bf9e30f2871725118de2d4917bf764e005bcf2bebd6e57922bfb404337b22f06c9c66160a39727c9bd14716cdc15c4d84afd8e7a2a2ee41265f4c12184ff3 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-metamask-multichain@npm:1.62.13-gridplus-validation.15": - version: 1.62.13-gridplus-validation.15 - resolution: "@shapeshiftoss/hdwallet-metamask-multichain@npm:1.62.13-gridplus-validation.15" +"@shapeshiftoss/hdwallet-metamask-multichain@npm:1.62.13-gridplus-validation.16": + version: 1.62.13-gridplus-validation.16 + resolution: "@shapeshiftoss/hdwallet-metamask-multichain@npm:1.62.13-gridplus-validation.16" dependencies: "@metamask/detect-provider": ^1.2.0 "@metamask/onboarding": ^1.0.1 "@shapeshiftoss/common-api": ^9.3.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.15 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.16 "@shapeshiftoss/metamask-snaps-adapter": ^1.0.12 "@shapeshiftoss/metamask-snaps-types": ^1.0.12 eth-rpc-errors: ^4.0.3 lodash: ^4.17.21 mipd: ^0.0.7 - checksum: 169e31b97874e139950feeeb25b2c075154812783dee19511c3c836105ac95544ec502fa5de8b1a51a9c10753f6f6cf2ca048f4c2f720fedd80ef14d2d093820 + checksum: 6ccd88ce376a4d0e423fdaf41ebcf5ef5d27f7344661ebc961c7bd2aaba71a9ea35fd4f9f2b005b78c67a6c477d7346ae136beb399e341b16ace27fa8871f9ee languageName: node linkType: hard -"@shapeshiftoss/hdwallet-native-vault@npm:1.62.13-gridplus-validation.15": - version: 1.62.13-gridplus-validation.15 - resolution: "@shapeshiftoss/hdwallet-native-vault@npm:1.62.13-gridplus-validation.15" +"@shapeshiftoss/hdwallet-native-vault@npm:1.62.13-gridplus-validation.16": + version: 1.62.13-gridplus-validation.16 + resolution: "@shapeshiftoss/hdwallet-native-vault@npm:1.62.13-gridplus-validation.16" dependencies: "@bitcoinerlab/secp256k1": ^1.1.1 - "@shapeshiftoss/hdwallet-native": ^1.62.13-gridplus-validation.15 + "@shapeshiftoss/hdwallet-native": ^1.62.13-gridplus-validation.16 bip39: ^3.0.4 hash-wasm: ^4.11.0 idb-keyval: ^6.0.3 @@ -11060,18 +11060,18 @@ __metadata: p-lazy: ^3.1.0 type-assertions: ^1.1.0 uuid: ^8.3.2 - checksum: f014cce72af2f93047e31a9facc96b5d7d60c80b7c0ef08006996ce1cd2803fbe8ddb9ef1bf39dfd4ef16973f0a45ae56b866eba69b02bfbb0265961d87cefa0 + checksum: e3e7e98755730409329441d96c585c775b2e577fedc3f0a7e51aaabc7155393586dad24576d198a97df5b80410ffb9e86486984fe47821fff166beecb329664f languageName: node linkType: hard -"@shapeshiftoss/hdwallet-native@npm:1.62.13-gridplus-validation.15, @shapeshiftoss/hdwallet-native@npm:^1.62.13-gridplus-validation.15": - version: 1.62.13-gridplus-validation.15 - resolution: "@shapeshiftoss/hdwallet-native@npm:1.62.13-gridplus-validation.15" +"@shapeshiftoss/hdwallet-native@npm:1.62.13-gridplus-validation.16, @shapeshiftoss/hdwallet-native@npm:^1.62.13-gridplus-validation.16": + version: 1.62.13-gridplus-validation.16 + resolution: "@shapeshiftoss/hdwallet-native@npm:1.62.13-gridplus-validation.16" dependencies: "@bitcoinerlab/secp256k1": ^1.1.1 "@noble/curves": ^1.4.0 "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.15 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.16 "@shapeshiftoss/proto-tx-builder": 0.10.0 "@zxing/text-encoding": ^0.9.0 bchaddrjs: ^0.4.9 @@ -11092,7 +11092,7 @@ __metadata: p-lazy: ^3.1.0 scrypt-js: ^3.0.1 tendermint-tx-builder: 1.0.16 - checksum: 620d5d2f17c7c62804d0019b168018dc1ea63a80e8a3644ac44ab90bc39029f6b31eab5f17ef2183fddaa6ed867bf62c7ef076d94c47eb4235db83c93f1eaadf + checksum: d98acf05e4e522ea2c64b3df5474fcee2d8da73e1e0c357a2b4622f336a8a817c5f6a3603dd4cb249ea5cfca0316666f8116751495289cee2f4e8be523176085 languageName: node linkType: hard @@ -11129,83 +11129,83 @@ __metadata: languageName: node linkType: hard -"@shapeshiftoss/hdwallet-phantom@npm:1.62.13-gridplus-validation.15": - version: 1.62.13-gridplus-validation.15 - resolution: "@shapeshiftoss/hdwallet-phantom@npm:1.62.13-gridplus-validation.15" +"@shapeshiftoss/hdwallet-phantom@npm:1.62.13-gridplus-validation.16": + version: 1.62.13-gridplus-validation.16 + resolution: "@shapeshiftoss/hdwallet-phantom@npm:1.62.13-gridplus-validation.16" dependencies: "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.15 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.16 "@solana/web3.js": 1.95.8 base64-js: ^1.5.1 bitcoinjs-message: ^2.0.0 ethers: 5.7.2 lodash: ^4.17.21 - checksum: 6471ae61cd7adfd4becfc6cab05b6f7748b50e4bdfb511747df8fabb64d37e0bca10d8f041fd02b4ec22ef061569c58253135361280cf708e737740f88437da6 + checksum: 64c47ca284c09ea98d5d6ef501abe398cc75be3a04bcc9e5a5463970ec71925c305b14d1b4af942b0bbc3f2e4ddd1769852aac66994a662fb2258c77743d2887 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-trezor-connect@npm:1.62.13-gridplus-validation.15": - version: 1.62.13-gridplus-validation.15 - resolution: "@shapeshiftoss/hdwallet-trezor-connect@npm:1.62.13-gridplus-validation.15" +"@shapeshiftoss/hdwallet-trezor-connect@npm:1.62.13-gridplus-validation.16": + version: 1.62.13-gridplus-validation.16 + resolution: "@shapeshiftoss/hdwallet-trezor-connect@npm:1.62.13-gridplus-validation.16" dependencies: - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.15 - "@shapeshiftoss/hdwallet-trezor": ^1.62.13-gridplus-validation.15 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.16 + "@shapeshiftoss/hdwallet-trezor": ^1.62.13-gridplus-validation.16 "@trezor/connect-web": ^9.6.4 - checksum: e5e5e01d3accbb6181a4dd70cb12520d1b33250c745f4e4996b9afa23fb18b7320428057741ba48ccebd72ce1201e40aaaeeaa8916c8016c4a851c50f942401f + checksum: 0b8f4d84c4adaddfdb903620a9e814a98068f8e8a729045dcd947470eec195a410ebe08ca3e014e01a9786c0309cd1d7fad7913a708d275b131b0b3aa2643228 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-trezor@npm:1.62.13-gridplus-validation.15, @shapeshiftoss/hdwallet-trezor@npm:^1.62.13-gridplus-validation.15": - version: 1.62.13-gridplus-validation.15 - resolution: "@shapeshiftoss/hdwallet-trezor@npm:1.62.13-gridplus-validation.15" +"@shapeshiftoss/hdwallet-trezor@npm:1.62.13-gridplus-validation.16, @shapeshiftoss/hdwallet-trezor@npm:^1.62.13-gridplus-validation.16": + version: 1.62.13-gridplus-validation.16 + resolution: "@shapeshiftoss/hdwallet-trezor@npm:1.62.13-gridplus-validation.16" dependencies: "@ethereumjs/common": 3.2.0 "@ethereumjs/tx": 4.2.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.15 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.16 base64-js: ^1.5.1 lodash: ^4.17.21 - checksum: b6f2c8fcae7934e48addf7aa8f9ac8d40002ce937d2d3b6a5648cae632214a5255d4fa60dfafba3677d3bdb0f48ff5bb77b269f34b116dbddba1789fc538a936 + checksum: a6e23ed55beadf44e17158e5e0516972b168f847b07a5343b688a5f2cc70210bf20bc368bcd1ba02a8e12dfa33b56af2dfd347451732badde4fa03b084aa988e languageName: node linkType: hard -"@shapeshiftoss/hdwallet-vultisig@npm:1.62.13-gridplus-validation.15": - version: 1.62.13-gridplus-validation.15 - resolution: "@shapeshiftoss/hdwallet-vultisig@npm:1.62.13-gridplus-validation.15" +"@shapeshiftoss/hdwallet-vultisig@npm:1.62.13-gridplus-validation.16": + version: 1.62.13-gridplus-validation.16 + resolution: "@shapeshiftoss/hdwallet-vultisig@npm:1.62.13-gridplus-validation.16" dependencies: "@cosmjs/amino": ^0.28.13 "@cosmjs/stargate": ^0.28.13 "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.15 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.16 "@solana/web3.js": 1.95.8 base64-js: ^1.5.1 bitcoinjs-message: ^2.0.0 ethers: 5.7.2 lodash: ^4.17.21 - checksum: d990b3bf145b8f7c2f1ea5f9386d5b1bc1bac24ad1b7c481692834a7829d2a2e99e9075a2814563066417ccd2bf991a2ddb38043b184ef4ced20a40da52f172c + checksum: d3f1c3f217c3fabee3fa1d0d5807abe8ee61c3a93c8a5652974ece7dfcf9f7da0df7fb2126a94a8855fa714aa44f45675de30b8ce9fe21eb05263e4a92bbdc33 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-walletconnect@npm:1.62.13-gridplus-validation.15": - version: 1.62.13-gridplus-validation.15 - resolution: "@shapeshiftoss/hdwallet-walletconnect@npm:1.62.13-gridplus-validation.15" +"@shapeshiftoss/hdwallet-walletconnect@npm:1.62.13-gridplus-validation.16": + version: 1.62.13-gridplus-validation.16 + resolution: "@shapeshiftoss/hdwallet-walletconnect@npm:1.62.13-gridplus-validation.16" dependencies: - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.15 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.16 "@walletconnect/qrcode-modal": ^1.7.8 "@walletconnect/web3-provider": ^1.7.8 ethers: ^5.6.5 - checksum: b3f8a355d7a3ac14f554baa2d699401a9636a9a1b8b08c8447d52c90d511537cc7e689d91d1119fd6c573fe1e9a75a7b249b4eb9988d4cf14294b107b019e0cc + checksum: 754647fac8567db9520566438fb8d5a5a0a743d1a2e2c6cb1fea7cf28faf42ddacb41e73445ff8068249f81b2e2c4a2fdd00d9117f79fb55e3c89ab951e0b203 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-walletconnectv2@npm:1.62.13-gridplus-validation.15": - version: 1.62.13-gridplus-validation.15 - resolution: "@shapeshiftoss/hdwallet-walletconnectv2@npm:1.62.13-gridplus-validation.15" +"@shapeshiftoss/hdwallet-walletconnectv2@npm:1.62.13-gridplus-validation.16": + version: 1.62.13-gridplus-validation.16 + resolution: "@shapeshiftoss/hdwallet-walletconnectv2@npm:1.62.13-gridplus-validation.16" dependencies: - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.15 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.16 "@walletconnect/ethereum-provider": ^2.20.2 "@walletconnect/modal": ^2.6.2 ethers: ^5.6.5 - checksum: 93831e2f7475f04ca78e2d402aff1952626ac96df6c7664965e7059db8a8624635da69a72274e693401bea441adc44fd65a5d370056f4c476ff3662f0a5524b9 + checksum: d11245b2f39b79fee69411e9b10bda6206ee917e71dd6445cde0d432c674a8a5d31bbee1e1859276833af7992ac596a3ba88144539c1503430e607cfc1763e25 languageName: node linkType: hard @@ -11425,24 +11425,24 @@ __metadata: "@shapeshiftoss/chain-adapters": "workspace:^" "@shapeshiftoss/contracts": "workspace:^" "@shapeshiftoss/errors": "workspace:^" - "@shapeshiftoss/hdwallet-coinbase": 1.62.13-gridplus-validation.15 - "@shapeshiftoss/hdwallet-core": 1.62.13-gridplus-validation.15 - "@shapeshiftoss/hdwallet-gridplus": 1.62.13-gridplus-validation.15 - "@shapeshiftoss/hdwallet-keepkey": 1.62.13-gridplus-validation.15 - "@shapeshiftoss/hdwallet-keepkey-webusb": 1.62.13-gridplus-validation.15 - "@shapeshiftoss/hdwallet-keplr": 1.62.13-gridplus-validation.15 - "@shapeshiftoss/hdwallet-ledger": 1.62.13-gridplus-validation.15 - "@shapeshiftoss/hdwallet-ledger-webhid": 1.62.13-gridplus-validation.15 - "@shapeshiftoss/hdwallet-ledger-webusb": 1.62.13-gridplus-validation.15 - "@shapeshiftoss/hdwallet-metamask-multichain": 1.62.13-gridplus-validation.15 - "@shapeshiftoss/hdwallet-native": 1.62.13-gridplus-validation.15 - "@shapeshiftoss/hdwallet-native-vault": 1.62.13-gridplus-validation.15 - "@shapeshiftoss/hdwallet-phantom": 1.62.13-gridplus-validation.15 - "@shapeshiftoss/hdwallet-trezor": 1.62.13-gridplus-validation.15 - "@shapeshiftoss/hdwallet-trezor-connect": 1.62.13-gridplus-validation.15 - "@shapeshiftoss/hdwallet-vultisig": 1.62.13-gridplus-validation.15 - "@shapeshiftoss/hdwallet-walletconnect": 1.62.13-gridplus-validation.15 - "@shapeshiftoss/hdwallet-walletconnectv2": 1.62.13-gridplus-validation.15 + "@shapeshiftoss/hdwallet-coinbase": 1.62.13-gridplus-validation.16 + "@shapeshiftoss/hdwallet-core": 1.62.13-gridplus-validation.16 + "@shapeshiftoss/hdwallet-gridplus": 1.62.13-gridplus-validation.16 + "@shapeshiftoss/hdwallet-keepkey": 1.62.13-gridplus-validation.16 + "@shapeshiftoss/hdwallet-keepkey-webusb": 1.62.13-gridplus-validation.16 + "@shapeshiftoss/hdwallet-keplr": 1.62.13-gridplus-validation.16 + "@shapeshiftoss/hdwallet-ledger": 1.62.13-gridplus-validation.16 + "@shapeshiftoss/hdwallet-ledger-webhid": 1.62.13-gridplus-validation.16 + "@shapeshiftoss/hdwallet-ledger-webusb": 1.62.13-gridplus-validation.16 + "@shapeshiftoss/hdwallet-metamask-multichain": 1.62.13-gridplus-validation.16 + "@shapeshiftoss/hdwallet-native": 1.62.13-gridplus-validation.16 + "@shapeshiftoss/hdwallet-native-vault": 1.62.13-gridplus-validation.16 + "@shapeshiftoss/hdwallet-phantom": 1.62.13-gridplus-validation.16 + "@shapeshiftoss/hdwallet-trezor": 1.62.13-gridplus-validation.16 + "@shapeshiftoss/hdwallet-trezor-connect": 1.62.13-gridplus-validation.16 + "@shapeshiftoss/hdwallet-vultisig": 1.62.13-gridplus-validation.16 + "@shapeshiftoss/hdwallet-walletconnect": 1.62.13-gridplus-validation.16 + "@shapeshiftoss/hdwallet-walletconnectv2": 1.62.13-gridplus-validation.16 "@shapeshiftoss/swapper": "workspace:^" "@shapeshiftoss/types": "workspace:^" "@shapeshiftoss/unchained-client": "workspace:^" From 9238b52c1245f2cf4dbc84b2dbca0a6a9484caef Mon Sep 17 00:00:00 2001 From: gomes <17035424+gomesalexandre@users.noreply.github.com> Date: Wed, 26 Nov 2025 22:29:53 +0100 Subject: [PATCH 16/26] chore: cleanup - remove comments and console.errors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Use early return in updateSafeCardWalletUid - Remove AI-generated comments - Remove console.error statements - Remove implied Promise return type - Refactor let to const with IIFE in finalizeWalletSetup 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .../GridPlus/components/GridPlusMenu.tsx | 4 ---- .../GridPlus/hooks/useGridPlusConnection.ts | 2 -- src/context/WalletProvider/GridPlus/utils.ts | 19 ++++++++----------- src/context/WalletProvider/WalletProvider.tsx | 7 ------- .../slices/gridplusSlice/gridplusSlice.ts | 7 +++---- 5 files changed, 11 insertions(+), 28 deletions(-) diff --git a/src/context/WalletProvider/GridPlus/components/GridPlusMenu.tsx b/src/context/WalletProvider/GridPlus/components/GridPlusMenu.tsx index 325dd121525..1d6bb10f87d 100644 --- a/src/context/WalletProvider/GridPlus/components/GridPlusMenu.tsx +++ b/src/context/WalletProvider/GridPlus/components/GridPlusMenu.tsx @@ -18,16 +18,12 @@ export const GridPlusMenu = ({ onClose }: GridPlusMenuProps) => { const { dispatch } = useWallet() const handleSwitchSafeCard = useCallback(() => { - // Disconnect current wallet dispatch({ type: WalletActions.RESET_STATE }) - - // Open wallet modal to GridPlus connect screen dispatch({ type: WalletActions.SET_INITIAL_ROUTE, payload: '/gridplus/connect', }) dispatch({ type: WalletActions.SET_WALLET_MODAL, payload: true }) - onClose?.() }, [dispatch, onClose]) diff --git a/src/context/WalletProvider/GridPlus/hooks/useGridPlusConnection.ts b/src/context/WalletProvider/GridPlus/hooks/useGridPlusConnection.ts index 8b6a06d958e..21fbfd2ad9d 100644 --- a/src/context/WalletProvider/GridPlus/hooks/useGridPlusConnection.ts +++ b/src/context/WalletProvider/GridPlus/hooks/useGridPlusConnection.ts @@ -132,7 +132,6 @@ export const useGridPlusConnection = () => { setError(null) try { - // Get the SafeCard details to check for activeWalletId const safeCard = safeCards.find(card => card.id === id) const expectedWalletUid = safeCard?.activeWalletId @@ -156,7 +155,6 @@ export const useGridPlusConnection = () => { return } - // Only set active AFTER successful validation appDispatch(gridplusSlice.actions.setActiveSafeCard(id)) finalizeWalletSetup({ diff --git a/src/context/WalletProvider/GridPlus/utils.ts b/src/context/WalletProvider/GridPlus/utils.ts index b2483f19a07..a83a29fcd9b 100644 --- a/src/context/WalletProvider/GridPlus/utils.ts +++ b/src/context/WalletProvider/GridPlus/utils.ts @@ -87,24 +87,22 @@ export const finalizeWalletSetup = async ({ appDispatch, activeWalletId, type, -}: FinalizeWalletSetupParams): Promise => { +}: FinalizeWalletSetupParams) => { const safeCardUuid = safeCardWalletId.replace('gridplus:', '') - // If activeWalletId is missing, fetch it from the wallet - let finalWalletUid = activeWalletId - let finalType = type + const { finalWalletUid, finalType } = await (async () => { + if (activeWalletId !== undefined && type !== undefined) { + return { finalWalletUid: activeWalletId, finalType: type } + } - if (finalWalletUid === undefined || finalType === undefined) { try { const validation = await wallet.validateActiveWallet() - finalWalletUid = validation.activeWalletId - finalType = validation.type + return { finalWalletUid: validation.activeWalletId, finalType: validation.type } } catch (error) { - // Silently fail - validation not critical for setup + return { finalWalletUid: activeWalletId, finalType: type } } - } + })() - // Set expected wallet UID and type for JIT validation before signing if (finalWalletUid && wallet.setExpectedActiveWalletId) { wallet.setExpectedActiveWalletId(finalWalletUid, finalType) } @@ -133,7 +131,6 @@ export const finalizeWalletSetup = async ({ appDispatch(gridplusSlice.actions.setLastConnectedAt(safeCardUuid)) - // Always update the SafeCard's activeWalletId if we have it if (finalWalletUid !== undefined && finalType !== undefined) { appDispatch( gridplusSlice.actions.updateSafeCardWalletUid({ diff --git a/src/context/WalletProvider/WalletProvider.tsx b/src/context/WalletProvider/WalletProvider.tsx index 1191e67047e..ce680bb33aa 100644 --- a/src/context/WalletProvider/WalletProvider.tsx +++ b/src/context/WalletProvider/WalletProvider.tsx @@ -829,26 +829,20 @@ export const WalletProvider = ({ children }: { children: React.ReactNode }): JSX if (gridPlusWallet) { const { name, icon } = SUPPORTED_WALLETS[KeyManager.GridPlus] try { - // Validate that the correct SafeCard is inserted before connecting const safeCardUuid = localWalletDeviceId.replace('gridplus:', '') const gridPlusState = store.getState().gridplus const safeCard = gridPlusState.safecards.byId[safeCardUuid] if (!safeCard?.activeWalletId) { - console.error( - '[WalletProvider] SafeCard missing activeWalletId - clear cache required', - ) disconnect() dispatch({ type: WalletActions.SET_LOCAL_WALLET_LOADING, payload: false }) break } - // Validate that the inserted card matches the expected activeWalletId (throws on mismatch) await (gridPlusWallet as GridPlusHDWallet).validateActiveWallet( safeCard.activeWalletId, ) - // Set expected wallet UID and type for JIT validation before signing if ((gridPlusWallet as GridPlusHDWallet).setExpectedActiveWalletId) { ;(gridPlusWallet as GridPlusHDWallet).setExpectedActiveWalletId( safeCard.activeWalletId, @@ -871,7 +865,6 @@ export const WalletProvider = ({ children }: { children: React.ReactNode }): JSX payload: true, }) } catch (e) { - console.error('[WalletProvider] GridPlus reconnection validation failed:', e) disconnect() } } else { diff --git a/src/state/slices/gridplusSlice/gridplusSlice.ts b/src/state/slices/gridplusSlice/gridplusSlice.ts index eb0089be967..54800d751ab 100644 --- a/src/state/slices/gridplusSlice/gridplusSlice.ts +++ b/src/state/slices/gridplusSlice/gridplusSlice.ts @@ -101,10 +101,9 @@ export const gridplusSlice = createSlice({ type: 'external' | 'internal' }>, ) => { - if (state.safecards.byId[action.payload.id]) { - state.safecards.byId[action.payload.id].activeWalletId = action.payload.activeWalletId - state.safecards.byId[action.payload.id].type = action.payload.type - } + if (!state.safecards.byId[action.payload.id]) return + state.safecards.byId[action.payload.id].activeWalletId = action.payload.activeWalletId + state.safecards.byId[action.payload.id].type = action.payload.type }, ), From a385cfb6e1a616c7638bc31c33cc1630e23624eb Mon Sep 17 00:00:00 2001 From: gomes <17035424+gomesalexandre@users.noreply.github.com> Date: Wed, 26 Nov 2025 23:38:19 +0100 Subject: [PATCH 17/26] [skip ci] refactor: remove password argument from connectDevice call --- src/context/WalletProvider/GridPlus/utils.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/context/WalletProvider/GridPlus/utils.ts b/src/context/WalletProvider/GridPlus/utils.ts index a83a29fcd9b..8650c255558 100644 --- a/src/context/WalletProvider/GridPlus/utils.ts +++ b/src/context/WalletProvider/GridPlus/utils.ts @@ -30,7 +30,6 @@ export const connectAndPairDevice = async ({ }: ConnectAndPairDeviceParams): Promise => { const wallet = await adapter.connectDevice( deviceId, - undefined, expectedActiveWalletId, expectedType, ) From c3400c1a1b5783a91d1c728aff17a39acac7d7f1 Mon Sep 17 00:00:00 2001 From: gomes <17035424+gomesalexandre@users.noreply.github.com> Date: Wed, 26 Nov 2025 23:57:31 +0100 Subject: [PATCH 18/26] [skip ci] chore: move hardcoded text to translations and cleanup --- package.json | 36 +-- src/assets/translations/en/main.json | 4 +- .../GridPlus/components/SafeCardRow.tsx | 4 +- src/context/WalletProvider/GridPlus/utils.ts | 6 +- src/context/WalletProvider/WalletProvider.tsx | 10 +- .../slices/gridplusSlice/gridplusSlice.ts | 1 + yarn.lock | 222 +++++++++--------- 7 files changed, 141 insertions(+), 142 deletions(-) diff --git a/package.json b/package.json index e23a3ca642f..ba7474def76 100644 --- a/package.json +++ b/package.json @@ -100,24 +100,24 @@ "@shapeshiftoss/chain-adapters": "workspace:^", "@shapeshiftoss/contracts": "workspace:^", "@shapeshiftoss/errors": "workspace:^", - "@shapeshiftoss/hdwallet-coinbase": "1.62.13-gridplus-validation.16", - "@shapeshiftoss/hdwallet-core": "1.62.13-gridplus-validation.16", - "@shapeshiftoss/hdwallet-gridplus": "1.62.13-gridplus-validation.16", - "@shapeshiftoss/hdwallet-keepkey": "1.62.13-gridplus-validation.16", - "@shapeshiftoss/hdwallet-keepkey-webusb": "1.62.13-gridplus-validation.16", - "@shapeshiftoss/hdwallet-keplr": "1.62.13-gridplus-validation.16", - "@shapeshiftoss/hdwallet-ledger": "1.62.13-gridplus-validation.16", - "@shapeshiftoss/hdwallet-ledger-webhid": "1.62.13-gridplus-validation.16", - "@shapeshiftoss/hdwallet-ledger-webusb": "1.62.13-gridplus-validation.16", - "@shapeshiftoss/hdwallet-metamask-multichain": "1.62.13-gridplus-validation.16", - "@shapeshiftoss/hdwallet-native": "1.62.13-gridplus-validation.16", - "@shapeshiftoss/hdwallet-native-vault": "1.62.13-gridplus-validation.16", - "@shapeshiftoss/hdwallet-phantom": "1.62.13-gridplus-validation.16", - "@shapeshiftoss/hdwallet-trezor": "1.62.13-gridplus-validation.16", - "@shapeshiftoss/hdwallet-trezor-connect": "1.62.13-gridplus-validation.16", - "@shapeshiftoss/hdwallet-vultisig": "1.62.13-gridplus-validation.16", - "@shapeshiftoss/hdwallet-walletconnect": "1.62.13-gridplus-validation.16", - "@shapeshiftoss/hdwallet-walletconnectv2": "1.62.13-gridplus-validation.16", + "@shapeshiftoss/hdwallet-coinbase": "1.62.13-gridplus-validation.17", + "@shapeshiftoss/hdwallet-core": "1.62.13-gridplus-validation.17", + "@shapeshiftoss/hdwallet-gridplus": "1.62.13-gridplus-validation.17", + "@shapeshiftoss/hdwallet-keepkey": "1.62.13-gridplus-validation.17", + "@shapeshiftoss/hdwallet-keepkey-webusb": "1.62.13-gridplus-validation.17", + "@shapeshiftoss/hdwallet-keplr": "1.62.13-gridplus-validation.17", + "@shapeshiftoss/hdwallet-ledger": "1.62.13-gridplus-validation.17", + "@shapeshiftoss/hdwallet-ledger-webhid": "1.62.13-gridplus-validation.17", + "@shapeshiftoss/hdwallet-ledger-webusb": "1.62.13-gridplus-validation.17", + "@shapeshiftoss/hdwallet-metamask-multichain": "1.62.13-gridplus-validation.17", + "@shapeshiftoss/hdwallet-native": "1.62.13-gridplus-validation.17", + "@shapeshiftoss/hdwallet-native-vault": "1.62.13-gridplus-validation.17", + "@shapeshiftoss/hdwallet-phantom": "1.62.13-gridplus-validation.17", + "@shapeshiftoss/hdwallet-trezor": "1.62.13-gridplus-validation.17", + "@shapeshiftoss/hdwallet-trezor-connect": "1.62.13-gridplus-validation.17", + "@shapeshiftoss/hdwallet-vultisig": "1.62.13-gridplus-validation.17", + "@shapeshiftoss/hdwallet-walletconnect": "1.62.13-gridplus-validation.17", + "@shapeshiftoss/hdwallet-walletconnectv2": "1.62.13-gridplus-validation.17", "@shapeshiftoss/swapper": "workspace:^", "@shapeshiftoss/types": "workspace:^", "@shapeshiftoss/unchained-client": "workspace:^", diff --git a/src/assets/translations/en/main.json b/src/assets/translations/en/main.json index 3227b3c3fe3..fa4238ac241 100644 --- a/src/assets/translations/en/main.json +++ b/src/assets/translations/en/main.json @@ -1429,7 +1429,9 @@ "renamed": "SafeCard renamed", "deleted": "SafeCard deleted", "deletedDescription": "Portfolio data has been cleared", - "warning": "Each SafeCard maintains its own portfolio. Make sure to insert the correct SafeCard in your device before connecting." + "warning": "Each SafeCard maintains its own portfolio. Make sure to insert the correct SafeCard in your device before connecting.", + "safeCardLabel": "SafeCard", + "internalSafeCardLabel": "Internal SafeCard" }, "connect": { "header": "Connect New SafeCard", diff --git a/src/context/WalletProvider/GridPlus/components/SafeCardRow.tsx b/src/context/WalletProvider/GridPlus/components/SafeCardRow.tsx index 20487cf2988..a67efcf7512 100644 --- a/src/context/WalletProvider/GridPlus/components/SafeCardRow.tsx +++ b/src/context/WalletProvider/GridPlus/components/SafeCardRow.tsx @@ -82,7 +82,9 @@ export const SafeCardRow = memo( {safeCard.name} {safeCard.type && ( - {safeCard.type === 'internal' ? 'Internal SafeCard' : 'SafeCard'} + {safeCard.type === 'internal' + ? translate('walletProvider.gridplus.list.internalSafeCardLabel') + : translate('walletProvider.gridplus.list.safeCardLabel')} )} diff --git a/src/context/WalletProvider/GridPlus/utils.ts b/src/context/WalletProvider/GridPlus/utils.ts index 8650c255558..45ed36d8918 100644 --- a/src/context/WalletProvider/GridPlus/utils.ts +++ b/src/context/WalletProvider/GridPlus/utils.ts @@ -28,11 +28,7 @@ export const connectAndPairDevice = async ({ expectedType, dispatch, }: ConnectAndPairDeviceParams): Promise => { - const wallet = await adapter.connectDevice( - deviceId, - expectedActiveWalletId, - expectedType, - ) + const wallet = await adapter.connectDevice(deviceId, expectedActiveWalletId, expectedType) if (!wallet) { return null diff --git a/src/context/WalletProvider/WalletProvider.tsx b/src/context/WalletProvider/WalletProvider.tsx index ce680bb33aa..37e092e04c0 100644 --- a/src/context/WalletProvider/WalletProvider.tsx +++ b/src/context/WalletProvider/WalletProvider.tsx @@ -843,12 +843,10 @@ export const WalletProvider = ({ children }: { children: React.ReactNode }): JSX safeCard.activeWalletId, ) - if ((gridPlusWallet as GridPlusHDWallet).setExpectedActiveWalletId) { - ;(gridPlusWallet as GridPlusHDWallet).setExpectedActiveWalletId( - safeCard.activeWalletId, - safeCard.type, - ) - } + (gridPlusWallet as GridPlusHDWallet).setExpectedActiveWalletId( + safeCard.activeWalletId, + safeCard.type, + ) dispatch({ type: WalletActions.SET_WALLET, diff --git a/src/state/slices/gridplusSlice/gridplusSlice.ts b/src/state/slices/gridplusSlice/gridplusSlice.ts index 54800d751ab..f30a8a59cfc 100644 --- a/src/state/slices/gridplusSlice/gridplusSlice.ts +++ b/src/state/slices/gridplusSlice/gridplusSlice.ts @@ -102,6 +102,7 @@ export const gridplusSlice = createSlice({ }>, ) => { if (!state.safecards.byId[action.payload.id]) return + state.safecards.byId[action.payload.id].activeWalletId = action.payload.activeWalletId state.safecards.byId[action.payload.id].type = action.payload.type }, diff --git a/yarn.lock b/yarn.lock index 03343ab7701..c5f76342fc2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10827,15 +10827,15 @@ __metadata: languageName: node linkType: hard -"@shapeshiftoss/hdwallet-coinbase@npm:1.62.13-gridplus-validation.16": - version: 1.62.13-gridplus-validation.16 - resolution: "@shapeshiftoss/hdwallet-coinbase@npm:1.62.13-gridplus-validation.16" +"@shapeshiftoss/hdwallet-coinbase@npm:1.62.13-gridplus-validation.17": + version: 1.62.13-gridplus-validation.17 + resolution: "@shapeshiftoss/hdwallet-coinbase@npm:1.62.13-gridplus-validation.17" dependencies: "@coinbase/wallet-sdk": ^3.6.6 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.16 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.17 eth-rpc-errors: ^4.0.3 lodash: ^4.17.21 - checksum: 05a4816b2e6870c8170c92953caa3b01c38b5c401c18542c4f2bc16bf1fc3a9e780b291f430e5d809314dabcf1afd5e45bbfa1969865b927eae011b5cdf74b5c + checksum: b76cab5d03ecd0a7433264bcf1fd0aaa1b04d765ee1e7679fe92c1b8d0e7b21899d38494bdfecfaeb639e1e8477ce0137befc8f15dfe9e199b6ff681adb4d0eb languageName: node linkType: hard @@ -10868,9 +10868,9 @@ __metadata: languageName: node linkType: hard -"@shapeshiftoss/hdwallet-core@npm:1.62.13-gridplus-validation.16, @shapeshiftoss/hdwallet-core@npm:^1.62.13-gridplus-validation.16": - version: 1.62.13-gridplus-validation.16 - resolution: "@shapeshiftoss/hdwallet-core@npm:1.62.13-gridplus-validation.16" +"@shapeshiftoss/hdwallet-core@npm:1.62.13-gridplus-validation.17, @shapeshiftoss/hdwallet-core@npm:^1.62.13-gridplus-validation.17": + version: 1.62.13-gridplus-validation.17 + resolution: "@shapeshiftoss/hdwallet-core@npm:1.62.13-gridplus-validation.17" dependencies: "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 "@shapeshiftoss/proto-tx-builder": 0.10.0 @@ -10881,7 +10881,7 @@ __metadata: lodash: ^4.17.21 rxjs: ^6.4.0 type-assertions: ^1.1.0 - checksum: 0ec39c49a40837f93bd23608514a30aae066b77bd6dffa38078f7d6bd64ee3c33aa6f489af3bb47921b3e9101e8479a8f7395dcdb8ec82b4ed3ac4907def822a + checksum: 0697d3330d83d1bede271a7813503edcd06ec9b8cf57eb9ec42a6a1d3252d44688ca58f624d307859374b64260201b7cbe8d8ecc81c96872905d0d8331e9535e languageName: node linkType: hard @@ -10899,38 +10899,38 @@ __metadata: languageName: node linkType: hard -"@shapeshiftoss/hdwallet-gridplus@npm:1.62.13-gridplus-validation.16": - version: 1.62.13-gridplus-validation.16 - resolution: "@shapeshiftoss/hdwallet-gridplus@npm:1.62.13-gridplus-validation.16" +"@shapeshiftoss/hdwallet-gridplus@npm:1.62.13-gridplus-validation.17": + version: 1.62.13-gridplus-validation.17 + resolution: "@shapeshiftoss/hdwallet-gridplus@npm:1.62.13-gridplus-validation.17" dependencies: "@bitcoinerlab/secp256k1": ^1.1.1 "@ethereumjs/common": 4.4.0 "@ethereumjs/rlp": 5.0.2 "@ethereumjs/tx": 5.4.0 "@metamask/eth-sig-util": ^7.0.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.16 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.17 bech32: ^1.1.4 bs58: ^5.0.0 crypto-js: ^4.2.0 gridplus-sdk: ^3.2.0 lodash: ^4.17.21 - checksum: fa13da8c1afe8f5d761dbd1d1feb126d5e05ebfae7e2754e098cf83e83b2b33c6b9f0676af4fa0282b75e47031fda8b146c9aee296c31ec9656e9805e6d071b6 + checksum: 0f4a5535738be4460581829116c048881229297a730ea3e73403eb28c9ce2b5ac32dd63a4c64aea5bea36b9cf0abcde1c4c3ac082b6de013e2e95e8681d3d6e0 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-keepkey-webusb@npm:1.62.13-gridplus-validation.16": - version: 1.62.13-gridplus-validation.16 - resolution: "@shapeshiftoss/hdwallet-keepkey-webusb@npm:1.62.13-gridplus-validation.16" +"@shapeshiftoss/hdwallet-keepkey-webusb@npm:1.62.13-gridplus-validation.17": + version: 1.62.13-gridplus-validation.17 + resolution: "@shapeshiftoss/hdwallet-keepkey-webusb@npm:1.62.13-gridplus-validation.17" dependencies: - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.16 - "@shapeshiftoss/hdwallet-keepkey": ^1.62.13-gridplus-validation.16 - checksum: 0fd7f50021eec07acd651f734dde40a0f8bc493e478f1b5061b27e8dd8570a2bebafd6cb6552f2cd53e1380c42aea9056a24193ba198f2fc08bd65aa24526189 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.17 + "@shapeshiftoss/hdwallet-keepkey": ^1.62.13-gridplus-validation.17 + checksum: 5769eefecdb48607e071ff3711458a8ed13f0e8e00c02fccf8a04f4e14f6da9ae21abafee11ce095c452a65d6a263497a0dbf739e9a3894f27b53c738834b26b languageName: node linkType: hard -"@shapeshiftoss/hdwallet-keepkey@npm:1.62.13-gridplus-validation.16, @shapeshiftoss/hdwallet-keepkey@npm:^1.62.13-gridplus-validation.16": - version: 1.62.13-gridplus-validation.16 - resolution: "@shapeshiftoss/hdwallet-keepkey@npm:1.62.13-gridplus-validation.16" +"@shapeshiftoss/hdwallet-keepkey@npm:1.62.13-gridplus-validation.17, @shapeshiftoss/hdwallet-keepkey@npm:^1.62.13-gridplus-validation.17": + version: 1.62.13-gridplus-validation.17 + resolution: "@shapeshiftoss/hdwallet-keepkey@npm:1.62.13-gridplus-validation.17" dependencies: "@bitcoinerlab/secp256k1": ^1.1.1 "@ethereumjs/common": 3.2.0 @@ -10938,7 +10938,7 @@ __metadata: "@keepkey/device-protocol": 7.13.4 "@metamask/eth-sig-util": ^7.0.0 "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.16 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.17 "@shapeshiftoss/proto-tx-builder": 0.10.0 bignumber.js: ^9.0.1 bnb-javascript-sdk-nobroadcast: 2.16.15 @@ -10949,44 +10949,44 @@ __metadata: lodash: ^4.17.21 p-lazy: ^3.1.0 semver: ^7.3.8 - checksum: c37144571abe645843004312902e0e7b483f499582c57bd3610b0408926041d3ceb5d5e8fe14b9c6a1ad904df298d840ceed988f2745fa32d79ae0c70e617692 + checksum: 441d9aef7ac3628ed3d50556fc429cfce73fefe29f15fbbdee69eea6ba556e98d8cdcd48bd6af60f230b2121b732422a4615bbe25a8b9c1df36537ab7cf4fecc languageName: node linkType: hard -"@shapeshiftoss/hdwallet-keplr@npm:1.62.13-gridplus-validation.16": - version: 1.62.13-gridplus-validation.16 - resolution: "@shapeshiftoss/hdwallet-keplr@npm:1.62.13-gridplus-validation.16" +"@shapeshiftoss/hdwallet-keplr@npm:1.62.13-gridplus-validation.17": + version: 1.62.13-gridplus-validation.17 + resolution: "@shapeshiftoss/hdwallet-keplr@npm:1.62.13-gridplus-validation.17" dependencies: "@cosmjs/amino": ^0.28.13 "@cosmjs/stargate": ^0.28.13 "@shapeshiftoss/caip": 8.15.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.16 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.17 "@shapeshiftoss/proto-tx-builder": 0.10.0 "@shapeshiftoss/types": 3.1.3 base64-js: ^1.5.1 lodash: ^4.17.21 - checksum: ae973704a57e582a4254b1142d0927ddf11a90487fab78cb43b2e6a6b6ccc6cfba532d3337562dd7f531b883af6728cde731d584b0269a4f47ef01fb8f8bb8d0 + checksum: 4ea591d2ededf84dc68e593ca4723203c74e3329c2327a8c8fcbab57d088500a00417998cdd5250bef2174f8616847c01390c4eedb2b78c19678d0a1b36165be languageName: node linkType: hard -"@shapeshiftoss/hdwallet-ledger-webhid@npm:1.62.13-gridplus-validation.16": - version: 1.62.13-gridplus-validation.16 - resolution: "@shapeshiftoss/hdwallet-ledger-webhid@npm:1.62.13-gridplus-validation.16" +"@shapeshiftoss/hdwallet-ledger-webhid@npm:1.62.13-gridplus-validation.17": + version: 1.62.13-gridplus-validation.17 + resolution: "@shapeshiftoss/hdwallet-ledger-webhid@npm:1.62.13-gridplus-validation.17" dependencies: "@ledgerhq/hw-app-btc": ^10.10.0 "@ledgerhq/hw-app-eth": ^6.45.13 "@ledgerhq/hw-transport": 6.31.8 "@ledgerhq/hw-transport-webhid": ^6.30.4 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.16 - "@shapeshiftoss/hdwallet-ledger": ^1.62.13-gridplus-validation.16 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.17 + "@shapeshiftoss/hdwallet-ledger": ^1.62.13-gridplus-validation.17 "@types/w3c-web-hid": ^1.0.2 - checksum: 17c5a2866ac905e6424d6e332cd90782a7a70b4dc7bfa703a31327807cc2b13f066da067ca656ef2b6beca2fed5af26a7a4cf7abf00d2a8c1f07491b818c83f4 + checksum: 2970087868cf9eae70cc3948d62e511b6ec6656081d0f25a28dc2e2f2026769c1cd37f2d5a090533e12735cce6e5c88a047de32e0c0882974f866341be59cb64 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-ledger-webusb@npm:1.62.13-gridplus-validation.16": - version: 1.62.13-gridplus-validation.16 - resolution: "@shapeshiftoss/hdwallet-ledger-webusb@npm:1.62.13-gridplus-validation.16" +"@shapeshiftoss/hdwallet-ledger-webusb@npm:1.62.13-gridplus-validation.17": + version: 1.62.13-gridplus-validation.17 + resolution: "@shapeshiftoss/hdwallet-ledger-webusb@npm:1.62.13-gridplus-validation.17" dependencies: "@ledgerhq/hw-app-btc": ^10.10.0 "@ledgerhq/hw-app-cosmos": ^6.32.4 @@ -10994,17 +10994,17 @@ __metadata: "@ledgerhq/hw-app-solana": ^7.5.1 "@ledgerhq/hw-transport": 6.31.8 "@ledgerhq/hw-transport-webusb": 6.29.8 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.16 - "@shapeshiftoss/hdwallet-ledger": ^1.62.13-gridplus-validation.16 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.17 + "@shapeshiftoss/hdwallet-ledger": ^1.62.13-gridplus-validation.17 "@types/w3c-web-usb": ^1.0.4 p-queue: ^7.4.1 - checksum: a105c1d61a59af19c0004e271730d2cf0faddd777cc72821ea5f60ce582c8d077b5a23e9b885561cf1ce7f02dc9f2d730a81dfcdfd91842bf75159de7fb6f837 + checksum: 0fc5a70c311b13a2dd3f0f297095dcfd812875647ec851d1e6e7c2558813dddd8fa87beb4de1a149716c23f1d8ceab4ae8e84b49a3470fad2c8006783440da63 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-ledger@npm:1.62.13-gridplus-validation.16, @shapeshiftoss/hdwallet-ledger@npm:^1.62.13-gridplus-validation.16": - version: 1.62.13-gridplus-validation.16 - resolution: "@shapeshiftoss/hdwallet-ledger@npm:1.62.13-gridplus-validation.16" +"@shapeshiftoss/hdwallet-ledger@npm:1.62.13-gridplus-validation.17, @shapeshiftoss/hdwallet-ledger@npm:^1.62.13-gridplus-validation.17": + version: 1.62.13-gridplus-validation.17 + resolution: "@shapeshiftoss/hdwallet-ledger@npm:1.62.13-gridplus-validation.17" dependencies: "@ethereumjs/common": 3.2.0 "@ethereumjs/tx": 4.2.0 @@ -11016,7 +11016,7 @@ __metadata: "@ledgerhq/hw-transport": 6.31.8 "@ledgerhq/logs": 6.13.0 "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.16 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.17 "@solana/web3.js": 1.95.8 base64-js: ^1.5.1 bchaddrjs: ^0.4.4 @@ -11026,33 +11026,33 @@ __metadata: ethereumjs-util: ^6.1.0 ethers: 5.7.2 lodash: ^4.17.21 - checksum: f59bf9e30f2871725118de2d4917bf764e005bcf2bebd6e57922bfb404337b22f06c9c66160a39727c9bd14716cdc15c4d84afd8e7a2a2ee41265f4c12184ff3 + checksum: 260db87c4d5291e739cc5a26e1a242c21cabad9417a01b5f679df3342ed40136c72d7fff1d01b6eb447eb4742b03635b30ef44a485e7adb2b9d05e73d5176c19 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-metamask-multichain@npm:1.62.13-gridplus-validation.16": - version: 1.62.13-gridplus-validation.16 - resolution: "@shapeshiftoss/hdwallet-metamask-multichain@npm:1.62.13-gridplus-validation.16" +"@shapeshiftoss/hdwallet-metamask-multichain@npm:1.62.13-gridplus-validation.17": + version: 1.62.13-gridplus-validation.17 + resolution: "@shapeshiftoss/hdwallet-metamask-multichain@npm:1.62.13-gridplus-validation.17" dependencies: "@metamask/detect-provider": ^1.2.0 "@metamask/onboarding": ^1.0.1 "@shapeshiftoss/common-api": ^9.3.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.16 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.17 "@shapeshiftoss/metamask-snaps-adapter": ^1.0.12 "@shapeshiftoss/metamask-snaps-types": ^1.0.12 eth-rpc-errors: ^4.0.3 lodash: ^4.17.21 mipd: ^0.0.7 - checksum: 6ccd88ce376a4d0e423fdaf41ebcf5ef5d27f7344661ebc961c7bd2aaba71a9ea35fd4f9f2b005b78c67a6c477d7346ae136beb399e341b16ace27fa8871f9ee + checksum: 560d347067772a078f38fc4067eebe692c67bff694ad21d00bf14af07f5007452330dc2245641b12213d989c3c7de571900276e8e677843002809145a2bd2c80 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-native-vault@npm:1.62.13-gridplus-validation.16": - version: 1.62.13-gridplus-validation.16 - resolution: "@shapeshiftoss/hdwallet-native-vault@npm:1.62.13-gridplus-validation.16" +"@shapeshiftoss/hdwallet-native-vault@npm:1.62.13-gridplus-validation.17": + version: 1.62.13-gridplus-validation.17 + resolution: "@shapeshiftoss/hdwallet-native-vault@npm:1.62.13-gridplus-validation.17" dependencies: "@bitcoinerlab/secp256k1": ^1.1.1 - "@shapeshiftoss/hdwallet-native": ^1.62.13-gridplus-validation.16 + "@shapeshiftoss/hdwallet-native": ^1.62.13-gridplus-validation.17 bip39: ^3.0.4 hash-wasm: ^4.11.0 idb-keyval: ^6.0.3 @@ -11060,18 +11060,18 @@ __metadata: p-lazy: ^3.1.0 type-assertions: ^1.1.0 uuid: ^8.3.2 - checksum: e3e7e98755730409329441d96c585c775b2e577fedc3f0a7e51aaabc7155393586dad24576d198a97df5b80410ffb9e86486984fe47821fff166beecb329664f + checksum: 14fc0ccb04f2181263f8d0571c260d11b5e344c33b3ef488c66cc93e1e525ad02c833e5e3e5c2e0429b7ab5e26f8ebc8a50260cce83ed97d9512c69e3eb8ee45 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-native@npm:1.62.13-gridplus-validation.16, @shapeshiftoss/hdwallet-native@npm:^1.62.13-gridplus-validation.16": - version: 1.62.13-gridplus-validation.16 - resolution: "@shapeshiftoss/hdwallet-native@npm:1.62.13-gridplus-validation.16" +"@shapeshiftoss/hdwallet-native@npm:1.62.13-gridplus-validation.17, @shapeshiftoss/hdwallet-native@npm:^1.62.13-gridplus-validation.17": + version: 1.62.13-gridplus-validation.17 + resolution: "@shapeshiftoss/hdwallet-native@npm:1.62.13-gridplus-validation.17" dependencies: "@bitcoinerlab/secp256k1": ^1.1.1 "@noble/curves": ^1.4.0 "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.16 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.17 "@shapeshiftoss/proto-tx-builder": 0.10.0 "@zxing/text-encoding": ^0.9.0 bchaddrjs: ^0.4.9 @@ -11092,7 +11092,7 @@ __metadata: p-lazy: ^3.1.0 scrypt-js: ^3.0.1 tendermint-tx-builder: 1.0.16 - checksum: d98acf05e4e522ea2c64b3df5474fcee2d8da73e1e0c357a2b4622f336a8a817c5f6a3603dd4cb249ea5cfca0316666f8116751495289cee2f4e8be523176085 + checksum: 86fcde3c2e7ade5af17125d7ab49ed77663600a19224dbb4118e79648185cb9d31fb57ff3d3ea4d9cc546915e4edbf5ebe54c2af96444cea5c0e63e77f639415 languageName: node linkType: hard @@ -11129,83 +11129,83 @@ __metadata: languageName: node linkType: hard -"@shapeshiftoss/hdwallet-phantom@npm:1.62.13-gridplus-validation.16": - version: 1.62.13-gridplus-validation.16 - resolution: "@shapeshiftoss/hdwallet-phantom@npm:1.62.13-gridplus-validation.16" +"@shapeshiftoss/hdwallet-phantom@npm:1.62.13-gridplus-validation.17": + version: 1.62.13-gridplus-validation.17 + resolution: "@shapeshiftoss/hdwallet-phantom@npm:1.62.13-gridplus-validation.17" dependencies: "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.16 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.17 "@solana/web3.js": 1.95.8 base64-js: ^1.5.1 bitcoinjs-message: ^2.0.0 ethers: 5.7.2 lodash: ^4.17.21 - checksum: 64c47ca284c09ea98d5d6ef501abe398cc75be3a04bcc9e5a5463970ec71925c305b14d1b4af942b0bbc3f2e4ddd1769852aac66994a662fb2258c77743d2887 + checksum: 1c07dacaeacdfe123d74105035c2dfb5e14c2c988bb898a7b86f15f8f362eb369d62f3e96900a283ad256df0cb7f154805cfcf8ce8c5e352082abce9846297e5 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-trezor-connect@npm:1.62.13-gridplus-validation.16": - version: 1.62.13-gridplus-validation.16 - resolution: "@shapeshiftoss/hdwallet-trezor-connect@npm:1.62.13-gridplus-validation.16" +"@shapeshiftoss/hdwallet-trezor-connect@npm:1.62.13-gridplus-validation.17": + version: 1.62.13-gridplus-validation.17 + resolution: "@shapeshiftoss/hdwallet-trezor-connect@npm:1.62.13-gridplus-validation.17" dependencies: - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.16 - "@shapeshiftoss/hdwallet-trezor": ^1.62.13-gridplus-validation.16 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.17 + "@shapeshiftoss/hdwallet-trezor": ^1.62.13-gridplus-validation.17 "@trezor/connect-web": ^9.6.4 - checksum: 0b8f4d84c4adaddfdb903620a9e814a98068f8e8a729045dcd947470eec195a410ebe08ca3e014e01a9786c0309cd1d7fad7913a708d275b131b0b3aa2643228 + checksum: 3f80d02a33ed9d3bcdf692c9328c4fb90b35f7e0227a51ce15671bad7bb88a63c7b7f4b434ec2616a15c6666860fcc2208f75065f473cb611a4b6161e766d829 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-trezor@npm:1.62.13-gridplus-validation.16, @shapeshiftoss/hdwallet-trezor@npm:^1.62.13-gridplus-validation.16": - version: 1.62.13-gridplus-validation.16 - resolution: "@shapeshiftoss/hdwallet-trezor@npm:1.62.13-gridplus-validation.16" +"@shapeshiftoss/hdwallet-trezor@npm:1.62.13-gridplus-validation.17, @shapeshiftoss/hdwallet-trezor@npm:^1.62.13-gridplus-validation.17": + version: 1.62.13-gridplus-validation.17 + resolution: "@shapeshiftoss/hdwallet-trezor@npm:1.62.13-gridplus-validation.17" dependencies: "@ethereumjs/common": 3.2.0 "@ethereumjs/tx": 4.2.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.16 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.17 base64-js: ^1.5.1 lodash: ^4.17.21 - checksum: a6e23ed55beadf44e17158e5e0516972b168f847b07a5343b688a5f2cc70210bf20bc368bcd1ba02a8e12dfa33b56af2dfd347451732badde4fa03b084aa988e + checksum: b02b76f15cd21fe8d05e3ba9d05975869d4dd3cf9839eefd1777c7c148071a086d31433c66910d8bad2cbca0213f7827b46ef4e86cea19d6f78d8a7ebefb3480 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-vultisig@npm:1.62.13-gridplus-validation.16": - version: 1.62.13-gridplus-validation.16 - resolution: "@shapeshiftoss/hdwallet-vultisig@npm:1.62.13-gridplus-validation.16" +"@shapeshiftoss/hdwallet-vultisig@npm:1.62.13-gridplus-validation.17": + version: 1.62.13-gridplus-validation.17 + resolution: "@shapeshiftoss/hdwallet-vultisig@npm:1.62.13-gridplus-validation.17" dependencies: "@cosmjs/amino": ^0.28.13 "@cosmjs/stargate": ^0.28.13 "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.16 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.17 "@solana/web3.js": 1.95.8 base64-js: ^1.5.1 bitcoinjs-message: ^2.0.0 ethers: 5.7.2 lodash: ^4.17.21 - checksum: d3f1c3f217c3fabee3fa1d0d5807abe8ee61c3a93c8a5652974ece7dfcf9f7da0df7fb2126a94a8855fa714aa44f45675de30b8ce9fe21eb05263e4a92bbdc33 + checksum: 0131a1008a9466dcb304d3762b2ffd5e3ca0fb1bc4264a48406ceeb0a4f92dbbada0fc5b4d2d8f703c06c5525639b6e35a49b49e20732c8f9bf54e0830c00866 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-walletconnect@npm:1.62.13-gridplus-validation.16": - version: 1.62.13-gridplus-validation.16 - resolution: "@shapeshiftoss/hdwallet-walletconnect@npm:1.62.13-gridplus-validation.16" +"@shapeshiftoss/hdwallet-walletconnect@npm:1.62.13-gridplus-validation.17": + version: 1.62.13-gridplus-validation.17 + resolution: "@shapeshiftoss/hdwallet-walletconnect@npm:1.62.13-gridplus-validation.17" dependencies: - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.16 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.17 "@walletconnect/qrcode-modal": ^1.7.8 "@walletconnect/web3-provider": ^1.7.8 ethers: ^5.6.5 - checksum: 754647fac8567db9520566438fb8d5a5a0a743d1a2e2c6cb1fea7cf28faf42ddacb41e73445ff8068249f81b2e2c4a2fdd00d9117f79fb55e3c89ab951e0b203 + checksum: 37f9e3fefe42f21cfee23fa03173f7e996f7187d80bb0028493a85d6384f6d626bee4011c8cd0ebf263260d8f59a342e9d84098d345d845700a8f0f1d4039fb4 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-walletconnectv2@npm:1.62.13-gridplus-validation.16": - version: 1.62.13-gridplus-validation.16 - resolution: "@shapeshiftoss/hdwallet-walletconnectv2@npm:1.62.13-gridplus-validation.16" +"@shapeshiftoss/hdwallet-walletconnectv2@npm:1.62.13-gridplus-validation.17": + version: 1.62.13-gridplus-validation.17 + resolution: "@shapeshiftoss/hdwallet-walletconnectv2@npm:1.62.13-gridplus-validation.17" dependencies: - "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.16 + "@shapeshiftoss/hdwallet-core": ^1.62.13-gridplus-validation.17 "@walletconnect/ethereum-provider": ^2.20.2 "@walletconnect/modal": ^2.6.2 ethers: ^5.6.5 - checksum: d11245b2f39b79fee69411e9b10bda6206ee917e71dd6445cde0d432c674a8a5d31bbee1e1859276833af7992ac596a3ba88144539c1503430e607cfc1763e25 + checksum: d292708705f16b987f7cb1a5a79fdb6926346fb386fdcf663dfc41a222e903aece5f067656772314af60414d49f82419d68bcb2192acafbb7ad74ddfb68be2e3 languageName: node linkType: hard @@ -11425,24 +11425,24 @@ __metadata: "@shapeshiftoss/chain-adapters": "workspace:^" "@shapeshiftoss/contracts": "workspace:^" "@shapeshiftoss/errors": "workspace:^" - "@shapeshiftoss/hdwallet-coinbase": 1.62.13-gridplus-validation.16 - "@shapeshiftoss/hdwallet-core": 1.62.13-gridplus-validation.16 - "@shapeshiftoss/hdwallet-gridplus": 1.62.13-gridplus-validation.16 - "@shapeshiftoss/hdwallet-keepkey": 1.62.13-gridplus-validation.16 - "@shapeshiftoss/hdwallet-keepkey-webusb": 1.62.13-gridplus-validation.16 - "@shapeshiftoss/hdwallet-keplr": 1.62.13-gridplus-validation.16 - "@shapeshiftoss/hdwallet-ledger": 1.62.13-gridplus-validation.16 - "@shapeshiftoss/hdwallet-ledger-webhid": 1.62.13-gridplus-validation.16 - "@shapeshiftoss/hdwallet-ledger-webusb": 1.62.13-gridplus-validation.16 - "@shapeshiftoss/hdwallet-metamask-multichain": 1.62.13-gridplus-validation.16 - "@shapeshiftoss/hdwallet-native": 1.62.13-gridplus-validation.16 - "@shapeshiftoss/hdwallet-native-vault": 1.62.13-gridplus-validation.16 - "@shapeshiftoss/hdwallet-phantom": 1.62.13-gridplus-validation.16 - "@shapeshiftoss/hdwallet-trezor": 1.62.13-gridplus-validation.16 - "@shapeshiftoss/hdwallet-trezor-connect": 1.62.13-gridplus-validation.16 - "@shapeshiftoss/hdwallet-vultisig": 1.62.13-gridplus-validation.16 - "@shapeshiftoss/hdwallet-walletconnect": 1.62.13-gridplus-validation.16 - "@shapeshiftoss/hdwallet-walletconnectv2": 1.62.13-gridplus-validation.16 + "@shapeshiftoss/hdwallet-coinbase": 1.62.13-gridplus-validation.17 + "@shapeshiftoss/hdwallet-core": 1.62.13-gridplus-validation.17 + "@shapeshiftoss/hdwallet-gridplus": 1.62.13-gridplus-validation.17 + "@shapeshiftoss/hdwallet-keepkey": 1.62.13-gridplus-validation.17 + "@shapeshiftoss/hdwallet-keepkey-webusb": 1.62.13-gridplus-validation.17 + "@shapeshiftoss/hdwallet-keplr": 1.62.13-gridplus-validation.17 + "@shapeshiftoss/hdwallet-ledger": 1.62.13-gridplus-validation.17 + "@shapeshiftoss/hdwallet-ledger-webhid": 1.62.13-gridplus-validation.17 + "@shapeshiftoss/hdwallet-ledger-webusb": 1.62.13-gridplus-validation.17 + "@shapeshiftoss/hdwallet-metamask-multichain": 1.62.13-gridplus-validation.17 + "@shapeshiftoss/hdwallet-native": 1.62.13-gridplus-validation.17 + "@shapeshiftoss/hdwallet-native-vault": 1.62.13-gridplus-validation.17 + "@shapeshiftoss/hdwallet-phantom": 1.62.13-gridplus-validation.17 + "@shapeshiftoss/hdwallet-trezor": 1.62.13-gridplus-validation.17 + "@shapeshiftoss/hdwallet-trezor-connect": 1.62.13-gridplus-validation.17 + "@shapeshiftoss/hdwallet-vultisig": 1.62.13-gridplus-validation.17 + "@shapeshiftoss/hdwallet-walletconnect": 1.62.13-gridplus-validation.17 + "@shapeshiftoss/hdwallet-walletconnectv2": 1.62.13-gridplus-validation.17 "@shapeshiftoss/swapper": "workspace:^" "@shapeshiftoss/types": "workspace:^" "@shapeshiftoss/unchained-client": "workspace:^" From 40aea87355c5ddfb586d1c793a33a48b9161f4f6 Mon Sep 17 00:00:00 2001 From: gomes <17035424+gomesalexandre@users.noreply.github.com> Date: Thu, 27 Nov 2025 01:07:33 +0100 Subject: [PATCH 19/26] [skip ci] fix: store physicalDeviceId before wallet check --- src/context/WalletProvider/GridPlus/utils.ts | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/context/WalletProvider/GridPlus/utils.ts b/src/context/WalletProvider/GridPlus/utils.ts index 45ed36d8918..43c341da929 100644 --- a/src/context/WalletProvider/GridPlus/utils.ts +++ b/src/context/WalletProvider/GridPlus/utils.ts @@ -28,12 +28,6 @@ export const connectAndPairDevice = async ({ expectedType, dispatch, }: ConnectAndPairDeviceParams): Promise => { - const wallet = await adapter.connectDevice(deviceId, expectedActiveWalletId, expectedType) - - if (!wallet) { - return null - } - dispatch( gridplusSlice.actions.setConnection({ physicalDeviceId: deviceId, @@ -41,6 +35,10 @@ export const connectAndPairDevice = async ({ }), ) + const wallet = await adapter.connectDevice(deviceId, expectedActiveWalletId, expectedType) + + if (!wallet) return null + return wallet } From 2c7216a0c3a8c4fdafa4018b86df962568324e64 Mon Sep 17 00:00:00 2001 From: gomes <17035424+gomesalexandre@users.noreply.github.com> Date: Thu, 27 Nov 2025 01:20:07 +0100 Subject: [PATCH 20/26] [skip ci] chore: simplify undefined checks to boolean --- src/context/WalletProvider/GridPlus/utils.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/context/WalletProvider/GridPlus/utils.ts b/src/context/WalletProvider/GridPlus/utils.ts index 43c341da929..91692bb6926 100644 --- a/src/context/WalletProvider/GridPlus/utils.ts +++ b/src/context/WalletProvider/GridPlus/utils.ts @@ -84,7 +84,7 @@ export const finalizeWalletSetup = async ({ const safeCardUuid = safeCardWalletId.replace('gridplus:', '') const { finalWalletUid, finalType } = await (async () => { - if (activeWalletId !== undefined && type !== undefined) { + if (activeWalletId && type) { return { finalWalletUid: activeWalletId, finalType: type } } @@ -124,7 +124,7 @@ export const finalizeWalletSetup = async ({ appDispatch(gridplusSlice.actions.setLastConnectedAt(safeCardUuid)) - if (finalWalletUid !== undefined && finalType !== undefined) { + if (finalWalletUid && finalType) { appDispatch( gridplusSlice.actions.updateSafeCardWalletUid({ id: safeCardUuid, From f027dfc99a95bb49362f8fdab28fef790b8e3c4b Mon Sep 17 00:00:00 2001 From: gomes <17035424+gomesalexandre@users.noreply.github.com> Date: Thu, 27 Nov 2025 01:20:54 +0100 Subject: [PATCH 21/26] [skip ci] chore: remove unnecessary method existence check --- src/context/WalletProvider/GridPlus/utils.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/context/WalletProvider/GridPlus/utils.ts b/src/context/WalletProvider/GridPlus/utils.ts index 91692bb6926..d4c426a687a 100644 --- a/src/context/WalletProvider/GridPlus/utils.ts +++ b/src/context/WalletProvider/GridPlus/utils.ts @@ -96,9 +96,7 @@ export const finalizeWalletSetup = async ({ } })() - if (finalWalletUid && wallet.setExpectedActiveWalletId) { - wallet.setExpectedActiveWalletId(finalWalletUid, finalType) - } + if (finalWalletUid) wallet.setExpectedActiveWalletId(finalWalletUid, finalType) walletDispatch({ type: WalletActions.SET_WALLET, From 11675f378502dc31999de972c24d6ac29504fc63 Mon Sep 17 00:00:00 2001 From: gomes <17035424+gomesalexandre@users.noreply.github.com> Date: Thu, 27 Nov 2025 01:24:50 +0100 Subject: [PATCH 22/26] [skip ci] chore: merge develop --- src/context/WalletProvider/WalletProvider.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/context/WalletProvider/WalletProvider.tsx b/src/context/WalletProvider/WalletProvider.tsx index 37e092e04c0..4156d9ad830 100644 --- a/src/context/WalletProvider/WalletProvider.tsx +++ b/src/context/WalletProvider/WalletProvider.tsx @@ -843,7 +843,7 @@ export const WalletProvider = ({ children }: { children: React.ReactNode }): JSX safeCard.activeWalletId, ) - (gridPlusWallet as GridPlusHDWallet).setExpectedActiveWalletId( + ;(gridPlusWallet as GridPlusHDWallet).setExpectedActiveWalletId( safeCard.activeWalletId, safeCard.type, ) From f3af080dc250290c9064c4e7f125b6b84a163760 Mon Sep 17 00:00:00 2001 From: gomes <17035424+gomesalexandre@users.noreply.github.com> Date: Thu, 27 Nov 2025 01:25:32 +0100 Subject: [PATCH 23/26] [skip ci] chore: remove unnecessary braces from single-line return --- src/context/WalletProvider/GridPlus/utils.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/context/WalletProvider/GridPlus/utils.ts b/src/context/WalletProvider/GridPlus/utils.ts index d4c426a687a..e696ae51339 100644 --- a/src/context/WalletProvider/GridPlus/utils.ts +++ b/src/context/WalletProvider/GridPlus/utils.ts @@ -84,9 +84,8 @@ export const finalizeWalletSetup = async ({ const safeCardUuid = safeCardWalletId.replace('gridplus:', '') const { finalWalletUid, finalType } = await (async () => { - if (activeWalletId && type) { + if (activeWalletId && type) return { finalWalletUid: activeWalletId, finalType: type } - } try { const validation = await wallet.validateActiveWallet() From 7c92ff40ae3c2ef34b9bf9a98d99dbb7f1bd8d55 Mon Sep 17 00:00:00 2001 From: gomes <17035424+gomesalexandre@users.noreply.github.com> Date: Fri, 28 Nov 2025 14:04:17 +0100 Subject: [PATCH 24/26] feat: bump --- .yarnrc.yml | 5 +- gridplus-safecard-validation.md | 60 --------- package.json | 36 +++--- yarn.lock | 222 ++++++++++++++++---------------- 4 files changed, 131 insertions(+), 192 deletions(-) delete mode 100644 gridplus-safecard-validation.md diff --git a/.yarnrc.yml b/.yarnrc.yml index 443b520ba5d..039a809f305 100644 --- a/.yarnrc.yml +++ b/.yarnrc.yml @@ -1,8 +1,6 @@ nodeLinker: node-modules -npmAuthToken: "${NPM_AUTH-fallback}" - -npmRegistryServer: "http://127.0.0.1:4873" +npmRegistryServer: "https://registry.npmjs.org" plugins: - path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs @@ -17,3 +15,4 @@ unsafeHttpWhitelist: - 127.0.0.1 yarnPath: .yarn/releases/yarn-3.5.0.cjs +npmAuthToken: ${NPM_AUTH-fallback} diff --git a/gridplus-safecard-validation.md b/gridplus-safecard-validation.md deleted file mode 100644 index 9684a43b0b0..00000000000 --- a/gridplus-safecard-validation.md +++ /dev/null @@ -1,60 +0,0 @@ -# GridPlus SafeCard Validation - -## Problem - -Previously, ShapeShift operated on a "trust me bro" basis when handling GridPlus SafeCards. The app would: -- Store SafeCards using app-generated UUIDs only -- Never validate which physical SafeCard was actually inserted -- Allow users to connect the wrong SafeCard without detection -- Proceed with signing transactions without verifying the correct card was present - -This could lead to confusing UX where users might accidentally use the wrong wallet or end up in weird app states. - -## Solution - -Implement hardware-based wallet UID validation at three critical points: - -### 1. Initial Pairing -When a user first pairs a SafeCard, we now: -- Fetch the hardware wallet UID from the device (32-byte identifier from firmware) -- Store this UID alongside the user's SafeCard in Redux state -- Use this UID as the source of truth for that SafeCard - -### 2. Reconnection -When the app loads and finds a GridPlus wallet from a previous session, we now: -- Validate that the inserted SafeCard's UID matches the expected stored UID -- Reject the connection if the wrong SafeCard is inserted -- Provide clear error messages to guide users to insert the correct card - -### 3. Just-In-Time (JIT) Signing Validation -Before every signing operation (transaction, message, typed data), we now: -- Re-validate that the correct SafeCard is still inserted -- Prevent signing if the SafeCard was swapped after connection -- Support all chains: Ethereum, Bitcoin, Solana, Cosmos, Thorchain, Mayachain - -## Implementation - -### hdwallet Package Changes (shapeshift/hdwallet) -Added to `GridPlusHDWallet` class: -- `setExpectedWalletUid(walletUid: string)`: Configure expected UID for validation -- `validateActiveWallet(expectedUid?: string)`: Fetch current wallet UID and validate -- Private `validateBeforeSigning()`: Called before all signing methods - -### Web Changes (shapeshift/web) -- **WalletProvider reconnection**: Validates SafeCard on app load -- **finalizeWalletSetup**: Sets expected UID after connection for JIT validation -- **GridPlus utils**: Wire up validation through connection flow -- **Redux state**: Store `walletUid` and `isExternal` flag per SafeCard - -## User Experience - -Users will now see clear feedback when: -- They try to reconnect with the wrong SafeCard inserted -- They swap SafeCards after connecting but before signing -- Legacy SafeCards without stored UIDs (requires cache clear to use) - -This ensures the app state always matches the physical hardware, preventing confusion and improving overall UX. - -## Migration - -No data migration provided. Users with existing SafeCards will need to clear their cache and re-pair their devices. This is a one-time operation that establishes the UID mapping for future sessions. diff --git a/package.json b/package.json index 6a022237622..faa4818c18e 100644 --- a/package.json +++ b/package.json @@ -100,24 +100,24 @@ "@shapeshiftoss/chain-adapters": "workspace:^", "@shapeshiftoss/contracts": "workspace:^", "@shapeshiftoss/errors": "workspace:^", - "@shapeshiftoss/hdwallet-coinbase": "1.62.15", - "@shapeshiftoss/hdwallet-core": "1.62.15", - "@shapeshiftoss/hdwallet-gridplus": "1.62.15", - "@shapeshiftoss/hdwallet-keepkey": "1.62.15", - "@shapeshiftoss/hdwallet-keepkey-webusb": "1.62.15", - "@shapeshiftoss/hdwallet-keplr": "1.62.15", - "@shapeshiftoss/hdwallet-ledger": "1.62.15", - "@shapeshiftoss/hdwallet-ledger-webhid": "1.62.15", - "@shapeshiftoss/hdwallet-ledger-webusb": "1.62.15", - "@shapeshiftoss/hdwallet-metamask-multichain": "1.62.15", - "@shapeshiftoss/hdwallet-native": "1.62.15", - "@shapeshiftoss/hdwallet-native-vault": "1.62.15", - "@shapeshiftoss/hdwallet-phantom": "1.62.15", - "@shapeshiftoss/hdwallet-trezor": "1.62.15", - "@shapeshiftoss/hdwallet-trezor-connect": "1.62.15", - "@shapeshiftoss/hdwallet-vultisig": "1.62.15", - "@shapeshiftoss/hdwallet-walletconnect": "1.62.15", - "@shapeshiftoss/hdwallet-walletconnectv2": "1.62.15", + "@shapeshiftoss/hdwallet-coinbase": "1.62.16", + "@shapeshiftoss/hdwallet-core": "1.62.16", + "@shapeshiftoss/hdwallet-gridplus": "1.62.16", + "@shapeshiftoss/hdwallet-keepkey": "1.62.16", + "@shapeshiftoss/hdwallet-keepkey-webusb": "1.62.16", + "@shapeshiftoss/hdwallet-keplr": "1.62.16", + "@shapeshiftoss/hdwallet-ledger": "1.62.16", + "@shapeshiftoss/hdwallet-ledger-webhid": "1.62.16", + "@shapeshiftoss/hdwallet-ledger-webusb": "1.62.16", + "@shapeshiftoss/hdwallet-metamask-multichain": "1.62.16", + "@shapeshiftoss/hdwallet-native": "1.62.16", + "@shapeshiftoss/hdwallet-native-vault": "1.62.16", + "@shapeshiftoss/hdwallet-phantom": "1.62.16", + "@shapeshiftoss/hdwallet-trezor": "1.62.16", + "@shapeshiftoss/hdwallet-trezor-connect": "1.62.16", + "@shapeshiftoss/hdwallet-vultisig": "1.62.16", + "@shapeshiftoss/hdwallet-walletconnect": "1.62.16", + "@shapeshiftoss/hdwallet-walletconnectv2": "1.62.16", "@shapeshiftoss/swapper": "workspace:^", "@shapeshiftoss/types": "workspace:^", "@shapeshiftoss/unchained-client": "workspace:^", diff --git a/yarn.lock b/yarn.lock index 7ed732cba12..c09f676e092 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10836,15 +10836,15 @@ __metadata: languageName: node linkType: hard -"@shapeshiftoss/hdwallet-coinbase@npm:1.62.15": - version: 1.62.15 - resolution: "@shapeshiftoss/hdwallet-coinbase@npm:1.62.15" +"@shapeshiftoss/hdwallet-coinbase@npm:1.62.16": + version: 1.62.16 + resolution: "@shapeshiftoss/hdwallet-coinbase@npm:1.62.16" dependencies: "@coinbase/wallet-sdk": ^3.6.6 - "@shapeshiftoss/hdwallet-core": 1.62.15 + "@shapeshiftoss/hdwallet-core": 1.62.16 eth-rpc-errors: ^4.0.3 lodash: ^4.17.21 - checksum: 9b144c15c6f957f1640b7262027a5d36290cea64572fadac781bac3f3877ba3aa263e7330ba99df905b6ce84f68d07addb4cf76e19edf1648a63c205e7f006ba + checksum: b4710483fcdcade24e0c8af9f8b04267885a0c0fd7b0b1f1387e9530abec303f5ebc813b10340633aaee711ee0a5a721c328733654b56c6eaa906929c1465dd7 languageName: node linkType: hard @@ -10877,9 +10877,9 @@ __metadata: languageName: node linkType: hard -"@shapeshiftoss/hdwallet-core@npm:1.62.15": - version: 1.62.15 - resolution: "@shapeshiftoss/hdwallet-core@npm:1.62.15" +"@shapeshiftoss/hdwallet-core@npm:1.62.16": + version: 1.62.16 + resolution: "@shapeshiftoss/hdwallet-core@npm:1.62.16" dependencies: "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 "@shapeshiftoss/proto-tx-builder": 0.10.0 @@ -10890,7 +10890,7 @@ __metadata: lodash: ^4.17.21 rxjs: ^6.4.0 type-assertions: ^1.1.0 - checksum: 92cc4fa7c05c7ae3e24ada67c4984209349410e93e09cbaf4b8e9310429d08a1d6c7368d25e9a5d212cf0a45eb21540d3bea6cb3863fc2195b6b1bd1f8af8ba2 + checksum: 04d68e1b4f282d3d4aa727ab40b3aa60c151ee7468a14456aa7a908ee015c9d653683741e79b33e3c2efafb2f580d5647c82987975bf0bec7359508c8165d748 languageName: node linkType: hard @@ -10908,38 +10908,38 @@ __metadata: languageName: node linkType: hard -"@shapeshiftoss/hdwallet-gridplus@npm:1.62.15": - version: 1.62.15 - resolution: "@shapeshiftoss/hdwallet-gridplus@npm:1.62.15" +"@shapeshiftoss/hdwallet-gridplus@npm:1.62.16": + version: 1.62.16 + resolution: "@shapeshiftoss/hdwallet-gridplus@npm:1.62.16" dependencies: "@bitcoinerlab/secp256k1": ^1.1.1 "@ethereumjs/common": 4.4.0 "@ethereumjs/rlp": 5.0.2 "@ethereumjs/tx": 5.4.0 "@metamask/eth-sig-util": ^7.0.0 - "@shapeshiftoss/hdwallet-core": 1.62.15 + "@shapeshiftoss/hdwallet-core": 1.62.16 bech32: ^1.1.4 bs58: ^5.0.0 crypto-js: ^4.2.0 gridplus-sdk: ^3.2.0 lodash: ^4.17.21 - checksum: 1176453f4f4aaad9462f41d55da5e0b2f04a2178174ba10732f88aa7ef36cc9707ff67718eeffdd3988b96a3492226d00d37b61a3393cb1c7905e000b8832d79 + checksum: d4f1e0ef0c04a579e7bbf6e22f34727d43a07405e31f69296b697e198a182a06896cc17f1b19fe29f14aacf14ec8cf05e336f65abd797fc78a284429f3f24c6d languageName: node linkType: hard -"@shapeshiftoss/hdwallet-keepkey-webusb@npm:1.62.15": - version: 1.62.15 - resolution: "@shapeshiftoss/hdwallet-keepkey-webusb@npm:1.62.15" +"@shapeshiftoss/hdwallet-keepkey-webusb@npm:1.62.16": + version: 1.62.16 + resolution: "@shapeshiftoss/hdwallet-keepkey-webusb@npm:1.62.16" dependencies: - "@shapeshiftoss/hdwallet-core": 1.62.15 - "@shapeshiftoss/hdwallet-keepkey": 1.62.15 - checksum: a8999d06f633d2fef1a2f89a83a359d8a6bfba6df95c1a7832d44aeed9d7dd964f82bdc17fb50c6cf704ff9e699ed19c4ce0100d3be8eda18c714a3e18b53e17 + "@shapeshiftoss/hdwallet-core": 1.62.16 + "@shapeshiftoss/hdwallet-keepkey": 1.62.16 + checksum: 2d111ede7854d24f427dc908220a49f15e0bcec44294ee589775e899f56b51e20160f1d6fa197affd9a6393b4f8c051829804012d601cf10e3d57fe0d42615d1 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-keepkey@npm:1.62.15": - version: 1.62.15 - resolution: "@shapeshiftoss/hdwallet-keepkey@npm:1.62.15" +"@shapeshiftoss/hdwallet-keepkey@npm:1.62.16": + version: 1.62.16 + resolution: "@shapeshiftoss/hdwallet-keepkey@npm:1.62.16" dependencies: "@bitcoinerlab/secp256k1": ^1.1.1 "@ethereumjs/common": 3.2.0 @@ -10947,7 +10947,7 @@ __metadata: "@keepkey/device-protocol": 7.13.4 "@metamask/eth-sig-util": ^7.0.0 "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": 1.62.15 + "@shapeshiftoss/hdwallet-core": 1.62.16 "@shapeshiftoss/proto-tx-builder": 0.10.0 bignumber.js: ^9.0.1 bnb-javascript-sdk-nobroadcast: 2.16.15 @@ -10958,44 +10958,44 @@ __metadata: lodash: ^4.17.21 p-lazy: ^3.1.0 semver: ^7.3.8 - checksum: 2ee5d9c0b202b74cec44e319a7ae237ec5512895ac67642e3f85edf4281265aaedaa78ac4938101dd952bc889a376069a57e543e2e58638af7768d586ed4adb5 + checksum: 62a9eebc5c3e5564c25b0cd360fd3e267a2cf52befe710cab45f05f518d34e9ba7b37b7f33d22f2037e26823de61a10c30cfbaa0999368d6511984bab56df2d5 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-keplr@npm:1.62.15": - version: 1.62.15 - resolution: "@shapeshiftoss/hdwallet-keplr@npm:1.62.15" +"@shapeshiftoss/hdwallet-keplr@npm:1.62.16": + version: 1.62.16 + resolution: "@shapeshiftoss/hdwallet-keplr@npm:1.62.16" dependencies: "@cosmjs/amino": ^0.28.13 "@cosmjs/stargate": ^0.28.13 "@shapeshiftoss/caip": 8.15.0 - "@shapeshiftoss/hdwallet-core": 1.62.15 + "@shapeshiftoss/hdwallet-core": 1.62.16 "@shapeshiftoss/proto-tx-builder": 0.10.0 "@shapeshiftoss/types": 3.1.3 base64-js: ^1.5.1 lodash: ^4.17.21 - checksum: 3032d8e002235a13ef2722ac4c5ec105a369de1c289f43fafe2a4b1fe4d9eb26f498e4d8352c9d61781a47770589b73930878c462a38ba8146d74e02a3fe9cfe + checksum: 86c20620bdb6a55985d0ec62d4b06f834092fed649c36d57eb8322760bbb193ef4e2274e33a3979a7761a4950ee24835c82c51eb9a1c9b3c46dc7723648d1119 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-ledger-webhid@npm:1.62.15": - version: 1.62.15 - resolution: "@shapeshiftoss/hdwallet-ledger-webhid@npm:1.62.15" +"@shapeshiftoss/hdwallet-ledger-webhid@npm:1.62.16": + version: 1.62.16 + resolution: "@shapeshiftoss/hdwallet-ledger-webhid@npm:1.62.16" dependencies: "@ledgerhq/hw-app-btc": ^10.10.0 "@ledgerhq/hw-app-eth": ^6.45.13 "@ledgerhq/hw-transport": 6.31.8 "@ledgerhq/hw-transport-webhid": ^6.30.4 - "@shapeshiftoss/hdwallet-core": 1.62.15 - "@shapeshiftoss/hdwallet-ledger": 1.62.15 + "@shapeshiftoss/hdwallet-core": 1.62.16 + "@shapeshiftoss/hdwallet-ledger": 1.62.16 "@types/w3c-web-hid": ^1.0.2 - checksum: 62d9ad8234e86b788abd25a175982ac4f3fdee364f8e0452bb8366de4c2943c982efcfff20270bf2a90ff559fa3d6b3881486a5d08d1620226192dc7b64e37b7 + checksum: 8cb1d7f7271204fad2759ccfef6cef5609639af52f6fb0a646b4e21bc8beeb8e4078a1151f3dbbeee6fb525f14f456678c2d556df3defb232e43bfb066431315 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-ledger-webusb@npm:1.62.15": - version: 1.62.15 - resolution: "@shapeshiftoss/hdwallet-ledger-webusb@npm:1.62.15" +"@shapeshiftoss/hdwallet-ledger-webusb@npm:1.62.16": + version: 1.62.16 + resolution: "@shapeshiftoss/hdwallet-ledger-webusb@npm:1.62.16" dependencies: "@ledgerhq/hw-app-btc": ^10.10.0 "@ledgerhq/hw-app-cosmos": ^6.32.4 @@ -11003,17 +11003,17 @@ __metadata: "@ledgerhq/hw-app-solana": ^7.5.1 "@ledgerhq/hw-transport": 6.31.8 "@ledgerhq/hw-transport-webusb": 6.29.8 - "@shapeshiftoss/hdwallet-core": 1.62.15 - "@shapeshiftoss/hdwallet-ledger": 1.62.15 + "@shapeshiftoss/hdwallet-core": 1.62.16 + "@shapeshiftoss/hdwallet-ledger": 1.62.16 "@types/w3c-web-usb": ^1.0.4 p-queue: ^7.4.1 - checksum: 8cf5ffe7473fe7c857a82a5945997a33c1e8d1af36b3c12479cc3eafe2c8e57dd3254a4051670ff2fb92a74d7299c3f403a243c8ec56d03c24b74db037882204 + checksum: 37592232a1d50ccead5a2649dd9afcb35a2b766fdccf2e3f275cad054ffed73f0d64ce760f60fc2c50e9571483f9cbba41ebe3f5dc871f45906262321a56e01b languageName: node linkType: hard -"@shapeshiftoss/hdwallet-ledger@npm:1.62.15": - version: 1.62.15 - resolution: "@shapeshiftoss/hdwallet-ledger@npm:1.62.15" +"@shapeshiftoss/hdwallet-ledger@npm:1.62.16": + version: 1.62.16 + resolution: "@shapeshiftoss/hdwallet-ledger@npm:1.62.16" dependencies: "@ethereumjs/common": 3.2.0 "@ethereumjs/tx": 4.2.0 @@ -11025,7 +11025,7 @@ __metadata: "@ledgerhq/hw-transport": 6.31.8 "@ledgerhq/logs": 6.13.0 "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": 1.62.15 + "@shapeshiftoss/hdwallet-core": 1.62.16 "@solana/web3.js": 1.95.8 base64-js: ^1.5.1 bchaddrjs: ^0.4.4 @@ -11035,33 +11035,33 @@ __metadata: ethereumjs-util: ^6.1.0 ethers: 5.7.2 lodash: ^4.17.21 - checksum: 52d424b8738a2777446d704905872f94479a0bd7f8266a414607c64ce03a2a27566a06372e05a3dc92cbcc775322975645faecf033b5506f208e3278a89e49ca + checksum: 3d3f17523ca42824b0d6dd1f1d6b43bfd936330b0396e97b39a647060bcde41c52746453a8bac4f3c9d88b7bc5f72f0849f809f3b1e01ea6adc0788d56685e00 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-metamask-multichain@npm:1.62.15": - version: 1.62.15 - resolution: "@shapeshiftoss/hdwallet-metamask-multichain@npm:1.62.15" +"@shapeshiftoss/hdwallet-metamask-multichain@npm:1.62.16": + version: 1.62.16 + resolution: "@shapeshiftoss/hdwallet-metamask-multichain@npm:1.62.16" dependencies: "@metamask/detect-provider": ^1.2.0 "@metamask/onboarding": ^1.0.1 "@shapeshiftoss/common-api": ^9.3.0 - "@shapeshiftoss/hdwallet-core": 1.62.15 + "@shapeshiftoss/hdwallet-core": 1.62.16 "@shapeshiftoss/metamask-snaps-adapter": ^1.0.12 "@shapeshiftoss/metamask-snaps-types": ^1.0.12 eth-rpc-errors: ^4.0.3 lodash: ^4.17.21 mipd: ^0.0.7 - checksum: bc319c3bf57f4da91653c9e86d7d404a5c38199710f6f8107fadefaf6aec83694ff2b6dc1671c84f0977672ab9c24b19e7eb82717da37dda07c8389417563a07 + checksum: 50e69497d8f22827f023def8d07261a48032a4b361ca71413f2dd2c25af1d76890da050462d0076f2c356e11cf7375a6586756ec883fb5ec6db1b653f0493983 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-native-vault@npm:1.62.15": - version: 1.62.15 - resolution: "@shapeshiftoss/hdwallet-native-vault@npm:1.62.15" +"@shapeshiftoss/hdwallet-native-vault@npm:1.62.16": + version: 1.62.16 + resolution: "@shapeshiftoss/hdwallet-native-vault@npm:1.62.16" dependencies: "@bitcoinerlab/secp256k1": ^1.1.1 - "@shapeshiftoss/hdwallet-native": 1.62.15 + "@shapeshiftoss/hdwallet-native": 1.62.16 bip39: ^3.0.4 hash-wasm: ^4.11.0 idb-keyval: ^6.0.3 @@ -11069,18 +11069,18 @@ __metadata: p-lazy: ^3.1.0 type-assertions: ^1.1.0 uuid: ^8.3.2 - checksum: b8792e5e09dc9036625ca61c0d3c19656861a21386cc1841a25fe1f59e2ff07f37e92582d20bca7d7da2b06660f7f6f68031e5daa477417ea687bf345d8f60b4 + checksum: ebc5693220eef47eac6b1cbccfdead3f4c810f9a93e2a32470c103d729baa4e3215badd4a5ae1e55f30edf6dd06e226c57b991fdd2eb2a13ee350d12d4535d36 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-native@npm:1.62.15": - version: 1.62.15 - resolution: "@shapeshiftoss/hdwallet-native@npm:1.62.15" +"@shapeshiftoss/hdwallet-native@npm:1.62.16": + version: 1.62.16 + resolution: "@shapeshiftoss/hdwallet-native@npm:1.62.16" dependencies: "@bitcoinerlab/secp256k1": ^1.1.1 "@noble/curves": ^1.4.0 "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": 1.62.15 + "@shapeshiftoss/hdwallet-core": 1.62.16 "@shapeshiftoss/proto-tx-builder": 0.10.0 "@zxing/text-encoding": ^0.9.0 bchaddrjs: ^0.4.9 @@ -11101,7 +11101,7 @@ __metadata: p-lazy: ^3.1.0 scrypt-js: ^3.0.1 tendermint-tx-builder: 1.0.16 - checksum: a3320c3cd6497e7b6dd93dbb3cb0c6d4bbe2d9f95c238f8ed6aa408d58621a4a198b464b6467fa58509af8bb70b99c311428208b9ec3b0f84b62897262f75e4f + checksum: 9fe180b7669d4812c45a564ab96c3ef464d9fca93003130fa4a87541558b9c8172ccd51ecd909af047325e042d92ae5eb74b51b1c4b10c863bd21f19dd45dcd7 languageName: node linkType: hard @@ -11138,84 +11138,84 @@ __metadata: languageName: node linkType: hard -"@shapeshiftoss/hdwallet-phantom@npm:1.62.15": - version: 1.62.15 - resolution: "@shapeshiftoss/hdwallet-phantom@npm:1.62.15" +"@shapeshiftoss/hdwallet-phantom@npm:1.62.16": + version: 1.62.16 + resolution: "@shapeshiftoss/hdwallet-phantom@npm:1.62.16" dependencies: "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": 1.62.15 + "@shapeshiftoss/hdwallet-core": 1.62.16 "@solana/web3.js": 1.95.8 base64-js: ^1.5.1 bitcoinjs-message: ^2.0.0 ethers: 5.7.2 lodash: ^4.17.21 - checksum: ff5167ef206573750906eaf1e4da8d6db4bff8b77ab1db9ff3dc2f78fe3b525995e94fd67588d1d1a25f55d8909b85433b66cbb17153ad57970c922b243e557a + checksum: f5c5b13ba008055c661c21190c5ea468f30d414461cfd7ec48658f1a95bde81fc386a856a1fdb074f88220e0403720611788310123c3d5ef0d8c233efa8fb6ff languageName: node linkType: hard -"@shapeshiftoss/hdwallet-trezor-connect@npm:1.62.15": - version: 1.62.15 - resolution: "@shapeshiftoss/hdwallet-trezor-connect@npm:1.62.15" +"@shapeshiftoss/hdwallet-trezor-connect@npm:1.62.16": + version: 1.62.16 + resolution: "@shapeshiftoss/hdwallet-trezor-connect@npm:1.62.16" dependencies: - "@shapeshiftoss/hdwallet-core": 1.62.15 - "@shapeshiftoss/hdwallet-trezor": 1.62.15 + "@shapeshiftoss/hdwallet-core": 1.62.16 + "@shapeshiftoss/hdwallet-trezor": 1.62.16 "@trezor/connect-web": ^9.6.4 - checksum: 769a43cc3bba432628fa0eb374427fec416e7dae4839db7e7bc6fc9c2132eea6b651d91d19e4cae732ab108ac5ea7d8df77d0bfd91865bd43541cbf8f8f4551c + checksum: 0ded56bb0dd36d9fcd4dfd2ec99ae4d8f761b8ae1074d3c64aaeaba8019e3e8adee927da59a1c801867ac5790975420a80cbe2ddc9dcaf1820e200a82ccd96f8 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-trezor@npm:1.62.15": - version: 1.62.15 - resolution: "@shapeshiftoss/hdwallet-trezor@npm:1.62.15" +"@shapeshiftoss/hdwallet-trezor@npm:1.62.16": + version: 1.62.16 + resolution: "@shapeshiftoss/hdwallet-trezor@npm:1.62.16" dependencies: "@ethereumjs/common": 3.2.0 "@ethereumjs/tx": 4.2.0 - "@shapeshiftoss/hdwallet-core": 1.62.15 + "@shapeshiftoss/hdwallet-core": 1.62.16 base64-js: ^1.5.1 bchaddrjs: ^0.4.4 lodash: ^4.17.21 - checksum: 32cce6dfe5db31c9b80ccfc53ce742489650fbc0407d14ec7cc92a3f9a18a4f213d5da87b04323e4da08c8e26b8068abcac753955bbe1d14f56f45dbe5aab934 + checksum: 203f81e7b7db2ea0e5f8e0f7d4f1151668a4778f3960ed1158efaa478b297de559d774f5cbd13a88b7656264398c37295db63c66fae9d41f694ce39a74ef92fb languageName: node linkType: hard -"@shapeshiftoss/hdwallet-vultisig@npm:1.62.15": - version: 1.62.15 - resolution: "@shapeshiftoss/hdwallet-vultisig@npm:1.62.15" +"@shapeshiftoss/hdwallet-vultisig@npm:1.62.16": + version: 1.62.16 + resolution: "@shapeshiftoss/hdwallet-vultisig@npm:1.62.16" dependencies: "@cosmjs/amino": ^0.28.13 "@cosmjs/stargate": ^0.28.13 "@shapeshiftoss/bitcoinjs-lib": 7.0.0-shapeshift.0 - "@shapeshiftoss/hdwallet-core": 1.62.15 + "@shapeshiftoss/hdwallet-core": 1.62.16 "@solana/web3.js": 1.95.8 base64-js: ^1.5.1 bitcoinjs-message: ^2.0.0 ethers: 5.7.2 lodash: ^4.17.21 - checksum: 3cf04937e2c5f7e076fc8a205111b16c7267680dbcd0c7dd586c2e3e76d5905944039850d8c7aa715bbc35f25333d3b288587373b89f9a2402355a111afce39e + checksum: 940c5ee9d8a77d732740e95450645ae1ecdf6c5c5f31f4fbdf84707ecd110986b00efca4aaba4bfc5e3106c96f9b657af42dcdc72c297c354070b18c8d7cc230 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-walletconnect@npm:1.62.15": - version: 1.62.15 - resolution: "@shapeshiftoss/hdwallet-walletconnect@npm:1.62.15" +"@shapeshiftoss/hdwallet-walletconnect@npm:1.62.16": + version: 1.62.16 + resolution: "@shapeshiftoss/hdwallet-walletconnect@npm:1.62.16" dependencies: - "@shapeshiftoss/hdwallet-core": 1.62.15 + "@shapeshiftoss/hdwallet-core": 1.62.16 "@walletconnect/qrcode-modal": ^1.7.8 "@walletconnect/web3-provider": ^1.7.8 ethers: ^5.6.5 - checksum: faabad8930bad11e39cf7a709dec5e0ebccdca1752cd2bb5990bf54e0fde469e2e3a17d1dbaaa376a3de564a61db09e341a752f0b773f8b43314490c2735e373 + checksum: d838972a67187568962cfab5cae47c23a3d969a6e526027413d72cda821eb59887536537756b6207513e0f09f0745fdfc8d8756f5ef66fd3f64f7b349afdaf61 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-walletconnectv2@npm:1.62.15": - version: 1.62.15 - resolution: "@shapeshiftoss/hdwallet-walletconnectv2@npm:1.62.15" +"@shapeshiftoss/hdwallet-walletconnectv2@npm:1.62.16": + version: 1.62.16 + resolution: "@shapeshiftoss/hdwallet-walletconnectv2@npm:1.62.16" dependencies: - "@shapeshiftoss/hdwallet-core": 1.62.15 + "@shapeshiftoss/hdwallet-core": 1.62.16 "@walletconnect/ethereum-provider": ^2.20.2 "@walletconnect/modal": ^2.6.2 ethers: ^5.6.5 - checksum: 7d13c9a2c23405fceb2941270adf3c1febbb5bf2754fd7051735edd310feb9dff12e5707f8a7d270339bd2ec5d2808461b8b50ad26c0932f1985431f936a6259 + checksum: a3a40af3d8f66a144f58e5a20ebca4693c2aba03efde2aa10ac9ce51fa9ee4d6009cefed91e06d48ee754dfd63dc0b339b950ad2dd4740b179c8e876128d8c3a languageName: node linkType: hard @@ -11435,24 +11435,24 @@ __metadata: "@shapeshiftoss/chain-adapters": "workspace:^" "@shapeshiftoss/contracts": "workspace:^" "@shapeshiftoss/errors": "workspace:^" - "@shapeshiftoss/hdwallet-coinbase": 1.62.15 - "@shapeshiftoss/hdwallet-core": 1.62.15 - "@shapeshiftoss/hdwallet-gridplus": 1.62.15 - "@shapeshiftoss/hdwallet-keepkey": 1.62.15 - "@shapeshiftoss/hdwallet-keepkey-webusb": 1.62.15 - "@shapeshiftoss/hdwallet-keplr": 1.62.15 - "@shapeshiftoss/hdwallet-ledger": 1.62.15 - "@shapeshiftoss/hdwallet-ledger-webhid": 1.62.15 - "@shapeshiftoss/hdwallet-ledger-webusb": 1.62.15 - "@shapeshiftoss/hdwallet-metamask-multichain": 1.62.15 - "@shapeshiftoss/hdwallet-native": 1.62.15 - "@shapeshiftoss/hdwallet-native-vault": 1.62.15 - "@shapeshiftoss/hdwallet-phantom": 1.62.15 - "@shapeshiftoss/hdwallet-trezor": 1.62.15 - "@shapeshiftoss/hdwallet-trezor-connect": 1.62.15 - "@shapeshiftoss/hdwallet-vultisig": 1.62.15 - "@shapeshiftoss/hdwallet-walletconnect": 1.62.15 - "@shapeshiftoss/hdwallet-walletconnectv2": 1.62.15 + "@shapeshiftoss/hdwallet-coinbase": 1.62.16 + "@shapeshiftoss/hdwallet-core": 1.62.16 + "@shapeshiftoss/hdwallet-gridplus": 1.62.16 + "@shapeshiftoss/hdwallet-keepkey": 1.62.16 + "@shapeshiftoss/hdwallet-keepkey-webusb": 1.62.16 + "@shapeshiftoss/hdwallet-keplr": 1.62.16 + "@shapeshiftoss/hdwallet-ledger": 1.62.16 + "@shapeshiftoss/hdwallet-ledger-webhid": 1.62.16 + "@shapeshiftoss/hdwallet-ledger-webusb": 1.62.16 + "@shapeshiftoss/hdwallet-metamask-multichain": 1.62.16 + "@shapeshiftoss/hdwallet-native": 1.62.16 + "@shapeshiftoss/hdwallet-native-vault": 1.62.16 + "@shapeshiftoss/hdwallet-phantom": 1.62.16 + "@shapeshiftoss/hdwallet-trezor": 1.62.16 + "@shapeshiftoss/hdwallet-trezor-connect": 1.62.16 + "@shapeshiftoss/hdwallet-vultisig": 1.62.16 + "@shapeshiftoss/hdwallet-walletconnect": 1.62.16 + "@shapeshiftoss/hdwallet-walletconnectv2": 1.62.16 "@shapeshiftoss/swapper": "workspace:^" "@shapeshiftoss/types": "workspace:^" "@shapeshiftoss/unchained-client": "workspace:^" From 07bd2c89faa751630096b018963ec6c813910b4c Mon Sep 17 00:00:00 2001 From: gomes <17035424+gomesalexandre@users.noreply.github.com> Date: Fri, 28 Nov 2025 14:09:29 +0100 Subject: [PATCH 25/26] chore: trigger CI From ba5dca532070241d9664c27c7fe46bfd3f673f85 Mon Sep 17 00:00:00 2001 From: gomes <17035424+gomesalexandre@users.noreply.github.com> Date: Fri, 28 Nov 2025 14:13:30 +0100 Subject: [PATCH 26/26] fix: lint --- src/context/WalletProvider/GridPlus/utils.ts | 3 +-- src/context/WalletProvider/WalletProvider.tsx | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/context/WalletProvider/GridPlus/utils.ts b/src/context/WalletProvider/GridPlus/utils.ts index e696ae51339..2e4a2e5c9ee 100644 --- a/src/context/WalletProvider/GridPlus/utils.ts +++ b/src/context/WalletProvider/GridPlus/utils.ts @@ -84,8 +84,7 @@ export const finalizeWalletSetup = async ({ const safeCardUuid = safeCardWalletId.replace('gridplus:', '') const { finalWalletUid, finalType } = await (async () => { - if (activeWalletId && type) - return { finalWalletUid: activeWalletId, finalType: type } + if (activeWalletId && type) return { finalWalletUid: activeWalletId, finalType: type } try { const validation = await wallet.validateActiveWallet() diff --git a/src/context/WalletProvider/WalletProvider.tsx b/src/context/WalletProvider/WalletProvider.tsx index 4156d9ad830..427f2dab563 100644 --- a/src/context/WalletProvider/WalletProvider.tsx +++ b/src/context/WalletProvider/WalletProvider.tsx @@ -842,7 +842,6 @@ export const WalletProvider = ({ children }: { children: React.ReactNode }): JSX await (gridPlusWallet as GridPlusHDWallet).validateActiveWallet( safeCard.activeWalletId, ) - ;(gridPlusWallet as GridPlusHDWallet).setExpectedActiveWalletId( safeCard.activeWalletId, safeCard.type,