@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.
Files changed (351) hide show
  1. package/dist/757.noModal.cjs.js +226 -0
  2. package/dist/lib.cjs/adapters/auth-adapter/authAdapter.js +262 -0
  3. package/dist/lib.cjs/adapters/auth-adapter/config.js +17 -0
  4. package/dist/lib.cjs/adapters/base-evm-adapter/baseEvmAdapter.js +72 -0
  5. package/dist/lib.cjs/adapters/base-solana-adapter/baseSolanaAdapter.js +76 -0
  6. package/dist/lib.cjs/adapters/coinbase-adapter/coinbaseAdapter.js +156 -0
  7. package/dist/lib.cjs/adapters/default-evm-adapter/index.js +40 -0
  8. package/dist/lib.cjs/adapters/default-evm-adapter/injectedAdapters.js +42 -0
  9. package/dist/lib.cjs/adapters/default-evm-adapter/injectedEvmAdapter.js +160 -0
  10. package/dist/lib.cjs/adapters/default-solana-adapter/index.js +40 -0
  11. package/dist/lib.cjs/adapters/default-solana-adapter/injectedAdapters.js +53 -0
  12. package/dist/lib.cjs/adapters/default-solana-adapter/utils.js +16 -0
  13. package/dist/lib.cjs/adapters/default-solana-adapter/walletStandardAdapter.js +138 -0
  14. package/dist/lib.cjs/adapters/default-solana-adapter/walletStandardHandler.js +77 -0
  15. package/dist/lib.cjs/adapters/wallet-connect-v2-adapter/WalletConnectV2Provider.js +278 -0
  16. package/dist/lib.cjs/adapters/wallet-connect-v2-adapter/config.js +183 -0
  17. package/dist/lib.cjs/adapters/wallet-connect-v2-adapter/walletConnectV2Utils.js +165 -0
  18. package/dist/lib.cjs/adapters/wallet-connect-v2-adapter/walletConnectV2adapter.js +376 -0
  19. package/dist/lib.cjs/base/adapter/baseAdapter.js +117 -0
  20. package/dist/lib.cjs/base/adapter/constants.js +24 -0
  21. package/dist/lib.cjs/base/adapter/utils.js +66 -0
  22. package/dist/lib.cjs/base/chain/IChainInterface.js +22 -0
  23. package/dist/lib.cjs/base/chain/config.js +281 -0
  24. package/dist/lib.cjs/base/composables/index.js +5 -0
  25. package/dist/lib.cjs/base/errors/index.js +244 -0
  26. package/dist/lib.cjs/base/loglevel.js +7 -0
  27. package/dist/lib.cjs/base/plugin/IPlugin.js +31 -0
  28. package/dist/lib.cjs/base/plugin/errors.js +107 -0
  29. package/dist/lib.cjs/base/provider/IProvider.js +8 -0
  30. package/dist/lib.cjs/base/utils.js +56 -0
  31. package/dist/lib.cjs/base/wallet/index.js +31 -0
  32. package/dist/lib.cjs/index.js +200 -0
  33. package/dist/lib.cjs/noModal.js +98 -90
  34. package/dist/lib.cjs/plugins/nft-checkout-plugin/embed.js +134 -0
  35. package/dist/lib.cjs/plugins/nft-checkout-plugin/enums.js +24 -0
  36. package/dist/lib.cjs/plugins/nft-checkout-plugin/plugin.js +71 -0
  37. package/dist/lib.cjs/plugins/nft-checkout-plugin/utils.js +18 -0
  38. package/dist/lib.cjs/plugins/wallet-services-plugin/plugin.js +285 -0
  39. package/dist/lib.cjs/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +164 -0
  40. package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/BiconomySmartAccount.js +29 -0
  41. package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/KernelSmartAccount.js +22 -0
  42. package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/NexusSmartAccount.js +30 -0
  43. package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/SafeSmartAccount.js +30 -0
  44. package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/TrustSmartAccount.js +29 -0
  45. package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/constants.js +11 -0
  46. package/dist/lib.cjs/providers/account-abstraction-provider/providers/utils.js +134 -0
  47. package/dist/lib.cjs/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +174 -0
  48. package/dist/lib.cjs/providers/base-provider/CommonJRPCProvider.js +79 -0
  49. package/dist/lib.cjs/providers/base-provider/baseProvider.js +127 -0
  50. package/dist/lib.cjs/providers/base-provider/commonPrivateKeyProvider.js +89 -0
  51. package/dist/lib.cjs/providers/base-provider/jrpcClient.js +41 -0
  52. package/dist/lib.cjs/providers/base-provider/utils.js +12 -0
  53. package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +199 -0
  54. package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +165 -0
  55. package/dist/lib.cjs/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +22 -0
  56. package/dist/lib.cjs/providers/ethereum-provider/providers/converter.js +89 -0
  57. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/EthereumPrivateKeyProvider.js +185 -0
  58. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.js +27 -0
  59. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +380 -0
  60. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +10 -0
  61. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +94 -0
  62. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/ethPrivatekeyUtils.js +106 -0
  63. package/dist/lib.cjs/providers/ethereum-provider/providers/utils.js +29 -0
  64. package/dist/lib.cjs/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +75 -0
  65. package/dist/lib.cjs/providers/ethereum-provider/rpc/jrpcClient.js +41 -0
  66. package/dist/lib.cjs/providers/ethereum-provider/rpc/walletMidddleware.js +179 -0
  67. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +51 -0
  68. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +47 -0
  69. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/injectedProviderProxy.js +12 -0
  70. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/torus/providerHandlers.js +75 -0
  71. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/torus/torusInjectedProvider.js +109 -0
  72. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +12 -0
  73. package/dist/lib.cjs/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.js +180 -0
  74. package/dist/lib.cjs/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.js +103 -0
  75. package/dist/lib.cjs/providers/solana-provider/rpc/JrpcClient.js +47 -0
  76. package/dist/lib.cjs/providers/solana-provider/rpc/solanaRpcMiddlewares.js +97 -0
  77. package/dist/lib.cjs/providers/solana-provider/solanaWallet.js +62 -0
  78. package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +158 -0
  79. package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.js +89 -0
  80. package/dist/lib.cjs/providers/xrpl-provider/rpc/JrpcClient.js +48 -0
  81. package/dist/lib.cjs/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +73 -0
  82. package/dist/lib.cjs/react/index.js +16 -0
  83. package/dist/lib.cjs/react/no-modal/Web3AuthInnerContext.js +216 -0
  84. package/dist/lib.cjs/react/no-modal/Web3AuthProvider.js +15 -0
  85. package/dist/lib.cjs/react/no-modal/hooks/useWeb3Auth.js +15 -0
  86. package/dist/lib.cjs/react/wallet-services-plugin/WalletServicesContext.js +86 -0
  87. package/dist/lib.cjs/react/wallet-services-plugin/WalletServicesProvider.js +16 -0
  88. package/dist/lib.cjs/react/wallet-services-plugin/hooks/useWalletServicesPlugin.js +15 -0
  89. package/dist/lib.cjs/vue/index.js +15 -0
  90. package/dist/lib.cjs/vue/no-modal/Web3AuthProvider.js +222 -0
  91. package/dist/lib.cjs/vue/no-modal/composables/useWeb3Auth.js +13 -0
  92. package/dist/lib.cjs/vue/wallet-services-plugin/WalletServicesProvider.js +86 -0
  93. package/dist/lib.cjs/vue/wallet-services-plugin/composables/useWalletServicesPlugin.js +13 -0
  94. package/dist/lib.cjs/vue/wallet-services-plugin/context.js +5 -0
  95. package/dist/lib.esm/adapters/auth-adapter/authAdapter.js +260 -0
  96. package/dist/lib.esm/adapters/auth-adapter/config.js +15 -0
  97. package/dist/lib.esm/adapters/base-evm-adapter/baseEvmAdapter.js +70 -0
  98. package/dist/lib.esm/adapters/base-solana-adapter/baseSolanaAdapter.js +74 -0
  99. package/dist/lib.esm/adapters/coinbase-adapter/coinbaseAdapter.js +154 -0
  100. package/dist/lib.esm/adapters/default-evm-adapter/index.js +37 -0
  101. package/dist/lib.esm/adapters/default-evm-adapter/injectedAdapters.js +40 -0
  102. package/dist/lib.esm/adapters/default-evm-adapter/injectedEvmAdapter.js +158 -0
  103. package/dist/lib.esm/adapters/default-solana-adapter/index.js +37 -0
  104. package/dist/lib.esm/adapters/default-solana-adapter/injectedAdapters.js +51 -0
  105. package/dist/lib.esm/adapters/default-solana-adapter/utils.js +14 -0
  106. package/dist/lib.esm/adapters/default-solana-adapter/walletStandardAdapter.js +136 -0
  107. package/dist/lib.esm/adapters/default-solana-adapter/walletStandardHandler.js +75 -0
  108. package/dist/lib.esm/adapters/wallet-connect-v2-adapter/WalletConnectV2Provider.js +276 -0
  109. package/dist/lib.esm/adapters/wallet-connect-v2-adapter/config.js +172 -0
  110. package/dist/lib.esm/adapters/wallet-connect-v2-adapter/walletConnectV2Utils.js +158 -0
  111. package/dist/lib.esm/adapters/wallet-connect-v2-adapter/walletConnectV2adapter.js +374 -0
  112. package/dist/lib.esm/base/adapter/baseAdapter.js +115 -0
  113. package/dist/lib.esm/base/adapter/constants.js +20 -0
  114. package/dist/lib.esm/base/adapter/utils.js +60 -0
  115. package/dist/lib.esm/base/chain/IChainInterface.js +19 -0
  116. package/dist/lib.esm/base/chain/config.js +276 -0
  117. package/dist/lib.esm/base/composables/index.js +3 -0
  118. package/dist/lib.esm/base/errors/index.js +237 -0
  119. package/dist/lib.esm/base/loglevel.js +5 -0
  120. package/dist/lib.esm/base/plugin/IPlugin.js +24 -0
  121. package/dist/lib.esm/base/plugin/errors.js +104 -0
  122. package/dist/lib.esm/base/provider/IProvider.js +6 -0
  123. package/dist/lib.esm/base/utils.js +46 -0
  124. package/dist/lib.esm/base/wallet/index.js +25 -0
  125. package/dist/lib.esm/index.js +58 -0
  126. package/dist/lib.esm/noModal.js +12 -4
  127. package/dist/lib.esm/plugins/nft-checkout-plugin/embed.js +132 -0
  128. package/dist/lib.esm/plugins/nft-checkout-plugin/enums.js +20 -0
  129. package/dist/lib.esm/plugins/nft-checkout-plugin/plugin.js +69 -0
  130. package/dist/lib.esm/plugins/nft-checkout-plugin/utils.js +15 -0
  131. package/dist/lib.esm/plugins/wallet-services-plugin/plugin.js +276 -0
  132. package/dist/lib.esm/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +162 -0
  133. package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/BiconomySmartAccount.js +27 -0
  134. package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/KernelSmartAccount.js +20 -0
  135. package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/NexusSmartAccount.js +28 -0
  136. package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/SafeSmartAccount.js +28 -0
  137. package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/TrustSmartAccount.js +27 -0
  138. package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/constants.js +9 -0
  139. package/dist/lib.esm/providers/account-abstraction-provider/providers/utils.js +132 -0
  140. package/dist/lib.esm/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +171 -0
  141. package/dist/lib.esm/providers/base-provider/CommonJRPCProvider.js +77 -0
  142. package/dist/lib.esm/providers/base-provider/baseProvider.js +125 -0
  143. package/dist/lib.esm/providers/base-provider/commonPrivateKeyProvider.js +87 -0
  144. package/dist/lib.esm/providers/base-provider/jrpcClient.js +37 -0
  145. package/dist/lib.esm/providers/base-provider/utils.js +6 -0
  146. package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +197 -0
  147. package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +163 -0
  148. package/dist/lib.esm/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +20 -0
  149. package/dist/lib.esm/providers/ethereum-provider/providers/converter.js +85 -0
  150. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/EthereumPrivateKeyProvider.js +183 -0
  151. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.js +21 -0
  152. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +378 -0
  153. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +8 -0
  154. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +88 -0
  155. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/ethPrivatekeyUtils.js +104 -0
  156. package/dist/lib.esm/providers/ethereum-provider/providers/utils.js +24 -0
  157. package/dist/lib.esm/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +71 -0
  158. package/dist/lib.esm/providers/ethereum-provider/rpc/jrpcClient.js +37 -0
  159. package/dist/lib.esm/providers/ethereum-provider/rpc/walletMidddleware.js +177 -0
  160. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +49 -0
  161. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +45 -0
  162. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/injectedProviderProxy.js +10 -0
  163. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/torus/providerHandlers.js +73 -0
  164. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/torus/torusInjectedProvider.js +107 -0
  165. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +10 -0
  166. package/dist/lib.esm/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.js +178 -0
  167. package/dist/lib.esm/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.js +101 -0
  168. package/dist/lib.esm/providers/solana-provider/rpc/JrpcClient.js +42 -0
  169. package/dist/lib.esm/providers/solana-provider/rpc/solanaRpcMiddlewares.js +89 -0
  170. package/dist/lib.esm/providers/solana-provider/solanaWallet.js +60 -0
  171. package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +156 -0
  172. package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.js +87 -0
  173. package/dist/lib.esm/providers/xrpl-provider/rpc/JrpcClient.js +43 -0
  174. package/dist/lib.esm/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +67 -0
  175. package/dist/lib.esm/react/index.js +5 -0
  176. package/dist/lib.esm/react/no-modal/Web3AuthInnerContext.js +213 -0
  177. package/dist/lib.esm/react/no-modal/Web3AuthProvider.js +13 -0
  178. package/dist/lib.esm/react/no-modal/hooks/useWeb3Auth.js +13 -0
  179. package/dist/lib.esm/react/wallet-services-plugin/WalletServicesContext.js +83 -0
  180. package/dist/lib.esm/react/wallet-services-plugin/WalletServicesProvider.js +14 -0
  181. package/dist/lib.esm/react/wallet-services-plugin/hooks/useWalletServicesPlugin.js +13 -0
  182. package/dist/lib.esm/vue/index.js +5 -0
  183. package/dist/lib.esm/vue/no-modal/Web3AuthProvider.js +220 -0
  184. package/dist/lib.esm/vue/no-modal/composables/useWeb3Auth.js +11 -0
  185. package/dist/lib.esm/vue/wallet-services-plugin/WalletServicesProvider.js +84 -0
  186. package/dist/lib.esm/vue/wallet-services-plugin/composables/useWalletServicesPlugin.js +11 -0
  187. package/dist/lib.esm/vue/wallet-services-plugin/context.js +3 -0
  188. package/dist/noModal.cjs.js +26314 -364
  189. package/dist/noModal.umd.min.js +1 -1
  190. package/dist/noModal.umd.min.js.LICENSE.txt +54 -0
  191. package/dist/types/adapters/auth-adapter/authAdapter.d.ts +42 -0
  192. package/dist/types/adapters/auth-adapter/config.d.ts +2 -0
  193. package/dist/types/adapters/auth-adapter/index.d.ts +3 -0
  194. package/dist/types/adapters/auth-adapter/interface.d.ts +11 -0
  195. package/dist/types/adapters/base-evm-adapter/baseEvmAdapter.d.ts +7 -0
  196. package/dist/types/adapters/base-evm-adapter/index.d.ts +1 -0
  197. package/dist/types/adapters/base-solana-adapter/baseSolanaAdapter.d.ts +7 -0
  198. package/dist/types/adapters/base-solana-adapter/index.d.ts +1 -0
  199. package/dist/types/adapters/coinbase-adapter/coinbaseAdapter.d.ts +33 -0
  200. package/dist/types/adapters/coinbase-adapter/index.d.ts +1 -0
  201. package/dist/types/adapters/default-evm-adapter/index.d.ts +6 -0
  202. package/dist/types/adapters/default-evm-adapter/injectedAdapters.d.ts +4 -0
  203. package/dist/types/adapters/default-evm-adapter/injectedEvmAdapter.d.ts +30 -0
  204. package/dist/types/adapters/default-solana-adapter/index.d.ts +6 -0
  205. package/dist/types/adapters/default-solana-adapter/injectedAdapters.d.ts +4 -0
  206. package/dist/types/adapters/default-solana-adapter/utils.d.ts +3 -0
  207. package/dist/types/adapters/default-solana-adapter/walletStandardAdapter.d.ts +31 -0
  208. package/dist/types/adapters/default-solana-adapter/walletStandardHandler.d.ts +27 -0
  209. package/dist/types/adapters/index.d.ts +7 -0
  210. package/dist/types/adapters/wallet-connect-v2-adapter/WalletConnectV2Provider.d.ts +36 -0
  211. package/dist/types/adapters/wallet-connect-v2-adapter/config.d.ts +35 -0
  212. package/dist/types/adapters/wallet-connect-v2-adapter/index.d.ts +4 -0
  213. package/dist/types/adapters/wallet-connect-v2-adapter/interface.d.ts +18 -0
  214. package/dist/types/adapters/wallet-connect-v2-adapter/utils.d.ts +3 -0
  215. package/dist/types/adapters/wallet-connect-v2-adapter/walletConnectV2Utils.d.ts +23 -0
  216. package/dist/types/adapters/wallet-connect-v2-adapter/walletConnectV2adapter.d.ts +42 -0
  217. package/dist/types/base/adapter/baseAdapter.d.ts +44 -0
  218. package/dist/types/base/adapter/constants.d.ts +22 -0
  219. package/dist/types/base/adapter/index.d.ts +4 -0
  220. package/dist/types/base/adapter/interfaces.d.ts +143 -0
  221. package/dist/types/base/adapter/utils.d.ts +5 -0
  222. package/dist/types/base/chain/IChainInterface.d.ts +59 -0
  223. package/dist/types/base/chain/config.d.ts +5 -0
  224. package/dist/types/base/composables/index.d.ts +1 -0
  225. package/dist/types/base/core/IWeb3Auth.d.ts +101 -0
  226. package/dist/types/base/errors/index.d.ts +69 -0
  227. package/dist/types/base/hooks/index.d.ts +37 -0
  228. package/dist/types/base/index.d.ts +13 -0
  229. package/dist/types/base/interfaces.d.ts +44 -0
  230. package/dist/types/base/loglevel.d.ts +2 -0
  231. package/dist/types/base/plugin/IPlugin.d.ts +53 -0
  232. package/dist/types/base/plugin/errors.d.ts +28 -0
  233. package/dist/types/base/plugin/index.d.ts +2 -0
  234. package/dist/types/base/provider/IProvider.d.ts +16 -0
  235. package/dist/types/base/utils.d.ts +9 -0
  236. package/dist/types/base/wallet/index.d.ts +33 -0
  237. package/dist/types/index.d.ts +4 -0
  238. package/dist/types/noModal.d.ts +2 -2
  239. package/dist/types/plugins/index.d.ts +2 -0
  240. package/dist/types/plugins/nft-checkout-plugin/embed.d.ts +24 -0
  241. package/dist/types/plugins/nft-checkout-plugin/enums.d.ts +14 -0
  242. package/dist/types/plugins/nft-checkout-plugin/index.d.ts +2 -0
  243. package/dist/types/plugins/nft-checkout-plugin/plugin.d.ts +23 -0
  244. package/dist/types/plugins/nft-checkout-plugin/utils.d.ts +3 -0
  245. package/dist/types/plugins/wallet-services-plugin/index.d.ts +1 -0
  246. package/dist/types/plugins/wallet-services-plugin/plugin.d.ts +51 -0
  247. package/dist/types/providers/account-abstraction-provider/index.d.ts +1 -0
  248. package/dist/types/providers/account-abstraction-provider/providers/AccountAbstractionProvider.d.ts +46 -0
  249. package/dist/types/providers/account-abstraction-provider/providers/index.d.ts +3 -0
  250. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/BiconomySmartAccount.d.ts +14 -0
  251. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/KernelSmartAccount.d.ts +13 -0
  252. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/LightSmartAccount.d.ts +14 -0
  253. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/NexusSmartAccount.d.ts +14 -0
  254. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/SafeSmartAccount.d.ts +13 -0
  255. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/SimpleSmartAccount.d.ts +13 -0
  256. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/TrustSmartAccount.d.ts +13 -0
  257. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/constants.d.ts +9 -0
  258. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/index.d.ts +6 -0
  259. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/types.d.ts +22 -0
  260. package/dist/types/providers/account-abstraction-provider/providers/types.d.ts +17 -0
  261. package/dist/types/providers/account-abstraction-provider/providers/utils.d.ts +10 -0
  262. package/dist/types/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.d.ts +8 -0
  263. package/dist/types/providers/account-abstraction-provider/rpc/index.d.ts +1 -0
  264. package/dist/types/providers/base-provider/CommonJRPCProvider.d.ts +20 -0
  265. package/dist/types/providers/base-provider/baseProvider.d.ts +39 -0
  266. package/dist/types/providers/base-provider/commonPrivateKeyProvider.d.ts +31 -0
  267. package/dist/types/providers/base-provider/index.d.ts +5 -0
  268. package/dist/types/providers/base-provider/interfaces.d.ts +3 -0
  269. package/dist/types/providers/base-provider/jrpcClient.d.ts +8 -0
  270. package/dist/types/providers/base-provider/utils.d.ts +2 -0
  271. package/dist/types/providers/ethereum-mpc-provider/index.d.ts +1 -0
  272. package/dist/types/providers/ethereum-mpc-provider/providers/index.d.ts +1 -0
  273. package/dist/types/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.d.ts +65 -0
  274. package/dist/types/providers/ethereum-mpc-provider/providers/signingProviders/index.d.ts +1 -0
  275. package/dist/types/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.d.ts +12 -0
  276. package/dist/types/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.d.ts +3 -0
  277. package/dist/types/providers/ethereum-mpc-provider/rpc/interfaces.d.ts +15 -0
  278. package/dist/types/providers/ethereum-provider/index.d.ts +2 -0
  279. package/dist/types/providers/ethereum-provider/providers/converter.d.ts +15 -0
  280. package/dist/types/providers/ethereum-provider/providers/index.d.ts +1 -0
  281. package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/EthereumPrivateKeyProvider.d.ts +30 -0
  282. package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.d.ts +16 -0
  283. package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.d.ts +28 -0
  284. package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/index.d.ts +4 -0
  285. package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.d.ts +46 -0
  286. package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.d.ts +12 -0
  287. package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/ethPrivatekeyUtils.d.ts +9 -0
  288. package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/index.d.ts +2 -0
  289. package/dist/types/providers/ethereum-provider/providers/utils.d.ts +5 -0
  290. package/dist/types/providers/ethereum-provider/rpc/ethRpcMiddlewares.d.ts +5 -0
  291. package/dist/types/providers/ethereum-provider/rpc/index.d.ts +4 -0
  292. package/dist/types/providers/ethereum-provider/rpc/interfaces.d.ts +65 -0
  293. package/dist/types/providers/ethereum-provider/rpc/jrpcClient.d.ts +8 -0
  294. package/dist/types/providers/ethereum-provider/rpc/walletMidddleware.d.ts +3 -0
  295. package/dist/types/providers/index.d.ts +6 -0
  296. package/dist/types/providers/solana-provider/index.d.ts +4 -0
  297. package/dist/types/providers/solana-provider/interface.d.ts +39 -0
  298. package/dist/types/providers/solana-provider/providers/index.d.ts +2 -0
  299. package/dist/types/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.d.ts +16 -0
  300. package/dist/types/providers/solana-provider/providers/injectedProviders/base/providerHandlers.d.ts +3 -0
  301. package/dist/types/providers/solana-provider/providers/injectedProviders/index.d.ts +3 -0
  302. package/dist/types/providers/solana-provider/providers/injectedProviders/injectedProviderProxy.d.ts +3 -0
  303. package/dist/types/providers/solana-provider/providers/injectedProviders/interface.d.ts +5 -0
  304. package/dist/types/providers/solana-provider/providers/injectedProviders/torus/providerHandlers.d.ts +3 -0
  305. package/dist/types/providers/solana-provider/providers/injectedProviders/torus/torusInjectedProvider.d.ts +18 -0
  306. package/dist/types/providers/solana-provider/providers/injectedProviders/walletStandardProvider.d.ts +6 -0
  307. package/dist/types/providers/solana-provider/providers/privateKeyProvider/index.d.ts +1 -0
  308. package/dist/types/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.d.ts +31 -0
  309. package/dist/types/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.d.ts +7 -0
  310. package/dist/types/providers/solana-provider/rpc/JrpcClient.d.ts +9 -0
  311. package/dist/types/providers/solana-provider/rpc/index.d.ts +3 -0
  312. package/dist/types/providers/solana-provider/rpc/interfaces.d.ts +42 -0
  313. package/dist/types/providers/solana-provider/rpc/solanaRpcMiddlewares.d.ts +20 -0
  314. package/dist/types/providers/solana-provider/solanaWallet.d.ts +14 -0
  315. package/dist/types/providers/xrpl-provider/index.d.ts +1 -0
  316. package/dist/types/providers/xrpl-provider/providers/index.d.ts +1 -0
  317. package/dist/types/providers/xrpl-provider/providers/privateKeyProviders/constants.d.ts +5 -0
  318. package/dist/types/providers/xrpl-provider/providers/privateKeyProviders/index.d.ts +3 -0
  319. package/dist/types/providers/xrpl-provider/providers/privateKeyProviders/interface.d.ts +2 -0
  320. package/dist/types/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.d.ts +26 -0
  321. package/dist/types/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.d.ts +7 -0
  322. package/dist/types/providers/xrpl-provider/rpc/JrpcClient.d.ts +9 -0
  323. package/dist/types/providers/xrpl-provider/rpc/xrplRpcMiddlewares.d.ts +52 -0
  324. package/dist/types/react/index.d.ts +2 -0
  325. package/dist/types/react/no-modal/Web3AuthInnerContext.d.ts +4 -0
  326. package/dist/types/react/no-modal/Web3AuthProvider.d.ts +3 -0
  327. package/dist/types/react/no-modal/hooks/index.d.ts +1 -0
  328. package/dist/types/react/no-modal/hooks/useWeb3Auth.d.ts +2 -0
  329. package/dist/types/react/no-modal/index.d.ts +3 -0
  330. package/dist/types/react/no-modal/interfaces.d.ts +15 -0
  331. package/dist/types/react/wallet-services-plugin/WalletServicesContext.d.ts +7 -0
  332. package/dist/types/react/wallet-services-plugin/WalletServicesProvider.d.ts +7 -0
  333. package/dist/types/react/wallet-services-plugin/hooks/index.d.ts +1 -0
  334. package/dist/types/react/wallet-services-plugin/hooks/useWalletServicesPlugin.d.ts +2 -0
  335. package/dist/types/react/wallet-services-plugin/index.d.ts +4 -0
  336. package/dist/types/react/wallet-services-plugin/interfaces.d.ts +5 -0
  337. package/dist/types/vue/index.d.ts +2 -0
  338. package/dist/types/vue/no-modal/Web3AuthProvider.d.ts +13 -0
  339. package/dist/types/vue/no-modal/composables/index.d.ts +1 -0
  340. package/dist/types/vue/no-modal/composables/useWeb3Auth.d.ts +2 -0
  341. package/dist/types/vue/no-modal/index.d.ts +3 -0
  342. package/dist/types/vue/no-modal/interfaces.d.ts +42 -0
  343. package/dist/types/vue/wallet-services-plugin/WalletServicesProvider.d.ts +1 -0
  344. package/dist/types/vue/wallet-services-plugin/composables/index.d.ts +1 -0
  345. package/dist/types/vue/wallet-services-plugin/composables/useWalletServicesPlugin.d.ts +2 -0
  346. package/dist/types/vue/wallet-services-plugin/context.d.ts +3 -0
  347. package/dist/types/vue/wallet-services-plugin/index.d.ts +4 -0
  348. package/dist/types/vue/wallet-services-plugin/interfaces.d.ts +13 -0
  349. package/package.json +76 -15
  350. package/README.md +0 -82
  351. 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 };
@@ -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 };