@web3auth/no-modal 9.6.0 → 10.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/757.noModal.cjs.js +226 -0
- package/dist/lib.cjs/adapters/auth-adapter/authAdapter.js +262 -0
- package/dist/lib.cjs/adapters/auth-adapter/config.js +17 -0
- package/dist/lib.cjs/adapters/base-evm-adapter/baseEvmAdapter.js +72 -0
- package/dist/lib.cjs/adapters/base-solana-adapter/baseSolanaAdapter.js +76 -0
- package/dist/lib.cjs/adapters/coinbase-adapter/coinbaseAdapter.js +156 -0
- package/dist/lib.cjs/adapters/default-evm-adapter/index.js +40 -0
- package/dist/lib.cjs/adapters/default-evm-adapter/injectedAdapters.js +42 -0
- package/dist/lib.cjs/adapters/default-evm-adapter/injectedEvmAdapter.js +160 -0
- package/dist/lib.cjs/adapters/default-solana-adapter/index.js +40 -0
- package/dist/lib.cjs/adapters/default-solana-adapter/injectedAdapters.js +53 -0
- package/dist/lib.cjs/adapters/default-solana-adapter/utils.js +16 -0
- package/dist/lib.cjs/adapters/default-solana-adapter/walletStandardAdapter.js +138 -0
- package/dist/lib.cjs/adapters/default-solana-adapter/walletStandardHandler.js +77 -0
- package/dist/lib.cjs/adapters/wallet-connect-v2-adapter/WalletConnectV2Provider.js +278 -0
- package/dist/lib.cjs/adapters/wallet-connect-v2-adapter/config.js +183 -0
- package/dist/lib.cjs/adapters/wallet-connect-v2-adapter/walletConnectV2Utils.js +165 -0
- package/dist/lib.cjs/adapters/wallet-connect-v2-adapter/walletConnectV2adapter.js +376 -0
- package/dist/lib.cjs/base/adapter/baseAdapter.js +117 -0
- package/dist/lib.cjs/base/adapter/constants.js +24 -0
- package/dist/lib.cjs/base/adapter/utils.js +66 -0
- package/dist/lib.cjs/base/chain/IChainInterface.js +22 -0
- package/dist/lib.cjs/base/chain/config.js +281 -0
- package/dist/lib.cjs/base/composables/index.js +5 -0
- package/dist/lib.cjs/base/errors/index.js +244 -0
- package/dist/lib.cjs/base/loglevel.js +7 -0
- package/dist/lib.cjs/base/plugin/IPlugin.js +31 -0
- package/dist/lib.cjs/base/plugin/errors.js +107 -0
- package/dist/lib.cjs/base/provider/IProvider.js +8 -0
- package/dist/lib.cjs/base/utils.js +56 -0
- package/dist/lib.cjs/base/wallet/index.js +31 -0
- package/dist/lib.cjs/index.js +200 -0
- package/dist/lib.cjs/noModal.js +98 -90
- package/dist/lib.cjs/plugins/nft-checkout-plugin/embed.js +134 -0
- package/dist/lib.cjs/plugins/nft-checkout-plugin/enums.js +24 -0
- package/dist/lib.cjs/plugins/nft-checkout-plugin/plugin.js +71 -0
- package/dist/lib.cjs/plugins/nft-checkout-plugin/utils.js +18 -0
- package/dist/lib.cjs/plugins/wallet-services-plugin/plugin.js +285 -0
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +164 -0
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/BiconomySmartAccount.js +29 -0
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/KernelSmartAccount.js +22 -0
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/NexusSmartAccount.js +30 -0
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/SafeSmartAccount.js +30 -0
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/TrustSmartAccount.js +29 -0
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/constants.js +11 -0
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/utils.js +134 -0
- package/dist/lib.cjs/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +174 -0
- package/dist/lib.cjs/providers/base-provider/CommonJRPCProvider.js +79 -0
- package/dist/lib.cjs/providers/base-provider/baseProvider.js +127 -0
- package/dist/lib.cjs/providers/base-provider/commonPrivateKeyProvider.js +89 -0
- package/dist/lib.cjs/providers/base-provider/jrpcClient.js +41 -0
- package/dist/lib.cjs/providers/base-provider/utils.js +12 -0
- package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +199 -0
- package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +165 -0
- package/dist/lib.cjs/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +22 -0
- package/dist/lib.cjs/providers/ethereum-provider/providers/converter.js +89 -0
- package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/EthereumPrivateKeyProvider.js +185 -0
- package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.js +27 -0
- package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +380 -0
- package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +10 -0
- package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +94 -0
- package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/ethPrivatekeyUtils.js +106 -0
- package/dist/lib.cjs/providers/ethereum-provider/providers/utils.js +29 -0
- package/dist/lib.cjs/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +75 -0
- package/dist/lib.cjs/providers/ethereum-provider/rpc/jrpcClient.js +41 -0
- package/dist/lib.cjs/providers/ethereum-provider/rpc/walletMidddleware.js +179 -0
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +51 -0
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +47 -0
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/injectedProviderProxy.js +12 -0
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/torus/providerHandlers.js +75 -0
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/torus/torusInjectedProvider.js +109 -0
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +12 -0
- package/dist/lib.cjs/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.js +180 -0
- package/dist/lib.cjs/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.js +103 -0
- package/dist/lib.cjs/providers/solana-provider/rpc/JrpcClient.js +47 -0
- package/dist/lib.cjs/providers/solana-provider/rpc/solanaRpcMiddlewares.js +97 -0
- package/dist/lib.cjs/providers/solana-provider/solanaWallet.js +62 -0
- package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +158 -0
- package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.js +89 -0
- package/dist/lib.cjs/providers/xrpl-provider/rpc/JrpcClient.js +48 -0
- package/dist/lib.cjs/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +73 -0
- package/dist/lib.cjs/react/index.js +16 -0
- package/dist/lib.cjs/react/no-modal/Web3AuthInnerContext.js +216 -0
- package/dist/lib.cjs/react/no-modal/Web3AuthProvider.js +15 -0
- package/dist/lib.cjs/react/no-modal/hooks/useWeb3Auth.js +15 -0
- package/dist/lib.cjs/react/wallet-services-plugin/WalletServicesContext.js +86 -0
- package/dist/lib.cjs/react/wallet-services-plugin/WalletServicesProvider.js +16 -0
- package/dist/lib.cjs/react/wallet-services-plugin/hooks/useWalletServicesPlugin.js +15 -0
- package/dist/lib.cjs/vue/index.js +15 -0
- package/dist/lib.cjs/vue/no-modal/Web3AuthProvider.js +222 -0
- package/dist/lib.cjs/vue/no-modal/composables/useWeb3Auth.js +13 -0
- package/dist/lib.cjs/vue/wallet-services-plugin/WalletServicesProvider.js +86 -0
- package/dist/lib.cjs/vue/wallet-services-plugin/composables/useWalletServicesPlugin.js +13 -0
- package/dist/lib.cjs/vue/wallet-services-plugin/context.js +5 -0
- package/dist/lib.esm/adapters/auth-adapter/authAdapter.js +260 -0
- package/dist/lib.esm/adapters/auth-adapter/config.js +15 -0
- package/dist/lib.esm/adapters/base-evm-adapter/baseEvmAdapter.js +70 -0
- package/dist/lib.esm/adapters/base-solana-adapter/baseSolanaAdapter.js +74 -0
- package/dist/lib.esm/adapters/coinbase-adapter/coinbaseAdapter.js +154 -0
- package/dist/lib.esm/adapters/default-evm-adapter/index.js +37 -0
- package/dist/lib.esm/adapters/default-evm-adapter/injectedAdapters.js +40 -0
- package/dist/lib.esm/adapters/default-evm-adapter/injectedEvmAdapter.js +158 -0
- package/dist/lib.esm/adapters/default-solana-adapter/index.js +37 -0
- package/dist/lib.esm/adapters/default-solana-adapter/injectedAdapters.js +51 -0
- package/dist/lib.esm/adapters/default-solana-adapter/utils.js +14 -0
- package/dist/lib.esm/adapters/default-solana-adapter/walletStandardAdapter.js +136 -0
- package/dist/lib.esm/adapters/default-solana-adapter/walletStandardHandler.js +75 -0
- package/dist/lib.esm/adapters/wallet-connect-v2-adapter/WalletConnectV2Provider.js +276 -0
- package/dist/lib.esm/adapters/wallet-connect-v2-adapter/config.js +172 -0
- package/dist/lib.esm/adapters/wallet-connect-v2-adapter/walletConnectV2Utils.js +158 -0
- package/dist/lib.esm/adapters/wallet-connect-v2-adapter/walletConnectV2adapter.js +374 -0
- package/dist/lib.esm/base/adapter/baseAdapter.js +115 -0
- package/dist/lib.esm/base/adapter/constants.js +20 -0
- package/dist/lib.esm/base/adapter/utils.js +60 -0
- package/dist/lib.esm/base/chain/IChainInterface.js +19 -0
- package/dist/lib.esm/base/chain/config.js +276 -0
- package/dist/lib.esm/base/composables/index.js +3 -0
- package/dist/lib.esm/base/errors/index.js +237 -0
- package/dist/lib.esm/base/loglevel.js +5 -0
- package/dist/lib.esm/base/plugin/IPlugin.js +24 -0
- package/dist/lib.esm/base/plugin/errors.js +104 -0
- package/dist/lib.esm/base/provider/IProvider.js +6 -0
- package/dist/lib.esm/base/utils.js +46 -0
- package/dist/lib.esm/base/wallet/index.js +25 -0
- package/dist/lib.esm/index.js +58 -0
- package/dist/lib.esm/noModal.js +12 -4
- package/dist/lib.esm/plugins/nft-checkout-plugin/embed.js +132 -0
- package/dist/lib.esm/plugins/nft-checkout-plugin/enums.js +20 -0
- package/dist/lib.esm/plugins/nft-checkout-plugin/plugin.js +69 -0
- package/dist/lib.esm/plugins/nft-checkout-plugin/utils.js +15 -0
- package/dist/lib.esm/plugins/wallet-services-plugin/plugin.js +276 -0
- package/dist/lib.esm/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +162 -0
- package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/BiconomySmartAccount.js +27 -0
- package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/KernelSmartAccount.js +20 -0
- package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/NexusSmartAccount.js +28 -0
- package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/SafeSmartAccount.js +28 -0
- package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/TrustSmartAccount.js +27 -0
- package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/constants.js +9 -0
- package/dist/lib.esm/providers/account-abstraction-provider/providers/utils.js +132 -0
- package/dist/lib.esm/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +171 -0
- package/dist/lib.esm/providers/base-provider/CommonJRPCProvider.js +77 -0
- package/dist/lib.esm/providers/base-provider/baseProvider.js +125 -0
- package/dist/lib.esm/providers/base-provider/commonPrivateKeyProvider.js +87 -0
- package/dist/lib.esm/providers/base-provider/jrpcClient.js +37 -0
- package/dist/lib.esm/providers/base-provider/utils.js +6 -0
- package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +197 -0
- package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +163 -0
- package/dist/lib.esm/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +20 -0
- package/dist/lib.esm/providers/ethereum-provider/providers/converter.js +85 -0
- package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/EthereumPrivateKeyProvider.js +183 -0
- package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.js +21 -0
- package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +378 -0
- package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +8 -0
- package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +88 -0
- package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/ethPrivatekeyUtils.js +104 -0
- package/dist/lib.esm/providers/ethereum-provider/providers/utils.js +24 -0
- package/dist/lib.esm/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +71 -0
- package/dist/lib.esm/providers/ethereum-provider/rpc/jrpcClient.js +37 -0
- package/dist/lib.esm/providers/ethereum-provider/rpc/walletMidddleware.js +177 -0
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +49 -0
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +45 -0
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/injectedProviderProxy.js +10 -0
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/torus/providerHandlers.js +73 -0
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/torus/torusInjectedProvider.js +107 -0
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +10 -0
- package/dist/lib.esm/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.js +178 -0
- package/dist/lib.esm/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.js +101 -0
- package/dist/lib.esm/providers/solana-provider/rpc/JrpcClient.js +42 -0
- package/dist/lib.esm/providers/solana-provider/rpc/solanaRpcMiddlewares.js +89 -0
- package/dist/lib.esm/providers/solana-provider/solanaWallet.js +60 -0
- package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +156 -0
- package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.js +87 -0
- package/dist/lib.esm/providers/xrpl-provider/rpc/JrpcClient.js +43 -0
- package/dist/lib.esm/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +67 -0
- package/dist/lib.esm/react/index.js +5 -0
- package/dist/lib.esm/react/no-modal/Web3AuthInnerContext.js +213 -0
- package/dist/lib.esm/react/no-modal/Web3AuthProvider.js +13 -0
- package/dist/lib.esm/react/no-modal/hooks/useWeb3Auth.js +13 -0
- package/dist/lib.esm/react/wallet-services-plugin/WalletServicesContext.js +83 -0
- package/dist/lib.esm/react/wallet-services-plugin/WalletServicesProvider.js +14 -0
- package/dist/lib.esm/react/wallet-services-plugin/hooks/useWalletServicesPlugin.js +13 -0
- package/dist/lib.esm/vue/index.js +5 -0
- package/dist/lib.esm/vue/no-modal/Web3AuthProvider.js +220 -0
- package/dist/lib.esm/vue/no-modal/composables/useWeb3Auth.js +11 -0
- package/dist/lib.esm/vue/wallet-services-plugin/WalletServicesProvider.js +84 -0
- package/dist/lib.esm/vue/wallet-services-plugin/composables/useWalletServicesPlugin.js +11 -0
- package/dist/lib.esm/vue/wallet-services-plugin/context.js +3 -0
- package/dist/noModal.cjs.js +26314 -364
- package/dist/noModal.umd.min.js +1 -1
- package/dist/noModal.umd.min.js.LICENSE.txt +54 -0
- package/dist/types/adapters/auth-adapter/authAdapter.d.ts +42 -0
- package/dist/types/adapters/auth-adapter/config.d.ts +2 -0
- package/dist/types/adapters/auth-adapter/index.d.ts +3 -0
- package/dist/types/adapters/auth-adapter/interface.d.ts +11 -0
- package/dist/types/adapters/base-evm-adapter/baseEvmAdapter.d.ts +7 -0
- package/dist/types/adapters/base-evm-adapter/index.d.ts +1 -0
- package/dist/types/adapters/base-solana-adapter/baseSolanaAdapter.d.ts +7 -0
- package/dist/types/adapters/base-solana-adapter/index.d.ts +1 -0
- package/dist/types/adapters/coinbase-adapter/coinbaseAdapter.d.ts +33 -0
- package/dist/types/adapters/coinbase-adapter/index.d.ts +1 -0
- package/dist/types/adapters/default-evm-adapter/index.d.ts +6 -0
- package/dist/types/adapters/default-evm-adapter/injectedAdapters.d.ts +4 -0
- package/dist/types/adapters/default-evm-adapter/injectedEvmAdapter.d.ts +30 -0
- package/dist/types/adapters/default-solana-adapter/index.d.ts +6 -0
- package/dist/types/adapters/default-solana-adapter/injectedAdapters.d.ts +4 -0
- package/dist/types/adapters/default-solana-adapter/utils.d.ts +3 -0
- package/dist/types/adapters/default-solana-adapter/walletStandardAdapter.d.ts +31 -0
- package/dist/types/adapters/default-solana-adapter/walletStandardHandler.d.ts +27 -0
- package/dist/types/adapters/index.d.ts +7 -0
- package/dist/types/adapters/wallet-connect-v2-adapter/WalletConnectV2Provider.d.ts +36 -0
- package/dist/types/adapters/wallet-connect-v2-adapter/config.d.ts +35 -0
- package/dist/types/adapters/wallet-connect-v2-adapter/index.d.ts +4 -0
- package/dist/types/adapters/wallet-connect-v2-adapter/interface.d.ts +18 -0
- package/dist/types/adapters/wallet-connect-v2-adapter/utils.d.ts +3 -0
- package/dist/types/adapters/wallet-connect-v2-adapter/walletConnectV2Utils.d.ts +23 -0
- package/dist/types/adapters/wallet-connect-v2-adapter/walletConnectV2adapter.d.ts +42 -0
- package/dist/types/base/adapter/baseAdapter.d.ts +44 -0
- package/dist/types/base/adapter/constants.d.ts +22 -0
- package/dist/types/base/adapter/index.d.ts +4 -0
- package/dist/types/base/adapter/interfaces.d.ts +143 -0
- package/dist/types/base/adapter/utils.d.ts +5 -0
- package/dist/types/base/chain/IChainInterface.d.ts +59 -0
- package/dist/types/base/chain/config.d.ts +5 -0
- package/dist/types/base/composables/index.d.ts +1 -0
- package/dist/types/base/core/IWeb3Auth.d.ts +101 -0
- package/dist/types/base/errors/index.d.ts +69 -0
- package/dist/types/base/hooks/index.d.ts +37 -0
- package/dist/types/base/index.d.ts +13 -0
- package/dist/types/base/interfaces.d.ts +44 -0
- package/dist/types/base/loglevel.d.ts +2 -0
- package/dist/types/base/plugin/IPlugin.d.ts +53 -0
- package/dist/types/base/plugin/errors.d.ts +28 -0
- package/dist/types/base/plugin/index.d.ts +2 -0
- package/dist/types/base/provider/IProvider.d.ts +16 -0
- package/dist/types/base/utils.d.ts +9 -0
- package/dist/types/base/wallet/index.d.ts +33 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/noModal.d.ts +2 -2
- package/dist/types/plugins/index.d.ts +2 -0
- package/dist/types/plugins/nft-checkout-plugin/embed.d.ts +24 -0
- package/dist/types/plugins/nft-checkout-plugin/enums.d.ts +14 -0
- package/dist/types/plugins/nft-checkout-plugin/index.d.ts +2 -0
- package/dist/types/plugins/nft-checkout-plugin/plugin.d.ts +23 -0
- package/dist/types/plugins/nft-checkout-plugin/utils.d.ts +3 -0
- package/dist/types/plugins/wallet-services-plugin/index.d.ts +1 -0
- package/dist/types/plugins/wallet-services-plugin/plugin.d.ts +51 -0
- package/dist/types/providers/account-abstraction-provider/index.d.ts +1 -0
- package/dist/types/providers/account-abstraction-provider/providers/AccountAbstractionProvider.d.ts +46 -0
- package/dist/types/providers/account-abstraction-provider/providers/index.d.ts +3 -0
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/BiconomySmartAccount.d.ts +14 -0
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/KernelSmartAccount.d.ts +13 -0
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/LightSmartAccount.d.ts +14 -0
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/NexusSmartAccount.d.ts +14 -0
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/SafeSmartAccount.d.ts +13 -0
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/SimpleSmartAccount.d.ts +13 -0
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/TrustSmartAccount.d.ts +13 -0
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/constants.d.ts +9 -0
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/index.d.ts +6 -0
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/types.d.ts +22 -0
- package/dist/types/providers/account-abstraction-provider/providers/types.d.ts +17 -0
- package/dist/types/providers/account-abstraction-provider/providers/utils.d.ts +10 -0
- package/dist/types/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.d.ts +8 -0
- package/dist/types/providers/account-abstraction-provider/rpc/index.d.ts +1 -0
- package/dist/types/providers/base-provider/CommonJRPCProvider.d.ts +20 -0
- package/dist/types/providers/base-provider/baseProvider.d.ts +39 -0
- package/dist/types/providers/base-provider/commonPrivateKeyProvider.d.ts +31 -0
- package/dist/types/providers/base-provider/index.d.ts +5 -0
- package/dist/types/providers/base-provider/interfaces.d.ts +3 -0
- package/dist/types/providers/base-provider/jrpcClient.d.ts +8 -0
- package/dist/types/providers/base-provider/utils.d.ts +2 -0
- package/dist/types/providers/ethereum-mpc-provider/index.d.ts +1 -0
- package/dist/types/providers/ethereum-mpc-provider/providers/index.d.ts +1 -0
- package/dist/types/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.d.ts +65 -0
- package/dist/types/providers/ethereum-mpc-provider/providers/signingProviders/index.d.ts +1 -0
- package/dist/types/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.d.ts +12 -0
- package/dist/types/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.d.ts +3 -0
- package/dist/types/providers/ethereum-mpc-provider/rpc/interfaces.d.ts +15 -0
- package/dist/types/providers/ethereum-provider/index.d.ts +2 -0
- package/dist/types/providers/ethereum-provider/providers/converter.d.ts +15 -0
- package/dist/types/providers/ethereum-provider/providers/index.d.ts +1 -0
- package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/EthereumPrivateKeyProvider.d.ts +30 -0
- package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.d.ts +16 -0
- package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.d.ts +28 -0
- package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/index.d.ts +4 -0
- package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.d.ts +46 -0
- package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.d.ts +12 -0
- package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/ethPrivatekeyUtils.d.ts +9 -0
- package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/index.d.ts +2 -0
- package/dist/types/providers/ethereum-provider/providers/utils.d.ts +5 -0
- package/dist/types/providers/ethereum-provider/rpc/ethRpcMiddlewares.d.ts +5 -0
- package/dist/types/providers/ethereum-provider/rpc/index.d.ts +4 -0
- package/dist/types/providers/ethereum-provider/rpc/interfaces.d.ts +65 -0
- package/dist/types/providers/ethereum-provider/rpc/jrpcClient.d.ts +8 -0
- package/dist/types/providers/ethereum-provider/rpc/walletMidddleware.d.ts +3 -0
- package/dist/types/providers/index.d.ts +6 -0
- package/dist/types/providers/solana-provider/index.d.ts +4 -0
- package/dist/types/providers/solana-provider/interface.d.ts +39 -0
- package/dist/types/providers/solana-provider/providers/index.d.ts +2 -0
- package/dist/types/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.d.ts +16 -0
- package/dist/types/providers/solana-provider/providers/injectedProviders/base/providerHandlers.d.ts +3 -0
- package/dist/types/providers/solana-provider/providers/injectedProviders/index.d.ts +3 -0
- package/dist/types/providers/solana-provider/providers/injectedProviders/injectedProviderProxy.d.ts +3 -0
- package/dist/types/providers/solana-provider/providers/injectedProviders/interface.d.ts +5 -0
- package/dist/types/providers/solana-provider/providers/injectedProviders/torus/providerHandlers.d.ts +3 -0
- package/dist/types/providers/solana-provider/providers/injectedProviders/torus/torusInjectedProvider.d.ts +18 -0
- package/dist/types/providers/solana-provider/providers/injectedProviders/walletStandardProvider.d.ts +6 -0
- package/dist/types/providers/solana-provider/providers/privateKeyProvider/index.d.ts +1 -0
- package/dist/types/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.d.ts +31 -0
- package/dist/types/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.d.ts +7 -0
- package/dist/types/providers/solana-provider/rpc/JrpcClient.d.ts +9 -0
- package/dist/types/providers/solana-provider/rpc/index.d.ts +3 -0
- package/dist/types/providers/solana-provider/rpc/interfaces.d.ts +42 -0
- package/dist/types/providers/solana-provider/rpc/solanaRpcMiddlewares.d.ts +20 -0
- package/dist/types/providers/solana-provider/solanaWallet.d.ts +14 -0
- package/dist/types/providers/xrpl-provider/index.d.ts +1 -0
- package/dist/types/providers/xrpl-provider/providers/index.d.ts +1 -0
- package/dist/types/providers/xrpl-provider/providers/privateKeyProviders/constants.d.ts +5 -0
- package/dist/types/providers/xrpl-provider/providers/privateKeyProviders/index.d.ts +3 -0
- package/dist/types/providers/xrpl-provider/providers/privateKeyProviders/interface.d.ts +2 -0
- package/dist/types/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.d.ts +26 -0
- package/dist/types/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.d.ts +7 -0
- package/dist/types/providers/xrpl-provider/rpc/JrpcClient.d.ts +9 -0
- package/dist/types/providers/xrpl-provider/rpc/xrplRpcMiddlewares.d.ts +52 -0
- package/dist/types/react/index.d.ts +2 -0
- package/dist/types/react/no-modal/Web3AuthInnerContext.d.ts +4 -0
- package/dist/types/react/no-modal/Web3AuthProvider.d.ts +3 -0
- package/dist/types/react/no-modal/hooks/index.d.ts +1 -0
- package/dist/types/react/no-modal/hooks/useWeb3Auth.d.ts +2 -0
- package/dist/types/react/no-modal/index.d.ts +3 -0
- package/dist/types/react/no-modal/interfaces.d.ts +15 -0
- package/dist/types/react/wallet-services-plugin/WalletServicesContext.d.ts +7 -0
- package/dist/types/react/wallet-services-plugin/WalletServicesProvider.d.ts +7 -0
- package/dist/types/react/wallet-services-plugin/hooks/index.d.ts +1 -0
- package/dist/types/react/wallet-services-plugin/hooks/useWalletServicesPlugin.d.ts +2 -0
- package/dist/types/react/wallet-services-plugin/index.d.ts +4 -0
- package/dist/types/react/wallet-services-plugin/interfaces.d.ts +5 -0
- package/dist/types/vue/index.d.ts +2 -0
- package/dist/types/vue/no-modal/Web3AuthProvider.d.ts +13 -0
- package/dist/types/vue/no-modal/composables/index.d.ts +1 -0
- package/dist/types/vue/no-modal/composables/useWeb3Auth.d.ts +2 -0
- package/dist/types/vue/no-modal/index.d.ts +3 -0
- package/dist/types/vue/no-modal/interfaces.d.ts +42 -0
- package/dist/types/vue/wallet-services-plugin/WalletServicesProvider.d.ts +1 -0
- package/dist/types/vue/wallet-services-plugin/composables/index.d.ts +1 -0
- package/dist/types/vue/wallet-services-plugin/composables/useWalletServicesPlugin.d.ts +2 -0
- package/dist/types/vue/wallet-services-plugin/context.d.ts +3 -0
- package/dist/types/vue/wallet-services-plugin/index.d.ts +4 -0
- package/dist/types/vue/wallet-services-plugin/interfaces.d.ts +13 -0
- package/package.json +76 -15
- package/README.md +0 -82
- package/dist/noModal.esm.js +0 -359
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
|
+
import { StandardConnect, StandardDisconnect } from '@wallet-standard/features';
|
|
3
|
+
import { ADAPTER_NAMESPACES, CHAIN_NAMESPACES } from '../../base/chain/IChainInterface.js';
|
|
4
|
+
import { WalletLoginError } from '../../base/errors/index.js';
|
|
5
|
+
import { log } from '../../base/loglevel.js';
|
|
6
|
+
import { getSolanaChainByChainConfig } from './utils.js';
|
|
7
|
+
import { WalletStandardProviderHandler } from './walletStandardHandler.js';
|
|
8
|
+
import { BaseSolanaAdapter } from '../base-solana-adapter/baseSolanaAdapter.js';
|
|
9
|
+
import { WalletStandardProvider } from '../../providers/solana-provider/providers/injectedProviders/walletStandardProvider.js';
|
|
10
|
+
import { ADAPTER_CATEGORY, ADAPTER_STATUS, ADAPTER_EVENTS } from '../../base/adapter/constants.js';
|
|
11
|
+
|
|
12
|
+
class WalletStandardAdapter extends BaseSolanaAdapter {
|
|
13
|
+
constructor(options) {
|
|
14
|
+
super(options);
|
|
15
|
+
_defineProperty(this, "name", void 0);
|
|
16
|
+
_defineProperty(this, "adapterNamespace", ADAPTER_NAMESPACES.SOLANA);
|
|
17
|
+
_defineProperty(this, "currentChainNamespace", CHAIN_NAMESPACES.SOLANA);
|
|
18
|
+
_defineProperty(this, "type", ADAPTER_CATEGORY.EXTERNAL);
|
|
19
|
+
_defineProperty(this, "isInjected", true);
|
|
20
|
+
_defineProperty(this, "status", ADAPTER_STATUS.NOT_READY);
|
|
21
|
+
_defineProperty(this, "wallet", null);
|
|
22
|
+
_defineProperty(this, "injectedProvider", null);
|
|
23
|
+
this.name = options.name;
|
|
24
|
+
// in VueJS, for some wallets e.g. Gate, Solflare, when connecting it throws error "attempted to get private field on non-instance"
|
|
25
|
+
// it seems that Vue create a Proxy object for the wallet object which causes the issue
|
|
26
|
+
// ref: https://stackoverflow.com/questions/64917686/vue-array-converted-to-proxy-object
|
|
27
|
+
this.wallet = ["gate", "solflare"].includes(this.name) ? Object.freeze(options.wallet) : options.wallet;
|
|
28
|
+
}
|
|
29
|
+
get provider() {
|
|
30
|
+
if (this.status !== ADAPTER_STATUS.NOT_READY && this.injectedProvider) {
|
|
31
|
+
return this.injectedProvider;
|
|
32
|
+
}
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
get isWalletConnected() {
|
|
36
|
+
return !!(this.status === ADAPTER_STATUS.CONNECTED && this.wallet.accounts.length > 0);
|
|
37
|
+
}
|
|
38
|
+
async init(options = {}) {
|
|
39
|
+
await super.init(options);
|
|
40
|
+
super.checkInitializationRequirements();
|
|
41
|
+
this.injectedProvider = new WalletStandardProvider({
|
|
42
|
+
config: {
|
|
43
|
+
chainConfig: this.chainConfig
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
const providerHandler = new WalletStandardProviderHandler({
|
|
47
|
+
wallet: this.wallet,
|
|
48
|
+
getCurrentChain: () => getSolanaChainByChainConfig(this.chainConfig)
|
|
49
|
+
});
|
|
50
|
+
this.injectedProvider.setupProvider(providerHandler);
|
|
51
|
+
this.status = ADAPTER_STATUS.READY;
|
|
52
|
+
this.emit(ADAPTER_EVENTS.READY, this.name);
|
|
53
|
+
try {
|
|
54
|
+
log.debug("initializing solana injected adapter");
|
|
55
|
+
if (options.autoConnect) {
|
|
56
|
+
this.rehydrated = true;
|
|
57
|
+
await this.connect();
|
|
58
|
+
}
|
|
59
|
+
} catch (error) {
|
|
60
|
+
log.error("Failed to connect with cached solana injected provider", error);
|
|
61
|
+
this.emit(ADAPTER_EVENTS.ERRORED, error);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
async connect() {
|
|
65
|
+
try {
|
|
66
|
+
super.checkConnectionRequirements();
|
|
67
|
+
this.status = ADAPTER_STATUS.CONNECTING;
|
|
68
|
+
this.emit(ADAPTER_EVENTS.CONNECTING, {
|
|
69
|
+
adapter: this.name
|
|
70
|
+
});
|
|
71
|
+
const chainName = getSolanaChainByChainConfig(this.chainConfig);
|
|
72
|
+
if (!this.wallet.chains.find(chain => chain === chainName)) throw WalletLoginError.connectionError(`Chain ${chainName} not supported. Supported chains are ${this.wallet.chains.join(", ")}`);
|
|
73
|
+
if (!this.isWalletConnected) {
|
|
74
|
+
await this.wallet.features[StandardConnect].connect();
|
|
75
|
+
}
|
|
76
|
+
if (this.wallet.accounts.length === 0) throw WalletLoginError.connectionError();
|
|
77
|
+
this.status = ADAPTER_STATUS.CONNECTED;
|
|
78
|
+
this.emit(ADAPTER_EVENTS.CONNECTED, {
|
|
79
|
+
adapter: this.name,
|
|
80
|
+
reconnected: this.rehydrated,
|
|
81
|
+
provider: this.provider
|
|
82
|
+
});
|
|
83
|
+
return this.provider;
|
|
84
|
+
} catch (error) {
|
|
85
|
+
// ready again to be connected
|
|
86
|
+
this.status = ADAPTER_STATUS.READY;
|
|
87
|
+
this.rehydrated = false;
|
|
88
|
+
this.emit(ADAPTER_EVENTS.ERRORED, error);
|
|
89
|
+
throw error;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
async disconnect(options = {
|
|
93
|
+
cleanup: false
|
|
94
|
+
}) {
|
|
95
|
+
await super.disconnectSession();
|
|
96
|
+
try {
|
|
97
|
+
var _this$wallet$features;
|
|
98
|
+
await ((_this$wallet$features = this.wallet.features[StandardDisconnect]) === null || _this$wallet$features === void 0 ? void 0 : _this$wallet$features.disconnect());
|
|
99
|
+
if (options.cleanup) {
|
|
100
|
+
this.status = ADAPTER_STATUS.NOT_READY;
|
|
101
|
+
this.injectedProvider = null;
|
|
102
|
+
} else {
|
|
103
|
+
this.status = ADAPTER_STATUS.READY;
|
|
104
|
+
}
|
|
105
|
+
await super.disconnect();
|
|
106
|
+
} catch (error) {
|
|
107
|
+
this.emit(ADAPTER_EVENTS.ERRORED, WalletLoginError.disconnectionError(error === null || error === void 0 ? void 0 : error.message));
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
async getUserInfo() {
|
|
111
|
+
if (!this.isWalletConnected) throw WalletLoginError.notConnectedError("Not connected with wallet, Please login/connect first");
|
|
112
|
+
return {};
|
|
113
|
+
}
|
|
114
|
+
async addChain(chainConfig, init = false) {
|
|
115
|
+
var _this$injectedProvide;
|
|
116
|
+
super.checkAddChainRequirements(chainConfig, init);
|
|
117
|
+
(_this$injectedProvide = this.injectedProvider) === null || _this$injectedProvide === void 0 || _this$injectedProvide.addChain(chainConfig);
|
|
118
|
+
this.addChainConfig(chainConfig);
|
|
119
|
+
}
|
|
120
|
+
async switchChain(params, init = false) {
|
|
121
|
+
var _this$injectedProvide2;
|
|
122
|
+
super.checkSwitchChainRequirements(params, init);
|
|
123
|
+
await ((_this$injectedProvide2 = this.injectedProvider) === null || _this$injectedProvide2 === void 0 ? void 0 : _this$injectedProvide2.switchChain(params));
|
|
124
|
+
this.setAdapterSettings({
|
|
125
|
+
chainConfig: this.getChainConfig(params.chainId)
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
async enableMFA() {
|
|
129
|
+
throw new Error("Method not implemented.");
|
|
130
|
+
}
|
|
131
|
+
async manageMFA() {
|
|
132
|
+
throw new Error("Method Not implemented");
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
export { WalletStandardAdapter };
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
|
+
import { SolanaSignMessage, SolanaSignTransaction, SolanaSignAndSendTransaction } from '@solana/wallet-standard-features';
|
|
3
|
+
import { PublicKey, VersionedTransaction, Transaction } from '@solana/web3.js';
|
|
4
|
+
import { SafeEventEmitter } from '@web3auth/auth';
|
|
5
|
+
import BN from 'bn.js';
|
|
6
|
+
import { WalletLoginError } from '../../base/errors/index.js';
|
|
7
|
+
|
|
8
|
+
class WalletStandardProviderHandler extends SafeEventEmitter {
|
|
9
|
+
constructor({
|
|
10
|
+
wallet,
|
|
11
|
+
getCurrentChain
|
|
12
|
+
}) {
|
|
13
|
+
super();
|
|
14
|
+
_defineProperty(this, "wallet", null);
|
|
15
|
+
_defineProperty(this, "getCurrentChain", void 0);
|
|
16
|
+
this.wallet = wallet;
|
|
17
|
+
this.getCurrentChain = getCurrentChain;
|
|
18
|
+
}
|
|
19
|
+
get currentAccount() {
|
|
20
|
+
var _this$wallet;
|
|
21
|
+
const account = (_this$wallet = this.wallet) === null || _this$wallet === void 0 ? void 0 : _this$wallet.accounts[0];
|
|
22
|
+
if (!account) throw WalletLoginError.notConnectedError();
|
|
23
|
+
return account;
|
|
24
|
+
}
|
|
25
|
+
get publicKey() {
|
|
26
|
+
return new PublicKey(this.currentAccount.publicKey);
|
|
27
|
+
}
|
|
28
|
+
async signMessage(message) {
|
|
29
|
+
const account = this.currentAccount;
|
|
30
|
+
const signature = await this.wallet.features[SolanaSignMessage].signMessage({
|
|
31
|
+
account,
|
|
32
|
+
message
|
|
33
|
+
});
|
|
34
|
+
return {
|
|
35
|
+
signature: signature[0].signature,
|
|
36
|
+
publicKey: new BN(Buffer.from(account.publicKey))
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
async signTransaction(transaction) {
|
|
40
|
+
const account = this.currentAccount;
|
|
41
|
+
const output = await this.wallet.features[SolanaSignTransaction].signTransaction({
|
|
42
|
+
account,
|
|
43
|
+
transaction: transaction.serialize({
|
|
44
|
+
requireAllSignatures: false
|
|
45
|
+
}),
|
|
46
|
+
chain: this.getCurrentChain()
|
|
47
|
+
});
|
|
48
|
+
const isVersionedTransaction = transaction.version !== undefined || transaction instanceof VersionedTransaction;
|
|
49
|
+
if (isVersionedTransaction) {
|
|
50
|
+
return VersionedTransaction.deserialize(output[0].signedTransaction);
|
|
51
|
+
}
|
|
52
|
+
return Transaction.from(output[0].signedTransaction);
|
|
53
|
+
}
|
|
54
|
+
async signAllTransactions(transactions) {
|
|
55
|
+
return Promise.all(transactions.map(transaction => this.signTransaction(transaction)));
|
|
56
|
+
}
|
|
57
|
+
async signAndSendTransaction(transaction) {
|
|
58
|
+
const account = this.currentAccount;
|
|
59
|
+
const output = await this.wallet.features[SolanaSignAndSendTransaction].signAndSendTransaction({
|
|
60
|
+
account,
|
|
61
|
+
transaction: transaction.serialize({
|
|
62
|
+
requireAllSignatures: false
|
|
63
|
+
}),
|
|
64
|
+
chain: this.getCurrentChain()
|
|
65
|
+
});
|
|
66
|
+
const [{
|
|
67
|
+
signature
|
|
68
|
+
}] = output;
|
|
69
|
+
return {
|
|
70
|
+
signature: new TextDecoder().decode(signature)
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export { WalletStandardProviderHandler };
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
import _objectSpread from '@babel/runtime/helpers/objectSpread2';
|
|
2
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
3
|
+
import { getAccountsFromNamespaces, parseAccountId } from '@walletconnect/utils';
|
|
4
|
+
import { providerErrors, JRPCEngine, providerFromEngine } from '@web3auth/auth';
|
|
5
|
+
import { getChainConfig } from '../../base/chain/config.js';
|
|
6
|
+
import { CHAIN_NAMESPACES } from '../../base/chain/IChainInterface.js';
|
|
7
|
+
import { WalletLoginError } from '../../base/errors/index.js';
|
|
8
|
+
import { log } from '../../base/loglevel.js';
|
|
9
|
+
import { switchChain, addChain, getAccounts, getEthProviderHandlers, getSolProviderHandlers } from './walletConnectV2Utils.js';
|
|
10
|
+
import { createEthMiddleware, createEthChainSwitchMiddleware } from '../../providers/ethereum-provider/rpc/ethRpcMiddlewares.js';
|
|
11
|
+
import { createEthJsonRpcClient } from '../../providers/ethereum-provider/rpc/jrpcClient.js';
|
|
12
|
+
import { createSolanaMiddleware } from '../../providers/solana-provider/rpc/solanaRpcMiddlewares.js';
|
|
13
|
+
import { createSolanaJsonRpcClient } from '../../providers/solana-provider/rpc/JrpcClient.js';
|
|
14
|
+
import { BaseProvider } from '../../providers/base-provider/baseProvider.js';
|
|
15
|
+
|
|
16
|
+
var _WalletConnectV2Provider;
|
|
17
|
+
class WalletConnectV2Provider extends BaseProvider {
|
|
18
|
+
constructor({
|
|
19
|
+
config,
|
|
20
|
+
state,
|
|
21
|
+
connector
|
|
22
|
+
}) {
|
|
23
|
+
super({
|
|
24
|
+
config: {
|
|
25
|
+
chainConfig: config.chainConfig,
|
|
26
|
+
skipLookupNetwork: !!config.skipLookupNetwork
|
|
27
|
+
},
|
|
28
|
+
state: _objectSpread(_objectSpread({}, state || {}), {}, {
|
|
29
|
+
chainId: "loading",
|
|
30
|
+
accounts: []
|
|
31
|
+
})
|
|
32
|
+
});
|
|
33
|
+
_defineProperty(this, "connector", null);
|
|
34
|
+
this.connector = connector || null;
|
|
35
|
+
}
|
|
36
|
+
async enable() {
|
|
37
|
+
if (!this.connector) throw providerErrors.custom({
|
|
38
|
+
message: "Connector is not initialized, pass wallet connect connector in constructor",
|
|
39
|
+
code: 4902
|
|
40
|
+
});
|
|
41
|
+
await this.setupProvider(this.connector);
|
|
42
|
+
return this._providerEngineProxy.request({
|
|
43
|
+
method: "eth_accounts"
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
async setupProvider(connector) {
|
|
47
|
+
this.onConnectorStateUpdate(connector);
|
|
48
|
+
await this.setupEngine(connector);
|
|
49
|
+
}
|
|
50
|
+
async switchChain({
|
|
51
|
+
chainId
|
|
52
|
+
}) {
|
|
53
|
+
if (!this.connector) throw providerErrors.custom({
|
|
54
|
+
message: "Connector is not initialized, pass wallet connect connector in constructor",
|
|
55
|
+
code: 4902
|
|
56
|
+
});
|
|
57
|
+
const currentChainConfig = this.getChainConfig(chainId);
|
|
58
|
+
const {
|
|
59
|
+
chainId: currentChainId
|
|
60
|
+
} = this.config.chainConfig;
|
|
61
|
+
const currentNumChainId = parseInt(currentChainId, 16);
|
|
62
|
+
await switchChain({
|
|
63
|
+
connector: this.connector,
|
|
64
|
+
chainId: currentNumChainId,
|
|
65
|
+
newChainId: chainId
|
|
66
|
+
});
|
|
67
|
+
this.configure({
|
|
68
|
+
chainConfig: currentChainConfig
|
|
69
|
+
});
|
|
70
|
+
await this.setupEngine(this.connector);
|
|
71
|
+
this.lookupNetwork(this.connector);
|
|
72
|
+
}
|
|
73
|
+
async addChain(chainConfig) {
|
|
74
|
+
const {
|
|
75
|
+
chainId: currentChainId
|
|
76
|
+
} = this.config.chainConfig;
|
|
77
|
+
const numChainId = parseInt(currentChainId, 16);
|
|
78
|
+
await addChain({
|
|
79
|
+
connector: this.connector,
|
|
80
|
+
chainId: numChainId,
|
|
81
|
+
chainConfig: {
|
|
82
|
+
chainId: chainConfig.chainId,
|
|
83
|
+
chainName: chainConfig.displayName,
|
|
84
|
+
nativeCurrency: {
|
|
85
|
+
name: chainConfig.tickerName,
|
|
86
|
+
symbol: chainConfig.ticker.toLocaleUpperCase(),
|
|
87
|
+
decimals: chainConfig.decimals || 18
|
|
88
|
+
},
|
|
89
|
+
rpcUrls: [chainConfig.rpcTarget],
|
|
90
|
+
blockExplorerUrls: [chainConfig.blockExplorerUrl],
|
|
91
|
+
iconUrls: [chainConfig.logo]
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
super.addChain(chainConfig);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// no need to implement this method in wallet connect v2.
|
|
98
|
+
async lookupNetwork(_) {
|
|
99
|
+
const newChainId = this.config.chainConfig.chainId;
|
|
100
|
+
this.update({
|
|
101
|
+
chainId: newChainId
|
|
102
|
+
});
|
|
103
|
+
this.emit("chainChanged", newChainId);
|
|
104
|
+
this.emit("connect", {
|
|
105
|
+
chainId: newChainId
|
|
106
|
+
});
|
|
107
|
+
return this.config.chainConfig.chainId;
|
|
108
|
+
}
|
|
109
|
+
async setupEngine(connector) {
|
|
110
|
+
if (this.config.chainConfig.chainNamespace === CHAIN_NAMESPACES.EIP155) {
|
|
111
|
+
return this.setupEthEngine(connector);
|
|
112
|
+
} else if (this.config.chainConfig.chainNamespace === CHAIN_NAMESPACES.SOLANA) {
|
|
113
|
+
return this.setupSolEngine(connector);
|
|
114
|
+
}
|
|
115
|
+
throw new Error(`Unsupported chainNamespace: ${this.config.chainConfig.chainNamespace}`);
|
|
116
|
+
}
|
|
117
|
+
async setupEthEngine(connector) {
|
|
118
|
+
const {
|
|
119
|
+
chainId
|
|
120
|
+
} = this.config.chainConfig;
|
|
121
|
+
const numChainId = parseInt(chainId, 16);
|
|
122
|
+
const providerHandlers = getEthProviderHandlers({
|
|
123
|
+
connector,
|
|
124
|
+
chainId: numChainId
|
|
125
|
+
});
|
|
126
|
+
const jrpcRes = await getAccounts(connector);
|
|
127
|
+
this.update({
|
|
128
|
+
accounts: jrpcRes || []
|
|
129
|
+
});
|
|
130
|
+
const ethMiddleware = createEthMiddleware(providerHandlers);
|
|
131
|
+
const chainSwitchMiddleware = this.getEthChainSwitchMiddleware();
|
|
132
|
+
const engine = new JRPCEngine();
|
|
133
|
+
const {
|
|
134
|
+
networkMiddleware
|
|
135
|
+
} = createEthJsonRpcClient(this.config.chainConfig);
|
|
136
|
+
engine.push(ethMiddleware);
|
|
137
|
+
engine.push(chainSwitchMiddleware);
|
|
138
|
+
engine.push(networkMiddleware);
|
|
139
|
+
const provider = providerFromEngine(engine);
|
|
140
|
+
this.updateProviderEngineProxy(provider);
|
|
141
|
+
}
|
|
142
|
+
async setupSolEngine(connector) {
|
|
143
|
+
const {
|
|
144
|
+
chainId
|
|
145
|
+
} = this.config.chainConfig;
|
|
146
|
+
const providerHandlers = getSolProviderHandlers({
|
|
147
|
+
connector,
|
|
148
|
+
chainId
|
|
149
|
+
});
|
|
150
|
+
const jrpcRes = await getAccounts(connector);
|
|
151
|
+
this.update({
|
|
152
|
+
accounts: jrpcRes || []
|
|
153
|
+
});
|
|
154
|
+
const solMiddleware = createSolanaMiddleware(providerHandlers);
|
|
155
|
+
const engine = new JRPCEngine();
|
|
156
|
+
const {
|
|
157
|
+
networkMiddleware
|
|
158
|
+
} = createSolanaJsonRpcClient(this.config.chainConfig);
|
|
159
|
+
engine.push(solMiddleware);
|
|
160
|
+
engine.push(networkMiddleware);
|
|
161
|
+
const provider = providerFromEngine(engine);
|
|
162
|
+
this.updateProviderEngineProxy(provider);
|
|
163
|
+
}
|
|
164
|
+
getEthChainSwitchMiddleware() {
|
|
165
|
+
const chainSwitchHandlers = {
|
|
166
|
+
addChain: async params => {
|
|
167
|
+
const {
|
|
168
|
+
chainId,
|
|
169
|
+
chainName,
|
|
170
|
+
rpcUrls,
|
|
171
|
+
blockExplorerUrls,
|
|
172
|
+
nativeCurrency,
|
|
173
|
+
iconUrls
|
|
174
|
+
} = params;
|
|
175
|
+
this.addChain({
|
|
176
|
+
chainNamespace: CHAIN_NAMESPACES.EIP155,
|
|
177
|
+
chainId,
|
|
178
|
+
ticker: (nativeCurrency === null || nativeCurrency === void 0 ? void 0 : nativeCurrency.symbol) || "ETH",
|
|
179
|
+
tickerName: (nativeCurrency === null || nativeCurrency === void 0 ? void 0 : nativeCurrency.name) || "Ether",
|
|
180
|
+
displayName: chainName,
|
|
181
|
+
rpcTarget: rpcUrls[0],
|
|
182
|
+
blockExplorerUrl: (blockExplorerUrls === null || blockExplorerUrls === void 0 ? void 0 : blockExplorerUrls[0]) || "",
|
|
183
|
+
decimals: (nativeCurrency === null || nativeCurrency === void 0 ? void 0 : nativeCurrency.decimals) || 18,
|
|
184
|
+
logo: (iconUrls === null || iconUrls === void 0 ? void 0 : iconUrls[0]) || "https://images.toruswallet.io/eth.svg"
|
|
185
|
+
});
|
|
186
|
+
},
|
|
187
|
+
switchChain: async params => {
|
|
188
|
+
const {
|
|
189
|
+
chainId
|
|
190
|
+
} = params;
|
|
191
|
+
await this.switchChain({
|
|
192
|
+
chainId
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
};
|
|
196
|
+
const chainSwitchMiddleware = createEthChainSwitchMiddleware(chainSwitchHandlers);
|
|
197
|
+
return chainSwitchMiddleware;
|
|
198
|
+
}
|
|
199
|
+
connectedTopic() {
|
|
200
|
+
var _this$connector;
|
|
201
|
+
if (!this.connector) throw WalletLoginError.notConnectedError("Wallet connect connector is not connected");
|
|
202
|
+
if ((_this$connector = this.connector) !== null && _this$connector !== void 0 && (_this$connector = _this$connector.session) !== null && _this$connector !== void 0 && _this$connector.length) {
|
|
203
|
+
var _this$connector$sessi;
|
|
204
|
+
// currently we are supporting only 1 active session
|
|
205
|
+
const lastKeyIndex = this.connector.session.keys.length - 1;
|
|
206
|
+
return (_this$connector$sessi = this.connector.session.get(this.connector.session.keys[lastKeyIndex])) === null || _this$connector$sessi === void 0 ? void 0 : _this$connector$sessi.topic;
|
|
207
|
+
}
|
|
208
|
+
return undefined;
|
|
209
|
+
}
|
|
210
|
+
checkIfAccountAllowed(address) {
|
|
211
|
+
if (!this.connector || !this.connectedTopic()) return false;
|
|
212
|
+
const sessionData = this.connector.session.get(this.connectedTopic());
|
|
213
|
+
const allAccounts = getAccountsFromNamespaces(sessionData.namespaces);
|
|
214
|
+
let accountAllowed = false;
|
|
215
|
+
for (const account of allAccounts) {
|
|
216
|
+
var _parsedAccount$addres;
|
|
217
|
+
const parsedAccount = parseAccountId(account);
|
|
218
|
+
if (((_parsedAccount$addres = parsedAccount.address) === null || _parsedAccount$addres === void 0 ? void 0 : _parsedAccount$addres.toLowerCase()) === (address === null || address === void 0 ? void 0 : address.toLowerCase())) {
|
|
219
|
+
accountAllowed = true;
|
|
220
|
+
break;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
return accountAllowed;
|
|
224
|
+
}
|
|
225
|
+
async onConnectorStateUpdate(connector) {
|
|
226
|
+
connector.events.on("session_event", async payload => {
|
|
227
|
+
log.debug("session_event data", payload);
|
|
228
|
+
if (!this.provider) throw WalletLoginError.notConnectedError("Wallet connect connector is not connected");
|
|
229
|
+
const {
|
|
230
|
+
event
|
|
231
|
+
} = payload.params;
|
|
232
|
+
const {
|
|
233
|
+
name,
|
|
234
|
+
data
|
|
235
|
+
} = event || {};
|
|
236
|
+
// Check if accounts changed and trigger event
|
|
237
|
+
if (name === "accountsChanged" && data !== null && data !== void 0 && data.length && this.state.accounts[0] !== data[0] && this.checkIfAccountAllowed(data[0])) {
|
|
238
|
+
this.update({
|
|
239
|
+
accounts: data
|
|
240
|
+
});
|
|
241
|
+
this.emit("accountsChanged", data);
|
|
242
|
+
}
|
|
243
|
+
if (event.name === "chainChanged") {
|
|
244
|
+
if (!data) return;
|
|
245
|
+
const connectedChainId = data;
|
|
246
|
+
const connectedHexChainId = `0x${connectedChainId.toString(16)}`;
|
|
247
|
+
|
|
248
|
+
// Check if chainId changed and trigger event
|
|
249
|
+
if (connectedHexChainId && this.state.chainId !== connectedHexChainId) {
|
|
250
|
+
const maybeConfig = getChainConfig(CHAIN_NAMESPACES.EIP155, connectedHexChainId);
|
|
251
|
+
// Handle rpcUrl update
|
|
252
|
+
this.configure({
|
|
253
|
+
chainConfig: _objectSpread(_objectSpread({}, maybeConfig), {}, {
|
|
254
|
+
chainId: connectedHexChainId,
|
|
255
|
+
chainNamespace: CHAIN_NAMESPACES.EIP155
|
|
256
|
+
})
|
|
257
|
+
});
|
|
258
|
+
await this.setupEngine(connector);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
_WalletConnectV2Provider = WalletConnectV2Provider;
|
|
265
|
+
_defineProperty(WalletConnectV2Provider, "getProviderInstance", async params => {
|
|
266
|
+
const providerFactory = new _WalletConnectV2Provider({
|
|
267
|
+
config: {
|
|
268
|
+
chainConfig: params.chainConfig,
|
|
269
|
+
skipLookupNetwork: params.skipLookupNetwork
|
|
270
|
+
}
|
|
271
|
+
});
|
|
272
|
+
await providerFactory.setupProvider(params.connector);
|
|
273
|
+
return providerFactory;
|
|
274
|
+
});
|
|
275
|
+
|
|
276
|
+
export { WalletConnectV2Provider };
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { CHAIN_NAMESPACES } from '../../base/chain/IChainInterface.js';
|
|
2
|
+
|
|
3
|
+
let DEFAULT_EIP155_METHODS = /*#__PURE__*/function (DEFAULT_EIP155_METHODS) {
|
|
4
|
+
DEFAULT_EIP155_METHODS["ETH_SEND_TRANSACTION"] = "eth_sendTransaction";
|
|
5
|
+
DEFAULT_EIP155_METHODS["ETH_SIGN_TRANSACTION"] = "eth_signTransaction";
|
|
6
|
+
DEFAULT_EIP155_METHODS["ETH_SIGN"] = "eth_sign";
|
|
7
|
+
DEFAULT_EIP155_METHODS["PERSONAL_SIGN"] = "personal_sign";
|
|
8
|
+
DEFAULT_EIP155_METHODS["ETH_SIGN_TYPED_DATA"] = "eth_signTypedData";
|
|
9
|
+
DEFAULT_EIP155_METHODS["ETH_SIGN_TYPED_DATA_V3"] = "eth_signTypedData_v3";
|
|
10
|
+
DEFAULT_EIP155_METHODS["ETH_SIGN_TYPED_DATA_V4"] = "eth_signTypedData_v4";
|
|
11
|
+
DEFAULT_EIP155_METHODS["ADD_ETHEREUM_CHAIN"] = "wallet_addEthereumChain";
|
|
12
|
+
DEFAULT_EIP155_METHODS["SWITCH_ETHEREUM_CHAIN"] = "wallet_switchEthereumChain";
|
|
13
|
+
return DEFAULT_EIP155_METHODS;
|
|
14
|
+
}({});
|
|
15
|
+
let DEFAULT_SOLANA_METHODS = /*#__PURE__*/function (DEFAULT_SOLANA_METHODS) {
|
|
16
|
+
DEFAULT_SOLANA_METHODS["SIGN_TRANSACTION"] = "solana_signTransaction";
|
|
17
|
+
DEFAULT_SOLANA_METHODS["SIGN_MESSAGE"] = "solana_signMessage";
|
|
18
|
+
return DEFAULT_SOLANA_METHODS;
|
|
19
|
+
}({});
|
|
20
|
+
let DEFAULT_EIP_155_EVENTS = /*#__PURE__*/function (DEFAULT_EIP_155_EVENTS) {
|
|
21
|
+
DEFAULT_EIP_155_EVENTS["ETH_CHAIN_CHANGED"] = "chainChanged";
|
|
22
|
+
DEFAULT_EIP_155_EVENTS["ETH_ACCOUNTS_CHANGED"] = "accountsChanged";
|
|
23
|
+
return DEFAULT_EIP_155_EVENTS;
|
|
24
|
+
}({});
|
|
25
|
+
let DEFAULT_SOLANA_EVENTS = /*#__PURE__*/function (DEFAULT_SOLANA_EVENTS) {
|
|
26
|
+
DEFAULT_SOLANA_EVENTS["SOL_CHAIN_CHANGED"] = "chainChanged";
|
|
27
|
+
DEFAULT_SOLANA_EVENTS["SOL_ACCOUNTS_CHANGED"] = "accountsChanged";
|
|
28
|
+
return DEFAULT_SOLANA_EVENTS;
|
|
29
|
+
}({});
|
|
30
|
+
const SOLANA_CAIP_CHAIN_MAP = {
|
|
31
|
+
"0x65": "5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
|
|
32
|
+
"0x66": "4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z",
|
|
33
|
+
"0x67": "EtWTRABZaYq6iMfeYKouRu166VU2xqa1"
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Extracts a name for the site from the DOM
|
|
38
|
+
*/
|
|
39
|
+
const getSiteName = window => {
|
|
40
|
+
const {
|
|
41
|
+
document
|
|
42
|
+
} = window;
|
|
43
|
+
const siteName = document.querySelector('head > meta[property="og:site_name"]');
|
|
44
|
+
if (siteName) {
|
|
45
|
+
return siteName.content;
|
|
46
|
+
}
|
|
47
|
+
const metaTitle = document.querySelector('head > meta[name="title"]');
|
|
48
|
+
if (metaTitle) {
|
|
49
|
+
return metaTitle.content;
|
|
50
|
+
}
|
|
51
|
+
if (document.title && document.title.length > 0) {
|
|
52
|
+
return document.title;
|
|
53
|
+
}
|
|
54
|
+
return window.location.hostname;
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Returns whether the given image URL exists
|
|
59
|
+
* @param url - the url of the image
|
|
60
|
+
* @returns - whether the image exists
|
|
61
|
+
*/
|
|
62
|
+
function imgExists(url) {
|
|
63
|
+
return new Promise((resolve, reject) => {
|
|
64
|
+
try {
|
|
65
|
+
const img = document.createElement("img");
|
|
66
|
+
img.onload = () => resolve(true);
|
|
67
|
+
img.onerror = () => resolve(false);
|
|
68
|
+
img.src = url;
|
|
69
|
+
} catch (e) {
|
|
70
|
+
reject(e);
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Extracts an icon for the site from the DOM
|
|
77
|
+
*/
|
|
78
|
+
async function getSiteIcon(window) {
|
|
79
|
+
const {
|
|
80
|
+
document
|
|
81
|
+
} = window;
|
|
82
|
+
|
|
83
|
+
// Use the site's favicon if it exists
|
|
84
|
+
let icon = document.querySelector('head > link[rel="shortcut icon"]');
|
|
85
|
+
if (icon && (await imgExists(icon.href))) {
|
|
86
|
+
return icon.href;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// Search through available icons in no particular order
|
|
90
|
+
icon = Array.from(document.querySelectorAll('head > link[rel="icon"]')).find(_icon => Boolean(_icon.href)) || null;
|
|
91
|
+
if (icon && (await imgExists(icon.href))) {
|
|
92
|
+
return icon.href;
|
|
93
|
+
}
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Gets site metadata and returns it
|
|
99
|
+
*
|
|
100
|
+
*/
|
|
101
|
+
const getSiteMetadata = async () => ({
|
|
102
|
+
name: getSiteName(window),
|
|
103
|
+
icon: await getSiteIcon(window)
|
|
104
|
+
});
|
|
105
|
+
const getNamespacesFromChains = chains => {
|
|
106
|
+
const supportedNamespaces = [];
|
|
107
|
+
chains.forEach(chainId => {
|
|
108
|
+
const [namespace] = chainId.split(":");
|
|
109
|
+
if (!supportedNamespaces.includes(namespace)) {
|
|
110
|
+
supportedNamespaces.push(namespace);
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
return supportedNamespaces;
|
|
114
|
+
};
|
|
115
|
+
const getSupportedMethodsByNamespace = namespace => {
|
|
116
|
+
switch (namespace) {
|
|
117
|
+
case CHAIN_NAMESPACES.EIP155:
|
|
118
|
+
return Object.values(DEFAULT_EIP155_METHODS);
|
|
119
|
+
case CHAIN_NAMESPACES.SOLANA:
|
|
120
|
+
return Object.values(DEFAULT_SOLANA_METHODS);
|
|
121
|
+
default:
|
|
122
|
+
throw new Error(`No default methods for namespace: ${namespace}`);
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
const getSupportedEventsByNamespace = namespace => {
|
|
126
|
+
switch (namespace) {
|
|
127
|
+
case CHAIN_NAMESPACES.EIP155:
|
|
128
|
+
return Object.values(DEFAULT_EIP_155_EVENTS);
|
|
129
|
+
case CHAIN_NAMESPACES.SOLANA:
|
|
130
|
+
return Object.values(DEFAULT_SOLANA_EVENTS);
|
|
131
|
+
default:
|
|
132
|
+
throw new Error(`No default events for namespace: ${namespace}`);
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
const getRequiredNamespaces = chains => {
|
|
136
|
+
const selectedNamespaces = getNamespacesFromChains(chains);
|
|
137
|
+
return Object.fromEntries(selectedNamespaces.map(namespace => [namespace, {
|
|
138
|
+
methods: getSupportedMethodsByNamespace(namespace),
|
|
139
|
+
chains: chains.filter(chain => chain.startsWith(namespace)),
|
|
140
|
+
events: getSupportedEventsByNamespace(namespace)
|
|
141
|
+
}]));
|
|
142
|
+
};
|
|
143
|
+
const getWalletConnectV2Settings = async (namespace, chainIds, projectID) => {
|
|
144
|
+
if (namespace === CHAIN_NAMESPACES.EIP155 || namespace === CHAIN_NAMESPACES.SOLANA) {
|
|
145
|
+
const appMetadata = await getSiteMetadata();
|
|
146
|
+
const adapterSettings = {
|
|
147
|
+
walletConnectInitOptions: {
|
|
148
|
+
projectId: projectID,
|
|
149
|
+
relayUrl: "wss://relay.walletconnect.com",
|
|
150
|
+
metadata: {
|
|
151
|
+
name: appMetadata.name,
|
|
152
|
+
description: appMetadata.name,
|
|
153
|
+
url: window.location.origin,
|
|
154
|
+
icons: [appMetadata.icon || ""]
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
const chainNamespaces = chainIds.map(chainId => {
|
|
159
|
+
return `${namespace}:${namespace === CHAIN_NAMESPACES.SOLANA ? SOLANA_CAIP_CHAIN_MAP[chainId] : parseInt(chainId, 16)}`;
|
|
160
|
+
});
|
|
161
|
+
const loginSettings = {
|
|
162
|
+
optionalNamespaces: getRequiredNamespaces(chainNamespaces)
|
|
163
|
+
};
|
|
164
|
+
return {
|
|
165
|
+
adapterSettings,
|
|
166
|
+
loginSettings
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
throw new Error(`Unsupported chain namespace: ${namespace}`);
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
export { DEFAULT_EIP155_METHODS, DEFAULT_EIP_155_EVENTS, DEFAULT_SOLANA_EVENTS, DEFAULT_SOLANA_METHODS, SOLANA_CAIP_CHAIN_MAP, getNamespacesFromChains, getRequiredNamespaces, getSupportedEventsByNamespace, getSupportedMethodsByNamespace, getWalletConnectV2Settings };
|