@web3auth/no-modal 9.7.0 → 10.0.0-alpha.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/dist/lib.cjs/base/chain/IChainInterface.js +22 -0
- package/dist/lib.cjs/base/chain/config.js +322 -0
- package/dist/lib.cjs/base/composables/index.js +5 -0
- package/dist/lib.cjs/base/connector/baseConnector.js +67 -0
- package/dist/lib.cjs/base/connector/constants.js +26 -0
- package/dist/lib.cjs/base/connector/utils.js +66 -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 +26 -0
- package/dist/lib.cjs/connectors/auth-connector/authConnector.js +392 -0
- package/dist/lib.cjs/connectors/base-evm-connector/baseEvmConnector.js +75 -0
- package/dist/lib.cjs/connectors/base-solana-connector/baseSolanaConnector.js +77 -0
- package/dist/lib.cjs/connectors/coinbase-connector/coinbaseConnector.js +151 -0
- package/dist/lib.cjs/connectors/injected-evm-connector/index.js +12 -0
- package/dist/lib.cjs/connectors/injected-evm-connector/injectedEvmConnector.js +176 -0
- package/dist/lib.cjs/connectors/injected-solana-connector/index.js +25 -0
- package/dist/lib.cjs/connectors/injected-solana-connector/walletStandardConnector.js +147 -0
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +228 -0
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/config.js +180 -0
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/index.js +20 -0
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +417 -0
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Utils.js +152 -0
- package/dist/lib.cjs/index.js +218 -0
- package/dist/lib.cjs/noModal.js +307 -247
- 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 +76 -0
- package/dist/lib.cjs/plugins/nft-checkout-plugin/utils.js +18 -0
- package/dist/lib.cjs/plugins/wallet-services-plugin/plugin.js +129 -0
- package/dist/lib.cjs/providers/account-abstraction-provider/index.js +32 -0
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +232 -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 +74 -0
- package/dist/lib.cjs/providers/base-provider/baseProvider.js +132 -0
- package/dist/lib.cjs/providers/base-provider/commonPrivateKeyProvider.js +78 -0
- package/dist/lib.cjs/providers/base-provider/index.js +18 -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 +176 -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/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/utils.js +29 -0
- package/dist/lib.cjs/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +46 -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 +49 -0
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +45 -0
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/utils.js +16 -0
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +93 -0
- package/dist/lib.cjs/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.js +150 -0
- package/dist/lib.cjs/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.js +94 -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 +88 -0
- package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +123 -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 +71 -0
- package/dist/lib.cjs/react/index.js +16 -0
- package/dist/lib.cjs/react/no-modal/Web3AuthInnerContext.js +192 -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 +89 -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 +196 -0
- package/dist/lib.cjs/vue/no-modal/composables/useWeb3Auth.js +13 -0
- package/dist/lib.cjs/vue/wallet-services-plugin/WalletServicesProvider.js +90 -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/base/chain/IChainInterface.js +19 -0
- package/dist/lib.esm/base/chain/config.js +317 -0
- package/dist/lib.esm/base/composables/index.js +3 -0
- package/dist/lib.esm/base/connector/baseConnector.js +65 -0
- package/dist/lib.esm/base/connector/constants.js +22 -0
- package/dist/lib.esm/base/connector/utils.js +60 -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 +20 -0
- package/dist/lib.esm/connectors/auth-connector/authConnector.js +390 -0
- package/dist/lib.esm/connectors/base-evm-connector/baseEvmConnector.js +73 -0
- package/dist/lib.esm/connectors/base-solana-connector/baseSolanaConnector.js +75 -0
- package/dist/lib.esm/connectors/coinbase-connector/coinbaseConnector.js +149 -0
- package/dist/lib.esm/connectors/injected-evm-connector/index.js +2 -0
- package/dist/lib.esm/connectors/injected-evm-connector/injectedEvmConnector.js +173 -0
- package/dist/lib.esm/connectors/injected-solana-connector/index.js +18 -0
- package/dist/lib.esm/connectors/injected-solana-connector/walletStandardConnector.js +144 -0
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +226 -0
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/config.js +169 -0
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/index.js +3 -0
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +415 -0
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Utils.js +146 -0
- package/dist/lib.esm/index.js +53 -0
- package/dist/lib.esm/noModal.js +294 -234
- 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 +74 -0
- package/dist/lib.esm/plugins/nft-checkout-plugin/utils.js +15 -0
- package/dist/lib.esm/plugins/wallet-services-plugin/plugin.js +119 -0
- package/dist/lib.esm/providers/account-abstraction-provider/index.js +2 -0
- package/dist/lib.esm/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +227 -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 +72 -0
- package/dist/lib.esm/providers/base-provider/baseProvider.js +130 -0
- package/dist/lib.esm/providers/base-provider/commonPrivateKeyProvider.js +76 -0
- package/dist/lib.esm/providers/base-provider/index.js +5 -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 +174 -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/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/utils.js +24 -0
- package/dist/lib.esm/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +43 -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 +47 -0
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +43 -0
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/utils.js +14 -0
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +91 -0
- package/dist/lib.esm/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.js +148 -0
- package/dist/lib.esm/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.js +92 -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 +86 -0
- package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +121 -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 +65 -0
- package/dist/lib.esm/react/index.js +5 -0
- package/dist/lib.esm/react/no-modal/Web3AuthInnerContext.js +189 -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 +86 -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 +194 -0
- package/dist/lib.esm/vue/no-modal/composables/useWeb3Auth.js +11 -0
- package/dist/lib.esm/vue/wallet-services-plugin/WalletServicesProvider.js +88 -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 +14559 -321
- package/dist/noModal.umd.min.js +1 -1
- package/dist/noModal.umd.min.js.LICENSE.txt +45 -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/connector/baseConnector.d.ts +37 -0
- package/dist/types/base/connector/constants.d.ts +25 -0
- package/dist/types/base/connector/index.d.ts +4 -0
- package/dist/types/base/connector/interfaces.d.ts +145 -0
- package/dist/types/base/connector/utils.d.ts +5 -0
- package/dist/types/base/core/IWeb3Auth.d.ts +142 -0
- package/dist/types/base/errors/index.d.ts +69 -0
- package/dist/types/base/hooks/index.d.ts +33 -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 +50 -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 +29 -0
- package/dist/types/connectors/auth-connector/authConnector.d.ts +45 -0
- package/dist/types/connectors/auth-connector/index.d.ts +2 -0
- package/dist/types/connectors/auth-connector/interface.d.ts +14 -0
- package/dist/types/connectors/base-evm-connector/baseEvmConnector.d.ts +7 -0
- package/dist/types/connectors/base-evm-connector/index.d.ts +1 -0
- package/dist/types/connectors/base-solana-connector/baseSolanaConnector.d.ts +7 -0
- package/dist/types/connectors/base-solana-connector/index.d.ts +1 -0
- package/dist/types/connectors/coinbase-connector/coinbaseConnector.d.ts +7 -0
- package/dist/types/connectors/coinbase-connector/index.d.ts +1 -0
- package/dist/types/connectors/index.d.ts +7 -0
- package/dist/types/connectors/injected-evm-connector/index.d.ts +2 -0
- package/dist/types/connectors/injected-evm-connector/injectedEvmConnector.d.ts +34 -0
- package/dist/types/connectors/injected-solana-connector/index.d.ts +5 -0
- package/dist/types/connectors/injected-solana-connector/utils.d.ts +3 -0
- package/dist/types/connectors/injected-solana-connector/walletStandardConnector.d.ts +33 -0
- package/dist/types/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.d.ts +35 -0
- package/dist/types/connectors/wallet-connect-v2-connector/config.d.ts +35 -0
- package/dist/types/connectors/wallet-connect-v2-connector/index.d.ts +4 -0
- package/dist/types/connectors/wallet-connect-v2-connector/interface.d.ts +18 -0
- package/dist/types/connectors/wallet-connect-v2-connector/utils.d.ts +3 -0
- package/dist/types/connectors/wallet-connect-v2-connector/walletConnectV2Connector.d.ts +3 -0
- package/dist/types/connectors/wallet-connect-v2-connector/walletConnectV2Utils.d.ts +18 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/noModal.d.ts +29 -14
- 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 +27 -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 +27 -0
- package/dist/types/providers/account-abstraction-provider/index.d.ts +1 -0
- package/dist/types/providers/account-abstraction-provider/providers/AccountAbstractionProvider.d.ts +48 -0
- package/dist/types/providers/account-abstraction-provider/providers/index.d.ts +2 -0
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/index.d.ts +1 -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 +42 -0
- package/dist/types/providers/base-provider/commonPrivateKeyProvider.d.ts +29 -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 +74 -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/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/index.d.ts +1 -0
- package/dist/types/providers/ethereum-provider/providers/utils.d.ts +5 -0
- package/dist/types/providers/ethereum-provider/rpc/ethRpcMiddlewares.d.ts +4 -0
- package/dist/types/providers/ethereum-provider/rpc/index.d.ts +4 -0
- package/dist/types/providers/ethereum-provider/rpc/interfaces.d.ts +52 -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 +22 -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 +2 -0
- package/dist/types/providers/solana-provider/providers/injectedProviders/utils.d.ts +3 -0
- package/dist/types/providers/solana-provider/providers/injectedProviders/walletStandardProvider.d.ts +9 -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 +27 -0
- package/dist/types/providers/solana-provider/rpc/solanaRpcMiddlewares.d.ts +20 -0
- package/dist/types/providers/solana-provider/solanaWallet.d.ts +28 -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 +49 -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 +39 -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 +77 -15
- package/README.md +0 -82
- package/dist/noModal.esm.js +0 -359
|
@@ -0,0 +1,169 @@
|
|
|
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 (chains, projectID) => {
|
|
144
|
+
const appMetadata = await getSiteMetadata();
|
|
145
|
+
const connectorSettings = {
|
|
146
|
+
walletConnectInitOptions: {
|
|
147
|
+
projectId: projectID,
|
|
148
|
+
relayUrl: "wss://relay.walletconnect.com",
|
|
149
|
+
metadata: {
|
|
150
|
+
name: appMetadata.name,
|
|
151
|
+
description: appMetadata.name,
|
|
152
|
+
url: window.location.origin,
|
|
153
|
+
icons: [appMetadata.icon || ""]
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
};
|
|
157
|
+
const chainNamespaces = chains.map(chain => {
|
|
158
|
+
return `${chain.chainNamespace}:${chain.chainNamespace === CHAIN_NAMESPACES.SOLANA ? SOLANA_CAIP_CHAIN_MAP[chain.chainId] : parseInt(chain.chainId, 16)}`;
|
|
159
|
+
});
|
|
160
|
+
const loginSettings = {
|
|
161
|
+
optionalNamespaces: getRequiredNamespaces(chainNamespaces)
|
|
162
|
+
};
|
|
163
|
+
return {
|
|
164
|
+
connectorSettings,
|
|
165
|
+
loginSettings
|
|
166
|
+
};
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
export { DEFAULT_EIP155_METHODS, DEFAULT_EIP_155_EVENTS, DEFAULT_SOLANA_EVENTS, DEFAULT_SOLANA_METHODS, SOLANA_CAIP_CHAIN_MAP, getNamespacesFromChains, getRequiredNamespaces, getSupportedEventsByNamespace, getSupportedMethodsByNamespace, getWalletConnectV2Settings };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { DEFAULT_EIP155_METHODS, DEFAULT_EIP_155_EVENTS, DEFAULT_SOLANA_EVENTS, DEFAULT_SOLANA_METHODS, SOLANA_CAIP_CHAIN_MAP, getNamespacesFromChains, getRequiredNamespaces, getSupportedEventsByNamespace, getSupportedMethodsByNamespace, getWalletConnectV2Settings } from './config.js';
|
|
2
|
+
export { walletConnectV2Connector } from './walletConnectV2Connector.js';
|
|
3
|
+
export { WalletConnectV2Provider } from './WalletConnectV2Provider.js';
|
|
@@ -0,0 +1,415 @@
|
|
|
1
|
+
import _objectSpread from '@babel/runtime/helpers/objectSpread2';
|
|
2
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
3
|
+
import { signChallenge, verifySignedChallenge } from '@toruslabs/base-controllers';
|
|
4
|
+
import Client from '@walletconnect/sign-client';
|
|
5
|
+
import { isValidArray, getSdkError } from '@walletconnect/utils';
|
|
6
|
+
import { EVM_METHOD_TYPES, SOLANA_METHOD_TYPES } from '@web3auth/ws-embed';
|
|
7
|
+
import deepmerge from 'deepmerge';
|
|
8
|
+
import { CONNECTOR_NAMESPACES, CHAIN_NAMESPACES } from '../../base/chain/IChainInterface.js';
|
|
9
|
+
import { WalletInitializationError, WalletLoginError, Web3AuthError } from '../../base/errors/index.js';
|
|
10
|
+
import { log } from '../../base/loglevel.js';
|
|
11
|
+
import { WALLET_CONNECTORS } from '../../base/wallet/index.js';
|
|
12
|
+
import { getWalletConnectV2Settings } from './config.js';
|
|
13
|
+
import { WalletConnectV2Provider } from './WalletConnectV2Provider.js';
|
|
14
|
+
import { BaseConnector } from '../../base/connector/baseConnector.js';
|
|
15
|
+
import { CONNECTOR_CATEGORY, CONNECTOR_STATUS, CONNECTOR_EVENTS } from '../../base/connector/constants.js';
|
|
16
|
+
import { getSavedToken, checkIfTokenIsExpired, saveToken } from '../../base/connector/utils.js';
|
|
17
|
+
|
|
18
|
+
class WalletConnectV2Connector extends BaseConnector {
|
|
19
|
+
constructor(options) {
|
|
20
|
+
var _this$connectorOption, _this$connectorOption2, _this$connectorOption3, _this$connectorOption4, _this$connectorOption5;
|
|
21
|
+
super(options);
|
|
22
|
+
_defineProperty(this, "name", WALLET_CONNECTORS.WALLET_CONNECT_V2);
|
|
23
|
+
_defineProperty(this, "connectorNamespace", CONNECTOR_NAMESPACES.MULTICHAIN);
|
|
24
|
+
_defineProperty(this, "currentChainNamespace", CHAIN_NAMESPACES.OTHER);
|
|
25
|
+
_defineProperty(this, "type", CONNECTOR_CATEGORY.EXTERNAL);
|
|
26
|
+
_defineProperty(this, "connectorOptions", void 0);
|
|
27
|
+
_defineProperty(this, "status", CONNECTOR_STATUS.NOT_READY);
|
|
28
|
+
_defineProperty(this, "connectorData", {
|
|
29
|
+
uri: ""
|
|
30
|
+
});
|
|
31
|
+
_defineProperty(this, "connector", null);
|
|
32
|
+
_defineProperty(this, "activeSession", null);
|
|
33
|
+
_defineProperty(this, "wcProvider", null);
|
|
34
|
+
this.connectorOptions = _objectSpread({}, options);
|
|
35
|
+
const {
|
|
36
|
+
qrcodeModal,
|
|
37
|
+
walletConnectInitOptions
|
|
38
|
+
} = (options === null || options === void 0 ? void 0 : options.connectorSettings) || {};
|
|
39
|
+
this.connectorOptions = _objectSpread(_objectSpread({}, this.connectorOptions), {}, {
|
|
40
|
+
connectorSettings: (_this$connectorOption = (_this$connectorOption2 = this.connectorOptions) === null || _this$connectorOption2 === void 0 ? void 0 : _this$connectorOption2.connectorSettings) !== null && _this$connectorOption !== void 0 ? _this$connectorOption : {},
|
|
41
|
+
loginSettings: (_this$connectorOption3 = (_this$connectorOption4 = this.connectorOptions) === null || _this$connectorOption4 === void 0 ? void 0 : _this$connectorOption4.loginSettings) !== null && _this$connectorOption3 !== void 0 ? _this$connectorOption3 : {}
|
|
42
|
+
});
|
|
43
|
+
if (qrcodeModal) this.connectorOptions.connectorSettings.qrcodeModal = qrcodeModal;
|
|
44
|
+
if (walletConnectInitOptions) this.connectorOptions.connectorSettings.walletConnectInitOptions = _objectSpread(_objectSpread({}, (_this$connectorOption5 = this.connectorOptions.connectorSettings.walletConnectInitOptions) !== null && _this$connectorOption5 !== void 0 ? _this$connectorOption5 : {}), walletConnectInitOptions);
|
|
45
|
+
const {
|
|
46
|
+
loginSettings
|
|
47
|
+
} = options;
|
|
48
|
+
if (loginSettings) this.connectorOptions.loginSettings = _objectSpread(_objectSpread({}, this.connectorOptions.loginSettings || {}), loginSettings);
|
|
49
|
+
}
|
|
50
|
+
get connected() {
|
|
51
|
+
return !!this.activeSession;
|
|
52
|
+
}
|
|
53
|
+
get provider() {
|
|
54
|
+
if (this.status !== CONNECTOR_STATUS.NOT_READY && this.wcProvider) {
|
|
55
|
+
return this.wcProvider;
|
|
56
|
+
}
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
set provider(_) {
|
|
60
|
+
throw new Error("Not implemented");
|
|
61
|
+
}
|
|
62
|
+
async init(options) {
|
|
63
|
+
var _this$connectorOption6;
|
|
64
|
+
const chainConfig = this.coreOptions.chains.find(x => x.chainId === options.chainId);
|
|
65
|
+
super.checkInitializationRequirements({
|
|
66
|
+
chainConfig
|
|
67
|
+
});
|
|
68
|
+
const projectId = (_this$connectorOption6 = this.connectorOptions.connectorSettings) === null || _this$connectorOption6 === void 0 || (_this$connectorOption6 = _this$connectorOption6.walletConnectInitOptions) === null || _this$connectorOption6 === void 0 ? void 0 : _this$connectorOption6.projectId;
|
|
69
|
+
if (!projectId) {
|
|
70
|
+
throw WalletInitializationError.invalidParams("Wallet connect project id is required in wallet connect v2 connector");
|
|
71
|
+
}
|
|
72
|
+
const wc2Settings = await getWalletConnectV2Settings(this.coreOptions.chains, projectId);
|
|
73
|
+
if (!this.connectorOptions.loginSettings || Object.keys(this.connectorOptions.loginSettings).length === 0) {
|
|
74
|
+
this.connectorOptions.loginSettings = wc2Settings.loginSettings;
|
|
75
|
+
}
|
|
76
|
+
this.connectorOptions.connectorSettings = deepmerge(wc2Settings.connectorSettings || {}, this.connectorOptions.connectorSettings || {});
|
|
77
|
+
const {
|
|
78
|
+
connectorSettings
|
|
79
|
+
} = this.connectorOptions;
|
|
80
|
+
this.connector = await Client.init(connectorSettings === null || connectorSettings === void 0 ? void 0 : connectorSettings.walletConnectInitOptions);
|
|
81
|
+
this.wcProvider = new WalletConnectV2Provider({
|
|
82
|
+
config: {
|
|
83
|
+
chain: chainConfig,
|
|
84
|
+
chains: this.coreOptions.chains
|
|
85
|
+
},
|
|
86
|
+
connector: this.connector
|
|
87
|
+
});
|
|
88
|
+
this.emit(CONNECTOR_EVENTS.READY, WALLET_CONNECTORS.WALLET_CONNECT_V2);
|
|
89
|
+
this.status = CONNECTOR_STATUS.READY;
|
|
90
|
+
log.debug("initializing wallet connect v2 connector");
|
|
91
|
+
if (options.autoConnect) {
|
|
92
|
+
await this.checkForPersistedSession();
|
|
93
|
+
if (this.connected) {
|
|
94
|
+
this.rehydrated = true;
|
|
95
|
+
try {
|
|
96
|
+
await this.onConnectHandler({
|
|
97
|
+
chain: chainConfig
|
|
98
|
+
});
|
|
99
|
+
} catch (error) {
|
|
100
|
+
log.error("wallet auto connect", error);
|
|
101
|
+
this.emit(CONNECTOR_EVENTS.ERRORED, error);
|
|
102
|
+
}
|
|
103
|
+
} else {
|
|
104
|
+
this.status = CONNECTOR_STATUS.NOT_READY;
|
|
105
|
+
this.emit(CONNECTOR_EVENTS.CACHE_CLEAR);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
async connect({
|
|
110
|
+
chainId
|
|
111
|
+
}) {
|
|
112
|
+
super.checkConnectionRequirements();
|
|
113
|
+
const chainConfig = this.coreOptions.chains.find(x => x.chainId === chainId);
|
|
114
|
+
if (!chainConfig) throw WalletLoginError.connectionError("Chain config is not available");
|
|
115
|
+
if (!this.connector) throw WalletInitializationError.notReady("Wallet connector is not ready yet");
|
|
116
|
+
try {
|
|
117
|
+
// if already connected
|
|
118
|
+
if (this.connected) {
|
|
119
|
+
await this.onConnectHandler({
|
|
120
|
+
chain: chainConfig
|
|
121
|
+
});
|
|
122
|
+
return this.provider;
|
|
123
|
+
}
|
|
124
|
+
if (this.status !== CONNECTOR_STATUS.CONNECTING) {
|
|
125
|
+
await this.createNewSession({
|
|
126
|
+
chainConfig
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
return this.provider;
|
|
130
|
+
} catch (error) {
|
|
131
|
+
log.error("Wallet connect v2 connector error while connecting", error);
|
|
132
|
+
// ready again to be connected
|
|
133
|
+
this.status = CONNECTOR_STATUS.READY;
|
|
134
|
+
this.rehydrated = true;
|
|
135
|
+
this.emit(CONNECTOR_EVENTS.ERRORED, error);
|
|
136
|
+
const finalError = error instanceof Web3AuthError ? error : WalletLoginError.connectionError(`Failed to login with wallet connect: ${(error === null || error === void 0 ? void 0 : error.message) || ""}`, error);
|
|
137
|
+
throw finalError;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
async switchChain(params, init = false) {
|
|
141
|
+
super.checkSwitchChainRequirements(params, init);
|
|
142
|
+
if (!this.wcProvider) throw WalletInitializationError.notReady("Wallet Connect provider is not ready yet");
|
|
143
|
+
try {
|
|
144
|
+
await this.wcProvider.switchChain({
|
|
145
|
+
chainId: params.chainId
|
|
146
|
+
});
|
|
147
|
+
} catch (error) {
|
|
148
|
+
log.error("error while switching chain", error);
|
|
149
|
+
throw error;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
async getUserInfo() {
|
|
153
|
+
if (!this.connected) throw WalletLoginError.notConnectedError("Not connected with wallet, Please login/connect first");
|
|
154
|
+
return {};
|
|
155
|
+
}
|
|
156
|
+
async disconnect(options = {
|
|
157
|
+
cleanup: false,
|
|
158
|
+
sessionRemovedByWallet: false
|
|
159
|
+
}) {
|
|
160
|
+
var _this$activeSession, _this$activeSession2;
|
|
161
|
+
const {
|
|
162
|
+
cleanup
|
|
163
|
+
} = options;
|
|
164
|
+
if (!this.connector || !this.connected || !((_this$activeSession = this.activeSession) !== null && _this$activeSession !== void 0 && _this$activeSession.topic)) throw WalletLoginError.notConnectedError("Not connected with wallet");
|
|
165
|
+
if (!options.sessionRemovedByWallet) await this.connector.disconnect({
|
|
166
|
+
topic: (_this$activeSession2 = this.activeSession) === null || _this$activeSession2 === void 0 ? void 0 : _this$activeSession2.topic,
|
|
167
|
+
reason: getSdkError("USER_DISCONNECTED")
|
|
168
|
+
});
|
|
169
|
+
this.rehydrated = false;
|
|
170
|
+
if (cleanup) {
|
|
171
|
+
this.connector = null;
|
|
172
|
+
this.status = CONNECTOR_STATUS.NOT_READY;
|
|
173
|
+
this.wcProvider = null;
|
|
174
|
+
} else {
|
|
175
|
+
// ready to connect again
|
|
176
|
+
this.status = CONNECTOR_STATUS.READY;
|
|
177
|
+
}
|
|
178
|
+
this.activeSession = null;
|
|
179
|
+
this.emit(CONNECTOR_EVENTS.DISCONNECTED);
|
|
180
|
+
}
|
|
181
|
+
async authenticateUser() {
|
|
182
|
+
if (!this.provider || this.status !== CONNECTOR_STATUS.CONNECTED) throw WalletLoginError.notConnectedError();
|
|
183
|
+
const {
|
|
184
|
+
chainId
|
|
185
|
+
} = this.provider;
|
|
186
|
+
const currentChainConfig = this.coreOptions.chains.find(x => x.chainId === chainId);
|
|
187
|
+
if (!currentChainConfig) throw WalletLoginError.connectionError("Chain config is not available");
|
|
188
|
+
const {
|
|
189
|
+
chainNamespace
|
|
190
|
+
} = currentChainConfig;
|
|
191
|
+
const accounts = await this.provider.request({
|
|
192
|
+
method: chainNamespace === CHAIN_NAMESPACES.EIP155 ? EVM_METHOD_TYPES.GET_ACCOUNTS : SOLANA_METHOD_TYPES.GET_ACCOUNTS
|
|
193
|
+
});
|
|
194
|
+
if (accounts && accounts.length > 0) {
|
|
195
|
+
const existingToken = getSavedToken(accounts[0], this.name);
|
|
196
|
+
if (existingToken) {
|
|
197
|
+
const isExpired = checkIfTokenIsExpired(existingToken);
|
|
198
|
+
if (!isExpired) {
|
|
199
|
+
return {
|
|
200
|
+
idToken: existingToken
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
const payload = {
|
|
205
|
+
domain: window.location.origin,
|
|
206
|
+
uri: window.location.href,
|
|
207
|
+
address: accounts[0],
|
|
208
|
+
chainId: parseInt(chainId, 16),
|
|
209
|
+
version: "1",
|
|
210
|
+
nonce: Math.random().toString(36).slice(2),
|
|
211
|
+
issuedAt: new Date().toISOString()
|
|
212
|
+
};
|
|
213
|
+
const challenge = await signChallenge(payload, chainNamespace);
|
|
214
|
+
const signedMessage = await this._getSignedMessage(challenge, accounts, chainNamespace);
|
|
215
|
+
const idToken = await verifySignedChallenge(chainNamespace, signedMessage, challenge, this.name, this.coreOptions.sessionTime, this.coreOptions.clientId, this.coreOptions.web3AuthNetwork);
|
|
216
|
+
saveToken(accounts[0], this.name, idToken);
|
|
217
|
+
return {
|
|
218
|
+
idToken
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
throw WalletLoginError.notConnectedError("Not connected with wallet, Please login/connect first");
|
|
222
|
+
}
|
|
223
|
+
async enableMFA() {
|
|
224
|
+
throw new Error("Method Not implemented");
|
|
225
|
+
}
|
|
226
|
+
async manageMFA() {
|
|
227
|
+
throw new Error("Method Not implemented");
|
|
228
|
+
}
|
|
229
|
+
cleanupPendingPairings() {
|
|
230
|
+
if (!this.connector) throw WalletInitializationError.notReady("Wallet connector is not ready yet");
|
|
231
|
+
const inactivePairings = this.connector.pairing.getAll({
|
|
232
|
+
active: false
|
|
233
|
+
});
|
|
234
|
+
if (!isValidArray(inactivePairings)) return;
|
|
235
|
+
inactivePairings.forEach(pairing => {
|
|
236
|
+
if (this.connector) {
|
|
237
|
+
this.connector.pairing.delete(pairing.topic, getSdkError("USER_DISCONNECTED"));
|
|
238
|
+
}
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
async checkForPersistedSession() {
|
|
242
|
+
if (!this.connector) throw WalletInitializationError.notReady("Wallet connector is not ready yet");
|
|
243
|
+
if (this.connector.session.length) {
|
|
244
|
+
const lastKeyIndex = this.connector.session.keys.length - 1;
|
|
245
|
+
this.activeSession = this.connector.session.get(this.connector.session.keys[lastKeyIndex]);
|
|
246
|
+
}
|
|
247
|
+
return this.activeSession;
|
|
248
|
+
}
|
|
249
|
+
async createNewSession({
|
|
250
|
+
forceNewSession = false,
|
|
251
|
+
chainConfig
|
|
252
|
+
}) {
|
|
253
|
+
try {
|
|
254
|
+
var _this$activeSession3, _this$connectorOption7;
|
|
255
|
+
if (!this.connector) throw WalletInitializationError.notReady("Wallet connector is not ready yet");
|
|
256
|
+
if (!this.connectorOptions.loginSettings || Object.keys(this.connectorOptions.loginSettings).length === 0) throw WalletInitializationError.notReady("login settings are not set yet");
|
|
257
|
+
this.status = CONNECTOR_STATUS.CONNECTING;
|
|
258
|
+
this.emit(CONNECTOR_EVENTS.CONNECTING, {
|
|
259
|
+
connector: WALLET_CONNECTORS.WALLET_CONNECT_V2
|
|
260
|
+
});
|
|
261
|
+
if (forceNewSession && (_this$activeSession3 = this.activeSession) !== null && _this$activeSession3 !== void 0 && _this$activeSession3.topic) {
|
|
262
|
+
var _this$activeSession4;
|
|
263
|
+
await this.connector.disconnect({
|
|
264
|
+
topic: (_this$activeSession4 = this.activeSession) === null || _this$activeSession4 === void 0 ? void 0 : _this$activeSession4.topic,
|
|
265
|
+
reason: getSdkError("USER_DISCONNECTED")
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
const {
|
|
269
|
+
uri,
|
|
270
|
+
approval
|
|
271
|
+
} = await this.connector.connect(this.connectorOptions.loginSettings);
|
|
272
|
+
const qrcodeModal = (_this$connectorOption7 = this.connectorOptions) === null || _this$connectorOption7 === void 0 || (_this$connectorOption7 = _this$connectorOption7.connectorSettings) === null || _this$connectorOption7 === void 0 ? void 0 : _this$connectorOption7.qrcodeModal;
|
|
273
|
+
// Open QRCode modal if a URI was returned (i.e. we're not connecting with an existing pairing).
|
|
274
|
+
if (uri) {
|
|
275
|
+
if (qrcodeModal) {
|
|
276
|
+
try {
|
|
277
|
+
await qrcodeModal.openModal({
|
|
278
|
+
uri
|
|
279
|
+
});
|
|
280
|
+
log.debug("EVENT", "QR Code Modal closed");
|
|
281
|
+
this.status = CONNECTOR_STATUS.READY;
|
|
282
|
+
this.emit(CONNECTOR_EVENTS.READY, WALLET_CONNECTORS.WALLET_CONNECT_V2);
|
|
283
|
+
} catch (error) {
|
|
284
|
+
log.error("unable to open qr code modal");
|
|
285
|
+
}
|
|
286
|
+
} else {
|
|
287
|
+
this.updateConnectorData({
|
|
288
|
+
uri
|
|
289
|
+
});
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
log.info("awaiting session approval from wallet");
|
|
293
|
+
|
|
294
|
+
// Await session approval from the wallet.
|
|
295
|
+
const session = await approval();
|
|
296
|
+
this.activeSession = session;
|
|
297
|
+
// Handle the returned session (e.g. update UI to "connected" state).
|
|
298
|
+
await this.onConnectHandler({
|
|
299
|
+
chain: chainConfig
|
|
300
|
+
});
|
|
301
|
+
if (qrcodeModal) {
|
|
302
|
+
qrcodeModal.closeModal();
|
|
303
|
+
}
|
|
304
|
+
} catch (error) {
|
|
305
|
+
var _message;
|
|
306
|
+
if ((_message = error.message) !== null && _message !== void 0 && _message.toLowerCase().includes("proposal expired")) {
|
|
307
|
+
// Retry if connector status is still connecting
|
|
308
|
+
log.info("current connector status: ", this.status);
|
|
309
|
+
if (this.status === CONNECTOR_STATUS.CONNECTING) {
|
|
310
|
+
log.info("retrying to create new wallet connect session since proposal expired");
|
|
311
|
+
return this.createNewSession({
|
|
312
|
+
forceNewSession: true,
|
|
313
|
+
chainConfig
|
|
314
|
+
});
|
|
315
|
+
}
|
|
316
|
+
if (this.status === CONNECTOR_STATUS.READY) {
|
|
317
|
+
log.info("ignoring proposal expired error since some other connector is connected");
|
|
318
|
+
return;
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
log.error("error while creating new wallet connect session", error);
|
|
322
|
+
this.emit(CONNECTOR_EVENTS.ERRORED, error);
|
|
323
|
+
throw error;
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
async onConnectHandler({
|
|
327
|
+
chain
|
|
328
|
+
}) {
|
|
329
|
+
var _this$connectorOption8;
|
|
330
|
+
if (!this.connector || !this.wcProvider) throw WalletInitializationError.notReady("Wallet connect connector is not ready yet");
|
|
331
|
+
this.subscribeEvents();
|
|
332
|
+
if ((_this$connectorOption8 = this.connectorOptions.connectorSettings) !== null && _this$connectorOption8 !== void 0 && _this$connectorOption8.qrcodeModal) {
|
|
333
|
+
this.wcProvider = new WalletConnectV2Provider({
|
|
334
|
+
config: {
|
|
335
|
+
chain,
|
|
336
|
+
chains: this.coreOptions.chains,
|
|
337
|
+
skipLookupNetwork: true
|
|
338
|
+
},
|
|
339
|
+
connector: this.connector
|
|
340
|
+
});
|
|
341
|
+
}
|
|
342
|
+
await this.wcProvider.setupProvider(this.connector);
|
|
343
|
+
this.cleanupPendingPairings();
|
|
344
|
+
this.status = CONNECTOR_STATUS.CONNECTED;
|
|
345
|
+
this.emit(CONNECTOR_EVENTS.CONNECTED, {
|
|
346
|
+
connector: WALLET_CONNECTORS.WALLET_CONNECT_V2,
|
|
347
|
+
reconnected: this.rehydrated,
|
|
348
|
+
provider: this.provider
|
|
349
|
+
});
|
|
350
|
+
}
|
|
351
|
+
subscribeEvents() {
|
|
352
|
+
if (!this.connector) throw WalletInitializationError.notReady("Wallet connector is not ready yet");
|
|
353
|
+
this.connector.events.on("session_update", ({
|
|
354
|
+
topic,
|
|
355
|
+
params
|
|
356
|
+
}) => {
|
|
357
|
+
if (!this.connector) return;
|
|
358
|
+
const {
|
|
359
|
+
namespaces
|
|
360
|
+
} = params;
|
|
361
|
+
const _session = this.connector.session.get(topic);
|
|
362
|
+
// Overwrite the `namespaces` of the existing session with the incoming one.
|
|
363
|
+
const updatedSession = _objectSpread(_objectSpread({}, _session), {}, {
|
|
364
|
+
namespaces
|
|
365
|
+
});
|
|
366
|
+
// Integrate the updated session state into your dapp state.
|
|
367
|
+
this.activeSession = updatedSession;
|
|
368
|
+
});
|
|
369
|
+
this.connector.events.on("session_delete", () => {
|
|
370
|
+
// Session was deleted -> reset the dapp state, clean up from user session, etc.
|
|
371
|
+
this.disconnect({
|
|
372
|
+
sessionRemovedByWallet: true
|
|
373
|
+
});
|
|
374
|
+
});
|
|
375
|
+
}
|
|
376
|
+
async _getSignedMessage(challenge, accounts, chainNamespace) {
|
|
377
|
+
const signedMessage = await this.provider.request({
|
|
378
|
+
method: chainNamespace === CHAIN_NAMESPACES.EIP155 ? EVM_METHOD_TYPES.PERSONAL_SIGN : SOLANA_METHOD_TYPES.SIGN_MESSAGE,
|
|
379
|
+
params: chainNamespace === CHAIN_NAMESPACES.EIP155 ? [challenge, accounts[0]] : {
|
|
380
|
+
data: challenge
|
|
381
|
+
}
|
|
382
|
+
});
|
|
383
|
+
return signedMessage;
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
const walletConnectV2Connector = params => {
|
|
387
|
+
return ({
|
|
388
|
+
projectConfig,
|
|
389
|
+
coreOptions
|
|
390
|
+
}) => {
|
|
391
|
+
let {
|
|
392
|
+
projectId
|
|
393
|
+
} = (params === null || params === void 0 ? void 0 : params.walletConnectInitOptions) || {};
|
|
394
|
+
|
|
395
|
+
// use project config if projectId is not set
|
|
396
|
+
if (projectConfig) {
|
|
397
|
+
const {
|
|
398
|
+
wallet_connect_enabled: walletConnectEnabled,
|
|
399
|
+
wallet_connect_project_id: walletConnectProjectId
|
|
400
|
+
} = projectConfig;
|
|
401
|
+
if (walletConnectEnabled && walletConnectProjectId && !projectId) projectId = walletConnectProjectId;
|
|
402
|
+
}
|
|
403
|
+
const connectorSettings = _objectSpread(_objectSpread({}, params), {}, {
|
|
404
|
+
walletConnectInitOptions: _objectSpread(_objectSpread({}, params === null || params === void 0 ? void 0 : params.walletConnectInitOptions), {}, {
|
|
405
|
+
projectId
|
|
406
|
+
})
|
|
407
|
+
});
|
|
408
|
+
return new WalletConnectV2Connector({
|
|
409
|
+
connectorSettings,
|
|
410
|
+
coreOptions
|
|
411
|
+
});
|
|
412
|
+
};
|
|
413
|
+
};
|
|
414
|
+
|
|
415
|
+
export { walletConnectV2Connector };
|