@multiplatform.one/web3 7.26.0 → 7.28.1
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 +157 -8
- package/dist/cjs/bridge/base58.cjs +48 -0
- package/dist/cjs/bridge/base58.native.js +51 -0
- package/dist/cjs/bridge/base58.native.js.map +1 -0
- package/dist/cjs/bridge/core.cjs +5 -1
- package/dist/cjs/bridge/core.native.js +5 -1
- package/dist/cjs/bridge/core.native.js.map +1 -1
- package/dist/cjs/bridge/drivers.cjs +141 -0
- package/dist/cjs/bridge/drivers.native.js +161 -0
- package/dist/cjs/bridge/drivers.native.js.map +1 -0
- package/dist/cjs/bridge/nativeHost.cjs +49 -9
- package/dist/cjs/bridge/nativeHost.native.js +56 -9
- package/dist/cjs/bridge/nativeHost.native.js.map +1 -1
- package/dist/cjs/clients/adapter.native.js.map +1 -1
- package/dist/cjs/clients/connector.native.js.map +1 -1
- package/dist/cjs/clients/evm.cjs +1 -0
- package/dist/cjs/clients/evm.native.js +1 -0
- package/dist/cjs/clients/evm.native.js.map +1 -1
- package/dist/cjs/clients/evmRead.cjs +104 -0
- package/dist/cjs/clients/evmRead.native.js +124 -0
- package/dist/cjs/clients/evmRead.native.js.map +1 -0
- package/dist/cjs/clients/hooks.cjs +37 -7
- package/dist/cjs/clients/hooks.native.js +43 -5
- 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/types.cjs +7 -0
- package/dist/cjs/clients/types.native.js +14 -0
- package/dist/cjs/clients/types.native.js.map +1 -1
- package/dist/cjs/connectkit/adapters/BitcoinAdapter.cjs +44 -2
- package/dist/cjs/connectkit/adapters/BitcoinAdapter.native.js +73 -5
- package/dist/cjs/connectkit/adapters/BitcoinAdapter.native.js.map +1 -1
- package/dist/cjs/connectkit/adapters/SolanaAdapter.cjs +46 -0
- package/dist/cjs/connectkit/adapters/SolanaAdapter.native.js +55 -0
- package/dist/cjs/connectkit/adapters/SolanaAdapter.native.js.map +1 -1
- package/dist/cjs/connectkit/adapters/SuiAdapter.cjs +40 -0
- package/dist/cjs/connectkit/adapters/SuiAdapter.native.js +50 -0
- package/dist/cjs/connectkit/adapters/SuiAdapter.native.js.map +1 -1
- package/dist/cjs/connectkit/connectors/ensureWalletConnectors.cjs +4 -1
- package/dist/cjs/connectkit/connectors/ensureWalletConnectors.native.js +8 -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/syntheticChains.native.js.map +1 -1
- package/dist/cjs/connectkit/connectors/walletAdapterConnector.native.js.map +1 -1
- package/dist/cjs/connectkit/defaultConfig.cjs +5 -2
- package/dist/cjs/connectkit/defaultConfig.native.js +9 -2
- package/dist/cjs/connectkit/defaultConfig.native.js.map +1 -1
- package/dist/cjs/connectkit/siwe/SIWEContext.native.js.map +1 -1
- package/dist/cjs/connectkit/siwe/SIWEProvider.cjs +6 -4
- package/dist/cjs/connectkit/siwe/SIWEProvider.native.js +8 -4
- package/dist/cjs/connectkit/siwe/SIWEProvider.native.js.map +1 -1
- package/dist/cjs/connectkit/siwe/connectIntent.cjs +56 -16
- package/dist/cjs/connectkit/siwe/connectIntent.native.js +100 -16
- package/dist/cjs/connectkit/siwe/connectIntent.native.js.map +1 -1
- package/dist/cjs/connectkit/siwe/useSIWE.native.js.map +1 -1
- package/dist/cjs/connectkit/web3Bridge.cjs +58 -12
- package/dist/cjs/connectkit/web3Bridge.native.js +64 -14
- package/dist/cjs/connectkit/web3Bridge.native.js.map +1 -1
- package/dist/cjs/core/family.cjs +17 -0
- package/dist/cjs/core/family.native.js +17 -0
- package/dist/cjs/core/family.native.js.map +1 -1
- package/dist/cjs/core/index.cjs +10 -1
- package/dist/cjs/core/index.native.js +10 -1
- package/dist/cjs/core/index.native.js.map +1 -1
- package/dist/cjs/core/lightDriver.cjs +182 -0
- package/dist/cjs/core/lightDriver.native.js +260 -0
- package/dist/cjs/core/lightDriver.native.js.map +1 -0
- package/dist/cjs/core/react.cjs +12 -1
- package/dist/cjs/core/react.native.js +16 -1
- package/dist/cjs/core/react.native.js.map +1 -1
- package/dist/cjs/core/signIn.cjs +201 -0
- package/dist/cjs/core/signIn.native.js +240 -0
- package/dist/cjs/core/signIn.native.js.map +1 -0
- package/dist/cjs/core/store.cjs +47 -2
- package/dist/cjs/core/store.native.js +49 -2
- package/dist/cjs/core/store.native.js.map +1 -1
- package/dist/cjs/families/btc.cjs +44 -0
- package/dist/cjs/families/btc.native.js +49 -0
- package/dist/cjs/families/btc.native.js.map +1 -0
- package/dist/cjs/families/eth.cjs +57 -0
- package/dist/cjs/families/eth.native.js +61 -0
- package/dist/cjs/families/eth.native.js.map +1 -0
- package/dist/cjs/families/gpg.cjs +40 -0
- package/dist/cjs/families/gpg.native.js +43 -0
- package/dist/cjs/families/gpg.native.js.map +1 -0
- package/dist/cjs/families/host.cjs +38 -0
- package/dist/cjs/families/host.native.js +41 -0
- package/dist/cjs/families/host.native.js.map +1 -0
- package/dist/cjs/families/index.cjs +53 -0
- package/dist/cjs/families/index.native.js +56 -0
- package/dist/cjs/families/index.native.js.map +1 -0
- package/dist/cjs/families/messages.cjs +61 -0
- package/dist/cjs/families/messages.native.js +66 -0
- package/dist/cjs/families/messages.native.js.map +1 -0
- package/dist/cjs/families/sol.cjs +55 -0
- package/dist/cjs/families/sol.native.js +64 -0
- package/dist/cjs/families/sol.native.js.map +1 -0
- package/dist/cjs/families/sui.cjs +48 -0
- package/dist/cjs/families/sui.native.js +53 -0
- package/dist/cjs/families/sui.native.js.map +1 -0
- package/dist/cjs/index.cjs +22 -2
- package/dist/cjs/index.native.js +21 -1
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/keycloak/keycloakWallet.cjs +13 -0
- package/dist/cjs/keycloak/keycloakWallet.native.js +15 -0
- package/dist/cjs/keycloak/keycloakWallet.native.js.map +1 -1
- package/dist/cjs/keycloak/useDirectLogin.cjs +10 -5
- package/dist/cjs/keycloak/useDirectLogin.native.js +12 -5
- package/dist/cjs/keycloak/useDirectLogin.native.js.map +1 -1
- package/dist/cjs/keycloak/useWalletLogin.cjs +16 -8
- package/dist/cjs/light/drivers.cjs +73 -0
- package/dist/cjs/light/drivers.native.js +97 -0
- package/dist/cjs/light/drivers.native.js.map +1 -0
- package/dist/cjs/light/index.cjs +30 -0
- package/dist/cjs/light/index.native.js +33 -0
- package/dist/cjs/light/index.native.js.map +1 -0
- package/dist/cjs/providers/WalletProvider.cjs +59 -17
- package/dist/cjs/providers/WalletProvider.native.js +99 -56
- package/dist/cjs/providers/WalletProvider.native.js.map +1 -1
- package/dist/cjs/providers/families.cjs +53 -0
- package/dist/cjs/providers/families.native.js +59 -0
- package/dist/cjs/providers/families.native.js.map +1 -0
- package/dist/cjs/providers/index.cjs +1 -0
- package/dist/cjs/providers/index.native.js +1 -0
- package/dist/cjs/providers/index.native.js.map +1 -1
- package/dist/cjs/providers/walletConfig.cjs +41 -0
- package/dist/cjs/providers/walletConfig.native.js +68 -0
- package/dist/cjs/providers/walletConfig.native.js.map +1 -1
- package/dist/cjs/wagmi/driver.cjs +257 -0
- package/dist/cjs/wagmi/driver.native.js +331 -0
- package/dist/cjs/wagmi/driver.native.js.map +1 -0
- package/dist/cjs/wagmi/host.cjs +239 -0
- package/dist/cjs/wagmi/host.native.js +320 -0
- package/dist/cjs/wagmi/host.native.js.map +1 -0
- package/dist/cjs/wagmi/index.cjs +28 -0
- package/dist/cjs/wagmi/index.native.js +31 -0
- package/dist/cjs/wagmi/index.native.js.map +1 -0
- package/dist/cjs/web.cjs +84 -0
- package/dist/esm/bridge/base58.mjs +23 -0
- package/dist/esm/bridge/base58.mjs.map +1 -0
- package/dist/esm/bridge/base58.native.js +23 -0
- package/dist/esm/bridge/base58.native.js.map +1 -0
- package/dist/esm/bridge/core.mjs +3 -2
- package/dist/esm/bridge/core.mjs.map +1 -1
- package/dist/esm/bridge/core.native.js +3 -2
- package/dist/esm/bridge/core.native.js.map +1 -1
- package/dist/esm/bridge/drivers.mjs +113 -0
- package/dist/esm/bridge/drivers.mjs.map +1 -0
- package/dist/esm/bridge/drivers.native.js +130 -0
- package/dist/esm/bridge/drivers.native.js.map +1 -0
- package/dist/esm/bridge/nativeHost.mjs +50 -11
- package/dist/esm/bridge/nativeHost.mjs.map +1 -1
- package/dist/esm/bridge/nativeHost.native.js +57 -11
- package/dist/esm/bridge/nativeHost.native.js.map +1 -1
- package/dist/esm/clients/adapter.mjs.map +1 -1
- package/dist/esm/clients/adapter.native.js.map +1 -1
- package/dist/esm/clients/connector.mjs.map +1 -1
- package/dist/esm/clients/connector.native.js.map +1 -1
- package/dist/esm/clients/evm.mjs +1 -0
- package/dist/esm/clients/evm.mjs.map +1 -1
- package/dist/esm/clients/evm.native.js +1 -0
- package/dist/esm/clients/evm.native.js.map +1 -1
- package/dist/esm/clients/evmRead.mjs +78 -0
- package/dist/esm/clients/evmRead.mjs.map +1 -0
- package/dist/esm/clients/evmRead.native.js +95 -0
- package/dist/esm/clients/evmRead.native.js.map +1 -0
- package/dist/esm/clients/hooks.mjs +38 -9
- package/dist/esm/clients/hooks.mjs.map +1 -1
- package/dist/esm/clients/hooks.native.js +44 -7
- package/dist/esm/clients/hooks.native.js.map +1 -1
- package/dist/esm/clients/index.mjs +4 -3
- package/dist/esm/clients/index.mjs.map +1 -1
- package/dist/esm/clients/index.native.js +4 -3
- package/dist/esm/clients/index.native.js.map +1 -1
- package/dist/esm/clients/types.mjs +7 -1
- package/dist/esm/clients/types.mjs.map +1 -1
- package/dist/esm/clients/types.native.js +14 -1
- package/dist/esm/clients/types.native.js.map +1 -1
- package/dist/esm/connectkit/adapters/BitcoinAdapter.mjs +44 -2
- package/dist/esm/connectkit/adapters/BitcoinAdapter.mjs.map +1 -1
- package/dist/esm/connectkit/adapters/BitcoinAdapter.native.js +73 -5
- package/dist/esm/connectkit/adapters/BitcoinAdapter.native.js.map +1 -1
- package/dist/esm/connectkit/adapters/SolanaAdapter.mjs +46 -0
- package/dist/esm/connectkit/adapters/SolanaAdapter.mjs.map +1 -1
- package/dist/esm/connectkit/adapters/SolanaAdapter.native.js +55 -0
- package/dist/esm/connectkit/adapters/SolanaAdapter.native.js.map +1 -1
- package/dist/esm/connectkit/adapters/SuiAdapter.mjs +40 -0
- package/dist/esm/connectkit/adapters/SuiAdapter.mjs.map +1 -1
- package/dist/esm/connectkit/adapters/SuiAdapter.native.js +50 -0
- package/dist/esm/connectkit/adapters/SuiAdapter.native.js.map +1 -1
- package/dist/esm/connectkit/connectors/ensureWalletConnectors.mjs +4 -1
- package/dist/esm/connectkit/connectors/ensureWalletConnectors.mjs.map +1 -1
- package/dist/esm/connectkit/connectors/ensureWalletConnectors.native.js +8 -1
- package/dist/esm/connectkit/connectors/ensureWalletConnectors.native.js.map +1 -1
- package/dist/esm/connectkit/connectors/getWalletConnectors.mjs.map +1 -1
- package/dist/esm/connectkit/connectors/getWalletConnectors.native.js.map +1 -1
- package/dist/esm/connectkit/connectors/syntheticChains.mjs.map +1 -1
- package/dist/esm/connectkit/connectors/syntheticChains.native.js.map +1 -1
- package/dist/esm/connectkit/connectors/walletAdapterConnector.mjs.map +1 -1
- package/dist/esm/connectkit/connectors/walletAdapterConnector.native.js.map +1 -1
- package/dist/esm/connectkit/defaultConfig.mjs +6 -3
- package/dist/esm/connectkit/defaultConfig.mjs.map +1 -1
- package/dist/esm/connectkit/defaultConfig.native.js +10 -3
- package/dist/esm/connectkit/defaultConfig.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 +6 -4
- package/dist/esm/connectkit/siwe/SIWEProvider.mjs.map +1 -1
- package/dist/esm/connectkit/siwe/SIWEProvider.native.js +8 -4
- package/dist/esm/connectkit/siwe/SIWEProvider.native.js.map +1 -1
- package/dist/esm/connectkit/siwe/connectIntent.mjs +54 -16
- package/dist/esm/connectkit/siwe/connectIntent.mjs.map +1 -1
- package/dist/esm/connectkit/siwe/connectIntent.native.js +98 -16
- package/dist/esm/connectkit/siwe/connectIntent.native.js.map +1 -1
- package/dist/esm/connectkit/siwe/useSIWE.mjs.map +1 -1
- package/dist/esm/connectkit/siwe/useSIWE.native.js.map +1 -1
- package/dist/esm/connectkit/web3Bridge.mjs +61 -16
- package/dist/esm/connectkit/web3Bridge.mjs.map +1 -1
- package/dist/esm/connectkit/web3Bridge.native.js +67 -18
- package/dist/esm/connectkit/web3Bridge.native.js.map +1 -1
- package/dist/esm/core/family.mjs +17 -0
- package/dist/esm/core/family.mjs.map +1 -1
- package/dist/esm/core/family.native.js +17 -0
- package/dist/esm/core/family.native.js.map +1 -1
- package/dist/esm/core/index.mjs +5 -3
- package/dist/esm/core/index.mjs.map +1 -1
- package/dist/esm/core/index.native.js +5 -3
- package/dist/esm/core/index.native.js.map +1 -1
- package/dist/esm/core/lightDriver.mjs +157 -0
- package/dist/esm/core/lightDriver.mjs.map +1 -0
- package/dist/esm/core/lightDriver.native.js +232 -0
- package/dist/esm/core/lightDriver.native.js.map +1 -0
- package/dist/esm/core/react.mjs +10 -1
- package/dist/esm/core/react.mjs.map +1 -1
- package/dist/esm/core/react.native.js +14 -1
- package/dist/esm/core/react.native.js.map +1 -1
- package/dist/esm/core/signIn.mjs +173 -0
- package/dist/esm/core/signIn.mjs.map +1 -0
- package/dist/esm/core/signIn.native.js +209 -0
- package/dist/esm/core/signIn.native.js.map +1 -0
- package/dist/esm/core/store.mjs +47 -2
- package/dist/esm/core/store.mjs.map +1 -1
- package/dist/esm/core/store.native.js +49 -2
- package/dist/esm/core/store.native.js.map +1 -1
- package/dist/esm/families/btc.mjs +19 -0
- package/dist/esm/families/btc.mjs.map +1 -0
- package/dist/esm/families/btc.native.js +21 -0
- package/dist/esm/families/btc.native.js.map +1 -0
- package/dist/esm/families/eth.mjs +32 -0
- package/dist/esm/families/eth.mjs.map +1 -0
- package/dist/esm/families/eth.native.js +33 -0
- package/dist/esm/families/eth.native.js.map +1 -0
- package/dist/esm/families/gpg.mjs +15 -0
- package/dist/esm/families/gpg.mjs.map +1 -0
- package/dist/esm/families/gpg.native.js +15 -0
- package/dist/esm/families/gpg.native.js.map +1 -0
- package/dist/esm/families/host.mjs +12 -0
- package/dist/esm/families/host.mjs.map +1 -0
- package/dist/esm/families/host.native.js +12 -0
- package/dist/esm/families/host.native.js.map +1 -0
- package/dist/esm/families/index.mjs +23 -0
- package/dist/esm/families/index.mjs.map +1 -0
- package/dist/esm/families/index.native.js +23 -0
- package/dist/esm/families/index.native.js.map +1 -0
- package/dist/esm/families/messages.mjs +32 -0
- package/dist/esm/families/messages.mjs.map +1 -0
- package/dist/esm/families/messages.native.js +34 -0
- package/dist/esm/families/messages.native.js.map +1 -0
- package/dist/esm/families/sol.mjs +30 -0
- package/dist/esm/families/sol.mjs.map +1 -0
- package/dist/esm/families/sol.native.js +36 -0
- package/dist/esm/families/sol.native.js.map +1 -0
- package/dist/esm/families/sui.mjs +23 -0
- package/dist/esm/families/sui.mjs.map +1 -0
- package/dist/esm/families/sui.native.js +25 -0
- package/dist/esm/families/sui.native.js.map +1 -0
- package/dist/esm/index.mjs +6 -3
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +6 -3
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/keycloak/keycloakWallet.mjs +13 -0
- package/dist/esm/keycloak/keycloakWallet.mjs.map +1 -1
- package/dist/esm/keycloak/keycloakWallet.native.js +15 -0
- package/dist/esm/keycloak/keycloakWallet.native.js.map +1 -1
- package/dist/esm/keycloak/useDirectLogin.mjs +10 -5
- package/dist/esm/keycloak/useDirectLogin.mjs.map +1 -1
- package/dist/esm/keycloak/useDirectLogin.native.js +12 -5
- package/dist/esm/keycloak/useDirectLogin.native.js.map +1 -1
- package/dist/esm/keycloak/useWalletLogin.mjs +16 -8
- package/dist/esm/keycloak/useWalletLogin.mjs.map +1 -1
- package/dist/esm/light/drivers.mjs +46 -0
- package/dist/esm/light/drivers.mjs.map +1 -0
- package/dist/esm/light/drivers.native.js +67 -0
- package/dist/esm/light/drivers.native.js.map +1 -0
- package/dist/esm/light/index.mjs +3 -0
- package/dist/esm/light/index.mjs.map +1 -0
- package/dist/esm/light/index.native.js +3 -0
- package/dist/esm/light/index.native.js.map +1 -0
- package/dist/esm/providers/WalletProvider.mjs +60 -19
- package/dist/esm/providers/WalletProvider.mjs.map +1 -1
- package/dist/esm/providers/WalletProvider.native.js +101 -59
- package/dist/esm/providers/WalletProvider.native.js.map +1 -1
- package/dist/esm/providers/families.mjs +27 -0
- package/dist/esm/providers/families.mjs.map +1 -0
- package/dist/esm/providers/families.native.js +30 -0
- package/dist/esm/providers/families.native.js.map +1 -0
- package/dist/esm/providers/index.mjs +2 -2
- package/dist/esm/providers/index.mjs.map +1 -1
- package/dist/esm/providers/index.native.js +2 -2
- package/dist/esm/providers/index.native.js.map +1 -1
- package/dist/esm/providers/walletConfig.mjs +40 -1
- package/dist/esm/providers/walletConfig.mjs.map +1 -1
- package/dist/esm/providers/walletConfig.native.js +67 -1
- package/dist/esm/providers/walletConfig.native.js.map +1 -1
- package/dist/esm/wagmi/driver.mjs +232 -0
- package/dist/esm/wagmi/driver.mjs.map +1 -0
- package/dist/esm/wagmi/driver.native.js +303 -0
- package/dist/esm/wagmi/driver.native.js.map +1 -0
- package/dist/esm/wagmi/host.mjs +213 -0
- package/dist/esm/wagmi/host.mjs.map +1 -0
- package/dist/esm/wagmi/host.native.js +291 -0
- package/dist/esm/wagmi/host.native.js.map +1 -0
- package/dist/esm/wagmi/index.mjs +3 -0
- package/dist/esm/wagmi/index.mjs.map +1 -0
- package/dist/esm/wagmi/index.native.js +3 -0
- package/dist/esm/wagmi/index.native.js.map +1 -0
- package/dist/esm/web.mjs +13 -0
- package/dist/esm/web.mjs.map +1 -0
- package/dist/jsx/bridge/base58.mjs +23 -0
- package/dist/jsx/bridge/base58.mjs.map +1 -0
- package/dist/jsx/bridge/base58.native.js +51 -0
- package/dist/jsx/bridge/base58.native.js.map +1 -0
- package/dist/jsx/bridge/core.mjs +3 -2
- package/dist/jsx/bridge/core.mjs.map +1 -1
- package/dist/jsx/bridge/core.native.js +5 -1
- package/dist/jsx/bridge/core.native.js.map +1 -1
- package/dist/jsx/bridge/drivers.mjs +113 -0
- package/dist/jsx/bridge/drivers.mjs.map +1 -0
- package/dist/jsx/bridge/drivers.native.js +161 -0
- package/dist/jsx/bridge/drivers.native.js.map +1 -0
- package/dist/jsx/bridge/nativeHost.mjs +50 -11
- package/dist/jsx/bridge/nativeHost.mjs.map +1 -1
- package/dist/jsx/bridge/nativeHost.native.js +56 -9
- package/dist/jsx/bridge/nativeHost.native.js.map +1 -1
- package/dist/jsx/clients/adapter.mjs.map +1 -1
- package/dist/jsx/clients/adapter.native.js.map +1 -1
- package/dist/jsx/clients/connector.mjs.map +1 -1
- package/dist/jsx/clients/connector.native.js.map +1 -1
- package/dist/jsx/clients/evm.mjs +1 -0
- package/dist/jsx/clients/evm.mjs.map +1 -1
- package/dist/jsx/clients/evm.native.js +1 -0
- package/dist/jsx/clients/evm.native.js.map +1 -1
- package/dist/jsx/clients/evmRead.mjs +78 -0
- package/dist/jsx/clients/evmRead.mjs.map +1 -0
- package/dist/jsx/clients/evmRead.native.js +124 -0
- package/dist/jsx/clients/evmRead.native.js.map +1 -0
- package/dist/jsx/clients/hooks.mjs +38 -9
- package/dist/jsx/clients/hooks.mjs.map +1 -1
- package/dist/jsx/clients/hooks.native.js +43 -5
- package/dist/jsx/clients/hooks.native.js.map +1 -1
- package/dist/jsx/clients/index.mjs +4 -3
- 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/types.mjs +7 -1
- package/dist/jsx/clients/types.mjs.map +1 -1
- package/dist/jsx/clients/types.native.js +14 -0
- package/dist/jsx/clients/types.native.js.map +1 -1
- package/dist/jsx/connectkit/adapters/BitcoinAdapter.mjs +44 -2
- package/dist/jsx/connectkit/adapters/BitcoinAdapter.mjs.map +1 -1
- package/dist/jsx/connectkit/adapters/BitcoinAdapter.native.js +73 -5
- package/dist/jsx/connectkit/adapters/BitcoinAdapter.native.js.map +1 -1
- package/dist/jsx/connectkit/adapters/SolanaAdapter.mjs +46 -0
- package/dist/jsx/connectkit/adapters/SolanaAdapter.mjs.map +1 -1
- package/dist/jsx/connectkit/adapters/SolanaAdapter.native.js +55 -0
- package/dist/jsx/connectkit/adapters/SolanaAdapter.native.js.map +1 -1
- package/dist/jsx/connectkit/adapters/SuiAdapter.mjs +40 -0
- package/dist/jsx/connectkit/adapters/SuiAdapter.mjs.map +1 -1
- package/dist/jsx/connectkit/adapters/SuiAdapter.native.js +50 -0
- package/dist/jsx/connectkit/adapters/SuiAdapter.native.js.map +1 -1
- package/dist/jsx/connectkit/connectors/ensureWalletConnectors.mjs +4 -1
- package/dist/jsx/connectkit/connectors/ensureWalletConnectors.mjs.map +1 -1
- package/dist/jsx/connectkit/connectors/ensureWalletConnectors.native.js +8 -1
- package/dist/jsx/connectkit/connectors/ensureWalletConnectors.native.js.map +1 -1
- package/dist/jsx/connectkit/connectors/getWalletConnectors.mjs.map +1 -1
- package/dist/jsx/connectkit/connectors/getWalletConnectors.native.js.map +1 -1
- package/dist/jsx/connectkit/connectors/syntheticChains.mjs.map +1 -1
- package/dist/jsx/connectkit/connectors/syntheticChains.native.js.map +1 -1
- package/dist/jsx/connectkit/connectors/walletAdapterConnector.mjs.map +1 -1
- package/dist/jsx/connectkit/connectors/walletAdapterConnector.native.js.map +1 -1
- package/dist/jsx/connectkit/defaultConfig.mjs +6 -3
- package/dist/jsx/connectkit/defaultConfig.mjs.map +1 -1
- package/dist/jsx/connectkit/defaultConfig.native.js +9 -2
- package/dist/jsx/connectkit/defaultConfig.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 +6 -4
- package/dist/jsx/connectkit/siwe/SIWEProvider.mjs.map +1 -1
- package/dist/jsx/connectkit/siwe/SIWEProvider.native.js +8 -4
- package/dist/jsx/connectkit/siwe/SIWEProvider.native.js.map +1 -1
- package/dist/jsx/connectkit/siwe/connectIntent.mjs +54 -16
- package/dist/jsx/connectkit/siwe/connectIntent.mjs.map +1 -1
- package/dist/jsx/connectkit/siwe/connectIntent.native.js +100 -16
- package/dist/jsx/connectkit/siwe/connectIntent.native.js.map +1 -1
- package/dist/jsx/connectkit/siwe/useSIWE.mjs.map +1 -1
- package/dist/jsx/connectkit/siwe/useSIWE.native.js.map +1 -1
- package/dist/jsx/connectkit/web3Bridge.mjs +61 -16
- package/dist/jsx/connectkit/web3Bridge.mjs.map +1 -1
- package/dist/jsx/connectkit/web3Bridge.native.js +64 -14
- package/dist/jsx/connectkit/web3Bridge.native.js.map +1 -1
- package/dist/jsx/core/family.mjs +17 -0
- package/dist/jsx/core/family.mjs.map +1 -1
- package/dist/jsx/core/family.native.js +17 -0
- package/dist/jsx/core/family.native.js.map +1 -1
- package/dist/jsx/core/index.mjs +5 -3
- package/dist/jsx/core/index.mjs.map +1 -1
- package/dist/jsx/core/index.native.js +10 -1
- package/dist/jsx/core/index.native.js.map +1 -1
- package/dist/jsx/core/lightDriver.mjs +157 -0
- package/dist/jsx/core/lightDriver.mjs.map +1 -0
- package/dist/jsx/core/lightDriver.native.js +260 -0
- package/dist/jsx/core/lightDriver.native.js.map +1 -0
- package/dist/jsx/core/react.mjs +10 -1
- package/dist/jsx/core/react.mjs.map +1 -1
- package/dist/jsx/core/react.native.js +16 -1
- package/dist/jsx/core/react.native.js.map +1 -1
- package/dist/jsx/core/signIn.mjs +173 -0
- package/dist/jsx/core/signIn.mjs.map +1 -0
- package/dist/jsx/core/signIn.native.js +240 -0
- package/dist/jsx/core/signIn.native.js.map +1 -0
- package/dist/jsx/core/store.mjs +47 -2
- package/dist/jsx/core/store.mjs.map +1 -1
- package/dist/jsx/core/store.native.js +49 -2
- package/dist/jsx/core/store.native.js.map +1 -1
- package/dist/jsx/families/btc.mjs +19 -0
- package/dist/jsx/families/btc.mjs.map +1 -0
- package/dist/jsx/families/btc.native.js +49 -0
- package/dist/jsx/families/btc.native.js.map +1 -0
- package/dist/jsx/families/eth.mjs +32 -0
- package/dist/jsx/families/eth.mjs.map +1 -0
- package/dist/jsx/families/eth.native.js +61 -0
- package/dist/jsx/families/eth.native.js.map +1 -0
- package/dist/jsx/families/gpg.mjs +15 -0
- package/dist/jsx/families/gpg.mjs.map +1 -0
- package/dist/jsx/families/gpg.native.js +43 -0
- package/dist/jsx/families/gpg.native.js.map +1 -0
- package/dist/jsx/families/host.mjs +12 -0
- package/dist/jsx/families/host.mjs.map +1 -0
- package/dist/jsx/families/host.native.js +41 -0
- package/dist/jsx/families/host.native.js.map +1 -0
- package/dist/jsx/families/index.mjs +23 -0
- package/dist/jsx/families/index.mjs.map +1 -0
- package/dist/jsx/families/index.native.js +56 -0
- package/dist/jsx/families/index.native.js.map +1 -0
- package/dist/jsx/families/messages.mjs +32 -0
- package/dist/jsx/families/messages.mjs.map +1 -0
- package/dist/jsx/families/messages.native.js +66 -0
- package/dist/jsx/families/messages.native.js.map +1 -0
- package/dist/jsx/families/sol.mjs +30 -0
- package/dist/jsx/families/sol.mjs.map +1 -0
- package/dist/jsx/families/sol.native.js +64 -0
- package/dist/jsx/families/sol.native.js.map +1 -0
- package/dist/jsx/families/sui.mjs +23 -0
- package/dist/jsx/families/sui.mjs.map +1 -0
- package/dist/jsx/families/sui.native.js +53 -0
- package/dist/jsx/families/sui.native.js.map +1 -0
- package/dist/jsx/index.js +6 -3
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +6 -3
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +21 -1
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/keycloak/keycloakWallet.mjs +13 -0
- package/dist/jsx/keycloak/keycloakWallet.mjs.map +1 -1
- package/dist/jsx/keycloak/keycloakWallet.native.js +15 -0
- package/dist/jsx/keycloak/keycloakWallet.native.js.map +1 -1
- package/dist/jsx/keycloak/useDirectLogin.mjs +10 -5
- package/dist/jsx/keycloak/useDirectLogin.mjs.map +1 -1
- package/dist/jsx/keycloak/useDirectLogin.native.js +12 -5
- package/dist/jsx/keycloak/useDirectLogin.native.js.map +1 -1
- package/dist/jsx/keycloak/useWalletLogin.mjs +16 -8
- package/dist/jsx/keycloak/useWalletLogin.mjs.map +1 -1
- package/dist/jsx/light/drivers.mjs +46 -0
- package/dist/jsx/light/drivers.mjs.map +1 -0
- package/dist/jsx/light/drivers.native.js +97 -0
- package/dist/jsx/light/drivers.native.js.map +1 -0
- package/dist/jsx/light/index.mjs +3 -0
- package/dist/jsx/light/index.mjs.map +1 -0
- package/dist/jsx/light/index.native.js +33 -0
- package/dist/jsx/light/index.native.js.map +1 -0
- package/dist/jsx/providers/WalletProvider.mjs +60 -19
- package/dist/jsx/providers/WalletProvider.mjs.map +1 -1
- package/dist/jsx/providers/WalletProvider.native.js +99 -56
- package/dist/jsx/providers/WalletProvider.native.js.map +1 -1
- package/dist/jsx/providers/families.mjs +27 -0
- package/dist/jsx/providers/families.mjs.map +1 -0
- package/dist/jsx/providers/families.native.js +59 -0
- package/dist/jsx/providers/families.native.js.map +1 -0
- package/dist/jsx/providers/index.mjs +2 -2
- package/dist/jsx/providers/index.mjs.map +1 -1
- package/dist/jsx/providers/index.native.js +1 -0
- package/dist/jsx/providers/index.native.js.map +1 -1
- package/dist/jsx/providers/walletConfig.mjs +40 -1
- package/dist/jsx/providers/walletConfig.mjs.map +1 -1
- package/dist/jsx/providers/walletConfig.native.js +68 -0
- package/dist/jsx/providers/walletConfig.native.js.map +1 -1
- package/dist/jsx/wagmi/driver.mjs +232 -0
- package/dist/jsx/wagmi/driver.mjs.map +1 -0
- package/dist/jsx/wagmi/driver.native.js +331 -0
- package/dist/jsx/wagmi/driver.native.js.map +1 -0
- package/dist/jsx/wagmi/host.mjs +213 -0
- package/dist/jsx/wagmi/host.mjs.map +1 -0
- package/dist/jsx/wagmi/host.native.js +320 -0
- package/dist/jsx/wagmi/host.native.js.map +1 -0
- package/dist/jsx/wagmi/index.mjs +3 -0
- package/dist/jsx/wagmi/index.mjs.map +1 -0
- package/dist/jsx/wagmi/index.native.js +31 -0
- package/dist/jsx/wagmi/index.native.js.map +1 -0
- package/dist/jsx/web.mjs +13 -0
- package/dist/jsx/web.mjs.map +1 -0
- package/dist/keycloak/login.iife.js +449 -443
- package/docs/bridge-protocol.md +41 -14
- package/package.json +13 -6
- package/src/bridge/base58.spec.ts +18 -0
- package/src/bridge/base58.ts +25 -0
- package/src/bridge/core.ts +2 -0
- package/src/bridge/drivers.spec.ts +283 -0
- package/src/bridge/drivers.ts +155 -0
- package/src/bridge/index.spec.ts +3 -0
- package/src/bridge/nativeHost.spec.ts +139 -15
- package/src/bridge/nativeHost.ts +84 -14
- package/src/bundler/metaMaskConnectTimeouts.spec.ts +3 -0
- package/src/clients/adapter.ts +5 -1
- package/src/clients/connector.ts +2 -0
- package/src/clients/evm.spec.ts +8 -0
- package/src/clients/evm.ts +3 -0
- package/src/clients/evmRead.spec.ts +180 -0
- package/src/clients/evmRead.ts +140 -0
- package/src/clients/hooks.spec.tsx +58 -0
- package/src/clients/hooks.ts +73 -14
- package/src/clients/index.ts +11 -1
- package/src/clients/types.ts +15 -1
- package/src/clients/useEvmReadClient.spec.tsx +93 -0
- package/src/connectkit/adapters/BitcoinAdapter.ts +64 -4
- package/src/connectkit/adapters/SolanaAdapter.ts +49 -0
- package/src/connectkit/adapters/SuiAdapter.ts +47 -1
- package/src/connectkit/connectors/ensureWalletConnectors.ts +10 -1
- package/src/connectkit/connectors/getWalletConnectors.ts +2 -0
- package/src/connectkit/connectors/syntheticChains.ts +8 -0
- package/src/connectkit/connectors/walletAdapterConnector.ts +2 -0
- package/src/connectkit/defaultConfig.ts +21 -7
- package/src/connectkit/siwe/SIWEContext.tsx +3 -0
- package/src/connectkit/siwe/SIWEProvider.spec.tsx +109 -0
- package/src/connectkit/siwe/SIWEProvider.tsx +16 -7
- package/src/connectkit/siwe/connectIntent.spec.ts +100 -30
- package/src/connectkit/siwe/connectIntent.ts +99 -25
- package/src/connectkit/siwe/useSIWE.ts +4 -1
- package/src/connectkit/web3Bridge.tsx +75 -15
- package/src/core/family.spec.ts +19 -0
- package/src/core/family.ts +43 -0
- package/src/core/imports.spec.ts +1 -1
- package/src/core/index.ts +23 -0
- package/src/core/lightDriver.spec.ts +284 -0
- package/src/core/lightDriver.ts +235 -0
- package/src/core/react.ts +18 -0
- package/src/core/signIn.spec.tsx +305 -0
- package/src/core/signIn.ts +282 -0
- package/src/core/store.spec.ts +83 -0
- package/src/core/store.ts +60 -9
- package/src/core/types.ts +15 -1
- package/src/families/btc.ts +16 -0
- package/src/families/eth.ts +35 -0
- package/src/families/families.spec.ts +180 -0
- package/src/families/gpg.ts +13 -0
- package/src/families/host.ts +34 -0
- package/src/families/index.ts +32 -0
- package/src/families/messages.ts +39 -0
- package/src/families/sol.ts +25 -0
- package/src/families/sui.ts +17 -0
- package/src/index.ts +38 -1
- package/src/keycloak/KeycloakWalletLogin.spec.tsx +211 -4
- package/src/keycloak/keycloakWallet.spec.ts +81 -1
- package/src/keycloak/keycloakWallet.ts +24 -2
- package/src/keycloak/useDirectLogin.spec.tsx +77 -4
- package/src/keycloak/useDirectLogin.ts +23 -11
- package/src/keycloak/useWalletLogin.spec.tsx +52 -0
- package/src/keycloak/useWalletLogin.ts +24 -6
- package/src/light/drivers.spec.ts +330 -0
- package/src/light/drivers.ts +54 -0
- package/src/light/index.ts +1 -0
- package/src/light/native.spec.ts +22 -0
- package/src/providers/WalletProvider.native.spec.tsx +288 -0
- package/src/providers/WalletProvider.native.tsx +132 -59
- package/src/providers/WalletProvider.spec.tsx +521 -0
- package/src/providers/WalletProvider.tsx +90 -19
- package/src/providers/families.tsx +39 -0
- package/src/providers/index.ts +3 -0
- package/src/providers/walletConfig.spec.ts +19 -1
- package/src/providers/walletConfig.ts +80 -2
- package/src/wagmi/driver.spec.ts +407 -0
- package/src/wagmi/driver.ts +303 -0
- package/src/wagmi/host.spec.tsx +416 -0
- package/src/wagmi/host.tsx +260 -0
- package/src/wagmi/index.ts +1 -0
- package/src/web.spec.ts +58 -0
- package/src/web.ts +82 -0
- package/types/bridge/base58.d.ts +2 -0
- package/types/bridge/base58.d.ts.map +1 -0
- package/types/bridge/core.d.ts +2 -1
- package/types/bridge/core.d.ts.map +1 -1
- package/types/bridge/drivers.d.ts +24 -0
- package/types/bridge/drivers.d.ts.map +1 -0
- package/types/bridge/nativeHost.d.ts +34 -4
- package/types/bridge/nativeHost.d.ts.map +1 -1
- package/types/clients/adapter.d.ts +5 -1
- package/types/clients/adapter.d.ts.map +1 -1
- package/types/clients/connector.d.ts +2 -0
- package/types/clients/connector.d.ts.map +1 -1
- package/types/clients/evm.d.ts +2 -0
- package/types/clients/evm.d.ts.map +1 -1
- package/types/clients/evmRead.d.ts +54 -0
- package/types/clients/evmRead.d.ts.map +1 -0
- package/types/clients/hooks.d.ts +23 -3
- package/types/clients/hooks.d.ts.map +1 -1
- package/types/clients/index.d.ts +4 -2
- package/types/clients/index.d.ts.map +1 -1
- package/types/clients/types.d.ts +11 -1
- package/types/clients/types.d.ts.map +1 -1
- package/types/connectkit/adapters/BitcoinAdapter.d.ts +9 -0
- package/types/connectkit/adapters/BitcoinAdapter.d.ts.map +1 -1
- package/types/connectkit/adapters/SolanaAdapter.d.ts +12 -0
- package/types/connectkit/adapters/SolanaAdapter.d.ts.map +1 -1
- package/types/connectkit/adapters/SuiAdapter.d.ts +8 -0
- package/types/connectkit/adapters/SuiAdapter.d.ts.map +1 -1
- package/types/connectkit/connectors/ensureWalletConnectors.d.ts +3 -0
- package/types/connectkit/connectors/ensureWalletConnectors.d.ts.map +1 -1
- package/types/connectkit/connectors/getWalletConnectors.d.ts +2 -0
- package/types/connectkit/connectors/getWalletConnectors.d.ts.map +1 -1
- package/types/connectkit/connectors/syntheticChains.d.ts +8 -0
- package/types/connectkit/connectors/syntheticChains.d.ts.map +1 -1
- package/types/connectkit/connectors/walletAdapterConnector.d.ts +2 -0
- package/types/connectkit/connectors/walletAdapterConnector.d.ts.map +1 -1
- package/types/connectkit/defaultConfig.d.ts +2 -1
- package/types/connectkit/defaultConfig.d.ts.map +1 -1
- package/types/connectkit/siwe/SIWEContext.d.ts.map +1 -1
- package/types/connectkit/siwe/SIWEProvider.d.ts +6 -0
- package/types/connectkit/siwe/SIWEProvider.d.ts.map +1 -1
- package/types/connectkit/siwe/connectIntent.d.ts +16 -5
- package/types/connectkit/siwe/connectIntent.d.ts.map +1 -1
- package/types/connectkit/siwe/useSIWE.d.ts +4 -0
- package/types/connectkit/siwe/useSIWE.d.ts.map +1 -1
- package/types/connectkit/web3Bridge.d.ts +2 -0
- package/types/connectkit/web3Bridge.d.ts.map +1 -1
- package/types/core/family.d.ts +26 -0
- package/types/core/family.d.ts.map +1 -1
- package/types/core/index.d.ts +6 -4
- package/types/core/index.d.ts.map +1 -1
- package/types/core/lightDriver.d.ts +52 -0
- package/types/core/lightDriver.d.ts.map +1 -0
- package/types/core/react.d.ts +4 -0
- package/types/core/react.d.ts.map +1 -1
- package/types/core/signIn.d.ts +85 -0
- package/types/core/signIn.d.ts.map +1 -0
- package/types/core/store.d.ts +12 -3
- package/types/core/store.d.ts.map +1 -1
- package/types/core/types.d.ts +14 -1
- package/types/core/types.d.ts.map +1 -1
- package/types/families/btc.d.ts +4 -0
- package/types/families/btc.d.ts.map +1 -0
- package/types/families/eth.d.ts +13 -0
- package/types/families/eth.d.ts.map +1 -0
- package/types/families/gpg.d.ts +4 -0
- package/types/families/gpg.d.ts.map +1 -0
- package/types/families/host.d.ts +24 -0
- package/types/families/host.d.ts.map +1 -0
- package/types/families/index.d.ts +14 -0
- package/types/families/index.d.ts.map +1 -0
- package/types/families/messages.d.ts +7 -0
- package/types/families/messages.d.ts.map +1 -0
- package/types/families/sol.d.ts +9 -0
- package/types/families/sol.d.ts.map +1 -0
- package/types/families/sui.d.ts +4 -0
- package/types/families/sui.d.ts.map +1 -0
- package/types/index.d.ts +5 -2
- package/types/index.d.ts.map +1 -1
- package/types/keycloak/keycloakWallet.d.ts +15 -2
- package/types/keycloak/keycloakWallet.d.ts.map +1 -1
- package/types/keycloak/useDirectLogin.d.ts +11 -6
- package/types/keycloak/useDirectLogin.d.ts.map +1 -1
- package/types/keycloak/useWalletLogin.d.ts +8 -1
- package/types/keycloak/useWalletLogin.d.ts.map +1 -1
- package/types/light/drivers.d.ts +13 -0
- package/types/light/drivers.d.ts.map +1 -0
- package/types/light/index.d.ts +2 -0
- package/types/light/index.d.ts.map +1 -0
- package/types/providers/WalletProvider.d.ts +37 -6
- package/types/providers/WalletProvider.d.ts.map +1 -1
- package/types/providers/WalletProvider.native.d.ts +32 -3
- package/types/providers/WalletProvider.native.d.ts.map +1 -1
- package/types/providers/families.d.ts +12 -0
- package/types/providers/families.d.ts.map +1 -0
- package/types/providers/index.d.ts +1 -1
- package/types/providers/index.d.ts.map +1 -1
- package/types/providers/walletConfig.d.ts +32 -2
- package/types/providers/walletConfig.d.ts.map +1 -1
- package/types/wagmi/driver.d.ts +44 -0
- package/types/wagmi/driver.d.ts.map +1 -0
- package/types/wagmi/host.d.ts +31 -0
- package/types/wagmi/host.d.ts.map +1 -0
- package/types/wagmi/index.d.ts +2 -0
- package/types/wagmi/index.d.ts.map +1 -0
- package/types/web.d.ts +13 -0
- package/types/web.d.ts.map +1 -0
package/README.md
CHANGED
|
@@ -14,7 +14,8 @@ Peers: `react`, `@tanstack/react-query`.
|
|
|
14
14
|
|
|
15
15
|
## What it owns
|
|
16
16
|
|
|
17
|
-
- **`
|
|
17
|
+
- **`Web3Provider`** (also `WalletProvider`) — the wallet families, the
|
|
18
|
+
connection store behind `useConnection()`, and wagmi + connectkit, from one `Web3Config`
|
|
18
19
|
(`appName`, `chains`, `enableTestnets`, `localnet` for a hardhat dev chain,
|
|
19
20
|
Solana/Sui RPC URLs)
|
|
20
21
|
- **Hooks** — `useWallet()` (unified state + actions), `useContractRead`,
|
|
@@ -22,11 +23,93 @@ Peers: `react`, `@tanstack/react-query`.
|
|
|
22
23
|
`useBalance`, `useConnect`, `useSignMessage`, `useSwitchChain`, …)
|
|
23
24
|
- **Components** — `ConnectKitButton`, `WalletButton`, `WalletAvatar`,
|
|
24
25
|
`WalletStatus`, `NetworkSwitcher`
|
|
25
|
-
- **Subpaths** — `./
|
|
26
|
+
- **Subpaths** — `./web` (the root without the tamagui components, for a
|
|
27
|
+
plain web bundler, below), `./native` (WebView wallet bridge), `./connectkit`,
|
|
26
28
|
`./message` (the wallet sign-in messages), `./keycloak` (wallet login
|
|
27
29
|
against the Keycloak wallet SPI), `./vite` and `./esbuild` (bundler
|
|
28
30
|
plugins, below)
|
|
29
31
|
|
|
32
|
+
## Wallet families and `useConnection()`
|
|
33
|
+
|
|
34
|
+
`Web3Provider` registers the wallet families an app uses and holds one active
|
|
35
|
+
connection across them. `WalletProvider` is the same component under its first
|
|
36
|
+
name.
|
|
37
|
+
|
|
38
|
+
```tsx
|
|
39
|
+
import { Web3Provider, eth, gpg, sol, useConnection } from "@multiplatform.one/web3";
|
|
40
|
+
|
|
41
|
+
function Account() {
|
|
42
|
+
const { status, family, address, client } = useConnection();
|
|
43
|
+
if (status !== "connected") return null;
|
|
44
|
+
return <button onClick={() => client?.signMessage("hello")}>{`${family} ${address}`}</button>;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export function App() {
|
|
48
|
+
return (
|
|
49
|
+
<Web3Provider config={{ appName: "My App" }} families={[eth(), sol(), gpg()]}>
|
|
50
|
+
<Account />
|
|
51
|
+
</Web3Provider>
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Leave `families` out and the provider takes the ones `config.families` names,
|
|
57
|
+
or every built-in family: `eth`, `sol`, `sui`, `btc` and `gpg`. Pass one or
|
|
58
|
+
the other, not both. Each family carries its sign-in message, which
|
|
59
|
+
`useConnectionStore().registry.messages.build(family, opts)` builds, and its
|
|
60
|
+
connection driver: `eth()` runs on wagmi, and `eth({ config })` hands the
|
|
61
|
+
provider the app's own wagmi config; `sol()`, `sui()` and `btc()` run on the
|
|
62
|
+
light driver in a store an app makes itself with `createConnectionStore`;
|
|
63
|
+
`gpg()` signs without connecting. Under `Web3Provider` the Solana, Sui and
|
|
64
|
+
Bitcoin families connect through the wagmi config for now (below), so a config
|
|
65
|
+
handed over with `eth({ config })` lists their wallets only if it carries the
|
|
66
|
+
Solana, Sui and Bitcoin wallet connectors, as `getDefaultConfig` builds it.
|
|
67
|
+
|
|
68
|
+
`useConnection()` returns `{ status, family, connector, address, chainId, client }`
|
|
69
|
+
whichever way the connection opened: the connect modal, a wagmi hook, or
|
|
70
|
+
`useConnectionStore().connect(family, connectorId)`. Connecting a wallet of
|
|
71
|
+
another family closes the first. `useEvmClient()`, `useSuiClient()` and
|
|
72
|
+
`useBitcoinClient()` return the store's client when one is mounted.
|
|
73
|
+
|
|
74
|
+
Until the modal reads the store in 8.0.0, eth, sol, sui and btc connect through
|
|
75
|
+
the modal's wagmi config, and wagmi still restores the last connection on load.
|
|
76
|
+
Solana, Sui and Bitcoin connections report `solana:mainnet`, `sui:mainnet` and
|
|
77
|
+
`bitcoin` as their chain id, not the synthetic EVM id the wagmi shim uses. A
|
|
78
|
+
`ConnectKitProvider` under a bare `WagmiProvider` mounts a store of its own.
|
|
79
|
+
The shim's exports are deprecated and go in 8.0.0: `walletAdapterConnector`,
|
|
80
|
+
`getWalletConnectors`, `syntheticChains`, `solanaChain`, `suiChain`,
|
|
81
|
+
`bitcoinChain`, `SOLANA_CHAIN_ID`, `SUI_CHAIN_ID`, `BITCOIN_CHAIN_ID`,
|
|
82
|
+
`isSyntheticChainId`, `clientForConnector` and `connectorAdapter`.
|
|
83
|
+
|
|
84
|
+
## Sign-in with `SignInProvider`
|
|
85
|
+
|
|
86
|
+
`SignInProvider` signs in with whatever the connection store holds: the
|
|
87
|
+
connected family builds its own sign-in message and the connection's client
|
|
88
|
+
signs it, so an Ethereum, Solana, Sui or Bitcoin wallet takes the same path.
|
|
89
|
+
Hand it a nonce source and an `onSign`, or pass the same config as
|
|
90
|
+
`Web3Provider`'s `signIn` prop.
|
|
91
|
+
|
|
92
|
+
```tsx
|
|
93
|
+
const kc = keycloakWallet({ baseUrl, realm, domain: "app.example.com" });
|
|
94
|
+
const grant = kc.directGrant({ clientId: "app" });
|
|
95
|
+
|
|
96
|
+
<Web3Provider config={config} signIn={kc.signInConfig(grant.onSign)}>
|
|
97
|
+
<App />
|
|
98
|
+
</Web3Provider>;
|
|
99
|
+
|
|
100
|
+
// inside App: useDirectLogin(grant).signIn(), or useSignIn().signIn()
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
`useSignIn()` returns `{ status, error, signIn, reset }`, whose `status` takes
|
|
104
|
+
`StatusState`'s values. `useDirectLogin` and `useWalletLogin` sign through a
|
|
105
|
+
SignInProvider when there is one. The wagmi-only
|
|
106
|
+
`SIWEProvider`, `useSIWE`, `kc.siweConfig` and `kc.createMessage`, and
|
|
107
|
+
`Web3Provider`'s `siwe` prop, are deprecated and go in 8.0.0; under only a
|
|
108
|
+
`SIWEProvider` the Keycloak hooks sign through it as before.
|
|
109
|
+
`KeycloakWalletLogin` keeps its SIWEProvider until then: the connect modal's
|
|
110
|
+
sign-in step, which a phone lands on after the wallet trip, reads the SIWE
|
|
111
|
+
provider until the modal reads the store.
|
|
112
|
+
|
|
30
113
|
## Per-chain clients
|
|
31
114
|
|
|
32
115
|
Apps talk to a chain through a client, never through wagmi, `window.ethereum`
|
|
@@ -36,12 +119,13 @@ or a provider's `request`. Every client shares
|
|
|
36
119
|
verifiers take: EVM 0x hex, Solana base58, Sui base64, Bitcoin base64 BIP-322,
|
|
37
120
|
GPG the armored signature plus the armored public key.
|
|
38
121
|
|
|
39
|
-
| Hook / factory
|
|
40
|
-
|
|
|
41
|
-
| `useEvmClient()` / `evmClient({ walletClient } \| { provider, account, chain })`
|
|
42
|
-
| `
|
|
43
|
-
| `
|
|
44
|
-
| `
|
|
122
|
+
| Hook / factory | What it adds |
|
|
123
|
+
| ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
124
|
+
| `useEvmClient()` / `evmClient({ walletClient } \| { provider, account, chain })` | viem `walletClient` + `publicClient`, `sendTransaction`, `writeContract`, `waitForTransactionReceipt`, `confirmTransaction`, `explorerTxUrl`, `erc20.{transfer, approve, ensureAllowance, balanceOf, allowance, decimals}`, safe for tokens like USDT that return nothing or refuse a non-zero to non-zero approve |
|
|
125
|
+
| `useEvmReadClient({ chainId? })` / `evmReadClient({ chain, rpcUrl? })` / `evmReadClients(web3Config).get(chainId?)` | no wallet needed: `publicClient`, `readContract`, `erc20.{balanceOf, allowance, decimals}` with the owner named, `explorerTxUrl`; `address` is null, and `signMessage`, `sendTransaction` and `writeContract` reject with `ReadOnlyClientError` |
|
|
126
|
+
| `useSolanaClient()` / `solanaClient({ signer, rpcUrl?, chain? })` from `./solana` | web only: `@solana/kit` `rpc`, `signTransaction`, `signAndSendTransaction`, `sendTransaction`, `confirmTransaction`, `getBalance`, `transferSol` |
|
|
127
|
+
| `useGpgSigner()` / `createGpgSigner()` | the copy/paste GPG signer: `signMessage` parks a request with its terminal `command`; `submit(pasted, request)` resolves it only while `request` is still the pending one and the pasted signature covers its message |
|
|
128
|
+
| `useSuiClient()`, `useBitcoinClient()` | message signing only; `signTransaction` / `signPsbt` reject with `UnsupportedClientMethodError` until transactions land |
|
|
45
129
|
|
|
46
130
|
```tsx
|
|
47
131
|
import { useEvmClient } from "@multiplatform.one/web3";
|
|
@@ -78,6 +162,29 @@ signs Solana through the WebView bridge, so the root never imports
|
|
|
78
162
|
through `solanaMessageClient`, so a login page carries no kit.
|
|
79
163
|
`tests/clients/importGraph.spec.ts` holds both lines, for native and web.
|
|
80
164
|
|
|
165
|
+
### EVM reads without a wallet
|
|
166
|
+
|
|
167
|
+
Reads that must work before a wallet connects, such as prices, sale state or
|
|
168
|
+
a quote for an anonymous visitor, or a balance on a chain other than the
|
|
169
|
+
connected one, go through a read client. Inside a `WalletProvider`,
|
|
170
|
+
`useEvmReadClient({ chainId })` wraps the provider's own public client for that
|
|
171
|
+
chain. With no `chainId` it follows the chain wagmi is on, which moves when the
|
|
172
|
+
wallet switches network, so pass `chainId` to read a contract that lives on one
|
|
173
|
+
chain. Outside React, `evmReadClients(config)` takes the same `Web3Config`
|
|
174
|
+
chain fields and resolves the same chains and RPCs, localnet included. Both
|
|
175
|
+
clients and `evmClient` have `readContract` and the `erc20` reads, so
|
|
176
|
+
`useEvmClient() ?? useEvmReadClient({ chainId })` reads either way.
|
|
177
|
+
|
|
178
|
+
```ts
|
|
179
|
+
import { evmReadClients } from "@multiplatform.one/web3";
|
|
180
|
+
|
|
181
|
+
const readers = evmReadClients({ chains: [base, polygon] });
|
|
182
|
+
const price = await readers
|
|
183
|
+
.get(base.id)
|
|
184
|
+
.readContract({ address: sale, abi, functionName: "price" });
|
|
185
|
+
const held = await readers.get(polygon.id).erc20.balanceOf(qcc, visitor);
|
|
186
|
+
```
|
|
187
|
+
|
|
81
188
|
### EVM payments: pending is not failed
|
|
82
189
|
|
|
83
190
|
A sent transaction can sit in the mempool for minutes and still land. viem's
|
|
@@ -243,6 +350,30 @@ React Native builds don't need it: the native `WalletProvider` renders the
|
|
|
243
350
|
wallet UI from `assets/webview.html`, which this package builds with the
|
|
244
351
|
plugin.
|
|
245
352
|
|
|
353
|
+
## Plain web bundlers: the `./web` entry
|
|
354
|
+
|
|
355
|
+
The root entry also exports the tamagui components (`WalletButton`,
|
|
356
|
+
`WalletAvatar`, `WalletStatus`, `NetworkSwitcher`, `TransactionStatusComponent`)
|
|
357
|
+
and the `LockContract` example. tamagui's web build imports `react-native-web`,
|
|
358
|
+
and `@multiplatform.one/platform` reads `process.env` at load, so a web-only
|
|
359
|
+
app that imports the root has to install `react-native-web`, alias
|
|
360
|
+
`react-native` to it and define `process.env`.
|
|
361
|
+
|
|
362
|
+
`@multiplatform.one/web3/web` is everything else the root exports, with none of
|
|
363
|
+
that in its module graph: `WalletProvider`, the hooks, `ConnectKitButton`, the
|
|
364
|
+
per-chain clients, the bridge, the message builder and the core contracts. A
|
|
365
|
+
Vite app or library build needs only the bundler plugin above, plus the
|
|
366
|
+
`process.env.NODE_ENV` define React needs in any library build.
|
|
367
|
+
|
|
368
|
+
```ts
|
|
369
|
+
import { WalletProvider, evmClient, useEvmClient } from "@multiplatform.one/web3/web";
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
`web-entry/webEntry.spec.ts` (`pnpm test:web-entry`) holds it to that: it
|
|
373
|
+
builds this import as a Vite app and as an IIFE library with `react-native`
|
|
374
|
+
unresolvable, checks that tamagui, platform and theme stay out of the module
|
|
375
|
+
graph, and mounts `WalletProvider` from the bundle on a page with no `process`.
|
|
376
|
+
|
|
246
377
|
## Native apps: the WebView bridge
|
|
247
378
|
|
|
248
379
|
A native app does not link wallet SDKs. The native `WalletProvider` (the
|
|
@@ -271,6 +402,24 @@ if (outcome.status === "signed-in") save(outcome.tokens);
|
|
|
271
402
|
// to finish the profile; call signIn again once it redirects back.
|
|
272
403
|
```
|
|
273
404
|
|
|
405
|
+
Each wallet family names the bridge namespace the page serves it on
|
|
406
|
+
(`family.bridge.namespace`: `evm`, `solana`, `sui`, `gpg`), and a family that
|
|
407
|
+
brings a bridge driver connects across it. On native, `useConnection()`
|
|
408
|
+
reports the store's connection for eth through the bridge's wagmi connector
|
|
409
|
+
and for sol and sui through `solanaBridgeDriver` and `suiBridgeDriver`:
|
|
410
|
+
`useConnectionStore().connect("sol", "webViewSolana")` asks the page's Solana
|
|
411
|
+
wallet, and its client signs base58 as on web. When the page reloads, the
|
|
412
|
+
store asks it for the account again and drops a session the new page does not
|
|
413
|
+
hold. Bitcoin has no bridge namespace yet. A wallet connected straight
|
|
414
|
+
through `useSolanaWallet()` or `useWalletBridge()` stays outside the store.
|
|
415
|
+
|
|
416
|
+
The `webViewSolana` and `webViewSui` connectors are only as good as the
|
|
417
|
+
page's wallets. Today that is the mock wallet page (E2E): on a phone the
|
|
418
|
+
WebView has no injected Phantom (Solana on mobile, above, is the follow-up)
|
|
419
|
+
and no Wallet Standard Sui wallet, so connecting them fails there, as
|
|
420
|
+
`useSolanaWallet()` does. The native store keeps no record across app
|
|
421
|
+
restarts.
|
|
422
|
+
|
|
274
423
|
`@multiplatform.one/web3/bridge` is the same bridge without wagmi, for a host
|
|
275
424
|
that drives the page itself. Kotlin and Swift hosts implement
|
|
276
425
|
[docs/bridge-protocol.md](docs/bridge-protocol.md), the versioned wire
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all) __defProp(target, name, {
|
|
7
|
+
get: all[name],
|
|
8
|
+
enumerable: true
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
14
|
+
get: () => from[key],
|
|
15
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
21
|
+
value: true
|
|
22
|
+
}), mod);
|
|
23
|
+
var base58_exports = {};
|
|
24
|
+
__export(base58_exports, {
|
|
25
|
+
bytesToBase58: () => bytesToBase58
|
|
26
|
+
});
|
|
27
|
+
module.exports = __toCommonJS(base58_exports);
|
|
28
|
+
const ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
|
|
29
|
+
function bytesToBase58(bytes) {
|
|
30
|
+
let zeros = 0;
|
|
31
|
+
while (zeros < bytes.length && bytes[zeros] === 0) zeros += 1;
|
|
32
|
+
const digits = [];
|
|
33
|
+
for (let i = zeros; i < bytes.length; i += 1) {
|
|
34
|
+
let carry = bytes[i];
|
|
35
|
+
for (let j = 0; j < digits.length; j += 1) {
|
|
36
|
+
carry += digits[j] << 8;
|
|
37
|
+
digits[j] = carry % 58;
|
|
38
|
+
carry = Math.floor(carry / 58);
|
|
39
|
+
}
|
|
40
|
+
while (carry > 0) {
|
|
41
|
+
digits.push(carry % 58);
|
|
42
|
+
carry = Math.floor(carry / 58);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
let out = "1".repeat(zeros);
|
|
46
|
+
for (let i = digits.length - 1; i >= 0; i -= 1) out += ALPHABET[digits[i]];
|
|
47
|
+
return out;
|
|
48
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
16
|
+
get: () => from[key],
|
|
17
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
23
|
+
value: true
|
|
24
|
+
}), mod);
|
|
25
|
+
var base58_exports = {};
|
|
26
|
+
__export(base58_exports, {
|
|
27
|
+
bytesToBase58: () => bytesToBase58
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(base58_exports);
|
|
30
|
+
var ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
|
|
31
|
+
function bytesToBase58(bytes) {
|
|
32
|
+
var zeros = 0;
|
|
33
|
+
while (zeros < bytes.length && bytes[zeros] === 0) zeros += 1;
|
|
34
|
+
var digits = [];
|
|
35
|
+
for (var i = zeros; i < bytes.length; i += 1) {
|
|
36
|
+
var carry = bytes[i];
|
|
37
|
+
for (var j = 0; j < digits.length; j += 1) {
|
|
38
|
+
carry += digits[j] << 8;
|
|
39
|
+
digits[j] = carry % 58;
|
|
40
|
+
carry = Math.floor(carry / 58);
|
|
41
|
+
}
|
|
42
|
+
while (carry > 0) {
|
|
43
|
+
digits.push(carry % 58);
|
|
44
|
+
carry = Math.floor(carry / 58);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
var out = "1".repeat(zeros);
|
|
48
|
+
for (var i1 = digits.length - 1; i1 >= 0; i1 -= 1) out += ALPHABET[digits[i1]];
|
|
49
|
+
return out;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=base58.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","base58_exports","__export","bytesToBase58","module","exports","ALPHABET","bytes","zeros","length","digits","i","carry","j","Math","floor","push","out","repeat","i1"],"sources":["../../../src/bridge/base58.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,cAAA;AAAAC,QAAA,CAAAD,cAAA;EAAAE,aAAA,EAAAA,CAAA,KAAAA;AAAA;AAGAC,MAAM,CAAAC,OAAA,GAAWT,YAAA,CAAAK,cAAA;AAEV,IAAAK,QAAS,+DAAyC;AACvD,SAAIH,aAAQA,CAAAI,KAAA;EACZ,IAAAC,KAAO;EACP,OAAMA,KAAA,GAAmBD,KAAC,CAAAE,MAAA,IAAAF,KAAA,CAAAC,KAAA,SAAAA,KAAA;EAC1B,IAAAE,MAAS,GAAI;EACX,SAAIC,CAAA,GAAAH,KAAQ,EAAMG,CAAC,GAAAJ,KAAA,CAAAE,MAAA,EAAAE,CAAA;IACnB,IAAAC,KAAS,GAAAL,KAAO,CAAAI,CAAA,CAAI;IAClB,SAAAE,CAAA,GAAS,GAAAA,CAAA,GAAQH,MAAK,CAAAD,MAAA,EAAAI,CAAA;MACtBD,KAAA,IAAQF,MAAI,CAAAG,CAAA,KAAQ;MACpBH,MAAA,CAAAG,CAAQ,IAAAD,KAAK,GAAM;MACrBA,KAAA,GAAAE,IAAA,CAAAC,KAAA,CAAAH,KAAA;IACA;IACE,OAAAA,KAAO,GAAK;MACZF,MAAA,CAAAM,IAAQ,CAAAJ,KAAK,GAAM;MACrBA,KAAA,GAAAE,IAAA,CAAAC,KAAA,CAAAH,KAAA;IACF;EACA;EACA,IAAAK,GAAA,GAAS,GAAI,CAAAC,MAAO,CAAAV,KAAA;EACpB,SAAOW,EAAA,GAAAT,MAAA,CAAAD,MAAA,MAAAU,EAAA,OAAAA,EAAA,OAAAF,GAAA,IAAAX,QAAA,CAAAI,MAAA,CAAAS,EAAA;EACT,OAAAF,GAAA","ignoreList":[]}
|
package/dist/cjs/bridge/core.cjs
CHANGED
|
@@ -28,6 +28,7 @@ __export(core_exports, {
|
|
|
28
28
|
BridgeHost: () => import_BridgeHost.BridgeHost,
|
|
29
29
|
DEV_HOSTNAMES: () => import_hosting.DEV_HOSTNAMES,
|
|
30
30
|
GpgBridge: () => import_GpgBridge.GpgBridge,
|
|
31
|
+
NativeBridgeErrorCode: () => import_nativeHost.NativeBridgeErrorCode,
|
|
31
32
|
SolanaBridge: () => import_SolanaBridge.SolanaBridge,
|
|
32
33
|
SuiBridge: () => import_SuiBridge.SuiBridge,
|
|
33
34
|
WALLET_SCHEMES: () => import_deepLink.WALLET_SCHEMES,
|
|
@@ -45,7 +46,9 @@ __export(core_exports, {
|
|
|
45
46
|
parseOrigin: () => import_hosting.parseOrigin,
|
|
46
47
|
parseWalletReturn: () => import_deepLink.parseWalletReturn,
|
|
47
48
|
queryParams: () => import_hosting.queryParams,
|
|
48
|
-
shouldOpenExternally: () => import_deepLink.shouldOpenExternally
|
|
49
|
+
shouldOpenExternally: () => import_deepLink.shouldOpenExternally,
|
|
50
|
+
solanaBridgeDriver: () => import_drivers.solanaBridgeDriver,
|
|
51
|
+
suiBridgeDriver: () => import_drivers.suiBridgeDriver
|
|
49
52
|
});
|
|
50
53
|
module.exports = __toCommonJS(core_exports);
|
|
51
54
|
__reExport(core_exports, require("./protocol.cjs"), module.exports);
|
|
@@ -59,6 +62,7 @@ var import_base64 = require("./base64.cjs");
|
|
|
59
62
|
var import_SolanaBridge = require("./SolanaBridge.cjs");
|
|
60
63
|
var import_SuiBridge = require("./SuiBridge.cjs");
|
|
61
64
|
var import_GpgBridge = require("./GpgBridge.cjs");
|
|
65
|
+
var import_drivers = require("./drivers.cjs");
|
|
62
66
|
var import_AuthBridge = require("./AuthBridge.cjs");
|
|
63
67
|
var import_hosting = require("./hosting.cjs");
|
|
64
68
|
var import_nativeHost = require("./nativeHost.cjs");
|
|
@@ -30,6 +30,7 @@ __export(core_exports, {
|
|
|
30
30
|
BridgeHost: () => import_BridgeHost.BridgeHost,
|
|
31
31
|
DEV_HOSTNAMES: () => import_hosting.DEV_HOSTNAMES,
|
|
32
32
|
GpgBridge: () => import_GpgBridge.GpgBridge,
|
|
33
|
+
NativeBridgeErrorCode: () => import_nativeHost.NativeBridgeErrorCode,
|
|
33
34
|
SolanaBridge: () => import_SolanaBridge.SolanaBridge,
|
|
34
35
|
SuiBridge: () => import_SuiBridge.SuiBridge,
|
|
35
36
|
WALLET_SCHEMES: () => import_deepLink.WALLET_SCHEMES,
|
|
@@ -47,7 +48,9 @@ __export(core_exports, {
|
|
|
47
48
|
parseOrigin: () => import_hosting.parseOrigin,
|
|
48
49
|
parseWalletReturn: () => import_deepLink.parseWalletReturn,
|
|
49
50
|
queryParams: () => import_hosting.queryParams,
|
|
50
|
-
shouldOpenExternally: () => import_deepLink.shouldOpenExternally
|
|
51
|
+
shouldOpenExternally: () => import_deepLink.shouldOpenExternally,
|
|
52
|
+
solanaBridgeDriver: () => import_drivers.solanaBridgeDriver,
|
|
53
|
+
suiBridgeDriver: () => import_drivers.suiBridgeDriver
|
|
51
54
|
});
|
|
52
55
|
module.exports = __toCommonJS(core_exports);
|
|
53
56
|
__reExport(core_exports, require("./protocol.native.js"), module.exports);
|
|
@@ -61,6 +64,7 @@ var import_base64 = require("./base64.native.js");
|
|
|
61
64
|
var import_SolanaBridge = require("./SolanaBridge.native.js");
|
|
62
65
|
var import_SuiBridge = require("./SuiBridge.native.js");
|
|
63
66
|
var import_GpgBridge = require("./GpgBridge.native.js");
|
|
67
|
+
var import_drivers = require("./drivers.native.js");
|
|
64
68
|
var import_AuthBridge = require("./AuthBridge.native.js");
|
|
65
69
|
var import_hosting = require("./hosting.native.js");
|
|
66
70
|
var import_nativeHost = require("./nativeHost.native.js");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","core_exports","__export","AuthBridge","import_AuthBridge","BridgeClient","import_BridgeClient","BridgeHost","import_BridgeHost","DEV_HOSTNAMES","import_hosting","GpgBridge","import_GpgBridge","SolanaBridge","import_SolanaBridge","SuiBridge","import_SuiBridge","WALLET_SCHEMES","import_deepLink","WALLET_UNIVERSAL_HOSTS","base64ToBytes","import_base64","buildInjectScript","
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","core_exports","__export","AuthBridge","import_AuthBridge","BridgeClient","import_BridgeClient","BridgeHost","import_BridgeHost","DEV_HOSTNAMES","import_hosting","GpgBridge","import_GpgBridge","NativeBridgeErrorCode","import_nativeHost","SolanaBridge","import_SolanaBridge","SuiBridge","import_SuiBridge","WALLET_SCHEMES","import_deepLink","WALLET_UNIVERSAL_HOSTS","base64ToBytes","import_base64","buildInjectScript","bytesToBase64","createBridgeProvider","import_eip1193","createNativeBridge","createPostMessageTransport","import_postMessageTransport","decideNavigation","decideNewWindow","hostedPageOrigin","isHostedPageUrl","parseOrigin","parseWalletReturn","queryParams","shouldOpenExternally","solanaBridgeDriver","import_drivers","suiBridgeDriver","module","exports","__reExport","require"],"sources":["../../../src/bridge/core.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,YAAA;AAAAC,QAAA,CAAAD,YAAA;EAAAE,UAAA,EAAAA,CAAA,KAAAC,iBAAA,CAAAD,UAAA;EAAAE,YAAA,EAAAA,CAAA,KAAAC,mBAAA,CAAAD,YAAA;EAAAE,UAAA,EAAAA,CAAA,KAAAC,iBAAA,CAAAD,UAAA;EAAAE,aAAA,EAAAA,CAAA,KAAAC,cAAA,CAAAD,aAAA;EAAAE,SAAA,EAAAA,CAAA,KAAAC,gBAAA,CAAAD,SAAA;EAAAE,qBAAA,EAAAA,CAAA,KAAAC,iBAAA,CAAAD,qBAAA;EAAAE,YAAA,EAAAA,CAAA,KAAAC,mBAAA,CAAAD,YAAA;EAAAE,SAAA,EAAAA,CAAA,KAAAC,gBAAA,CAAAD,SAAA;EAAAE,cAAA,EAAAA,CAAA,KAAAC,eAAA,CAAAD,cAAA;EAAAE,sBAAA,EAAAA,CAAA,KAAAD,eAAA,CAAAC,sBAAA;EAAAC,aAAA,EAAAA,CAAA,KAAAC,aAAA,CAAAD,aAAA;EAAAE,iBAAA,EAAAA,CAAA,KAAAV,iBAAA,CAAAU,iBAAA;EAAAC,aAAA,EAAAA,CAAA,KAAAF,aAAA,CAAAE,aAAA;EAAAC,oBAAA,EAAAA,CAAA,KAAAC,cAAA,CAAAD,oBAAA;EAAAE,kBAAA,EAAAA,CAAA,KAAAd,iBAAA,CAAAc,kBAAA;EAAAC,0BAAA,EAAAA,CAAA,KAAAC,2BAAA,CAAAD,0BAAA;EAAAE,gBAAA,EAAAA,CAAA,KAAAX,eAAA,CAAAW,gBAAA;EAAAC,eAAA,EAAAA,CAAA,KAAAZ,eAAA,CAAAY,eAAA;EAAAC,gBAAA,EAAAA,CAAA,KAAAvB,cAAA,CAAAuB,gBAAA;EAAAC,eAAA,EAAAA,CAAA,KAAAxB,cAAA,CAAAwB,eAAA;EAAAC,WAAA,EAAAA,CAAA,KAAAzB,cAAA,CAAAyB,WAAA;EAAAC,iBAAA,EAAAA,CAAA,KAAAhB,eAAA,CAAAgB,iBAAA;EAAAC,WAAA,EAAAA,CAAA,KAAA3B,cAAA,CAAA2B,WAAA;EAAAC,oBAAA,EAAAA,CAAA,KAAAlB,eAAA,CAAAkB,oBAAA;EAAAC,kBAAA,EAAAA,CAAA,KAAAC,cAAA,CAAAD,kBAAA;EAAAE,eAAA,EAAAA,CAAA,KAAAD,cAAA,CAAAC;AAAA;AAEAC,MAAA,CAAAC,OAAA,GAAA/C,YAAc,CAAAK,YAAA;AACd2C,UAAA,CAAA3C,YAAA,EAAc4C,OAAA,0BAAAH,MAHd,CAAAC,OAAA;AAIAC,UAAA,CAAA3C,YAAA,EAAc4C,OAAA,2BAJdH,MAAA,CAAAC,OAAA;AAKAC,UAAA,CAAA3C,YAAA,EAAA4C,OAAA,wBAAsE,GAAAH,MAAA,CAAAC,OAAA;AACtE,IAAAb,2BAAqE,GAAAe,OAAA;AACrE,IAAAvC,mBAAA,GAAgDuC,OAAA;AAChD,IAAArC,iBAAmF,GAAAqC,OAAA;AACnF,IAAAlB,cAAA,GAA6CkB,OAAA;AAC7C,IAAAtB,aAAA,GAAAsB,OAA6B;AAC7B,IAAA7B,mBAA0B,GAAA6B,OAAA;AAC1B,IAAA3B,gBAAA,GAAkD2B,OAAA;AAClD,IAAAjC,gBAAA,GAAoFiC,OAAA;AACpF,IAAAL,cAAA,GAAAK,OAKO;AACP,IAAAzC,iBAOO,GAAAyC,OAAA;AACP,IAAAnC,cAAA,GAAAmC,OAMO;AACP,IAAA/B,iBAAA,GAQO+B,OAAA","ignoreList":[]}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all) __defProp(target, name, {
|
|
7
|
+
get: all[name],
|
|
8
|
+
enumerable: true
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
14
|
+
get: () => from[key],
|
|
15
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
21
|
+
value: true
|
|
22
|
+
}), mod);
|
|
23
|
+
var drivers_exports = {};
|
|
24
|
+
__export(drivers_exports, {
|
|
25
|
+
solanaBridgeDriver: () => solanaBridgeDriver,
|
|
26
|
+
solanaBridgeWallet: () => solanaBridgeWallet,
|
|
27
|
+
suiBridgeDriver: () => suiBridgeDriver,
|
|
28
|
+
suiBridgeWallet: () => suiBridgeWallet
|
|
29
|
+
});
|
|
30
|
+
module.exports = __toCommonJS(drivers_exports);
|
|
31
|
+
var import_solanaMessage = require("../clients/solanaMessage.cjs");
|
|
32
|
+
var import_sui = require("../clients/sui.cjs");
|
|
33
|
+
var import_lightDriver = require("../core/lightDriver.cjs");
|
|
34
|
+
var import_base64 = require("./base64.cjs");
|
|
35
|
+
var import_base58 = require("./base58.cjs");
|
|
36
|
+
function bridgeWallet(bridge, spec, {
|
|
37
|
+
id,
|
|
38
|
+
name
|
|
39
|
+
}) {
|
|
40
|
+
const read = value => {
|
|
41
|
+
const address = value?.[spec.key];
|
|
42
|
+
return typeof address === "string" && address ? address : null;
|
|
43
|
+
};
|
|
44
|
+
const adapter = {
|
|
45
|
+
address: null,
|
|
46
|
+
async connect() {
|
|
47
|
+
const address = read(await bridge.request(spec.namespace, "connect"));
|
|
48
|
+
if (!address) throw new Error(`${name} connected no account`);
|
|
49
|
+
adapter.address = address;
|
|
50
|
+
},
|
|
51
|
+
async disconnect() {
|
|
52
|
+
adapter.address = null;
|
|
53
|
+
await bridge.request(spec.namespace, "disconnect");
|
|
54
|
+
},
|
|
55
|
+
// A page older than the account method answers it with an error, which
|
|
56
|
+
// the store reads as "cannot tell yet" and keeps the connection to restore.
|
|
57
|
+
async restore() {
|
|
58
|
+
adapter.address = read(await bridge.request(spec.namespace, "account"));
|
|
59
|
+
return adapter.address !== null;
|
|
60
|
+
},
|
|
61
|
+
subscribe(listener) {
|
|
62
|
+
let live = true;
|
|
63
|
+
let latest = 0;
|
|
64
|
+
const off = bridge.on((ns, method, params) => {
|
|
65
|
+
if (ns === spec.namespace && method === "accountChanged") {
|
|
66
|
+
latest += 1;
|
|
67
|
+
adapter.address = read(params);
|
|
68
|
+
listener();
|
|
69
|
+
} else if (ns === "sys" && method === "ready") {
|
|
70
|
+
const asked = ++latest;
|
|
71
|
+
bridge.request(spec.namespace, "account").then(answer => {
|
|
72
|
+
if (!live || asked !== latest) return;
|
|
73
|
+
adapter.address = read(answer);
|
|
74
|
+
listener();
|
|
75
|
+
},
|
|
76
|
+
// A page older than the account method: its own events have to say.
|
|
77
|
+
() => void 0);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
return () => {
|
|
81
|
+
live = false;
|
|
82
|
+
off();
|
|
83
|
+
};
|
|
84
|
+
},
|
|
85
|
+
signMessage: message => spec.sign(bridge, message)
|
|
86
|
+
};
|
|
87
|
+
return {
|
|
88
|
+
id,
|
|
89
|
+
name,
|
|
90
|
+
adapter
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
const solana = {
|
|
94
|
+
namespace: "solana",
|
|
95
|
+
key: "publicKey",
|
|
96
|
+
async sign(bridge, message) {
|
|
97
|
+
const answer = await bridge.request("solana", "signMessage", {
|
|
98
|
+
message: (0, import_base64.bytesToBase64)(new TextEncoder().encode(message))
|
|
99
|
+
});
|
|
100
|
+
return (0, import_base58.bytesToBase58)((0, import_base64.base64ToBytes)(answer.signature));
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
const sui = {
|
|
104
|
+
namespace: "sui",
|
|
105
|
+
key: "address",
|
|
106
|
+
async sign(bridge, message) {
|
|
107
|
+
const answer = await bridge.request("sui", "signMessage", {
|
|
108
|
+
message
|
|
109
|
+
});
|
|
110
|
+
return answer.signature;
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
function solanaBridgeDriver(bridge, options = {}) {
|
|
114
|
+
const chain = options.chain ?? "solana:mainnet";
|
|
115
|
+
const wallets = [solanaBridgeWallet(bridge)];
|
|
116
|
+
return (0, import_lightDriver.lightDriver)({
|
|
117
|
+
wallets: () => wallets,
|
|
118
|
+
chainId: chain,
|
|
119
|
+
client: wallet => (0, import_solanaMessage.solanaMessageClient)(wallet.adapter, chain)
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
function suiBridgeDriver(bridge) {
|
|
123
|
+
const wallets = [suiBridgeWallet(bridge)];
|
|
124
|
+
return (0, import_lightDriver.lightDriver)({
|
|
125
|
+
wallets: () => wallets,
|
|
126
|
+
chainId: "sui:mainnet",
|
|
127
|
+
client: wallet => (0, import_sui.suiClient)(wallet.adapter)
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
function solanaBridgeWallet(bridge, options = {
|
|
131
|
+
id: "webViewSolana",
|
|
132
|
+
name: "Solana Wallet"
|
|
133
|
+
}) {
|
|
134
|
+
return bridgeWallet(bridge, solana, options);
|
|
135
|
+
}
|
|
136
|
+
function suiBridgeWallet(bridge, options = {
|
|
137
|
+
id: "webViewSui",
|
|
138
|
+
name: "Sui Wallet"
|
|
139
|
+
}) {
|
|
140
|
+
return bridgeWallet(bridge, sui, options);
|
|
141
|
+
}
|