@web3auth/no-modal 9.7.0 → 10.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib.cjs/base/chain/IChainInterface.js +22 -0
- package/dist/lib.cjs/base/chain/config.js +322 -0
- package/dist/lib.cjs/base/composables/index.js +5 -0
- package/dist/lib.cjs/base/connector/baseConnector.js +67 -0
- package/dist/lib.cjs/base/connector/constants.js +26 -0
- package/dist/lib.cjs/base/connector/utils.js +66 -0
- package/dist/lib.cjs/base/errors/index.js +244 -0
- package/dist/lib.cjs/base/loglevel.js +7 -0
- package/dist/lib.cjs/base/plugin/IPlugin.js +31 -0
- package/dist/lib.cjs/base/plugin/errors.js +107 -0
- package/dist/lib.cjs/base/provider/IProvider.js +8 -0
- package/dist/lib.cjs/base/utils.js +56 -0
- package/dist/lib.cjs/base/wallet/index.js +26 -0
- package/dist/lib.cjs/connectors/auth-connector/authConnector.js +392 -0
- package/dist/lib.cjs/connectors/base-evm-connector/baseEvmConnector.js +75 -0
- package/dist/lib.cjs/connectors/base-solana-connector/baseSolanaConnector.js +77 -0
- package/dist/lib.cjs/connectors/coinbase-connector/coinbaseConnector.js +151 -0
- package/dist/lib.cjs/connectors/injected-evm-connector/index.js +12 -0
- package/dist/lib.cjs/connectors/injected-evm-connector/injectedEvmConnector.js +176 -0
- package/dist/lib.cjs/connectors/injected-solana-connector/index.js +25 -0
- package/dist/lib.cjs/connectors/injected-solana-connector/walletStandardConnector.js +147 -0
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +228 -0
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/config.js +180 -0
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/index.js +20 -0
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +417 -0
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Utils.js +152 -0
- package/dist/lib.cjs/index.js +218 -0
- package/dist/lib.cjs/noModal.js +307 -247
- package/dist/lib.cjs/plugins/nft-checkout-plugin/embed.js +134 -0
- package/dist/lib.cjs/plugins/nft-checkout-plugin/enums.js +24 -0
- package/dist/lib.cjs/plugins/nft-checkout-plugin/plugin.js +76 -0
- package/dist/lib.cjs/plugins/nft-checkout-plugin/utils.js +18 -0
- package/dist/lib.cjs/plugins/wallet-services-plugin/plugin.js +129 -0
- package/dist/lib.cjs/providers/account-abstraction-provider/index.js +32 -0
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +232 -0
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/utils.js +134 -0
- package/dist/lib.cjs/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +174 -0
- package/dist/lib.cjs/providers/base-provider/CommonJRPCProvider.js +74 -0
- package/dist/lib.cjs/providers/base-provider/baseProvider.js +132 -0
- package/dist/lib.cjs/providers/base-provider/commonPrivateKeyProvider.js +78 -0
- package/dist/lib.cjs/providers/base-provider/index.js +18 -0
- package/dist/lib.cjs/providers/base-provider/jrpcClient.js +41 -0
- package/dist/lib.cjs/providers/base-provider/utils.js +12 -0
- package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +176 -0
- package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +165 -0
- package/dist/lib.cjs/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +22 -0
- package/dist/lib.cjs/providers/ethereum-provider/providers/converter.js +89 -0
- package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.js +27 -0
- package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +380 -0
- package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +10 -0
- package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +94 -0
- package/dist/lib.cjs/providers/ethereum-provider/providers/utils.js +29 -0
- package/dist/lib.cjs/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +46 -0
- package/dist/lib.cjs/providers/ethereum-provider/rpc/jrpcClient.js +41 -0
- package/dist/lib.cjs/providers/ethereum-provider/rpc/walletMidddleware.js +179 -0
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +49 -0
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +45 -0
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/utils.js +16 -0
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +93 -0
- package/dist/lib.cjs/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.js +150 -0
- package/dist/lib.cjs/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.js +94 -0
- package/dist/lib.cjs/providers/solana-provider/rpc/JrpcClient.js +47 -0
- package/dist/lib.cjs/providers/solana-provider/rpc/solanaRpcMiddlewares.js +97 -0
- package/dist/lib.cjs/providers/solana-provider/solanaWallet.js +88 -0
- package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +123 -0
- package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.js +89 -0
- package/dist/lib.cjs/providers/xrpl-provider/rpc/JrpcClient.js +48 -0
- package/dist/lib.cjs/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +71 -0
- package/dist/lib.cjs/react/index.js +16 -0
- package/dist/lib.cjs/react/no-modal/Web3AuthInnerContext.js +192 -0
- package/dist/lib.cjs/react/no-modal/Web3AuthProvider.js +15 -0
- package/dist/lib.cjs/react/no-modal/hooks/useWeb3Auth.js +15 -0
- package/dist/lib.cjs/react/wallet-services-plugin/WalletServicesContext.js +89 -0
- package/dist/lib.cjs/react/wallet-services-plugin/WalletServicesProvider.js +16 -0
- package/dist/lib.cjs/react/wallet-services-plugin/hooks/useWalletServicesPlugin.js +15 -0
- package/dist/lib.cjs/vue/index.js +15 -0
- package/dist/lib.cjs/vue/no-modal/Web3AuthProvider.js +196 -0
- package/dist/lib.cjs/vue/no-modal/composables/useWeb3Auth.js +13 -0
- package/dist/lib.cjs/vue/wallet-services-plugin/WalletServicesProvider.js +90 -0
- package/dist/lib.cjs/vue/wallet-services-plugin/composables/useWalletServicesPlugin.js +13 -0
- package/dist/lib.cjs/vue/wallet-services-plugin/context.js +5 -0
- package/dist/lib.esm/base/chain/IChainInterface.js +19 -0
- package/dist/lib.esm/base/chain/config.js +317 -0
- package/dist/lib.esm/base/composables/index.js +3 -0
- package/dist/lib.esm/base/connector/baseConnector.js +65 -0
- package/dist/lib.esm/base/connector/constants.js +22 -0
- package/dist/lib.esm/base/connector/utils.js +60 -0
- package/dist/lib.esm/base/errors/index.js +237 -0
- package/dist/lib.esm/base/loglevel.js +5 -0
- package/dist/lib.esm/base/plugin/IPlugin.js +24 -0
- package/dist/lib.esm/base/plugin/errors.js +104 -0
- package/dist/lib.esm/base/provider/IProvider.js +6 -0
- package/dist/lib.esm/base/utils.js +46 -0
- package/dist/lib.esm/base/wallet/index.js +20 -0
- package/dist/lib.esm/connectors/auth-connector/authConnector.js +390 -0
- package/dist/lib.esm/connectors/base-evm-connector/baseEvmConnector.js +73 -0
- package/dist/lib.esm/connectors/base-solana-connector/baseSolanaConnector.js +75 -0
- package/dist/lib.esm/connectors/coinbase-connector/coinbaseConnector.js +149 -0
- package/dist/lib.esm/connectors/injected-evm-connector/index.js +2 -0
- package/dist/lib.esm/connectors/injected-evm-connector/injectedEvmConnector.js +173 -0
- package/dist/lib.esm/connectors/injected-solana-connector/index.js +18 -0
- package/dist/lib.esm/connectors/injected-solana-connector/walletStandardConnector.js +144 -0
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +226 -0
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/config.js +169 -0
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/index.js +3 -0
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +415 -0
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Utils.js +146 -0
- package/dist/lib.esm/index.js +53 -0
- package/dist/lib.esm/noModal.js +294 -234
- package/dist/lib.esm/plugins/nft-checkout-plugin/embed.js +132 -0
- package/dist/lib.esm/plugins/nft-checkout-plugin/enums.js +20 -0
- package/dist/lib.esm/plugins/nft-checkout-plugin/plugin.js +74 -0
- package/dist/lib.esm/plugins/nft-checkout-plugin/utils.js +15 -0
- package/dist/lib.esm/plugins/wallet-services-plugin/plugin.js +119 -0
- package/dist/lib.esm/providers/account-abstraction-provider/index.js +2 -0
- package/dist/lib.esm/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +227 -0
- package/dist/lib.esm/providers/account-abstraction-provider/providers/utils.js +132 -0
- package/dist/lib.esm/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +171 -0
- package/dist/lib.esm/providers/base-provider/CommonJRPCProvider.js +72 -0
- package/dist/lib.esm/providers/base-provider/baseProvider.js +130 -0
- package/dist/lib.esm/providers/base-provider/commonPrivateKeyProvider.js +76 -0
- package/dist/lib.esm/providers/base-provider/index.js +5 -0
- package/dist/lib.esm/providers/base-provider/jrpcClient.js +37 -0
- package/dist/lib.esm/providers/base-provider/utils.js +6 -0
- package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +174 -0
- package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +163 -0
- package/dist/lib.esm/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +20 -0
- package/dist/lib.esm/providers/ethereum-provider/providers/converter.js +85 -0
- package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.js +21 -0
- package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +378 -0
- package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +8 -0
- package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +88 -0
- package/dist/lib.esm/providers/ethereum-provider/providers/utils.js +24 -0
- package/dist/lib.esm/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +43 -0
- package/dist/lib.esm/providers/ethereum-provider/rpc/jrpcClient.js +37 -0
- package/dist/lib.esm/providers/ethereum-provider/rpc/walletMidddleware.js +177 -0
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +47 -0
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +43 -0
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/utils.js +14 -0
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +91 -0
- package/dist/lib.esm/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.js +148 -0
- package/dist/lib.esm/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.js +92 -0
- package/dist/lib.esm/providers/solana-provider/rpc/JrpcClient.js +42 -0
- package/dist/lib.esm/providers/solana-provider/rpc/solanaRpcMiddlewares.js +89 -0
- package/dist/lib.esm/providers/solana-provider/solanaWallet.js +86 -0
- package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +121 -0
- package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.js +87 -0
- package/dist/lib.esm/providers/xrpl-provider/rpc/JrpcClient.js +43 -0
- package/dist/lib.esm/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +65 -0
- package/dist/lib.esm/react/index.js +5 -0
- package/dist/lib.esm/react/no-modal/Web3AuthInnerContext.js +189 -0
- package/dist/lib.esm/react/no-modal/Web3AuthProvider.js +13 -0
- package/dist/lib.esm/react/no-modal/hooks/useWeb3Auth.js +13 -0
- package/dist/lib.esm/react/wallet-services-plugin/WalletServicesContext.js +86 -0
- package/dist/lib.esm/react/wallet-services-plugin/WalletServicesProvider.js +14 -0
- package/dist/lib.esm/react/wallet-services-plugin/hooks/useWalletServicesPlugin.js +13 -0
- package/dist/lib.esm/vue/index.js +5 -0
- package/dist/lib.esm/vue/no-modal/Web3AuthProvider.js +194 -0
- package/dist/lib.esm/vue/no-modal/composables/useWeb3Auth.js +11 -0
- package/dist/lib.esm/vue/wallet-services-plugin/WalletServicesProvider.js +88 -0
- package/dist/lib.esm/vue/wallet-services-plugin/composables/useWalletServicesPlugin.js +11 -0
- package/dist/lib.esm/vue/wallet-services-plugin/context.js +3 -0
- package/dist/noModal.cjs.js +14559 -321
- package/dist/noModal.umd.min.js +1 -1
- package/dist/noModal.umd.min.js.LICENSE.txt +45 -0
- package/dist/types/base/chain/IChainInterface.d.ts +59 -0
- package/dist/types/base/chain/config.d.ts +5 -0
- package/dist/types/base/composables/index.d.ts +1 -0
- package/dist/types/base/connector/baseConnector.d.ts +37 -0
- package/dist/types/base/connector/constants.d.ts +25 -0
- package/dist/types/base/connector/index.d.ts +4 -0
- package/dist/types/base/connector/interfaces.d.ts +145 -0
- package/dist/types/base/connector/utils.d.ts +5 -0
- package/dist/types/base/core/IWeb3Auth.d.ts +142 -0
- package/dist/types/base/errors/index.d.ts +69 -0
- package/dist/types/base/hooks/index.d.ts +33 -0
- package/dist/types/base/index.d.ts +13 -0
- package/dist/types/base/interfaces.d.ts +44 -0
- package/dist/types/base/loglevel.d.ts +2 -0
- package/dist/types/base/plugin/IPlugin.d.ts +50 -0
- package/dist/types/base/plugin/errors.d.ts +28 -0
- package/dist/types/base/plugin/index.d.ts +2 -0
- package/dist/types/base/provider/IProvider.d.ts +16 -0
- package/dist/types/base/utils.d.ts +9 -0
- package/dist/types/base/wallet/index.d.ts +29 -0
- package/dist/types/connectors/auth-connector/authConnector.d.ts +45 -0
- package/dist/types/connectors/auth-connector/index.d.ts +2 -0
- package/dist/types/connectors/auth-connector/interface.d.ts +14 -0
- package/dist/types/connectors/base-evm-connector/baseEvmConnector.d.ts +7 -0
- package/dist/types/connectors/base-evm-connector/index.d.ts +1 -0
- package/dist/types/connectors/base-solana-connector/baseSolanaConnector.d.ts +7 -0
- package/dist/types/connectors/base-solana-connector/index.d.ts +1 -0
- package/dist/types/connectors/coinbase-connector/coinbaseConnector.d.ts +7 -0
- package/dist/types/connectors/coinbase-connector/index.d.ts +1 -0
- package/dist/types/connectors/index.d.ts +7 -0
- package/dist/types/connectors/injected-evm-connector/index.d.ts +2 -0
- package/dist/types/connectors/injected-evm-connector/injectedEvmConnector.d.ts +34 -0
- package/dist/types/connectors/injected-solana-connector/index.d.ts +5 -0
- package/dist/types/connectors/injected-solana-connector/utils.d.ts +3 -0
- package/dist/types/connectors/injected-solana-connector/walletStandardConnector.d.ts +33 -0
- package/dist/types/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.d.ts +35 -0
- package/dist/types/connectors/wallet-connect-v2-connector/config.d.ts +35 -0
- package/dist/types/connectors/wallet-connect-v2-connector/index.d.ts +4 -0
- package/dist/types/connectors/wallet-connect-v2-connector/interface.d.ts +18 -0
- package/dist/types/connectors/wallet-connect-v2-connector/utils.d.ts +3 -0
- package/dist/types/connectors/wallet-connect-v2-connector/walletConnectV2Connector.d.ts +3 -0
- package/dist/types/connectors/wallet-connect-v2-connector/walletConnectV2Utils.d.ts +18 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/noModal.d.ts +29 -14
- package/dist/types/plugins/index.d.ts +2 -0
- package/dist/types/plugins/nft-checkout-plugin/embed.d.ts +24 -0
- package/dist/types/plugins/nft-checkout-plugin/enums.d.ts +14 -0
- package/dist/types/plugins/nft-checkout-plugin/index.d.ts +2 -0
- package/dist/types/plugins/nft-checkout-plugin/plugin.d.ts +27 -0
- package/dist/types/plugins/nft-checkout-plugin/utils.d.ts +3 -0
- package/dist/types/plugins/wallet-services-plugin/index.d.ts +1 -0
- package/dist/types/plugins/wallet-services-plugin/plugin.d.ts +27 -0
- package/dist/types/providers/account-abstraction-provider/index.d.ts +1 -0
- package/dist/types/providers/account-abstraction-provider/providers/AccountAbstractionProvider.d.ts +48 -0
- package/dist/types/providers/account-abstraction-provider/providers/index.d.ts +2 -0
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/index.d.ts +1 -0
- package/dist/types/providers/account-abstraction-provider/providers/utils.d.ts +10 -0
- package/dist/types/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.d.ts +8 -0
- package/dist/types/providers/account-abstraction-provider/rpc/index.d.ts +1 -0
- package/dist/types/providers/base-provider/CommonJRPCProvider.d.ts +20 -0
- package/dist/types/providers/base-provider/baseProvider.d.ts +42 -0
- package/dist/types/providers/base-provider/commonPrivateKeyProvider.d.ts +29 -0
- package/dist/types/providers/base-provider/index.d.ts +5 -0
- package/dist/types/providers/base-provider/interfaces.d.ts +3 -0
- package/dist/types/providers/base-provider/jrpcClient.d.ts +8 -0
- package/dist/types/providers/base-provider/utils.d.ts +2 -0
- package/dist/types/providers/ethereum-mpc-provider/index.d.ts +1 -0
- package/dist/types/providers/ethereum-mpc-provider/providers/index.d.ts +1 -0
- package/dist/types/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.d.ts +74 -0
- package/dist/types/providers/ethereum-mpc-provider/providers/signingProviders/index.d.ts +1 -0
- package/dist/types/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.d.ts +12 -0
- package/dist/types/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.d.ts +3 -0
- package/dist/types/providers/ethereum-mpc-provider/rpc/interfaces.d.ts +15 -0
- package/dist/types/providers/ethereum-provider/index.d.ts +2 -0
- package/dist/types/providers/ethereum-provider/providers/converter.d.ts +15 -0
- package/dist/types/providers/ethereum-provider/providers/index.d.ts +1 -0
- package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.d.ts +16 -0
- package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.d.ts +28 -0
- package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/index.d.ts +4 -0
- package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.d.ts +46 -0
- package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.d.ts +12 -0
- package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/index.d.ts +1 -0
- package/dist/types/providers/ethereum-provider/providers/utils.d.ts +5 -0
- package/dist/types/providers/ethereum-provider/rpc/ethRpcMiddlewares.d.ts +4 -0
- package/dist/types/providers/ethereum-provider/rpc/index.d.ts +4 -0
- package/dist/types/providers/ethereum-provider/rpc/interfaces.d.ts +52 -0
- package/dist/types/providers/ethereum-provider/rpc/jrpcClient.d.ts +8 -0
- package/dist/types/providers/ethereum-provider/rpc/walletMidddleware.d.ts +3 -0
- package/dist/types/providers/index.d.ts +6 -0
- package/dist/types/providers/solana-provider/index.d.ts +4 -0
- package/dist/types/providers/solana-provider/interface.d.ts +22 -0
- package/dist/types/providers/solana-provider/providers/index.d.ts +2 -0
- package/dist/types/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.d.ts +16 -0
- package/dist/types/providers/solana-provider/providers/injectedProviders/base/providerHandlers.d.ts +3 -0
- package/dist/types/providers/solana-provider/providers/injectedProviders/index.d.ts +2 -0
- package/dist/types/providers/solana-provider/providers/injectedProviders/utils.d.ts +3 -0
- package/dist/types/providers/solana-provider/providers/injectedProviders/walletStandardProvider.d.ts +9 -0
- package/dist/types/providers/solana-provider/providers/privateKeyProvider/index.d.ts +1 -0
- package/dist/types/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.d.ts +31 -0
- package/dist/types/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.d.ts +7 -0
- package/dist/types/providers/solana-provider/rpc/JrpcClient.d.ts +9 -0
- package/dist/types/providers/solana-provider/rpc/index.d.ts +3 -0
- package/dist/types/providers/solana-provider/rpc/interfaces.d.ts +27 -0
- package/dist/types/providers/solana-provider/rpc/solanaRpcMiddlewares.d.ts +20 -0
- package/dist/types/providers/solana-provider/solanaWallet.d.ts +28 -0
- package/dist/types/providers/xrpl-provider/index.d.ts +1 -0
- package/dist/types/providers/xrpl-provider/providers/index.d.ts +1 -0
- package/dist/types/providers/xrpl-provider/providers/privateKeyProviders/constants.d.ts +5 -0
- package/dist/types/providers/xrpl-provider/providers/privateKeyProviders/index.d.ts +3 -0
- package/dist/types/providers/xrpl-provider/providers/privateKeyProviders/interface.d.ts +2 -0
- package/dist/types/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.d.ts +26 -0
- package/dist/types/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.d.ts +7 -0
- package/dist/types/providers/xrpl-provider/rpc/JrpcClient.d.ts +9 -0
- package/dist/types/providers/xrpl-provider/rpc/xrplRpcMiddlewares.d.ts +49 -0
- package/dist/types/react/index.d.ts +2 -0
- package/dist/types/react/no-modal/Web3AuthInnerContext.d.ts +4 -0
- package/dist/types/react/no-modal/Web3AuthProvider.d.ts +3 -0
- package/dist/types/react/no-modal/hooks/index.d.ts +1 -0
- package/dist/types/react/no-modal/hooks/useWeb3Auth.d.ts +2 -0
- package/dist/types/react/no-modal/index.d.ts +3 -0
- package/dist/types/react/no-modal/interfaces.d.ts +15 -0
- package/dist/types/react/wallet-services-plugin/WalletServicesContext.d.ts +7 -0
- package/dist/types/react/wallet-services-plugin/WalletServicesProvider.d.ts +7 -0
- package/dist/types/react/wallet-services-plugin/hooks/index.d.ts +1 -0
- package/dist/types/react/wallet-services-plugin/hooks/useWalletServicesPlugin.d.ts +2 -0
- package/dist/types/react/wallet-services-plugin/index.d.ts +4 -0
- package/dist/types/react/wallet-services-plugin/interfaces.d.ts +5 -0
- package/dist/types/vue/index.d.ts +2 -0
- package/dist/types/vue/no-modal/Web3AuthProvider.d.ts +13 -0
- package/dist/types/vue/no-modal/composables/index.d.ts +1 -0
- package/dist/types/vue/no-modal/composables/useWeb3Auth.d.ts +2 -0
- package/dist/types/vue/no-modal/index.d.ts +3 -0
- package/dist/types/vue/no-modal/interfaces.d.ts +39 -0
- package/dist/types/vue/wallet-services-plugin/WalletServicesProvider.d.ts +1 -0
- package/dist/types/vue/wallet-services-plugin/composables/index.d.ts +1 -0
- package/dist/types/vue/wallet-services-plugin/composables/useWalletServicesPlugin.d.ts +2 -0
- package/dist/types/vue/wallet-services-plugin/context.d.ts +3 -0
- package/dist/types/vue/wallet-services-plugin/index.d.ts +4 -0
- package/dist/types/vue/wallet-services-plugin/interfaces.d.ts +13 -0
- package/package.json +77 -15
- package/README.md +0 -82
- package/dist/noModal.esm.js +0 -359
|
@@ -0,0 +1,174 @@
|
|
|
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 { BaseProvider } from '../../../base-provider/baseProvider.js';
|
|
8
|
+
import { createEthAccountMiddleware } from '../../rpc/ethRpcMiddlewares.js';
|
|
9
|
+
import { getProviderHandlers } from './signingUtils.js';
|
|
10
|
+
import { TransactionFormatter } from '../../../ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.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
|
+
chain: _objectSpread(_objectSpread({}, config.chain), {}, {
|
|
23
|
+
chainNamespace: CHAIN_NAMESPACES.EIP155 // TODO: is this needed ?
|
|
24
|
+
}),
|
|
25
|
+
chains: config.chains
|
|
26
|
+
},
|
|
27
|
+
state
|
|
28
|
+
});
|
|
29
|
+
_defineProperty(this, "PROVIDER_CHAIN_NAMESPACE", CHAIN_NAMESPACES.EIP155);
|
|
30
|
+
}
|
|
31
|
+
async enable() {
|
|
32
|
+
if (!this.state.signMethods) throw providerErrors.custom({
|
|
33
|
+
message: "signMethods are not found in state, plz pass it in constructor state param",
|
|
34
|
+
code: 4902
|
|
35
|
+
});
|
|
36
|
+
await this.setupProvider(this.state.signMethods, this.chainId);
|
|
37
|
+
return this._providerEngineProxy.request({
|
|
38
|
+
method: "eth_accounts"
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
async setupProvider(params, chainId) {
|
|
42
|
+
const {
|
|
43
|
+
sign,
|
|
44
|
+
getPublic
|
|
45
|
+
} = params;
|
|
46
|
+
const chain = this.getChain(chainId);
|
|
47
|
+
const {
|
|
48
|
+
chainNamespace
|
|
49
|
+
} = chain;
|
|
50
|
+
if (chainNamespace !== this.PROVIDER_CHAIN_NAMESPACE) throw WalletInitializationError.incompatibleChainNameSpace("Invalid chain namespace");
|
|
51
|
+
const txFormatter = new TransactionFormatter({
|
|
52
|
+
getProviderEngineProxy: this.getProviderEngineProxy.bind(this)
|
|
53
|
+
});
|
|
54
|
+
const providerHandlers = getProviderHandlers({
|
|
55
|
+
txFormatter,
|
|
56
|
+
sign,
|
|
57
|
+
getPublic,
|
|
58
|
+
getProviderEngineProxy: this.getProviderEngineProxy.bind(this)
|
|
59
|
+
});
|
|
60
|
+
const ethMiddleware = createEthMiddleware(providerHandlers);
|
|
61
|
+
const chainSwitchMiddleware = this.getChainSwitchMiddleware();
|
|
62
|
+
const engine = new JRPCEngine();
|
|
63
|
+
// Not a partial anymore because of checks in ctor
|
|
64
|
+
const {
|
|
65
|
+
networkMiddleware
|
|
66
|
+
} = createEthJsonRpcClient(chain);
|
|
67
|
+
engine.push(ethMiddleware);
|
|
68
|
+
engine.push(chainSwitchMiddleware);
|
|
69
|
+
engine.push(this.getAccountMiddleware());
|
|
70
|
+
engine.push(networkMiddleware);
|
|
71
|
+
const provider = providerFromEngine(engine);
|
|
72
|
+
this.updateProviderEngineProxy(provider);
|
|
73
|
+
await txFormatter.init();
|
|
74
|
+
await this.lookupNetwork(params, chainId);
|
|
75
|
+
this.state.signMethods = {
|
|
76
|
+
sign,
|
|
77
|
+
getPublic
|
|
78
|
+
};
|
|
79
|
+
this.emit("chainChanged", chainId);
|
|
80
|
+
this.emit("connect", {
|
|
81
|
+
chainId
|
|
82
|
+
});
|
|
83
|
+
this.update({
|
|
84
|
+
chainId
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
async updateAccount(params) {
|
|
88
|
+
if (!this._providerEngineProxy) throw providerErrors.custom({
|
|
89
|
+
message: "Provider is not initialized",
|
|
90
|
+
code: 4902
|
|
91
|
+
});
|
|
92
|
+
const currentSignMethods = this.state.signMethods;
|
|
93
|
+
if (!currentSignMethods) {
|
|
94
|
+
throw providerErrors.custom({
|
|
95
|
+
message: "signing methods are unavailable ",
|
|
96
|
+
code: 4092
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
const currentPubKey = (await currentSignMethods.getPublic()).toString("hex");
|
|
100
|
+
const updatePubKey = (await params.signMethods.getPublic()).toString("hex");
|
|
101
|
+
if (currentPubKey !== updatePubKey) {
|
|
102
|
+
await this.setupProvider(params.signMethods, this.chainId);
|
|
103
|
+
const accounts = await this._providerEngineProxy.request({
|
|
104
|
+
method: "eth_accounts"
|
|
105
|
+
});
|
|
106
|
+
this.emit("accountsChanged", accounts);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
async switchChain(params) {
|
|
110
|
+
if (!this._providerEngineProxy) throw providerErrors.custom({
|
|
111
|
+
message: "Provider is not initialized",
|
|
112
|
+
code: 4902
|
|
113
|
+
});
|
|
114
|
+
if (!this.state.signMethods) {
|
|
115
|
+
throw providerErrors.custom({
|
|
116
|
+
message: "sign methods are undefined",
|
|
117
|
+
code: 4902
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
if (params.chainId === this.chainId) {
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
this.update({
|
|
124
|
+
chainId: "loading"
|
|
125
|
+
});
|
|
126
|
+
await this.setupProvider(this.state.signMethods, params.chainId);
|
|
127
|
+
}
|
|
128
|
+
async lookupNetwork(_, chainId) {
|
|
129
|
+
if (!this._providerEngineProxy) throw providerErrors.custom({
|
|
130
|
+
message: "Provider is not initialized",
|
|
131
|
+
code: 4902
|
|
132
|
+
});
|
|
133
|
+
if (!chainId) throw rpcErrors.invalidParams("chainId is required while lookupNetwork");
|
|
134
|
+
const network = await this._providerEngineProxy.request({
|
|
135
|
+
method: "net_version",
|
|
136
|
+
params: []
|
|
137
|
+
});
|
|
138
|
+
const finalNetwork = isHexString(network) ? parseInt(network, 16) : parseInt(network, 10);
|
|
139
|
+
if (parseInt(chainId, 16) !== finalNetwork) throw providerErrors.chainDisconnected(`Invalid network, net_version is: ${network}`);
|
|
140
|
+
return network;
|
|
141
|
+
}
|
|
142
|
+
getChainSwitchMiddleware() {
|
|
143
|
+
const chainSwitchHandlers = {
|
|
144
|
+
switchChain: async params => {
|
|
145
|
+
const {
|
|
146
|
+
chainId
|
|
147
|
+
} = params;
|
|
148
|
+
await this.switchChain({
|
|
149
|
+
chainId
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
};
|
|
153
|
+
const chainSwitchMiddleware = createEthChainSwitchMiddleware(chainSwitchHandlers);
|
|
154
|
+
return chainSwitchMiddleware;
|
|
155
|
+
}
|
|
156
|
+
getAccountMiddleware() {
|
|
157
|
+
const accountHandlers = {
|
|
158
|
+
};
|
|
159
|
+
return createEthAccountMiddleware(accountHandlers);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
_EthereumSigningProvider = EthereumSigningProvider;
|
|
163
|
+
_defineProperty(EthereumSigningProvider, "getProviderInstance", async params => {
|
|
164
|
+
const providerFactory = new _EthereumSigningProvider({
|
|
165
|
+
config: {
|
|
166
|
+
chain: params.chain,
|
|
167
|
+
chains: params.chains
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
await providerFactory.setupProvider(params.signMethods, params.chain.chainId);
|
|
171
|
+
return providerFactory;
|
|
172
|
+
});
|
|
173
|
+
|
|
174
|
+
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,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 };
|