From 97e2c342e9f73f52714b80ff8ff29ccdef8c7324 Mon Sep 17 00:00:00 2001 From: gomes <17035424+gomesalexandre@users.noreply.github.com> Date: Tue, 30 Jan 2024 06:18:13 +0100 Subject: [PATCH] feat: improve mm impersonator checks (#5896) * feat: mm impersonator checks * feat: add comment * feat: she worky * chore: bump hdwallet to 1.53.3 * doodle checksums --------- Co-authored-by: Apotheosis <97164662+0xApotheosis@users.noreply.github.com> Co-authored-by: woodenfurniture <125113430+woodenfurniture@users.noreply.github.com> --- package.json | 26 +-- src/components/Modals/Send/utils.ts | 10 +- .../MetaMask/components/Connect.tsx | 9 +- .../MetaMask/components/MetaMaskMenu.tsx | 9 +- .../useIsSnapInstalled/useIsSnapInstalled.tsx | 86 +++++++++- .../useStakingAction/useStakingAction.tsx | 9 +- yarn.lock | 158 +++++++++--------- 7 files changed, 204 insertions(+), 103 deletions(-) diff --git a/package.json b/package.json index 5ff52313481..5e47bc0de20 100644 --- a/package.json +++ b/package.json @@ -88,19 +88,19 @@ "@shapeshiftoss/caip": "workspace:^", "@shapeshiftoss/chain-adapters": "workspace:^", "@shapeshiftoss/errors": "workspace:^", - "@shapeshiftoss/hdwallet-coinbase": "1.53.1", - "@shapeshiftoss/hdwallet-core": "1.53.1", - "@shapeshiftoss/hdwallet-keepkey": "1.53.1", - "@shapeshiftoss/hdwallet-keepkey-webusb": "1.53.1", - "@shapeshiftoss/hdwallet-keplr": "1.53.1", - "@shapeshiftoss/hdwallet-ledger": "1.53.1", - "@shapeshiftoss/hdwallet-ledger-webusb": "1.53.1", - "@shapeshiftoss/hdwallet-metamask": "1.53.1", - "@shapeshiftoss/hdwallet-native": "1.53.1", - "@shapeshiftoss/hdwallet-native-vault": "1.53.1", - "@shapeshiftoss/hdwallet-shapeshift-multichain": "1.53.1", - "@shapeshiftoss/hdwallet-walletconnectv2": "1.53.1", - "@shapeshiftoss/hdwallet-xdefi": "1.53.1", + "@shapeshiftoss/hdwallet-coinbase": "1.53.3", + "@shapeshiftoss/hdwallet-core": "1.53.3", + "@shapeshiftoss/hdwallet-keepkey": "1.53.3", + "@shapeshiftoss/hdwallet-keepkey-webusb": "1.53.3", + "@shapeshiftoss/hdwallet-keplr": "1.53.3", + "@shapeshiftoss/hdwallet-ledger": "1.53.3", + "@shapeshiftoss/hdwallet-ledger-webusb": "1.53.3", + "@shapeshiftoss/hdwallet-metamask": "1.53.3", + "@shapeshiftoss/hdwallet-native": "1.53.3", + "@shapeshiftoss/hdwallet-native-vault": "1.53.3", + "@shapeshiftoss/hdwallet-shapeshift-multichain": "1.53.3", + "@shapeshiftoss/hdwallet-walletconnectv2": "1.53.3", + "@shapeshiftoss/hdwallet-xdefi": "1.53.3", "@shapeshiftoss/swapper": "workspace:^", "@shapeshiftoss/types": "workspace:^", "@shapeshiftoss/unchained-client": "workspace:^", diff --git a/src/components/Modals/Send/utils.ts b/src/components/Modals/Send/utils.ts index e33acf0918f..25a5071245e 100644 --- a/src/components/Modals/Send/utils.ts +++ b/src/components/Modals/Send/utils.ts @@ -12,7 +12,11 @@ import { utxoChainIds } from '@shapeshiftoss/chain-adapters' import type { HDWallet } from '@shapeshiftoss/hdwallet-core' import { supportsETH } from '@shapeshiftoss/hdwallet-core' import type { KnownChainIds } from '@shapeshiftoss/types' -import { checkIsMetaMask, checkIsSnapInstalled } from 'hooks/useIsSnapInstalled/useIsSnapInstalled' +import { + checkIsMetaMask, + checkIsMetaMaskImpersonator, + checkIsSnapInstalled, +} from 'hooks/useIsSnapInstalled/useIsSnapInstalled' import { bn, bnOrZero } from 'lib/bignumber/bignumber' import { assertGetChainAdapter, tokenOrUndefined } from 'lib/utils' import { assertGetCosmosSdkChainAdapter } from 'lib/utils/cosmosSdk' @@ -104,10 +108,12 @@ export const handleSend = async ({ const acccountMetadataFilter = { accountId: sendInput.accountId } const accountMetadata = selectPortfolioAccountMetadataByAccountId(state, acccountMetadataFilter) const isMetaMask = await checkIsMetaMask(wallet) + const isMetaMaskImpersonator = await checkIsMetaMaskImpersonator(wallet) if ( fromChainId(asset.chainId).chainNamespace === CHAIN_NAMESPACE.CosmosSdk && !wallet.supportsOfflineSigning() && - (!isMetaMask || (isMetaMask && !(await checkIsSnapInstalled()))) + // MM impersonators don't support Cosmos SDK chains + (!isMetaMask || isMetaMaskImpersonator || (isMetaMask && !(await checkIsSnapInstalled()))) ) { throw new Error(`unsupported wallet: ${await wallet.getModel()}`) } diff --git a/src/context/WalletProvider/MetaMask/components/Connect.tsx b/src/context/WalletProvider/MetaMask/components/Connect.tsx index 4a782dc1cb0..2c80b677760 100644 --- a/src/context/WalletProvider/MetaMask/components/Connect.tsx +++ b/src/context/WalletProvider/MetaMask/components/Connect.tsx @@ -9,6 +9,7 @@ import { useLocalWallet } from 'context/WalletProvider/local-wallet' import { useFeatureFlag } from 'hooks/useFeatureFlag/useFeatureFlag' import { checkIsMetaMask, + checkIsMetaMaskImpersonator, checkisMetaMaskMobileWebView, checkIsSnapInstalled, } from 'hooks/useIsSnapInstalled/useIsSnapInstalled' @@ -85,11 +86,13 @@ export const MetaMaskConnect = ({ history }: MetaMaskSetupProps) => { await (async () => { const isMetaMask = await checkIsMetaMask(wallet) - if (!isMetaMask) return dispatch({ type: WalletActions.SET_WALLET_MODAL, payload: false }) + const isMetaMaskImpersonator = await checkIsMetaMaskImpersonator(wallet) + // Wallets other than MM desktop - including MM impersonators - don't support MM snaps + if (!isMetaMask || isMetaMaskImpersonator || isMetaMaskMobileWebView) + return dispatch({ type: WalletActions.SET_WALLET_MODAL, payload: false }) const isSnapInstalled = await checkIsSnapInstalled() - // We don't want to show the snaps modal on MM mobile browser, as snaps aren't supported on mobile - if (isSnapsEnabled && !isMetaMaskMobileWebView && !isSnapInstalled && showSnapModal) { + if (isSnapsEnabled && !isSnapInstalled && showSnapModal) { return history.push('/metamask/snap/install') } diff --git a/src/context/WalletProvider/MetaMask/components/MetaMaskMenu.tsx b/src/context/WalletProvider/MetaMask/components/MetaMaskMenu.tsx index 963b0e1d562..4eba38a98ce 100644 --- a/src/context/WalletProvider/MetaMask/components/MetaMaskMenu.tsx +++ b/src/context/WalletProvider/MetaMask/components/MetaMaskMenu.tsx @@ -1,7 +1,11 @@ import { MenuDivider, MenuItem, Skeleton, Tag } from '@chakra-ui/react' import { useCallback, useEffect, useMemo, useState } from 'react' import { useTranslate } from 'react-polyglot' -import { checkIsMetaMask, useIsSnapInstalled } from 'hooks/useIsSnapInstalled/useIsSnapInstalled' +import { + checkIsMetaMask, + checkIsMetaMaskImpersonator, + useIsSnapInstalled, +} from 'hooks/useIsSnapInstalled/useIsSnapInstalled' import { useModal } from 'hooks/useModal/useModal' import { useWallet } from 'hooks/useWallet/useWallet' @@ -19,7 +23,8 @@ export const MetaMaskMenu = () => { if (!wallet) return ;(async () => { const _isMetaMask = await checkIsMetaMask(wallet) - setIsMetaMask(_isMetaMask) + const isMetaMaskImpersonator = await checkIsMetaMaskImpersonator(wallet) + setIsMetaMask(_isMetaMask && !isMetaMaskImpersonator) })() }, [wallet]) diff --git a/src/hooks/useIsSnapInstalled/useIsSnapInstalled.tsx b/src/hooks/useIsSnapInstalled/useIsSnapInstalled.tsx index 45b698c901a..c50d6fcc34b 100644 --- a/src/hooks/useIsSnapInstalled/useIsSnapInstalled.tsx +++ b/src/hooks/useIsSnapInstalled/useIsSnapInstalled.tsx @@ -12,6 +12,71 @@ import { useWallet } from 'hooks/useWallet/useWallet' const POLL_INTERVAL = 3000 // tune me to make this "feel" right const snapId = getConfig().REACT_APP_SNAP_ID +// https://github.com/wevm/wagmi/blob/21245be51d7c6dff1c7b285226d0c89c4a9d8cac/packages/connectors/src/utils/getInjectedName.ts#L6-L56 +// This will need to be kept up-to-date with the latest list of impersonators +const METAMASK_IMPERSONATORS = [ + 'isBraveWallet', + 'isTokenary', + 'isFrame', + 'isLiquality', + 'isOpera', + 'isTally', + 'isStatus', + 'isXDEFI', + 'isNifty', + 'isRonin', + 'isBinance', + 'isCoinbase', + 'isExodus', + 'isPhantom', + 'isGlow', + 'isOneInch', + 'isRabby', + 'isTrezor', + 'isLedger', + 'isKeystone', + 'isBitBox', + 'isGridPlus', + 'isJade', + 'isPortis', + 'isFortmatic', + 'isTorus', + 'isAuthereum', + 'isWalletLink', + 'isWalletConnect', + 'isDapper', + 'isBitski', + 'isVenly', + 'isSequence', + 'isGamestop', + 'isZerion', + 'isDeBank', + 'isKukai', + 'isTemple', + 'isSpire', + 'isWallet', + 'isCore', + 'isAnchor', + 'isWombat', + 'isMathWallet', + 'isMeetone', + 'isHyperPay', + 'isTokenPocket', + 'isBitpie', + 'isAToken', + 'isOwnbit', + 'isHbWallet', + 'isMYKEY', + 'isHuobiWallet', + 'isEidoo', + 'isTrust', + 'isImToken', + 'isONTO', + 'isSafePal', + 'isCoin98', + 'isVision', +] + export const checkIsSnapInstalled = pDebounce.promise( (): Promise => shapeShiftSnapInstalled(snapId), ) @@ -25,8 +90,6 @@ export const checkIsMetaMask = pMemoize( const provider = (await detectEthereumProvider()) as providers.ExternalProvider // MetaMask impersonators don't support the methods we need to check for snap installation, and will throw if (!provider.isMetaMask) return false - // Some impersonators really like to make it difficult for us to detect *actual* MetaMask - if ((provider as any).isBraveWallet) return false return true }, @@ -35,6 +98,23 @@ export const checkIsMetaMask = pMemoize( }, ) +export const checkIsMetaMaskImpersonator = pMemoize( + async (wallet: HDWallet | null): Promise => { + const isMetaMaskMultichainWallet = wallet instanceof MetaMaskShapeShiftMultiChainHDWallet + // We don't want to run this hook altogether if using any wallet other than MM + if (!isMetaMaskMultichainWallet) return false + + const provider = (await detectEthereumProvider()) as providers.ExternalProvider + // Some impersonators really like to make it difficult for us to detect *actual* MetaMask + // Note, checking for the truthiness of the value isn't enough - some impersonators have the key present but undefined + // This is weird, but welcome to the world of web3 + return METAMASK_IMPERSONATORS.some(impersonator => impersonator in provider) + }, + { + cacheKey: ([_wallet]) => (_wallet as MetaMaskShapeShiftMultiChainHDWallet | null)?._isMetaMask, + }, +) + // https://github.com/MetaMask/metamask-sdk/blob/6230d8394157f53f1b020ae44601a0a69edc6155/packages/sdk/src/Platform/PlatfformManager.ts#L102C30-L111 export const checkisMetaMaskMobileWebView = () => { if (typeof window === 'undefined') { @@ -56,6 +136,8 @@ export const useIsSnapInstalled = (): null | boolean => { const checkSnapInstallation = useCallback(async () => { if (!isConnected || isDemoWallet) return const isMetaMask = await checkIsMetaMask(wallet) + const isMetaMaskImpersonator = await checkIsMetaMaskImpersonator(wallet) + if (isMetaMaskImpersonator) return if (!isMetaMask) return const _isSnapInstalled = await checkIsSnapInstalled() diff --git a/src/plugins/cosmos/hooks/useStakingAction/useStakingAction.tsx b/src/plugins/cosmos/hooks/useStakingAction/useStakingAction.tsx index 672fbcdf500..643cd2969c7 100644 --- a/src/plugins/cosmos/hooks/useStakingAction/useStakingAction.tsx +++ b/src/plugins/cosmos/hooks/useStakingAction/useStakingAction.tsx @@ -6,7 +6,11 @@ import { StakingAction, } from 'plugins/cosmos/components/modals/Staking/StakingCommon' import { getChainAdapterManager } from 'context/PluginProvider/chainAdapterSingleton' -import { checkIsMetaMask, checkIsSnapInstalled } from 'hooks/useIsSnapInstalled/useIsSnapInstalled' +import { + checkIsMetaMask, + checkIsMetaMaskImpersonator, + checkIsSnapInstalled, +} from 'hooks/useIsSnapInstalled/useIsSnapInstalled' import { useWallet } from 'hooks/useWallet/useWallet' import { SHAPESHIFT_COSMOS_VALIDATOR_ADDRESS } from 'state/slices/opportunitiesSlice/resolvers/cosmosSdk/constants' @@ -43,9 +47,10 @@ export const useStakingAction = () => { // Native and KeepKey hdwallets only support offline signing, not broadcasting signed TXs like e.g Metamask const isMetaMask = await checkIsMetaMask(wallet) + const isMetaMaskImpersonator = await checkIsMetaMaskImpersonator(wallet) if ( !wallet.supportsOfflineSigning() && - (!isMetaMask || (isMetaMask && !(await checkIsSnapInstalled()))) + (!isMetaMask || isMetaMaskImpersonator || (isMetaMask && !(await checkIsSnapInstalled()))) ) { throw new Error(`unsupported wallet: ${await wallet.getModel()}`) } diff --git a/yarn.lock b/yarn.lock index ef6bf9a43a5..26795f3c089 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9600,15 +9600,15 @@ __metadata: languageName: node linkType: hard -"@shapeshiftoss/hdwallet-coinbase@npm:1.53.1": - version: 1.53.1 - resolution: "@shapeshiftoss/hdwallet-coinbase@npm:1.53.1" +"@shapeshiftoss/hdwallet-coinbase@npm:1.53.3": + version: 1.53.3 + resolution: "@shapeshiftoss/hdwallet-coinbase@npm:1.53.3" dependencies: "@coinbase/wallet-sdk": ^3.6.6 - "@shapeshiftoss/hdwallet-core": 1.53.1 + "@shapeshiftoss/hdwallet-core": 1.53.3 eth-rpc-errors: ^4.0.3 lodash: ^4.17.21 - checksum: 99f1e1848457f89ed087023f989d8f427ffd9fe329d0f00e522ae875dc8db1200306c9b35ee0afd78b0bfa420cbd981cbe3545ad8354a641b8ab9dcea46cc751 + checksum: 0b91dee44b0ac6488d6d54c7537d5f28461e2dda16cb018870743e94dfe2e35c6165a1800bf15e60d721cdd4689595bb695ed4ada668cae9b62a9ce830c11cd8 languageName: node linkType: hard @@ -9638,9 +9638,9 @@ __metadata: languageName: node linkType: hard -"@shapeshiftoss/hdwallet-core@npm:1.53.1": - version: 1.53.1 - resolution: "@shapeshiftoss/hdwallet-core@npm:1.53.1" +"@shapeshiftoss/hdwallet-core@npm:1.53.3": + version: 1.53.3 + resolution: "@shapeshiftoss/hdwallet-core@npm:1.53.3" dependencies: "@shapeshiftoss/proto-tx-builder": ^0.8.0 eip-712: ^1.0.0 @@ -9648,30 +9648,30 @@ __metadata: lodash: ^4.17.21 rxjs: ^6.4.0 type-assertions: ^1.1.0 - checksum: 3baf400df874761c8365fcf676bf045499b3deca13e5b9364dba17acb06f756f20e28458ab3079956bcc7181432d2cfec67b35ec38296f0e936dc4c19330e61c + checksum: fee0540ff5fb70b09f35f124d4536e588f9223db95b9fb6a68d543b5c0ed7c1fe7a21035e5ff77720189f945d9bac01a1926c0e0abb9c5bcca8ab9f7d2012a9e languageName: node linkType: hard -"@shapeshiftoss/hdwallet-keepkey-webusb@npm:1.53.1": - version: 1.53.1 - resolution: "@shapeshiftoss/hdwallet-keepkey-webusb@npm:1.53.1" +"@shapeshiftoss/hdwallet-keepkey-webusb@npm:1.53.3": + version: 1.53.3 + resolution: "@shapeshiftoss/hdwallet-keepkey-webusb@npm:1.53.3" dependencies: - "@shapeshiftoss/hdwallet-core": 1.53.1 - "@shapeshiftoss/hdwallet-keepkey": 1.53.1 - checksum: 161a07197e7df74b0d5879c2c5924bb9d72a61fd2a84352b1a17074aceef6f7fc5d5ed523a172b1d7aff213e2d30ad94ae0276b94d542e877054bb5334349e18 + "@shapeshiftoss/hdwallet-core": 1.53.3 + "@shapeshiftoss/hdwallet-keepkey": 1.53.3 + checksum: 92eb46c6a5702787b4497597ac73570755ce5795f427f4d82aaf395fc747daf67f06cc84077065fd4b812fed1d9cf5ba451fdc3a7dd5890daa885ee0073fd38e languageName: node linkType: hard -"@shapeshiftoss/hdwallet-keepkey@npm:1.53.1": - version: 1.53.1 - resolution: "@shapeshiftoss/hdwallet-keepkey@npm:1.53.1" +"@shapeshiftoss/hdwallet-keepkey@npm:1.53.3": + version: 1.53.3 + resolution: "@shapeshiftoss/hdwallet-keepkey@npm:1.53.3" dependencies: "@ethereumjs/common": ^2.4.0 "@ethereumjs/tx": ^3.3.0 "@keepkey/device-protocol": ^7.12.2 "@metamask/eth-sig-util": ^7.0.0 "@shapeshiftoss/bitcoinjs-lib": 5.2.0-shapeshift.2 - "@shapeshiftoss/hdwallet-core": 1.53.1 + "@shapeshiftoss/hdwallet-core": 1.53.3 "@shapeshiftoss/proto-tx-builder": ^0.8.0 bignumber.js: ^9.0.1 bnb-javascript-sdk-nobroadcast: ^2.16.14 @@ -9683,27 +9683,27 @@ __metadata: p-lazy: ^3.1.0 semver: ^7.3.8 tiny-secp256k1: ^1.1.6 - checksum: 7342f579819e4c92d5db51c5b8054a884b04b0a0ac4e793fcd0d81dfc235908b9abed57a4c0b85989a77de341c782fb49ebf4d3fb0220289402a07280bf7bc12 + checksum: f30b58d56d628ab420e3fae14f530a948baa52731ba7b56759cd3cc961665976c7115a7ee66a0314989c87e4e52624939ed67cf97c8687476ea8eb12f882c185 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-keplr@npm:1.53.1": - version: 1.53.1 - resolution: "@shapeshiftoss/hdwallet-keplr@npm:1.53.1" +"@shapeshiftoss/hdwallet-keplr@npm:1.53.3": + version: 1.53.3 + resolution: "@shapeshiftoss/hdwallet-keplr@npm:1.53.3" dependencies: "@shapeshiftoss/caip": 8.15.0 - "@shapeshiftoss/hdwallet-core": 1.53.1 + "@shapeshiftoss/hdwallet-core": 1.53.3 "@shapeshiftoss/proto-tx-builder": ^0.8.0 "@shapeshiftoss/types": 3.1.3 base64-js: ^1.5.1 lodash: ^4.17.21 - checksum: ef7b356838921b476c8bbd111df795e68a287ca647230395292218a36a7e3d592db3afb5c5e29ea22d79bc74627c804da36c09507e3505124f2e2a266f9a60a8 + checksum: 4fc540a8820fe9e8b044c73bdde28b7f6755dc6301145d8e31aaba0ecde0c18b76c80ce8495b0e364cc05be7516e16e2fcefc6ee62a2f161f54c5f3a0d729a9f languageName: node linkType: hard -"@shapeshiftoss/hdwallet-ledger-webusb@npm:1.53.1": - version: 1.53.1 - resolution: "@shapeshiftoss/hdwallet-ledger-webusb@npm:1.53.1" +"@shapeshiftoss/hdwallet-ledger-webusb@npm:1.53.3": + version: 1.53.3 + resolution: "@shapeshiftoss/hdwallet-ledger-webusb@npm:1.53.3" dependencies: "@ledgerhq/hw-app-btc": ^10.0.8 "@ledgerhq/hw-app-eth": ^6.9.0 @@ -9711,23 +9711,23 @@ __metadata: "@ledgerhq/hw-transport-webusb": ^6.7.0 "@ledgerhq/live-common": ^21.8.2 "@ledgerhq/logs": ^6.10.1 - "@shapeshiftoss/hdwallet-core": 1.53.1 - "@shapeshiftoss/hdwallet-ledger": 1.53.1 + "@shapeshiftoss/hdwallet-core": 1.53.3 + "@shapeshiftoss/hdwallet-ledger": 1.53.3 "@types/w3c-web-usb": ^1.0.4 p-queue: ^7.4.1 - checksum: 8b99e9d2da08dca29dc539da14a288099f90f2cdbd974c0e263170a91ba146b52870e35bcee3de69c72d4200be5fb2a5e64b5033b796386c5c15f70b6dae55b6 + checksum: 86157eb7b283ee37ef0d9625ad75a6f7acd58e86f7f71e0dfa8a2a2c99cd830b22a89cb9b59b4764c8b32f80260d023ea322c2bddfb68cd1a1482e23a42be25f languageName: node linkType: hard -"@shapeshiftoss/hdwallet-ledger@npm:1.53.1": - version: 1.53.1 - resolution: "@shapeshiftoss/hdwallet-ledger@npm:1.53.1" +"@shapeshiftoss/hdwallet-ledger@npm:1.53.3": + version: 1.53.3 + resolution: "@shapeshiftoss/hdwallet-ledger@npm:1.53.3" dependencies: "@ethereumjs/common": ^2.4.0 "@ethereumjs/tx": ^3.3.0 "@ledgerhq/hw-app-cosmos": ^6.29.1 "@shapeshiftoss/bitcoinjs-lib": 5.2.0-shapeshift.2 - "@shapeshiftoss/hdwallet-core": 1.53.1 + "@shapeshiftoss/hdwallet-core": 1.53.3 base64-js: ^1.5.1 bchaddrjs: ^0.4.4 bitcoinjs-message: ^2.0.0 @@ -9735,28 +9735,28 @@ __metadata: ethereumjs-tx: 1.3.7 ethereumjs-util: ^6.1.0 lodash: ^4.17.21 - checksum: cd767c5ed72d06a4a5eb71af5f54c29203701bc61633536b254c165727053093923efd66d5436436e273fe1cb2d1d79590da58d4216e0701b6248086580fab34 + checksum: 10ecdf3ff61d6a161eb4ade19832c1292c5e01c91fa52ad87a11975b1b36284722fe0571a7f4d67143faf8c30ab45ef08fff6708ab8cad6173abe091292dc247 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-metamask@npm:1.53.1": - version: 1.53.1 - resolution: "@shapeshiftoss/hdwallet-metamask@npm:1.53.1" +"@shapeshiftoss/hdwallet-metamask@npm:1.53.3": + version: 1.53.3 + resolution: "@shapeshiftoss/hdwallet-metamask@npm:1.53.3" dependencies: "@metamask/detect-provider": ^1.2.0 "@metamask/onboarding": ^1.0.1 - "@shapeshiftoss/hdwallet-core": 1.53.1 + "@shapeshiftoss/hdwallet-core": 1.53.3 eth-rpc-errors: ^4.0.3 lodash: ^4.17.21 - checksum: 1e140b3145c48f569dd13519847add5db76921dcd9cb8cad5a950f8bada0809ba56644278806fe4b05f1263dd8d671237714d2b211ce7df3f160416379e8390c + checksum: 0c4e2f19201155218c3faffb9a108bb837408c56391ddd56f8e61d4e8d04e12f46fcf036485017aeb2ea118c3980ca50cc2297b41bd436ef30fe0444730d551a languageName: node linkType: hard -"@shapeshiftoss/hdwallet-native-vault@npm:1.53.1": - version: 1.53.1 - resolution: "@shapeshiftoss/hdwallet-native-vault@npm:1.53.1" +"@shapeshiftoss/hdwallet-native-vault@npm:1.53.3": + version: 1.53.3 + resolution: "@shapeshiftoss/hdwallet-native-vault@npm:1.53.3" dependencies: - "@shapeshiftoss/hdwallet-native": 1.53.1 + "@shapeshiftoss/hdwallet-native": 1.53.3 bip39: ^3.0.4 hash-wasm: ^4.9.0 idb-keyval: ^6.0.3 @@ -9765,17 +9765,17 @@ __metadata: type-assertions: ^1.1.0 uuid: ^8.3.2 web-encoding: ^1.1.0 - checksum: 7b4108eaa0942e1b27b6c121003bd147e0c352c9a541398e490c5c02e7cfbb3957cfb90ea35f5a25d127f0fddca3a5d4cc212cd6ca0a61f1fd64e9baacc97e33 + checksum: 1768f57cc7cd6b58f22c85d0914fe7afce187a296a8ab72b79f31b164c8c0c4515baad6c237739a75ccd5d56656f60c65aeeb9caaec18cb3b7b95c3eb4629293 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-native@npm:1.53.1": - version: 1.53.1 - resolution: "@shapeshiftoss/hdwallet-native@npm:1.53.1" +"@shapeshiftoss/hdwallet-native@npm:1.53.3": + version: 1.53.3 + resolution: "@shapeshiftoss/hdwallet-native@npm:1.53.3" dependencies: "@shapeshiftoss/bitcoinjs-lib": 5.2.0-shapeshift.2 "@shapeshiftoss/fiosdk": 1.2.1-shapeshift.6 - "@shapeshiftoss/hdwallet-core": 1.53.1 + "@shapeshiftoss/hdwallet-core": 1.53.3 "@shapeshiftoss/proto-tx-builder": ^0.8.0 "@zxing/text-encoding": ^0.9.0 bchaddrjs: ^0.4.9 @@ -9796,7 +9796,7 @@ __metadata: tendermint-tx-builder: ^1.0.9 tiny-secp256k1: ^1.1.6 web-encoding: ^1.1.0 - checksum: 265c12096b172592fae17226a5832921367e8a08e337f077ec70b8041dbe6f2b8664e1e20515e4caa7d7aeae96598b4b008784538ae9d22b3375c07df8bbad12 + checksum: 42fd593fd80e9fe4d4faede7e8b928e5aadd414e4f8746b4546cef2d0b42a11e648e8ad672b4c0db156a4a94c783ddf947b97fd5d555c55f0bd220407aa5e03f languageName: node linkType: hard @@ -9831,41 +9831,41 @@ __metadata: languageName: node linkType: hard -"@shapeshiftoss/hdwallet-shapeshift-multichain@npm:1.53.1": - version: 1.53.1 - resolution: "@shapeshiftoss/hdwallet-shapeshift-multichain@npm:1.53.1" +"@shapeshiftoss/hdwallet-shapeshift-multichain@npm:1.53.3": + version: 1.53.3 + resolution: "@shapeshiftoss/hdwallet-shapeshift-multichain@npm:1.53.3" dependencies: "@metamask/detect-provider": ^1.2.0 "@metamask/onboarding": ^1.0.1 "@shapeshiftoss/common-api": ^9.3.0 - "@shapeshiftoss/hdwallet-core": 1.53.1 + "@shapeshiftoss/hdwallet-core": 1.53.3 "@shapeshiftoss/metamask-snaps-adapter": ^1.0.8 "@shapeshiftoss/metamask-snaps-types": ^1.0.8 eth-rpc-errors: ^4.0.3 lodash: ^4.17.21 - checksum: 72179d4d182f014a0dbdc7f70c249e19b053d670a510a8716ea50ba47922e77b59c7b8ceec2f05b11bb173dff2365364fc71c44cdd0b9ba4705f86d0b64193ee + checksum: 7ac6cddd86c2ae55f30252449c7d9b54ef5343067971f1fa66fca1ac0f849583bddbbabd663452a18dcf914bcb5cc0032e8e9d48ef8fcacc706f00b21921d318 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-walletconnectv2@npm:1.53.1": - version: 1.53.1 - resolution: "@shapeshiftoss/hdwallet-walletconnectv2@npm:1.53.1" +"@shapeshiftoss/hdwallet-walletconnectv2@npm:1.53.3": + version: 1.53.3 + resolution: "@shapeshiftoss/hdwallet-walletconnectv2@npm:1.53.3" dependencies: - "@shapeshiftoss/hdwallet-core": 1.53.1 + "@shapeshiftoss/hdwallet-core": 1.53.3 "@walletconnect/ethereum-provider": ^2.10.1 "@walletconnect/modal": ^2.6.2 ethers: ^5.6.5 - checksum: 9efbae12668825d8df36db871e8dd7aac2557b7b5018f357bf78e91eebba9fb7908d966a122b62cc8d62058671370116fc14f132a4d897b4fa319c03ba88d4d4 + checksum: 96dfd68a1cca47e8365779e19b2aaa4949e608ab8287c70220090d65e6c2097d54685e9ce00f6cce4a8a877038c3870a67bec141ce31f0da9aff675ef2e80428 languageName: node linkType: hard -"@shapeshiftoss/hdwallet-xdefi@npm:1.53.1": - version: 1.53.1 - resolution: "@shapeshiftoss/hdwallet-xdefi@npm:1.53.1" +"@shapeshiftoss/hdwallet-xdefi@npm:1.53.3": + version: 1.53.3 + resolution: "@shapeshiftoss/hdwallet-xdefi@npm:1.53.3" dependencies: - "@shapeshiftoss/hdwallet-core": 1.53.1 + "@shapeshiftoss/hdwallet-core": 1.53.3 lodash: ^4.17.21 - checksum: 03531d8b4ab7de06b6b235a2e6b29f24d8d20acec87132139e00ec723e6485da735077bc3c683af43c60172004c627c2e09aca2c32de5a8db253fd5b73cfabc5 + checksum: d86389201759e5544ba0741d6b824e1438827043279e3147e4b6a0038548ad2fcee2c4ea615e9732bdbf5f01c28ec80d2e4d588c61f5dd26d6e51cad0741981e languageName: node linkType: hard @@ -10042,19 +10042,19 @@ __metadata: "@shapeshiftoss/caip": "workspace:^" "@shapeshiftoss/chain-adapters": "workspace:^" "@shapeshiftoss/errors": "workspace:^" - "@shapeshiftoss/hdwallet-coinbase": 1.53.1 - "@shapeshiftoss/hdwallet-core": 1.53.1 - "@shapeshiftoss/hdwallet-keepkey": 1.53.1 - "@shapeshiftoss/hdwallet-keepkey-webusb": 1.53.1 - "@shapeshiftoss/hdwallet-keplr": 1.53.1 - "@shapeshiftoss/hdwallet-ledger": 1.53.1 - "@shapeshiftoss/hdwallet-ledger-webusb": 1.53.1 - "@shapeshiftoss/hdwallet-metamask": 1.53.1 - "@shapeshiftoss/hdwallet-native": 1.53.1 - "@shapeshiftoss/hdwallet-native-vault": 1.53.1 - "@shapeshiftoss/hdwallet-shapeshift-multichain": 1.53.1 - "@shapeshiftoss/hdwallet-walletconnectv2": 1.53.1 - "@shapeshiftoss/hdwallet-xdefi": 1.53.1 + "@shapeshiftoss/hdwallet-coinbase": 1.53.3 + "@shapeshiftoss/hdwallet-core": 1.53.3 + "@shapeshiftoss/hdwallet-keepkey": 1.53.3 + "@shapeshiftoss/hdwallet-keepkey-webusb": 1.53.3 + "@shapeshiftoss/hdwallet-keplr": 1.53.3 + "@shapeshiftoss/hdwallet-ledger": 1.53.3 + "@shapeshiftoss/hdwallet-ledger-webusb": 1.53.3 + "@shapeshiftoss/hdwallet-metamask": 1.53.3 + "@shapeshiftoss/hdwallet-native": 1.53.3 + "@shapeshiftoss/hdwallet-native-vault": 1.53.3 + "@shapeshiftoss/hdwallet-shapeshift-multichain": 1.53.3 + "@shapeshiftoss/hdwallet-walletconnectv2": 1.53.3 + "@shapeshiftoss/hdwallet-xdefi": 1.53.3 "@shapeshiftoss/swapper": "workspace:^" "@shapeshiftoss/types": "workspace:^" "@shapeshiftoss/unchained-client": "workspace:^"