@multiplatform.one/web3 7.19.0 → 7.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +49 -4
- package/dist/cjs/bridge/BridgeClient.native.js.map +1 -1
- package/dist/cjs/bridge/BridgeHost.native.js.map +1 -1
- package/dist/cjs/bridge/SolanaBridge.native.js.map +1 -1
- package/dist/cjs/bridge/base64.native.js.map +1 -1
- package/dist/cjs/bridge/bridgeConnector.native.js.map +1 -1
- package/dist/cjs/bridge/eip1193.native.js.map +1 -1
- package/dist/cjs/bridge/index.native.js.map +1 -1
- package/dist/cjs/bridge/postMessageTransport.native.js.map +1 -1
- package/dist/cjs/bridge/protocol.native.js.map +1 -1
- package/dist/cjs/bridge/transport.native.js.map +1 -1
- package/dist/cjs/bundler/metaMaskConnectTimeouts.cjs +92 -0
- package/dist/cjs/bundler/metaMaskConnectTimeouts.native.js +123 -0
- package/dist/cjs/bundler/metaMaskConnectTimeouts.native.js.map +1 -0
- package/dist/cjs/clients/adapter.native.js.map +1 -1
- package/dist/cjs/clients/bitcoin.native.js.map +1 -1
- package/dist/cjs/clients/connector.native.js.map +1 -1
- package/dist/cjs/clients/evm.native.js.map +1 -1
- package/dist/cjs/clients/gpg.native.js.map +1 -1
- package/dist/cjs/clients/hooks.native.js.map +1 -1
- package/dist/cjs/clients/index.native.js.map +1 -1
- package/dist/cjs/clients/solana.native.js.map +1 -1
- package/dist/cjs/clients/solanaMessage.native.js.map +1 -1
- package/dist/cjs/clients/sui.native.js.map +1 -1
- package/dist/cjs/clients/types.native.js.map +1 -1
- package/dist/cjs/clients/useSolanaClient.native.js.map +1 -1
- package/dist/cjs/clients/walletStandard.native.js.map +1 -1
- package/dist/cjs/components/NetworkSwitcher.native.js.map +1 -1
- package/dist/cjs/components/TransactionStatus.native.js.map +1 -1
- package/dist/cjs/components/index.native.js.map +1 -1
- package/dist/cjs/connectkit/adapters/BitcoinAdapter.native.js.map +1 -1
- package/dist/cjs/connectkit/adapters/EthereumAdapter.native.js.map +1 -1
- package/dist/cjs/connectkit/adapters/SolanaAdapter.native.js.map +1 -1
- package/dist/cjs/connectkit/adapters/SuiAdapter.native.js.map +1 -1
- package/dist/cjs/connectkit/adapters/discover.native.js.map +1 -1
- package/dist/cjs/connectkit/adapters/index.native.js.map +1 -1
- package/dist/cjs/connectkit/adapters/messages.native.js.map +1 -1
- package/dist/cjs/connectkit/adapters/types.native.js.map +1 -1
- package/dist/cjs/connectkit/assets/chains.native.js.map +1 -1
- package/dist/cjs/connectkit/components/BalanceButton/index.native.js +1 -1
- package/dist/cjs/connectkit/components/BalanceButton/index.native.js.map +1 -1
- package/dist/cjs/connectkit/components/Common/Avatar/index.native.js.map +1 -1
- package/dist/cjs/connectkit/components/Common/Avatar/styles.native.js.map +1 -1
- package/dist/cjs/connectkit/components/Common/Chain/index.native.js.map +1 -1
- package/dist/cjs/connectkit/components/Common/Chain/styles.native.js.map +1 -1
- package/dist/cjs/connectkit/components/Common/ChainSelect/index.native.js +2 -2
- package/dist/cjs/connectkit/components/Common/ChainSelect/index.native.js.map +1 -1
- package/dist/cjs/connectkit/components/Common/ChainSelectDropdown/index.native.js +1 -1
- package/dist/cjs/connectkit/components/Common/ChainSelectDropdown/index.native.js.map +1 -1
- package/dist/cjs/connectkit/components/Common/ChainSelectDropdown/styles.native.js.map +1 -1
- package/dist/cjs/connectkit/components/Common/ChainSelectList/index.native.js.map +1 -1
- package/dist/cjs/connectkit/components/Common/ChainSelectList/styles.native.js.map +1 -1
- package/dist/cjs/connectkit/components/Common/ConnectorList/index.cjs +10 -29
- package/dist/cjs/connectkit/components/Common/ConnectorList/index.native.js +11 -32
- package/dist/cjs/connectkit/components/Common/ConnectorList/index.native.js.map +1 -1
- package/dist/cjs/connectkit/components/Common/ConnectorList/styles.native.js.map +1 -1
- package/dist/cjs/connectkit/components/ConnectButton/index.native.js +4 -4
- package/dist/cjs/connectkit/components/ConnectButton/index.native.js.map +1 -1
- package/dist/cjs/connectkit/components/ConnectButton/styles.native.js.map +1 -1
- package/dist/cjs/connectkit/components/ConnectModal/ConnectUsing.cjs +4 -38
- package/dist/cjs/connectkit/components/ConnectModal/ConnectUsing.native.js +5 -43
- package/dist/cjs/connectkit/components/ConnectModal/ConnectUsing.native.js.map +1 -1
- package/dist/cjs/connectkit/components/ConnectModal/ConnectWithInjector/CircleSpinner/index.native.js.map +1 -1
- package/dist/cjs/connectkit/components/ConnectModal/ConnectWithInjector/CircleSpinner/styles.native.js.map +1 -1
- package/dist/cjs/connectkit/components/ConnectModal/ConnectWithInjector/SquircleSpinner/index.native.js.map +1 -1
- package/dist/cjs/connectkit/components/ConnectModal/ConnectWithInjector/SquircleSpinner/styles.native.js.map +1 -1
- package/dist/cjs/connectkit/components/ConnectModal/ConnectWithInjector/index.cjs +0 -14
- package/dist/cjs/connectkit/components/ConnectModal/ConnectWithInjector/index.native.js +10 -65
- package/dist/cjs/connectkit/components/ConnectModal/ConnectWithInjector/index.native.js.map +1 -1
- package/dist/cjs/connectkit/components/ConnectModal/ConnectWithInjector/styles.native.js.map +1 -1
- package/dist/cjs/connectkit/components/ConnectModal/demo.cjs +0 -15
- package/dist/cjs/connectkit/components/ConnectModal/demo.native.js +9 -24
- package/dist/cjs/connectkit/components/ConnectModal/demo.native.js.map +1 -1
- package/dist/cjs/connectkit/components/NetworkButton/index.native.js +2 -2
- package/dist/cjs/connectkit/components/NetworkButton/index.native.js.map +1 -1
- package/dist/cjs/connectkit/components/Pages/About/graphics.native.js.map +1 -1
- package/dist/cjs/connectkit/components/Pages/About/index.native.js.map +1 -1
- package/dist/cjs/connectkit/components/Pages/About/styles.native.js.map +1 -1
- package/dist/cjs/connectkit/components/Pages/Connectors/index.native.js +1 -1
- package/dist/cjs/connectkit/components/Pages/Connectors/index.native.js.map +1 -1
- package/dist/cjs/connectkit/components/Pages/Connectors/styles.native.js.map +1 -1
- package/dist/cjs/connectkit/components/Pages/DownloadApp/index.native.js.map +1 -1
- package/dist/cjs/connectkit/components/Pages/Onboarding/index.native.js.map +1 -1
- package/dist/cjs/connectkit/components/Pages/Onboarding/styles.native.js.map +1 -1
- package/dist/cjs/connectkit/components/Pages/Profile/index.native.js +2 -2
- package/dist/cjs/connectkit/components/Pages/Profile/index.native.js.map +1 -1
- package/dist/cjs/connectkit/components/Pages/Profile/styles.native.js.map +1 -1
- package/dist/cjs/connectkit/components/Pages/SignInWithEthereum/index.native.js +3 -3
- package/dist/cjs/connectkit/components/Pages/SignInWithEthereum/index.native.js.map +1 -1
- package/dist/cjs/connectkit/components/Pages/SignInWithEthereum/styles.native.js.map +1 -1
- package/dist/cjs/connectkit/components/Pages/SwitchNetworks/index.native.js +1 -1
- package/dist/cjs/connectkit/components/Pages/SwitchNetworks/index.native.js.map +1 -1
- package/dist/cjs/connectkit/components/Standard/SIWE/index.native.js +1 -1
- package/dist/cjs/connectkit/components/Standard/SIWE/index.native.js.map +1 -1
- package/dist/cjs/connectkit/components/Standard/SIWE/styles.native.js.map +1 -1
- package/dist/cjs/connectkit/components/contexts/web3/index.cjs +0 -15
- package/dist/cjs/connectkit/components/contexts/web3/index.native.js +0 -17
- package/dist/cjs/connectkit/components/contexts/web3/index.native.js.map +1 -1
- package/dist/cjs/connectkit/connectors/aaveAccountConnector.cjs +57 -0
- package/dist/cjs/connectkit/connectors/aaveAccountConnector.native.js +67 -0
- package/dist/cjs/connectkit/connectors/aaveAccountConnector.native.js.map +1 -0
- package/dist/cjs/connectkit/connectors/createWalletMessage.native.js.map +1 -1
- package/dist/cjs/connectkit/connectors/embeddedDesktop.cjs +1 -1
- package/dist/cjs/connectkit/connectors/embeddedDesktop.native.js +1 -1
- package/dist/cjs/connectkit/connectors/embeddedDesktop.native.js.map +1 -1
- package/dist/cjs/connectkit/connectors/ensureWalletConnectors.native.js.map +1 -1
- package/dist/cjs/connectkit/connectors/getWalletConnectors.native.js.map +1 -1
- package/dist/cjs/connectkit/connectors/metaMaskConnectConnector.cjs +255 -0
- package/dist/cjs/connectkit/connectors/metaMaskConnectConnector.native.js +315 -0
- package/dist/cjs/connectkit/connectors/metaMaskConnectConnector.native.js.map +1 -0
- package/dist/cjs/connectkit/connectors/syntheticChains.native.js.map +1 -1
- package/dist/cjs/connectkit/connectors/walletAdapterConnector.native.js.map +1 -1
- package/dist/cjs/connectkit/constants/chainConfigs.native.js.map +1 -1
- package/dist/cjs/connectkit/defaultConfig.cjs +8 -2
- package/dist/cjs/connectkit/defaultConfig.native.js +8 -2
- package/dist/cjs/connectkit/defaultConfig.native.js.map +1 -1
- package/dist/cjs/connectkit/defaultConnectors.cjs +19 -37
- package/dist/cjs/connectkit/defaultConnectors.native.js +19 -37
- package/dist/cjs/connectkit/defaultConnectors.native.js.map +1 -1
- package/dist/cjs/connectkit/defaultTransports.native.js.map +1 -1
- package/dist/cjs/connectkit/hooks/useChainIsSupported.native.js.map +1 -1
- package/dist/cjs/connectkit/hooks/useChains.native.js.map +1 -1
- package/dist/cjs/connectkit/hooks/useConnect.native.js.map +1 -1
- package/dist/cjs/connectkit/hooks/useConnectCallback.native.js.map +1 -1
- package/dist/cjs/connectkit/hooks/useConnectors.cjs +1 -5
- package/dist/cjs/connectkit/hooks/useConnectors.native.js +1 -5
- package/dist/cjs/connectkit/hooks/useConnectors.native.js.map +1 -1
- package/dist/cjs/connectkit/hooks/useEnsFallbackConfig.native.js.map +1 -1
- package/dist/cjs/connectkit/hooks/useLastConnector.native.js.map +1 -1
- package/dist/cjs/connectkit/index.cjs +2 -0
- package/dist/cjs/connectkit/index.native.js +10 -8
- package/dist/cjs/connectkit/index.native.js.map +1 -1
- package/dist/cjs/connectkit/openConnector/context.native.js.map +1 -1
- package/dist/cjs/connectkit/openConnector/device.native.js.map +1 -1
- package/dist/cjs/connectkit/openConnector/index.native.js.map +1 -1
- package/dist/cjs/connectkit/openConnector/launcher.native.js.map +1 -1
- package/dist/cjs/connectkit/profileHeaderAction.native.js +1 -1
- package/dist/cjs/connectkit/profileHeaderAction.native.js.map +1 -1
- package/dist/cjs/connectkit/screens.cjs +1 -14
- package/dist/cjs/connectkit/screens.native.js +23 -40
- package/dist/cjs/connectkit/screens.native.js.map +1 -1
- package/dist/cjs/connectkit/siwe/SIWEContext.native.js.map +1 -1
- package/dist/cjs/connectkit/siwe/SIWEProvider.cjs +3 -2
- package/dist/cjs/connectkit/siwe/SIWEProvider.native.js +6 -4
- package/dist/cjs/connectkit/siwe/SIWEProvider.native.js.map +1 -1
- package/dist/cjs/connectkit/siwe/connectIntent.native.js.map +1 -1
- package/dist/cjs/connectkit/siwe/index.native.js.map +1 -1
- package/dist/cjs/connectkit/siwe/useSIWE.native.js.map +1 -1
- package/dist/cjs/connectkit/useWeb3Modal.native.js +2 -2
- package/dist/cjs/connectkit/useWeb3Modal.native.js.map +1 -1
- package/dist/cjs/connectkit/wallets/index.cjs +4 -3
- package/dist/cjs/connectkit/wallets/index.native.js +4 -3
- package/dist/cjs/connectkit/wallets/index.native.js.map +1 -1
- package/dist/cjs/connectkit/wallets/useWallets.cjs +7 -22
- package/dist/cjs/connectkit/wallets/useWallets.native.js +6 -22
- package/dist/cjs/connectkit/wallets/useWallets.native.js.map +1 -1
- package/dist/cjs/connectkit/wallets/walletConfigs.cjs +3 -62
- package/dist/cjs/connectkit/wallets/walletConfigs.native.js +2 -65
- package/dist/cjs/connectkit/wallets/walletConfigs.native.js.map +1 -1
- package/dist/cjs/connectkit/web3Bridge.cjs +2 -6
- package/dist/cjs/connectkit/web3Bridge.native.js +4 -9
- package/dist/cjs/connectkit/web3Bridge.native.js.map +1 -1
- package/dist/cjs/connectkit/web3Provider.native.js.map +1 -1
- package/dist/cjs/esbuild.cjs +54 -0
- package/dist/cjs/esbuild.native.js +57 -0
- package/dist/cjs/esbuild.native.js.map +1 -0
- package/dist/cjs/examples/LockContract.native.js.map +1 -1
- package/dist/cjs/examples/index.native.js.map +1 -1
- package/dist/cjs/hooks/index.native.js.map +1 -1
- package/dist/cjs/hooks/useContractRead.native.js.map +1 -1
- package/dist/cjs/hooks/useContractWrite.native.js.map +1 -1
- package/dist/cjs/hooks/useWallet.cjs +1 -2
- package/dist/cjs/hooks/useWallet.native.js +1 -4
- package/dist/cjs/hooks/useWallet.native.js.map +1 -1
- package/dist/cjs/index.native.js +6 -6
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/providers/WalletProvider.cjs +1 -2
- package/dist/cjs/providers/index.native.js.map +1 -1
- package/dist/cjs/providers/mockConnector.native.js.map +1 -1
- package/dist/cjs/providers/native/deepLink.cjs +1 -1
- package/dist/cjs/providers/native/deepLink.native.js +1 -1
- package/dist/cjs/providers/native/deepLink.native.js.map +1 -1
- package/dist/cjs/providers/native/inject.native.js.map +1 -1
- package/dist/cjs/providers/native/visibility.native.js.map +1 -1
- package/dist/cjs/providers/walletConfig.native.js.map +1 -1
- package/dist/cjs/siws/index.native.js.map +1 -1
- package/dist/cjs/siws/message.native.js.map +1 -1
- package/dist/cjs/siws/signWithBridge.native.js.map +1 -1
- package/dist/cjs/siws/verify.native.js.map +1 -1
- package/dist/cjs/solana.native.js.map +1 -1
- package/dist/cjs/vite.cjs +76 -0
- package/dist/cjs/vite.native.js +79 -0
- package/dist/cjs/vite.native.js.map +1 -0
- package/dist/esm/bundler/metaMaskConnectTimeouts.mjs +64 -0
- package/dist/esm/bundler/metaMaskConnectTimeouts.mjs.map +1 -0
- package/dist/esm/bundler/metaMaskConnectTimeouts.native.js +92 -0
- package/dist/esm/bundler/metaMaskConnectTimeouts.native.js.map +1 -0
- package/dist/esm/connectkit/components/Common/ConnectorList/index.mjs +11 -30
- package/dist/esm/connectkit/components/Common/ConnectorList/index.mjs.map +1 -1
- package/dist/esm/connectkit/components/Common/ConnectorList/index.native.js +12 -33
- package/dist/esm/connectkit/components/Common/ConnectorList/index.native.js.map +1 -1
- package/dist/esm/connectkit/components/ConnectModal/ConnectUsing.mjs +4 -38
- package/dist/esm/connectkit/components/ConnectModal/ConnectUsing.mjs.map +1 -1
- package/dist/esm/connectkit/components/ConnectModal/ConnectUsing.native.js +4 -42
- package/dist/esm/connectkit/components/ConnectModal/ConnectUsing.native.js.map +1 -1
- package/dist/esm/connectkit/components/ConnectModal/ConnectWithInjector/index.mjs +1 -15
- package/dist/esm/connectkit/components/ConnectModal/ConnectWithInjector/index.mjs.map +1 -1
- package/dist/esm/connectkit/components/ConnectModal/ConnectWithInjector/index.native.js +8 -63
- package/dist/esm/connectkit/components/ConnectModal/ConnectWithInjector/index.native.js.map +1 -1
- package/dist/esm/connectkit/components/ConnectModal/demo.mjs +0 -15
- package/dist/esm/connectkit/components/ConnectModal/demo.mjs.map +1 -1
- package/dist/esm/connectkit/components/ConnectModal/demo.native.js +0 -15
- package/dist/esm/connectkit/components/ConnectModal/demo.native.js.map +1 -1
- package/dist/esm/connectkit/components/contexts/web3/index.mjs +0 -15
- package/dist/esm/connectkit/components/contexts/web3/index.mjs.map +1 -1
- package/dist/esm/connectkit/components/contexts/web3/index.native.js +0 -17
- package/dist/esm/connectkit/components/contexts/web3/index.native.js.map +1 -1
- package/dist/esm/connectkit/connectors/aaveAccountConnector.mjs +31 -0
- package/dist/esm/connectkit/connectors/aaveAccountConnector.mjs.map +1 -0
- package/dist/esm/connectkit/connectors/aaveAccountConnector.native.js +38 -0
- package/dist/esm/connectkit/connectors/aaveAccountConnector.native.js.map +1 -0
- package/dist/esm/connectkit/connectors/embeddedDesktop.mjs +1 -1
- package/dist/esm/connectkit/connectors/embeddedDesktop.mjs.map +1 -1
- package/dist/esm/connectkit/connectors/embeddedDesktop.native.js +1 -1
- package/dist/esm/connectkit/connectors/embeddedDesktop.native.js.map +1 -1
- package/dist/esm/connectkit/connectors/metaMaskConnectConnector.mjs +216 -0
- package/dist/esm/connectkit/connectors/metaMaskConnectConnector.mjs.map +1 -0
- package/dist/esm/connectkit/connectors/metaMaskConnectConnector.native.js +273 -0
- package/dist/esm/connectkit/connectors/metaMaskConnectConnector.native.js.map +1 -0
- package/dist/esm/connectkit/defaultConfig.mjs +8 -2
- package/dist/esm/connectkit/defaultConfig.mjs.map +1 -1
- package/dist/esm/connectkit/defaultConfig.native.js +8 -2
- package/dist/esm/connectkit/defaultConfig.native.js.map +1 -1
- package/dist/esm/connectkit/defaultConnectors.mjs +16 -34
- package/dist/esm/connectkit/defaultConnectors.mjs.map +1 -1
- package/dist/esm/connectkit/defaultConnectors.native.js +16 -34
- package/dist/esm/connectkit/defaultConnectors.native.js.map +1 -1
- package/dist/esm/connectkit/hooks/useConnectors.mjs +1 -4
- package/dist/esm/connectkit/hooks/useConnectors.mjs.map +1 -1
- package/dist/esm/connectkit/hooks/useConnectors.native.js +1 -4
- package/dist/esm/connectkit/hooks/useConnectors.native.js.map +1 -1
- package/dist/esm/connectkit/index.mjs +2 -1
- package/dist/esm/connectkit/index.mjs.map +1 -1
- package/dist/esm/connectkit/index.native.js +2 -1
- package/dist/esm/connectkit/index.native.js.map +1 -1
- package/dist/esm/connectkit/screens.mjs +1 -14
- package/dist/esm/connectkit/screens.mjs.map +1 -1
- package/dist/esm/connectkit/screens.native.js +16 -33
- package/dist/esm/connectkit/screens.native.js.map +1 -1
- package/dist/esm/connectkit/siwe/SIWEProvider.mjs +3 -2
- package/dist/esm/connectkit/siwe/SIWEProvider.mjs.map +1 -1
- package/dist/esm/connectkit/siwe/SIWEProvider.native.js +6 -4
- package/dist/esm/connectkit/siwe/SIWEProvider.native.js.map +1 -1
- package/dist/esm/connectkit/wallets/index.mjs +3 -2
- package/dist/esm/connectkit/wallets/index.mjs.map +1 -1
- package/dist/esm/connectkit/wallets/index.native.js +3 -2
- package/dist/esm/connectkit/wallets/index.native.js.map +1 -1
- package/dist/esm/connectkit/wallets/useWallets.mjs +2 -17
- package/dist/esm/connectkit/wallets/useWallets.mjs.map +1 -1
- package/dist/esm/connectkit/wallets/useWallets.native.js +1 -17
- package/dist/esm/connectkit/wallets/useWallets.native.js.map +1 -1
- package/dist/esm/connectkit/wallets/walletConfigs.mjs +4 -63
- package/dist/esm/connectkit/wallets/walletConfigs.mjs.map +1 -1
- package/dist/esm/connectkit/wallets/walletConfigs.native.js +3 -66
- package/dist/esm/connectkit/wallets/walletConfigs.native.js.map +1 -1
- package/dist/esm/connectkit/web3Bridge.mjs +3 -7
- package/dist/esm/connectkit/web3Bridge.mjs.map +1 -1
- package/dist/esm/connectkit/web3Bridge.native.js +3 -8
- package/dist/esm/connectkit/web3Bridge.native.js.map +1 -1
- package/dist/esm/esbuild.mjs +29 -0
- package/dist/esm/esbuild.mjs.map +1 -0
- package/dist/esm/esbuild.native.js +29 -0
- package/dist/esm/esbuild.native.js.map +1 -0
- package/dist/esm/hooks/useWallet.mjs +1 -2
- package/dist/esm/hooks/useWallet.mjs.map +1 -1
- package/dist/esm/hooks/useWallet.native.js +1 -4
- package/dist/esm/hooks/useWallet.native.js.map +1 -1
- package/dist/esm/providers/WalletProvider.mjs +1 -2
- package/dist/esm/providers/WalletProvider.mjs.map +1 -1
- package/dist/esm/providers/native/deepLink.mjs +1 -1
- package/dist/esm/providers/native/deepLink.mjs.map +1 -1
- package/dist/esm/providers/native/deepLink.native.js +1 -1
- package/dist/esm/providers/native/deepLink.native.js.map +1 -1
- package/dist/esm/providers/walletConfig.mjs.map +1 -1
- package/dist/esm/providers/walletConfig.native.js.map +1 -1
- package/dist/esm/vite.mjs +51 -0
- package/dist/esm/vite.mjs.map +1 -0
- package/dist/esm/vite.native.js +51 -0
- package/dist/esm/vite.native.js.map +1 -0
- package/dist/jsx/bundler/metaMaskConnectTimeouts.mjs +64 -0
- package/dist/jsx/bundler/metaMaskConnectTimeouts.mjs.map +1 -0
- package/dist/jsx/bundler/metaMaskConnectTimeouts.native.js +123 -0
- package/dist/jsx/bundler/metaMaskConnectTimeouts.native.js.map +1 -0
- package/dist/jsx/connectkit/components/Common/ConnectorList/index.mjs +11 -30
- package/dist/jsx/connectkit/components/Common/ConnectorList/index.mjs.map +1 -1
- package/dist/jsx/connectkit/components/Common/ConnectorList/index.native.js +11 -32
- package/dist/jsx/connectkit/components/Common/ConnectorList/index.native.js.map +1 -1
- package/dist/jsx/connectkit/components/ConnectModal/ConnectUsing.mjs +4 -38
- package/dist/jsx/connectkit/components/ConnectModal/ConnectUsing.mjs.map +1 -1
- package/dist/jsx/connectkit/components/ConnectModal/ConnectUsing.native.js +4 -42
- package/dist/jsx/connectkit/components/ConnectModal/ConnectUsing.native.js.map +1 -1
- package/dist/jsx/connectkit/components/ConnectModal/ConnectWithInjector/index.mjs +1 -15
- package/dist/jsx/connectkit/components/ConnectModal/ConnectWithInjector/index.mjs.map +1 -1
- package/dist/jsx/connectkit/components/ConnectModal/ConnectWithInjector/index.native.js +7 -62
- package/dist/jsx/connectkit/components/ConnectModal/ConnectWithInjector/index.native.js.map +1 -1
- package/dist/jsx/connectkit/components/ConnectModal/demo.mjs +0 -15
- package/dist/jsx/connectkit/components/ConnectModal/demo.mjs.map +1 -1
- package/dist/jsx/connectkit/components/ConnectModal/demo.native.js +0 -15
- package/dist/jsx/connectkit/components/ConnectModal/demo.native.js.map +1 -1
- package/dist/jsx/connectkit/components/contexts/web3/index.mjs +0 -15
- package/dist/jsx/connectkit/components/contexts/web3/index.mjs.map +1 -1
- package/dist/jsx/connectkit/components/contexts/web3/index.native.js +0 -17
- package/dist/jsx/connectkit/components/contexts/web3/index.native.js.map +1 -1
- package/dist/jsx/connectkit/connectors/aaveAccountConnector.mjs +31 -0
- package/dist/jsx/connectkit/connectors/aaveAccountConnector.mjs.map +1 -0
- package/dist/jsx/connectkit/connectors/aaveAccountConnector.native.js +67 -0
- package/dist/jsx/connectkit/connectors/aaveAccountConnector.native.js.map +1 -0
- package/dist/jsx/connectkit/connectors/embeddedDesktop.mjs +1 -1
- package/dist/jsx/connectkit/connectors/embeddedDesktop.mjs.map +1 -1
- package/dist/jsx/connectkit/connectors/embeddedDesktop.native.js +1 -1
- package/dist/jsx/connectkit/connectors/metaMaskConnectConnector.mjs +216 -0
- package/dist/jsx/connectkit/connectors/metaMaskConnectConnector.mjs.map +1 -0
- package/dist/jsx/connectkit/connectors/metaMaskConnectConnector.native.js +315 -0
- package/dist/jsx/connectkit/connectors/metaMaskConnectConnector.native.js.map +1 -0
- package/dist/jsx/connectkit/defaultConfig.mjs +8 -2
- package/dist/jsx/connectkit/defaultConfig.mjs.map +1 -1
- package/dist/jsx/connectkit/defaultConfig.native.js +8 -2
- package/dist/jsx/connectkit/defaultConfig.native.js.map +1 -1
- package/dist/jsx/connectkit/defaultConnectors.mjs +16 -34
- package/dist/jsx/connectkit/defaultConnectors.mjs.map +1 -1
- package/dist/jsx/connectkit/defaultConnectors.native.js +19 -37
- package/dist/jsx/connectkit/defaultConnectors.native.js.map +1 -1
- package/dist/jsx/connectkit/hooks/useConnectors.mjs +1 -4
- package/dist/jsx/connectkit/hooks/useConnectors.mjs.map +1 -1
- package/dist/jsx/connectkit/hooks/useConnectors.native.js +1 -5
- package/dist/jsx/connectkit/hooks/useConnectors.native.js.map +1 -1
- package/dist/jsx/connectkit/index.mjs +2 -1
- package/dist/jsx/connectkit/index.mjs.map +1 -1
- package/dist/jsx/connectkit/index.native.js +2 -0
- package/dist/jsx/connectkit/index.native.js.map +1 -1
- package/dist/jsx/connectkit/screens.mjs +1 -14
- package/dist/jsx/connectkit/screens.mjs.map +1 -1
- package/dist/jsx/connectkit/screens.native.js +16 -33
- package/dist/jsx/connectkit/screens.native.js.map +1 -1
- package/dist/jsx/connectkit/siwe/SIWEProvider.mjs +3 -2
- package/dist/jsx/connectkit/siwe/SIWEProvider.mjs.map +1 -1
- package/dist/jsx/connectkit/siwe/SIWEProvider.native.js +6 -4
- package/dist/jsx/connectkit/siwe/SIWEProvider.native.js.map +1 -1
- package/dist/jsx/connectkit/wallets/index.mjs +3 -2
- package/dist/jsx/connectkit/wallets/index.mjs.map +1 -1
- package/dist/jsx/connectkit/wallets/index.native.js +4 -3
- package/dist/jsx/connectkit/wallets/index.native.js.map +1 -1
- package/dist/jsx/connectkit/wallets/useWallets.mjs +2 -17
- package/dist/jsx/connectkit/wallets/useWallets.mjs.map +1 -1
- package/dist/jsx/connectkit/wallets/useWallets.native.js +6 -22
- package/dist/jsx/connectkit/wallets/useWallets.native.js.map +1 -1
- package/dist/jsx/connectkit/wallets/walletConfigs.mjs +4 -63
- package/dist/jsx/connectkit/wallets/walletConfigs.mjs.map +1 -1
- package/dist/jsx/connectkit/wallets/walletConfigs.native.js +2 -65
- package/dist/jsx/connectkit/wallets/walletConfigs.native.js.map +1 -1
- package/dist/jsx/connectkit/web3Bridge.mjs +3 -7
- package/dist/jsx/connectkit/web3Bridge.mjs.map +1 -1
- package/dist/jsx/connectkit/web3Bridge.native.js +2 -7
- package/dist/jsx/connectkit/web3Bridge.native.js.map +1 -1
- package/dist/jsx/esbuild.mjs +29 -0
- package/dist/jsx/esbuild.mjs.map +1 -0
- package/dist/jsx/esbuild.native.js +57 -0
- package/dist/jsx/esbuild.native.js.map +1 -0
- package/dist/jsx/hooks/useWallet.mjs +1 -2
- package/dist/jsx/hooks/useWallet.mjs.map +1 -1
- package/dist/jsx/hooks/useWallet.native.js +1 -4
- package/dist/jsx/hooks/useWallet.native.js.map +1 -1
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/providers/WalletProvider.mjs +1 -2
- package/dist/jsx/providers/WalletProvider.mjs.map +1 -1
- package/dist/jsx/providers/native/deepLink.mjs +1 -1
- package/dist/jsx/providers/native/deepLink.mjs.map +1 -1
- package/dist/jsx/providers/native/deepLink.native.js +1 -1
- package/dist/jsx/providers/native/deepLink.native.js.map +1 -1
- package/dist/jsx/providers/walletConfig.mjs.map +1 -1
- package/dist/jsx/providers/walletConfig.native.js.map +1 -1
- package/dist/jsx/vite.mjs +51 -0
- package/dist/jsx/vite.mjs.map +1 -0
- package/dist/jsx/vite.native.js +79 -0
- package/dist/jsx/vite.native.js.map +1 -0
- package/package.json +22 -10
- package/src/bundler/metaMaskConnectTimeouts.spec.ts +390 -0
- package/src/bundler/metaMaskConnectTimeouts.ts +126 -0
- package/src/connectkit/adapters/SolanaAdapter.ts +1 -1
- package/src/connectkit/adapters/discover.ts +1 -1
- package/src/connectkit/components/Common/ConnectorList/index.tsx +20 -50
- package/src/connectkit/components/ConnectModal/ConnectUsing.tsx +11 -62
- package/src/connectkit/components/ConnectModal/ConnectWithInjector/index.tsx +10 -70
- package/src/connectkit/components/ConnectModal/demo.tsx +1 -19
- package/src/connectkit/components/contexts/web3/index.tsx +1 -23
- package/src/connectkit/connectors/aaveAccountConnector.spec.ts +87 -0
- package/src/connectkit/connectors/aaveAccountConnector.ts +43 -0
- package/src/connectkit/connectors/embeddedDesktop.spec.ts +5 -5
- package/src/connectkit/connectors/embeddedDesktop.ts +5 -5
- package/src/connectkit/connectors/metaMaskConnectConnector.spec.ts +230 -0
- package/src/connectkit/connectors/metaMaskConnectConnector.ts +272 -0
- package/src/connectkit/defaultConfig.ts +16 -7
- package/src/connectkit/defaultConnectors.ts +19 -40
- package/src/connectkit/hooks/useConnectors.ts +0 -10
- package/src/connectkit/index.ts +4 -0
- package/src/connectkit/screens.tsx +1 -21
- package/src/connectkit/siwe/SIWEProvider.spec.tsx +70 -2
- package/src/connectkit/siwe/SIWEProvider.tsx +5 -3
- package/src/connectkit/wallets/index.ts +5 -2
- package/src/connectkit/wallets/useWallets.tsx +1 -20
- package/src/connectkit/wallets/walletConfigs.tsx +2 -64
- package/src/connectkit/web3Bridge.tsx +4 -21
- package/src/esbuild.ts +42 -0
- package/src/hooks/useWallet.spec.ts +6 -15
- package/src/hooks/useWallet.ts +1 -2
- package/src/providers/WalletProvider.native.tsx +1 -1
- package/src/providers/WalletProvider.tsx +5 -7
- package/src/providers/mockConnector.ts +2 -2
- package/src/providers/native/deepLink.spec.ts +3 -4
- package/src/providers/native/deepLink.ts +1 -2
- package/src/providers/native/inject.spec.ts +1 -1
- package/src/providers/walletConfig.spec.ts +1 -1
- package/src/providers/walletConfig.ts +2 -1
- package/src/vite.ts +60 -0
- package/types/bundler/metaMaskConnectTimeouts.d.ts +36 -0
- package/types/bundler/metaMaskConnectTimeouts.d.ts.map +1 -0
- package/types/connectkit/adapters/discover.d.ts +1 -1
- package/types/connectkit/components/Common/ConnectorList/index.d.ts.map +1 -1
- package/types/connectkit/components/ConnectModal/ConnectUsing.d.ts.map +1 -1
- package/types/connectkit/components/ConnectModal/ConnectWithInjector/index.d.ts +0 -1
- package/types/connectkit/components/ConnectModal/ConnectWithInjector/index.d.ts.map +1 -1
- package/types/connectkit/components/ConnectModal/demo.d.ts.map +1 -1
- package/types/connectkit/components/contexts/web3/index.d.ts +1 -5
- package/types/connectkit/components/contexts/web3/index.d.ts.map +1 -1
- package/types/connectkit/connectors/aaveAccountConnector.d.ts +5 -0
- package/types/connectkit/connectors/aaveAccountConnector.d.ts.map +1 -0
- package/types/connectkit/connectors/embeddedDesktop.d.ts +4 -4
- package/types/connectkit/connectors/embeddedDesktop.d.ts.map +1 -1
- package/types/connectkit/connectors/metaMaskConnectConnector.d.ts +35 -0
- package/types/connectkit/connectors/metaMaskConnectConnector.d.ts.map +1 -0
- package/types/connectkit/defaultConfig.d.ts +3 -2
- package/types/connectkit/defaultConfig.d.ts.map +1 -1
- package/types/connectkit/defaultConnectors.d.ts +3 -4
- package/types/connectkit/defaultConnectors.d.ts.map +1 -1
- package/types/connectkit/hooks/useConnectors.d.ts +0 -1
- package/types/connectkit/hooks/useConnectors.d.ts.map +1 -1
- package/types/connectkit/index.d.ts +1 -0
- package/types/connectkit/index.d.ts.map +1 -1
- package/types/connectkit/screens.d.ts +0 -4
- package/types/connectkit/screens.d.ts.map +1 -1
- package/types/connectkit/siwe/SIWEProvider.d.ts.map +1 -1
- package/types/connectkit/wallets/index.d.ts.map +1 -1
- package/types/connectkit/wallets/useWallets.d.ts.map +1 -1
- package/types/connectkit/wallets/walletConfigs.d.ts +0 -2
- package/types/connectkit/wallets/walletConfigs.d.ts.map +1 -1
- package/types/connectkit/web3Bridge.d.ts.map +1 -1
- package/types/esbuild.d.ts +31 -0
- package/types/esbuild.d.ts.map +1 -0
- package/types/hooks/useWallet.d.ts.map +1 -1
- package/types/providers/WalletProvider.d.ts.map +1 -1
- package/types/providers/mockConnector.d.ts +2 -2
- package/types/providers/native/deepLink.d.ts +1 -1
- package/types/providers/native/deepLink.d.ts.map +1 -1
- package/types/providers/walletConfig.d.ts +2 -1
- package/types/providers/walletConfig.d.ts.map +1 -1
- package/types/vite.d.ts +12 -0
- package/types/vite.d.ts.map +1 -0
- package/dist/cjs/connectkit/components/ConnectModal/ConnectWithQRCode.cjs +0 -133
- package/dist/cjs/connectkit/components/ConnectModal/ConnectWithQRCode.native.js +0 -179
- package/dist/cjs/connectkit/components/ConnectModal/ConnectWithQRCode.native.js.map +0 -1
- package/dist/cjs/connectkit/components/Pages/MobileConnectors/index.cjs +0 -158
- package/dist/cjs/connectkit/components/Pages/MobileConnectors/index.native.js +0 -183
- package/dist/cjs/connectkit/components/Pages/MobileConnectors/index.native.js.map +0 -1
- package/dist/cjs/connectkit/components/Pages/MobileConnectors/styles.cjs +0 -90
- package/dist/cjs/connectkit/components/Pages/MobileConnectors/styles.native.js +0 -99
- package/dist/cjs/connectkit/components/Pages/MobileConnectors/styles.native.js.map +0 -1
- package/dist/cjs/connectkit/connectors/metaMaskSdkConnector.cjs +0 -398
- package/dist/cjs/connectkit/connectors/metaMaskSdkConnector.native.js +0 -453
- package/dist/cjs/connectkit/connectors/metaMaskSdkConnector.native.js.map +0 -1
- package/dist/cjs/connectkit/hooks/connectors/useCoinbaseWalletUri.cjs +0 -0
- package/dist/cjs/connectkit/hooks/connectors/useCoinbaseWalletUri.native.js +0 -2
- package/dist/cjs/connectkit/hooks/connectors/useCoinbaseWalletUri.native.js.map +0 -1
- package/dist/cjs/connectkit/hooks/connectors/useWalletConnectUri.cjs +0 -113
- package/dist/cjs/connectkit/hooks/connectors/useWalletConnectUri.native.js +0 -117
- package/dist/cjs/connectkit/hooks/connectors/useWalletConnectUri.native.js.map +0 -1
- package/dist/cjs/connectkit/hooks/useWalletConnectModal.cjs +0 -74
- package/dist/cjs/connectkit/hooks/useWalletConnectModal.native.js +0 -79
- package/dist/cjs/connectkit/hooks/useWalletConnectModal.native.js.map +0 -1
- package/dist/esm/connectkit/components/ConnectModal/ConnectWithQRCode.mjs +0 -108
- package/dist/esm/connectkit/components/ConnectModal/ConnectWithQRCode.mjs.map +0 -1
- package/dist/esm/connectkit/components/ConnectModal/ConnectWithQRCode.native.js +0 -140
- package/dist/esm/connectkit/components/ConnectModal/ConnectWithQRCode.native.js.map +0 -1
- package/dist/esm/connectkit/components/Pages/MobileConnectors/index.mjs +0 -133
- package/dist/esm/connectkit/components/Pages/MobileConnectors/index.mjs.map +0 -1
- package/dist/esm/connectkit/components/Pages/MobileConnectors/index.native.js +0 -144
- package/dist/esm/connectkit/components/Pages/MobileConnectors/index.native.js.map +0 -1
- package/dist/esm/connectkit/components/Pages/MobileConnectors/styles.mjs +0 -61
- package/dist/esm/connectkit/components/Pages/MobileConnectors/styles.mjs.map +0 -1
- package/dist/esm/connectkit/components/Pages/MobileConnectors/styles.native.js +0 -67
- package/dist/esm/connectkit/components/Pages/MobileConnectors/styles.native.js.map +0 -1
- package/dist/esm/connectkit/connectors/metaMaskSdkConnector.mjs +0 -362
- package/dist/esm/connectkit/connectors/metaMaskSdkConnector.mjs.map +0 -1
- package/dist/esm/connectkit/connectors/metaMaskSdkConnector.native.js +0 -414
- package/dist/esm/connectkit/connectors/metaMaskSdkConnector.native.js.map +0 -1
- package/dist/esm/connectkit/hooks/connectors/useCoinbaseWalletUri.mjs +0 -2
- package/dist/esm/connectkit/hooks/connectors/useCoinbaseWalletUri.mjs.map +0 -1
- package/dist/esm/connectkit/hooks/connectors/useCoinbaseWalletUri.native.js +0 -2
- package/dist/esm/connectkit/hooks/connectors/useCoinbaseWalletUri.native.js.map +0 -1
- package/dist/esm/connectkit/hooks/connectors/useWalletConnectUri.mjs +0 -88
- package/dist/esm/connectkit/hooks/connectors/useWalletConnectUri.mjs.map +0 -1
- package/dist/esm/connectkit/hooks/connectors/useWalletConnectUri.native.js +0 -89
- package/dist/esm/connectkit/hooks/connectors/useWalletConnectUri.native.js.map +0 -1
- package/dist/esm/connectkit/hooks/useWalletConnectModal.mjs +0 -49
- package/dist/esm/connectkit/hooks/useWalletConnectModal.mjs.map +0 -1
- package/dist/esm/connectkit/hooks/useWalletConnectModal.native.js +0 -51
- package/dist/esm/connectkit/hooks/useWalletConnectModal.native.js.map +0 -1
- package/dist/jsx/connectkit/components/ConnectModal/ConnectWithQRCode.mjs +0 -108
- package/dist/jsx/connectkit/components/ConnectModal/ConnectWithQRCode.mjs.map +0 -1
- package/dist/jsx/connectkit/components/ConnectModal/ConnectWithQRCode.native.js +0 -179
- package/dist/jsx/connectkit/components/ConnectModal/ConnectWithQRCode.native.js.map +0 -1
- package/dist/jsx/connectkit/components/Pages/MobileConnectors/index.mjs +0 -133
- package/dist/jsx/connectkit/components/Pages/MobileConnectors/index.mjs.map +0 -1
- package/dist/jsx/connectkit/components/Pages/MobileConnectors/index.native.js +0 -183
- package/dist/jsx/connectkit/components/Pages/MobileConnectors/index.native.js.map +0 -1
- package/dist/jsx/connectkit/components/Pages/MobileConnectors/styles.mjs +0 -61
- package/dist/jsx/connectkit/components/Pages/MobileConnectors/styles.mjs.map +0 -1
- package/dist/jsx/connectkit/components/Pages/MobileConnectors/styles.native.js +0 -99
- package/dist/jsx/connectkit/components/Pages/MobileConnectors/styles.native.js.map +0 -1
- package/dist/jsx/connectkit/connectors/metaMaskSdkConnector.mjs +0 -362
- package/dist/jsx/connectkit/connectors/metaMaskSdkConnector.mjs.map +0 -1
- package/dist/jsx/connectkit/connectors/metaMaskSdkConnector.native.js +0 -453
- package/dist/jsx/connectkit/connectors/metaMaskSdkConnector.native.js.map +0 -1
- package/dist/jsx/connectkit/hooks/connectors/useCoinbaseWalletUri.mjs +0 -2
- package/dist/jsx/connectkit/hooks/connectors/useCoinbaseWalletUri.mjs.map +0 -1
- package/dist/jsx/connectkit/hooks/connectors/useCoinbaseWalletUri.native.js +0 -2
- package/dist/jsx/connectkit/hooks/connectors/useCoinbaseWalletUri.native.js.map +0 -1
- package/dist/jsx/connectkit/hooks/connectors/useWalletConnectUri.mjs +0 -88
- package/dist/jsx/connectkit/hooks/connectors/useWalletConnectUri.mjs.map +0 -1
- package/dist/jsx/connectkit/hooks/connectors/useWalletConnectUri.native.js +0 -117
- package/dist/jsx/connectkit/hooks/connectors/useWalletConnectUri.native.js.map +0 -1
- package/dist/jsx/connectkit/hooks/useWalletConnectModal.mjs +0 -49
- package/dist/jsx/connectkit/hooks/useWalletConnectModal.mjs.map +0 -1
- package/dist/jsx/connectkit/hooks/useWalletConnectModal.native.js +0 -79
- package/dist/jsx/connectkit/hooks/useWalletConnectModal.native.js.map +0 -1
- package/src/connectkit/components/ConnectModal/ConnectWithQRCode.tsx +0 -188
- package/src/connectkit/components/Pages/MobileConnectors/index.tsx +0 -142
- package/src/connectkit/components/Pages/MobileConnectors/styles.ts +0 -66
- package/src/connectkit/connectors/metaMaskSdkConnector.ts +0 -505
- package/src/connectkit/hooks/connectors/useCoinbaseWalletUri.tsx +0 -101
- package/src/connectkit/hooks/connectors/useWalletConnectUri.ts +0 -99
- package/src/connectkit/hooks/useWalletConnectModal.tsx +0 -52
- package/types/connectkit/components/ConnectModal/ConnectWithQRCode.d.ts +0 -6
- package/types/connectkit/components/ConnectModal/ConnectWithQRCode.d.ts.map +0 -1
- package/types/connectkit/components/Pages/MobileConnectors/index.d.ts +0 -4
- package/types/connectkit/components/Pages/MobileConnectors/index.d.ts.map +0 -1
- package/types/connectkit/components/Pages/MobileConnectors/styles.d.ts +0 -6
- package/types/connectkit/components/Pages/MobileConnectors/styles.d.ts.map +0 -1
- package/types/connectkit/connectors/metaMaskSdkConnector.d.ts +0 -30
- package/types/connectkit/connectors/metaMaskSdkConnector.d.ts.map +0 -1
- package/types/connectkit/hooks/connectors/useCoinbaseWalletUri.d.ts +0 -1
- package/types/connectkit/hooks/connectors/useCoinbaseWalletUri.d.ts.map +0 -1
- package/types/connectkit/hooks/connectors/useWalletConnectUri.d.ts +0 -8
- package/types/connectkit/hooks/connectors/useWalletConnectUri.d.ts.map +0 -1
- package/types/connectkit/hooks/useWalletConnectModal.d.ts +0 -5
- package/types/connectkit/hooks/useWalletConnectModal.d.ts.map +0 -1
|
@@ -9,7 +9,6 @@ import {
|
|
|
9
9
|
isCoinbaseWalletConnector,
|
|
10
10
|
isMetaMaskConnector,
|
|
11
11
|
isPortoConnector,
|
|
12
|
-
isWalletConnectConnector,
|
|
13
12
|
resolveListEntries,
|
|
14
13
|
useModalState,
|
|
15
14
|
useScreenRegistry,
|
|
@@ -25,7 +24,6 @@ import {
|
|
|
25
24
|
RecentlyUsedTag,
|
|
26
25
|
} from "./styles";
|
|
27
26
|
|
|
28
|
-
import { useWeb3 } from "../../contexts/web3";
|
|
29
27
|
import { WalletProps, useWallets } from "../../../wallets/useWallets";
|
|
30
28
|
import { useLastConnector } from "../../../hooks/useLastConnector";
|
|
31
29
|
import { setConnectIntent } from "../../../siwe/connectIntent";
|
|
@@ -62,13 +60,12 @@ const ConnectorList = () => {
|
|
|
62
60
|
|
|
63
61
|
const filteredWallets = wallets.filter((wallet) => wallet.id !== aaveAccountConnector?.id);
|
|
64
62
|
|
|
65
|
-
const walletsToDisplay =
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
];
|
|
63
|
+
const walletsToDisplay = context.options?.hideRecentBadge
|
|
64
|
+
? filteredWallets
|
|
65
|
+
: [
|
|
66
|
+
...filteredWallets.filter((wallet) => lastConnectorId === wallet.connector.id),
|
|
67
|
+
...filteredWallets.filter((wallet) => lastConnectorId !== wallet.connector.id),
|
|
68
|
+
];
|
|
72
69
|
|
|
73
70
|
// Group by brand name (first-seen order preserved).
|
|
74
71
|
const groups: WalletGroup[] = [];
|
|
@@ -205,63 +202,36 @@ const ConnectorItem = ({
|
|
|
205
202
|
isRecent?: boolean;
|
|
206
203
|
labelOverride?: string;
|
|
207
204
|
}) => {
|
|
208
|
-
const {
|
|
209
|
-
connect: { getUri },
|
|
210
|
-
} = useWeb3();
|
|
211
|
-
const uri = getUri();
|
|
212
205
|
const isMobile = useIsMobile();
|
|
213
206
|
const context = useContext();
|
|
214
207
|
|
|
215
208
|
const { connect } = useConnect();
|
|
216
209
|
|
|
217
|
-
let deeplink =
|
|
218
|
-
!isMetaMaskConnector(wallet.connector.id) && // metaMaskSDK deep-links via the SDK's connect(), never via WalletConnect
|
|
219
|
-
((!wallet.isInstalled && isMobile) || (wallet.shouldDeeplinkDesktop && !isMobile))
|
|
220
|
-
? wallet.getWalletConnectDeeplink?.(uri ?? "")
|
|
221
|
-
: undefined;
|
|
222
|
-
|
|
223
|
-
const redirectToMoreWallets = isMobile && isWalletConnectConnector(wallet.id);
|
|
224
210
|
// Safari requires opening popup on user gesture, so we connect immediately here.
|
|
225
|
-
//
|
|
226
|
-
//
|
|
211
|
+
// MetaMask on mobile must also connect inside the tap gesture so its app
|
|
212
|
+
// deeplink isn't blocked by the browser's user-activation rules.
|
|
227
213
|
const shouldConnectImmediately =
|
|
228
214
|
((detectBrowser() === "safari" || detectBrowser() === "ios") &&
|
|
229
215
|
(isCoinbaseWalletConnector(wallet.connector.id) || isPortoConnector(wallet.connector.id))) ||
|
|
230
216
|
(isMobile && isMetaMaskConnector(wallet.connector.id));
|
|
231
217
|
|
|
232
|
-
if (redirectToMoreWallets || shouldConnectImmediately) deeplink = undefined; // mobile redirects to more wallets page
|
|
233
|
-
|
|
234
218
|
return (
|
|
235
219
|
<ConnectorButton
|
|
236
220
|
type="button"
|
|
237
|
-
as={deeplink ? "a" : undefined}
|
|
238
|
-
href={deeplink ? deeplink : undefined}
|
|
239
221
|
disabled={context.route !== routes.CONNECTORS}
|
|
240
|
-
onClick={
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
setConnectIntent();
|
|
252
|
-
connect({ connector: wallet?.connector });
|
|
253
|
-
}
|
|
254
|
-
context.setRoute(routes.CONNECT);
|
|
255
|
-
context.setConnector({ id: wallet.id });
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
}
|
|
222
|
+
onClick={() => {
|
|
223
|
+
if (shouldConnectImmediately) {
|
|
224
|
+
// Mobile deeplinks out to the wallet app and comes back through a
|
|
225
|
+
// page remount, so record the intent to continue into signing before
|
|
226
|
+
// we lose all in-memory state (see connectIntent).
|
|
227
|
+
setConnectIntent();
|
|
228
|
+
connect({ connector: wallet?.connector });
|
|
229
|
+
}
|
|
230
|
+
context.setRoute(routes.CONNECT);
|
|
231
|
+
context.setConnector({ id: wallet.id });
|
|
232
|
+
}}
|
|
259
233
|
>
|
|
260
|
-
<ConnectorIcon
|
|
261
|
-
data-small={wallet.iconShouldShrink}
|
|
262
|
-
data-shape={wallet.iconShape}
|
|
263
|
-
data-background={redirectToMoreWallets}
|
|
264
|
-
>
|
|
234
|
+
<ConnectorIcon data-small={wallet.iconShouldShrink} data-shape={wallet.iconShape}>
|
|
265
235
|
{wallet.iconConnector ?? wallet.icon}
|
|
266
236
|
</ConnectorIcon>
|
|
267
237
|
<ConnectorLabel>
|
|
@@ -1,80 +1,29 @@
|
|
|
1
1
|
import { AnimatePresence, motion } from "framer-motion";
|
|
2
|
-
import { useEffect, useState } from "react";
|
|
3
2
|
|
|
4
3
|
import { useContext, contentVariants, Alert } from "@multiplatform.one/connectkit";
|
|
5
4
|
import { useWallet } from "../../wallets/useWallets";
|
|
6
5
|
|
|
7
6
|
import ConnectWithInjector from "./ConnectWithInjector";
|
|
8
|
-
import ConnectWithQRCode from "./ConnectWithQRCode";
|
|
9
|
-
|
|
10
|
-
const states = {
|
|
11
|
-
QRCODE: "qrcode",
|
|
12
|
-
INJECTOR: "injector",
|
|
13
|
-
};
|
|
14
7
|
|
|
15
8
|
const ConnectUsing = () => {
|
|
16
9
|
const context = useContext();
|
|
17
10
|
const wallet = useWallet(context.connector.id);
|
|
18
11
|
|
|
19
|
-
// If cannot be scanned, display injector flow, which if extension is not installed will show CTA to install it.
|
|
20
|
-
// wallet non-EVM wallets are always injected/extension (no WalletConnect URI) → never QR.
|
|
21
|
-
const isQrCode =
|
|
22
|
-
(wallet?.ecosystem ?? "evm") === "evm" &&
|
|
23
|
-
!wallet?.isInstalled &&
|
|
24
|
-
wallet?.getWalletConnectDeeplink;
|
|
25
|
-
|
|
26
|
-
const [status, setStatus] = useState(isQrCode ? states.QRCODE : states.INJECTOR);
|
|
27
|
-
|
|
28
|
-
useEffect(() => {
|
|
29
|
-
// if no provider, change to qrcode
|
|
30
|
-
const checkProvider = async () => {
|
|
31
|
-
const res = await wallet?.connector.getProvider();
|
|
32
|
-
if (!res) {
|
|
33
|
-
setStatus(states.QRCODE);
|
|
34
|
-
setTimeout(context.triggerResize, 10); // delay required here for modal to resize
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
if (status === states.INJECTOR && (wallet?.ecosystem ?? "evm") === "evm") checkProvider();
|
|
38
|
-
}, []);
|
|
39
|
-
|
|
40
12
|
if (!wallet) return <Alert>Connector not found {context.connector.id}</Alert>;
|
|
41
13
|
|
|
14
|
+
// Every connector runs its own flow: an extension, a wallet app deeplink, or the
|
|
15
|
+
// wallet SDK's own popup or QR. An unavailable one shows the install call to action.
|
|
42
16
|
return (
|
|
43
17
|
<AnimatePresence>
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
switchConnectMethod={(id?: string) => {
|
|
54
|
-
//if (id) setId(id);
|
|
55
|
-
setStatus(states.INJECTOR);
|
|
56
|
-
setTimeout(context.triggerResize, 10); // delay required here for modal to resize
|
|
57
|
-
}}
|
|
58
|
-
/>
|
|
59
|
-
</motion.div>
|
|
60
|
-
)}
|
|
61
|
-
{status === states.INJECTOR && (
|
|
62
|
-
<motion.div
|
|
63
|
-
key={states.INJECTOR}
|
|
64
|
-
initial={"initial"}
|
|
65
|
-
animate={"animate"}
|
|
66
|
-
exit={"exit"}
|
|
67
|
-
variants={contentVariants}
|
|
68
|
-
>
|
|
69
|
-
<ConnectWithInjector
|
|
70
|
-
switchConnectMethod={(id?: string) => {
|
|
71
|
-
//if (id) setId(id);
|
|
72
|
-
setStatus(states.QRCODE);
|
|
73
|
-
setTimeout(context.triggerResize, 10); // delay required here for modal to resize
|
|
74
|
-
}}
|
|
75
|
-
/>
|
|
76
|
-
</motion.div>
|
|
77
|
-
)}
|
|
18
|
+
<motion.div
|
|
19
|
+
key="injector"
|
|
20
|
+
initial={"initial"}
|
|
21
|
+
animate={"animate"}
|
|
22
|
+
exit={"exit"}
|
|
23
|
+
variants={contentVariants}
|
|
24
|
+
>
|
|
25
|
+
<ConnectWithInjector />
|
|
26
|
+
</motion.div>
|
|
78
27
|
</AnimatePresence>
|
|
79
28
|
);
|
|
80
29
|
};
|
|
@@ -26,7 +26,6 @@ import {
|
|
|
26
26
|
CustomQRCode,
|
|
27
27
|
detectBrowser,
|
|
28
28
|
isMetaMaskConnector,
|
|
29
|
-
isWalletConnectConnector,
|
|
30
29
|
useIsMobile,
|
|
31
30
|
useLocales,
|
|
32
31
|
useContext,
|
|
@@ -81,9 +80,8 @@ const contentVariants: Variants = {
|
|
|
81
80
|
};
|
|
82
81
|
|
|
83
82
|
const ConnectWithInjector: React.FC<{
|
|
84
|
-
switchConnectMethod: (id?: string) => void;
|
|
85
83
|
forceState?: typeof states;
|
|
86
|
-
}> = ({
|
|
84
|
+
}> = ({ forceState }) => {
|
|
87
85
|
const { connect } = useConnect({
|
|
88
86
|
mutation: {
|
|
89
87
|
onMutate: (connector?: any) => {
|
|
@@ -147,11 +145,11 @@ const ConnectWithInjector: React.FC<{
|
|
|
147
145
|
|
|
148
146
|
const [showTryAgainTooltip, setShowTryAgainTooltip] = useState(false);
|
|
149
147
|
|
|
150
|
-
//
|
|
148
|
+
// MetaMask Connect's mobile deeplink (metamask://connect/mwp?p=...), captured
|
|
151
149
|
// from its display_uri event so we can offer it as a real tap target (see the
|
|
152
|
-
// CONNECTING render below). If
|
|
153
|
-
//
|
|
154
|
-
//
|
|
150
|
+
// CONNECTING render below). If it never emits the event — e.g. it threw during
|
|
151
|
+
// init — this stays undefined and no tap target renders, so the modal sits on
|
|
152
|
+
// "Open <wallet>" forever; that failure mode is upstream of here.
|
|
155
153
|
const [sdkDeeplink, setSdkDeeplink] = useState<string | undefined>(undefined);
|
|
156
154
|
useEffect(() => {
|
|
157
155
|
const connector = wallet?.connector;
|
|
@@ -178,7 +176,7 @@ const ConnectWithInjector: React.FC<{
|
|
|
178
176
|
|
|
179
177
|
const browser = detectBrowser();
|
|
180
178
|
const isMobile = useIsMobile();
|
|
181
|
-
// Tauri (and similar) shells: MetaMask
|
|
179
|
+
// Tauri (and similar) shells: MetaMask Connect runs headless and emits display_uri;
|
|
182
180
|
// render that URI as a QR here. Mobile keeps the anchor-tap deeplink path.
|
|
183
181
|
const showEmbeddedDesktopMetaMaskQr =
|
|
184
182
|
!isMobile &&
|
|
@@ -273,22 +271,6 @@ const ConnectWithInjector: React.FC<{
|
|
|
273
271
|
);
|
|
274
272
|
}
|
|
275
273
|
|
|
276
|
-
// TODO: Make this more generic
|
|
277
|
-
if (isWalletConnectConnector(wallet?.connector.id)) {
|
|
278
|
-
return (
|
|
279
|
-
<PageContent>
|
|
280
|
-
<Container>
|
|
281
|
-
<ModalHeading>Invalid State</ModalHeading>
|
|
282
|
-
<ModalContent>
|
|
283
|
-
<Alert>
|
|
284
|
-
WalletConnect does not have an injection flow. This state should never happen.
|
|
285
|
-
</Alert>
|
|
286
|
-
</ModalContent>
|
|
287
|
-
</Container>
|
|
288
|
-
</PageContent>
|
|
289
|
-
);
|
|
290
|
-
}
|
|
291
|
-
|
|
292
274
|
return (
|
|
293
275
|
<PageContent>
|
|
294
276
|
<Container>
|
|
@@ -385,22 +367,6 @@ const ConnectWithInjector: React.FC<{
|
|
|
385
367
|
</ModalH1>
|
|
386
368
|
<ModalBody>{locales.injectionScreen_failed_p}</ModalBody>
|
|
387
369
|
</ModalContent>
|
|
388
|
-
|
|
389
|
-
{/* Reason: Coinbase Wallet does not expose a QRURI when extension is installed */}
|
|
390
|
-
{/*
|
|
391
|
-
{wallet?.getWalletConnectDeeplink &&
|
|
392
|
-
wallet.id !== 'coinbaseWalletSDK' && (
|
|
393
|
-
<>
|
|
394
|
-
<OrDivider />
|
|
395
|
-
<Button
|
|
396
|
-
icon={<Scan />}
|
|
397
|
-
onClick={() => switchConnectMethod(id)}
|
|
398
|
-
>
|
|
399
|
-
{locales.scanTheQRCode}
|
|
400
|
-
</Button>
|
|
401
|
-
</>
|
|
402
|
-
)}
|
|
403
|
-
*/}
|
|
404
370
|
</Content>
|
|
405
371
|
)}
|
|
406
372
|
{status === states.REJECTED && (
|
|
@@ -415,22 +381,6 @@ const ConnectWithInjector: React.FC<{
|
|
|
415
381
|
<ModalH1>{locales.injectionScreen_rejected_h1}</ModalH1>
|
|
416
382
|
<ModalBody>{locales.injectionScreen_rejected_p}</ModalBody>
|
|
417
383
|
</ModalContent>
|
|
418
|
-
|
|
419
|
-
{/* Reason: Coinbase Wallet does not expose a QRURI when extension is installed */}
|
|
420
|
-
{/*
|
|
421
|
-
{wallet?.getWalletConnectDeeplink &&
|
|
422
|
-
wallet.id !== 'coinbaseWalletSDK' && (
|
|
423
|
-
<>
|
|
424
|
-
<OrDivider />
|
|
425
|
-
<Button
|
|
426
|
-
icon={<Scan />}
|
|
427
|
-
onClick={() => switchConnectMethod(id)}
|
|
428
|
-
>
|
|
429
|
-
{locales.scanTheQRCode}
|
|
430
|
-
</Button>
|
|
431
|
-
</>
|
|
432
|
-
)}
|
|
433
|
-
*/}
|
|
434
384
|
</Content>
|
|
435
385
|
)}
|
|
436
386
|
{(status === states.CONNECTING || status === states.EXPIRING) && (
|
|
@@ -479,15 +429,15 @@ const ConnectWithInjector: React.FC<{
|
|
|
479
429
|
{showEmbeddedDesktopMetaMaskQr && (
|
|
480
430
|
<CustomQRCode value={deeplink} image={walletInfo.icon} imagePosition="center" />
|
|
481
431
|
)}
|
|
482
|
-
{/*
|
|
483
|
-
protocol navigations whose user activation expired while
|
|
484
|
-
|
|
432
|
+
{/* MetaMask Connect auto-opens its deeplink, but browsers drop external-
|
|
433
|
+
protocol navigations whose user activation expired while it
|
|
434
|
+
did its async setup (chunk import + relay round-trip) —
|
|
485
435
|
silently, on slow networks especially. And a JS navigation
|
|
486
436
|
(location.href) to a universal link NEVER app-switches on
|
|
487
437
|
iOS: WebKit only follows universal links into the app from a
|
|
488
438
|
genuine same-tab anchor tap; JS-set locations land on the
|
|
489
439
|
metamask.app.link web fallback instead (observed inside
|
|
490
|
-
ASWebAuthenticationSession). So once
|
|
440
|
+
ASWebAuthenticationSession). So once it emits
|
|
491
441
|
display_uri we render it as a REAL anchor — same-tab,
|
|
492
442
|
because auth sheets can't open new tabs. */}
|
|
493
443
|
{isMobile && isMetaMaskConnector(wallet?.connector.id) && deeplink && (
|
|
@@ -557,16 +507,6 @@ const ConnectWithInjector: React.FC<{
|
|
|
557
507
|
<ModalH1>{locales.injectionScreen_install_h1}</ModalH1>
|
|
558
508
|
<ModalBody>{locales.injectionScreen_install_p}</ModalBody>
|
|
559
509
|
</ModalContent>
|
|
560
|
-
{/**
|
|
561
|
-
{(wallet.getWalletConnectDeeplink &&
|
|
562
|
-
(!wallet.isInstalled && extensionUrl)) && <OrDivider />}
|
|
563
|
-
|
|
564
|
-
{wallet.getWalletConnectDeeplink && (
|
|
565
|
-
<Button icon={<Scan />} onClick={switchConnectMethod}>
|
|
566
|
-
{locales.scanTheQRCode}
|
|
567
|
-
</Button>
|
|
568
|
-
)}
|
|
569
|
-
*/}
|
|
570
510
|
{!wallet.isInstalled && extensionUrl && (
|
|
571
511
|
<Button href={extensionUrl} icon={<BrowserIcon />}>
|
|
572
512
|
{locales.installTheExtension}
|
|
@@ -17,11 +17,9 @@ import ConnectUsing from "./ConnectUsing";
|
|
|
17
17
|
import DownloadApp from "../Pages/DownloadApp";
|
|
18
18
|
import Profile from "../Pages/Profile";
|
|
19
19
|
import SwitchNetworks from "../Pages/SwitchNetworks";
|
|
20
|
-
import MobileConnectors from "../Pages/MobileConnectors";
|
|
21
20
|
import SignInWithEthereum from "../Pages/SignInWithEthereum";
|
|
22
21
|
|
|
23
22
|
import { ConnectKitButton } from "../ConnectButton";
|
|
24
|
-
import { getAppName } from "../../defaultConfig";
|
|
25
23
|
import { ConnectKitThemeProvider, styled, useModalState } from "@multiplatform.one/connectkit";
|
|
26
24
|
import { keyframes } from "styled-components";
|
|
27
25
|
import { Web3ContextProvider } from "../contexts/web3";
|
|
@@ -135,7 +133,6 @@ const ConnectModal: React.FC<{
|
|
|
135
133
|
about: <About />,
|
|
136
134
|
download: <DownloadApp />,
|
|
137
135
|
connectors: <Connectors />,
|
|
138
|
-
mobileConnectors: <MobileConnectors />,
|
|
139
136
|
connect: <ConnectUsing />,
|
|
140
137
|
profile: <Profile closeModal={() => setIsOpen(false)} />,
|
|
141
138
|
switchNetworks: <SwitchNetworks />,
|
|
@@ -203,23 +200,8 @@ const ConnectModal: React.FC<{
|
|
|
203
200
|
}
|
|
204
201
|
}, [isConnected]);
|
|
205
202
|
|
|
206
|
-
/* When pulling data into WalletConnect, it prioritises the og:title tag over the title tag */
|
|
207
|
-
useEffect(() => {
|
|
208
|
-
const appName = getAppName();
|
|
209
|
-
if (!appName || (!open && !inline)) return;
|
|
210
|
-
|
|
211
|
-
const title = document.createElement("meta");
|
|
212
|
-
title.setAttribute("property", "og:title");
|
|
213
|
-
title.setAttribute("content", appName);
|
|
214
|
-
document.head.prepend(title);
|
|
215
|
-
|
|
216
|
-
return () => {
|
|
217
|
-
document.head.removeChild(title);
|
|
218
|
-
};
|
|
219
|
-
}, [open, inline]);
|
|
220
|
-
|
|
221
203
|
return (
|
|
222
|
-
<Web3ContextProvider
|
|
204
|
+
<Web3ContextProvider>
|
|
223
205
|
<ConnectKitThemeProvider theme={theme} customTheme={customTheme} mode={mode}>
|
|
224
206
|
<Container ref={ref}>
|
|
225
207
|
{inline && onClose && (
|
|
@@ -8,13 +8,9 @@ import { Address, Chain } from "viem";
|
|
|
8
8
|
import { useAccount } from "wagmi";
|
|
9
9
|
|
|
10
10
|
import { useChains } from "../../../hooks/useChains";
|
|
11
|
-
import { useWalletConnectUri } from "../../../hooks/connectors/useWalletConnectUri";
|
|
12
11
|
import { useChainIsSupported } from "../../../hooks/useChainIsSupported";
|
|
13
12
|
|
|
14
13
|
type Web3Context = {
|
|
15
|
-
connect: {
|
|
16
|
-
getUri: (id?: string) => string;
|
|
17
|
-
};
|
|
18
14
|
dapp: {
|
|
19
15
|
chains: Chain[];
|
|
20
16
|
};
|
|
@@ -26,36 +22,18 @@ type Web3Context = {
|
|
|
26
22
|
};
|
|
27
23
|
|
|
28
24
|
const Web3Context = React.createContext({
|
|
29
|
-
connect: {
|
|
30
|
-
getUri: () => "",
|
|
31
|
-
},
|
|
32
25
|
dapp: {
|
|
33
26
|
chains: [],
|
|
34
27
|
},
|
|
35
28
|
account: undefined,
|
|
36
29
|
} as Web3Context);
|
|
37
30
|
|
|
38
|
-
export const Web3ContextProvider = ({
|
|
39
|
-
enabled,
|
|
40
|
-
children,
|
|
41
|
-
}: {
|
|
42
|
-
enabled?: boolean;
|
|
43
|
-
children: React.ReactNode;
|
|
44
|
-
}) => {
|
|
45
|
-
const { uri: walletConnectUri } = useWalletConnectUri({
|
|
46
|
-
enabled,
|
|
47
|
-
});
|
|
48
|
-
|
|
31
|
+
export const Web3ContextProvider = ({ children }: { children: React.ReactNode }) => {
|
|
49
32
|
const { address: currentAddress, chain } = useAccount();
|
|
50
33
|
const chainIsSupported = useChainIsSupported(chain?.id);
|
|
51
34
|
const chains = useChains();
|
|
52
35
|
|
|
53
36
|
const value = {
|
|
54
|
-
connect: {
|
|
55
|
-
getUri: (id?: string) => {
|
|
56
|
-
return walletConnectUri;
|
|
57
|
-
},
|
|
58
|
-
},
|
|
59
37
|
dapp: {
|
|
60
38
|
chains,
|
|
61
39
|
},
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
// @vitest-environment happy-dom
|
|
2
|
+
import { createConfig, createStorage, http } from "@wagmi/core";
|
|
3
|
+
import { mainnet } from "viem/chains";
|
|
4
|
+
import { beforeEach, describe, expect, it, vi } from "vitest";
|
|
5
|
+
|
|
6
|
+
const { providerBuilt } = vi.hoisted(() => ({ providerBuilt: vi.fn() }));
|
|
7
|
+
|
|
8
|
+
// The real module's constructor mounts Aave's iframe and starts AaveAccountSdk.connect().
|
|
9
|
+
// Its own aaveAccountConnector() builds that provider as soon as it is called, which
|
|
10
|
+
// is what the pre-fix defaultConnectors used.
|
|
11
|
+
vi.mock("@aave/account", async () => {
|
|
12
|
+
const { injected } = await import("@wagmi/connectors/injected");
|
|
13
|
+
class EthereumProvider {
|
|
14
|
+
constructor(options?: unknown) {
|
|
15
|
+
providerBuilt(options);
|
|
16
|
+
}
|
|
17
|
+
request = vi.fn(async ({ method }: { method: string }) =>
|
|
18
|
+
method === "eth_chainId" ? "0x1" : ["0x0000000000000000000000000000000000000001"],
|
|
19
|
+
);
|
|
20
|
+
on = vi.fn();
|
|
21
|
+
removeListener = vi.fn();
|
|
22
|
+
}
|
|
23
|
+
return {
|
|
24
|
+
EthereumProvider,
|
|
25
|
+
aaveAccountConnector: (options?: unknown) => {
|
|
26
|
+
const provider = new EthereumProvider(options);
|
|
27
|
+
return injected({
|
|
28
|
+
shimDisconnect: false,
|
|
29
|
+
target: () => ({
|
|
30
|
+
id: "aaveAccountProvider",
|
|
31
|
+
name: "Aave Account",
|
|
32
|
+
provider: provider as never,
|
|
33
|
+
}),
|
|
34
|
+
});
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
});
|
|
38
|
+
vi.mock("@metamask/connect-evm", () => ({ createEVMClient: vi.fn(() => new Promise(() => {})) }));
|
|
39
|
+
|
|
40
|
+
import getDefaultConfig from "../defaultConfig";
|
|
41
|
+
import { aaveAccountConnector, aaveAccountConnectorId } from "./aaveAccountConnector";
|
|
42
|
+
|
|
43
|
+
const memory = () => {
|
|
44
|
+
const store = new Map<string, string>();
|
|
45
|
+
return {
|
|
46
|
+
getItem: (key: string) => store.get(key) ?? null,
|
|
47
|
+
setItem: (key: string, value: string) => void store.set(key, value),
|
|
48
|
+
removeItem: (key: string) => void store.delete(key),
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
describe("Aave Account connector", () => {
|
|
53
|
+
beforeEach(() => providerBuilt.mockClear());
|
|
54
|
+
|
|
55
|
+
it("is off by default in getDefaultConfig", () => {
|
|
56
|
+
const config = createConfig(getDefaultConfig({ appName: "test", chains: [mainnet] }));
|
|
57
|
+
expect(config.connectors.some((c) => c.id === aaveAccountConnectorId)).toBe(false);
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
it("builds no Aave provider when a config opts in, until the user connects", async () => {
|
|
61
|
+
const config = createConfig({
|
|
62
|
+
...getDefaultConfig({ appName: "test", chains: [mainnet], enableAaveAccount: true }),
|
|
63
|
+
storage: createStorage({ storage: memory() }),
|
|
64
|
+
});
|
|
65
|
+
const aave = config.connectors.find((c) => c.id === aaveAccountConnectorId)!;
|
|
66
|
+
expect(aave).toBeDefined();
|
|
67
|
+
expect(await aave.getProvider()).toBeUndefined();
|
|
68
|
+
expect(await aave.isAuthorized()).toBe(false);
|
|
69
|
+
expect(providerBuilt).not.toHaveBeenCalled();
|
|
70
|
+
|
|
71
|
+
await aave.connect();
|
|
72
|
+
expect(providerBuilt).toHaveBeenCalledOnce();
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
it("builds the provider to reconnect when Aave Account was the last connector", async () => {
|
|
76
|
+
const storage = createStorage({ storage: memory() });
|
|
77
|
+
await storage.setItem("recentConnectorId", aaveAccountConnectorId);
|
|
78
|
+
const config = createConfig({
|
|
79
|
+
chains: [mainnet],
|
|
80
|
+
connectors: [aaveAccountConnector()],
|
|
81
|
+
transports: { [mainnet.id]: http() },
|
|
82
|
+
storage,
|
|
83
|
+
});
|
|
84
|
+
expect(await config.connectors[0].getProvider()).toBeDefined();
|
|
85
|
+
expect(providerBuilt).toHaveBeenCalledOnce();
|
|
86
|
+
});
|
|
87
|
+
});
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// @aave/account's own aaveAccountConnector() builds its EthereumProvider while the
|
|
2
|
+
// wagmi config is built. That constructor mounts Aave's hidden iframe and calls
|
|
3
|
+
// AaveAccountSdk.connect() on every page load, and when the connect does not
|
|
4
|
+
// finish the SDK rejects unhandled: "Aave Account is not connected" on every
|
|
5
|
+
// Keycloak login page (MPO-378). This builds the provider only when the user picks
|
|
6
|
+
// Aave Account, or when wagmi reconnects the Aave Account it connected last.
|
|
7
|
+
import { EthereumProvider, type EthereumProviderOptions } from "@aave/account";
|
|
8
|
+
import { injected } from "@wagmi/connectors/injected";
|
|
9
|
+
import type { CreateConnectorFn } from "wagmi";
|
|
10
|
+
|
|
11
|
+
export const aaveAccountConnectorId = "aaveAccountProvider";
|
|
12
|
+
|
|
13
|
+
export function aaveAccountConnector(options?: EthereumProviderOptions): CreateConnectorFn {
|
|
14
|
+
let provider: EthereumProvider | undefined;
|
|
15
|
+
const ensureProvider = () => (provider ??= new EthereumProvider(options));
|
|
16
|
+
const base = injected({
|
|
17
|
+
shimDisconnect: false,
|
|
18
|
+
target: () => ({
|
|
19
|
+
id: aaveAccountConnectorId,
|
|
20
|
+
name: "Aave Account",
|
|
21
|
+
provider: () => provider as never,
|
|
22
|
+
}),
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
return (config) => {
|
|
26
|
+
const connector = base(config);
|
|
27
|
+
return {
|
|
28
|
+
...connector,
|
|
29
|
+
async connect(parameters) {
|
|
30
|
+
ensureProvider();
|
|
31
|
+
return connector.connect.call(this, parameters);
|
|
32
|
+
},
|
|
33
|
+
async getProvider(parameters) {
|
|
34
|
+
if (
|
|
35
|
+
!provider &&
|
|
36
|
+
(await config.storage?.getItem("recentConnectorId")) === aaveAccountConnectorId
|
|
37
|
+
)
|
|
38
|
+
ensureProvider();
|
|
39
|
+
return connector.getProvider.call(this, parameters);
|
|
40
|
+
},
|
|
41
|
+
} as ReturnType<typeof base>;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
@@ -23,21 +23,21 @@ describe("metaMaskOptionsForEmbeddedDesktop", () => {
|
|
|
23
23
|
window.open = originalOpen;
|
|
24
24
|
});
|
|
25
25
|
|
|
26
|
-
it("disables deeplink navigation and
|
|
26
|
+
it("disables deeplink navigation and the MetaMask Connect modal", () => {
|
|
27
27
|
const opts = metaMaskOptionsForEmbeddedDesktop();
|
|
28
28
|
expect(opts.useDeeplink).toBe(false);
|
|
29
29
|
expect(opts.headless).toBe(true);
|
|
30
30
|
});
|
|
31
31
|
|
|
32
|
-
it("
|
|
32
|
+
it("preferredOpenLink opens https in a new window and ignores custom schemes", () => {
|
|
33
33
|
const open = vi.fn();
|
|
34
34
|
window.open = open;
|
|
35
|
-
const {
|
|
35
|
+
const { preferredOpenLink } = metaMaskOptionsForEmbeddedDesktop();
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
preferredOpenLink("metamask://connect?channelId=abc");
|
|
38
38
|
expect(open).not.toHaveBeenCalled();
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
preferredOpenLink("https://metamask.app.link/connect?channelId=abc");
|
|
41
41
|
expect(open).toHaveBeenCalledWith(
|
|
42
42
|
"https://metamask.app.link/connect?channelId=abc",
|
|
43
43
|
"_blank",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Tauri (and similar) desktop shells load the *web* bundle inside a native
|
|
3
|
-
* WebView. Browser extensions never inject there, so MetaMask must use the
|
|
3
|
+
* WebView. Browser extensions never inject there, so MetaMask must use the
|
|
4
4
|
* remote/QR path — never `window.location.href = metamask://…`, which would
|
|
5
5
|
* navigate the whole WebView away from the app.
|
|
6
6
|
*
|
|
@@ -22,21 +22,21 @@ export function isEmbeddedDesktopWebview(
|
|
|
22
22
|
export type MetaMaskEmbeddedDesktopOptions = {
|
|
23
23
|
/** Prefer https://metamask.app.link over metamask:// in the QR payload. */
|
|
24
24
|
useDeeplink: false;
|
|
25
|
-
/** Suppress
|
|
25
|
+
/** Suppress MetaMask Connect's install modal (WKWebView-hostile); ConnectKit renders QR. */
|
|
26
26
|
headless: true;
|
|
27
27
|
/**
|
|
28
28
|
* Never assign location.href for custom schemes. https universal links may
|
|
29
29
|
* open in the system browser via window.open; custom schemes are ignored.
|
|
30
30
|
*/
|
|
31
|
-
|
|
31
|
+
preferredOpenLink: (url: string) => void;
|
|
32
32
|
};
|
|
33
33
|
|
|
34
|
-
/** MetaMask
|
|
34
|
+
/** MetaMask Connect options that are safe inside Tauri/WebView2/WKWebView. */
|
|
35
35
|
export function metaMaskOptionsForEmbeddedDesktop(): MetaMaskEmbeddedDesktopOptions {
|
|
36
36
|
return {
|
|
37
37
|
useDeeplink: false,
|
|
38
38
|
headless: true,
|
|
39
|
-
|
|
39
|
+
preferredOpenLink: (url: string) => {
|
|
40
40
|
if (typeof window === "undefined") return;
|
|
41
41
|
// Custom schemes (metamask://) must not navigate the WebView.
|
|
42
42
|
if (!/^https?:\/\//i.test(url)) return;
|