@web3auth/no-modal 9.6.0 → 10.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/757.noModal.cjs.js +226 -0
- package/dist/lib.cjs/adapters/auth-adapter/authAdapter.js +262 -0
- package/dist/lib.cjs/adapters/auth-adapter/config.js +17 -0
- package/dist/lib.cjs/adapters/base-evm-adapter/baseEvmAdapter.js +72 -0
- package/dist/lib.cjs/adapters/base-solana-adapter/baseSolanaAdapter.js +76 -0
- package/dist/lib.cjs/adapters/coinbase-adapter/coinbaseAdapter.js +156 -0
- package/dist/lib.cjs/adapters/default-evm-adapter/index.js +40 -0
- package/dist/lib.cjs/adapters/default-evm-adapter/injectedAdapters.js +42 -0
- package/dist/lib.cjs/adapters/default-evm-adapter/injectedEvmAdapter.js +160 -0
- package/dist/lib.cjs/adapters/default-solana-adapter/index.js +40 -0
- package/dist/lib.cjs/adapters/default-solana-adapter/injectedAdapters.js +53 -0
- package/dist/lib.cjs/adapters/default-solana-adapter/utils.js +16 -0
- package/dist/lib.cjs/adapters/default-solana-adapter/walletStandardAdapter.js +138 -0
- package/dist/lib.cjs/adapters/default-solana-adapter/walletStandardHandler.js +77 -0
- package/dist/lib.cjs/adapters/wallet-connect-v2-adapter/WalletConnectV2Provider.js +278 -0
- package/dist/lib.cjs/adapters/wallet-connect-v2-adapter/config.js +183 -0
- package/dist/lib.cjs/adapters/wallet-connect-v2-adapter/walletConnectV2Utils.js +165 -0
- package/dist/lib.cjs/adapters/wallet-connect-v2-adapter/walletConnectV2adapter.js +376 -0
- package/dist/lib.cjs/base/adapter/baseAdapter.js +117 -0
- package/dist/lib.cjs/base/adapter/constants.js +24 -0
- package/dist/lib.cjs/base/adapter/utils.js +66 -0
- package/dist/lib.cjs/base/chain/IChainInterface.js +22 -0
- package/dist/lib.cjs/base/chain/config.js +281 -0
- package/dist/lib.cjs/base/composables/index.js +5 -0
- package/dist/lib.cjs/base/errors/index.js +244 -0
- package/dist/lib.cjs/base/loglevel.js +7 -0
- package/dist/lib.cjs/base/plugin/IPlugin.js +31 -0
- package/dist/lib.cjs/base/plugin/errors.js +107 -0
- package/dist/lib.cjs/base/provider/IProvider.js +8 -0
- package/dist/lib.cjs/base/utils.js +56 -0
- package/dist/lib.cjs/base/wallet/index.js +31 -0
- package/dist/lib.cjs/index.js +200 -0
- package/dist/lib.cjs/noModal.js +98 -90
- package/dist/lib.cjs/plugins/nft-checkout-plugin/embed.js +134 -0
- package/dist/lib.cjs/plugins/nft-checkout-plugin/enums.js +24 -0
- package/dist/lib.cjs/plugins/nft-checkout-plugin/plugin.js +71 -0
- package/dist/lib.cjs/plugins/nft-checkout-plugin/utils.js +18 -0
- package/dist/lib.cjs/plugins/wallet-services-plugin/plugin.js +285 -0
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +164 -0
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/BiconomySmartAccount.js +29 -0
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/KernelSmartAccount.js +22 -0
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/NexusSmartAccount.js +30 -0
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/SafeSmartAccount.js +30 -0
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/TrustSmartAccount.js +29 -0
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/constants.js +11 -0
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/utils.js +134 -0
- package/dist/lib.cjs/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +174 -0
- package/dist/lib.cjs/providers/base-provider/CommonJRPCProvider.js +79 -0
- package/dist/lib.cjs/providers/base-provider/baseProvider.js +127 -0
- package/dist/lib.cjs/providers/base-provider/commonPrivateKeyProvider.js +89 -0
- package/dist/lib.cjs/providers/base-provider/jrpcClient.js +41 -0
- package/dist/lib.cjs/providers/base-provider/utils.js +12 -0
- package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +199 -0
- package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +165 -0
- package/dist/lib.cjs/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +22 -0
- package/dist/lib.cjs/providers/ethereum-provider/providers/converter.js +89 -0
- package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/EthereumPrivateKeyProvider.js +185 -0
- package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.js +27 -0
- package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +380 -0
- package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +10 -0
- package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +94 -0
- package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/ethPrivatekeyUtils.js +106 -0
- package/dist/lib.cjs/providers/ethereum-provider/providers/utils.js +29 -0
- package/dist/lib.cjs/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +75 -0
- package/dist/lib.cjs/providers/ethereum-provider/rpc/jrpcClient.js +41 -0
- package/dist/lib.cjs/providers/ethereum-provider/rpc/walletMidddleware.js +179 -0
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +51 -0
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +47 -0
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/injectedProviderProxy.js +12 -0
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/torus/providerHandlers.js +75 -0
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/torus/torusInjectedProvider.js +109 -0
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +12 -0
- package/dist/lib.cjs/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.js +180 -0
- package/dist/lib.cjs/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.js +103 -0
- package/dist/lib.cjs/providers/solana-provider/rpc/JrpcClient.js +47 -0
- package/dist/lib.cjs/providers/solana-provider/rpc/solanaRpcMiddlewares.js +97 -0
- package/dist/lib.cjs/providers/solana-provider/solanaWallet.js +62 -0
- package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +158 -0
- package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.js +89 -0
- package/dist/lib.cjs/providers/xrpl-provider/rpc/JrpcClient.js +48 -0
- package/dist/lib.cjs/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +73 -0
- package/dist/lib.cjs/react/index.js +16 -0
- package/dist/lib.cjs/react/no-modal/Web3AuthInnerContext.js +216 -0
- package/dist/lib.cjs/react/no-modal/Web3AuthProvider.js +15 -0
- package/dist/lib.cjs/react/no-modal/hooks/useWeb3Auth.js +15 -0
- package/dist/lib.cjs/react/wallet-services-plugin/WalletServicesContext.js +86 -0
- package/dist/lib.cjs/react/wallet-services-plugin/WalletServicesProvider.js +16 -0
- package/dist/lib.cjs/react/wallet-services-plugin/hooks/useWalletServicesPlugin.js +15 -0
- package/dist/lib.cjs/vue/index.js +15 -0
- package/dist/lib.cjs/vue/no-modal/Web3AuthProvider.js +222 -0
- package/dist/lib.cjs/vue/no-modal/composables/useWeb3Auth.js +13 -0
- package/dist/lib.cjs/vue/wallet-services-plugin/WalletServicesProvider.js +86 -0
- package/dist/lib.cjs/vue/wallet-services-plugin/composables/useWalletServicesPlugin.js +13 -0
- package/dist/lib.cjs/vue/wallet-services-plugin/context.js +5 -0
- package/dist/lib.esm/adapters/auth-adapter/authAdapter.js +260 -0
- package/dist/lib.esm/adapters/auth-adapter/config.js +15 -0
- package/dist/lib.esm/adapters/base-evm-adapter/baseEvmAdapter.js +70 -0
- package/dist/lib.esm/adapters/base-solana-adapter/baseSolanaAdapter.js +74 -0
- package/dist/lib.esm/adapters/coinbase-adapter/coinbaseAdapter.js +154 -0
- package/dist/lib.esm/adapters/default-evm-adapter/index.js +37 -0
- package/dist/lib.esm/adapters/default-evm-adapter/injectedAdapters.js +40 -0
- package/dist/lib.esm/adapters/default-evm-adapter/injectedEvmAdapter.js +158 -0
- package/dist/lib.esm/adapters/default-solana-adapter/index.js +37 -0
- package/dist/lib.esm/adapters/default-solana-adapter/injectedAdapters.js +51 -0
- package/dist/lib.esm/adapters/default-solana-adapter/utils.js +14 -0
- package/dist/lib.esm/adapters/default-solana-adapter/walletStandardAdapter.js +136 -0
- package/dist/lib.esm/adapters/default-solana-adapter/walletStandardHandler.js +75 -0
- package/dist/lib.esm/adapters/wallet-connect-v2-adapter/WalletConnectV2Provider.js +276 -0
- package/dist/lib.esm/adapters/wallet-connect-v2-adapter/config.js +172 -0
- package/dist/lib.esm/adapters/wallet-connect-v2-adapter/walletConnectV2Utils.js +158 -0
- package/dist/lib.esm/adapters/wallet-connect-v2-adapter/walletConnectV2adapter.js +374 -0
- package/dist/lib.esm/base/adapter/baseAdapter.js +115 -0
- package/dist/lib.esm/base/adapter/constants.js +20 -0
- package/dist/lib.esm/base/adapter/utils.js +60 -0
- package/dist/lib.esm/base/chain/IChainInterface.js +19 -0
- package/dist/lib.esm/base/chain/config.js +276 -0
- package/dist/lib.esm/base/composables/index.js +3 -0
- package/dist/lib.esm/base/errors/index.js +237 -0
- package/dist/lib.esm/base/loglevel.js +5 -0
- package/dist/lib.esm/base/plugin/IPlugin.js +24 -0
- package/dist/lib.esm/base/plugin/errors.js +104 -0
- package/dist/lib.esm/base/provider/IProvider.js +6 -0
- package/dist/lib.esm/base/utils.js +46 -0
- package/dist/lib.esm/base/wallet/index.js +25 -0
- package/dist/lib.esm/index.js +58 -0
- package/dist/lib.esm/noModal.js +12 -4
- package/dist/lib.esm/plugins/nft-checkout-plugin/embed.js +132 -0
- package/dist/lib.esm/plugins/nft-checkout-plugin/enums.js +20 -0
- package/dist/lib.esm/plugins/nft-checkout-plugin/plugin.js +69 -0
- package/dist/lib.esm/plugins/nft-checkout-plugin/utils.js +15 -0
- package/dist/lib.esm/plugins/wallet-services-plugin/plugin.js +276 -0
- package/dist/lib.esm/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +162 -0
- package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/BiconomySmartAccount.js +27 -0
- package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/KernelSmartAccount.js +20 -0
- package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/NexusSmartAccount.js +28 -0
- package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/SafeSmartAccount.js +28 -0
- package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/TrustSmartAccount.js +27 -0
- package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/constants.js +9 -0
- package/dist/lib.esm/providers/account-abstraction-provider/providers/utils.js +132 -0
- package/dist/lib.esm/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +171 -0
- package/dist/lib.esm/providers/base-provider/CommonJRPCProvider.js +77 -0
- package/dist/lib.esm/providers/base-provider/baseProvider.js +125 -0
- package/dist/lib.esm/providers/base-provider/commonPrivateKeyProvider.js +87 -0
- package/dist/lib.esm/providers/base-provider/jrpcClient.js +37 -0
- package/dist/lib.esm/providers/base-provider/utils.js +6 -0
- package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +197 -0
- package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +163 -0
- package/dist/lib.esm/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +20 -0
- package/dist/lib.esm/providers/ethereum-provider/providers/converter.js +85 -0
- package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/EthereumPrivateKeyProvider.js +183 -0
- package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.js +21 -0
- package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +378 -0
- package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +8 -0
- package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +88 -0
- package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/ethPrivatekeyUtils.js +104 -0
- package/dist/lib.esm/providers/ethereum-provider/providers/utils.js +24 -0
- package/dist/lib.esm/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +71 -0
- package/dist/lib.esm/providers/ethereum-provider/rpc/jrpcClient.js +37 -0
- package/dist/lib.esm/providers/ethereum-provider/rpc/walletMidddleware.js +177 -0
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +49 -0
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +45 -0
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/injectedProviderProxy.js +10 -0
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/torus/providerHandlers.js +73 -0
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/torus/torusInjectedProvider.js +107 -0
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +10 -0
- package/dist/lib.esm/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.js +178 -0
- package/dist/lib.esm/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.js +101 -0
- package/dist/lib.esm/providers/solana-provider/rpc/JrpcClient.js +42 -0
- package/dist/lib.esm/providers/solana-provider/rpc/solanaRpcMiddlewares.js +89 -0
- package/dist/lib.esm/providers/solana-provider/solanaWallet.js +60 -0
- package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +156 -0
- package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.js +87 -0
- package/dist/lib.esm/providers/xrpl-provider/rpc/JrpcClient.js +43 -0
- package/dist/lib.esm/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +67 -0
- package/dist/lib.esm/react/index.js +5 -0
- package/dist/lib.esm/react/no-modal/Web3AuthInnerContext.js +213 -0
- package/dist/lib.esm/react/no-modal/Web3AuthProvider.js +13 -0
- package/dist/lib.esm/react/no-modal/hooks/useWeb3Auth.js +13 -0
- package/dist/lib.esm/react/wallet-services-plugin/WalletServicesContext.js +83 -0
- package/dist/lib.esm/react/wallet-services-plugin/WalletServicesProvider.js +14 -0
- package/dist/lib.esm/react/wallet-services-plugin/hooks/useWalletServicesPlugin.js +13 -0
- package/dist/lib.esm/vue/index.js +5 -0
- package/dist/lib.esm/vue/no-modal/Web3AuthProvider.js +220 -0
- package/dist/lib.esm/vue/no-modal/composables/useWeb3Auth.js +11 -0
- package/dist/lib.esm/vue/wallet-services-plugin/WalletServicesProvider.js +84 -0
- package/dist/lib.esm/vue/wallet-services-plugin/composables/useWalletServicesPlugin.js +11 -0
- package/dist/lib.esm/vue/wallet-services-plugin/context.js +3 -0
- package/dist/noModal.cjs.js +26314 -364
- package/dist/noModal.umd.min.js +1 -1
- package/dist/noModal.umd.min.js.LICENSE.txt +54 -0
- package/dist/types/adapters/auth-adapter/authAdapter.d.ts +42 -0
- package/dist/types/adapters/auth-adapter/config.d.ts +2 -0
- package/dist/types/adapters/auth-adapter/index.d.ts +3 -0
- package/dist/types/adapters/auth-adapter/interface.d.ts +11 -0
- package/dist/types/adapters/base-evm-adapter/baseEvmAdapter.d.ts +7 -0
- package/dist/types/adapters/base-evm-adapter/index.d.ts +1 -0
- package/dist/types/adapters/base-solana-adapter/baseSolanaAdapter.d.ts +7 -0
- package/dist/types/adapters/base-solana-adapter/index.d.ts +1 -0
- package/dist/types/adapters/coinbase-adapter/coinbaseAdapter.d.ts +33 -0
- package/dist/types/adapters/coinbase-adapter/index.d.ts +1 -0
- package/dist/types/adapters/default-evm-adapter/index.d.ts +6 -0
- package/dist/types/adapters/default-evm-adapter/injectedAdapters.d.ts +4 -0
- package/dist/types/adapters/default-evm-adapter/injectedEvmAdapter.d.ts +30 -0
- package/dist/types/adapters/default-solana-adapter/index.d.ts +6 -0
- package/dist/types/adapters/default-solana-adapter/injectedAdapters.d.ts +4 -0
- package/dist/types/adapters/default-solana-adapter/utils.d.ts +3 -0
- package/dist/types/adapters/default-solana-adapter/walletStandardAdapter.d.ts +31 -0
- package/dist/types/adapters/default-solana-adapter/walletStandardHandler.d.ts +27 -0
- package/dist/types/adapters/index.d.ts +7 -0
- package/dist/types/adapters/wallet-connect-v2-adapter/WalletConnectV2Provider.d.ts +36 -0
- package/dist/types/adapters/wallet-connect-v2-adapter/config.d.ts +35 -0
- package/dist/types/adapters/wallet-connect-v2-adapter/index.d.ts +4 -0
- package/dist/types/adapters/wallet-connect-v2-adapter/interface.d.ts +18 -0
- package/dist/types/adapters/wallet-connect-v2-adapter/utils.d.ts +3 -0
- package/dist/types/adapters/wallet-connect-v2-adapter/walletConnectV2Utils.d.ts +23 -0
- package/dist/types/adapters/wallet-connect-v2-adapter/walletConnectV2adapter.d.ts +42 -0
- package/dist/types/base/adapter/baseAdapter.d.ts +44 -0
- package/dist/types/base/adapter/constants.d.ts +22 -0
- package/dist/types/base/adapter/index.d.ts +4 -0
- package/dist/types/base/adapter/interfaces.d.ts +143 -0
- package/dist/types/base/adapter/utils.d.ts +5 -0
- package/dist/types/base/chain/IChainInterface.d.ts +59 -0
- package/dist/types/base/chain/config.d.ts +5 -0
- package/dist/types/base/composables/index.d.ts +1 -0
- package/dist/types/base/core/IWeb3Auth.d.ts +101 -0
- package/dist/types/base/errors/index.d.ts +69 -0
- package/dist/types/base/hooks/index.d.ts +37 -0
- package/dist/types/base/index.d.ts +13 -0
- package/dist/types/base/interfaces.d.ts +44 -0
- package/dist/types/base/loglevel.d.ts +2 -0
- package/dist/types/base/plugin/IPlugin.d.ts +53 -0
- package/dist/types/base/plugin/errors.d.ts +28 -0
- package/dist/types/base/plugin/index.d.ts +2 -0
- package/dist/types/base/provider/IProvider.d.ts +16 -0
- package/dist/types/base/utils.d.ts +9 -0
- package/dist/types/base/wallet/index.d.ts +33 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/noModal.d.ts +2 -2
- package/dist/types/plugins/index.d.ts +2 -0
- package/dist/types/plugins/nft-checkout-plugin/embed.d.ts +24 -0
- package/dist/types/plugins/nft-checkout-plugin/enums.d.ts +14 -0
- package/dist/types/plugins/nft-checkout-plugin/index.d.ts +2 -0
- package/dist/types/plugins/nft-checkout-plugin/plugin.d.ts +23 -0
- package/dist/types/plugins/nft-checkout-plugin/utils.d.ts +3 -0
- package/dist/types/plugins/wallet-services-plugin/index.d.ts +1 -0
- package/dist/types/plugins/wallet-services-plugin/plugin.d.ts +51 -0
- package/dist/types/providers/account-abstraction-provider/index.d.ts +1 -0
- package/dist/types/providers/account-abstraction-provider/providers/AccountAbstractionProvider.d.ts +46 -0
- package/dist/types/providers/account-abstraction-provider/providers/index.d.ts +3 -0
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/BiconomySmartAccount.d.ts +14 -0
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/KernelSmartAccount.d.ts +13 -0
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/LightSmartAccount.d.ts +14 -0
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/NexusSmartAccount.d.ts +14 -0
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/SafeSmartAccount.d.ts +13 -0
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/SimpleSmartAccount.d.ts +13 -0
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/TrustSmartAccount.d.ts +13 -0
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/constants.d.ts +9 -0
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/index.d.ts +6 -0
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/types.d.ts +22 -0
- package/dist/types/providers/account-abstraction-provider/providers/types.d.ts +17 -0
- package/dist/types/providers/account-abstraction-provider/providers/utils.d.ts +10 -0
- package/dist/types/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.d.ts +8 -0
- package/dist/types/providers/account-abstraction-provider/rpc/index.d.ts +1 -0
- package/dist/types/providers/base-provider/CommonJRPCProvider.d.ts +20 -0
- package/dist/types/providers/base-provider/baseProvider.d.ts +39 -0
- package/dist/types/providers/base-provider/commonPrivateKeyProvider.d.ts +31 -0
- package/dist/types/providers/base-provider/index.d.ts +5 -0
- package/dist/types/providers/base-provider/interfaces.d.ts +3 -0
- package/dist/types/providers/base-provider/jrpcClient.d.ts +8 -0
- package/dist/types/providers/base-provider/utils.d.ts +2 -0
- package/dist/types/providers/ethereum-mpc-provider/index.d.ts +1 -0
- package/dist/types/providers/ethereum-mpc-provider/providers/index.d.ts +1 -0
- package/dist/types/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.d.ts +65 -0
- package/dist/types/providers/ethereum-mpc-provider/providers/signingProviders/index.d.ts +1 -0
- package/dist/types/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.d.ts +12 -0
- package/dist/types/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.d.ts +3 -0
- package/dist/types/providers/ethereum-mpc-provider/rpc/interfaces.d.ts +15 -0
- package/dist/types/providers/ethereum-provider/index.d.ts +2 -0
- package/dist/types/providers/ethereum-provider/providers/converter.d.ts +15 -0
- package/dist/types/providers/ethereum-provider/providers/index.d.ts +1 -0
- package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/EthereumPrivateKeyProvider.d.ts +30 -0
- package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.d.ts +16 -0
- package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.d.ts +28 -0
- package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/index.d.ts +4 -0
- package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.d.ts +46 -0
- package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.d.ts +12 -0
- package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/ethPrivatekeyUtils.d.ts +9 -0
- package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/index.d.ts +2 -0
- package/dist/types/providers/ethereum-provider/providers/utils.d.ts +5 -0
- package/dist/types/providers/ethereum-provider/rpc/ethRpcMiddlewares.d.ts +5 -0
- package/dist/types/providers/ethereum-provider/rpc/index.d.ts +4 -0
- package/dist/types/providers/ethereum-provider/rpc/interfaces.d.ts +65 -0
- package/dist/types/providers/ethereum-provider/rpc/jrpcClient.d.ts +8 -0
- package/dist/types/providers/ethereum-provider/rpc/walletMidddleware.d.ts +3 -0
- package/dist/types/providers/index.d.ts +6 -0
- package/dist/types/providers/solana-provider/index.d.ts +4 -0
- package/dist/types/providers/solana-provider/interface.d.ts +39 -0
- package/dist/types/providers/solana-provider/providers/index.d.ts +2 -0
- package/dist/types/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.d.ts +16 -0
- package/dist/types/providers/solana-provider/providers/injectedProviders/base/providerHandlers.d.ts +3 -0
- package/dist/types/providers/solana-provider/providers/injectedProviders/index.d.ts +3 -0
- package/dist/types/providers/solana-provider/providers/injectedProviders/injectedProviderProxy.d.ts +3 -0
- package/dist/types/providers/solana-provider/providers/injectedProviders/interface.d.ts +5 -0
- package/dist/types/providers/solana-provider/providers/injectedProviders/torus/providerHandlers.d.ts +3 -0
- package/dist/types/providers/solana-provider/providers/injectedProviders/torus/torusInjectedProvider.d.ts +18 -0
- package/dist/types/providers/solana-provider/providers/injectedProviders/walletStandardProvider.d.ts +6 -0
- package/dist/types/providers/solana-provider/providers/privateKeyProvider/index.d.ts +1 -0
- package/dist/types/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.d.ts +31 -0
- package/dist/types/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.d.ts +7 -0
- package/dist/types/providers/solana-provider/rpc/JrpcClient.d.ts +9 -0
- package/dist/types/providers/solana-provider/rpc/index.d.ts +3 -0
- package/dist/types/providers/solana-provider/rpc/interfaces.d.ts +42 -0
- package/dist/types/providers/solana-provider/rpc/solanaRpcMiddlewares.d.ts +20 -0
- package/dist/types/providers/solana-provider/solanaWallet.d.ts +14 -0
- package/dist/types/providers/xrpl-provider/index.d.ts +1 -0
- package/dist/types/providers/xrpl-provider/providers/index.d.ts +1 -0
- package/dist/types/providers/xrpl-provider/providers/privateKeyProviders/constants.d.ts +5 -0
- package/dist/types/providers/xrpl-provider/providers/privateKeyProviders/index.d.ts +3 -0
- package/dist/types/providers/xrpl-provider/providers/privateKeyProviders/interface.d.ts +2 -0
- package/dist/types/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.d.ts +26 -0
- package/dist/types/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.d.ts +7 -0
- package/dist/types/providers/xrpl-provider/rpc/JrpcClient.d.ts +9 -0
- package/dist/types/providers/xrpl-provider/rpc/xrplRpcMiddlewares.d.ts +52 -0
- package/dist/types/react/index.d.ts +2 -0
- package/dist/types/react/no-modal/Web3AuthInnerContext.d.ts +4 -0
- package/dist/types/react/no-modal/Web3AuthProvider.d.ts +3 -0
- package/dist/types/react/no-modal/hooks/index.d.ts +1 -0
- package/dist/types/react/no-modal/hooks/useWeb3Auth.d.ts +2 -0
- package/dist/types/react/no-modal/index.d.ts +3 -0
- package/dist/types/react/no-modal/interfaces.d.ts +15 -0
- package/dist/types/react/wallet-services-plugin/WalletServicesContext.d.ts +7 -0
- package/dist/types/react/wallet-services-plugin/WalletServicesProvider.d.ts +7 -0
- package/dist/types/react/wallet-services-plugin/hooks/index.d.ts +1 -0
- package/dist/types/react/wallet-services-plugin/hooks/useWalletServicesPlugin.d.ts +2 -0
- package/dist/types/react/wallet-services-plugin/index.d.ts +4 -0
- package/dist/types/react/wallet-services-plugin/interfaces.d.ts +5 -0
- package/dist/types/vue/index.d.ts +2 -0
- package/dist/types/vue/no-modal/Web3AuthProvider.d.ts +13 -0
- package/dist/types/vue/no-modal/composables/index.d.ts +1 -0
- package/dist/types/vue/no-modal/composables/useWeb3Auth.d.ts +2 -0
- package/dist/types/vue/no-modal/index.d.ts +3 -0
- package/dist/types/vue/no-modal/interfaces.d.ts +42 -0
- package/dist/types/vue/wallet-services-plugin/WalletServicesProvider.d.ts +1 -0
- package/dist/types/vue/wallet-services-plugin/composables/index.d.ts +1 -0
- package/dist/types/vue/wallet-services-plugin/composables/useWalletServicesPlugin.d.ts +2 -0
- package/dist/types/vue/wallet-services-plugin/context.d.ts +3 -0
- package/dist/types/vue/wallet-services-plugin/index.d.ts +4 -0
- package/dist/types/vue/wallet-services-plugin/interfaces.d.ts +13 -0
- package/package.json +76 -15
- package/README.md +0 -82
- package/dist/noModal.esm.js +0 -359
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import _objectSpread from '@babel/runtime/helpers/objectSpread2';
|
|
2
|
+
import { isHexString, addHexPrefix } from '@ethereumjs/util';
|
|
3
|
+
import { providerErrors } from '@web3auth/auth';
|
|
4
|
+
import { createWalletClient, http } from 'viem';
|
|
5
|
+
import { log } from '../../../base/loglevel.js';
|
|
6
|
+
|
|
7
|
+
function getProviderHandlers({
|
|
8
|
+
bundlerClient,
|
|
9
|
+
smartAccount,
|
|
10
|
+
chain,
|
|
11
|
+
eoaProvider
|
|
12
|
+
}) {
|
|
13
|
+
const walletClient = createWalletClient({
|
|
14
|
+
account: smartAccount,
|
|
15
|
+
chain,
|
|
16
|
+
transport: http()
|
|
17
|
+
});
|
|
18
|
+
return {
|
|
19
|
+
getAccounts: async _ => {
|
|
20
|
+
const [smartAccounts, eoaAccounts] = await Promise.all([smartAccount.getAddress(), eoaProvider.request({
|
|
21
|
+
method: "eth_accounts"
|
|
22
|
+
})]);
|
|
23
|
+
log.info("smartAccounts", smartAccounts);
|
|
24
|
+
log.info("eoaAccounts", eoaAccounts);
|
|
25
|
+
return [smartAccounts, ...eoaAccounts];
|
|
26
|
+
},
|
|
27
|
+
getPrivateKey: async _ => {
|
|
28
|
+
throw providerErrors.custom({
|
|
29
|
+
message: "Smart accounts do not have private key",
|
|
30
|
+
code: 4903
|
|
31
|
+
});
|
|
32
|
+
},
|
|
33
|
+
getPublicKey: async _ => {
|
|
34
|
+
throw providerErrors.custom({
|
|
35
|
+
message: "Smart accounts do not have a public key. Use address instead.",
|
|
36
|
+
code: 4903
|
|
37
|
+
});
|
|
38
|
+
},
|
|
39
|
+
processTransaction: async txParams => {
|
|
40
|
+
if (txParams.input && !txParams.data) txParams.data = addHexPrefix(txParams.input);
|
|
41
|
+
const {
|
|
42
|
+
to,
|
|
43
|
+
value,
|
|
44
|
+
data
|
|
45
|
+
} = txParams;
|
|
46
|
+
// @ts-expect-error viem types are too deep
|
|
47
|
+
const userOperationParams = {
|
|
48
|
+
account: smartAccount,
|
|
49
|
+
calls: [{
|
|
50
|
+
to,
|
|
51
|
+
// Explicit conversation required to avoid value being passed as hex
|
|
52
|
+
value: BigInt(value),
|
|
53
|
+
data
|
|
54
|
+
}]
|
|
55
|
+
// should not use maxFeePerGas/maxPriorityFeePerGas from transaction params since that's fee for transaction not user operation and let bundler handle it instead
|
|
56
|
+
};
|
|
57
|
+
const userOpHash = await bundlerClient.sendUserOperation(userOperationParams);
|
|
58
|
+
const txReceipt = await bundlerClient.waitForUserOperationReceipt({
|
|
59
|
+
hash: userOpHash
|
|
60
|
+
});
|
|
61
|
+
if (!txReceipt.success) {
|
|
62
|
+
throw providerErrors.custom({
|
|
63
|
+
message: txReceipt.reason,
|
|
64
|
+
code: 4905
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
return txReceipt.receipt.transactionHash;
|
|
68
|
+
},
|
|
69
|
+
processSignTransaction: async txParams => {
|
|
70
|
+
const {
|
|
71
|
+
to,
|
|
72
|
+
value,
|
|
73
|
+
data
|
|
74
|
+
} = txParams;
|
|
75
|
+
const request = await bundlerClient.prepareUserOperation({
|
|
76
|
+
account: smartAccount,
|
|
77
|
+
calls: [{
|
|
78
|
+
to,
|
|
79
|
+
value: BigInt(value),
|
|
80
|
+
data
|
|
81
|
+
}]
|
|
82
|
+
});
|
|
83
|
+
const signature = await smartAccount.signUserOperation({
|
|
84
|
+
callData: request.callData,
|
|
85
|
+
callGasLimit: request.callGasLimit,
|
|
86
|
+
maxFeePerGas: request.maxFeePerGas,
|
|
87
|
+
maxPriorityFeePerGas: request.maxPriorityFeePerGas,
|
|
88
|
+
nonce: request.nonce,
|
|
89
|
+
preVerificationGas: request.preVerificationGas,
|
|
90
|
+
verificationGasLimit: request.verificationGasLimit,
|
|
91
|
+
signature: request.signature
|
|
92
|
+
});
|
|
93
|
+
return signature;
|
|
94
|
+
},
|
|
95
|
+
processEthSignMessage: async (_, req) => {
|
|
96
|
+
return eoaProvider.request(req);
|
|
97
|
+
},
|
|
98
|
+
processPersonalMessage: async (msgParams, _) => {
|
|
99
|
+
const message = msgParams.data;
|
|
100
|
+
return walletClient.signMessage({
|
|
101
|
+
account: smartAccount,
|
|
102
|
+
message: isHexString(message) ? {
|
|
103
|
+
raw: message
|
|
104
|
+
} : message
|
|
105
|
+
});
|
|
106
|
+
},
|
|
107
|
+
processTypedMessageV4: async (msgParams, _) => {
|
|
108
|
+
try {
|
|
109
|
+
const data = typeof msgParams.data === "string" ? JSON.parse(msgParams.data) : msgParams.data;
|
|
110
|
+
const signature = await walletClient.signTypedData({
|
|
111
|
+
account: smartAccount,
|
|
112
|
+
domain: _objectSpread(_objectSpread({}, data.domain), {}, {
|
|
113
|
+
verifyingContract: data.domain.verifyingContract,
|
|
114
|
+
salt: data.domain.salt,
|
|
115
|
+
chainId: Number(data.domain.chainId)
|
|
116
|
+
}),
|
|
117
|
+
primaryType: data.primaryType,
|
|
118
|
+
types: data.types,
|
|
119
|
+
message: data.message
|
|
120
|
+
});
|
|
121
|
+
return signature;
|
|
122
|
+
} catch (error) {
|
|
123
|
+
throw providerErrors.custom({
|
|
124
|
+
message: error instanceof Error ? error.message : "Failed to sign typed data",
|
|
125
|
+
code: 4905
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
export { getProviderHandlers };
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import _objectSpread from '@babel/runtime/helpers/objectSpread2';
|
|
2
|
+
import { createScaffoldMiddleware, createAsyncMiddleware, rpcErrors } from '@web3auth/auth';
|
|
3
|
+
|
|
4
|
+
async function createAaMiddleware({
|
|
5
|
+
eoaProvider,
|
|
6
|
+
handlers
|
|
7
|
+
}) {
|
|
8
|
+
const [eoaAddress] = await eoaProvider.request({
|
|
9
|
+
method: "eth_accounts"
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Validates the keyholder address, and returns a normalized (i.e. lowercase)
|
|
14
|
+
* copy of it.
|
|
15
|
+
*
|
|
16
|
+
* an error
|
|
17
|
+
*/
|
|
18
|
+
async function validateAndNormalizeKeyholder(address, req) {
|
|
19
|
+
if (typeof address === "string" && address.length > 0) {
|
|
20
|
+
// ensure address is included in provided accounts
|
|
21
|
+
const accounts = await handlers.getAccounts(req);
|
|
22
|
+
const normalizedAccounts = accounts.map(_address => _address.toLowerCase());
|
|
23
|
+
const normalizedAddress = address.toLowerCase();
|
|
24
|
+
if (normalizedAccounts.includes(normalizedAddress)) {
|
|
25
|
+
return normalizedAddress;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
throw rpcErrors.invalidParams({
|
|
29
|
+
message: `Invalid parameters: must provide an Ethereum address.`
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
async function normalizeSignSenderAddress(address, req) {
|
|
33
|
+
// sender is EOA address
|
|
34
|
+
if (address.toLowerCase() === eoaAddress.toLowerCase()) {
|
|
35
|
+
return eoaAddress;
|
|
36
|
+
}
|
|
37
|
+
const [smartAccountAddress] = await handlers.getAccounts(req);
|
|
38
|
+
// sender is smart account address
|
|
39
|
+
if (address.toLowerCase() === smartAccountAddress.toLowerCase()) {
|
|
40
|
+
// use EOA address as sender for signing
|
|
41
|
+
return eoaAddress;
|
|
42
|
+
}
|
|
43
|
+
throw rpcErrors.invalidParams({
|
|
44
|
+
message: `Invalid parameters: must provide valid sender address.`
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
async function lookupAccounts(req, res) {
|
|
48
|
+
res.result = await handlers.getAccounts(req);
|
|
49
|
+
}
|
|
50
|
+
async function fetchPrivateKey(req, res) {
|
|
51
|
+
if (!handlers.getPrivateKey) {
|
|
52
|
+
throw rpcErrors.methodNotSupported();
|
|
53
|
+
}
|
|
54
|
+
res.result = await handlers.getPrivateKey(req);
|
|
55
|
+
}
|
|
56
|
+
async function sendTransaction(req, res) {
|
|
57
|
+
if (!handlers.processTransaction) {
|
|
58
|
+
throw rpcErrors.methodNotSupported();
|
|
59
|
+
}
|
|
60
|
+
const txParams = req.params[0] || {
|
|
61
|
+
from: ""
|
|
62
|
+
};
|
|
63
|
+
txParams.from = await validateAndNormalizeKeyholder(txParams.from, req);
|
|
64
|
+
res.result = handlers.processTransaction(txParams, req);
|
|
65
|
+
}
|
|
66
|
+
async function signTransaction(req, res) {
|
|
67
|
+
const txParams = req.params[0] || {
|
|
68
|
+
from: ""
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
// normalize sender address
|
|
72
|
+
if (txParams.from) {
|
|
73
|
+
txParams.from = await normalizeSignSenderAddress(txParams.from, req);
|
|
74
|
+
}
|
|
75
|
+
res.result = await handlers.processSignTransaction(txParams, req);
|
|
76
|
+
}
|
|
77
|
+
async function ethSign(req, res) {
|
|
78
|
+
let msgParams = req.params;
|
|
79
|
+
const extraParams = req.params[2] || {};
|
|
80
|
+
if (Array.isArray(req.params)) {
|
|
81
|
+
if (!(req.params.length === 2)) throw new Error(`WalletMiddleware - incorrect params for ${req.method} method. expected [address, message]`);
|
|
82
|
+
const params = req.params;
|
|
83
|
+
const address = params[0];
|
|
84
|
+
const message = params[1];
|
|
85
|
+
msgParams = {
|
|
86
|
+
from: address,
|
|
87
|
+
data: message
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
msgParams = _objectSpread(_objectSpread({}, extraParams), msgParams);
|
|
91
|
+
res.result = await handlers.processEthSignMessage(msgParams, req);
|
|
92
|
+
}
|
|
93
|
+
async function signTypedDataV4(req, res) {
|
|
94
|
+
if (!(req !== null && req !== void 0 && req.params)) throw new Error("WalletMiddleware - missing params");
|
|
95
|
+
let msgParams = req.params;
|
|
96
|
+
if (Array.isArray(req.params)) {
|
|
97
|
+
if (!(req.params.length === 2)) throw new Error(`WalletMiddleware - incorrect params for ${req.method} method. expected [address, typedData]`);
|
|
98
|
+
const params = req.params;
|
|
99
|
+
const address = params[0];
|
|
100
|
+
const message = params[1];
|
|
101
|
+
msgParams = {
|
|
102
|
+
from: address,
|
|
103
|
+
data: message
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
res.result = await handlers.processTypedMessageV4(msgParams, req);
|
|
107
|
+
}
|
|
108
|
+
async function personalSign(req, res) {
|
|
109
|
+
let msgParams = req.params;
|
|
110
|
+
const extraParams = req.params[2] || {};
|
|
111
|
+
if (Array.isArray(req.params)) {
|
|
112
|
+
if (!(req.params.length >= 2)) throw new Error(`WalletMiddleware - incorrect params for ${req.method} method. expected [message, address]`);
|
|
113
|
+
const params = req.params;
|
|
114
|
+
if (typeof params[0] === "object") {
|
|
115
|
+
const {
|
|
116
|
+
challenge,
|
|
117
|
+
address
|
|
118
|
+
} = params[0];
|
|
119
|
+
msgParams = {
|
|
120
|
+
from: address,
|
|
121
|
+
data: challenge
|
|
122
|
+
};
|
|
123
|
+
} else {
|
|
124
|
+
const message = params[0];
|
|
125
|
+
const address = params[1];
|
|
126
|
+
msgParams = {
|
|
127
|
+
from: address,
|
|
128
|
+
data: message
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
msgParams = _objectSpread(_objectSpread({}, extraParams), msgParams);
|
|
133
|
+
res.result = await handlers.processPersonalMessage(msgParams, req);
|
|
134
|
+
}
|
|
135
|
+
async function fetchPublicKey(req, res) {
|
|
136
|
+
if (!handlers.getPublicKey) {
|
|
137
|
+
throw rpcErrors.methodNotSupported();
|
|
138
|
+
}
|
|
139
|
+
res.result = await handlers.getPublicKey(req);
|
|
140
|
+
}
|
|
141
|
+
return createScaffoldMiddleware({
|
|
142
|
+
// account lookups
|
|
143
|
+
eth_accounts: createAsyncMiddleware(lookupAccounts),
|
|
144
|
+
eth_requestAccounts: createAsyncMiddleware(lookupAccounts),
|
|
145
|
+
eth_private_key: createAsyncMiddleware(fetchPrivateKey),
|
|
146
|
+
private_key: createAsyncMiddleware(fetchPrivateKey),
|
|
147
|
+
eth_public_key: createAsyncMiddleware(fetchPublicKey),
|
|
148
|
+
public_key: createAsyncMiddleware(fetchPublicKey),
|
|
149
|
+
// tx signatures
|
|
150
|
+
eth_sendTransaction: createAsyncMiddleware(sendTransaction),
|
|
151
|
+
eth_signTransaction: createAsyncMiddleware(signTransaction),
|
|
152
|
+
// message signatures
|
|
153
|
+
eth_sign: createAsyncMiddleware(ethSign),
|
|
154
|
+
eth_signTypedData_v4: createAsyncMiddleware(signTypedDataV4),
|
|
155
|
+
personal_sign: createAsyncMiddleware(personalSign)
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
function eoaProviderAsMiddleware(provider) {
|
|
159
|
+
return async (req, res, _next, end) => {
|
|
160
|
+
// send request to provider
|
|
161
|
+
try {
|
|
162
|
+
const providerRes = await provider.request(req);
|
|
163
|
+
res.result = providerRes;
|
|
164
|
+
return end();
|
|
165
|
+
} catch (error) {
|
|
166
|
+
return end(error);
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
export { createAaMiddleware, eoaProviderAsMiddleware };
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
|
+
import { createEventEmitterProxy } from '@toruslabs/base-controllers';
|
|
3
|
+
import { JRPCEngine, providerFromEngine, providerErrors } from '@web3auth/auth';
|
|
4
|
+
import { BaseProvider } from './baseProvider.js';
|
|
5
|
+
import { createJsonRpcClient } from './jrpcClient.js';
|
|
6
|
+
|
|
7
|
+
var _CommonJRPCProvider;
|
|
8
|
+
class CommonJRPCProvider extends BaseProvider {
|
|
9
|
+
constructor({
|
|
10
|
+
config,
|
|
11
|
+
state
|
|
12
|
+
}) {
|
|
13
|
+
super({
|
|
14
|
+
config,
|
|
15
|
+
state
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
async setupProvider() {
|
|
19
|
+
const {
|
|
20
|
+
networkMiddleware
|
|
21
|
+
} = createJsonRpcClient(this.config.chainConfig);
|
|
22
|
+
const engine = new JRPCEngine();
|
|
23
|
+
engine.push(networkMiddleware);
|
|
24
|
+
const provider = providerFromEngine(engine);
|
|
25
|
+
this.updateProviderEngineProxy(provider);
|
|
26
|
+
const newChainId = this.config.chainConfig.chainId;
|
|
27
|
+
if (this.state.chainId !== newChainId) {
|
|
28
|
+
this.emit("chainChanged", newChainId);
|
|
29
|
+
this.emit("connect", {
|
|
30
|
+
chainId: newChainId
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
this.update({
|
|
34
|
+
chainId: this.config.chainConfig.chainId
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
async switchChain(params) {
|
|
38
|
+
if (!this._providerEngineProxy) throw providerErrors.custom({
|
|
39
|
+
message: "Provider is not initialized",
|
|
40
|
+
code: 4902
|
|
41
|
+
});
|
|
42
|
+
const chainConfig = this.getChainConfig(params.chainId);
|
|
43
|
+
this.update({
|
|
44
|
+
chainId: "loading"
|
|
45
|
+
});
|
|
46
|
+
this.configure({
|
|
47
|
+
chainConfig
|
|
48
|
+
});
|
|
49
|
+
await this.setupProvider();
|
|
50
|
+
}
|
|
51
|
+
updateProviderEngineProxy(provider) {
|
|
52
|
+
if (this._providerEngineProxy) {
|
|
53
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
54
|
+
this._providerEngineProxy.setTarget(provider);
|
|
55
|
+
} else {
|
|
56
|
+
this._providerEngineProxy = createEventEmitterProxy(provider);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
getProviderEngineProxy() {
|
|
60
|
+
return this._providerEngineProxy;
|
|
61
|
+
}
|
|
62
|
+
lookupNetwork() {
|
|
63
|
+
throw new Error("Method not implemented.");
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
_CommonJRPCProvider = CommonJRPCProvider;
|
|
67
|
+
_defineProperty(CommonJRPCProvider, "getProviderInstance", async params => {
|
|
68
|
+
const providerFactory = new _CommonJRPCProvider({
|
|
69
|
+
config: {
|
|
70
|
+
chainConfig: params.chainConfig
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
await providerFactory.setupProvider();
|
|
74
|
+
return providerFactory;
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
export { CommonJRPCProvider };
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import _objectSpread from '@babel/runtime/helpers/objectSpread2';
|
|
2
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
3
|
+
import { BaseController, createEventEmitterProxy } from '@toruslabs/base-controllers';
|
|
4
|
+
import { rpcErrors } from '@web3auth/auth';
|
|
5
|
+
import { WalletInitializationError, WalletProviderError } from '../../base/errors/index.js';
|
|
6
|
+
|
|
7
|
+
class BaseProvider extends BaseController {
|
|
8
|
+
constructor({
|
|
9
|
+
config,
|
|
10
|
+
state
|
|
11
|
+
}) {
|
|
12
|
+
super({
|
|
13
|
+
config,
|
|
14
|
+
state
|
|
15
|
+
});
|
|
16
|
+
// should be Assigned in setupProvider
|
|
17
|
+
_defineProperty(this, "_providerEngineProxy", null);
|
|
18
|
+
// set to true when the keyExportEnabled flag is set by code.
|
|
19
|
+
// This is to prevent the flag from being overridden by the dashboard config.
|
|
20
|
+
_defineProperty(this, "keyExportFlagSetByCode", false);
|
|
21
|
+
if (!config.chainConfig) throw WalletInitializationError.invalidProviderConfigError("Please provide chainConfig");
|
|
22
|
+
if (!config.chainConfig.chainId) throw WalletInitializationError.invalidProviderConfigError("Please provide chainId inside chainConfig");
|
|
23
|
+
if (!config.chainConfig.rpcTarget) throw WalletInitializationError.invalidProviderConfigError("Please provide rpcTarget inside chainConfig");
|
|
24
|
+
if (typeof config.keyExportEnabled === "boolean") this.keyExportFlagSetByCode = true;
|
|
25
|
+
this.defaultState = {
|
|
26
|
+
chainId: "loading"
|
|
27
|
+
};
|
|
28
|
+
this.defaultConfig = {
|
|
29
|
+
chainConfig: config.chainConfig,
|
|
30
|
+
networks: {
|
|
31
|
+
[config.chainConfig.chainId]: config.chainConfig
|
|
32
|
+
},
|
|
33
|
+
keyExportEnabled: typeof config.keyExportEnabled === "boolean" ? config.keyExportEnabled : true
|
|
34
|
+
};
|
|
35
|
+
super.initialize();
|
|
36
|
+
}
|
|
37
|
+
get currentChainConfig() {
|
|
38
|
+
return this.config.chainConfig;
|
|
39
|
+
}
|
|
40
|
+
get provider() {
|
|
41
|
+
return this._providerEngineProxy;
|
|
42
|
+
}
|
|
43
|
+
get chainId() {
|
|
44
|
+
return this.state.chainId;
|
|
45
|
+
}
|
|
46
|
+
set provider(_) {
|
|
47
|
+
throw new Error("Method not implemented.");
|
|
48
|
+
}
|
|
49
|
+
async request(args) {
|
|
50
|
+
var _this$provider;
|
|
51
|
+
if (!args || typeof args !== "object" || Array.isArray(args)) {
|
|
52
|
+
throw rpcErrors.invalidRequest({
|
|
53
|
+
message: WalletProviderError.invalidRequestArgs().message,
|
|
54
|
+
data: _objectSpread(_objectSpread({}, args || {}), {}, {
|
|
55
|
+
cause: WalletProviderError.invalidRequestArgs().message
|
|
56
|
+
})
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
const {
|
|
60
|
+
method,
|
|
61
|
+
params
|
|
62
|
+
} = args;
|
|
63
|
+
if (typeof method !== "string" || method.length === 0) {
|
|
64
|
+
throw rpcErrors.invalidRequest({
|
|
65
|
+
message: WalletProviderError.invalidRequestMethod().message,
|
|
66
|
+
data: _objectSpread(_objectSpread({}, args || {}), {}, {
|
|
67
|
+
cause: WalletProviderError.invalidRequestMethod().message
|
|
68
|
+
})
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
if (params !== undefined && !Array.isArray(params) && (typeof params !== "object" || params === null)) {
|
|
72
|
+
throw rpcErrors.invalidRequest({
|
|
73
|
+
message: WalletProviderError.invalidRequestParams().message,
|
|
74
|
+
data: _objectSpread(_objectSpread({}, args || {}), {}, {
|
|
75
|
+
cause: WalletProviderError.invalidRequestParams().message
|
|
76
|
+
})
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
return (_this$provider = this.provider) === null || _this$provider === void 0 ? void 0 : _this$provider.request(args);
|
|
80
|
+
}
|
|
81
|
+
sendAsync(req, callback) {
|
|
82
|
+
if (callback) return this.send(req, callback);
|
|
83
|
+
return this.request(req);
|
|
84
|
+
}
|
|
85
|
+
send(req, callback) {
|
|
86
|
+
this.request(req).then(res => callback(null, {
|
|
87
|
+
result: res
|
|
88
|
+
})).catch(err => callback(err, null));
|
|
89
|
+
}
|
|
90
|
+
addChain(chainConfig) {
|
|
91
|
+
if (!chainConfig.chainId) throw rpcErrors.invalidParams("chainId is required");
|
|
92
|
+
if (!chainConfig.rpcTarget) throw rpcErrors.invalidParams("chainId is required");
|
|
93
|
+
this.configure({
|
|
94
|
+
networks: _objectSpread(_objectSpread({}, this.config.networks), {}, {
|
|
95
|
+
[chainConfig.chainId]: chainConfig
|
|
96
|
+
})
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
getChainConfig(chainId) {
|
|
100
|
+
var _this$config$networks;
|
|
101
|
+
const chainConfig = (_this$config$networks = this.config.networks) === null || _this$config$networks === void 0 ? void 0 : _this$config$networks[chainId];
|
|
102
|
+
if (!chainConfig) throw rpcErrors.invalidRequest(`Chain ${chainId} is not supported, please add chainConfig for it`);
|
|
103
|
+
return chainConfig;
|
|
104
|
+
}
|
|
105
|
+
updateProviderEngineProxy(provider) {
|
|
106
|
+
if (this._providerEngineProxy) {
|
|
107
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
108
|
+
this._providerEngineProxy.setTarget(provider);
|
|
109
|
+
} else {
|
|
110
|
+
this._providerEngineProxy = createEventEmitterProxy(provider);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
setKeyExportFlag(flag) {
|
|
114
|
+
if (!this.keyExportFlagSetByCode) {
|
|
115
|
+
this.configure({
|
|
116
|
+
keyExportEnabled: flag
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
getProviderEngineProxy() {
|
|
121
|
+
return this._providerEngineProxy;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
export { BaseProvider };
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
|
+
import { createEventEmitterProxy } from '@toruslabs/base-controllers';
|
|
3
|
+
import { JRPCEngine, providerFromEngine, createScaffoldMiddleware, createAsyncMiddleware } from '@web3auth/auth';
|
|
4
|
+
import { BaseProvider } from './baseProvider.js';
|
|
5
|
+
|
|
6
|
+
var _CommonPrivateKeyProvider;
|
|
7
|
+
class CommonPrivateKeyProvider extends BaseProvider {
|
|
8
|
+
constructor({
|
|
9
|
+
config,
|
|
10
|
+
state
|
|
11
|
+
}) {
|
|
12
|
+
super({
|
|
13
|
+
config,
|
|
14
|
+
state
|
|
15
|
+
});
|
|
16
|
+
// should be Assigned in setupProvider
|
|
17
|
+
_defineProperty(this, "_providerEngineProxy", null);
|
|
18
|
+
}
|
|
19
|
+
get provider() {
|
|
20
|
+
return this._providerEngineProxy;
|
|
21
|
+
}
|
|
22
|
+
set provider(_) {
|
|
23
|
+
throw new Error("Method not implemented.");
|
|
24
|
+
}
|
|
25
|
+
addChain(_) {
|
|
26
|
+
throw new Error("Method not implemented.");
|
|
27
|
+
}
|
|
28
|
+
async setupProvider(privKey) {
|
|
29
|
+
const privKeyMiddleware = this.getPrivKeyMiddleware(privKey);
|
|
30
|
+
const engine = new JRPCEngine();
|
|
31
|
+
engine.push(privKeyMiddleware);
|
|
32
|
+
const provider = providerFromEngine(engine);
|
|
33
|
+
this.updateProviderEngineProxy(provider);
|
|
34
|
+
}
|
|
35
|
+
updateProviderEngineProxy(provider) {
|
|
36
|
+
if (this._providerEngineProxy) {
|
|
37
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
38
|
+
this._providerEngineProxy.setTarget(provider);
|
|
39
|
+
} else {
|
|
40
|
+
this._providerEngineProxy = createEventEmitterProxy(provider);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
async switchChain(_) {
|
|
44
|
+
return Promise.resolve();
|
|
45
|
+
}
|
|
46
|
+
getProviderEngineProxy() {
|
|
47
|
+
return this._providerEngineProxy;
|
|
48
|
+
}
|
|
49
|
+
async lookupNetwork() {
|
|
50
|
+
return Promise.resolve("");
|
|
51
|
+
}
|
|
52
|
+
getPrivKeyMiddleware(privKey) {
|
|
53
|
+
const middleware = {
|
|
54
|
+
getPrivatekey: async () => {
|
|
55
|
+
if (!this.config.keyExportEnabled) throw new Error("Exporting private key is disabled. Please enable it in the provider config");
|
|
56
|
+
return privKey;
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
return this.createPrivKeyMiddleware(middleware);
|
|
60
|
+
}
|
|
61
|
+
createPrivKeyMiddleware({
|
|
62
|
+
getPrivatekey
|
|
63
|
+
}) {
|
|
64
|
+
async function getPrivatekeyHandler(_, res) {
|
|
65
|
+
try {
|
|
66
|
+
res.result = await getPrivatekey();
|
|
67
|
+
} catch (error) {
|
|
68
|
+
res.error = error instanceof Error ? error.message : error;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return createScaffoldMiddleware({
|
|
72
|
+
private_key: createAsyncMiddleware(getPrivatekeyHandler)
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
_CommonPrivateKeyProvider = CommonPrivateKeyProvider;
|
|
77
|
+
_defineProperty(CommonPrivateKeyProvider, "getProviderInstance", async params => {
|
|
78
|
+
const providerFactory = new _CommonPrivateKeyProvider({
|
|
79
|
+
config: {
|
|
80
|
+
chainConfig: params.chainConfig
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
await providerFactory.setupProvider(params.privKey);
|
|
84
|
+
return providerFactory;
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
export { CommonPrivateKeyProvider };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { createFetchMiddleware } from '@toruslabs/base-controllers';
|
|
2
|
+
import { mergeMiddleware } from '@web3auth/auth';
|
|
3
|
+
|
|
4
|
+
function createChainIdMiddleware(chainId) {
|
|
5
|
+
return (req, res, next, end) => {
|
|
6
|
+
if (req.method === "chainId") {
|
|
7
|
+
res.result = chainId;
|
|
8
|
+
return end();
|
|
9
|
+
}
|
|
10
|
+
return next();
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
function createProviderConfigMiddleware(providerConfig) {
|
|
14
|
+
return (req, res, next, end) => {
|
|
15
|
+
if (req.method === "provider_config") {
|
|
16
|
+
res.result = providerConfig;
|
|
17
|
+
return end();
|
|
18
|
+
}
|
|
19
|
+
return next();
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
function createJsonRpcClient(providerConfig) {
|
|
23
|
+
const {
|
|
24
|
+
chainId,
|
|
25
|
+
rpcTarget
|
|
26
|
+
} = providerConfig;
|
|
27
|
+
const fetchMiddleware = createFetchMiddleware({
|
|
28
|
+
rpcTarget
|
|
29
|
+
});
|
|
30
|
+
const networkMiddleware = mergeMiddleware([createChainIdMiddleware(chainId), createProviderConfigMiddleware(providerConfig), fetchMiddleware]);
|
|
31
|
+
return {
|
|
32
|
+
networkMiddleware,
|
|
33
|
+
fetchMiddleware
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export { createChainIdMiddleware, createJsonRpcClient, createProviderConfigMiddleware };
|