@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,134 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
4
|
+
var baseControllers = require('@toruslabs/base-controllers');
|
|
5
|
+
var auth = require('@web3auth/auth');
|
|
6
|
+
var loglevel = require('loglevel');
|
|
7
|
+
var enums = require('./enums.js');
|
|
8
|
+
var utils = require('./utils.js');
|
|
9
|
+
|
|
10
|
+
// preload for iframe doesn't work https://bugs.chromium.org/p/chromium/issues/detail?id=593267
|
|
11
|
+
(async function preLoadIframe() {
|
|
12
|
+
try {
|
|
13
|
+
if (typeof document === "undefined") return;
|
|
14
|
+
const nftCheckoutIframeHtml = document.createElement("link");
|
|
15
|
+
const nftCheckoutUrl = enums.NFT_CHECKOUT_URLS.testing; // TODO: use production by default once we have it
|
|
16
|
+
nftCheckoutIframeHtml.href = `${nftCheckoutUrl}`;
|
|
17
|
+
nftCheckoutIframeHtml.crossOrigin = "anonymous";
|
|
18
|
+
nftCheckoutIframeHtml.type = "text/html";
|
|
19
|
+
nftCheckoutIframeHtml.rel = "prefetch";
|
|
20
|
+
if (nftCheckoutIframeHtml.relList && nftCheckoutIframeHtml.relList.supports) {
|
|
21
|
+
if (nftCheckoutIframeHtml.relList.supports("prefetch")) {
|
|
22
|
+
document.head.appendChild(nftCheckoutIframeHtml);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
} catch (error) {
|
|
26
|
+
loglevel.warn(error);
|
|
27
|
+
}
|
|
28
|
+
})();
|
|
29
|
+
class NFTCheckoutEmbed {
|
|
30
|
+
constructor({
|
|
31
|
+
modalZIndex = 99999,
|
|
32
|
+
clientId
|
|
33
|
+
}) {
|
|
34
|
+
_defineProperty(this, "clientId", void 0);
|
|
35
|
+
_defineProperty(this, "isInitialized", void 0);
|
|
36
|
+
_defineProperty(this, "modalZIndex", void 0);
|
|
37
|
+
_defineProperty(this, "buildEnv", void 0);
|
|
38
|
+
_defineProperty(this, "embedNonce", baseControllers.randomId());
|
|
39
|
+
this.isInitialized = false;
|
|
40
|
+
this.modalZIndex = modalZIndex;
|
|
41
|
+
this.clientId = clientId;
|
|
42
|
+
}
|
|
43
|
+
async init(params) {
|
|
44
|
+
if (this.isInitialized) throw new Error("Already initialized");
|
|
45
|
+
if (this.getIframe()) throw new Error("Already initialized NFT Checkout iframe");
|
|
46
|
+
const {
|
|
47
|
+
buildEnv = enums.NFT_CHECKOUT_BUILD_ENV.TESTING,
|
|
48
|
+
// TODO: use production by default once we have it
|
|
49
|
+
whiteLabel
|
|
50
|
+
} = params || {};
|
|
51
|
+
this.buildEnv = buildEnv;
|
|
52
|
+
|
|
53
|
+
// construct nft checkout url
|
|
54
|
+
const nftCheckoutIframeUrl = new URL(enums.NFT_CHECKOUT_URLS[this.buildEnv]);
|
|
55
|
+
const hashParams = new URLSearchParams();
|
|
56
|
+
hashParams.append("origin", window.location.origin);
|
|
57
|
+
nftCheckoutIframeUrl.hash = hashParams.toString();
|
|
58
|
+
|
|
59
|
+
// create iframe
|
|
60
|
+
const colorScheme = utils.getTheme((whiteLabel === null || whiteLabel === void 0 ? void 0 : whiteLabel.mode) || auth.THEME_MODES.light);
|
|
61
|
+
const nftCheckoutIframe = utils.htmlToElement(`<iframe
|
|
62
|
+
id="nftCheckoutIframe-${this.embedNonce}"
|
|
63
|
+
class="nftCheckoutIframe-${this.embedNonce}"
|
|
64
|
+
sandbox="allow-popups allow-scripts allow-same-origin allow-forms allow-modals allow-downloads allow-popups-to-escape-sandbox"
|
|
65
|
+
src="${nftCheckoutIframeUrl.href}"
|
|
66
|
+
style="display: none; position: fixed; top: 0; right: 0; width: 100%;
|
|
67
|
+
height: 100%; border: none; border-radius: 0; z-index: ${this.modalZIndex.toString()};
|
|
68
|
+
color-scheme: ${colorScheme}"
|
|
69
|
+
allow="clipboard-write"
|
|
70
|
+
></iframe>`);
|
|
71
|
+
return new Promise((resolve, reject) => {
|
|
72
|
+
try {
|
|
73
|
+
window.document.body.appendChild(nftCheckoutIframe);
|
|
74
|
+
const handleMessage = async ev => {
|
|
75
|
+
if (ev.origin !== nftCheckoutIframeUrl.origin) return;
|
|
76
|
+
if (ev.data.type === enums.NFT_CHECKOUT_EMBED_MESSAGE_TYPES.SETUP_COMPLETE) {
|
|
77
|
+
// send init params here
|
|
78
|
+
nftCheckoutIframe.contentWindow.postMessage({
|
|
79
|
+
type: enums.NFT_CHECKOUT_EMBED_MESSAGE_TYPES.INIT,
|
|
80
|
+
clientId: this.clientId,
|
|
81
|
+
whiteLabel
|
|
82
|
+
}, nftCheckoutIframeUrl.origin);
|
|
83
|
+
this.isInitialized = true;
|
|
84
|
+
resolve();
|
|
85
|
+
} else if (ev.data.type === enums.NFT_CHECKOUT_EMBED_MESSAGE_TYPES.HIDE_NFT_CHECKOUT) {
|
|
86
|
+
this.hide();
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
window.addEventListener("message", handleMessage);
|
|
90
|
+
} catch (error) {
|
|
91
|
+
reject(error);
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
show({
|
|
96
|
+
receiverAddress,
|
|
97
|
+
contractId
|
|
98
|
+
}) {
|
|
99
|
+
if (!this.isInitialized) throw new Error("Call init() first");
|
|
100
|
+
const nftCheckoutIframe = this.getIframe();
|
|
101
|
+
if (!nftCheckoutIframe) throw new Error("Iframe is not initialized");
|
|
102
|
+
|
|
103
|
+
// send message to iframe
|
|
104
|
+
const nftCheckoutOrigin = new URL(enums.NFT_CHECKOUT_URLS[this.buildEnv]).origin;
|
|
105
|
+
nftCheckoutIframe.contentWindow.postMessage({
|
|
106
|
+
type: enums.NFT_CHECKOUT_EMBED_MESSAGE_TYPES.SHOW_NFT_CHECKOUT,
|
|
107
|
+
contractId,
|
|
108
|
+
receiverAddress
|
|
109
|
+
}, nftCheckoutOrigin);
|
|
110
|
+
// show iframe
|
|
111
|
+
nftCheckoutIframe.style.display = "block";
|
|
112
|
+
}
|
|
113
|
+
hide() {
|
|
114
|
+
if (!this.isInitialized) throw new Error("Call init() first");
|
|
115
|
+
const nftCheckoutIframe = this.getIframe();
|
|
116
|
+
if (!nftCheckoutIframe) throw new Error("Iframe is not initialized");
|
|
117
|
+
// hide iframe
|
|
118
|
+
nftCheckoutIframe.style.display = "none";
|
|
119
|
+
}
|
|
120
|
+
cleanup() {
|
|
121
|
+
const nftCheckoutIframe = this.getIframe();
|
|
122
|
+
if (nftCheckoutIframe) nftCheckoutIframe.remove();
|
|
123
|
+
}
|
|
124
|
+
getIframe() {
|
|
125
|
+
function isElement(element) {
|
|
126
|
+
return element instanceof Element || element instanceof Document;
|
|
127
|
+
}
|
|
128
|
+
const nftCheckoutIframe = window.document.getElementById(`nftCheckoutIframe-${this.embedNonce}`);
|
|
129
|
+
if (!isElement(nftCheckoutIframe)) return null;
|
|
130
|
+
return nftCheckoutIframe;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
exports.NFTCheckoutEmbed = NFTCheckoutEmbed;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const NFT_CHECKOUT_BUILD_ENV = {
|
|
4
|
+
PRODUCTION: "production",
|
|
5
|
+
STAGING: "staging",
|
|
6
|
+
DEVELOPMENT: "development",
|
|
7
|
+
TESTING: "testing"
|
|
8
|
+
};
|
|
9
|
+
const NFT_CHECKOUT_URLS = {
|
|
10
|
+
[NFT_CHECKOUT_BUILD_ENV.DEVELOPMENT]: "http://localhost:4050",
|
|
11
|
+
[NFT_CHECKOUT_BUILD_ENV.TESTING]: "https://develop-nft-checkout.web3auth.io",
|
|
12
|
+
[NFT_CHECKOUT_BUILD_ENV.STAGING]: "https://staging-nft-checkout.web3auth.io",
|
|
13
|
+
[NFT_CHECKOUT_BUILD_ENV.PRODUCTION]: "https://nft-checkout.web3auth.io"
|
|
14
|
+
};
|
|
15
|
+
const NFT_CHECKOUT_EMBED_MESSAGE_TYPES = {
|
|
16
|
+
INIT: "init",
|
|
17
|
+
SETUP_COMPLETE: "setup_complete",
|
|
18
|
+
SHOW_NFT_CHECKOUT: "show_nft_checkout",
|
|
19
|
+
HIDE_NFT_CHECKOUT: "hide_nft_checkout"
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
exports.NFT_CHECKOUT_BUILD_ENV = NFT_CHECKOUT_BUILD_ENV;
|
|
23
|
+
exports.NFT_CHECKOUT_EMBED_MESSAGE_TYPES = NFT_CHECKOUT_EMBED_MESSAGE_TYPES;
|
|
24
|
+
exports.NFT_CHECKOUT_URLS = NFT_CHECKOUT_URLS;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
4
|
+
var auth = require('@web3auth/auth');
|
|
5
|
+
var embed = require('./embed.js');
|
|
6
|
+
var IPlugin = require('../../base/plugin/IPlugin.js');
|
|
7
|
+
var errors = require('../../base/plugin/errors.js');
|
|
8
|
+
var constants = require('../../base/connector/constants.js');
|
|
9
|
+
|
|
10
|
+
class NFTCheckoutPlugin extends auth.SafeEventEmitter {
|
|
11
|
+
constructor(params) {
|
|
12
|
+
super();
|
|
13
|
+
_defineProperty(this, "name", IPlugin.EVM_PLUGINS.NFT_CHECKOUT);
|
|
14
|
+
_defineProperty(this, "status", IPlugin.PLUGIN_STATUS.DISCONNECTED);
|
|
15
|
+
_defineProperty(this, "SUPPORTED_CONNECTORS", ["all"]);
|
|
16
|
+
_defineProperty(this, "pluginNamespace", IPlugin.PLUGIN_NAMESPACES.EIP155);
|
|
17
|
+
_defineProperty(this, "web3auth", null);
|
|
18
|
+
_defineProperty(this, "nftCheckoutEmbedInstance", null);
|
|
19
|
+
_defineProperty(this, "isInitialized", false);
|
|
20
|
+
_defineProperty(this, "receiverAddress", null);
|
|
21
|
+
this.nftCheckoutEmbedInstance = new embed.NFTCheckoutEmbed(params);
|
|
22
|
+
}
|
|
23
|
+
async initWithWeb3Auth(web3auth, whiteLabel) {
|
|
24
|
+
if (this.isInitialized) return;
|
|
25
|
+
if (!web3auth) throw errors.NFTCheckoutPluginError.web3authRequired();
|
|
26
|
+
this.web3auth = web3auth;
|
|
27
|
+
await this.nftCheckoutEmbedInstance.init({
|
|
28
|
+
whiteLabel
|
|
29
|
+
});
|
|
30
|
+
this.isInitialized = true;
|
|
31
|
+
this.status = IPlugin.PLUGIN_STATUS.READY;
|
|
32
|
+
this.emit(IPlugin.PLUGIN_EVENTS.READY);
|
|
33
|
+
}
|
|
34
|
+
async connect() {
|
|
35
|
+
if (!this.isInitialized) throw errors.NFTCheckoutPluginError.notInitialized();
|
|
36
|
+
this.emit(IPlugin.PLUGIN_EVENTS.CONNECTING);
|
|
37
|
+
this.status = IPlugin.PLUGIN_STATUS.CONNECTING;
|
|
38
|
+
if (this.web3auth.status !== constants.CONNECTOR_STATUS.CONNECTED) throw errors.NFTCheckoutPluginError.web3AuthNotConnected();
|
|
39
|
+
if (!this.web3auth.provider) throw errors.NFTCheckoutPluginError.providerRequired();
|
|
40
|
+
const accounts = await this.web3auth.provider.request({
|
|
41
|
+
method: "eth_accounts"
|
|
42
|
+
});
|
|
43
|
+
if (accounts.length === 0) throw errors.NFTCheckoutPluginError.web3AuthNotConnected();
|
|
44
|
+
this.receiverAddress = accounts[0];
|
|
45
|
+
this.emit(IPlugin.PLUGIN_EVENTS.CONNECTED);
|
|
46
|
+
this.status = IPlugin.PLUGIN_STATUS.CONNECTED;
|
|
47
|
+
}
|
|
48
|
+
async show({
|
|
49
|
+
contractId
|
|
50
|
+
}) {
|
|
51
|
+
if (this.status !== IPlugin.PLUGIN_STATUS.CONNECTED) errors.NFTCheckoutPluginError.pluginNotConnected();
|
|
52
|
+
return this.nftCheckoutEmbedInstance.show({
|
|
53
|
+
receiverAddress: this.receiverAddress,
|
|
54
|
+
contractId
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
disconnect() {
|
|
58
|
+
if (this.status !== IPlugin.PLUGIN_STATUS.CONNECTED) errors.NFTCheckoutPluginError.pluginNotConnected();
|
|
59
|
+
this.emit(IPlugin.PLUGIN_EVENTS.DISCONNECTED);
|
|
60
|
+
this.status = IPlugin.PLUGIN_STATUS.DISCONNECTED;
|
|
61
|
+
return Promise.resolve();
|
|
62
|
+
}
|
|
63
|
+
cleanup() {
|
|
64
|
+
this.nftCheckoutEmbedInstance.cleanup();
|
|
65
|
+
this.receiverAddress = null;
|
|
66
|
+
this.isInitialized = false;
|
|
67
|
+
return Promise.resolve();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
const nftCheckoutPlugin = params => {
|
|
71
|
+
return () => {
|
|
72
|
+
return new NFTCheckoutPlugin(params);
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
exports.nftCheckoutPlugin = nftCheckoutPlugin;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var auth = require('@web3auth/auth');
|
|
4
|
+
|
|
5
|
+
const htmlToElement = html => {
|
|
6
|
+
const template = window.document.createElement("template");
|
|
7
|
+
const trimmedHtml = html.trim(); // Never return a text node of whitespace as the result
|
|
8
|
+
template.innerHTML = trimmedHtml;
|
|
9
|
+
return template.content.firstChild;
|
|
10
|
+
};
|
|
11
|
+
const getTheme = theme => {
|
|
12
|
+
if (theme === auth.THEME_MODES.light) return "light";
|
|
13
|
+
if (theme === auth.THEME_MODES.dark) return "dark";
|
|
14
|
+
return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
exports.getTheme = getTheme;
|
|
18
|
+
exports.htmlToElement = htmlToElement;
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
4
|
+
var auth = require('@web3auth/auth');
|
|
5
|
+
var IChainInterface = require('../../base/chain/IChainInterface.js');
|
|
6
|
+
var loglevel = require('../../base/loglevel.js');
|
|
7
|
+
var index = require('../../base/wallet/index.js');
|
|
8
|
+
var wsEmbed = require('@web3auth/ws-embed');
|
|
9
|
+
var errors = require('../../base/plugin/errors.js');
|
|
10
|
+
var IPlugin = require('../../base/plugin/IPlugin.js');
|
|
11
|
+
var constants = require('../../base/connector/constants.js');
|
|
12
|
+
|
|
13
|
+
// TODO: support project config items here. incl. key export flag, multiple chains
|
|
14
|
+
class WalletServicesPlugin extends auth.SafeEventEmitter {
|
|
15
|
+
constructor(...args) {
|
|
16
|
+
super(...args);
|
|
17
|
+
_defineProperty(this, "name", IPlugin.EVM_PLUGINS.WALLET_SERVICES);
|
|
18
|
+
_defineProperty(this, "status", IPlugin.PLUGIN_STATUS.DISCONNECTED);
|
|
19
|
+
_defineProperty(this, "SUPPORTED_CONNECTORS", [index.WALLET_CONNECTORS.AUTH, index.WALLET_CONNECTORS.SFA]);
|
|
20
|
+
_defineProperty(this, "pluginNamespace", IPlugin.PLUGIN_NAMESPACES.MULTICHAIN);
|
|
21
|
+
_defineProperty(this, "wsEmbedInstance", void 0);
|
|
22
|
+
_defineProperty(this, "provider", null);
|
|
23
|
+
_defineProperty(this, "web3auth", null);
|
|
24
|
+
_defineProperty(this, "isInitialized", false);
|
|
25
|
+
}
|
|
26
|
+
get proxyProvider() {
|
|
27
|
+
var _this$wsEmbedInstance;
|
|
28
|
+
return (_this$wsEmbedInstance = this.wsEmbedInstance) !== null && _this$wsEmbedInstance !== void 0 && _this$wsEmbedInstance.provider ? this.wsEmbedInstance.provider : null;
|
|
29
|
+
}
|
|
30
|
+
async initWithWeb3Auth(web3auth, _whiteLabel) {
|
|
31
|
+
if (this.isInitialized) return;
|
|
32
|
+
if (!web3auth) throw errors.WalletServicesPluginError.web3authRequired();
|
|
33
|
+
if (web3auth.provider && !this.SUPPORTED_CONNECTORS.includes(web3auth.connectedConnectorName)) throw errors.WalletServicesPluginError.notInitialized();
|
|
34
|
+
const currentChainConfig = web3auth.currentChain;
|
|
35
|
+
if (![IChainInterface.CHAIN_NAMESPACES.EIP155, IChainInterface.CHAIN_NAMESPACES.SOLANA].includes(currentChainConfig.chainNamespace)) throw errors.WalletServicesPluginError.unsupportedChainNamespace();
|
|
36
|
+
|
|
37
|
+
// Not connected yet to auth
|
|
38
|
+
if (web3auth.provider) {
|
|
39
|
+
this.provider = web3auth.provider;
|
|
40
|
+
}
|
|
41
|
+
this.web3auth = web3auth;
|
|
42
|
+
|
|
43
|
+
// Auth connector uses WS embed
|
|
44
|
+
const authInstance = web3auth.getConnector(index.WALLET_CONNECTORS.AUTH);
|
|
45
|
+
if (!authInstance || !authInstance.wsEmbed) throw errors.WalletServicesPluginError.web3AuthNotConnected();
|
|
46
|
+
this.wsEmbedInstance = authInstance.wsEmbed;
|
|
47
|
+
this.isInitialized = true;
|
|
48
|
+
this.status = IPlugin.PLUGIN_STATUS.READY;
|
|
49
|
+
this.emit(IPlugin.PLUGIN_EVENTS.READY);
|
|
50
|
+
}
|
|
51
|
+
initWithProvider() {
|
|
52
|
+
throw new Error("Method not implemented.");
|
|
53
|
+
}
|
|
54
|
+
async connect() {
|
|
55
|
+
// if web3auth is being used and connected to unsupported connector throw error
|
|
56
|
+
if (!this.isInitialized) throw errors.WalletServicesPluginError.notInitialized();
|
|
57
|
+
this.emit(IPlugin.PLUGIN_EVENTS.CONNECTING);
|
|
58
|
+
this.status = IPlugin.PLUGIN_STATUS.CONNECTING;
|
|
59
|
+
if (!this.provider) {
|
|
60
|
+
var _this$web3auth;
|
|
61
|
+
if ((_this$web3auth = this.web3auth) !== null && _this$web3auth !== void 0 && _this$web3auth.provider) {
|
|
62
|
+
this.provider = this.web3auth.provider;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
if (this.web3auth.status !== constants.CONNECTOR_STATUS.CONNECTED) {
|
|
66
|
+
throw errors.WalletServicesPluginError.web3AuthNotConnected();
|
|
67
|
+
} else if (!this.web3auth.provider) {
|
|
68
|
+
throw errors.WalletServicesPluginError.providerRequired();
|
|
69
|
+
}
|
|
70
|
+
try {
|
|
71
|
+
this.emit(IPlugin.PLUGIN_EVENTS.CONNECTED);
|
|
72
|
+
this.status = IPlugin.PLUGIN_STATUS.CONNECTED;
|
|
73
|
+
} catch (error) {
|
|
74
|
+
loglevel.log.error(error);
|
|
75
|
+
this.status = IPlugin.PLUGIN_STATUS.ERRORED;
|
|
76
|
+
this.emit(IPlugin.PLUGIN_EVENTS.ERRORED, {
|
|
77
|
+
error: error.message || "Something went wrong"
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
async showWalletConnectScanner(showWalletConnectParams) {
|
|
82
|
+
var _this$wsEmbedInstance2;
|
|
83
|
+
if (!((_this$wsEmbedInstance2 = this.wsEmbedInstance) !== null && _this$wsEmbedInstance2 !== void 0 && _this$wsEmbedInstance2.isLoggedIn)) throw errors.WalletServicesPluginError.walletPluginNotConnected();
|
|
84
|
+
return this.wsEmbedInstance.showWalletConnectScanner(showWalletConnectParams);
|
|
85
|
+
}
|
|
86
|
+
async showCheckout(showCheckoutParams) {
|
|
87
|
+
var _this$wsEmbedInstance3;
|
|
88
|
+
if (!((_this$wsEmbedInstance3 = this.wsEmbedInstance) !== null && _this$wsEmbedInstance3 !== void 0 && _this$wsEmbedInstance3.isLoggedIn)) throw errors.WalletServicesPluginError.walletPluginNotConnected();
|
|
89
|
+
return this.wsEmbedInstance.showCheckout(showCheckoutParams);
|
|
90
|
+
}
|
|
91
|
+
async showWalletUi(showWalletUiParams) {
|
|
92
|
+
var _this$wsEmbedInstance4;
|
|
93
|
+
if (!((_this$wsEmbedInstance4 = this.wsEmbedInstance) !== null && _this$wsEmbedInstance4 !== void 0 && _this$wsEmbedInstance4.isLoggedIn)) throw errors.WalletServicesPluginError.walletPluginNotConnected();
|
|
94
|
+
return this.wsEmbedInstance.showWalletUi(showWalletUiParams);
|
|
95
|
+
}
|
|
96
|
+
async showSwap(showSwapParams) {
|
|
97
|
+
var _this$wsEmbedInstance5;
|
|
98
|
+
if (!((_this$wsEmbedInstance5 = this.wsEmbedInstance) !== null && _this$wsEmbedInstance5 !== void 0 && _this$wsEmbedInstance5.isLoggedIn)) throw errors.WalletServicesPluginError.walletPluginNotConnected();
|
|
99
|
+
return this.wsEmbedInstance.showSwap(showSwapParams);
|
|
100
|
+
}
|
|
101
|
+
async cleanup() {
|
|
102
|
+
var _this$wsEmbedInstance6;
|
|
103
|
+
return (_this$wsEmbedInstance6 = this.wsEmbedInstance) === null || _this$wsEmbedInstance6 === void 0 ? void 0 : _this$wsEmbedInstance6.cleanUp();
|
|
104
|
+
}
|
|
105
|
+
async disconnect() {
|
|
106
|
+
var _this$wsEmbedInstance7;
|
|
107
|
+
if (this.status !== IPlugin.PLUGIN_STATUS.CONNECTED) throw errors.WalletServicesPluginError.invalidSession("Wallet Services plugin is not connected");
|
|
108
|
+
if ((_this$wsEmbedInstance7 = this.wsEmbedInstance) !== null && _this$wsEmbedInstance7 !== void 0 && _this$wsEmbedInstance7.isLoggedIn) {
|
|
109
|
+
await this.wsEmbedInstance.logout();
|
|
110
|
+
}
|
|
111
|
+
this.emit(IPlugin.PLUGIN_EVENTS.DISCONNECTED);
|
|
112
|
+
this.status = IPlugin.PLUGIN_STATUS.DISCONNECTED;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
const walletServicesPlugin = () => {
|
|
116
|
+
return () => {
|
|
117
|
+
return new WalletServicesPlugin();
|
|
118
|
+
};
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
Object.defineProperty(exports, "BUTTON_POSITION", {
|
|
122
|
+
enumerable: true,
|
|
123
|
+
get: function () { return wsEmbed.BUTTON_POSITION; }
|
|
124
|
+
});
|
|
125
|
+
Object.defineProperty(exports, "CONFIRMATION_STRATEGY", {
|
|
126
|
+
enumerable: true,
|
|
127
|
+
get: function () { return wsEmbed.CONFIRMATION_STRATEGY; }
|
|
128
|
+
});
|
|
129
|
+
exports.walletServicesPlugin = walletServicesPlugin;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var AccountAbstractionProvider = require('./providers/AccountAbstractionProvider.js');
|
|
4
|
+
var ethereumControllers = require('@toruslabs/ethereum-controllers');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
exports.accountAbstractionProvider = AccountAbstractionProvider.accountAbstractionProvider;
|
|
9
|
+
Object.defineProperty(exports, "BiconomySmartAccount", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: function () { return ethereumControllers.BiconomySmartAccount; }
|
|
12
|
+
});
|
|
13
|
+
Object.defineProperty(exports, "KernelSmartAccount", {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
get: function () { return ethereumControllers.KernelSmartAccount; }
|
|
16
|
+
});
|
|
17
|
+
Object.defineProperty(exports, "NexusSmartAccount", {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
get: function () { return ethereumControllers.NexusSmartAccount; }
|
|
20
|
+
});
|
|
21
|
+
Object.defineProperty(exports, "SMART_ACCOUNT", {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () { return ethereumControllers.SMART_ACCOUNT; }
|
|
24
|
+
});
|
|
25
|
+
Object.defineProperty(exports, "SafeSmartAccount", {
|
|
26
|
+
enumerable: true,
|
|
27
|
+
get: function () { return ethereumControllers.SafeSmartAccount; }
|
|
28
|
+
});
|
|
29
|
+
Object.defineProperty(exports, "TrustSmartAccount", {
|
|
30
|
+
enumerable: true,
|
|
31
|
+
get: function () { return ethereumControllers.TrustSmartAccount; }
|
|
32
|
+
});
|
package/dist/lib.cjs/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js
ADDED
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
|
4
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
5
|
+
var ethereumControllers = require('@toruslabs/ethereum-controllers');
|
|
6
|
+
var auth = require('@web3auth/auth');
|
|
7
|
+
var viem = require('viem');
|
|
8
|
+
var accountAbstraction = require('viem/account-abstraction');
|
|
9
|
+
var IChainInterface = require('../../../base/chain/IChainInterface.js');
|
|
10
|
+
var index = require('../../../base/errors/index.js');
|
|
11
|
+
var baseProvider = require('../../base-provider/baseProvider.js');
|
|
12
|
+
var ethRpcMiddlewares = require('../rpc/ethRpcMiddlewares.js');
|
|
13
|
+
var utils = require('./utils.js');
|
|
14
|
+
|
|
15
|
+
var _AccountAbstractionProvider;
|
|
16
|
+
class AccountAbstractionProvider extends baseProvider.BaseProvider {
|
|
17
|
+
constructor({
|
|
18
|
+
config,
|
|
19
|
+
state
|
|
20
|
+
}) {
|
|
21
|
+
super({
|
|
22
|
+
config,
|
|
23
|
+
state
|
|
24
|
+
});
|
|
25
|
+
_defineProperty(this, "PROVIDER_CHAIN_NAMESPACE", IChainInterface.CHAIN_NAMESPACES.EIP155);
|
|
26
|
+
_defineProperty(this, "_smartAccount", void 0);
|
|
27
|
+
_defineProperty(this, "_publicClient", void 0);
|
|
28
|
+
_defineProperty(this, "_bundlerClient", void 0);
|
|
29
|
+
_defineProperty(this, "_paymasterClient", void 0);
|
|
30
|
+
this.update({
|
|
31
|
+
chainId: config.chain.chainId
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
get smartAccount() {
|
|
35
|
+
return this._smartAccount;
|
|
36
|
+
}
|
|
37
|
+
get bundlerClient() {
|
|
38
|
+
return this._bundlerClient;
|
|
39
|
+
}
|
|
40
|
+
get paymasterClient() {
|
|
41
|
+
return this._paymasterClient;
|
|
42
|
+
}
|
|
43
|
+
get publicClient() {
|
|
44
|
+
return this._publicClient;
|
|
45
|
+
}
|
|
46
|
+
async enable() {
|
|
47
|
+
if (!this.state.eoaProvider) throw auth.providerErrors.custom({
|
|
48
|
+
message: "eoaProvider is not found in state, please pass it",
|
|
49
|
+
code: 4902
|
|
50
|
+
});
|
|
51
|
+
await this.setupProvider(this.state.eoaProvider);
|
|
52
|
+
return this._providerEngineProxy.request({
|
|
53
|
+
method: "eth_accounts"
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
async setupProvider(eoaProvider) {
|
|
57
|
+
var _this$config$bundlerC;
|
|
58
|
+
const {
|
|
59
|
+
currentChain
|
|
60
|
+
} = this;
|
|
61
|
+
const {
|
|
62
|
+
chainNamespace
|
|
63
|
+
} = currentChain;
|
|
64
|
+
if (chainNamespace !== this.PROVIDER_CHAIN_NAMESPACE) throw index.WalletInitializationError.incompatibleChainNameSpace("Invalid chain namespace");
|
|
65
|
+
const chain = viem.defineChain({
|
|
66
|
+
id: Number.parseInt(currentChain.chainId, 16),
|
|
67
|
+
// id in number form
|
|
68
|
+
name: currentChain.displayName,
|
|
69
|
+
rpcUrls: {
|
|
70
|
+
default: {
|
|
71
|
+
http: [currentChain.rpcTarget],
|
|
72
|
+
webSocket: [currentChain.wsTarget]
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
blockExplorers: currentChain.blockExplorerUrl ? {
|
|
76
|
+
default: {
|
|
77
|
+
name: "explorer",
|
|
78
|
+
// TODO: correct name if chain config has it
|
|
79
|
+
url: currentChain.blockExplorerUrl
|
|
80
|
+
}
|
|
81
|
+
} : undefined,
|
|
82
|
+
nativeCurrency: {
|
|
83
|
+
name: currentChain.tickerName,
|
|
84
|
+
symbol: currentChain.ticker,
|
|
85
|
+
decimals: currentChain.decimals || 18
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
// setup public client for viem smart account
|
|
89
|
+
this._publicClient = viem.createPublicClient({
|
|
90
|
+
chain,
|
|
91
|
+
transport: viem.http(currentChain.rpcTarget)
|
|
92
|
+
});
|
|
93
|
+
this._smartAccount = await this.config.smartAccountInit.getSmartAccount({
|
|
94
|
+
owner: eoaProvider,
|
|
95
|
+
client: this._publicClient
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
// setup bundler and paymaster
|
|
99
|
+
if (this.config.paymasterConfig) {
|
|
100
|
+
var _this$config$paymaste;
|
|
101
|
+
this._paymasterClient = accountAbstraction.createPaymasterClient(_objectSpread(_objectSpread({}, this.config.paymasterConfig), {}, {
|
|
102
|
+
transport: (_this$config$paymaste = this.config.paymasterConfig.transport) !== null && _this$config$paymaste !== void 0 ? _this$config$paymaste : viem.http(this.config.paymasterConfig.url)
|
|
103
|
+
}));
|
|
104
|
+
}
|
|
105
|
+
this._bundlerClient = accountAbstraction.createBundlerClient(_objectSpread(_objectSpread({}, this.config.bundlerConfig), {}, {
|
|
106
|
+
account: this.smartAccount,
|
|
107
|
+
client: this._publicClient,
|
|
108
|
+
transport: (_this$config$bundlerC = this.config.bundlerConfig.transport) !== null && _this$config$bundlerC !== void 0 ? _this$config$bundlerC : viem.http(this.config.bundlerConfig.url),
|
|
109
|
+
paymaster: this._paymasterClient
|
|
110
|
+
}));
|
|
111
|
+
const providerHandlers = utils.getProviderHandlers({
|
|
112
|
+
bundlerClient: this._bundlerClient,
|
|
113
|
+
smartAccount: this._smartAccount,
|
|
114
|
+
chain,
|
|
115
|
+
eoaProvider
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
// setup rpc engine and AA middleware
|
|
119
|
+
const engine = new auth.JRPCEngine();
|
|
120
|
+
const aaMiddleware = await ethRpcMiddlewares.createAaMiddleware({
|
|
121
|
+
eoaProvider,
|
|
122
|
+
handlers: providerHandlers
|
|
123
|
+
});
|
|
124
|
+
engine.push(aaMiddleware);
|
|
125
|
+
const eoaMiddleware = ethRpcMiddlewares.eoaProviderAsMiddleware(eoaProvider);
|
|
126
|
+
engine.push(eoaMiddleware);
|
|
127
|
+
const provider = auth.providerFromEngine(engine);
|
|
128
|
+
this.updateProviderEngineProxy(provider);
|
|
129
|
+
eoaProvider.once("chainChanged", chainId => {
|
|
130
|
+
this.update({
|
|
131
|
+
chainId
|
|
132
|
+
});
|
|
133
|
+
this.setupChainSwitchMiddleware();
|
|
134
|
+
this.emit("chainChanged", chainId);
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
async updateAccount(_params) {
|
|
138
|
+
throw auth.providerErrors.unsupportedMethod("updateAccount. Please call it on eoaProvider");
|
|
139
|
+
}
|
|
140
|
+
async switchChain(_params) {
|
|
141
|
+
throw auth.providerErrors.unsupportedMethod("switchChain. Please call it on eoaProvider");
|
|
142
|
+
}
|
|
143
|
+
async lookupNetwork() {
|
|
144
|
+
throw auth.providerErrors.unsupportedMethod("lookupNetwork. Please call it on eoaProvider");
|
|
145
|
+
}
|
|
146
|
+
async setupChainSwitchMiddleware() {
|
|
147
|
+
return this.setupProvider(this.state.eoaProvider);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
_AccountAbstractionProvider = AccountAbstractionProvider;
|
|
151
|
+
_defineProperty(AccountAbstractionProvider, "getProviderInstance", async params => {
|
|
152
|
+
const providerInstance = new _AccountAbstractionProvider({
|
|
153
|
+
config: params
|
|
154
|
+
});
|
|
155
|
+
await providerInstance.setupProvider(params.eoaProvider);
|
|
156
|
+
providerInstance.update({
|
|
157
|
+
eoaProvider: params.eoaProvider
|
|
158
|
+
});
|
|
159
|
+
return providerInstance;
|
|
160
|
+
});
|
|
161
|
+
const accountAbstractionProvider = async ({
|
|
162
|
+
accountAbstractionConfig,
|
|
163
|
+
chain,
|
|
164
|
+
chains,
|
|
165
|
+
provider
|
|
166
|
+
}) => {
|
|
167
|
+
let smartAccountInit;
|
|
168
|
+
const {
|
|
169
|
+
smartAccountType,
|
|
170
|
+
smartAccountConfig,
|
|
171
|
+
bundlerConfig,
|
|
172
|
+
paymasterConfig
|
|
173
|
+
} = accountAbstractionConfig;
|
|
174
|
+
switch (smartAccountType) {
|
|
175
|
+
case ethereumControllers.SMART_ACCOUNT.BICONOMY:
|
|
176
|
+
{
|
|
177
|
+
const {
|
|
178
|
+
BiconomySmartAccount
|
|
179
|
+
} = await import('@toruslabs/ethereum-controllers');
|
|
180
|
+
smartAccountInit = new BiconomySmartAccount(smartAccountConfig);
|
|
181
|
+
break;
|
|
182
|
+
}
|
|
183
|
+
case ethereumControllers.SMART_ACCOUNT.KERNEL:
|
|
184
|
+
{
|
|
185
|
+
const {
|
|
186
|
+
KernelSmartAccount
|
|
187
|
+
} = await import('@toruslabs/ethereum-controllers');
|
|
188
|
+
smartAccountInit = new KernelSmartAccount(smartAccountConfig);
|
|
189
|
+
break;
|
|
190
|
+
}
|
|
191
|
+
case ethereumControllers.SMART_ACCOUNT.NEXUS:
|
|
192
|
+
{
|
|
193
|
+
const {
|
|
194
|
+
NexusSmartAccount
|
|
195
|
+
} = await import('@toruslabs/ethereum-controllers');
|
|
196
|
+
smartAccountInit = new NexusSmartAccount(smartAccountConfig);
|
|
197
|
+
break;
|
|
198
|
+
}
|
|
199
|
+
case ethereumControllers.SMART_ACCOUNT.SAFE:
|
|
200
|
+
{
|
|
201
|
+
const {
|
|
202
|
+
SafeSmartAccount
|
|
203
|
+
} = await import('@toruslabs/ethereum-controllers');
|
|
204
|
+
smartAccountInit = new SafeSmartAccount(smartAccountConfig);
|
|
205
|
+
break;
|
|
206
|
+
}
|
|
207
|
+
case ethereumControllers.SMART_ACCOUNT.TRUST:
|
|
208
|
+
{
|
|
209
|
+
const {
|
|
210
|
+
TrustSmartAccount
|
|
211
|
+
} = await import('@toruslabs/ethereum-controllers');
|
|
212
|
+
smartAccountInit = new TrustSmartAccount(smartAccountConfig);
|
|
213
|
+
break;
|
|
214
|
+
}
|
|
215
|
+
default:
|
|
216
|
+
throw new Error("Smart account type not supported");
|
|
217
|
+
}
|
|
218
|
+
return AccountAbstractionProvider.getProviderInstance({
|
|
219
|
+
eoaProvider: provider,
|
|
220
|
+
smartAccountInit,
|
|
221
|
+
chain,
|
|
222
|
+
chains,
|
|
223
|
+
bundlerConfig,
|
|
224
|
+
paymasterConfig
|
|
225
|
+
});
|
|
226
|
+
};
|
|
227
|
+
|
|
228
|
+
Object.defineProperty(exports, "SMART_ACCOUNT", {
|
|
229
|
+
enumerable: true,
|
|
230
|
+
get: function () { return ethereumControllers.SMART_ACCOUNT; }
|
|
231
|
+
});
|
|
232
|
+
exports.accountAbstractionProvider = accountAbstractionProvider;
|