@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
|
@@ -1,23 +1,47 @@
|
|
|
1
1
|
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
|
2
2
|
import { ConnectKitProvider, SIWEProvider, type SIWEConfig, getDefaultConfig } from "../connectkit";
|
|
3
|
-
import {
|
|
4
|
-
import type { PropsWithChildren } from "react";
|
|
3
|
+
import type { ComponentProps, PropsWithChildren } from "react";
|
|
5
4
|
import { useMemo } from "react";
|
|
6
|
-
import { WagmiProvider, createConfig
|
|
5
|
+
import { WagmiProvider, createConfig } from "wagmi";
|
|
6
|
+
import type { WalletFamily } from "../core/family";
|
|
7
|
+
import { SignInProvider, type SignInConfig } from "../core/signIn";
|
|
8
|
+
import { walletFamilies } from "../families";
|
|
9
|
+
import { wagmiHosting, type HostedEcosystem } from "../families/host";
|
|
10
|
+
import { WagmiConnectionHost } from "../wagmi/host";
|
|
7
11
|
import { createMockConnector } from "./mockConnector";
|
|
8
|
-
import {
|
|
12
|
+
import { familiesKey, withFamilyProviders } from "./families";
|
|
13
|
+
import { type Web3Config, Web3ConfigContext, chainTransports, resolveChains } from "./walletConfig";
|
|
9
14
|
|
|
10
|
-
export interface
|
|
15
|
+
export interface Web3ProviderProps extends PropsWithChildren {
|
|
11
16
|
config: Web3Config;
|
|
17
|
+
/**
|
|
18
|
+
* The wallet families, in the connect list's order:
|
|
19
|
+
* `[eth(), sol(), gpg()]`. Defaults to the ones `config.families` names, or
|
|
20
|
+
* every built-in family; pass one or the other, not both. Read once per set
|
|
21
|
+
* of families, so an inline array is fine.
|
|
22
|
+
*/
|
|
23
|
+
families?: readonly WalletFamily[];
|
|
12
24
|
queryClient?: QueryClient;
|
|
25
|
+
/**
|
|
26
|
+
* Mounts a SignInProvider on the connection store, e.g.
|
|
27
|
+
* `kc.signInConfig(grant.onSign)` for `useDirectLogin`: the connected
|
|
28
|
+
* wallet, of whichever family, signs its own message.
|
|
29
|
+
*/
|
|
30
|
+
signIn?: SignInConfig;
|
|
13
31
|
/**
|
|
14
32
|
* Mounts a SIWEProvider around the ConnectKit modal, e.g.
|
|
15
33
|
* `kc.siweConfig(grant.onSign)` for `useDirectLogin`. It has to sit outside
|
|
16
34
|
* ConnectKitProvider, so a child cannot add its own.
|
|
35
|
+
* @deprecated SIWEProvider goes in 8.0.0; pass `signIn={kc.signInConfig(onSign)}`.
|
|
17
36
|
*/
|
|
18
|
-
siwe?: SIWEConfig
|
|
37
|
+
siwe?: SIWEConfig & Pick<ComponentProps<typeof SIWEProvider>, "onSignIn" | "onSignOut">;
|
|
38
|
+
/** Props for the ConnectKitProvider it mounts, e.g. `{ options: { disableSiweRedirect: true } }`. */
|
|
39
|
+
connectKit?: Omit<ComponentProps<typeof ConnectKitProvider>, "children">;
|
|
19
40
|
}
|
|
20
41
|
|
|
42
|
+
/** Web3Provider's props under the provider's first name. */
|
|
43
|
+
export type WalletProviderProps = Web3ProviderProps;
|
|
44
|
+
|
|
21
45
|
const defaultQueryClient = new QueryClient();
|
|
22
46
|
|
|
23
47
|
// Build the wagmi config once per process. useMemo only dedupes within a single
|
|
@@ -27,24 +51,55 @@ const defaultQueryClient = new QueryClient();
|
|
|
27
51
|
type WagmiConfigResult = ReturnType<typeof createConfig>;
|
|
28
52
|
const wagmiConfigCache = new Map<string, WagmiConfigResult>();
|
|
29
53
|
|
|
30
|
-
|
|
54
|
+
const walletEcosystems = ["solana", "sui", "bitcoin"] as const;
|
|
55
|
+
|
|
56
|
+
function hosts(families: readonly WalletFamily[], ecosystem: HostedEcosystem) {
|
|
57
|
+
return families.some((family) => wagmiHosting(family)?.ecosystem === ecosystem);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* The wallet families an app registers, with the connection store, the
|
|
62
|
+
* ConnectKit modal and wagmi underneath: `<Web3Provider config={...}
|
|
63
|
+
* families={[eth(), sol(), gpg()]}>`. `useConnection()` reports the one
|
|
64
|
+
* active connection whichever family holds it, and the modal lists the
|
|
65
|
+
* wallets of the families registered. Until the modal reads the connection
|
|
66
|
+
* store (MPO-385 step 6), eth, sol, sui and btc connect through the modal's
|
|
67
|
+
* wagmi config, so both see the same connection.
|
|
68
|
+
*/
|
|
69
|
+
export function Web3Provider({
|
|
31
70
|
children,
|
|
32
71
|
config: web3Config,
|
|
72
|
+
families,
|
|
33
73
|
queryClient = defaultQueryClient,
|
|
74
|
+
signIn,
|
|
34
75
|
siwe,
|
|
35
|
-
|
|
76
|
+
connectKit,
|
|
77
|
+
}: Web3ProviderProps) {
|
|
36
78
|
const {
|
|
37
79
|
walletConnectProjectId,
|
|
38
80
|
appName,
|
|
39
81
|
appDescription = "Connect your wallet",
|
|
40
|
-
|
|
82
|
+
// Not @multiplatform.one/platform's isWeb: that package reads process.env
|
|
83
|
+
// at load, which a plain web bundle lacks (MPO-418).
|
|
84
|
+
appUrl = typeof window !== "undefined" ? (window.location?.origin ?? "") : "",
|
|
41
85
|
appIcon,
|
|
42
86
|
chains,
|
|
43
87
|
enableTestnets = false,
|
|
44
88
|
localnet = false,
|
|
45
89
|
localnetRpcUrl,
|
|
46
90
|
mockWallet = false,
|
|
91
|
+
families: familyNames,
|
|
47
92
|
} = web3Config;
|
|
93
|
+
if (families && familyNames) {
|
|
94
|
+
throw new Error("Web3Provider takes families or config.families, not both");
|
|
95
|
+
}
|
|
96
|
+
const namesKey = familyNames?.join(",");
|
|
97
|
+
const listedKey = families ? familiesKey(families) : `names:${namesKey ?? ""}`;
|
|
98
|
+
const listed = useMemo(
|
|
99
|
+
() => families ?? walletFamilies(familyNames),
|
|
100
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
101
|
+
[listedKey],
|
|
102
|
+
);
|
|
48
103
|
|
|
49
104
|
// Testnet filter + optional localnet dev chain (prepended -> default chain).
|
|
50
105
|
const activeChains = useMemo(
|
|
@@ -54,6 +109,12 @@ export function WalletProvider({
|
|
|
54
109
|
);
|
|
55
110
|
|
|
56
111
|
const wagmiConfig = useMemo(() => {
|
|
112
|
+
const provided = listed
|
|
113
|
+
.map((family) => wagmiHosting(family))
|
|
114
|
+
.find((hosting) => hosting?.ecosystem === "evm")?.config;
|
|
115
|
+
if (provided) return provided;
|
|
116
|
+
const evm = hosts(listed, "evm");
|
|
117
|
+
const ecosystems = walletEcosystems.filter((ecosystem) => hosts(listed, ecosystem));
|
|
57
118
|
const chainIds = activeChains.map((chain) => chain.id).join(",");
|
|
58
119
|
const cacheKey = JSON.stringify({
|
|
59
120
|
appName,
|
|
@@ -63,11 +124,13 @@ export function WalletProvider({
|
|
|
63
124
|
chainIds,
|
|
64
125
|
localnetRpcUrl,
|
|
65
126
|
mockWallet,
|
|
127
|
+
evm,
|
|
128
|
+
ecosystems,
|
|
66
129
|
});
|
|
67
130
|
const cached = wagmiConfigCache.get(cacheKey);
|
|
68
131
|
if (cached) return cached;
|
|
69
132
|
|
|
70
|
-
const transports =
|
|
133
|
+
const transports = chainTransports(activeChains);
|
|
71
134
|
|
|
72
135
|
const defaultConfig = getDefaultConfig({
|
|
73
136
|
appName,
|
|
@@ -77,6 +140,8 @@ export function WalletProvider({
|
|
|
77
140
|
walletConnectProjectId,
|
|
78
141
|
chains: activeChains,
|
|
79
142
|
transports,
|
|
143
|
+
enableWallet: ecosystems,
|
|
144
|
+
...(evm ? {} : { connectors: [], multiInjectedProviderDiscovery: false }),
|
|
80
145
|
});
|
|
81
146
|
|
|
82
147
|
// E2E only: make the deterministic mock the first connector so headless
|
|
@@ -88,25 +153,31 @@ export function WalletProvider({
|
|
|
88
153
|
const created = createConfig(defaultConfig);
|
|
89
154
|
wagmiConfigCache.set(cacheKey, created);
|
|
90
155
|
return created;
|
|
91
|
-
|
|
156
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
157
|
+
}, [appName, appDescription, appUrl, appIcon, activeChains, mockWallet, listed]);
|
|
158
|
+
|
|
159
|
+
const modal = <ConnectKitProvider {...connectKit}>{children}</ConnectKitProvider>;
|
|
160
|
+
const signed = signIn ? <SignInProvider {...signIn}>{modal}</SignInProvider> : modal;
|
|
92
161
|
|
|
93
162
|
return (
|
|
94
163
|
<Web3ConfigContext.Provider value={web3Config}>
|
|
95
164
|
<WagmiProvider config={wagmiConfig}>
|
|
96
165
|
<QueryClientProvider client={queryClient}>
|
|
97
|
-
{
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
)}
|
|
166
|
+
<WagmiConnectionHost families={listed}>
|
|
167
|
+
{withFamilyProviders(
|
|
168
|
+
listed,
|
|
169
|
+
siwe ? <SIWEProvider {...siwe}>{signed}</SIWEProvider> : signed,
|
|
170
|
+
)}
|
|
171
|
+
</WagmiConnectionHost>
|
|
104
172
|
</QueryClientProvider>
|
|
105
173
|
</WagmiProvider>
|
|
106
174
|
</Web3ConfigContext.Provider>
|
|
107
175
|
);
|
|
108
176
|
}
|
|
109
177
|
|
|
178
|
+
/** Web3Provider under its first name. */
|
|
179
|
+
export const WalletProvider = Web3Provider;
|
|
180
|
+
|
|
110
181
|
export { useWalletBridge, type WalletBridgeContextValue } from "./walletBridge";
|
|
111
182
|
export { defaultChains } from "./walletConfig";
|
|
112
|
-
export { useWeb3Config, type Web3Config } from "./walletConfig";
|
|
183
|
+
export { useWeb3Config, type ConnectorFamily, type Web3Config } from "./walletConfig";
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import type { WalletFamily } from "../core/family";
|
|
3
|
+
import { wagmiHosting } from "../families/host";
|
|
4
|
+
|
|
5
|
+
const ids = new WeakMap<object, number>();
|
|
6
|
+
let next = 0;
|
|
7
|
+
const idOf = (value: object) => {
|
|
8
|
+
let id = ids.get(value);
|
|
9
|
+
if (id === undefined) {
|
|
10
|
+
id = ++next;
|
|
11
|
+
ids.set(value, id);
|
|
12
|
+
}
|
|
13
|
+
return id;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* What decides whether a provider's families changed: each family's id and,
|
|
18
|
+
* for a built-in one, how it is set up, so `families={[eth(), sol()]}`
|
|
19
|
+
* written inline keeps one connection store across renders. A family of the
|
|
20
|
+
* app's own is read once per id.
|
|
21
|
+
*/
|
|
22
|
+
export function familiesKey(families: readonly WalletFamily[]): string {
|
|
23
|
+
return families
|
|
24
|
+
.map((family) => {
|
|
25
|
+
const hosting = wagmiHosting(family);
|
|
26
|
+
if (!hosting) return `${family.id}:own`;
|
|
27
|
+
const config = hosting.config ? idOf(hosting.config) : 0;
|
|
28
|
+
return `${family.id}:${hosting.ecosystem}:${hosting.chainId ?? ""}:${config}`;
|
|
29
|
+
})
|
|
30
|
+
.join(",");
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/** The families' own providers around the app, the first family's outermost. */
|
|
34
|
+
export function withFamilyProviders(families: readonly WalletFamily[], children: ReactNode) {
|
|
35
|
+
return families.reduceRight<ReactNode>(
|
|
36
|
+
(inner, family) => (family.Provider ? <family.Provider>{inner}</family.Provider> : inner),
|
|
37
|
+
children,
|
|
38
|
+
);
|
|
39
|
+
}
|
package/src/providers/index.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
export {
|
|
2
2
|
WalletProvider,
|
|
3
|
+
Web3Provider,
|
|
3
4
|
useWeb3Config,
|
|
4
5
|
defaultChains,
|
|
5
6
|
useWalletBridge,
|
|
6
7
|
type WalletBridgeContextValue,
|
|
8
|
+
type ConnectorFamily,
|
|
7
9
|
type WalletProviderProps,
|
|
8
10
|
type Web3Config,
|
|
11
|
+
type Web3ProviderProps,
|
|
9
12
|
} from "./WalletProvider";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { describe, expect, it } from "vitest";
|
|
2
2
|
import { hardhat, mainnet, sepolia } from "wagmi/chains";
|
|
3
|
-
import { defaultChains, resolveChains, type Web3Config } from "./walletConfig";
|
|
3
|
+
import { chainTransports, defaultChains, resolveChains, type Web3Config } from "./walletConfig";
|
|
4
4
|
|
|
5
5
|
const base: Web3Config = { appName: "test" };
|
|
6
6
|
|
|
@@ -40,3 +40,21 @@ describe("resolveChains", () => {
|
|
|
40
40
|
expect(resolveChains(base).map((c) => c.id)).not.toContain(hardhat.id);
|
|
41
41
|
});
|
|
42
42
|
});
|
|
43
|
+
|
|
44
|
+
describe("chainTransports", () => {
|
|
45
|
+
it("gives every chain an http transport on its default RPC, localnet included", () => {
|
|
46
|
+
const chains = resolveChains({
|
|
47
|
+
...base,
|
|
48
|
+
localnet: true,
|
|
49
|
+
localnetRpcUrl: "http://10.0.2.2:8545",
|
|
50
|
+
});
|
|
51
|
+
const transports = chainTransports(chains);
|
|
52
|
+
expect(Object.keys(transports).map(Number).sort()).toEqual(chains.map((c) => c.id).sort());
|
|
53
|
+
for (const chain of chains) {
|
|
54
|
+
const transport = transports[chain.id]({ chain });
|
|
55
|
+
expect(transport.config.type).toBe("http");
|
|
56
|
+
expect(transport.value?.url).toBe(chain.rpcUrls.default.http[0]);
|
|
57
|
+
}
|
|
58
|
+
expect(transports[hardhat.id]({ chain: chains[0] }).value?.url).toBe("http://10.0.2.2:8545");
|
|
59
|
+
});
|
|
60
|
+
});
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import type { Ecosystem } from "@multiplatform.one/connectkit";
|
|
1
2
|
import { createContext, useContext } from "react";
|
|
2
|
-
import type
|
|
3
|
+
import { http, type Chain, type Transport } from "viem";
|
|
3
4
|
import { arbitrum, base, hardhat, mainnet, optimism, polygon, sepolia } from "wagmi/chains";
|
|
4
5
|
import type { AuthKeycloakConfig, AuthOnboardingConfig } from "../bridge/authTypes";
|
|
6
|
+
import { toWalletMessageFamily, type SignerFamily } from "../message/buildWalletMessage";
|
|
5
7
|
|
|
6
8
|
/**
|
|
7
9
|
* Shared config seam for both platform variants of WalletProvider. Keeping the
|
|
@@ -18,6 +20,9 @@ export const defaultChains: readonly [Chain, ...Chain[]] = [
|
|
|
18
20
|
sepolia,
|
|
19
21
|
];
|
|
20
22
|
|
|
23
|
+
/** A family the connect modal can list: `eth` (or `evm`), `sol` (`solana`), `sui`, `btc` (`bitcoin`). */
|
|
24
|
+
export type ConnectorFamily = Exclude<SignerFamily, "gpg">;
|
|
25
|
+
|
|
21
26
|
export interface Web3Config {
|
|
22
27
|
/** @deprecated Ignored: no connector needs a project id. Removed in the next major. */
|
|
23
28
|
walletConnectProjectId?: string;
|
|
@@ -38,6 +43,12 @@ export interface Web3Config {
|
|
|
38
43
|
* http://10.0.2.2:8545 on Android).
|
|
39
44
|
*/
|
|
40
45
|
localnetRpcUrl?: string;
|
|
46
|
+
/**
|
|
47
|
+
* Web: the wallet families the connect modal lists, e.g. `["eth"]` on a page
|
|
48
|
+
* that can only use an EVM wallet. Defaults to every family, which lists the
|
|
49
|
+
* EVM wallets and any Solana, Sui or Bitcoin wallet found on the page.
|
|
50
|
+
*/
|
|
51
|
+
families?: readonly ConnectorFamily[];
|
|
41
52
|
/** Solana JSON-RPC endpoint (native bridge + web). */
|
|
42
53
|
solanaRpcUrl?: string;
|
|
43
54
|
/** Sui JSON-RPC endpoint (native bridge + web). */
|
|
@@ -61,13 +72,19 @@ export interface Web3Config {
|
|
|
61
72
|
auth?: { keycloak?: AuthKeycloakConfig; onboarding?: AuthOnboardingConfig };
|
|
62
73
|
}
|
|
63
74
|
|
|
75
|
+
/** The part of a Web3Config that picks the EVM chains and where they are read. */
|
|
76
|
+
export type Web3ChainConfig = Pick<
|
|
77
|
+
Web3Config,
|
|
78
|
+
"chains" | "enableTestnets" | "localnet" | "localnetRpcUrl"
|
|
79
|
+
>;
|
|
80
|
+
|
|
64
81
|
/**
|
|
65
82
|
* Resolve the active chain list for a Web3Config: apply the testnet filter,
|
|
66
83
|
* then (when `localnet` is on) prepend the hardhat dev chain so it becomes
|
|
67
84
|
* wagmi's default chain. Shared by the web and native WalletProviders so both
|
|
68
85
|
* platforms point at the same networks.
|
|
69
86
|
*/
|
|
70
|
-
export function resolveChains(config:
|
|
87
|
+
export function resolveChains(config: Web3ChainConfig): readonly [Chain, ...Chain[]] {
|
|
71
88
|
const {
|
|
72
89
|
chains = defaultChains,
|
|
73
90
|
enableTestnets = false,
|
|
@@ -85,6 +102,67 @@ export function resolveChains(config: Web3Config): readonly [Chain, ...Chain[]]
|
|
|
85
102
|
return active as unknown as readonly [Chain, ...Chain[]];
|
|
86
103
|
}
|
|
87
104
|
|
|
105
|
+
/**
|
|
106
|
+
* The transport each chain is read over: http on the chain's default RPC,
|
|
107
|
+
* which resolveChains points at localnetRpcUrl for the dev chain. The
|
|
108
|
+
* WalletProviders and evmReadClients share it, so reads before a wallet
|
|
109
|
+
* connects go where the wallet side's do.
|
|
110
|
+
*/
|
|
111
|
+
export function chainTransports(chains: readonly Chain[]): Record<number, Transport> {
|
|
112
|
+
return Object.fromEntries(chains.map((chain) => [chain.id, http()]));
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
type WalletEcosystem = Exclude<Ecosystem, "evm">;
|
|
116
|
+
|
|
117
|
+
const walletEcosystems: [family: string, ecosystem: WalletEcosystem][] = [
|
|
118
|
+
["sol", "solana"],
|
|
119
|
+
["sui", "sui"],
|
|
120
|
+
["btc", "bitcoin"],
|
|
121
|
+
];
|
|
122
|
+
|
|
123
|
+
const connectorFamilies = new Set(["eth", "sol", "sui", "btc"]);
|
|
124
|
+
|
|
125
|
+
function shortFamily(family: string): string | undefined {
|
|
126
|
+
try {
|
|
127
|
+
const short: unknown = toWalletMessageFamily(family as SignerFamily);
|
|
128
|
+
return typeof short === "string" && connectorFamilies.has(short) ? short : undefined;
|
|
129
|
+
} catch {
|
|
130
|
+
return undefined;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Resolve `families` to whether the EVM wallets are listed and which non-EVM
|
|
136
|
+
* ecosystems are. Throws on `gpg`, which has no wallet connector, on a name it
|
|
137
|
+
* does not know, and on an empty list.
|
|
138
|
+
*/
|
|
139
|
+
export function resolveFamilies(config: Pick<Web3Config, "families">): {
|
|
140
|
+
evm: boolean;
|
|
141
|
+
ecosystems: WalletEcosystem[];
|
|
142
|
+
} {
|
|
143
|
+
const { families } = config;
|
|
144
|
+
if (!families) return { evm: true, ecosystems: ["solana", "sui", "bitcoin"] };
|
|
145
|
+
if (families.length === 0) {
|
|
146
|
+
throw new Error("Web3Config.families lists no family; leave it out to list every family");
|
|
147
|
+
}
|
|
148
|
+
const short = new Set<string>();
|
|
149
|
+
for (const family of families) {
|
|
150
|
+
const resolved = shortFamily(family);
|
|
151
|
+
if (!resolved) {
|
|
152
|
+
throw new Error(
|
|
153
|
+
`Web3Config.families: ${JSON.stringify(family)} is not a wallet family; use eth, sol, sui or btc`,
|
|
154
|
+
);
|
|
155
|
+
}
|
|
156
|
+
short.add(resolved);
|
|
157
|
+
}
|
|
158
|
+
return {
|
|
159
|
+
evm: short.has("eth"),
|
|
160
|
+
ecosystems: walletEcosystems
|
|
161
|
+
.filter(([family]) => short.has(family))
|
|
162
|
+
.map(([, ecosystem]) => ecosystem),
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
|
|
88
166
|
export const Web3ConfigContext = createContext<Web3Config | null>(null);
|
|
89
167
|
|
|
90
168
|
export function useWeb3Config(): Web3Config {
|