@multiplatform.one/web3 7.23.2 → 7.24.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 +150 -11
- 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.native.js.map +1 -1
- 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.cjs +299 -11
- package/dist/cjs/clients/evm.native.js +500 -12
- 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.cjs +5 -0
- package/dist/cjs/clients/index.native.js +5 -0
- package/dist/cjs/clients/index.native.js.map +1 -1
- package/dist/cjs/clients/solana.cjs +39 -21
- package/dist/cjs/clients/solana.native.js +48 -23
- 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/GpgProvider.cjs +44 -0
- package/dist/cjs/connectkit/GpgProvider.native.js +51 -0
- package/dist/cjs/connectkit/GpgProvider.native.js.map +1 -0
- package/dist/cjs/connectkit/adapters/BitcoinAdapter.cjs +5 -14
- package/dist/cjs/connectkit/adapters/BitcoinAdapter.native.js +5 -15
- package/dist/cjs/connectkit/adapters/BitcoinAdapter.native.js.map +1 -1
- package/dist/cjs/connectkit/adapters/EthereumAdapter.cjs +6 -15
- package/dist/cjs/connectkit/adapters/EthereumAdapter.native.js +7 -16
- package/dist/cjs/connectkit/adapters/EthereumAdapter.native.js.map +1 -1
- package/dist/cjs/connectkit/adapters/SolanaAdapter.cjs +5 -14
- package/dist/cjs/connectkit/adapters/SolanaAdapter.native.js +5 -15
- package/dist/cjs/connectkit/adapters/SolanaAdapter.native.js.map +1 -1
- package/dist/cjs/connectkit/adapters/SuiAdapter.cjs +5 -14
- package/dist/cjs/connectkit/adapters/SuiAdapter.native.js +5 -15
- 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/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.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.native.js +1 -1
- 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.native.js +3 -3
- 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.native.js +9 -9
- 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.native.js.map +1 -1
- package/dist/cjs/connectkit/connectors/aaveAccountConnector.native.js.map +1 -1
- package/dist/cjs/connectkit/connectors/createWalletMessage.cjs +2 -2
- package/dist/cjs/connectkit/connectors/createWalletMessage.native.js +2 -2
- package/dist/cjs/connectkit/connectors/createWalletMessage.native.js.map +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.native.js.map +1 -1
- 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.native.js.map +1 -1
- 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.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 +4 -3
- package/dist/cjs/connectkit/index.native.js +12 -11
- 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.native.js +7 -7
- 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 +18 -3
- package/dist/cjs/connectkit/siwe/SIWEProvider.native.js +18 -3
- 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.native.js.map +1 -1
- package/dist/cjs/connectkit/wallets/useWallets.native.js.map +1 -1
- package/dist/cjs/connectkit/wallets/walletConfigs.native.js.map +1 -1
- package/dist/cjs/connectkit/web3Bridge.native.js +2 -2
- package/dist/cjs/connectkit/web3Bridge.native.js.map +1 -1
- package/dist/cjs/connectkit/web3Provider.native.js.map +1 -1
- package/dist/cjs/esbuild.native.js.map +1 -1
- 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.native.js.map +1 -1
- package/dist/cjs/index.cjs +1 -0
- package/dist/cjs/index.native.js +7 -6
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/keycloak/KeycloakWalletLogin.cjs +255 -0
- package/dist/cjs/keycloak/KeycloakWalletLogin.native.js +33 -0
- package/dist/cjs/keycloak/KeycloakWalletLogin.native.js.map +1 -0
- package/dist/cjs/keycloak/browserFlow.cjs +83 -0
- package/dist/cjs/keycloak/browserFlow.native.js +90 -0
- package/dist/cjs/keycloak/browserFlow.native.js.map +1 -0
- package/dist/cjs/keycloak/device.cjs +36 -0
- package/dist/cjs/keycloak/device.native.js +45 -0
- package/dist/cjs/keycloak/device.native.js.map +1 -0
- package/dist/cjs/keycloak/directGrant.cjs +189 -0
- package/dist/cjs/keycloak/directGrant.native.js +233 -0
- package/dist/cjs/keycloak/directGrant.native.js.map +1 -0
- package/dist/cjs/keycloak/iife.cjs +4 -0
- package/dist/cjs/keycloak/iife.native.js +7 -0
- package/dist/cjs/keycloak/iife.native.js.map +1 -0
- package/dist/cjs/keycloak/index.cjs +53 -0
- package/dist/cjs/keycloak/index.native.js +56 -0
- package/dist/cjs/keycloak/index.native.js.map +1 -0
- package/dist/cjs/keycloak/keycloakWallet.cjs +214 -0
- package/dist/cjs/keycloak/keycloakWallet.native.js +285 -0
- package/dist/cjs/keycloak/keycloakWallet.native.js.map +1 -0
- package/dist/cjs/keycloak/mount.cjs +53 -0
- package/dist/cjs/keycloak/mount.native.js +33 -0
- package/dist/cjs/keycloak/mount.native.js.map +1 -0
- package/dist/cjs/keycloak/registerWallet.cjs +74 -0
- package/dist/cjs/keycloak/registerWallet.native.js +81 -0
- package/dist/cjs/keycloak/registerWallet.native.js.map +1 -0
- package/dist/cjs/keycloak/types.cjs +46 -0
- package/dist/cjs/keycloak/types.native.js +179 -0
- package/dist/cjs/keycloak/types.native.js.map +1 -0
- package/dist/cjs/keycloak/useDirectLogin.cjs +57 -0
- package/dist/cjs/keycloak/useDirectLogin.native.js +77 -0
- package/dist/cjs/keycloak/useDirectLogin.native.js.map +1 -0
- package/dist/cjs/keycloak/useWalletLogin.cjs +97 -0
- package/dist/cjs/keycloak/useWalletLogin.native.js +33 -0
- package/dist/cjs/keycloak/useWalletLogin.native.js.map +1 -0
- package/dist/cjs/message/buildWalletMessage.cjs +113 -0
- package/dist/cjs/message/buildWalletMessage.native.js +121 -0
- package/dist/cjs/message/buildWalletMessage.native.js.map +1 -0
- package/dist/cjs/message/index.cjs +29 -0
- package/dist/cjs/message/index.native.js +32 -0
- package/dist/cjs/message/index.native.js.map +1 -0
- package/dist/cjs/providers/WalletProvider.cjs +8 -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.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.cjs +5 -16
- package/dist/cjs/siws/message.native.js +6 -16
- 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.native.js.map +1 -1
- package/dist/esm/bridge/BridgeClient.native.js.map +1 -1
- package/dist/esm/bridge/BridgeHost.native.js.map +1 -1
- package/dist/esm/bridge/SolanaBridge.native.js.map +1 -1
- package/dist/esm/bridge/base64.native.js.map +1 -1
- package/dist/esm/bridge/bridgeConnector.native.js.map +1 -1
- package/dist/esm/bridge/eip1193.native.js.map +1 -1
- package/dist/esm/bridge/index.native.js.map +1 -1
- package/dist/esm/bridge/postMessageTransport.native.js.map +1 -1
- package/dist/esm/bridge/protocol.native.js.map +1 -1
- package/dist/esm/bridge/transport.native.js.map +1 -1
- package/dist/esm/bundler/metaMaskConnectTimeouts.native.js.map +1 -1
- package/dist/esm/clients/adapter.native.js.map +1 -1
- package/dist/esm/clients/bitcoin.native.js.map +1 -1
- package/dist/esm/clients/connector.native.js.map +1 -1
- package/dist/esm/clients/evm.mjs +295 -12
- package/dist/esm/clients/evm.mjs.map +1 -1
- package/dist/esm/clients/evm.native.js +496 -13
- package/dist/esm/clients/evm.native.js.map +1 -1
- package/dist/esm/clients/gpg.native.js.map +1 -1
- package/dist/esm/clients/hooks.native.js.map +1 -1
- package/dist/esm/clients/index.mjs +2 -2
- package/dist/esm/clients/index.mjs.map +1 -1
- package/dist/esm/clients/index.native.js +2 -2
- package/dist/esm/clients/index.native.js.map +1 -1
- package/dist/esm/clients/solana.mjs +39 -21
- package/dist/esm/clients/solana.mjs.map +1 -1
- package/dist/esm/clients/solana.native.js +48 -23
- package/dist/esm/clients/solana.native.js.map +1 -1
- package/dist/esm/clients/solanaMessage.native.js.map +1 -1
- package/dist/esm/clients/sui.native.js.map +1 -1
- package/dist/esm/clients/types.native.js.map +1 -1
- package/dist/esm/clients/useSolanaClient.native.js.map +1 -1
- package/dist/esm/clients/walletStandard.native.js.map +1 -1
- package/dist/esm/components/NetworkSwitcher.native.js.map +1 -1
- package/dist/esm/components/TransactionStatus.native.js.map +1 -1
- package/dist/esm/components/index.native.js.map +1 -1
- package/dist/esm/connectkit/GpgProvider.mjs +19 -0
- package/dist/esm/connectkit/GpgProvider.mjs.map +1 -0
- package/dist/esm/connectkit/GpgProvider.native.js +23 -0
- package/dist/esm/connectkit/GpgProvider.native.js.map +1 -0
- package/dist/esm/connectkit/adapters/BitcoinAdapter.mjs +5 -14
- package/dist/esm/connectkit/adapters/BitcoinAdapter.mjs.map +1 -1
- package/dist/esm/connectkit/adapters/BitcoinAdapter.native.js +5 -15
- package/dist/esm/connectkit/adapters/BitcoinAdapter.native.js.map +1 -1
- package/dist/esm/connectkit/adapters/EthereumAdapter.mjs +6 -15
- package/dist/esm/connectkit/adapters/EthereumAdapter.mjs.map +1 -1
- package/dist/esm/connectkit/adapters/EthereumAdapter.native.js +7 -16
- package/dist/esm/connectkit/adapters/EthereumAdapter.native.js.map +1 -1
- package/dist/esm/connectkit/adapters/SolanaAdapter.mjs +5 -14
- package/dist/esm/connectkit/adapters/SolanaAdapter.mjs.map +1 -1
- package/dist/esm/connectkit/adapters/SolanaAdapter.native.js +5 -15
- package/dist/esm/connectkit/adapters/SolanaAdapter.native.js.map +1 -1
- package/dist/esm/connectkit/adapters/SuiAdapter.mjs +5 -14
- package/dist/esm/connectkit/adapters/SuiAdapter.mjs.map +1 -1
- package/dist/esm/connectkit/adapters/SuiAdapter.native.js +5 -15
- package/dist/esm/connectkit/adapters/SuiAdapter.native.js.map +1 -1
- package/dist/esm/connectkit/adapters/discover.native.js.map +1 -1
- package/dist/esm/connectkit/adapters/index.native.js.map +1 -1
- package/dist/esm/connectkit/adapters/types.native.js.map +1 -1
- package/dist/esm/connectkit/assets/chains.native.js.map +1 -1
- package/dist/esm/connectkit/components/BalanceButton/index.native.js.map +1 -1
- package/dist/esm/connectkit/components/Common/Avatar/index.native.js.map +1 -1
- package/dist/esm/connectkit/components/Common/Avatar/styles.native.js.map +1 -1
- package/dist/esm/connectkit/components/Common/Chain/index.native.js.map +1 -1
- package/dist/esm/connectkit/components/Common/Chain/styles.native.js.map +1 -1
- package/dist/esm/connectkit/components/Common/ChainSelect/index.native.js.map +1 -1
- package/dist/esm/connectkit/components/Common/ChainSelectDropdown/index.native.js.map +1 -1
- package/dist/esm/connectkit/components/Common/ChainSelectDropdown/styles.native.js.map +1 -1
- package/dist/esm/connectkit/components/Common/ChainSelectList/index.native.js.map +1 -1
- package/dist/esm/connectkit/components/Common/ChainSelectList/styles.native.js.map +1 -1
- package/dist/esm/connectkit/components/Common/ConnectorList/index.native.js.map +1 -1
- package/dist/esm/connectkit/components/Common/ConnectorList/styles.native.js.map +1 -1
- package/dist/esm/connectkit/components/ConnectButton/index.native.js.map +1 -1
- package/dist/esm/connectkit/components/ConnectButton/styles.native.js.map +1 -1
- package/dist/esm/connectkit/components/ConnectModal/ConnectUsing.native.js.map +1 -1
- package/dist/esm/connectkit/components/ConnectModal/ConnectWithInjector/CircleSpinner/index.native.js.map +1 -1
- package/dist/esm/connectkit/components/ConnectModal/ConnectWithInjector/CircleSpinner/styles.native.js.map +1 -1
- package/dist/esm/connectkit/components/ConnectModal/ConnectWithInjector/SquircleSpinner/index.native.js.map +1 -1
- package/dist/esm/connectkit/components/ConnectModal/ConnectWithInjector/SquircleSpinner/styles.native.js.map +1 -1
- package/dist/esm/connectkit/components/ConnectModal/ConnectWithInjector/index.native.js.map +1 -1
- package/dist/esm/connectkit/components/ConnectModal/ConnectWithInjector/styles.native.js.map +1 -1
- package/dist/esm/connectkit/components/ConnectModal/demo.native.js.map +1 -1
- package/dist/esm/connectkit/components/NetworkButton/index.native.js.map +1 -1
- package/dist/esm/connectkit/components/Pages/About/graphics.native.js.map +1 -1
- package/dist/esm/connectkit/components/Pages/About/index.native.js.map +1 -1
- package/dist/esm/connectkit/components/Pages/About/styles.native.js.map +1 -1
- package/dist/esm/connectkit/components/Pages/Connectors/index.native.js.map +1 -1
- package/dist/esm/connectkit/components/Pages/Connectors/styles.native.js.map +1 -1
- package/dist/esm/connectkit/components/Pages/DownloadApp/index.native.js.map +1 -1
- package/dist/esm/connectkit/components/Pages/Onboarding/index.native.js.map +1 -1
- package/dist/esm/connectkit/components/Pages/Onboarding/styles.native.js.map +1 -1
- package/dist/esm/connectkit/components/Pages/Profile/index.native.js.map +1 -1
- package/dist/esm/connectkit/components/Pages/Profile/styles.native.js.map +1 -1
- package/dist/esm/connectkit/components/Pages/SignInWithEthereum/index.native.js.map +1 -1
- package/dist/esm/connectkit/components/Pages/SignInWithEthereum/styles.native.js.map +1 -1
- package/dist/esm/connectkit/components/Pages/SwitchNetworks/index.native.js.map +1 -1
- package/dist/esm/connectkit/components/Standard/SIWE/index.native.js.map +1 -1
- package/dist/esm/connectkit/components/Standard/SIWE/styles.native.js.map +1 -1
- package/dist/esm/connectkit/components/contexts/web3/index.native.js.map +1 -1
- package/dist/esm/connectkit/connectors/aaveAccountConnector.native.js.map +1 -1
- package/dist/esm/connectkit/connectors/createWalletMessage.mjs +1 -1
- package/dist/esm/connectkit/connectors/createWalletMessage.native.js +1 -1
- package/dist/esm/connectkit/connectors/createWalletMessage.native.js.map +1 -1
- package/dist/esm/connectkit/connectors/embeddedDesktop.native.js.map +1 -1
- package/dist/esm/connectkit/connectors/ensureWalletConnectors.native.js.map +1 -1
- package/dist/esm/connectkit/connectors/getWalletConnectors.native.js.map +1 -1
- package/dist/esm/connectkit/connectors/metaMaskConnectConnector.native.js.map +1 -1
- package/dist/esm/connectkit/connectors/syntheticChains.native.js.map +1 -1
- package/dist/esm/connectkit/connectors/walletAdapterConnector.native.js.map +1 -1
- package/dist/esm/connectkit/constants/chainConfigs.native.js.map +1 -1
- package/dist/esm/connectkit/defaultConfig.native.js.map +1 -1
- package/dist/esm/connectkit/defaultConnectors.native.js.map +1 -1
- package/dist/esm/connectkit/defaultTransports.native.js.map +1 -1
- package/dist/esm/connectkit/hooks/useChainIsSupported.native.js.map +1 -1
- package/dist/esm/connectkit/hooks/useChains.native.js.map +1 -1
- package/dist/esm/connectkit/hooks/useConnect.native.js.map +1 -1
- package/dist/esm/connectkit/hooks/useConnectCallback.native.js.map +1 -1
- package/dist/esm/connectkit/hooks/useConnectors.native.js.map +1 -1
- package/dist/esm/connectkit/hooks/useEnsFallbackConfig.native.js.map +1 -1
- package/dist/esm/connectkit/hooks/useLastConnector.native.js.map +1 -1
- package/dist/esm/connectkit/index.mjs +3 -2
- package/dist/esm/connectkit/index.mjs.map +1 -1
- package/dist/esm/connectkit/index.native.js +3 -2
- package/dist/esm/connectkit/index.native.js.map +1 -1
- package/dist/esm/connectkit/openConnector/context.native.js.map +1 -1
- package/dist/esm/connectkit/openConnector/device.native.js.map +1 -1
- package/dist/esm/connectkit/openConnector/index.native.js.map +1 -1
- package/dist/esm/connectkit/openConnector/launcher.native.js.map +1 -1
- package/dist/esm/connectkit/profileHeaderAction.native.js.map +1 -1
- package/dist/esm/connectkit/screens.native.js.map +1 -1
- package/dist/esm/connectkit/siwe/SIWEContext.mjs.map +1 -1
- package/dist/esm/connectkit/siwe/SIWEContext.native.js.map +1 -1
- package/dist/esm/connectkit/siwe/SIWEProvider.mjs +19 -4
- package/dist/esm/connectkit/siwe/SIWEProvider.mjs.map +1 -1
- package/dist/esm/connectkit/siwe/SIWEProvider.native.js +19 -4
- package/dist/esm/connectkit/siwe/SIWEProvider.native.js.map +1 -1
- package/dist/esm/connectkit/siwe/connectIntent.native.js.map +1 -1
- package/dist/esm/connectkit/siwe/index.native.js.map +1 -1
- package/dist/esm/connectkit/siwe/useSIWE.native.js.map +1 -1
- package/dist/esm/connectkit/useWeb3Modal.native.js.map +1 -1
- package/dist/esm/connectkit/wallets/index.native.js.map +1 -1
- package/dist/esm/connectkit/wallets/useWallets.native.js.map +1 -1
- package/dist/esm/connectkit/wallets/walletConfigs.native.js.map +1 -1
- package/dist/esm/connectkit/web3Bridge.native.js.map +1 -1
- package/dist/esm/connectkit/web3Provider.native.js.map +1 -1
- package/dist/esm/esbuild.native.js.map +1 -1
- package/dist/esm/examples/LockContract.native.js.map +1 -1
- package/dist/esm/examples/index.native.js.map +1 -1
- package/dist/esm/hooks/index.native.js.map +1 -1
- package/dist/esm/hooks/useContractRead.native.js.map +1 -1
- package/dist/esm/hooks/useContractWrite.native.js.map +1 -1
- package/dist/esm/hooks/useWallet.native.js.map +1 -1
- package/dist/esm/index.mjs +1 -0
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +1 -0
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/keycloak/KeycloakWalletLogin.mjs +218 -0
- package/dist/esm/keycloak/KeycloakWalletLogin.mjs.map +1 -0
- package/dist/esm/keycloak/KeycloakWalletLogin.native.js +5 -0
- package/dist/esm/keycloak/KeycloakWalletLogin.native.js.map +1 -0
- package/dist/esm/keycloak/browserFlow.mjs +58 -0
- package/dist/esm/keycloak/browserFlow.mjs.map +1 -0
- package/dist/esm/keycloak/browserFlow.native.js +62 -0
- package/dist/esm/keycloak/browserFlow.native.js.map +1 -0
- package/dist/esm/keycloak/device.mjs +10 -0
- package/dist/esm/keycloak/device.mjs.map +1 -0
- package/dist/esm/keycloak/device.native.js +16 -0
- package/dist/esm/keycloak/device.native.js.map +1 -0
- package/dist/esm/keycloak/directGrant.mjs +164 -0
- package/dist/esm/keycloak/directGrant.mjs.map +1 -0
- package/dist/esm/keycloak/directGrant.native.js +205 -0
- package/dist/esm/keycloak/directGrant.native.js.map +1 -0
- package/dist/esm/keycloak/iife.mjs +5 -0
- package/dist/esm/keycloak/iife.mjs.map +1 -0
- package/dist/esm/keycloak/iife.native.js +5 -0
- package/dist/esm/keycloak/iife.native.js.map +1 -0
- package/dist/esm/keycloak/index.mjs +13 -0
- package/dist/esm/keycloak/index.mjs.map +1 -0
- package/dist/esm/keycloak/index.native.js +13 -0
- package/dist/esm/keycloak/index.native.js.map +1 -0
- package/dist/esm/keycloak/keycloakWallet.mjs +186 -0
- package/dist/esm/keycloak/keycloakWallet.mjs.map +1 -0
- package/dist/esm/keycloak/keycloakWallet.native.js +254 -0
- package/dist/esm/keycloak/keycloakWallet.native.js.map +1 -0
- package/dist/esm/keycloak/mount.mjs +28 -0
- package/dist/esm/keycloak/mount.mjs.map +1 -0
- package/dist/esm/keycloak/mount.native.js +5 -0
- package/dist/esm/keycloak/mount.native.js.map +1 -0
- package/dist/esm/keycloak/registerWallet.mjs +49 -0
- package/dist/esm/keycloak/registerWallet.mjs.map +1 -0
- package/dist/esm/keycloak/registerWallet.native.js +53 -0
- package/dist/esm/keycloak/registerWallet.native.js.map +1 -0
- package/dist/esm/keycloak/types.mjs +20 -0
- package/dist/esm/keycloak/types.mjs.map +1 -0
- package/dist/esm/keycloak/types.native.js +150 -0
- package/dist/esm/keycloak/types.native.js.map +1 -0
- package/dist/esm/keycloak/useDirectLogin.mjs +32 -0
- package/dist/esm/keycloak/useDirectLogin.mjs.map +1 -0
- package/dist/esm/keycloak/useDirectLogin.native.js +49 -0
- package/dist/esm/keycloak/useDirectLogin.native.js.map +1 -0
- package/dist/esm/keycloak/useWalletLogin.mjs +72 -0
- package/dist/esm/keycloak/useWalletLogin.mjs.map +1 -0
- package/dist/esm/keycloak/useWalletLogin.native.js +5 -0
- package/dist/esm/keycloak/useWalletLogin.native.js.map +1 -0
- package/dist/esm/message/buildWalletMessage.mjs +87 -0
- package/dist/esm/message/buildWalletMessage.mjs.map +1 -0
- package/dist/esm/message/buildWalletMessage.native.js +92 -0
- package/dist/esm/message/buildWalletMessage.native.js.map +1 -0
- package/dist/esm/message/index.mjs +3 -0
- package/dist/esm/message/index.mjs.map +1 -0
- package/dist/esm/message/index.native.js +3 -0
- package/dist/esm/message/index.native.js.map +1 -0
- package/dist/esm/providers/WalletProvider.mjs +9 -3
- package/dist/esm/providers/WalletProvider.mjs.map +1 -1
- package/dist/esm/providers/index.native.js.map +1 -1
- package/dist/esm/providers/mockConnector.native.js.map +1 -1
- package/dist/esm/providers/native/deepLink.native.js.map +1 -1
- package/dist/esm/providers/native/inject.native.js.map +1 -1
- package/dist/esm/providers/native/visibility.native.js.map +1 -1
- package/dist/esm/providers/walletConfig.native.js.map +1 -1
- package/dist/esm/siws/index.native.js.map +1 -1
- package/dist/esm/siws/message.mjs +5 -16
- package/dist/esm/siws/message.mjs.map +1 -1
- package/dist/esm/siws/message.native.js +6 -16
- package/dist/esm/siws/message.native.js.map +1 -1
- package/dist/esm/siws/signWithBridge.native.js.map +1 -1
- package/dist/esm/siws/verify.native.js.map +1 -1
- package/dist/esm/solana.mjs.map +1 -1
- package/dist/esm/solana.native.js.map +1 -1
- package/dist/esm/vite.native.js.map +1 -1
- package/dist/jsx/bridge/BridgeClient.native.js.map +1 -1
- package/dist/jsx/bridge/BridgeHost.native.js.map +1 -1
- package/dist/jsx/bridge/SolanaBridge.native.js.map +1 -1
- package/dist/jsx/bridge/base64.native.js.map +1 -1
- package/dist/jsx/bridge/bridgeConnector.native.js.map +1 -1
- package/dist/jsx/bridge/eip1193.native.js.map +1 -1
- package/dist/jsx/bridge/index.native.js.map +1 -1
- package/dist/jsx/bridge/postMessageTransport.native.js.map +1 -1
- package/dist/jsx/bridge/protocol.native.js.map +1 -1
- package/dist/jsx/bridge/transport.native.js.map +1 -1
- package/dist/jsx/bundler/metaMaskConnectTimeouts.native.js.map +1 -1
- package/dist/jsx/clients/adapter.native.js.map +1 -1
- package/dist/jsx/clients/bitcoin.native.js.map +1 -1
- package/dist/jsx/clients/connector.native.js.map +1 -1
- package/dist/jsx/clients/evm.mjs +295 -12
- package/dist/jsx/clients/evm.mjs.map +1 -1
- package/dist/jsx/clients/evm.native.js +500 -12
- package/dist/jsx/clients/evm.native.js.map +1 -1
- package/dist/jsx/clients/gpg.native.js.map +1 -1
- package/dist/jsx/clients/hooks.native.js.map +1 -1
- package/dist/jsx/clients/index.mjs +2 -2
- package/dist/jsx/clients/index.mjs.map +1 -1
- package/dist/jsx/clients/index.native.js +5 -0
- package/dist/jsx/clients/index.native.js.map +1 -1
- package/dist/jsx/clients/solana.mjs +39 -21
- package/dist/jsx/clients/solana.mjs.map +1 -1
- package/dist/jsx/clients/solana.native.js +48 -23
- package/dist/jsx/clients/solana.native.js.map +1 -1
- package/dist/jsx/clients/solanaMessage.native.js.map +1 -1
- package/dist/jsx/clients/sui.native.js.map +1 -1
- package/dist/jsx/clients/types.native.js.map +1 -1
- package/dist/jsx/clients/useSolanaClient.native.js.map +1 -1
- package/dist/jsx/clients/walletStandard.native.js.map +1 -1
- package/dist/jsx/components/NetworkSwitcher.native.js.map +1 -1
- package/dist/jsx/components/TransactionStatus.native.js.map +1 -1
- package/dist/jsx/components/index.native.js.map +1 -1
- package/dist/jsx/connectkit/GpgProvider.mjs +19 -0
- package/dist/jsx/connectkit/GpgProvider.mjs.map +1 -0
- package/dist/jsx/connectkit/GpgProvider.native.js +51 -0
- package/dist/jsx/connectkit/GpgProvider.native.js.map +1 -0
- package/dist/jsx/connectkit/adapters/BitcoinAdapter.mjs +5 -14
- package/dist/jsx/connectkit/adapters/BitcoinAdapter.mjs.map +1 -1
- package/dist/jsx/connectkit/adapters/BitcoinAdapter.native.js +5 -15
- package/dist/jsx/connectkit/adapters/BitcoinAdapter.native.js.map +1 -1
- package/dist/jsx/connectkit/adapters/EthereumAdapter.mjs +6 -15
- package/dist/jsx/connectkit/adapters/EthereumAdapter.mjs.map +1 -1
- package/dist/jsx/connectkit/adapters/EthereumAdapter.native.js +7 -16
- package/dist/jsx/connectkit/adapters/EthereumAdapter.native.js.map +1 -1
- package/dist/jsx/connectkit/adapters/SolanaAdapter.mjs +5 -14
- package/dist/jsx/connectkit/adapters/SolanaAdapter.mjs.map +1 -1
- package/dist/jsx/connectkit/adapters/SolanaAdapter.native.js +5 -15
- package/dist/jsx/connectkit/adapters/SolanaAdapter.native.js.map +1 -1
- package/dist/jsx/connectkit/adapters/SuiAdapter.mjs +5 -14
- package/dist/jsx/connectkit/adapters/SuiAdapter.mjs.map +1 -1
- package/dist/jsx/connectkit/adapters/SuiAdapter.native.js +5 -15
- package/dist/jsx/connectkit/adapters/SuiAdapter.native.js.map +1 -1
- package/dist/jsx/connectkit/adapters/discover.native.js.map +1 -1
- package/dist/jsx/connectkit/adapters/index.native.js.map +1 -1
- package/dist/jsx/connectkit/adapters/types.native.js.map +1 -1
- package/dist/jsx/connectkit/assets/chains.native.js.map +1 -1
- package/dist/jsx/connectkit/components/BalanceButton/index.native.js +1 -1
- package/dist/jsx/connectkit/components/BalanceButton/index.native.js.map +1 -1
- package/dist/jsx/connectkit/components/Common/Avatar/index.native.js.map +1 -1
- package/dist/jsx/connectkit/components/Common/Avatar/styles.native.js.map +1 -1
- package/dist/jsx/connectkit/components/Common/Chain/index.native.js.map +1 -1
- package/dist/jsx/connectkit/components/Common/Chain/styles.native.js.map +1 -1
- package/dist/jsx/connectkit/components/Common/ChainSelect/index.native.js +2 -2
- package/dist/jsx/connectkit/components/Common/ChainSelect/index.native.js.map +1 -1
- package/dist/jsx/connectkit/components/Common/ChainSelectDropdown/index.native.js +1 -1
- package/dist/jsx/connectkit/components/Common/ChainSelectDropdown/index.native.js.map +1 -1
- package/dist/jsx/connectkit/components/Common/ChainSelectDropdown/styles.native.js.map +1 -1
- package/dist/jsx/connectkit/components/Common/ChainSelectList/index.native.js.map +1 -1
- package/dist/jsx/connectkit/components/Common/ChainSelectList/styles.native.js.map +1 -1
- package/dist/jsx/connectkit/components/Common/ConnectorList/index.native.js.map +1 -1
- package/dist/jsx/connectkit/components/Common/ConnectorList/styles.native.js.map +1 -1
- package/dist/jsx/connectkit/components/ConnectButton/index.native.js +4 -4
- package/dist/jsx/connectkit/components/ConnectButton/index.native.js.map +1 -1
- package/dist/jsx/connectkit/components/ConnectButton/styles.native.js.map +1 -1
- package/dist/jsx/connectkit/components/ConnectModal/ConnectUsing.native.js +1 -1
- package/dist/jsx/connectkit/components/ConnectModal/ConnectUsing.native.js.map +1 -1
- package/dist/jsx/connectkit/components/ConnectModal/ConnectWithInjector/CircleSpinner/index.native.js.map +1 -1
- package/dist/jsx/connectkit/components/ConnectModal/ConnectWithInjector/CircleSpinner/styles.native.js.map +1 -1
- package/dist/jsx/connectkit/components/ConnectModal/ConnectWithInjector/SquircleSpinner/index.native.js.map +1 -1
- package/dist/jsx/connectkit/components/ConnectModal/ConnectWithInjector/SquircleSpinner/styles.native.js.map +1 -1
- package/dist/jsx/connectkit/components/ConnectModal/ConnectWithInjector/index.native.js +3 -3
- package/dist/jsx/connectkit/components/ConnectModal/ConnectWithInjector/index.native.js.map +1 -1
- package/dist/jsx/connectkit/components/ConnectModal/ConnectWithInjector/styles.native.js.map +1 -1
- package/dist/jsx/connectkit/components/ConnectModal/demo.native.js +9 -9
- package/dist/jsx/connectkit/components/ConnectModal/demo.native.js.map +1 -1
- package/dist/jsx/connectkit/components/NetworkButton/index.native.js +2 -2
- package/dist/jsx/connectkit/components/NetworkButton/index.native.js.map +1 -1
- package/dist/jsx/connectkit/components/Pages/About/graphics.native.js.map +1 -1
- package/dist/jsx/connectkit/components/Pages/About/index.native.js.map +1 -1
- package/dist/jsx/connectkit/components/Pages/About/styles.native.js.map +1 -1
- package/dist/jsx/connectkit/components/Pages/Connectors/index.native.js +1 -1
- package/dist/jsx/connectkit/components/Pages/Connectors/index.native.js.map +1 -1
- package/dist/jsx/connectkit/components/Pages/Connectors/styles.native.js.map +1 -1
- package/dist/jsx/connectkit/components/Pages/DownloadApp/index.native.js.map +1 -1
- package/dist/jsx/connectkit/components/Pages/Onboarding/index.native.js.map +1 -1
- package/dist/jsx/connectkit/components/Pages/Onboarding/styles.native.js.map +1 -1
- package/dist/jsx/connectkit/components/Pages/Profile/index.native.js +2 -2
- package/dist/jsx/connectkit/components/Pages/Profile/index.native.js.map +1 -1
- package/dist/jsx/connectkit/components/Pages/Profile/styles.native.js.map +1 -1
- package/dist/jsx/connectkit/components/Pages/SignInWithEthereum/index.native.js +3 -3
- package/dist/jsx/connectkit/components/Pages/SignInWithEthereum/index.native.js.map +1 -1
- package/dist/jsx/connectkit/components/Pages/SignInWithEthereum/styles.native.js.map +1 -1
- package/dist/jsx/connectkit/components/Pages/SwitchNetworks/index.native.js +1 -1
- package/dist/jsx/connectkit/components/Pages/SwitchNetworks/index.native.js.map +1 -1
- package/dist/jsx/connectkit/components/Standard/SIWE/index.native.js +1 -1
- package/dist/jsx/connectkit/components/Standard/SIWE/index.native.js.map +1 -1
- package/dist/jsx/connectkit/components/Standard/SIWE/styles.native.js.map +1 -1
- package/dist/jsx/connectkit/components/contexts/web3/index.native.js.map +1 -1
- package/dist/jsx/connectkit/connectors/aaveAccountConnector.native.js.map +1 -1
- package/dist/jsx/connectkit/connectors/createWalletMessage.mjs +1 -1
- package/dist/jsx/connectkit/connectors/createWalletMessage.native.js +2 -2
- package/dist/jsx/connectkit/connectors/createWalletMessage.native.js.map +1 -1
- package/dist/jsx/connectkit/connectors/embeddedDesktop.native.js.map +1 -1
- package/dist/jsx/connectkit/connectors/ensureWalletConnectors.native.js.map +1 -1
- package/dist/jsx/connectkit/connectors/getWalletConnectors.native.js.map +1 -1
- package/dist/jsx/connectkit/connectors/metaMaskConnectConnector.native.js.map +1 -1
- package/dist/jsx/connectkit/connectors/syntheticChains.native.js.map +1 -1
- package/dist/jsx/connectkit/connectors/walletAdapterConnector.native.js.map +1 -1
- package/dist/jsx/connectkit/constants/chainConfigs.native.js.map +1 -1
- package/dist/jsx/connectkit/defaultConfig.native.js.map +1 -1
- package/dist/jsx/connectkit/defaultConnectors.native.js.map +1 -1
- package/dist/jsx/connectkit/defaultTransports.native.js.map +1 -1
- package/dist/jsx/connectkit/hooks/useChainIsSupported.native.js.map +1 -1
- package/dist/jsx/connectkit/hooks/useChains.native.js.map +1 -1
- package/dist/jsx/connectkit/hooks/useConnect.native.js.map +1 -1
- package/dist/jsx/connectkit/hooks/useConnectCallback.native.js.map +1 -1
- package/dist/jsx/connectkit/hooks/useConnectors.native.js.map +1 -1
- package/dist/jsx/connectkit/hooks/useEnsFallbackConfig.native.js.map +1 -1
- package/dist/jsx/connectkit/hooks/useLastConnector.native.js.map +1 -1
- package/dist/jsx/connectkit/index.mjs +3 -2
- package/dist/jsx/connectkit/index.mjs.map +1 -1
- package/dist/jsx/connectkit/index.native.js +12 -11
- package/dist/jsx/connectkit/index.native.js.map +1 -1
- package/dist/jsx/connectkit/openConnector/context.native.js.map +1 -1
- package/dist/jsx/connectkit/openConnector/device.native.js.map +1 -1
- package/dist/jsx/connectkit/openConnector/index.native.js.map +1 -1
- package/dist/jsx/connectkit/openConnector/launcher.native.js.map +1 -1
- package/dist/jsx/connectkit/profileHeaderAction.native.js +1 -1
- package/dist/jsx/connectkit/profileHeaderAction.native.js.map +1 -1
- package/dist/jsx/connectkit/screens.native.js +7 -7
- package/dist/jsx/connectkit/screens.native.js.map +1 -1
- package/dist/jsx/connectkit/siwe/SIWEContext.mjs.map +1 -1
- package/dist/jsx/connectkit/siwe/SIWEContext.native.js.map +1 -1
- package/dist/jsx/connectkit/siwe/SIWEProvider.mjs +19 -4
- package/dist/jsx/connectkit/siwe/SIWEProvider.mjs.map +1 -1
- package/dist/jsx/connectkit/siwe/SIWEProvider.native.js +18 -3
- package/dist/jsx/connectkit/siwe/SIWEProvider.native.js.map +1 -1
- package/dist/jsx/connectkit/siwe/connectIntent.native.js.map +1 -1
- package/dist/jsx/connectkit/siwe/index.native.js.map +1 -1
- package/dist/jsx/connectkit/siwe/useSIWE.native.js.map +1 -1
- package/dist/jsx/connectkit/useWeb3Modal.native.js +2 -2
- package/dist/jsx/connectkit/useWeb3Modal.native.js.map +1 -1
- package/dist/jsx/connectkit/wallets/index.native.js.map +1 -1
- package/dist/jsx/connectkit/wallets/useWallets.native.js.map +1 -1
- package/dist/jsx/connectkit/wallets/walletConfigs.native.js.map +1 -1
- package/dist/jsx/connectkit/web3Bridge.native.js +2 -2
- package/dist/jsx/connectkit/web3Bridge.native.js.map +1 -1
- package/dist/jsx/connectkit/web3Provider.native.js.map +1 -1
- package/dist/jsx/esbuild.native.js.map +1 -1
- package/dist/jsx/examples/LockContract.native.js.map +1 -1
- package/dist/jsx/examples/index.native.js.map +1 -1
- package/dist/jsx/hooks/index.native.js.map +1 -1
- package/dist/jsx/hooks/useContractRead.native.js.map +1 -1
- package/dist/jsx/hooks/useContractWrite.native.js.map +1 -1
- package/dist/jsx/hooks/useWallet.native.js.map +1 -1
- package/dist/jsx/index.js +1 -0
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +1 -0
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +7 -6
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/keycloak/KeycloakWalletLogin.mjs +218 -0
- package/dist/jsx/keycloak/KeycloakWalletLogin.mjs.map +1 -0
- package/dist/jsx/keycloak/KeycloakWalletLogin.native.js +33 -0
- package/dist/jsx/keycloak/KeycloakWalletLogin.native.js.map +1 -0
- package/dist/jsx/keycloak/browserFlow.mjs +58 -0
- package/dist/jsx/keycloak/browserFlow.mjs.map +1 -0
- package/dist/jsx/keycloak/browserFlow.native.js +90 -0
- package/dist/jsx/keycloak/browserFlow.native.js.map +1 -0
- package/dist/jsx/keycloak/device.mjs +10 -0
- package/dist/jsx/keycloak/device.mjs.map +1 -0
- package/dist/jsx/keycloak/device.native.js +45 -0
- package/dist/jsx/keycloak/device.native.js.map +1 -0
- package/dist/jsx/keycloak/directGrant.mjs +164 -0
- package/dist/jsx/keycloak/directGrant.mjs.map +1 -0
- package/dist/jsx/keycloak/directGrant.native.js +233 -0
- package/dist/jsx/keycloak/directGrant.native.js.map +1 -0
- package/dist/jsx/keycloak/iife.mjs +5 -0
- package/dist/jsx/keycloak/iife.mjs.map +1 -0
- package/dist/jsx/keycloak/iife.native.js +7 -0
- package/dist/jsx/keycloak/iife.native.js.map +1 -0
- package/dist/jsx/keycloak/index.mjs +13 -0
- package/dist/jsx/keycloak/index.mjs.map +1 -0
- package/dist/jsx/keycloak/index.native.js +56 -0
- package/dist/jsx/keycloak/index.native.js.map +1 -0
- package/dist/jsx/keycloak/keycloakWallet.mjs +186 -0
- package/dist/jsx/keycloak/keycloakWallet.mjs.map +1 -0
- package/dist/jsx/keycloak/keycloakWallet.native.js +285 -0
- package/dist/jsx/keycloak/keycloakWallet.native.js.map +1 -0
- package/dist/jsx/keycloak/mount.mjs +28 -0
- package/dist/jsx/keycloak/mount.mjs.map +1 -0
- package/dist/jsx/keycloak/mount.native.js +33 -0
- package/dist/jsx/keycloak/mount.native.js.map +1 -0
- package/dist/jsx/keycloak/registerWallet.mjs +49 -0
- package/dist/jsx/keycloak/registerWallet.mjs.map +1 -0
- package/dist/jsx/keycloak/registerWallet.native.js +81 -0
- package/dist/jsx/keycloak/registerWallet.native.js.map +1 -0
- package/dist/jsx/keycloak/types.mjs +20 -0
- package/dist/jsx/keycloak/types.mjs.map +1 -0
- package/dist/jsx/keycloak/types.native.js +179 -0
- package/dist/jsx/keycloak/types.native.js.map +1 -0
- package/dist/jsx/keycloak/useDirectLogin.mjs +32 -0
- package/dist/jsx/keycloak/useDirectLogin.mjs.map +1 -0
- package/dist/jsx/keycloak/useDirectLogin.native.js +77 -0
- package/dist/jsx/keycloak/useDirectLogin.native.js.map +1 -0
- package/dist/jsx/keycloak/useWalletLogin.mjs +72 -0
- package/dist/jsx/keycloak/useWalletLogin.mjs.map +1 -0
- package/dist/jsx/keycloak/useWalletLogin.native.js +33 -0
- package/dist/jsx/keycloak/useWalletLogin.native.js.map +1 -0
- package/dist/jsx/message/buildWalletMessage.mjs +87 -0
- package/dist/jsx/message/buildWalletMessage.mjs.map +1 -0
- package/dist/jsx/message/buildWalletMessage.native.js +121 -0
- package/dist/jsx/message/buildWalletMessage.native.js.map +1 -0
- package/dist/jsx/message/index.mjs +3 -0
- package/dist/jsx/message/index.mjs.map +1 -0
- package/dist/jsx/message/index.native.js +32 -0
- package/dist/jsx/message/index.native.js.map +1 -0
- package/dist/jsx/providers/WalletProvider.mjs +9 -3
- package/dist/jsx/providers/WalletProvider.mjs.map +1 -1
- package/dist/jsx/providers/index.native.js.map +1 -1
- package/dist/jsx/providers/mockConnector.native.js.map +1 -1
- package/dist/jsx/providers/native/deepLink.native.js.map +1 -1
- package/dist/jsx/providers/native/inject.native.js.map +1 -1
- package/dist/jsx/providers/native/visibility.native.js.map +1 -1
- package/dist/jsx/providers/walletConfig.native.js.map +1 -1
- package/dist/jsx/siws/index.native.js.map +1 -1
- package/dist/jsx/siws/message.mjs +5 -16
- package/dist/jsx/siws/message.mjs.map +1 -1
- package/dist/jsx/siws/message.native.js +6 -16
- package/dist/jsx/siws/message.native.js.map +1 -1
- package/dist/jsx/siws/signWithBridge.native.js.map +1 -1
- package/dist/jsx/siws/verify.native.js.map +1 -1
- package/dist/jsx/solana.mjs.map +1 -1
- package/dist/jsx/solana.native.js.map +1 -1
- package/dist/jsx/vite.native.js.map +1 -1
- package/dist/keycloak/login.iife.js +3604 -0
- package/package.json +27 -8
- package/src/clients/evm.spec.ts +644 -10
- package/src/clients/evm.ts +498 -10
- package/src/clients/index.ts +8 -0
- package/src/clients/solana.spec.ts +116 -0
- package/src/clients/solana.ts +51 -31
- package/src/connectkit/GpgProvider.tsx +16 -0
- package/src/connectkit/adapters/BitcoinAdapter.ts +5 -16
- package/src/connectkit/adapters/EthereumAdapter.ts +6 -17
- package/src/connectkit/adapters/SolanaAdapter.ts +5 -16
- package/src/connectkit/adapters/SuiAdapter.ts +5 -16
- package/src/connectkit/connectors/createWalletMessage.ts +1 -1
- package/src/connectkit/index.ts +2 -6
- package/src/connectkit/openConnector/modal.spec.tsx +1 -1
- package/src/connectkit/siwe/SIWEContext.tsx +6 -2
- package/src/connectkit/siwe/SIWEProvider.tsx +22 -5
- package/src/index.ts +3 -0
- package/src/keycloak/KeycloakWalletLogin.native.tsx +7 -0
- package/src/keycloak/KeycloakWalletLogin.spec.tsx +168 -0
- package/src/keycloak/KeycloakWalletLogin.tsx +251 -0
- package/src/keycloak/browserFlow.spec.ts +108 -0
- package/src/keycloak/browserFlow.ts +84 -0
- package/src/keycloak/device.ts +17 -0
- package/src/keycloak/directGrant.spec.ts +331 -0
- package/src/keycloak/directGrant.ts +214 -0
- package/src/keycloak/iife.ts +3 -0
- package/src/keycloak/index.ts +44 -0
- package/src/keycloak/keycloakWallet.spec.ts +216 -0
- package/src/keycloak/keycloakWallet.ts +275 -0
- package/src/keycloak/mount.native.ts +11 -0
- package/src/keycloak/mount.tsx +45 -0
- package/src/keycloak/nonceReset.spec.tsx +205 -0
- package/src/keycloak/registerWallet.spec.ts +88 -0
- package/src/keycloak/registerWallet.ts +59 -0
- package/src/keycloak/types.ts +66 -0
- package/src/keycloak/useDirectLogin.spec.tsx +112 -0
- package/src/keycloak/useDirectLogin.ts +74 -0
- package/src/keycloak/useWalletLogin.native.ts +7 -0
- package/src/keycloak/useWalletLogin.ts +99 -0
- package/src/message/buildWalletMessage.spec.ts +291 -0
- package/src/message/buildWalletMessage.ts +150 -0
- package/src/message/index.ts +8 -0
- package/src/providers/WalletProvider.tsx +15 -2
- package/src/siws/message.ts +3 -22
- package/src/solana.ts +1 -0
- package/types/clients/evm.d.ts +144 -2
- package/types/clients/evm.d.ts.map +1 -1
- package/types/clients/index.d.ts +1 -1
- package/types/clients/index.d.ts.map +1 -1
- package/types/clients/solana.d.ts +14 -5
- package/types/clients/solana.d.ts.map +1 -1
- package/types/connectkit/GpgProvider.d.ts +10 -0
- package/types/connectkit/GpgProvider.d.ts.map +1 -0
- package/types/connectkit/adapters/BitcoinAdapter.d.ts.map +1 -1
- package/types/connectkit/adapters/EthereumAdapter.d.ts.map +1 -1
- package/types/connectkit/adapters/SolanaAdapter.d.ts.map +1 -1
- package/types/connectkit/adapters/SuiAdapter.d.ts.map +1 -1
- package/types/connectkit/connectors/createWalletMessage.d.ts +1 -1
- package/types/connectkit/connectors/createWalletMessage.d.ts.map +1 -1
- package/types/connectkit/index.d.ts +3 -2
- package/types/connectkit/index.d.ts.map +1 -1
- package/types/connectkit/siwe/SIWEContext.d.ts +2 -1
- package/types/connectkit/siwe/SIWEContext.d.ts.map +1 -1
- package/types/connectkit/siwe/SIWEProvider.d.ts.map +1 -1
- package/types/index.d.ts +1 -0
- package/types/index.d.ts.map +1 -1
- package/types/keycloak/KeycloakWalletLogin.d.ts +45 -0
- package/types/keycloak/KeycloakWalletLogin.d.ts.map +1 -0
- package/types/keycloak/KeycloakWalletLogin.native.d.ts +4 -0
- package/types/keycloak/KeycloakWalletLogin.native.d.ts.map +1 -0
- package/types/keycloak/browserFlow.d.ts +27 -0
- package/types/keycloak/browserFlow.d.ts.map +1 -0
- package/types/keycloak/device.d.ts +14 -0
- package/types/keycloak/device.d.ts.map +1 -0
- package/types/keycloak/directGrant.d.ts +43 -0
- package/types/keycloak/directGrant.d.ts.map +1 -0
- package/types/keycloak/iife.d.ts +2 -0
- package/types/keycloak/iife.d.ts.map +1 -0
- package/types/keycloak/index.d.ts +12 -0
- package/types/keycloak/index.d.ts.map +1 -0
- package/types/keycloak/keycloakWallet.d.ts +120 -0
- package/types/keycloak/keycloakWallet.d.ts.map +1 -0
- package/types/keycloak/mount.d.ts +16 -0
- package/types/keycloak/mount.d.ts.map +1 -0
- package/types/keycloak/mount.native.d.ts +5 -0
- package/types/keycloak/mount.native.d.ts.map +1 -0
- package/types/keycloak/registerWallet.d.ts +22 -0
- package/types/keycloak/registerWallet.d.ts.map +1 -0
- package/types/keycloak/types.d.ts +50 -0
- package/types/keycloak/types.d.ts.map +1 -0
- package/types/keycloak/useDirectLogin.d.ts +29 -0
- package/types/keycloak/useDirectLogin.d.ts.map +1 -0
- package/types/keycloak/useWalletLogin.d.ts +26 -0
- package/types/keycloak/useWalletLogin.d.ts.map +1 -0
- package/types/keycloak/useWalletLogin.native.d.ts +4 -0
- package/types/keycloak/useWalletLogin.native.d.ts.map +1 -0
- package/types/message/buildWalletMessage.d.ts +46 -0
- package/types/message/buildWalletMessage.d.ts.map +1 -0
- package/types/message/index.d.ts +2 -0
- package/types/message/index.d.ts.map +1 -0
- package/types/providers/WalletProvider.d.ts +8 -1
- package/types/providers/WalletProvider.d.ts.map +1 -1
- package/types/siws/message.d.ts.map +1 -1
- package/types/solana.d.ts +1 -1
- package/types/solana.d.ts.map +1 -1
- package/dist/cjs/connectkit/adapters/messages.cjs +0 -73
- package/dist/cjs/connectkit/adapters/messages.native.js +0 -79
- package/dist/cjs/connectkit/adapters/messages.native.js.map +0 -1
- package/dist/esm/connectkit/adapters/messages.mjs +0 -48
- package/dist/esm/connectkit/adapters/messages.mjs.map +0 -1
- package/dist/esm/connectkit/adapters/messages.native.js +0 -51
- package/dist/esm/connectkit/adapters/messages.native.js.map +0 -1
- package/dist/jsx/connectkit/adapters/messages.mjs +0 -48
- package/dist/jsx/connectkit/adapters/messages.mjs.map +0 -1
- package/dist/jsx/connectkit/adapters/messages.native.js +0 -79
- package/dist/jsx/connectkit/adapters/messages.native.js.map +0 -1
- package/src/connectkit/adapters/messages.ts +0 -84
- package/types/connectkit/adapters/messages.d.ts +0 -16
- package/types/connectkit/adapters/messages.d.ts.map +0 -1
package/src/clients/evm.ts
CHANGED
|
@@ -15,6 +15,7 @@ import {
|
|
|
15
15
|
type Hex,
|
|
16
16
|
type PublicClient,
|
|
17
17
|
type SendTransactionParameters,
|
|
18
|
+
type Transaction,
|
|
18
19
|
type TransactionReceipt,
|
|
19
20
|
type Transport,
|
|
20
21
|
type WalletClient,
|
|
@@ -39,6 +40,213 @@ export type EvmWriteContractParameters<
|
|
|
39
40
|
|
|
40
41
|
export type EvmSendTransactionParameters = SendTransactionParameters<Chain, Account>;
|
|
41
42
|
|
|
43
|
+
export interface EvmWaitOptions {
|
|
44
|
+
/**
|
|
45
|
+
* Milliseconds before giving up with ReceiptPendingError, even with an RPC
|
|
46
|
+
* call still unanswered. None by default, or when it is not a positive
|
|
47
|
+
* finite number: the wait lasts until the transaction is mined or its
|
|
48
|
+
* nonce goes to another transaction, because one still in the mempool can
|
|
49
|
+
* land any time. RPC errors alone never end a wait without one; it backs
|
|
50
|
+
* off and retries.
|
|
51
|
+
*/
|
|
52
|
+
timeout?: number;
|
|
53
|
+
/**
|
|
54
|
+
* Stops the wait: it rejects with ReceiptWaitAbortedError, which
|
|
55
|
+
* classifyTxError calls `aborted`. A wait with no timeout polls until the
|
|
56
|
+
* transaction settles, forever for one that was dropped, so a component
|
|
57
|
+
* must abort its wait when it unmounts.
|
|
58
|
+
*/
|
|
59
|
+
signal?: AbortSignal;
|
|
60
|
+
/** Blocks on top of the one that mined it, 1 by default. */
|
|
61
|
+
confirmations?: number;
|
|
62
|
+
/**
|
|
63
|
+
* The transaction's nonce, as `onTrack` gave it. A wait resumed after a
|
|
64
|
+
* reload needs it to see that another transaction took the nonce once the
|
|
65
|
+
* node has forgotten the original.
|
|
66
|
+
*/
|
|
67
|
+
nonce?: number;
|
|
68
|
+
/**
|
|
69
|
+
* Called with what to persist and resume on: once the nonce is known, and
|
|
70
|
+
* with the new hash when a speed-up replaces the one being waited on.
|
|
71
|
+
* Errors it throws are ignored.
|
|
72
|
+
*/
|
|
73
|
+
onTrack?: (tracked: { hash: Hash; nonce: number }) => void;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* The receipt never arrived before the wait's timeout, whether the chain was
|
|
78
|
+
* slow or the RPC was failing (`cause` holds its last error). The transaction
|
|
79
|
+
* was sent and may still land, so resending it can pay twice. Show it as
|
|
80
|
+
* pending (`explorerUrl` when the chain has an explorer) and keep waiting on
|
|
81
|
+
* `hash` instead of offering a retry.
|
|
82
|
+
*/
|
|
83
|
+
export class ReceiptPendingError extends Error {
|
|
84
|
+
readonly mayStillLand = true as const;
|
|
85
|
+
readonly explorerUrl: string | undefined;
|
|
86
|
+
/** Known once the node has seen the transaction. Keep it with the hash to resume the wait. */
|
|
87
|
+
readonly nonce: number | undefined;
|
|
88
|
+
constructor(
|
|
89
|
+
readonly hash: Hash,
|
|
90
|
+
readonly chainId: number,
|
|
91
|
+
options: {
|
|
92
|
+
detail: string;
|
|
93
|
+
explorerUrl?: string;
|
|
94
|
+
nonce?: number;
|
|
95
|
+
cause?: unknown;
|
|
96
|
+
label?: string;
|
|
97
|
+
},
|
|
98
|
+
) {
|
|
99
|
+
super(
|
|
100
|
+
`${options.label ?? "transaction"} ${hash} on chain ${chainId} ${options.detail}; it may still land, so do not resend it`,
|
|
101
|
+
{ cause: options.cause },
|
|
102
|
+
);
|
|
103
|
+
this.name = "ReceiptPendingError";
|
|
104
|
+
this.explorerUrl = options.explorerUrl;
|
|
105
|
+
this.nonce = options.nonce;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* The wait's signal aborted. Named AbortError like fetch's. The transaction
|
|
111
|
+
* is as pending as it was, so keep `hash` and `nonce` to resume the wait.
|
|
112
|
+
*/
|
|
113
|
+
export class ReceiptWaitAbortedError extends Error {
|
|
114
|
+
readonly mayStillLand = true as const;
|
|
115
|
+
constructor(
|
|
116
|
+
readonly hash: Hash,
|
|
117
|
+
readonly chainId: number,
|
|
118
|
+
readonly nonce: number | undefined,
|
|
119
|
+
cause: unknown,
|
|
120
|
+
) {
|
|
121
|
+
super(`stopped waiting for transaction ${hash} on chain ${chainId}`, { cause });
|
|
122
|
+
this.name = "AbortError";
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/** Mined and reverted: it spent gas and moved nothing. A retry is a new transaction. */
|
|
127
|
+
export class TransactionRevertedError extends Error {
|
|
128
|
+
readonly mayStillLand = false as const;
|
|
129
|
+
readonly hash: Hash;
|
|
130
|
+
constructor(
|
|
131
|
+
readonly receipt: TransactionReceipt,
|
|
132
|
+
readonly chainId: number,
|
|
133
|
+
label = "transaction",
|
|
134
|
+
) {
|
|
135
|
+
super(`${label} ${receipt.transactionHash} reverted in block ${receipt.blockNumber}`);
|
|
136
|
+
this.name = "TransactionRevertedError";
|
|
137
|
+
this.hash = receipt.transactionHash;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Sorted as viem's waitForTransactionReceipt sorts a replacement, except
|
|
143
|
+
* that a repriced copy (same `to`, `value` and `input`) is a speed-up and
|
|
144
|
+
* resolves the wait instead:
|
|
145
|
+
* - `cancelled`: a wallet's cancel, a 0-value send to self. Nothing was paid.
|
|
146
|
+
* - `replaced`: a different transaction. This one was not paid.
|
|
147
|
+
* - `unmatched`: the original was never seen, so the transaction that took
|
|
148
|
+
* its nonce could not be compared with it. It may be the same payment sped
|
|
149
|
+
* up, so this classifies as pending.
|
|
150
|
+
*/
|
|
151
|
+
export type EvmReplacementReason = "cancelled" | "replaced" | "unmatched";
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Another transaction took this one's nonce, so this one can never land. A
|
|
155
|
+
* speed-up is not this: the wait resolves with the faster copy's receipt.
|
|
156
|
+
*/
|
|
157
|
+
export class TransactionReplacedError extends Error {
|
|
158
|
+
readonly mayStillLand = false as const;
|
|
159
|
+
constructor(
|
|
160
|
+
readonly hash: Hash,
|
|
161
|
+
readonly chainId: number,
|
|
162
|
+
readonly reason: EvmReplacementReason,
|
|
163
|
+
/** The transaction that took the nonce, when it was found. */
|
|
164
|
+
readonly replacement: TransactionReceipt | undefined,
|
|
165
|
+
) {
|
|
166
|
+
super(
|
|
167
|
+
`transaction ${hash} was ${reason === "unmatched" ? "superseded" : reason}${
|
|
168
|
+
replacement ? ` by ${replacement.transactionHash}` : ""
|
|
169
|
+
}: another transaction took its nonce`,
|
|
170
|
+
);
|
|
171
|
+
this.name = "TransactionReplacedError";
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* What an app shows for a failed send or confirmation:
|
|
177
|
+
* - `user-rejected`: declined or cancelled in the wallet. Nothing was paid.
|
|
178
|
+
* - `reverted`: the contract refused it, in simulation (nothing sent) or on
|
|
179
|
+
* chain (gas spent). Nothing was bought.
|
|
180
|
+
* - `pending`: sent, with no receipt yet, or superseded by a transaction
|
|
181
|
+
* that may be the same payment sped up. Show it as pending and never
|
|
182
|
+
* resend it.
|
|
183
|
+
* - `aborted`: the app stopped waiting through the wait's `signal`. The
|
|
184
|
+
* transaction is as pending as it was; nothing to show on an unmounted
|
|
185
|
+
* screen.
|
|
186
|
+
* - `failed`: anything else. No hash came back and nothing says the wallet
|
|
187
|
+
* sent it, or a different transaction took its nonce.
|
|
188
|
+
*/
|
|
189
|
+
export type TxErrorKind = "user-rejected" | "reverted" | "pending" | "aborted" | "failed";
|
|
190
|
+
|
|
191
|
+
interface ErrorLike {
|
|
192
|
+
name?: unknown;
|
|
193
|
+
code?: unknown;
|
|
194
|
+
cause?: unknown;
|
|
195
|
+
mayStillLand?: unknown;
|
|
196
|
+
reason?: unknown;
|
|
197
|
+
receipt?: { status?: unknown };
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/** The error and its `cause` chain. Matches by name, so a second copy of viem still classifies. */
|
|
201
|
+
function causes(error: unknown): ErrorLike[] {
|
|
202
|
+
const chain: ErrorLike[] = [];
|
|
203
|
+
for (let e = error; e && typeof e === "object" && chain.length < 16; e = (e as ErrorLike).cause) {
|
|
204
|
+
if (chain.includes(e as ErrorLike)) break;
|
|
205
|
+
chain.push(e as ErrorLike);
|
|
206
|
+
}
|
|
207
|
+
return chain;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
/** Sorts any error from sending or confirming an EVM transaction into a TxErrorKind. */
|
|
211
|
+
export function classifyTxError(error: unknown): TxErrorKind {
|
|
212
|
+
const chain = causes(error);
|
|
213
|
+
const pendingAt = chain.findIndex(
|
|
214
|
+
(e) =>
|
|
215
|
+
e.mayStillLand === true ||
|
|
216
|
+
e.name === "WaitForTransactionReceiptTimeoutError" ||
|
|
217
|
+
(e.name === "TransactionReplacedError" && e.reason === "unmatched"),
|
|
218
|
+
);
|
|
219
|
+
// Only this module's aborts, which carry mayStillLand, count. A wallet
|
|
220
|
+
// SDK's own AbortError is a failed send, and one under a pending error,
|
|
221
|
+
// such as a fetch timeout in a ReceiptPendingError's cause, is pending.
|
|
222
|
+
const abortedAt = chain.findIndex(
|
|
223
|
+
(e) => e.name === "AbortError" && typeof e.mayStillLand === "boolean",
|
|
224
|
+
);
|
|
225
|
+
if (abortedAt >= 0 && (pendingAt < 0 || abortedAt <= pendingAt)) return "aborted";
|
|
226
|
+
if (pendingAt >= 0) return "pending";
|
|
227
|
+
if (
|
|
228
|
+
chain.some(
|
|
229
|
+
(e) =>
|
|
230
|
+
e.name === "UserRejectedRequestError" ||
|
|
231
|
+
e.code === 4001 ||
|
|
232
|
+
(e.name === "TransactionReplacedError" && e.reason === "cancelled"),
|
|
233
|
+
)
|
|
234
|
+
) {
|
|
235
|
+
return "user-rejected";
|
|
236
|
+
}
|
|
237
|
+
if (
|
|
238
|
+
chain.some(
|
|
239
|
+
(e) =>
|
|
240
|
+
e.name === "ContractFunctionRevertedError" ||
|
|
241
|
+
e.name === "ExecutionRevertedError" ||
|
|
242
|
+
e.receipt?.status === "reverted",
|
|
243
|
+
)
|
|
244
|
+
) {
|
|
245
|
+
return "reverted";
|
|
246
|
+
}
|
|
247
|
+
return "failed";
|
|
248
|
+
}
|
|
249
|
+
|
|
42
250
|
export interface Erc20Actions {
|
|
43
251
|
balanceOf(token: Address, owner?: Address): Promise<bigint>;
|
|
44
252
|
allowance(token: Address, spender: Address, owner?: Address): Promise<bigint>;
|
|
@@ -52,9 +260,20 @@ export interface Erc20Actions {
|
|
|
52
260
|
* approval to be mined so a purchase call right after it sees the allowance.
|
|
53
261
|
* A non-zero allowance is reset to 0 first, since USDT refuses to move one
|
|
54
262
|
* non-zero allowance to another. Returns the final approval hash, or null
|
|
55
|
-
* when the allowance already covered it.
|
|
263
|
+
* when the allowance already covered it. Each approval is confirmed like
|
|
264
|
+
* confirmTransaction: no timeout unless `timeout` is set, stopped by
|
|
265
|
+
* `signal`, and a TransactionRevertedError, ReceiptPendingError,
|
|
266
|
+
* TransactionReplacedError or ReceiptWaitAbortedError when it does not
|
|
267
|
+
* succeed. A signal aborted before an approval is sent rejects with an
|
|
268
|
+
* AbortError carrying `mayStillLand: false`, and nothing is sent.
|
|
56
269
|
*/
|
|
57
|
-
ensureAllowance(args: {
|
|
270
|
+
ensureAllowance(args: {
|
|
271
|
+
token: Address;
|
|
272
|
+
spender: Address;
|
|
273
|
+
amount: bigint;
|
|
274
|
+
timeout?: number;
|
|
275
|
+
signal?: AbortSignal;
|
|
276
|
+
}): Promise<Hash | null>;
|
|
58
277
|
}
|
|
59
278
|
|
|
60
279
|
export interface EvmClient extends ChainClient<"evm"> {
|
|
@@ -75,7 +294,23 @@ export interface EvmClient extends ChainClient<"evm"> {
|
|
|
75
294
|
>(
|
|
76
295
|
parameters: EvmWriteContractParameters<abi, functionName, args>,
|
|
77
296
|
): Promise<Hash>;
|
|
78
|
-
|
|
297
|
+
/**
|
|
298
|
+
* Resolves with the receipt, reverted or not, or a speed-up's receipt.
|
|
299
|
+
* Waits with no timeout unless `timeout` is set, backing off while the RPC
|
|
300
|
+
* fails. Rejects with ReceiptPendingError when the timeout runs out, since
|
|
301
|
+
* the transaction may still land, with TransactionReplacedError when
|
|
302
|
+
* another transaction took its nonce, and with ReceiptWaitAbortedError when
|
|
303
|
+
* `signal` aborts.
|
|
304
|
+
*/
|
|
305
|
+
waitForTransactionReceipt(hash: Hash, options?: EvmWaitOptions): Promise<TransactionReceipt>;
|
|
306
|
+
/**
|
|
307
|
+
* waitForTransactionReceipt that also rejects a reverted receipt with
|
|
308
|
+
* TransactionRevertedError, so one catch and classifyTxError cover every
|
|
309
|
+
* outcome.
|
|
310
|
+
*/
|
|
311
|
+
confirmTransaction(hash: Hash, options?: EvmWaitOptions): Promise<TransactionReceipt>;
|
|
312
|
+
/** The chain explorer's page for `hash`, when the chain names an explorer. */
|
|
313
|
+
explorerTxUrl(hash: Hash): string | undefined;
|
|
79
314
|
readonly erc20: Erc20Actions;
|
|
80
315
|
}
|
|
81
316
|
|
|
@@ -165,10 +400,261 @@ export function evmClient(config: EvmClientConfig): EvmClient {
|
|
|
165
400
|
return walletClient.writeContract({ ...request, account, chain } as EvmWriteContractParameters);
|
|
166
401
|
};
|
|
167
402
|
|
|
168
|
-
const
|
|
403
|
+
const explorer = chain.blockExplorers?.default.url.replace(/\/+$/, "");
|
|
404
|
+
const explorerTxUrl = (hash: Hash) => (explorer ? `${explorer}/tx/${hash}` : undefined);
|
|
405
|
+
|
|
406
|
+
const missing = (name: string) => (error: unknown) => {
|
|
407
|
+
if ((error as { name?: string } | undefined)?.name === name) return undefined;
|
|
408
|
+
throw error;
|
|
409
|
+
};
|
|
410
|
+
const getReceipt = (hash: Hash) =>
|
|
411
|
+
publicClient.getTransactionReceipt({ hash }).catch(missing("TransactionReceiptNotFoundError"));
|
|
412
|
+
const getTransaction = (hash: Hash) =>
|
|
413
|
+
publicClient.getTransaction({ hash }).catch(missing("TransactionNotFoundError"));
|
|
414
|
+
const sameAddress = (a?: string | null, b?: string | null) =>
|
|
415
|
+
!!a && !!b && a.toLowerCase() === b.toLowerCase();
|
|
416
|
+
|
|
417
|
+
/**
|
|
418
|
+
* The block that mined a nonce: the first whose `count` of sent
|
|
419
|
+
* transactions is past it. `taken` is a block where the nonce is gone,
|
|
420
|
+
* `free` one where it was not (none after a reload, so it gallops back from
|
|
421
|
+
* `taken` to find one). A binary search between them costs a few dozen
|
|
422
|
+
* calls however far back the nonce went, and needs the RPC to serve state
|
|
423
|
+
* that old.
|
|
424
|
+
*/
|
|
425
|
+
const nonceBlock = async (
|
|
426
|
+
count: (blockNumber: bigint) => Promise<number>,
|
|
427
|
+
nonce: number,
|
|
428
|
+
taken: bigint,
|
|
429
|
+
free?: bigint,
|
|
430
|
+
) => {
|
|
431
|
+
let hi = taken;
|
|
432
|
+
let lo = -1n;
|
|
433
|
+
if (free !== undefined && free < hi) lo = free;
|
|
434
|
+
else {
|
|
435
|
+
for (let step = 1n; hi - step >= 0n; step *= 2n) {
|
|
436
|
+
const probe = hi - step;
|
|
437
|
+
if ((await count(probe)) <= nonce) {
|
|
438
|
+
lo = probe;
|
|
439
|
+
break;
|
|
440
|
+
}
|
|
441
|
+
hi = probe;
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
while (hi - lo > 1n) {
|
|
445
|
+
const mid = (lo + hi) / 2n;
|
|
446
|
+
if ((await count(mid)) > nonce) hi = mid;
|
|
447
|
+
else lo = mid;
|
|
448
|
+
}
|
|
449
|
+
return { block: hi, free: lo >= 0n ? lo : undefined };
|
|
450
|
+
};
|
|
451
|
+
|
|
452
|
+
const replacementReason = (taker: Transaction, original?: Transaction) => {
|
|
453
|
+
if (
|
|
454
|
+
original &&
|
|
455
|
+
sameAddress(taker.to, original.to) &&
|
|
456
|
+
taker.value === original.value &&
|
|
457
|
+
taker.input === original.input
|
|
458
|
+
) {
|
|
459
|
+
return "repriced" as const;
|
|
460
|
+
}
|
|
461
|
+
if (sameAddress(taker.to, taker.from) && taker.value === 0n) return "cancelled" as const;
|
|
462
|
+
return original ? ("replaced" as const) : ("unmatched" as const);
|
|
463
|
+
};
|
|
464
|
+
|
|
465
|
+
/**
|
|
466
|
+
* setTimeout for any delay, returning its cancel. Browsers and Node fire a
|
|
467
|
+
* delay past 2^31 - 1 ms at once, so a long one is re-armed in steps.
|
|
468
|
+
*/
|
|
469
|
+
const after = (ms: number, fire: () => void) => {
|
|
470
|
+
const step = 2 ** 31 - 1;
|
|
471
|
+
let cancel = () => {};
|
|
472
|
+
const arm = (left: number) => {
|
|
473
|
+
const id = setTimeout(() => (left > step ? arm(left - step) : fire()), Math.min(left, step));
|
|
474
|
+
cancel = () => clearTimeout(id);
|
|
475
|
+
};
|
|
476
|
+
arm(Math.max(0, ms));
|
|
477
|
+
return () => cancel();
|
|
478
|
+
};
|
|
479
|
+
|
|
480
|
+
/** Up to 30 s from the polling interval, doubling per failure, jittered down to half. */
|
|
481
|
+
const backoff = (failures: number) => {
|
|
482
|
+
const ceiling = Math.min(
|
|
483
|
+
30_000,
|
|
484
|
+
Math.max(1, publicClient.pollingInterval) * 2 ** Math.min(failures - 1, 16),
|
|
485
|
+
);
|
|
486
|
+
return ceiling / 2 + (Math.random() * ceiling) / 2;
|
|
487
|
+
};
|
|
488
|
+
|
|
489
|
+
// A poll loop of our own rather than viem's waitForTransactionReceipt: viem
|
|
490
|
+
// shares one poller per client and hash, and a waiter with no timeout can be
|
|
491
|
+
// left listening to a poller another waiter stopped. It also only notices a
|
|
492
|
+
// replacement it saw happen, so a wait resumed after a reload never ends.
|
|
493
|
+
const waitForReceipt = async (hash: Hash, options: EvmWaitOptions = {}, label?: string) => {
|
|
494
|
+
const { signal } = options;
|
|
495
|
+
const confirmations = BigInt(Math.max(1, options.confirmations ?? 1));
|
|
496
|
+
const { timeout } = options;
|
|
497
|
+
const deadline =
|
|
498
|
+
timeout !== undefined && Number.isFinite(timeout) && timeout > 0
|
|
499
|
+
? Date.now() + timeout
|
|
500
|
+
: undefined;
|
|
501
|
+
let target = hash;
|
|
502
|
+
let original: Transaction | undefined;
|
|
503
|
+
let nonce = options.nonce;
|
|
504
|
+
let freeBlock: bigint | undefined;
|
|
505
|
+
let failures = 0;
|
|
506
|
+
let lastError: unknown;
|
|
507
|
+
|
|
508
|
+
const aborted = () => new ReceiptWaitAbortedError(hash, chain.id, nonce, signal?.reason);
|
|
509
|
+
const timedOut = () =>
|
|
510
|
+
new ReceiptPendingError(hash, chain.id, {
|
|
511
|
+
detail: `has no receipt after ${timeout} ms`,
|
|
512
|
+
explorerUrl: explorerTxUrl(hash),
|
|
513
|
+
nonce,
|
|
514
|
+
cause: lastError,
|
|
515
|
+
label,
|
|
516
|
+
});
|
|
517
|
+
let ended = false;
|
|
518
|
+
// A poll left running after an abort or the deadline must not hand the
|
|
519
|
+
// app a hash it has since replaced with a new purchase's.
|
|
520
|
+
const track = () => {
|
|
521
|
+
if (ended || signal?.aborted || nonce === undefined) return;
|
|
522
|
+
try {
|
|
523
|
+
options.onTrack?.({ hash: target, nonce });
|
|
524
|
+
} catch {
|
|
525
|
+
// the app's bookkeeping, not the wait's
|
|
526
|
+
}
|
|
527
|
+
};
|
|
528
|
+
if (signal?.aborted) throw aborted();
|
|
529
|
+
/**
|
|
530
|
+
* Settles with `promise`, or rejects at the abort or the deadline without
|
|
531
|
+
* waiting for it, calling `onStop` then. The listener and the timer go
|
|
532
|
+
* whichever way it settles, so a wait that polls for days holds nothing
|
|
533
|
+
* per poll.
|
|
534
|
+
*/
|
|
535
|
+
const guard = <T>(promise: Promise<T>, onStop = () => {}) =>
|
|
536
|
+
new Promise<T>((resolve, reject) => {
|
|
537
|
+
let cancelTimer = () => {};
|
|
538
|
+
const cleanup = () => {
|
|
539
|
+
cancelTimer();
|
|
540
|
+
signal?.removeEventListener("abort", stop);
|
|
541
|
+
};
|
|
542
|
+
const give = (error: Error) => {
|
|
543
|
+
cleanup();
|
|
544
|
+
onStop();
|
|
545
|
+
reject(error);
|
|
546
|
+
};
|
|
547
|
+
const stop = () => give(aborted());
|
|
548
|
+
promise.then(resolve, reject).finally(cleanup);
|
|
549
|
+
if (signal?.aborted) return stop();
|
|
550
|
+
signal?.addEventListener("abort", stop, { once: true });
|
|
551
|
+
if (deadline !== undefined)
|
|
552
|
+
cancelTimer = after(deadline - Date.now(), () => give(timedOut()));
|
|
553
|
+
});
|
|
554
|
+
/** Every RPC call goes through here, so a poll left in flight starts no more. */
|
|
555
|
+
const rpc = <T>(call: () => Promise<T>) => {
|
|
556
|
+
if (ended || signal?.aborted) throw aborted();
|
|
557
|
+
return call();
|
|
558
|
+
};
|
|
559
|
+
const countAt = (address: Address, blockNumber: bigint) =>
|
|
560
|
+
rpc(() => publicClient.getTransactionCount({ address, blockNumber }));
|
|
561
|
+
|
|
562
|
+
/** One look at the chain: the receipt once it has its confirmations, else undefined. */
|
|
563
|
+
const poll = async (): Promise<TransactionReceipt | undefined> => {
|
|
564
|
+
const head = await rpc(() => publicClient.getBlockNumber({ cacheTime: 0 }));
|
|
565
|
+
const receipt = await rpc(() => getReceipt(target));
|
|
566
|
+
if (receipt) return head - receipt.blockNumber + 1n >= confirmations ? receipt : undefined;
|
|
567
|
+
if (!original) {
|
|
568
|
+
original = await rpc(() => getTransaction(target));
|
|
569
|
+
if (original && original.nonce !== nonce) {
|
|
570
|
+
nonce = original.nonce;
|
|
571
|
+
track();
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
if (nonce === undefined) return undefined;
|
|
575
|
+
const from = original?.from ?? account.address;
|
|
576
|
+
if ((await countAt(from, head)) <= nonce) {
|
|
577
|
+
freeBlock = head;
|
|
578
|
+
return undefined;
|
|
579
|
+
}
|
|
580
|
+
const found = await nonceBlock((n) => countAt(from, n), nonce, head, freeBlock);
|
|
581
|
+
freeBlock = found.free;
|
|
582
|
+
const block = await rpc(() =>
|
|
583
|
+
publicClient.getBlock({ blockNumber: found.block, includeTransactions: true }),
|
|
584
|
+
);
|
|
585
|
+
const taker = block.transactions.find(
|
|
586
|
+
(tx) => sameAddress(tx.from, from) && tx.nonce === nonce,
|
|
587
|
+
);
|
|
588
|
+
// Not there after a reorg, or it is this transaction, mined since the
|
|
589
|
+
// receipt lookup: either way the next poll sees the truth.
|
|
590
|
+
if (!taker || taker.hash === target) {
|
|
591
|
+
if (!taker) freeBlock = undefined;
|
|
592
|
+
return undefined;
|
|
593
|
+
}
|
|
594
|
+
const reason = replacementReason(taker, original);
|
|
595
|
+
if (reason === "repriced") {
|
|
596
|
+
target = taker.hash;
|
|
597
|
+
original = taker;
|
|
598
|
+
track();
|
|
599
|
+
return undefined;
|
|
600
|
+
}
|
|
601
|
+
if (head - found.block + 1n < confirmations) return undefined;
|
|
602
|
+
const replacement = await rpc(() => getReceipt(taker.hash));
|
|
603
|
+
throw new TransactionReplacedError(hash, chain.id, reason, replacement);
|
|
604
|
+
};
|
|
605
|
+
|
|
606
|
+
try {
|
|
607
|
+
for (;;) {
|
|
608
|
+
try {
|
|
609
|
+
const receipt = await guard(poll());
|
|
610
|
+
if (receipt) return receipt;
|
|
611
|
+
failures = 0;
|
|
612
|
+
} catch (error) {
|
|
613
|
+
if (
|
|
614
|
+
error instanceof TransactionReplacedError ||
|
|
615
|
+
error instanceof ReceiptWaitAbortedError ||
|
|
616
|
+
error instanceof ReceiptPendingError
|
|
617
|
+
) {
|
|
618
|
+
throw error;
|
|
619
|
+
}
|
|
620
|
+
lastError = error;
|
|
621
|
+
failures++;
|
|
622
|
+
}
|
|
623
|
+
if (deadline !== undefined && Date.now() >= deadline) throw timedOut();
|
|
624
|
+
const pause = failures ? backoff(failures) : publicClient.pollingInterval;
|
|
625
|
+
let wake = () => {};
|
|
626
|
+
await guard(
|
|
627
|
+
new Promise((resolve) => {
|
|
628
|
+
wake = after(pause, () => resolve(undefined));
|
|
629
|
+
}),
|
|
630
|
+
() => wake(),
|
|
631
|
+
);
|
|
632
|
+
}
|
|
633
|
+
} finally {
|
|
634
|
+
ended = true;
|
|
635
|
+
}
|
|
636
|
+
};
|
|
637
|
+
|
|
638
|
+
const confirmTransaction = async (hash: Hash, options?: EvmWaitOptions, label?: string) => {
|
|
639
|
+
const receipt = await waitForReceipt(hash, options, label);
|
|
640
|
+
if (receipt.status !== "success") throw new TransactionRevertedError(receipt, chain.id, label);
|
|
641
|
+
return receipt;
|
|
642
|
+
};
|
|
643
|
+
|
|
644
|
+
const approveAndWait = async (
|
|
645
|
+
token: Address,
|
|
646
|
+
spender: Address,
|
|
647
|
+
amount: bigint,
|
|
648
|
+
options: Pick<EvmWaitOptions, "timeout" | "signal">,
|
|
649
|
+
) => {
|
|
650
|
+
if (options.signal?.aborted) {
|
|
651
|
+
throw Object.assign(
|
|
652
|
+
new Error("stopped before sending the approval", { cause: options.signal.reason }),
|
|
653
|
+
{ name: "AbortError", mayStillLand: false },
|
|
654
|
+
);
|
|
655
|
+
}
|
|
169
656
|
const hash = await erc20.approve({ token, spender, amount });
|
|
170
|
-
|
|
171
|
-
if (receipt.status !== "success") throw new Error(`approve ${hash} reverted`);
|
|
657
|
+
await confirmTransaction(hash, options, "approve");
|
|
172
658
|
return hash;
|
|
173
659
|
};
|
|
174
660
|
|
|
@@ -193,11 +679,11 @@ export function evmClient(config: EvmClientConfig): EvmClient {
|
|
|
193
679
|
simulateAndWrite({ address: token, functionName: "transfer", args: [to, amount] }),
|
|
194
680
|
approve: ({ token, spender, amount }) =>
|
|
195
681
|
simulateAndWrite({ address: token, functionName: "approve", args: [spender, amount] }),
|
|
196
|
-
async ensureAllowance({ token, spender, amount }) {
|
|
682
|
+
async ensureAllowance({ token, spender, amount, timeout, signal }) {
|
|
197
683
|
const current = await erc20.allowance(token, spender);
|
|
198
684
|
if (current >= amount) return null;
|
|
199
|
-
if (current > 0n) await approveAndWait(token, spender, 0n);
|
|
200
|
-
return approveAndWait(token, spender, amount);
|
|
685
|
+
if (current > 0n) await approveAndWait(token, spender, 0n, { timeout, signal });
|
|
686
|
+
return approveAndWait(token, spender, amount, { timeout, signal });
|
|
201
687
|
},
|
|
202
688
|
};
|
|
203
689
|
|
|
@@ -217,7 +703,9 @@ export function evmClient(config: EvmClientConfig): EvmClient {
|
|
|
217
703
|
...parameters,
|
|
218
704
|
} as EvmSendTransactionParameters),
|
|
219
705
|
writeContract: writeContract as EvmClient["writeContract"],
|
|
220
|
-
waitForTransactionReceipt: (hash) =>
|
|
706
|
+
waitForTransactionReceipt: (hash, options) => waitForReceipt(hash, options),
|
|
707
|
+
confirmTransaction: (hash, options) => confirmTransaction(hash, options),
|
|
708
|
+
explorerTxUrl,
|
|
221
709
|
erc20,
|
|
222
710
|
};
|
|
223
711
|
}
|
package/src/clients/index.ts
CHANGED
|
@@ -11,13 +11,21 @@ export {
|
|
|
11
11
|
type ClientFamily,
|
|
12
12
|
} from "./types";
|
|
13
13
|
export {
|
|
14
|
+
classifyTxError,
|
|
14
15
|
evmClient,
|
|
16
|
+
ReceiptPendingError,
|
|
17
|
+
ReceiptWaitAbortedError,
|
|
18
|
+
TransactionReplacedError,
|
|
19
|
+
TransactionRevertedError,
|
|
15
20
|
type Erc20Actions,
|
|
16
21
|
type EvmClient,
|
|
17
22
|
type EvmClientConfig,
|
|
23
|
+
type EvmReplacementReason,
|
|
18
24
|
type EvmSendTransactionParameters,
|
|
25
|
+
type EvmWaitOptions,
|
|
19
26
|
type EvmWalletClient,
|
|
20
27
|
type EvmWriteContractParameters,
|
|
28
|
+
type TxErrorKind,
|
|
21
29
|
} from "./evm";
|
|
22
30
|
export { suiClient, type SuiClient } from "./sui";
|
|
23
31
|
export { bitcoinClient, type BitcoinClient } from "./bitcoin";
|