@multiplatform.one/web3 7.17.0 → 7.19.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 +60 -0
- package/dist/cjs/clients/adapter.cjs +33 -0
- package/dist/cjs/clients/adapter.native.js +36 -0
- package/dist/cjs/clients/adapter.native.js.map +1 -0
- package/dist/cjs/clients/bitcoin.cjs +46 -0
- package/dist/cjs/clients/bitcoin.native.js +51 -0
- package/dist/cjs/clients/bitcoin.native.js.map +1 -0
- package/dist/cjs/clients/connector.cjs +45 -0
- package/dist/cjs/clients/connector.native.js +49 -0
- package/dist/cjs/clients/connector.native.js.map +1 -0
- package/dist/cjs/clients/evm.cjs +171 -0
- package/dist/cjs/clients/evm.native.js +198 -0
- package/dist/cjs/clients/evm.native.js.map +1 -0
- package/dist/cjs/clients/gpg.cjs +31 -0
- package/dist/cjs/clients/gpg.native.js +34 -0
- package/dist/cjs/clients/gpg.native.js.map +1 -0
- package/dist/cjs/clients/hooks.cjs +78 -0
- package/dist/cjs/clients/hooks.native.js +85 -0
- package/dist/cjs/clients/hooks.native.js.map +1 -0
- package/dist/cjs/clients/index.cjs +49 -0
- package/dist/cjs/clients/index.native.js +52 -0
- package/dist/cjs/clients/index.native.js.map +1 -0
- package/dist/cjs/clients/solana.cjs +322 -0
- package/dist/cjs/clients/solana.native.js +511 -0
- package/dist/cjs/clients/solana.native.js.map +1 -0
- package/dist/cjs/clients/solanaMessage.cjs +38 -0
- package/dist/cjs/clients/solanaMessage.native.js +44 -0
- package/dist/cjs/clients/solanaMessage.native.js.map +1 -0
- package/dist/cjs/clients/sui.cjs +46 -0
- package/dist/cjs/clients/sui.native.js +51 -0
- package/dist/cjs/clients/sui.native.js.map +1 -0
- package/dist/cjs/clients/types.cjs +37 -0
- package/dist/cjs/clients/types.native.js +160 -0
- package/dist/cjs/clients/types.native.js.map +1 -0
- package/dist/cjs/clients/useSolanaClient.cjs +50 -0
- package/dist/cjs/clients/useSolanaClient.native.js +57 -0
- package/dist/cjs/clients/useSolanaClient.native.js.map +1 -0
- package/dist/cjs/clients/walletStandard.cjs +63 -0
- package/dist/cjs/clients/walletStandard.native.js +71 -0
- package/dist/cjs/clients/walletStandard.native.js.map +1 -0
- package/dist/cjs/connectkit/components/Common/ConnectorList/index.cjs +33 -5
- package/dist/cjs/connectkit/components/Common/ConnectorList/index.native.js +38 -5
- package/dist/cjs/connectkit/components/Common/ConnectorList/index.native.js.map +1 -1
- package/dist/cjs/connectkit/components/ConnectButton/index.cjs +5 -0
- package/dist/cjs/connectkit/components/ConnectButton/index.native.js +5 -0
- package/dist/cjs/connectkit/components/ConnectButton/index.native.js.map +1 -1
- package/dist/cjs/connectkit/components/ConnectModal/ConnectWithInjector/index.cjs +9 -4
- package/dist/cjs/connectkit/components/ConnectModal/ConnectWithInjector/index.native.js +12 -7
- package/dist/cjs/connectkit/components/ConnectModal/ConnectWithInjector/index.native.js.map +1 -1
- package/dist/cjs/connectkit/connectors/walletAdapterConnector.cjs +2 -0
- package/dist/cjs/connectkit/connectors/walletAdapterConnector.native.js +2 -0
- package/dist/cjs/connectkit/connectors/walletAdapterConnector.native.js.map +1 -1
- package/dist/cjs/connectkit/index.cjs +5 -0
- package/dist/cjs/connectkit/index.native.js +5 -0
- package/dist/cjs/connectkit/index.native.js.map +1 -1
- package/dist/cjs/connectkit/openConnector/context.cjs +146 -0
- package/dist/cjs/connectkit/openConnector/context.native.js +188 -0
- package/dist/cjs/connectkit/openConnector/context.native.js.map +1 -0
- package/dist/cjs/connectkit/openConnector/device.cjs +42 -0
- package/dist/cjs/connectkit/openConnector/device.native.js +51 -0
- package/dist/cjs/connectkit/openConnector/device.native.js.map +1 -0
- package/dist/cjs/connectkit/openConnector/index.cjs +35 -0
- package/dist/cjs/connectkit/openConnector/index.native.js +38 -0
- package/dist/cjs/connectkit/openConnector/index.native.js.map +1 -0
- package/dist/cjs/connectkit/openConnector/launcher.cjs +133 -0
- package/dist/cjs/connectkit/openConnector/launcher.native.js +158 -0
- package/dist/cjs/connectkit/openConnector/launcher.native.js.map +1 -0
- package/dist/cjs/connectkit/screens.cjs +1 -10
- package/dist/cjs/connectkit/screens.native.js +1 -12
- package/dist/cjs/connectkit/screens.native.js.map +1 -1
- package/dist/cjs/connectkit/siwe/SIWEProvider.cjs +4 -5
- package/dist/cjs/connectkit/siwe/SIWEProvider.native.js +4 -5
- package/dist/cjs/connectkit/siwe/SIWEProvider.native.js.map +1 -1
- package/dist/cjs/connectkit/siwe/connectIntent.cjs +9 -5
- package/dist/cjs/connectkit/siwe/connectIntent.native.js +10 -3
- package/dist/cjs/connectkit/siwe/connectIntent.native.js.map +1 -1
- package/dist/cjs/connectkit/useWeb3Modal.cjs +21 -0
- package/dist/cjs/connectkit/useWeb3Modal.native.js +22 -0
- package/dist/cjs/connectkit/useWeb3Modal.native.js.map +1 -1
- package/dist/cjs/connectkit/web3Bridge.cjs +4 -1
- package/dist/cjs/connectkit/web3Bridge.native.js +4 -1
- package/dist/cjs/connectkit/web3Bridge.native.js.map +1 -1
- package/dist/cjs/connectkit/web3Provider.native.js.map +1 -1
- package/dist/cjs/index.cjs +2 -1
- package/dist/cjs/index.native.js +1 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/solana.cjs +41 -0
- package/dist/cjs/solana.native.js +44 -0
- package/dist/cjs/solana.native.js.map +1 -0
- package/dist/esm/clients/adapter.mjs +8 -0
- package/dist/esm/clients/adapter.mjs.map +1 -0
- package/dist/esm/clients/adapter.native.js +8 -0
- package/dist/esm/clients/adapter.native.js.map +1 -0
- package/dist/esm/clients/bitcoin.mjs +21 -0
- package/dist/esm/clients/bitcoin.mjs.map +1 -0
- package/dist/esm/clients/bitcoin.native.js +23 -0
- package/dist/esm/clients/bitcoin.native.js.map +1 -0
- package/dist/esm/clients/connector.mjs +20 -0
- package/dist/esm/clients/connector.mjs.map +1 -0
- package/dist/esm/clients/connector.native.js +21 -0
- package/dist/esm/clients/connector.native.js.map +1 -0
- package/dist/esm/clients/evm.mjs +146 -0
- package/dist/esm/clients/evm.mjs.map +1 -0
- package/dist/esm/clients/evm.native.js +170 -0
- package/dist/esm/clients/evm.native.js.map +1 -0
- package/dist/esm/clients/gpg.mjs +3 -0
- package/dist/esm/clients/gpg.mjs.map +1 -0
- package/dist/esm/clients/gpg.native.js +3 -0
- package/dist/esm/clients/gpg.native.js.map +1 -0
- package/dist/esm/clients/hooks.mjs +51 -0
- package/dist/esm/clients/hooks.mjs.map +1 -0
- package/dist/esm/clients/hooks.native.js +55 -0
- package/dist/esm/clients/hooks.native.js.map +1 -0
- package/dist/esm/clients/index.mjs +11 -0
- package/dist/esm/clients/index.mjs.map +1 -0
- package/dist/esm/clients/index.native.js +11 -0
- package/dist/esm/clients/index.native.js.map +1 -0
- package/dist/esm/clients/solana.mjs +289 -0
- package/dist/esm/clients/solana.mjs.map +1 -0
- package/dist/esm/clients/solana.native.js +475 -0
- package/dist/esm/clients/solana.native.js.map +1 -0
- package/dist/esm/clients/solanaMessage.mjs +13 -0
- package/dist/esm/clients/solanaMessage.mjs.map +1 -0
- package/dist/esm/clients/solanaMessage.native.js +16 -0
- package/dist/esm/clients/solanaMessage.native.js.map +1 -0
- package/dist/esm/clients/sui.mjs +21 -0
- package/dist/esm/clients/sui.mjs.map +1 -0
- package/dist/esm/clients/sui.native.js +23 -0
- package/dist/esm/clients/sui.native.js.map +1 -0
- package/dist/esm/clients/types.mjs +12 -0
- package/dist/esm/clients/types.mjs.map +1 -0
- package/dist/esm/clients/types.native.js +132 -0
- package/dist/esm/clients/types.native.js.map +1 -0
- package/dist/esm/clients/useSolanaClient.mjs +25 -0
- package/dist/esm/clients/useSolanaClient.mjs.map +1 -0
- package/dist/esm/clients/useSolanaClient.native.js +29 -0
- package/dist/esm/clients/useSolanaClient.native.js.map +1 -0
- package/dist/esm/clients/walletStandard.mjs +33 -0
- package/dist/esm/clients/walletStandard.mjs.map +1 -0
- package/dist/esm/clients/walletStandard.native.js +38 -0
- package/dist/esm/clients/walletStandard.native.js.map +1 -0
- package/dist/esm/connectkit/components/Common/ConnectorList/index.mjs +34 -6
- package/dist/esm/connectkit/components/Common/ConnectorList/index.mjs.map +1 -1
- package/dist/esm/connectkit/components/Common/ConnectorList/index.native.js +39 -6
- package/dist/esm/connectkit/components/Common/ConnectorList/index.native.js.map +1 -1
- package/dist/esm/connectkit/components/ConnectButton/index.mjs +5 -0
- package/dist/esm/connectkit/components/ConnectButton/index.mjs.map +1 -1
- package/dist/esm/connectkit/components/ConnectButton/index.native.js +5 -0
- package/dist/esm/connectkit/components/ConnectButton/index.native.js.map +1 -1
- package/dist/esm/connectkit/components/ConnectModal/ConnectWithInjector/index.mjs +9 -4
- package/dist/esm/connectkit/components/ConnectModal/ConnectWithInjector/index.mjs.map +1 -1
- package/dist/esm/connectkit/components/ConnectModal/ConnectWithInjector/index.native.js +12 -7
- package/dist/esm/connectkit/components/ConnectModal/ConnectWithInjector/index.native.js.map +1 -1
- package/dist/esm/connectkit/connectors/walletAdapterConnector.mjs +2 -0
- package/dist/esm/connectkit/connectors/walletAdapterConnector.mjs.map +1 -1
- package/dist/esm/connectkit/connectors/walletAdapterConnector.native.js +2 -0
- package/dist/esm/connectkit/connectors/walletAdapterConnector.native.js.map +1 -1
- package/dist/esm/connectkit/index.mjs +3 -1
- package/dist/esm/connectkit/index.mjs.map +1 -1
- package/dist/esm/connectkit/index.native.js +3 -1
- package/dist/esm/connectkit/index.native.js.map +1 -1
- package/dist/esm/connectkit/openConnector/context.mjs +118 -0
- package/dist/esm/connectkit/openConnector/context.mjs.map +1 -0
- package/dist/esm/connectkit/openConnector/context.native.js +146 -0
- package/dist/esm/connectkit/openConnector/context.native.js.map +1 -0
- package/dist/esm/connectkit/openConnector/device.mjs +16 -0
- package/dist/esm/connectkit/openConnector/device.mjs.map +1 -0
- package/dist/esm/connectkit/openConnector/device.native.js +22 -0
- package/dist/esm/connectkit/openConnector/device.native.js.map +1 -0
- package/dist/esm/connectkit/openConnector/index.mjs +4 -0
- package/dist/esm/connectkit/openConnector/index.mjs.map +1 -0
- package/dist/esm/connectkit/openConnector/index.native.js +4 -0
- package/dist/esm/connectkit/openConnector/index.native.js.map +1 -0
- package/dist/esm/connectkit/openConnector/launcher.mjs +106 -0
- package/dist/esm/connectkit/openConnector/launcher.mjs.map +1 -0
- package/dist/esm/connectkit/openConnector/launcher.native.js +128 -0
- package/dist/esm/connectkit/openConnector/launcher.native.js.map +1 -0
- package/dist/esm/connectkit/screens.mjs +2 -11
- package/dist/esm/connectkit/screens.mjs.map +1 -1
- package/dist/esm/connectkit/screens.native.js +2 -13
- package/dist/esm/connectkit/screens.native.js.map +1 -1
- package/dist/esm/connectkit/siwe/SIWEProvider.mjs +4 -5
- package/dist/esm/connectkit/siwe/SIWEProvider.mjs.map +1 -1
- package/dist/esm/connectkit/siwe/SIWEProvider.native.js +4 -5
- package/dist/esm/connectkit/siwe/SIWEProvider.native.js.map +1 -1
- package/dist/esm/connectkit/siwe/connectIntent.mjs +9 -6
- package/dist/esm/connectkit/siwe/connectIntent.mjs.map +1 -1
- package/dist/esm/connectkit/siwe/connectIntent.native.js +10 -4
- package/dist/esm/connectkit/siwe/connectIntent.native.js.map +1 -1
- package/dist/esm/connectkit/useWeb3Modal.mjs +22 -1
- package/dist/esm/connectkit/useWeb3Modal.mjs.map +1 -1
- package/dist/esm/connectkit/useWeb3Modal.native.js +23 -1
- package/dist/esm/connectkit/useWeb3Modal.native.js.map +1 -1
- package/dist/esm/connectkit/web3Bridge.mjs +4 -1
- package/dist/esm/connectkit/web3Bridge.mjs.map +1 -1
- package/dist/esm/connectkit/web3Bridge.native.js +4 -1
- package/dist/esm/connectkit/web3Bridge.native.js.map +1 -1
- package/dist/esm/connectkit/web3Provider.mjs.map +1 -1
- package/dist/esm/connectkit/web3Provider.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/solana.mjs +5 -0
- package/dist/esm/solana.mjs.map +1 -0
- package/dist/esm/solana.native.js +5 -0
- package/dist/esm/solana.native.js.map +1 -0
- package/dist/jsx/clients/adapter.mjs +8 -0
- package/dist/jsx/clients/adapter.mjs.map +1 -0
- package/dist/jsx/clients/adapter.native.js +36 -0
- package/dist/jsx/clients/adapter.native.js.map +1 -0
- package/dist/jsx/clients/bitcoin.mjs +21 -0
- package/dist/jsx/clients/bitcoin.mjs.map +1 -0
- package/dist/jsx/clients/bitcoin.native.js +51 -0
- package/dist/jsx/clients/bitcoin.native.js.map +1 -0
- package/dist/jsx/clients/connector.mjs +20 -0
- package/dist/jsx/clients/connector.mjs.map +1 -0
- package/dist/jsx/clients/connector.native.js +49 -0
- package/dist/jsx/clients/connector.native.js.map +1 -0
- package/dist/jsx/clients/evm.mjs +146 -0
- package/dist/jsx/clients/evm.mjs.map +1 -0
- package/dist/jsx/clients/evm.native.js +198 -0
- package/dist/jsx/clients/evm.native.js.map +1 -0
- package/dist/jsx/clients/gpg.mjs +3 -0
- package/dist/jsx/clients/gpg.mjs.map +1 -0
- package/dist/jsx/clients/gpg.native.js +34 -0
- package/dist/jsx/clients/gpg.native.js.map +1 -0
- package/dist/jsx/clients/hooks.mjs +51 -0
- package/dist/jsx/clients/hooks.mjs.map +1 -0
- package/dist/jsx/clients/hooks.native.js +85 -0
- package/dist/jsx/clients/hooks.native.js.map +1 -0
- package/dist/jsx/clients/index.mjs +11 -0
- package/dist/jsx/clients/index.mjs.map +1 -0
- package/dist/jsx/clients/index.native.js +52 -0
- package/dist/jsx/clients/index.native.js.map +1 -0
- package/dist/jsx/clients/solana.mjs +289 -0
- package/dist/jsx/clients/solana.mjs.map +1 -0
- package/dist/jsx/clients/solana.native.js +511 -0
- package/dist/jsx/clients/solana.native.js.map +1 -0
- package/dist/jsx/clients/solanaMessage.mjs +13 -0
- package/dist/jsx/clients/solanaMessage.mjs.map +1 -0
- package/dist/jsx/clients/solanaMessage.native.js +44 -0
- package/dist/jsx/clients/solanaMessage.native.js.map +1 -0
- package/dist/jsx/clients/sui.mjs +21 -0
- package/dist/jsx/clients/sui.mjs.map +1 -0
- package/dist/jsx/clients/sui.native.js +51 -0
- package/dist/jsx/clients/sui.native.js.map +1 -0
- package/dist/jsx/clients/types.mjs +12 -0
- package/dist/jsx/clients/types.mjs.map +1 -0
- package/dist/jsx/clients/types.native.js +160 -0
- package/dist/jsx/clients/types.native.js.map +1 -0
- package/dist/jsx/clients/useSolanaClient.mjs +25 -0
- package/dist/jsx/clients/useSolanaClient.mjs.map +1 -0
- package/dist/jsx/clients/useSolanaClient.native.js +57 -0
- package/dist/jsx/clients/useSolanaClient.native.js.map +1 -0
- package/dist/jsx/clients/walletStandard.mjs +33 -0
- package/dist/jsx/clients/walletStandard.mjs.map +1 -0
- package/dist/jsx/clients/walletStandard.native.js +71 -0
- package/dist/jsx/clients/walletStandard.native.js.map +1 -0
- package/dist/jsx/connectkit/components/Common/ConnectorList/index.mjs +34 -6
- package/dist/jsx/connectkit/components/Common/ConnectorList/index.mjs.map +1 -1
- package/dist/jsx/connectkit/components/Common/ConnectorList/index.native.js +38 -5
- package/dist/jsx/connectkit/components/Common/ConnectorList/index.native.js.map +1 -1
- package/dist/jsx/connectkit/components/ConnectButton/index.mjs +5 -0
- package/dist/jsx/connectkit/components/ConnectButton/index.mjs.map +1 -1
- package/dist/jsx/connectkit/components/ConnectButton/index.native.js +5 -0
- package/dist/jsx/connectkit/components/ConnectButton/index.native.js.map +1 -1
- package/dist/jsx/connectkit/components/ConnectModal/ConnectWithInjector/index.mjs +9 -4
- package/dist/jsx/connectkit/components/ConnectModal/ConnectWithInjector/index.mjs.map +1 -1
- package/dist/jsx/connectkit/components/ConnectModal/ConnectWithInjector/index.native.js +12 -7
- package/dist/jsx/connectkit/components/ConnectModal/ConnectWithInjector/index.native.js.map +1 -1
- package/dist/jsx/connectkit/connectors/walletAdapterConnector.mjs +2 -0
- package/dist/jsx/connectkit/connectors/walletAdapterConnector.mjs.map +1 -1
- package/dist/jsx/connectkit/connectors/walletAdapterConnector.native.js +2 -0
- package/dist/jsx/connectkit/connectors/walletAdapterConnector.native.js.map +1 -1
- package/dist/jsx/connectkit/index.mjs +3 -1
- package/dist/jsx/connectkit/index.mjs.map +1 -1
- package/dist/jsx/connectkit/index.native.js +5 -0
- package/dist/jsx/connectkit/index.native.js.map +1 -1
- package/dist/jsx/connectkit/openConnector/context.mjs +118 -0
- package/dist/jsx/connectkit/openConnector/context.mjs.map +1 -0
- package/dist/jsx/connectkit/openConnector/context.native.js +188 -0
- package/dist/jsx/connectkit/openConnector/context.native.js.map +1 -0
- package/dist/jsx/connectkit/openConnector/device.mjs +16 -0
- package/dist/jsx/connectkit/openConnector/device.mjs.map +1 -0
- package/dist/jsx/connectkit/openConnector/device.native.js +51 -0
- package/dist/jsx/connectkit/openConnector/device.native.js.map +1 -0
- package/dist/jsx/connectkit/openConnector/index.mjs +4 -0
- package/dist/jsx/connectkit/openConnector/index.mjs.map +1 -0
- package/dist/jsx/connectkit/openConnector/index.native.js +38 -0
- package/dist/jsx/connectkit/openConnector/index.native.js.map +1 -0
- package/dist/jsx/connectkit/openConnector/launcher.mjs +106 -0
- package/dist/jsx/connectkit/openConnector/launcher.mjs.map +1 -0
- package/dist/jsx/connectkit/openConnector/launcher.native.js +158 -0
- package/dist/jsx/connectkit/openConnector/launcher.native.js.map +1 -0
- package/dist/jsx/connectkit/screens.mjs +2 -11
- package/dist/jsx/connectkit/screens.mjs.map +1 -1
- package/dist/jsx/connectkit/screens.native.js +1 -12
- package/dist/jsx/connectkit/screens.native.js.map +1 -1
- package/dist/jsx/connectkit/siwe/SIWEProvider.mjs +4 -5
- package/dist/jsx/connectkit/siwe/SIWEProvider.mjs.map +1 -1
- package/dist/jsx/connectkit/siwe/SIWEProvider.native.js +4 -5
- package/dist/jsx/connectkit/siwe/SIWEProvider.native.js.map +1 -1
- package/dist/jsx/connectkit/siwe/connectIntent.mjs +9 -6
- package/dist/jsx/connectkit/siwe/connectIntent.mjs.map +1 -1
- package/dist/jsx/connectkit/siwe/connectIntent.native.js +10 -3
- package/dist/jsx/connectkit/siwe/connectIntent.native.js.map +1 -1
- package/dist/jsx/connectkit/useWeb3Modal.mjs +22 -1
- package/dist/jsx/connectkit/useWeb3Modal.mjs.map +1 -1
- package/dist/jsx/connectkit/useWeb3Modal.native.js +22 -0
- package/dist/jsx/connectkit/useWeb3Modal.native.js.map +1 -1
- package/dist/jsx/connectkit/web3Bridge.mjs +4 -1
- package/dist/jsx/connectkit/web3Bridge.mjs.map +1 -1
- package/dist/jsx/connectkit/web3Bridge.native.js +4 -1
- package/dist/jsx/connectkit/web3Bridge.native.js.map +1 -1
- package/dist/jsx/connectkit/web3Provider.mjs.map +1 -1
- package/dist/jsx/connectkit/web3Provider.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 +1 -0
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/solana.mjs +5 -0
- package/dist/jsx/solana.mjs.map +1 -0
- package/dist/jsx/solana.native.js +44 -0
- package/dist/jsx/solana.native.js.map +1 -0
- package/package.json +14 -6
- package/src/clients/adapter.ts +13 -0
- package/src/clients/bitcoin.ts +42 -0
- package/src/clients/connector.spec.ts +78 -0
- package/src/clients/connector.ts +36 -0
- package/src/clients/evm.spec.ts +265 -0
- package/src/clients/evm.ts +223 -0
- package/src/clients/gpg.spec.ts +169 -0
- package/src/clients/gpg.ts +8 -0
- package/src/clients/hooks.spec.tsx +113 -0
- package/src/clients/hooks.ts +51 -0
- package/src/clients/index.ts +40 -0
- package/src/clients/solana.spec.ts +444 -0
- package/src/clients/solana.ts +465 -0
- package/src/clients/solanaMessage.ts +34 -0
- package/src/clients/sui.ts +42 -0
- package/src/clients/types.ts +40 -0
- package/src/clients/useSolanaClient.ts +31 -0
- package/src/clients/walletStandard.ts +87 -0
- package/src/connectkit/components/Common/ConnectorList/index.tsx +30 -2
- package/src/connectkit/components/ConnectButton/index.tsx +5 -0
- package/src/connectkit/components/ConnectModal/ConnectWithInjector/index.tsx +13 -8
- package/src/connectkit/connectors/walletAdapterConnector.ts +2 -0
- package/src/connectkit/index.ts +8 -0
- package/src/connectkit/openConnector/context.tsx +176 -0
- package/src/connectkit/openConnector/device.spec.ts +86 -0
- package/src/connectkit/openConnector/device.ts +37 -0
- package/src/connectkit/openConnector/index.ts +18 -0
- package/src/connectkit/openConnector/launcher.spec.ts +325 -0
- package/src/connectkit/openConnector/launcher.ts +203 -0
- package/src/connectkit/openConnector/modal.spec.tsx +330 -0
- package/src/connectkit/screens.tsx +2 -11
- package/src/connectkit/siwe/SIWEProvider.spec.tsx +112 -0
- package/src/connectkit/siwe/SIWEProvider.tsx +6 -10
- package/src/connectkit/siwe/connectIntent.spec.ts +90 -0
- package/src/connectkit/siwe/connectIntent.ts +19 -6
- package/src/connectkit/useWeb3Modal.ts +25 -1
- package/src/connectkit/web3Bridge.tsx +4 -1
- package/src/connectkit/web3Provider.tsx +4 -1
- package/src/index.ts +4 -0
- package/src/solana.ts +30 -0
- package/types/clients/adapter.d.ts +5 -0
- package/types/clients/adapter.d.ts.map +1 -0
- package/types/clients/bitcoin.d.ts +21 -0
- package/types/clients/bitcoin.d.ts.map +1 -0
- package/types/clients/connector.d.ts +14 -0
- package/types/clients/connector.d.ts.map +1 -0
- package/types/clients/evm.d.ts +68 -0
- package/types/clients/evm.d.ts.map +1 -0
- package/types/clients/gpg.d.ts +2 -0
- package/types/clients/gpg.d.ts.map +1 -0
- package/types/clients/hooks.d.ts +16 -0
- package/types/clients/hooks.d.ts.map +1 -0
- package/types/clients/index.d.ts +10 -0
- package/types/clients/index.d.ts.map +1 -0
- package/types/clients/solana.d.ts +111 -0
- package/types/clients/solana.d.ts.map +1 -0
- package/types/clients/solanaMessage.d.ts +18 -0
- package/types/clients/solanaMessage.d.ts.map +1 -0
- package/types/clients/sui.d.ts +21 -0
- package/types/clients/sui.d.ts.map +1 -0
- package/types/clients/types.d.ts +27 -0
- package/types/clients/types.d.ts.map +1 -0
- package/types/clients/useSolanaClient.d.ts +11 -0
- package/types/clients/useSolanaClient.d.ts.map +1 -0
- package/types/clients/walletStandard.d.ts +63 -0
- package/types/clients/walletStandard.d.ts.map +1 -0
- package/types/connectkit/components/Common/ConnectorList/index.d.ts.map +1 -1
- package/types/connectkit/components/ConnectButton/index.d.ts.map +1 -1
- package/types/connectkit/components/ConnectModal/ConnectWithInjector/index.d.ts.map +1 -1
- package/types/connectkit/connectors/walletAdapterConnector.d.ts.map +1 -1
- package/types/connectkit/index.d.ts +2 -0
- package/types/connectkit/index.d.ts.map +1 -1
- package/types/connectkit/openConnector/context.d.ts +48 -0
- package/types/connectkit/openConnector/context.d.ts.map +1 -0
- package/types/connectkit/openConnector/device.d.ts +18 -0
- package/types/connectkit/openConnector/device.d.ts.map +1 -0
- package/types/connectkit/openConnector/index.d.ts +3 -0
- package/types/connectkit/openConnector/index.d.ts.map +1 -0
- package/types/connectkit/openConnector/launcher.d.ts +64 -0
- package/types/connectkit/openConnector/launcher.d.ts.map +1 -0
- package/types/connectkit/screens.d.ts.map +1 -1
- package/types/connectkit/siwe/SIWEProvider.d.ts.map +1 -1
- package/types/connectkit/siwe/connectIntent.d.ts +8 -3
- package/types/connectkit/siwe/connectIntent.d.ts.map +1 -1
- package/types/connectkit/useWeb3Modal.d.ts +16 -0
- package/types/connectkit/useWeb3Modal.d.ts.map +1 -1
- package/types/connectkit/web3Bridge.d.ts.map +1 -1
- package/types/connectkit/web3Provider.d.ts +4 -1
- package/types/connectkit/web3Provider.d.ts.map +1 -1
- package/types/index.d.ts +1 -0
- package/types/index.d.ts.map +1 -1
- package/types/solana.d.ts +4 -0
- package/types/solana.d.ts.map +1 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { useMemo } from "react";
|
|
2
|
+
import { useAccount, usePublicClient, useWalletClient } from "wagmi";
|
|
3
|
+
import { isSyntheticChainId } from "../connectkit/connectors/syntheticChains.native.js";
|
|
4
|
+
import { bitcoinClient } from "./bitcoin.native.js";
|
|
5
|
+
import { connectorAdapter } from "./adapter.native.js";
|
|
6
|
+
import { evmClient } from "./evm.native.js";
|
|
7
|
+
import { suiClient } from "./sui.native.js";
|
|
8
|
+
function useEvmClient() {
|
|
9
|
+
var parameters = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
10
|
+
var _ref;
|
|
11
|
+
var {
|
|
12
|
+
connector,
|
|
13
|
+
chainId: connectedChainId
|
|
14
|
+
} = useAccount();
|
|
15
|
+
var evm = !!connector && !connectorAdapter(connector) && !isSyntheticChainId(connectedChainId);
|
|
16
|
+
var {
|
|
17
|
+
data: walletClient
|
|
18
|
+
} = useWalletClient({
|
|
19
|
+
chainId: parameters.chainId,
|
|
20
|
+
query: {
|
|
21
|
+
enabled: evm
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
var publicClient = usePublicClient({
|
|
25
|
+
chainId: (_ref = walletClient === null || walletClient === void 0 ? void 0 : walletClient.chain.id) !== null && _ref !== void 0 ? _ref : parameters.chainId
|
|
26
|
+
});
|
|
27
|
+
return useMemo(function () {
|
|
28
|
+
return evm && walletClient && publicClient ? evmClient({
|
|
29
|
+
walletClient,
|
|
30
|
+
publicClient
|
|
31
|
+
}) : void 0;
|
|
32
|
+
}, [evm, walletClient, publicClient]);
|
|
33
|
+
}
|
|
34
|
+
function useSuiClient() {
|
|
35
|
+
var {
|
|
36
|
+
connector,
|
|
37
|
+
address
|
|
38
|
+
} = useAccount();
|
|
39
|
+
return useMemo(function () {
|
|
40
|
+
var adapter = connectorAdapter(connector, "sui");
|
|
41
|
+
return (adapter === null || adapter === void 0 ? void 0 : adapter.address) ? suiClient(adapter) : void 0;
|
|
42
|
+
}, [connector, address]);
|
|
43
|
+
}
|
|
44
|
+
function useBitcoinClient() {
|
|
45
|
+
var {
|
|
46
|
+
connector,
|
|
47
|
+
address
|
|
48
|
+
} = useAccount();
|
|
49
|
+
return useMemo(function () {
|
|
50
|
+
var adapter = connectorAdapter(connector, "bitcoin");
|
|
51
|
+
return (adapter === null || adapter === void 0 ? void 0 : adapter.address) ? bitcoinClient(adapter) : void 0;
|
|
52
|
+
}, [connector, address]);
|
|
53
|
+
}
|
|
54
|
+
export { useBitcoinClient, useEvmClient, useSuiClient };
|
|
55
|
+
//# sourceMappingURL=hooks.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useMemo","useAccount","usePublicClient","useWalletClient","isSyntheticChainId","bitcoinClient","connectorAdapter","evmClient","suiClient","useEvmClient","parameters","arguments","length","_ref","connector","chainId","connectedChainId","evm","data","walletClient","query","enabled","publicClient","chain","id","useSuiClient","address","adapter"],"sources":["../../../src/clients/hooks.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAA,QAAe;AACxB,SAASC,UAAA,EAAYC,eAAA,EAAiBC,eAAA,QAAuB;AAC7D,SAASC,kBAAA,QAA0B;AACnC,SAASC,aAAA,QAAyC;AAClD,SAASC,gBAAA,QAAwB;AACjC,SAASC,SAAA,QAAuD;AAChE,SAASC,SAAA,QAAiC;AAQnC,SAASC,aAAA,EAAa;EAC3B,IAAAC,UAAQ,GAAAC,SAAW,CAAAC,MAAS,QAAAD,SAAqB,aAAW,IAAAA,SAAA;EAC5D,IAAAE,IAAM;EACN;IAAMC,SAAQ;IAAAC,OAAA,EAAAC;EAAiB,IAAgBf,UAAA;EAAA,IAC7CgB,GAAA,IAAS,CAAAH,SAAA,IAAW,CAAAR,gBAAA,CAAAQ,SAAA,MAAAV,kBAAA,CAAAY,gBAAA;EAAA,IACpB;IAAAE,IAAO,EAAEC;EAAa,IAAAhB,eAAA;IACvBY,OAAA,EAAAL,UAAA,CAAAK,OAAA;IACDK,KAAM;MACNC,OAAO,EAAAJ;IACL;EAEgB;EACR,IACAK,YAAA,GAAApB,eAAA;IACFa,OACA,GAAAF,IAAA,GAAAM,YAAA,aAAAA,YAAA,uBAAAA,YAAA,CAAAI,KAAA,CAAAC,EAAA,cAAAX,IAAA,cAAAA,IAAA,GAAAH,UAAA,CAAAK;EAAA,EACN;EACF,OAAAf,OAAA;IACF,OAAAiB,GAAA,IAAAE,YAAA,IAAAG,YAAA,GAAAf,SAAA;MAGOY,YAAS;MACdG;IACA,KAAO;EACL,IACAL,GAAA,EACFE,YAAI,EACNG,YAAA,CAGO;AACL;AACA,SAAOG,YAAQA,CAAA,EAAM;EACnB;IAAAX,SAAM;IAAAY;EAAU,IAAAzB,UAAiB;EACjC,OAAAD,OAAO,aAAS;IAClB,IAAI2B,OAAA,GAAWrB,gBAAQ,CAAAQ,SAAA;IACzB,QAAAa,OAAA,aAAAA,OAAA,uBAAAA,OAAA,CAAAD,OAAA,IAAAlB,SAAA,CAAAmB,OAAA","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { UnsupportedClientMethodError } from "./types.mjs";
|
|
2
|
+
import { evmClient } from "./evm.mjs";
|
|
3
|
+
import { suiClient } from "./sui.mjs";
|
|
4
|
+
import { bitcoinClient } from "./bitcoin.mjs";
|
|
5
|
+
import { assertGpgSignature, createGpgSigner, gpgSignCommand, useGpgSigner } from "./gpg.mjs";
|
|
6
|
+
import { connectorAdapter } from "./adapter.mjs";
|
|
7
|
+
import { clientForConnector } from "./connector.mjs";
|
|
8
|
+
import { solanaMessageClient } from "./solanaMessage.mjs";
|
|
9
|
+
import { useBitcoinClient, useEvmClient, useSuiClient } from "./hooks.mjs";
|
|
10
|
+
export { UnsupportedClientMethodError, assertGpgSignature, bitcoinClient, clientForConnector, connectorAdapter, createGpgSigner, evmClient, gpgSignCommand, solanaMessageClient, suiClient, useBitcoinClient, useEvmClient, useGpgSigner, useSuiClient };
|
|
11
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["UnsupportedClientMethodError","evmClient","suiClient","bitcoinClient","assertGpgSignature","createGpgSigner","gpgSignCommand","useGpgSigner","connectorAdapter","clientForConnector","solanaMessageClient","useBitcoinClient","useEvmClient","useSuiClient"],"sources":["../../../src/clients/index.ts"],"sourcesContent":[null],"mappings":"AAMA,SACEA,4BAAA,QAIK;AACP,SACEC,SAAA,QAOK;AACP,SAASC,SAAA,QAAiC;AAC1C,SAASC,aAAA,QAAyC;AAClD,SACEC,kBAAA,EACAC,eAAA,EACAC,cAAA,EACAC,YAAA,QAGK;AACP,SAASC,gBAAA,QAAwB;AACjC,SAASC,kBAAA,QAA0E;AACnF,SACEC,mBAAA,QAIK;AACP,SAASC,gBAAA,EAAkBC,YAAA,EAAcC,YAAA,QAAoB","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { UnsupportedClientMethodError } from "./types.native.js";
|
|
2
|
+
import { evmClient } from "./evm.native.js";
|
|
3
|
+
import { suiClient } from "./sui.native.js";
|
|
4
|
+
import { bitcoinClient } from "./bitcoin.native.js";
|
|
5
|
+
import { assertGpgSignature, createGpgSigner, gpgSignCommand, useGpgSigner } from "./gpg.native.js";
|
|
6
|
+
import { connectorAdapter } from "./adapter.native.js";
|
|
7
|
+
import { clientForConnector } from "./connector.native.js";
|
|
8
|
+
import { solanaMessageClient } from "./solanaMessage.native.js";
|
|
9
|
+
import { useBitcoinClient, useEvmClient, useSuiClient } from "./hooks.native.js";
|
|
10
|
+
export { UnsupportedClientMethodError, assertGpgSignature, bitcoinClient, clientForConnector, connectorAdapter, createGpgSigner, evmClient, gpgSignCommand, solanaMessageClient, suiClient, useBitcoinClient, useEvmClient, useGpgSigner, useSuiClient };
|
|
11
|
+
//# sourceMappingURL=index.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["UnsupportedClientMethodError","evmClient","suiClient","bitcoinClient","assertGpgSignature","createGpgSigner","gpgSignCommand","useGpgSigner","connectorAdapter","clientForConnector","solanaMessageClient","useBitcoinClient","useEvmClient","useSuiClient"],"sources":["../../../src/clients/index.ts"],"sourcesContent":[null],"mappings":"AAMA,SAAAA,4BAAA;AAAA,SACEC,SAAA;AAAA,SAIKC,SAAA;AACP,SAAAC,aAAA;AAAA,SACEC,kBAAA,EAAAC,eAAA,EAAAC,cAAA,EAAAC,YAAA;AAAA,SAOKC,gBAAA;AACP,SAASC,kBAAiC;AAC1C,SAASC,mBAAA,QAAyC;AAClD,SAAAC,gBAAA,EAAAC,YAAA,EAAAC,YAAA;AAAA,SAEEb,4BAAA,EACAI,kBAAA,EACAD,aAAA,EAAAM,kBAGK,EACPD,gBAAS,EACTH,eAAS,EACTJ,SAAA,EACEK,cAAA,EAAAI,mBAIK,EACPR,SAAS,E","ignoreList":[]}
|
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
import { AccountRole, address, appendTransactionMessageInstruction, compileTransaction, createSolanaRpc, createTransactionMessage, getBase58Decoder, getBase58Encoder, getBase64EncodedWireTransaction, getTransactionDecoder, getTransactionEncoder, pipe, setTransactionMessageFeePayer, setTransactionMessageLifetimeUsingBlockhash } from "@solana/kit";
|
|
2
|
+
import { UnsupportedClientMethodError } from "./types.mjs";
|
|
3
|
+
import { getSolanaWallets, SolanaSignAndSendTransaction, SolanaSignMessage, SolanaSignTransaction, StandardConnect } from "./walletStandard.mjs";
|
|
4
|
+
const solanaRpcUrls = {
|
|
5
|
+
"solana:mainnet": "https://api.mainnet-beta.solana.com",
|
|
6
|
+
"solana:devnet": "https://api.devnet.solana.com",
|
|
7
|
+
"solana:testnet": "https://api.testnet.solana.com",
|
|
8
|
+
"solana:localnet": "http://127.0.0.1:8899"
|
|
9
|
+
};
|
|
10
|
+
function solanaChainFromRpcUrl(rpcUrl) {
|
|
11
|
+
if (!rpcUrl) return "solana:mainnet";
|
|
12
|
+
if (/devnet/i.test(rpcUrl)) return "solana:devnet";
|
|
13
|
+
if (/testnet/i.test(rpcUrl)) return "solana:testnet";
|
|
14
|
+
if (/\/\/(localhost|127\.0\.0\.1|10\.0\.2\.2|\[::1\])[:/]/i.test(rpcUrl)) return "solana:localnet";
|
|
15
|
+
return "solana:mainnet";
|
|
16
|
+
}
|
|
17
|
+
class SolanaConfirmationError extends Error {
|
|
18
|
+
constructor(signature, reason, detail) {
|
|
19
|
+
const mayStillLand = reason === "timeout";
|
|
20
|
+
super(`solana transaction ${signature} ${detail}; ${mayStillLand ? "it may still land, so do not resend it until its blockhash expires" : "it will not land, so it is safe to retry"}`);
|
|
21
|
+
this.signature = signature;
|
|
22
|
+
this.reason = reason;
|
|
23
|
+
this.name = "SolanaConfirmationError";
|
|
24
|
+
this.mayStillLand = mayStillLand;
|
|
25
|
+
}
|
|
26
|
+
signature;
|
|
27
|
+
reason;
|
|
28
|
+
mayStillLand;
|
|
29
|
+
}
|
|
30
|
+
const capabilities = ["signMessage", "signTransaction", "signAndSendTransaction", "sendTransaction"];
|
|
31
|
+
const systemProgram = address("11111111111111111111111111111111");
|
|
32
|
+
const maxU64 = 0xffffffffffffffffn;
|
|
33
|
+
function transferSolInstruction(from, to, lamports) {
|
|
34
|
+
if (lamports < 0n || lamports > maxU64) {
|
|
35
|
+
throw new RangeError(`lamports must fit a u64, got ${lamports}`);
|
|
36
|
+
}
|
|
37
|
+
const data = new Uint8Array(12);
|
|
38
|
+
data[0] = 2;
|
|
39
|
+
let value = lamports;
|
|
40
|
+
for (let i = 4; i < 12; i++) {
|
|
41
|
+
data[i] = Number(value & 0xffn);
|
|
42
|
+
value >>= 8n;
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
programAddress: systemProgram,
|
|
46
|
+
accounts: [{
|
|
47
|
+
address: from,
|
|
48
|
+
role: AccountRole.WRITABLE_SIGNER
|
|
49
|
+
}, {
|
|
50
|
+
address: to,
|
|
51
|
+
role: AccountRole.WRITABLE
|
|
52
|
+
}],
|
|
53
|
+
data
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
const toWire = transaction => transaction instanceof Uint8Array ? transaction : Uint8Array.from(getTransactionEncoder().encode(transaction));
|
|
57
|
+
const fromWire = bytes => getTransactionDecoder().decode(bytes);
|
|
58
|
+
const toSignature = bytes => getBase58Decoder().decode(bytes);
|
|
59
|
+
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
|
|
60
|
+
const lastValidBlockHeightOf = transaction => {
|
|
61
|
+
if (transaction instanceof Uint8Array) return void 0;
|
|
62
|
+
const lifetime = transaction.lifetimeConstraint;
|
|
63
|
+
return lifetime?.lastValidBlockHeight;
|
|
64
|
+
};
|
|
65
|
+
const reached = (status, commitment) => status?.confirmationStatus === "finalized" || commitment === "confirmed" && status?.confirmationStatus === "confirmed";
|
|
66
|
+
function solanaClient(config) {
|
|
67
|
+
const {
|
|
68
|
+
signer
|
|
69
|
+
} = config;
|
|
70
|
+
const chain = config.chain ?? solanaChainFromRpcUrl(config.rpcUrl);
|
|
71
|
+
const rpc = config.rpc ?? createSolanaRpc(config.rpcUrl ?? solanaRpcUrls[chain]);
|
|
72
|
+
const owner = address(signer.address);
|
|
73
|
+
const signTransaction = async transaction => fromWire(await signer.signTransaction(toWire(transaction)));
|
|
74
|
+
const broadcast = transaction => {
|
|
75
|
+
const tx = transaction instanceof Uint8Array ? fromWire(transaction) : transaction;
|
|
76
|
+
return rpc.sendTransaction(getBase64EncodedWireTransaction(tx), {
|
|
77
|
+
encoding: "base64"
|
|
78
|
+
}).send();
|
|
79
|
+
};
|
|
80
|
+
const sendTransaction = async transaction => ({
|
|
81
|
+
signature: await broadcast(transaction),
|
|
82
|
+
lastValidBlockHeight: lastValidBlockHeightOf(transaction)
|
|
83
|
+
});
|
|
84
|
+
const signAndSendTransaction = async transaction => {
|
|
85
|
+
const lastValidBlockHeight = lastValidBlockHeightOf(transaction);
|
|
86
|
+
const wire = toWire(transaction);
|
|
87
|
+
if (signer.signAndSendTransaction) {
|
|
88
|
+
try {
|
|
89
|
+
const signature = toSignature(await signer.signAndSendTransaction(wire));
|
|
90
|
+
return {
|
|
91
|
+
signature,
|
|
92
|
+
lastValidBlockHeight
|
|
93
|
+
};
|
|
94
|
+
} catch (error) {
|
|
95
|
+
if (!(error instanceof UnsupportedClientMethodError)) throw error;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return {
|
|
99
|
+
signature: await broadcast(await signer.signTransaction(wire)),
|
|
100
|
+
lastValidBlockHeight
|
|
101
|
+
};
|
|
102
|
+
};
|
|
103
|
+
const statusOf = async signature => {
|
|
104
|
+
const {
|
|
105
|
+
value
|
|
106
|
+
} = await rpc.getSignatureStatuses([signature], {
|
|
107
|
+
searchTransactionHistory: true
|
|
108
|
+
}).send();
|
|
109
|
+
const status = value[0];
|
|
110
|
+
if (status?.err) {
|
|
111
|
+
throw new SolanaConfirmationError(signature, "failed", `failed on chain: ${JSON.stringify(status.err, (_, v) => typeof v === "bigint" ? `${v}` : v)}`);
|
|
112
|
+
}
|
|
113
|
+
return status;
|
|
114
|
+
};
|
|
115
|
+
return {
|
|
116
|
+
family: "solana",
|
|
117
|
+
address: owner,
|
|
118
|
+
chainId: chain,
|
|
119
|
+
capabilities,
|
|
120
|
+
rpc,
|
|
121
|
+
signer,
|
|
122
|
+
async signMessage(message) {
|
|
123
|
+
const bytes = typeof message === "string" ? new TextEncoder().encode(message) : message;
|
|
124
|
+
return getBase58Decoder().decode(await signer.signMessage(bytes));
|
|
125
|
+
},
|
|
126
|
+
signTransaction,
|
|
127
|
+
signAndSendTransaction,
|
|
128
|
+
sendTransaction,
|
|
129
|
+
async confirmTransaction(submission, options = {}) {
|
|
130
|
+
const {
|
|
131
|
+
signature,
|
|
132
|
+
lastValidBlockHeight: submitted
|
|
133
|
+
} = typeof submission === "string" ? {
|
|
134
|
+
signature: submission
|
|
135
|
+
} : submission;
|
|
136
|
+
const {
|
|
137
|
+
commitment = "confirmed",
|
|
138
|
+
lastValidBlockHeight = submitted,
|
|
139
|
+
timeoutMs = 9e4,
|
|
140
|
+
pollMs = 500
|
|
141
|
+
} = options;
|
|
142
|
+
const deadline = Date.now() + timeoutMs;
|
|
143
|
+
for (;;) {
|
|
144
|
+
if (reached(await statusOf(signature), commitment)) return;
|
|
145
|
+
if (lastValidBlockHeight !== void 0) {
|
|
146
|
+
const height = await rpc.getBlockHeight({
|
|
147
|
+
commitment
|
|
148
|
+
}).send();
|
|
149
|
+
if (height > lastValidBlockHeight) {
|
|
150
|
+
const status = await statusOf(signature);
|
|
151
|
+
if (reached(status, commitment)) return;
|
|
152
|
+
if (!status) {
|
|
153
|
+
throw new SolanaConfirmationError(signature, "expired", `expired: block height ${height} passed ${lastValidBlockHeight}`);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
} else if (Date.now() > deadline) {
|
|
157
|
+
throw new SolanaConfirmationError(signature, "timeout", `not ${commitment} after ${timeoutMs}ms`);
|
|
158
|
+
}
|
|
159
|
+
await sleep(pollMs);
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
async getBalance(target) {
|
|
163
|
+
const {
|
|
164
|
+
value
|
|
165
|
+
} = await rpc.getBalance(target ? address(target) : owner).send();
|
|
166
|
+
return value;
|
|
167
|
+
},
|
|
168
|
+
async transferSol({
|
|
169
|
+
to,
|
|
170
|
+
lamports
|
|
171
|
+
}) {
|
|
172
|
+
const {
|
|
173
|
+
value: latestBlockhash
|
|
174
|
+
} = await rpc.getLatestBlockhash().send();
|
|
175
|
+
const message = pipe(createTransactionMessage({
|
|
176
|
+
version: 0
|
|
177
|
+
}), m => setTransactionMessageFeePayer(owner, m), m => setTransactionMessageLifetimeUsingBlockhash(latestBlockhash, m), m => appendTransactionMessageInstruction(transferSolInstruction(owner, address(to), lamports), m));
|
|
178
|
+
const {
|
|
179
|
+
signature
|
|
180
|
+
} = await signAndSendTransaction(compileTransaction(message));
|
|
181
|
+
return {
|
|
182
|
+
signature,
|
|
183
|
+
lastValidBlockHeight: latestBlockhash.lastValidBlockHeight
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
function walletFeature(wallet, name) {
|
|
189
|
+
const feature = wallet.features[name];
|
|
190
|
+
if (!feature) {
|
|
191
|
+
throw new UnsupportedClientMethodError("solana", name, `${wallet.name} does not implement it`);
|
|
192
|
+
}
|
|
193
|
+
return feature;
|
|
194
|
+
}
|
|
195
|
+
function standardSolanaSigner(wallet, account, chain = "solana:mainnet") {
|
|
196
|
+
const signer = {
|
|
197
|
+
address: account.address,
|
|
198
|
+
async signMessage(message) {
|
|
199
|
+
const feature = walletFeature(wallet, SolanaSignMessage);
|
|
200
|
+
const [output] = await feature.signMessage({
|
|
201
|
+
account,
|
|
202
|
+
message
|
|
203
|
+
});
|
|
204
|
+
return output.signature;
|
|
205
|
+
},
|
|
206
|
+
async signTransaction(transaction) {
|
|
207
|
+
const feature = walletFeature(wallet, SolanaSignTransaction);
|
|
208
|
+
const [output] = await feature.signTransaction({
|
|
209
|
+
account,
|
|
210
|
+
transaction,
|
|
211
|
+
chain
|
|
212
|
+
});
|
|
213
|
+
return output.signedTransaction;
|
|
214
|
+
}
|
|
215
|
+
};
|
|
216
|
+
if (wallet.features[SolanaSignAndSendTransaction]) {
|
|
217
|
+
signer.signAndSendTransaction = async transaction => {
|
|
218
|
+
const feature = walletFeature(wallet, SolanaSignAndSendTransaction);
|
|
219
|
+
const [output] = await feature.signAndSendTransaction({
|
|
220
|
+
account,
|
|
221
|
+
transaction,
|
|
222
|
+
chain
|
|
223
|
+
});
|
|
224
|
+
return output.signature;
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
return signer;
|
|
228
|
+
}
|
|
229
|
+
function findSolanaSigner(owner, chain) {
|
|
230
|
+
for (const wallet of getSolanaWallets()) {
|
|
231
|
+
const account = wallet.accounts.find(a => a.address === owner);
|
|
232
|
+
if (account) return standardSolanaSigner(wallet, account, chain);
|
|
233
|
+
}
|
|
234
|
+
return null;
|
|
235
|
+
}
|
|
236
|
+
async function connectSolanaWallet(options = {}) {
|
|
237
|
+
const wallets = getSolanaWallets();
|
|
238
|
+
const wallet = options.wallet ? wallets.find(w => w.name.toLowerCase() === options.wallet?.toLowerCase()) : wallets[0];
|
|
239
|
+
if (!wallet) {
|
|
240
|
+
throw new Error(options.wallet ? `No Solana wallet named ${options.wallet} is installed` : "No Solana wallet found. Install Phantom, Solflare or Backpack.");
|
|
241
|
+
}
|
|
242
|
+
const {
|
|
243
|
+
accounts
|
|
244
|
+
} = await walletFeature(wallet, StandardConnect).connect({
|
|
245
|
+
silent: options.silent
|
|
246
|
+
});
|
|
247
|
+
const chain = options.chain ?? "solana:mainnet";
|
|
248
|
+
const account = accounts.find(a => a.chains.includes(chain)) ?? accounts[0];
|
|
249
|
+
if (!account) throw new Error(`${wallet.name} returned no Solana account`);
|
|
250
|
+
return standardSolanaSigner(wallet, account, chain);
|
|
251
|
+
}
|
|
252
|
+
const utf8 = bytes => {
|
|
253
|
+
try {
|
|
254
|
+
return new TextDecoder("utf-8", {
|
|
255
|
+
fatal: true
|
|
256
|
+
}).decode(bytes);
|
|
257
|
+
} catch {
|
|
258
|
+
return null;
|
|
259
|
+
}
|
|
260
|
+
};
|
|
261
|
+
function injectedSolanaSigner(adapter, chain) {
|
|
262
|
+
const owner = adapter.address;
|
|
263
|
+
if (!owner) throw new Error("injectedSolanaSigner: connect a Solana wallet first");
|
|
264
|
+
const standard = method => {
|
|
265
|
+
const signer = findSolanaSigner(owner, chain);
|
|
266
|
+
if (!signer) {
|
|
267
|
+
throw new UnsupportedClientMethodError("solana", method, `no Wallet Standard wallet holds ${owner}; connect Phantom, Solflare or Backpack`);
|
|
268
|
+
}
|
|
269
|
+
return signer;
|
|
270
|
+
};
|
|
271
|
+
return {
|
|
272
|
+
address: owner,
|
|
273
|
+
async signMessage(message) {
|
|
274
|
+
const text = utf8(message);
|
|
275
|
+
if (text === null) return standard("signMessage").signMessage(message);
|
|
276
|
+
return Uint8Array.from(getBase58Encoder().encode(await adapter.signMessage(text)));
|
|
277
|
+
},
|
|
278
|
+
signTransaction: async transaction => standard("signTransaction").signTransaction(transaction),
|
|
279
|
+
async signAndSendTransaction(transaction) {
|
|
280
|
+
const signer = standard("signAndSendTransaction");
|
|
281
|
+
if (!signer.signAndSendTransaction) {
|
|
282
|
+
throw new UnsupportedClientMethodError("solana", "signAndSendTransaction");
|
|
283
|
+
}
|
|
284
|
+
return signer.signAndSendTransaction(transaction);
|
|
285
|
+
}
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
export { SolanaConfirmationError, connectSolanaWallet, findSolanaSigner, injectedSolanaSigner, solanaChainFromRpcUrl, solanaClient, solanaRpcUrls, standardSolanaSigner, transferSolInstruction };
|
|
289
|
+
//# sourceMappingURL=solana.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["AccountRole","address","appendTransactionMessageInstruction","compileTransaction","createSolanaRpc","createTransactionMessage","getBase58Decoder","getBase58Encoder","getBase64EncodedWireTransaction","getTransactionDecoder","getTransactionEncoder","pipe","setTransactionMessageFeePayer","setTransactionMessageLifetimeUsingBlockhash","UnsupportedClientMethodError","getSolanaWallets","SolanaSignAndSendTransaction","SolanaSignMessage","SolanaSignTransaction","StandardConnect","solanaRpcUrls","solanaChainFromRpcUrl","rpcUrl","test","SolanaConfirmationError","Error","constructor","signature","reason","detail","mayStillLand","name","capabilities","systemProgram","maxU64","transferSolInstruction","from","to","lamports","RangeError","data","Uint8Array","value","i","Number","programAddress","accounts","role","WRITABLE_SIGNER","WRITABLE","toWire","transaction","encode","fromWire","bytes","decode","toSignature","sleep","ms","Promise","resolve","setTimeout","lastValidBlockHeightOf","lifetime","lifetimeConstraint","lastValidBlockHeight","reached","status","commitment","confirmationStatus","solanaClient","config","signer","chain","rpc","owner","signTransaction","broadcast","tx","sendTransaction","encoding","send","signAndSendTransaction","wire","error","statusOf","getSignatureStatuses","searchTransactionHistory","err","JSON","stringify","_","v","family","chainId","signMessage","message","TextEncoder","confirmTransaction","submission","options","submitted","timeoutMs","pollMs","deadline","Date","now","height","getBlockHeight","getBalance","target","transferSol","latestBlockhash","getLatestBlockhash","version","m","walletFeature","wallet","feature","features","standardSolanaSigner","account","output","signedTransaction","findSolanaSigner","find","a","connectSolanaWallet","wallets","w","toLowerCase","connect","silent","chains","includes","utf8","TextDecoder","fatal","injectedSolanaSigner","adapter","standard","method","text"],"sources":["../../../src/clients/solana.ts"],"sourcesContent":[null],"mappings":"AAAA,SACEA,WAAA,EACAC,OAAA,EACAC,mCAAA,EACAC,kBAAA,EACAC,eAAA,EACAC,wBAAA,EACAC,gBAAA,EACAC,gBAAA,EACAC,+BAAA,EACAC,qBAAA,EACAC,qBAAA,EACAC,IAAA,EACAC,6BAAA,EACAC,2CAAA,QAOK;AAGP,SAASC,4BAAA,QAA6E;AACtF,SACEC,gBAAA,EACAC,4BAAA,EACAC,iBAAA,EACAC,qBAAA,EACAC,eAAA,QAOK;AAIA,MAAMC,aAAA,GAA6C;EACxD,kBAAkB;EAClB,iBAAiB;EACjB,kBAAkB;EAClB,mBAAmB;AACrB;AAGO,SAASC,sBAAsBC,MAAA,EAA8B;EAClE,IAAI,CAACA,MAAA,EAAQ,OAAO;EACpB,IAAI,UAAUC,IAAA,CAAKD,MAAM,GAAG,OAAO;EACnC,IAAI,WAAWC,IAAA,CAAKD,MAAM,GAAG,OAAO;EACpC,IAAI,wDAAwDC,IAAA,CAAKD,MAAM,GACrE,OAAO;EACT,OAAO;AACT;AA2CO,MAAME,uBAAA,SAAgCC,KAAA,CAAM;EAEjDC,YACWC,SAAA,EACAC,MAAA,EACTC,MAAA,EACA;IACA,MAAMC,YAAA,GAAeF,MAAA,KAAW;IAChC,MACE,sBAAsBD,SAAS,IAAIE,MAAM,KACvCC,YAAA,GACI,uEACA,0CACN,EACF;IAXS,KAAAH,SAAA,GAAAA,SAAA;IACA,KAAAC,MAAA,GAAAA,MAAA;IAWT,KAAKG,IAAA,GAAO;IACZ,KAAKD,YAAA,GAAeA,YAAA;EACtB;EAdWH,SAAA;EACAC,MAAA;EAHFE,YAAA;AAiBX;AAuCA,MAAME,YAAA,GAA4C,CAChD,eACA,mBACA,0BACA,kBACF;AAEA,MAAMC,aAAA,GAAgBhC,OAAA,CAAQ,kCAAkC;AAChE,MAAMiC,MAAA,GAAS;AAGR,SAASC,uBAAuBC,IAAA,EAAeC,EAAA,EAAaC,QAAA,EAA+B;EAChG,IAAIA,QAAA,GAAW,MAAMA,QAAA,GAAWJ,MAAA,EAAQ;IACtC,MAAM,IAAIK,UAAA,CAAW,gCAAgCD,QAAQ,EAAE;EACjE;EACA,MAAME,IAAA,GAAO,IAAIC,UAAA,CAAW,EAAE;EAC9BD,IAAA,CAAK,CAAC,IAAI;EACV,IAAIE,KAAA,GAAQJ,QAAA;EACZ,SAASK,CAAA,GAAI,GAAGA,CAAA,GAAI,IAAIA,CAAA,IAAK;IAC3BH,IAAA,CAAKG,CAAC,IAAIC,MAAA,CAAOF,KAAA,GAAQ,KAAK;IAC9BA,KAAA,KAAU;EACZ;EACA,OAAO;IACLG,cAAA,EAAgBZ,aAAA;IAChBa,QAAA,EAAU,CACR;MAAE7C,OAAA,EAASmC,IAAA;MAAMW,IAAA,EAAM/C,WAAA,CAAYgD;IAAgB,GACnD;MAAE/C,OAAA,EAASoC,EAAA;MAAIU,IAAA,EAAM/C,WAAA,CAAYiD;IAAS,EAC5C;IACAT;EACF;AACF;AAEA,MAAMU,MAAA,GAAUC,WAAA,IACdA,WAAA,YAAuBV,UAAA,GACnBU,WAAA,GACAV,UAAA,CAAWL,IAAA,CAAK1B,qBAAA,CAAsB,EAAE0C,MAAA,CAAOD,WAAW,CAAC;AAEjE,MAAME,QAAA,GAAYC,KAAA,IAAmC7C,qBAAA,CAAsB,EAAE8C,MAAA,CAAOD,KAAK;AAEzF,MAAME,WAAA,GAAeF,KAAA,IAAiChD,gBAAA,CAAiB,EAAEiD,MAAA,CAAOD,KAAK;AAErF,MAAMG,KAAA,GAASC,EAAA,IAAe,IAAIC,OAAA,CAASC,OAAA,IAAYC,UAAA,CAAWD,OAAA,EAASF,EAAE,CAAC;AAE9E,MAAMI,sBAAA,GAA0BX,WAAA,IAA8D;EAC5F,IAAIA,WAAA,YAAuBV,UAAA,EAAY,OAAO;EAC9C,MAAMsB,QAAA,GAAYZ,WAAA,CACfa,kBAAA;EACH,OAAOD,QAAA,EAAUE,oBAAA;AACnB;AAOA,MAAMC,OAAA,GAAUA,CAACC,MAAA,EAAyBC,UAAA,KACxCD,MAAA,EAAQE,kBAAA,KAAuB,eAC9BD,UAAA,KAAe,eAAeD,MAAA,EAAQE,kBAAA,KAAuB;AAEzD,SAASC,aAAaC,MAAA,EAA0C;EACrE,MAAM;IAAEC;EAAO,IAAID,MAAA;EACnB,MAAME,KAAA,GAAQF,MAAA,CAAOE,KAAA,IAASpD,qBAAA,CAAsBkD,MAAA,CAAOjD,MAAM;EACjE,MAAMoD,GAAA,GACJH,MAAA,CAAOG,GAAA,IAAQtE,eAAA,CAAgBmE,MAAA,CAAOjD,MAAA,IAAUF,aAAA,CAAcqD,KAAK,CAAC;EACtE,MAAME,KAAA,GAAQ1E,OAAA,CAAQuE,MAAA,CAAOvE,OAAO;EAEpC,MAAM2E,eAAA,GAAkB,MAAOzB,WAAA,IAC7BE,QAAA,CAAS,MAAMmB,MAAA,CAAOI,eAAA,CAAgB1B,MAAA,CAAOC,WAAW,CAAC,CAAC;EAE5D,MAAM0B,SAAA,GAAa1B,WAAA,IAA8D;IAC/E,MAAM2B,EAAA,GAAK3B,WAAA,YAAuBV,UAAA,GAAaY,QAAA,CAASF,WAAW,IAAIA,WAAA;IACvE,OAAOuB,GAAA,CAAIK,eAAA,CAAgBvE,+BAAA,CAAgCsE,EAAE,GAAG;MAAEE,QAAA,EAAU;IAAS,CAAC,EAAEC,IAAA,CAAK;EAC/F;EAEA,MAAMF,eAAA,GAAkB,MACtB5B,WAAA,KAC+B;IAC/BxB,SAAA,EAAW,MAAMkD,SAAA,CAAU1B,WAAW;IACtCc,oBAAA,EAAsBH,sBAAA,CAAuBX,WAAW;EAC1D;EAEA,MAAM+B,sBAAA,GAAyB,MAC7B/B,WAAA,IAC8B;IAC9B,MAAMc,oBAAA,GAAuBH,sBAAA,CAAuBX,WAAW;IAC/D,MAAMgC,IAAA,GAAOjC,MAAA,CAAOC,WAAW;IAC/B,IAAIqB,MAAA,CAAOU,sBAAA,EAAwB;MACjC,IAAI;QACF,MAAMvD,SAAA,GAAY6B,WAAA,CAAY,MAAMgB,MAAA,CAAOU,sBAAA,CAAuBC,IAAI,CAAC;QACvE,OAAO;UAAExD,SAAA;UAAWsC;QAAqB;MAC3C,SAASmB,KAAA,EAAO;QACd,IAAI,EAAEA,KAAA,YAAiBtE,4BAAA,GAA+B,MAAMsE,KAAA;MAC9D;IACF;IACA,OAAO;MAAEzD,SAAA,EAAW,MAAMkD,SAAA,CAAU,MAAML,MAAA,CAAOI,eAAA,CAAgBO,IAAI,CAAC;MAAGlB;IAAqB;EAChG;EAEA,MAAMoB,QAAA,GAAW,MAAO1D,SAAA,IAAmD;IACzE,MAAM;MAAEe;IAAM,IAAI,MAAMgC,GAAA,CACrBY,oBAAA,CAAqB,CAAC3D,SAAS,GAAG;MAAE4D,wBAAA,EAA0B;IAAK,CAAC,EACpEN,IAAA,CAAK;IACR,MAAMd,MAAA,GAASzB,KAAA,CAAM,CAAC;IACtB,IAAIyB,MAAA,EAAQqB,GAAA,EAAK;MACf,MAAM,IAAIhE,uBAAA,CACRG,SAAA,EACA,UACA,oBAAoB8D,IAAA,CAAKC,SAAA,CAAUvB,MAAA,CAAOqB,GAAA,EAAK,CAACG,CAAA,EAAGC,CAAA,KAAO,OAAOA,CAAA,KAAM,WAAW,GAAGA,CAAC,KAAKA,CAAE,CAAC,EAChG;IACF;IACA,OAAOzB,MAAA;EACT;EAEA,OAAO;IACL0B,MAAA,EAAQ;IACR5F,OAAA,EAAS0E,KAAA;IACTmB,OAAA,EAASrB,KAAA;IACTzC,YAAA;IACA0C,GAAA;IACAF,MAAA;IACA,MAAMuB,YAAYC,OAAA,EAAS;MACzB,MAAM1C,KAAA,GAAQ,OAAO0C,OAAA,KAAY,WAAW,IAAIC,WAAA,CAAY,EAAE7C,MAAA,CAAO4C,OAAO,IAAIA,OAAA;MAChF,OAAO1F,gBAAA,CAAiB,EAAEiD,MAAA,CAAO,MAAMiB,MAAA,CAAOuB,WAAA,CAAYzC,KAAK,CAAC;IAClE;IACAsB,eAAA;IACAM,sBAAA;IACAH,eAAA;IACA,MAAMmB,mBAAmBC,UAAA,EAAYC,OAAA,GAAU,CAAC,GAAG;MACjD,MAAM;QAAEzE,SAAA;QAAWsC,oBAAA,EAAsBoC;MAAU,IACjD,OAAOF,UAAA,KAAe,WAAW;QAAExE,SAAA,EAAWwE;MAAW,IAAIA,UAAA;MAC/D,MAAM;QACJ/B,UAAA,GAAa;QACbH,oBAAA,GAAuBoC,SAAA;QACvBC,SAAA,GAAY;QACZC,MAAA,GAAS;MACX,IAAIH,OAAA;MACJ,MAAMI,QAAA,GAAWC,IAAA,CAAKC,GAAA,CAAI,IAAIJ,SAAA;MAC9B,SAAS;QACP,IAAIpC,OAAA,CAAQ,MAAMmB,QAAA,CAAS1D,SAAS,GAAGyC,UAAU,GAAG;QACpD,IAAIH,oBAAA,KAAyB,QAAW;UACtC,MAAM0C,MAAA,GAAS,MAAMjC,GAAA,CAAIkC,cAAA,CAAe;YAAExC;UAAW,CAAC,EAAEa,IAAA,CAAK;UAC7D,IAAI0B,MAAA,GAAS1C,oBAAA,EAAsB;YAEjC,MAAME,MAAA,GAAS,MAAMkB,QAAA,CAAS1D,SAAS;YACvC,IAAIuC,OAAA,CAAQC,MAAA,EAAQC,UAAU,GAAG;YACjC,IAAI,CAACD,MAAA,EAAQ;cACX,MAAM,IAAI3C,uBAAA,CACRG,SAAA,EACA,WACA,yBAAyBgF,MAAM,WAAW1C,oBAAoB,EAChE;YACF;UACF;QACF,WAAWwC,IAAA,CAAKC,GAAA,CAAI,IAAIF,QAAA,EAAU;UAChC,MAAM,IAAIhF,uBAAA,CACRG,SAAA,EACA,WACA,OAAOyC,UAAU,UAAUkC,SAAS,IACtC;QACF;QACA,MAAM7C,KAAA,CAAM8C,MAAM;MACpB;IACF;IACA,MAAMM,WAAWC,MAAA,EAAQ;MACvB,MAAM;QAAEpE;MAAM,IAAI,MAAMgC,GAAA,CAAImC,UAAA,CAAWC,MAAA,GAAS7G,OAAA,CAAQ6G,MAAM,IAAInC,KAAK,EAAEM,IAAA,CAAK;MAC9E,OAAOvC,KAAA;IACT;IACA,MAAMqE,YAAY;MAAE1E,EAAA;MAAIC;IAAS,GAAG;MAClC,MAAM;QAAEI,KAAA,EAAOsE;MAAgB,IAAI,MAAMtC,GAAA,CAAIuC,kBAAA,CAAmB,EAAEhC,IAAA,CAAK;MACvE,MAAMe,OAAA,GAAUrF,IAAA,CACdN,wBAAA,CAAyB;QAAE6G,OAAA,EAAS;MAAE,CAAC,GACtCC,CAAA,IAAMvG,6BAAA,CAA8B+D,KAAA,EAAOwC,CAAC,GAC5CA,CAAA,IAAMtG,2CAAA,CAA4CmG,eAAA,EAAiBG,CAAC,GACpEA,CAAA,IACCjH,mCAAA,CACEiC,sBAAA,CAAuBwC,KAAA,EAAO1E,OAAA,CAAQoC,EAAE,GAAGC,QAAQ,GACnD6E,CACF,CACJ;MACA,MAAM;QAAExF;MAAU,IAAI,MAAMuD,sBAAA,CAAuB/E,kBAAA,CAAmB6F,OAAO,CAAC;MAC9E,OAAO;QAAErE,SAAA;QAAWsC,oBAAA,EAAsB+C,eAAA,CAAgB/C;MAAqB;IACjF;EACF;AACF;AAEA,SAASmD,cAAiBC,MAAA,EAAwBtF,IAAA,EAAiB;EACjE,MAAMuF,OAAA,GAAUD,MAAA,CAAOE,QAAA,CAASxF,IAAI;EACpC,IAAI,CAACuF,OAAA,EAAS;IACZ,MAAM,IAAIxG,4BAAA,CAA6B,UAAUiB,IAAA,EAAM,GAAGsF,MAAA,CAAOtF,IAAI,wBAAwB;EAC/F;EACA,OAAOuF,OAAA;AACT;AAGO,SAASE,qBACdH,MAAA,EACAI,OAAA,EACAhD,KAAA,GAAqB,kBACP;EACd,MAAMD,MAAA,GAAuB;IAC3BvE,OAAA,EAASwH,OAAA,CAAQxH,OAAA;IACjB,MAAM8F,YAAYC,OAAA,EAAS;MACzB,MAAMsB,OAAA,GAAUF,aAAA,CAAwCC,MAAA,EAAQpG,iBAAiB;MACjF,MAAM,CAACyG,MAAM,IAAI,MAAMJ,OAAA,CAAQvB,WAAA,CAAY;QAAE0B,OAAA;QAASzB;MAAQ,CAAC;MAC/D,OAAO0B,MAAA,CAAO/F,SAAA;IAChB;IACA,MAAMiD,gBAAgBzB,WAAA,EAAa;MACjC,MAAMmE,OAAA,GAAUF,aAAA,CAA4CC,MAAA,EAAQnG,qBAAqB;MACzF,MAAM,CAACwG,MAAM,IAAI,MAAMJ,OAAA,CAAQ1C,eAAA,CAAgB;QAAE6C,OAAA;QAAStE,WAAA;QAAasB;MAAM,CAAC;MAC9E,OAAOiD,MAAA,CAAOC,iBAAA;IAChB;EACF;EACA,IAAIN,MAAA,CAAOE,QAAA,CAASvG,4BAA4B,GAAG;IACjDwD,MAAA,CAAOU,sBAAA,GAAyB,MAAO/B,WAAA,IAAgB;MACrD,MAAMmE,OAAA,GAAUF,aAAA,CACdC,MAAA,EACArG,4BACF;MACA,MAAM,CAAC0G,MAAM,IAAI,MAAMJ,OAAA,CAAQpC,sBAAA,CAAuB;QAAEuC,OAAA;QAAStE,WAAA;QAAasB;MAAM,CAAC;MACrF,OAAOiD,MAAA,CAAO/F,SAAA;IAChB;EACF;EACA,OAAO6C,MAAA;AACT;AAGO,SAASoD,iBAAiBjD,KAAA,EAAeF,KAAA,EAA0C;EACxF,WAAW4C,MAAA,IAAUtG,gBAAA,CAAiB,GAAG;IACvC,MAAM0G,OAAA,GAAUJ,MAAA,CAAOvE,QAAA,CAAS+E,IAAA,CAAMC,CAAA,IAAMA,CAAA,CAAE7H,OAAA,KAAY0E,KAAK;IAC/D,IAAI8C,OAAA,EAAS,OAAOD,oBAAA,CAAqBH,MAAA,EAAQI,OAAA,EAAShD,KAAK;EACjE;EACA,OAAO;AACT;AAMA,eAAsBsD,oBACpB3B,OAAA,GAAsE,CAAC,GAChD;EACvB,MAAM4B,OAAA,GAAUjH,gBAAA,CAAiB;EACjC,MAAMsG,MAAA,GAASjB,OAAA,CAAQiB,MAAA,GACnBW,OAAA,CAAQH,IAAA,CAAMI,CAAA,IAAMA,CAAA,CAAElG,IAAA,CAAKmG,WAAA,CAAY,MAAM9B,OAAA,CAAQiB,MAAA,EAAQa,WAAA,CAAY,CAAC,IAC1EF,OAAA,CAAQ,CAAC;EACb,IAAI,CAACX,MAAA,EAAQ;IACX,MAAM,IAAI5F,KAAA,CACR2E,OAAA,CAAQiB,MAAA,GACJ,0BAA0BjB,OAAA,CAAQiB,MAAM,kBACxC,gEACN;EACF;EACA,MAAM;IAAEvE;EAAS,IAAI,MAAMsE,aAAA,CAAsCC,MAAA,EAAQlG,eAAe,EAAEgH,OAAA,CACxF;IAAEC,MAAA,EAAQhC,OAAA,CAAQgC;EAAO,CAC3B;EACA,MAAM3D,KAAA,GAAQ2B,OAAA,CAAQ3B,KAAA,IAAS;EAC/B,MAAMgD,OAAA,GAAU3E,QAAA,CAAS+E,IAAA,CAAMC,CAAA,IAAMA,CAAA,CAAEO,MAAA,CAAOC,QAAA,CAAS7D,KAAK,CAAC,KAAK3B,QAAA,CAAS,CAAC;EAC5E,IAAI,CAAC2E,OAAA,EAAS,MAAM,IAAIhG,KAAA,CAAM,GAAG4F,MAAA,CAAOtF,IAAI,6BAA6B;EACzE,OAAOyF,oBAAA,CAAqBH,MAAA,EAAQI,OAAA,EAAShD,KAAK;AACpD;AAEA,MAAM8D,IAAA,GAAQjF,KAAA,IAAqC;EACjD,IAAI;IACF,OAAO,IAAIkF,WAAA,CAAY,SAAS;MAAEC,KAAA,EAAO;IAAK,CAAC,EAAElF,MAAA,CAAOD,KAAK;EAC/D,QAAQ;IACN,OAAO;EACT;AACF;AAQO,SAASoF,qBACdC,OAAA,EACAlE,KAAA,EACc;EACd,MAAME,KAAA,GAAQgE,OAAA,CAAQ1I,OAAA;EACtB,IAAI,CAAC0E,KAAA,EAAO,MAAM,IAAIlD,KAAA,CAAM,qDAAqD;EACjF,MAAMmH,QAAA,GAAYC,MAAA,IAAiC;IACjD,MAAMrE,MAAA,GAASoD,gBAAA,CAAiBjD,KAAA,EAAOF,KAAK;IAC5C,IAAI,CAACD,MAAA,EAAQ;MACX,MAAM,IAAI1D,4BAAA,CACR,UACA+H,MAAA,EACA,mCAAmClE,KAAK,yCAC1C;IACF;IACA,OAAOH,MAAA;EACT;EACA,OAAO;IACLvE,OAAA,EAAS0E,KAAA;IACT,MAAMoB,YAAYC,OAAA,EAAS;MACzB,MAAM8C,IAAA,GAAOP,IAAA,CAAKvC,OAAO;MACzB,IAAI8C,IAAA,KAAS,MAAM,OAAOF,QAAA,CAAS,aAAa,EAAE7C,WAAA,CAAYC,OAAO;MACrE,OAAOvD,UAAA,CAAWL,IAAA,CAAK7B,gBAAA,CAAiB,EAAE6C,MAAA,CAAO,MAAMuF,OAAA,CAAQ5C,WAAA,CAAY+C,IAAI,CAAC,CAAC;IACnF;IACAlE,eAAA,EAAiB,MAAOzB,WAAA,IACtByF,QAAA,CAAS,iBAAiB,EAAEhE,eAAA,CAAgBzB,WAAW;IACzD,MAAM+B,uBAAuB/B,WAAA,EAAa;MACxC,MAAMqB,MAAA,GAASoE,QAAA,CAAS,wBAAwB;MAChD,IAAI,CAACpE,MAAA,CAAOU,sBAAA,EAAwB;QAClC,MAAM,IAAIpE,4BAAA,CAA6B,UAAU,wBAAwB;MAC3E;MACA,OAAO0D,MAAA,CAAOU,sBAAA,CAAuB/B,WAAW;IAClD;EACF;AACF","ignoreList":[]}
|