@web3auth/no-modal 9.5.4 → 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,197 @@
|
|
|
1
|
+
import _objectSpread from '@babel/runtime/helpers/objectSpread2';
|
|
2
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
3
|
+
import { isHexString } from '@ethereumjs/util';
|
|
4
|
+
import { providerErrors, JRPCEngine, providerFromEngine, rpcErrors } from '@web3auth/auth';
|
|
5
|
+
import { CHAIN_NAMESPACES } from '../../../../base/chain/IChainInterface.js';
|
|
6
|
+
import { WalletInitializationError } from '../../../../base/errors/index.js';
|
|
7
|
+
import { createEthAccountMiddleware } from '../../rpc/ethRpcMiddlewares.js';
|
|
8
|
+
import { getProviderHandlers } from './signingUtils.js';
|
|
9
|
+
import { TransactionFormatter } from '../../../ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js';
|
|
10
|
+
import { BaseProvider } from '../../../base-provider/baseProvider.js';
|
|
11
|
+
import { createEthMiddleware, createEthChainSwitchMiddleware } from '../../../ethereum-provider/rpc/ethRpcMiddlewares.js';
|
|
12
|
+
import { createEthJsonRpcClient } from '../../../ethereum-provider/rpc/jrpcClient.js';
|
|
13
|
+
|
|
14
|
+
var _EthereumSigningProvider;
|
|
15
|
+
class EthereumSigningProvider extends BaseProvider {
|
|
16
|
+
constructor({
|
|
17
|
+
config,
|
|
18
|
+
state
|
|
19
|
+
}) {
|
|
20
|
+
super({
|
|
21
|
+
config: {
|
|
22
|
+
chainConfig: _objectSpread(_objectSpread({}, config.chainConfig), {}, {
|
|
23
|
+
chainNamespace: CHAIN_NAMESPACES.EIP155
|
|
24
|
+
})
|
|
25
|
+
},
|
|
26
|
+
state
|
|
27
|
+
});
|
|
28
|
+
_defineProperty(this, "PROVIDER_CHAIN_NAMESPACE", CHAIN_NAMESPACES.EIP155);
|
|
29
|
+
}
|
|
30
|
+
async enable() {
|
|
31
|
+
if (!this.state.signMethods) throw providerErrors.custom({
|
|
32
|
+
message: "signMethods are not found in state, plz pass it in constructor state param",
|
|
33
|
+
code: 4902
|
|
34
|
+
});
|
|
35
|
+
await this.setupProvider(this.state.signMethods);
|
|
36
|
+
return this._providerEngineProxy.request({
|
|
37
|
+
method: "eth_accounts"
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
async setupProvider({
|
|
41
|
+
sign,
|
|
42
|
+
getPublic
|
|
43
|
+
}) {
|
|
44
|
+
const {
|
|
45
|
+
chainNamespace
|
|
46
|
+
} = this.config.chainConfig;
|
|
47
|
+
if (chainNamespace !== this.PROVIDER_CHAIN_NAMESPACE) throw WalletInitializationError.incompatibleChainNameSpace("Invalid chain namespace");
|
|
48
|
+
const txFormatter = new TransactionFormatter({
|
|
49
|
+
getProviderEngineProxy: this.getProviderEngineProxy.bind(this)
|
|
50
|
+
});
|
|
51
|
+
const providerHandlers = getProviderHandlers({
|
|
52
|
+
txFormatter,
|
|
53
|
+
sign,
|
|
54
|
+
getPublic,
|
|
55
|
+
getProviderEngineProxy: this.getProviderEngineProxy.bind(this)
|
|
56
|
+
});
|
|
57
|
+
const ethMiddleware = createEthMiddleware(providerHandlers);
|
|
58
|
+
const chainSwitchMiddleware = this.getChainSwitchMiddleware();
|
|
59
|
+
const engine = new JRPCEngine();
|
|
60
|
+
// Not a partial anymore because of checks in ctor
|
|
61
|
+
const {
|
|
62
|
+
networkMiddleware
|
|
63
|
+
} = createEthJsonRpcClient(this.config.chainConfig);
|
|
64
|
+
engine.push(ethMiddleware);
|
|
65
|
+
engine.push(chainSwitchMiddleware);
|
|
66
|
+
engine.push(this.getAccountMiddleware());
|
|
67
|
+
engine.push(networkMiddleware);
|
|
68
|
+
const provider = providerFromEngine(engine);
|
|
69
|
+
this.updateProviderEngineProxy(provider);
|
|
70
|
+
await txFormatter.init();
|
|
71
|
+
await this.lookupNetwork();
|
|
72
|
+
this.state.signMethods = {
|
|
73
|
+
sign,
|
|
74
|
+
getPublic
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
async updateAccount(params) {
|
|
78
|
+
if (!this._providerEngineProxy) throw providerErrors.custom({
|
|
79
|
+
message: "Provider is not initialized",
|
|
80
|
+
code: 4902
|
|
81
|
+
});
|
|
82
|
+
const currentSignMethods = this.state.signMethods;
|
|
83
|
+
if (!currentSignMethods) {
|
|
84
|
+
throw providerErrors.custom({
|
|
85
|
+
message: "signing methods are unavailable ",
|
|
86
|
+
code: 4092
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
const currentPubKey = (await currentSignMethods.getPublic()).toString("hex");
|
|
90
|
+
const updatePubKey = (await params.signMethods.getPublic()).toString("hex");
|
|
91
|
+
if (currentPubKey !== updatePubKey) {
|
|
92
|
+
await this.setupProvider(params.signMethods);
|
|
93
|
+
const accounts = await this._providerEngineProxy.request({
|
|
94
|
+
method: "eth_accounts"
|
|
95
|
+
});
|
|
96
|
+
this.emit("accountsChanged", accounts);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
async switchChain(params) {
|
|
100
|
+
if (!this._providerEngineProxy) throw providerErrors.custom({
|
|
101
|
+
message: "Provider is not initialized",
|
|
102
|
+
code: 4902
|
|
103
|
+
});
|
|
104
|
+
const chainConfig = this.getChainConfig(params.chainId);
|
|
105
|
+
this.update({
|
|
106
|
+
chainId: "loading"
|
|
107
|
+
});
|
|
108
|
+
this.configure({
|
|
109
|
+
chainConfig
|
|
110
|
+
});
|
|
111
|
+
if (!this.state.signMethods) {
|
|
112
|
+
throw providerErrors.custom({
|
|
113
|
+
message: "sign methods are undefined",
|
|
114
|
+
code: 4902
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
await this.setupProvider(this.state.signMethods);
|
|
118
|
+
}
|
|
119
|
+
async lookupNetwork() {
|
|
120
|
+
if (!this._providerEngineProxy) throw providerErrors.custom({
|
|
121
|
+
message: "Provider is not initialized",
|
|
122
|
+
code: 4902
|
|
123
|
+
});
|
|
124
|
+
const {
|
|
125
|
+
chainId
|
|
126
|
+
} = this.config.chainConfig;
|
|
127
|
+
if (!chainId) throw rpcErrors.invalidParams("chainId is required while lookupNetwork");
|
|
128
|
+
const network = await this._providerEngineProxy.request({
|
|
129
|
+
method: "net_version",
|
|
130
|
+
params: []
|
|
131
|
+
});
|
|
132
|
+
const finalNetwork = isHexString(network) ? parseInt(network, 16) : parseInt(network, 10);
|
|
133
|
+
if (parseInt(chainId, 16) !== finalNetwork) throw providerErrors.chainDisconnected(`Invalid network, net_version is: ${network}`);
|
|
134
|
+
if (this.state.chainId !== chainId) {
|
|
135
|
+
this.emit("chainChanged", chainId);
|
|
136
|
+
this.emit("connect", {
|
|
137
|
+
chainId
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
this.update({
|
|
141
|
+
chainId
|
|
142
|
+
});
|
|
143
|
+
return network;
|
|
144
|
+
}
|
|
145
|
+
getChainSwitchMiddleware() {
|
|
146
|
+
const chainSwitchHandlers = {
|
|
147
|
+
addChain: async params => {
|
|
148
|
+
const {
|
|
149
|
+
chainId,
|
|
150
|
+
chainName,
|
|
151
|
+
rpcUrls,
|
|
152
|
+
blockExplorerUrls,
|
|
153
|
+
nativeCurrency,
|
|
154
|
+
iconUrls
|
|
155
|
+
} = params;
|
|
156
|
+
this.addChain({
|
|
157
|
+
chainNamespace: CHAIN_NAMESPACES.EIP155,
|
|
158
|
+
chainId,
|
|
159
|
+
ticker: (nativeCurrency === null || nativeCurrency === void 0 ? void 0 : nativeCurrency.symbol) || "ETH",
|
|
160
|
+
tickerName: (nativeCurrency === null || nativeCurrency === void 0 ? void 0 : nativeCurrency.name) || "Ether",
|
|
161
|
+
displayName: chainName,
|
|
162
|
+
rpcTarget: rpcUrls[0],
|
|
163
|
+
blockExplorerUrl: (blockExplorerUrls === null || blockExplorerUrls === void 0 ? void 0 : blockExplorerUrls[0]) || "",
|
|
164
|
+
decimals: (nativeCurrency === null || nativeCurrency === void 0 ? void 0 : nativeCurrency.decimals) || 18,
|
|
165
|
+
logo: (iconUrls === null || iconUrls === void 0 ? void 0 : iconUrls[0]) || "https://images.toruswallet.io/eth.svg"
|
|
166
|
+
});
|
|
167
|
+
},
|
|
168
|
+
switchChain: async params => {
|
|
169
|
+
const {
|
|
170
|
+
chainId
|
|
171
|
+
} = params;
|
|
172
|
+
await this.switchChain({
|
|
173
|
+
chainId
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
};
|
|
177
|
+
const chainSwitchMiddleware = createEthChainSwitchMiddleware(chainSwitchHandlers);
|
|
178
|
+
return chainSwitchMiddleware;
|
|
179
|
+
}
|
|
180
|
+
getAccountMiddleware() {
|
|
181
|
+
const accountHandlers = {
|
|
182
|
+
};
|
|
183
|
+
return createEthAccountMiddleware(accountHandlers);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
_EthereumSigningProvider = EthereumSigningProvider;
|
|
187
|
+
_defineProperty(EthereumSigningProvider, "getProviderInstance", async params => {
|
|
188
|
+
const providerFactory = new _EthereumSigningProvider({
|
|
189
|
+
config: {
|
|
190
|
+
chainConfig: params.chainConfig
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
await providerFactory.setupProvider(params.signMethods);
|
|
194
|
+
return providerFactory;
|
|
195
|
+
});
|
|
196
|
+
|
|
197
|
+
export { EthereumSigningProvider };
|
package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js
ADDED
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import _objectSpread from '@babel/runtime/helpers/objectSpread2';
|
|
2
|
+
import { publicToAddress, toBytes, isHexString, stripHexPrefix, intToBytes } from '@ethereumjs/util';
|
|
3
|
+
import { concatSig } from '@toruslabs/base-controllers';
|
|
4
|
+
import { providerErrors } from '@web3auth/auth';
|
|
5
|
+
import { hashMessage, Signature } from 'ethers';
|
|
6
|
+
import { validateTypedData, hexToBytes, hashTypedData } from 'viem';
|
|
7
|
+
import { log } from '../../../../base/loglevel.js';
|
|
8
|
+
import { validateTypedSignMessageDataV4 } from '../../../ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js';
|
|
9
|
+
import { SignTypedDataVersion } from '../../../ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js';
|
|
10
|
+
|
|
11
|
+
async function signTx(txParams, sign, txFormatter) {
|
|
12
|
+
const {
|
|
13
|
+
Transaction
|
|
14
|
+
} = await import('ethers');
|
|
15
|
+
const finalTxParams = await txFormatter.formatTransaction(txParams);
|
|
16
|
+
const ethTx = Transaction.from(_objectSpread(_objectSpread({}, finalTxParams), {}, {
|
|
17
|
+
from: undefined // from is already calculated inside Transaction.from and is not allowed to be passed in
|
|
18
|
+
}));
|
|
19
|
+
const msgHash = stripHexPrefix(ethTx.unsignedHash);
|
|
20
|
+
const vrs = await sign(Buffer.from(msgHash, "hex"));
|
|
21
|
+
let {
|
|
22
|
+
v
|
|
23
|
+
} = vrs;
|
|
24
|
+
const {
|
|
25
|
+
r,
|
|
26
|
+
s
|
|
27
|
+
} = vrs;
|
|
28
|
+
|
|
29
|
+
// mpc-core-kit workaround (revert back to 0/1)
|
|
30
|
+
if (v > 1) {
|
|
31
|
+
v = v - 27;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// addSignature will handle the v value
|
|
35
|
+
const tx = ethTx;
|
|
36
|
+
tx.signature = Signature.from({
|
|
37
|
+
v,
|
|
38
|
+
r: `0x${r.toString("hex")}`,
|
|
39
|
+
s: `0x${s.toString("hex")}`
|
|
40
|
+
});
|
|
41
|
+
return tx.serialized;
|
|
42
|
+
}
|
|
43
|
+
async function signMessage(sign, data) {
|
|
44
|
+
const message = stripHexPrefix(data);
|
|
45
|
+
const msgSig = await sign(Buffer.from(message, "hex"));
|
|
46
|
+
let modifiedV = msgSig.v;
|
|
47
|
+
if (modifiedV <= 1) {
|
|
48
|
+
modifiedV = modifiedV + 27;
|
|
49
|
+
}
|
|
50
|
+
const rawMsgSig = concatSig(Buffer.from(intToBytes(modifiedV)), msgSig.r, msgSig.s);
|
|
51
|
+
return rawMsgSig;
|
|
52
|
+
}
|
|
53
|
+
async function personalSign(sign, data) {
|
|
54
|
+
if (data === null || data === undefined) {
|
|
55
|
+
throw new Error("Missing data parameter");
|
|
56
|
+
}
|
|
57
|
+
// we need to check if the data is hex or not
|
|
58
|
+
// For historical reasons, you must submit the message to sign in hex-encoded UTF-8.
|
|
59
|
+
// https://docs.metamask.io/wallet/how-to/sign-data/#use-personal_sign
|
|
60
|
+
const message = isHexString(data) ? Buffer.from(stripHexPrefix(data), "hex") : Buffer.from(data);
|
|
61
|
+
const msgHash = hashMessage(message);
|
|
62
|
+
const prefix = Buffer.from(`\u0019Ethereum Signed Message:\n${message.length}`, "utf-8");
|
|
63
|
+
const sig = await sign(Buffer.from(msgHash.slice(2), "hex"), Buffer.concat([prefix, message]));
|
|
64
|
+
let modifiedV = sig.v;
|
|
65
|
+
if (modifiedV <= 1) {
|
|
66
|
+
modifiedV = modifiedV + 27;
|
|
67
|
+
}
|
|
68
|
+
const serialized = concatSig(Buffer.from(toBytes(modifiedV)), sig.r, sig.s);
|
|
69
|
+
return serialized;
|
|
70
|
+
}
|
|
71
|
+
function validateVersion(version, allowedVersions) {
|
|
72
|
+
if (!Object.keys(SignTypedDataVersion).includes(version)) {
|
|
73
|
+
throw new Error(`Invalid version: '${version}'`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
async function signTypedData(sign, data, version) {
|
|
77
|
+
validateVersion(version); // Note: this is intentional;
|
|
78
|
+
if (data === null || data === undefined) {
|
|
79
|
+
throw new Error("Missing data parameter");
|
|
80
|
+
}
|
|
81
|
+
const message = typeof data === "string" ? JSON.parse(data) : data;
|
|
82
|
+
validateTypedData(message);
|
|
83
|
+
const {
|
|
84
|
+
v,
|
|
85
|
+
r,
|
|
86
|
+
s
|
|
87
|
+
} = await sign(Buffer.from(hexToBytes(hashTypedData(message))));
|
|
88
|
+
let modifiedV = v;
|
|
89
|
+
if (modifiedV <= 1) {
|
|
90
|
+
modifiedV = modifiedV + 27;
|
|
91
|
+
}
|
|
92
|
+
return concatSig(Buffer.from(toBytes(modifiedV)), r, s);
|
|
93
|
+
}
|
|
94
|
+
function getProviderHandlers({
|
|
95
|
+
txFormatter,
|
|
96
|
+
sign,
|
|
97
|
+
getPublic,
|
|
98
|
+
getProviderEngineProxy
|
|
99
|
+
}) {
|
|
100
|
+
return {
|
|
101
|
+
getAccounts: async _ => {
|
|
102
|
+
const pubKey = await getPublic();
|
|
103
|
+
return [`0x${Buffer.from(publicToAddress(pubKey)).toString("hex")}`];
|
|
104
|
+
},
|
|
105
|
+
getPrivateKey: async _ => {
|
|
106
|
+
throw providerErrors.custom({
|
|
107
|
+
message: "MPC Provider cannot return private key",
|
|
108
|
+
code: 4902
|
|
109
|
+
});
|
|
110
|
+
},
|
|
111
|
+
getPublicKey: async _ => {
|
|
112
|
+
const pubKey = await getPublic();
|
|
113
|
+
return `0x${pubKey.toString("hex")}`;
|
|
114
|
+
},
|
|
115
|
+
processTransaction: async (txParams, _) => {
|
|
116
|
+
const providerEngineProxy = getProviderEngineProxy();
|
|
117
|
+
if (!providerEngineProxy) throw providerErrors.custom({
|
|
118
|
+
message: "Provider is not initialized",
|
|
119
|
+
code: 4902
|
|
120
|
+
});
|
|
121
|
+
const serializedTxn = await signTx(txParams, sign, txFormatter);
|
|
122
|
+
const txHash = await providerEngineProxy.request({
|
|
123
|
+
method: "eth_sendRawTransaction",
|
|
124
|
+
params: [serializedTxn]
|
|
125
|
+
});
|
|
126
|
+
return txHash;
|
|
127
|
+
},
|
|
128
|
+
processSignTransaction: async (txParams, _) => {
|
|
129
|
+
const providerEngineProxy = getProviderEngineProxy();
|
|
130
|
+
if (!providerEngineProxy) throw providerErrors.custom({
|
|
131
|
+
message: "Provider is not initialized",
|
|
132
|
+
code: 4902
|
|
133
|
+
});
|
|
134
|
+
const serializedTxn = await signTx(txParams, sign, txFormatter);
|
|
135
|
+
return serializedTxn;
|
|
136
|
+
},
|
|
137
|
+
processEthSignMessage: async (msgParams, _) => {
|
|
138
|
+
const rawMessageSig = signMessage(sign, msgParams.data);
|
|
139
|
+
return rawMessageSig;
|
|
140
|
+
},
|
|
141
|
+
processPersonalMessage: async (msgParams, _) => {
|
|
142
|
+
const sig = personalSign(sign, msgParams.data);
|
|
143
|
+
return sig;
|
|
144
|
+
},
|
|
145
|
+
processTypedMessageV4: async (msgParams, _) => {
|
|
146
|
+
log.debug("processTypedMessageV4", msgParams);
|
|
147
|
+
const providerEngineProxy = getProviderEngineProxy();
|
|
148
|
+
if (!providerEngineProxy) throw providerErrors.custom({
|
|
149
|
+
message: "Provider is not initialized",
|
|
150
|
+
code: 4902
|
|
151
|
+
});
|
|
152
|
+
const chainId = await providerEngineProxy.request({
|
|
153
|
+
method: "eth_chainId"
|
|
154
|
+
});
|
|
155
|
+
await validateTypedSignMessageDataV4(msgParams, chainId);
|
|
156
|
+
const data = typeof msgParams.data === "string" ? JSON.parse(msgParams.data) : msgParams.data;
|
|
157
|
+
const sig = signTypedData(sign, data, SignTypedDataVersion.V4);
|
|
158
|
+
return sig;
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
export { getProviderHandlers };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { createScaffoldMiddleware, createAsyncMiddleware, rpcErrors } from '@web3auth/auth';
|
|
2
|
+
|
|
3
|
+
// #region account middlewares
|
|
4
|
+
function createEthAccountMiddleware({
|
|
5
|
+
updatePrivatekey
|
|
6
|
+
}) {
|
|
7
|
+
async function updateAccount(req, res) {
|
|
8
|
+
var _req$params;
|
|
9
|
+
const accountParams = (_req$params = req.params) !== null && _req$params !== void 0 && _req$params.length ? req.params[0] : undefined;
|
|
10
|
+
if (!(accountParams !== null && accountParams !== void 0 && accountParams.privateKey)) throw rpcErrors.invalidParams("Missing privateKey");
|
|
11
|
+
res.result = await updatePrivatekey(accountParams);
|
|
12
|
+
}
|
|
13
|
+
return createScaffoldMiddleware({
|
|
14
|
+
wallet_updateAccount: createAsyncMiddleware(updateAccount)
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// #endregion account middlewares
|
|
19
|
+
|
|
20
|
+
export { createEthAccountMiddleware };
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { stripHexPrefix } from '@ethereumjs/util';
|
|
2
|
+
import { BigNumber } from 'bignumber.js';
|
|
3
|
+
|
|
4
|
+
// Big Number Constants
|
|
5
|
+
const BIG_NUMBER_WEI_MULTIPLIER = new BigNumber("1e18");
|
|
6
|
+
const BIG_NUMBER_GWEI_MULTIPLIER = new BigNumber("1e9");
|
|
7
|
+
const BIG_NUMBER_ETH_MULTIPLIER = new BigNumber("1");
|
|
8
|
+
|
|
9
|
+
// Setter Maps
|
|
10
|
+
const toBigNumber = {
|
|
11
|
+
hex: n => typeof n === "string" ? new BigNumber(stripHexPrefix(n), 16) : new BigNumber(n, 16),
|
|
12
|
+
dec: n => new BigNumber(n, 10)
|
|
13
|
+
};
|
|
14
|
+
const toNormalizedDenomination = {
|
|
15
|
+
WEI: bigNumber => bigNumber.div(BIG_NUMBER_WEI_MULTIPLIER),
|
|
16
|
+
GWEI: bigNumber => bigNumber.div(BIG_NUMBER_GWEI_MULTIPLIER),
|
|
17
|
+
ETH: bigNumber => bigNumber.div(BIG_NUMBER_ETH_MULTIPLIER)
|
|
18
|
+
};
|
|
19
|
+
const toSpecifiedDenomination = {
|
|
20
|
+
WEI: bigNumber => bigNumber.times(BIG_NUMBER_WEI_MULTIPLIER).dp(0, BigNumber.ROUND_HALF_UP),
|
|
21
|
+
GWEI: bigNumber => bigNumber.times(BIG_NUMBER_GWEI_MULTIPLIER).dp(9, BigNumber.ROUND_HALF_UP),
|
|
22
|
+
ETH: bigNumber => bigNumber.times(BIG_NUMBER_ETH_MULTIPLIER).dp(9, BigNumber.ROUND_HALF_UP)
|
|
23
|
+
};
|
|
24
|
+
const baseChange = {
|
|
25
|
+
hex: n => n.toString(16),
|
|
26
|
+
dec: n => new BigNumber(n).toString(10)
|
|
27
|
+
};
|
|
28
|
+
const converter = params => {
|
|
29
|
+
const {
|
|
30
|
+
value,
|
|
31
|
+
fromNumericBase,
|
|
32
|
+
fromDenomination,
|
|
33
|
+
toNumericBase,
|
|
34
|
+
toDenomination,
|
|
35
|
+
numberOfDecimals
|
|
36
|
+
} = params;
|
|
37
|
+
let convertedValue = toBigNumber[fromNumericBase](value);
|
|
38
|
+
if (fromDenomination) {
|
|
39
|
+
convertedValue = toNormalizedDenomination[fromDenomination](convertedValue);
|
|
40
|
+
}
|
|
41
|
+
if (toDenomination) {
|
|
42
|
+
convertedValue = toSpecifiedDenomination[toDenomination](convertedValue);
|
|
43
|
+
}
|
|
44
|
+
if (numberOfDecimals) {
|
|
45
|
+
convertedValue = convertedValue.dp(numberOfDecimals, BigNumber.ROUND_HALF_DOWN);
|
|
46
|
+
}
|
|
47
|
+
if (toNumericBase) {
|
|
48
|
+
convertedValue = baseChange[toNumericBase](convertedValue);
|
|
49
|
+
}
|
|
50
|
+
return convertedValue;
|
|
51
|
+
};
|
|
52
|
+
const conversionUtil = (value, {
|
|
53
|
+
fromNumericBase = "hex",
|
|
54
|
+
toNumericBase,
|
|
55
|
+
fromDenomination,
|
|
56
|
+
toDenomination,
|
|
57
|
+
numberOfDecimals
|
|
58
|
+
}) => {
|
|
59
|
+
return converter({
|
|
60
|
+
fromNumericBase,
|
|
61
|
+
toNumericBase,
|
|
62
|
+
fromDenomination,
|
|
63
|
+
toDenomination,
|
|
64
|
+
numberOfDecimals,
|
|
65
|
+
value: value || "0"
|
|
66
|
+
});
|
|
67
|
+
};
|
|
68
|
+
function decGWEIToHexWEI(decGWEI) {
|
|
69
|
+
return conversionUtil(decGWEI, {
|
|
70
|
+
fromNumericBase: "dec",
|
|
71
|
+
toNumericBase: "hex",
|
|
72
|
+
fromDenomination: "GWEI",
|
|
73
|
+
toDenomination: "WEI"
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
function hexWEIToDecGWEI(decGWEI) {
|
|
77
|
+
return conversionUtil(decGWEI, {
|
|
78
|
+
fromNumericBase: "hex",
|
|
79
|
+
toNumericBase: "dec",
|
|
80
|
+
fromDenomination: "WEI",
|
|
81
|
+
toDenomination: "GWEI"
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export { conversionUtil, decGWEIToHexWEI, hexWEIToDecGWEI };
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
|
+
import { isHexString } from '@ethereumjs/util';
|
|
3
|
+
import { providerErrors, JRPCEngine, providerFromEngine, rpcErrors } from '@web3auth/auth';
|
|
4
|
+
import { CHAIN_NAMESPACES } from '../../../../base/chain/IChainInterface.js';
|
|
5
|
+
import { WalletInitializationError } from '../../../../base/errors/index.js';
|
|
6
|
+
import { createEthMiddleware, createEthChainSwitchMiddleware, createEthAccountMiddleware } from '../../rpc/ethRpcMiddlewares.js';
|
|
7
|
+
import { createEthJsonRpcClient } from '../../rpc/jrpcClient.js';
|
|
8
|
+
import { getProviderHandlers } from './ethPrivatekeyUtils.js';
|
|
9
|
+
import { TransactionFormatter } from './TransactionFormatter/formatter.js';
|
|
10
|
+
import { BaseProvider } from '../../../base-provider/baseProvider.js';
|
|
11
|
+
|
|
12
|
+
var _EthereumPrivateKeyProvider;
|
|
13
|
+
class EthereumPrivateKeyProvider extends BaseProvider {
|
|
14
|
+
constructor({
|
|
15
|
+
config,
|
|
16
|
+
state
|
|
17
|
+
}) {
|
|
18
|
+
super({
|
|
19
|
+
config,
|
|
20
|
+
state
|
|
21
|
+
});
|
|
22
|
+
_defineProperty(this, "PROVIDER_CHAIN_NAMESPACE", CHAIN_NAMESPACES.EIP155);
|
|
23
|
+
}
|
|
24
|
+
async enable() {
|
|
25
|
+
if (!this.state.privateKey) throw providerErrors.custom({
|
|
26
|
+
message: "Private key is not found in state, plz pass it in constructor state param",
|
|
27
|
+
code: 4902
|
|
28
|
+
});
|
|
29
|
+
await this.setupProvider(this.state.privateKey);
|
|
30
|
+
return this._providerEngineProxy.request({
|
|
31
|
+
method: "eth_accounts"
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
async setupProvider(privKey) {
|
|
35
|
+
const {
|
|
36
|
+
chainNamespace
|
|
37
|
+
} = this.config.chainConfig;
|
|
38
|
+
if (chainNamespace !== this.PROVIDER_CHAIN_NAMESPACE) throw WalletInitializationError.incompatibleChainNameSpace("Invalid chain namespace");
|
|
39
|
+
const txFormatter = new TransactionFormatter({
|
|
40
|
+
getProviderEngineProxy: this.getProviderEngineProxy.bind(this)
|
|
41
|
+
});
|
|
42
|
+
const providerHandlers = getProviderHandlers({
|
|
43
|
+
txFormatter,
|
|
44
|
+
privKey,
|
|
45
|
+
getProviderEngineProxy: this.getProviderEngineProxy.bind(this),
|
|
46
|
+
keyExportEnabled: this.config.keyExportEnabled
|
|
47
|
+
});
|
|
48
|
+
const ethMiddleware = createEthMiddleware(providerHandlers);
|
|
49
|
+
const chainSwitchMiddleware = this.getChainSwitchMiddleware();
|
|
50
|
+
const engine = new JRPCEngine();
|
|
51
|
+
// Not a partial anymore because of checks in ctor
|
|
52
|
+
const {
|
|
53
|
+
networkMiddleware
|
|
54
|
+
} = createEthJsonRpcClient(this.config.chainConfig);
|
|
55
|
+
engine.push(ethMiddleware);
|
|
56
|
+
engine.push(chainSwitchMiddleware);
|
|
57
|
+
engine.push(this.getAccountMiddleware());
|
|
58
|
+
engine.push(networkMiddleware);
|
|
59
|
+
const provider = providerFromEngine(engine);
|
|
60
|
+
this.updateProviderEngineProxy(provider);
|
|
61
|
+
await txFormatter.init();
|
|
62
|
+
await this.lookupNetwork();
|
|
63
|
+
}
|
|
64
|
+
async updateAccount(params) {
|
|
65
|
+
if (!this._providerEngineProxy) throw providerErrors.custom({
|
|
66
|
+
message: "Provider is not initialized",
|
|
67
|
+
code: 4902
|
|
68
|
+
});
|
|
69
|
+
const existingKey = await this._providerEngineProxy.request({
|
|
70
|
+
method: "eth_private_key"
|
|
71
|
+
});
|
|
72
|
+
if (existingKey !== params.privateKey) {
|
|
73
|
+
await this.setupProvider(params.privateKey);
|
|
74
|
+
const accounts = await this._providerEngineProxy.request({
|
|
75
|
+
method: "eth_accounts"
|
|
76
|
+
});
|
|
77
|
+
this.emit("accountsChanged", accounts);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
async switchChain(params) {
|
|
81
|
+
if (!this._providerEngineProxy) throw providerErrors.custom({
|
|
82
|
+
message: "Provider is not initialized",
|
|
83
|
+
code: 4902
|
|
84
|
+
});
|
|
85
|
+
const chainConfig = this.getChainConfig(params.chainId);
|
|
86
|
+
this.update({
|
|
87
|
+
chainId: "loading"
|
|
88
|
+
});
|
|
89
|
+
this.configure({
|
|
90
|
+
chainConfig
|
|
91
|
+
});
|
|
92
|
+
const privKey = await this._providerEngineProxy.request({
|
|
93
|
+
method: "eth_private_key"
|
|
94
|
+
});
|
|
95
|
+
await this.setupProvider(privKey);
|
|
96
|
+
}
|
|
97
|
+
async lookupNetwork() {
|
|
98
|
+
if (!this._providerEngineProxy) throw providerErrors.custom({
|
|
99
|
+
message: "Provider is not initialized",
|
|
100
|
+
code: 4902
|
|
101
|
+
});
|
|
102
|
+
const {
|
|
103
|
+
chainId
|
|
104
|
+
} = this.config.chainConfig;
|
|
105
|
+
if (!chainId) throw rpcErrors.invalidParams("chainId is required while lookupNetwork");
|
|
106
|
+
const network = await this._providerEngineProxy.request({
|
|
107
|
+
method: "net_version",
|
|
108
|
+
params: []
|
|
109
|
+
});
|
|
110
|
+
const finalNetwork = isHexString(network) ? parseInt(network, 16) : parseInt(network, 10);
|
|
111
|
+
if (parseInt(chainId, 16) !== finalNetwork) throw providerErrors.chainDisconnected(`Invalid network, net_version is: ${network}`);
|
|
112
|
+
if (this.state.chainId !== chainId) {
|
|
113
|
+
this.emit("chainChanged", chainId);
|
|
114
|
+
this.emit("connect", {
|
|
115
|
+
chainId
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
this.update({
|
|
119
|
+
chainId
|
|
120
|
+
});
|
|
121
|
+
return network;
|
|
122
|
+
}
|
|
123
|
+
getChainSwitchMiddleware() {
|
|
124
|
+
const chainSwitchHandlers = {
|
|
125
|
+
addChain: async params => {
|
|
126
|
+
const {
|
|
127
|
+
chainId,
|
|
128
|
+
chainName,
|
|
129
|
+
rpcUrls,
|
|
130
|
+
blockExplorerUrls,
|
|
131
|
+
nativeCurrency,
|
|
132
|
+
iconUrls
|
|
133
|
+
} = params;
|
|
134
|
+
this.addChain({
|
|
135
|
+
chainNamespace: CHAIN_NAMESPACES.EIP155,
|
|
136
|
+
chainId,
|
|
137
|
+
ticker: (nativeCurrency === null || nativeCurrency === void 0 ? void 0 : nativeCurrency.symbol) || "ETH",
|
|
138
|
+
tickerName: (nativeCurrency === null || nativeCurrency === void 0 ? void 0 : nativeCurrency.name) || "Ether",
|
|
139
|
+
displayName: chainName,
|
|
140
|
+
rpcTarget: rpcUrls[0],
|
|
141
|
+
blockExplorerUrl: (blockExplorerUrls === null || blockExplorerUrls === void 0 ? void 0 : blockExplorerUrls[0]) || "",
|
|
142
|
+
decimals: (nativeCurrency === null || nativeCurrency === void 0 ? void 0 : nativeCurrency.decimals) || 18,
|
|
143
|
+
logo: (iconUrls === null || iconUrls === void 0 ? void 0 : iconUrls[0]) || "https://images.toruswallet.io/eth.svg"
|
|
144
|
+
});
|
|
145
|
+
},
|
|
146
|
+
switchChain: async params => {
|
|
147
|
+
const {
|
|
148
|
+
chainId
|
|
149
|
+
} = params;
|
|
150
|
+
await this.switchChain({
|
|
151
|
+
chainId
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
};
|
|
155
|
+
const chainSwitchMiddleware = createEthChainSwitchMiddleware(chainSwitchHandlers);
|
|
156
|
+
return chainSwitchMiddleware;
|
|
157
|
+
}
|
|
158
|
+
getAccountMiddleware() {
|
|
159
|
+
const accountHandlers = {
|
|
160
|
+
updatePrivatekey: async params => {
|
|
161
|
+
const {
|
|
162
|
+
privateKey
|
|
163
|
+
} = params;
|
|
164
|
+
await this.updateAccount({
|
|
165
|
+
privateKey
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
return createEthAccountMiddleware(accountHandlers);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
_EthereumPrivateKeyProvider = EthereumPrivateKeyProvider;
|
|
173
|
+
_defineProperty(EthereumPrivateKeyProvider, "getProviderInstance", async params => {
|
|
174
|
+
const providerFactory = new _EthereumPrivateKeyProvider({
|
|
175
|
+
config: {
|
|
176
|
+
chainConfig: params.chainConfig
|
|
177
|
+
}
|
|
178
|
+
});
|
|
179
|
+
await providerFactory.setupProvider(params.privKey);
|
|
180
|
+
return providerFactory;
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
export { EthereumPrivateKeyProvider };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
const LegacyGasAPIEndpoint = "https://gas-api.metaswap.codefi.network/networks/<chain_id>/gasPrices";
|
|
2
|
+
const EIP1559APIEndpoint = "https://gas-api.metaswap.codefi.network/networks/<chain_id>/suggestedGasFees";
|
|
3
|
+
const TRANSACTION_ENVELOPE_TYPES = {
|
|
4
|
+
LEGACY: "0x0",
|
|
5
|
+
ACCESS_LIST: "0x1",
|
|
6
|
+
FEE_MARKET: "0x2"
|
|
7
|
+
};
|
|
8
|
+
const TRANSACTION_TYPES = {
|
|
9
|
+
SENT_ETHER: "sentEther",
|
|
10
|
+
CONTRACT_INTERACTION: "contractInteraction",
|
|
11
|
+
DEPLOY_CONTRACT: "contractDeployment",
|
|
12
|
+
STANDARD_TRANSACTION: "transaction"
|
|
13
|
+
};
|
|
14
|
+
const GAS_ESTIMATE_TYPES = {
|
|
15
|
+
FEE_MARKET: "fee-market",
|
|
16
|
+
LEGACY: "legacy",
|
|
17
|
+
ETH_GASPRICE: "eth_gasPrice",
|
|
18
|
+
NONE: "none"
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export { EIP1559APIEndpoint, GAS_ESTIMATE_TYPES, LegacyGasAPIEndpoint, TRANSACTION_ENVELOPE_TYPES, TRANSACTION_TYPES };
|