@web3auth/no-modal 10.0.0-alpha.1 → 10.0.0-beta.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 (266) hide show
  1. package/dist/lib.cjs/base/chain/IChainInterface.js +5 -10
  2. package/dist/lib.cjs/base/chain/config.js +20 -19
  3. package/dist/lib.cjs/base/connector/baseConnector.js +3 -6
  4. package/dist/lib.cjs/base/connector/constants.js +5 -0
  5. package/dist/lib.cjs/base/errors/index.js +0 -10
  6. package/dist/lib.cjs/base/plugin/IPlugin.js +2 -2
  7. package/dist/lib.cjs/base/plugin/errors.js +0 -2
  8. package/dist/lib.cjs/base/utils.js +10 -9
  9. package/dist/lib.cjs/base/wallet/index.js +2 -1
  10. package/dist/lib.cjs/connectors/auth-connector/authConnector.js +218 -59
  11. package/dist/lib.cjs/connectors/base-evm-connector/baseEvmConnector.js +8 -2
  12. package/dist/lib.cjs/connectors/base-solana-connector/baseSolanaConnector.js +7 -1
  13. package/dist/lib.cjs/connectors/coinbase-connector/coinbaseConnector.js +11 -3
  14. package/dist/lib.cjs/connectors/injected-evm-connector/injectedEvmConnector.js +13 -5
  15. package/dist/lib.cjs/connectors/injected-solana-connector/index.js +2 -2
  16. package/dist/lib.cjs/connectors/injected-solana-connector/walletStandardConnector.js +13 -5
  17. package/dist/lib.cjs/connectors/metamask-connector/metamaskConnector.js +197 -0
  18. package/dist/lib.cjs/connectors/utils.js +61 -0
  19. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +24 -7
  20. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/config.js +36 -90
  21. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/index.js +16 -4
  22. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +21 -30
  23. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Utils.js +12 -2
  24. package/dist/lib.cjs/index.js +76 -55
  25. package/dist/lib.cjs/noModal.js +149 -53
  26. package/dist/lib.cjs/plugins/nft-checkout-plugin/embed.js +0 -3
  27. package/dist/lib.cjs/plugins/nft-checkout-plugin/plugin.js +10 -3
  28. package/dist/lib.cjs/plugins/wallet-services-plugin/plugin.js +13 -11
  29. package/dist/lib.cjs/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +33 -18
  30. package/dist/lib.cjs/providers/account-abstraction-provider/providers/utils.js +10 -0
  31. package/dist/lib.cjs/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +0 -2
  32. package/dist/lib.cjs/providers/base-provider/baseProvider.js +32 -12
  33. package/dist/lib.cjs/providers/base-provider/index.js +4 -0
  34. package/dist/lib.cjs/providers/base-provider/utils.js +10 -2
  35. package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +18 -5
  36. package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +12 -2
  37. package/dist/lib.cjs/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +0 -1
  38. package/dist/lib.cjs/providers/ethereum-provider/providers/converter.js +0 -1
  39. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +12 -11
  40. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +3 -5
  41. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +1 -2
  42. package/dist/lib.cjs/providers/ethereum-provider/rpc/walletMidddleware.js +0 -8
  43. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +13 -0
  44. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +4 -4
  45. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +15 -8
  46. package/dist/lib.cjs/providers/solana-provider/rpc/solanaRpcMiddlewares.js +1 -1
  47. package/dist/lib.cjs/providers/solana-provider/solanaWallet.js +0 -3
  48. package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +13 -2
  49. package/dist/lib.cjs/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +0 -1
  50. package/dist/lib.cjs/react/no-modal/Web3AuthInnerContext.js +11 -3
  51. package/dist/lib.cjs/react/no-modal/hooks/useWeb3Auth.js +11 -0
  52. package/dist/lib.cjs/react/wallet-services-plugin/WalletServicesContext.js +10 -1
  53. package/dist/lib.cjs/react/wallet-services-plugin/hooks/useWalletServicesPlugin.js +11 -0
  54. package/dist/lib.cjs/types/base/chain/IChainInterface.d.ts +11 -0
  55. package/dist/{types → lib.cjs/types}/base/connector/constants.d.ts +4 -0
  56. package/dist/{types → lib.cjs/types}/base/connector/interfaces.d.ts +17 -5
  57. package/dist/{types → lib.cjs/types}/base/core/IWeb3Auth.d.ts +11 -5
  58. package/dist/lib.cjs/types/base/interfaces.d.ts +102 -0
  59. package/dist/{types → lib.cjs/types}/base/utils.d.ts +2 -2
  60. package/dist/{types → lib.cjs/types}/base/wallet/index.d.ts +2 -0
  61. package/dist/{types → lib.cjs/types}/connectors/auth-connector/authConnector.d.ts +9 -2
  62. package/dist/lib.cjs/types/connectors/auth-connector/interface.d.ts +17 -0
  63. package/dist/lib.cjs/types/connectors/metamask-connector/index.d.ts +1 -0
  64. package/dist/lib.cjs/types/connectors/metamask-connector/metamaskConnector.d.ts +6 -0
  65. package/dist/lib.cjs/types/connectors/utils.d.ts +8 -0
  66. package/dist/{types → lib.cjs/types}/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.d.ts +1 -2
  67. package/dist/{types → lib.cjs/types}/noModal.d.ts +6 -4
  68. package/dist/{types → lib.cjs/types}/providers/account-abstraction-provider/providers/AccountAbstractionProvider.d.ts +4 -5
  69. package/dist/{types → lib.cjs/types}/providers/base-provider/baseProvider.d.ts +3 -7
  70. package/dist/{types → lib.cjs/types}/providers/base-provider/commonPrivateKeyProvider.d.ts +1 -2
  71. package/dist/{types → lib.cjs/types}/providers/base-provider/interfaces.d.ts +3 -1
  72. package/dist/lib.cjs/types/providers/base-provider/utils.d.ts +9 -0
  73. package/dist/{types → lib.cjs/types}/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.d.ts +1 -2
  74. package/dist/lib.cjs/types/providers/solana-provider/providers/index.d.ts +1 -0
  75. package/dist/{types → lib.cjs/types}/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.d.ts +1 -2
  76. package/dist/lib.cjs/vue/no-modal/Web3AuthProvider.js +12 -3
  77. package/dist/lib.cjs/vue/no-modal/composables/useWeb3Auth.js +12 -1
  78. package/dist/lib.cjs/vue/wallet-services-plugin/WalletServicesProvider.js +11 -3
  79. package/dist/lib.cjs/vue/wallet-services-plugin/composables/useWalletServicesPlugin.js +12 -1
  80. package/dist/lib.esm/base/chain/IChainInterface.js +2 -10
  81. package/dist/lib.esm/base/chain/config.js +4 -3
  82. package/dist/lib.esm/base/connector/baseConnector.js +2 -5
  83. package/dist/lib.esm/base/connector/constants.js +5 -1
  84. package/dist/lib.esm/base/errors/index.js +0 -10
  85. package/dist/lib.esm/base/plugin/IPlugin.js +1 -1
  86. package/dist/lib.esm/base/plugin/errors.js +0 -2
  87. package/dist/lib.esm/base/utils.js +8 -7
  88. package/dist/lib.esm/base/wallet/index.js +2 -1
  89. package/dist/lib.esm/connectors/auth-connector/authConnector.js +212 -53
  90. package/dist/lib.esm/connectors/base-evm-connector/baseEvmConnector.js +8 -2
  91. package/dist/lib.esm/connectors/base-solana-connector/baseSolanaConnector.js +7 -1
  92. package/dist/lib.esm/connectors/coinbase-connector/coinbaseConnector.js +10 -2
  93. package/dist/lib.esm/connectors/injected-evm-connector/injectedEvmConnector.js +12 -4
  94. package/dist/lib.esm/connectors/injected-solana-connector/walletStandardConnector.js +12 -4
  95. package/dist/lib.esm/connectors/metamask-connector/metamaskConnector.js +195 -0
  96. package/dist/lib.esm/connectors/utils.js +58 -0
  97. package/dist/lib.esm/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +22 -5
  98. package/dist/lib.esm/connectors/wallet-connect-v2-connector/config.js +25 -75
  99. package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +19 -28
  100. package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Utils.js +11 -1
  101. package/dist/lib.esm/index.js +13 -14
  102. package/dist/lib.esm/noModal.js +147 -51
  103. package/dist/lib.esm/plugins/nft-checkout-plugin/embed.js +1 -4
  104. package/dist/lib.esm/plugins/nft-checkout-plugin/plugin.js +10 -3
  105. package/dist/lib.esm/plugins/wallet-services-plugin/plugin.js +9 -7
  106. package/dist/lib.esm/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +30 -15
  107. package/dist/lib.esm/providers/account-abstraction-provider/providers/utils.js +10 -0
  108. package/dist/lib.esm/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +0 -2
  109. package/dist/lib.esm/providers/base-provider/baseProvider.js +32 -12
  110. package/dist/lib.esm/providers/base-provider/index.js +1 -1
  111. package/dist/lib.esm/providers/base-provider/utils.js +9 -1
  112. package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +16 -3
  113. package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +12 -2
  114. package/dist/lib.esm/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +0 -1
  115. package/dist/lib.esm/providers/ethereum-provider/providers/converter.js +0 -1
  116. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +12 -11
  117. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +3 -3
  118. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +1 -2
  119. package/dist/lib.esm/providers/ethereum-provider/rpc/walletMidddleware.js +0 -8
  120. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +13 -0
  121. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +1 -1
  122. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +12 -5
  123. package/dist/lib.esm/providers/solana-provider/rpc/solanaRpcMiddlewares.js +2 -2
  124. package/dist/lib.esm/providers/solana-provider/solanaWallet.js +0 -3
  125. package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +12 -1
  126. package/dist/lib.esm/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +0 -1
  127. package/dist/lib.esm/react/no-modal/Web3AuthInnerContext.js +11 -3
  128. package/dist/lib.esm/react/no-modal/hooks/useWeb3Auth.js +11 -0
  129. package/dist/lib.esm/react/wallet-services-plugin/WalletServicesContext.js +10 -1
  130. package/dist/lib.esm/react/wallet-services-plugin/hooks/useWalletServicesPlugin.js +11 -0
  131. package/dist/lib.esm/vue/no-modal/Web3AuthProvider.js +12 -3
  132. package/dist/lib.esm/vue/no-modal/composables/useWeb3Auth.js +12 -1
  133. package/dist/lib.esm/vue/wallet-services-plugin/WalletServicesProvider.js +11 -3
  134. package/dist/lib.esm/vue/wallet-services-plugin/composables/useWalletServicesPlugin.js +12 -1
  135. package/dist/noModal.umd.min.js +1 -1
  136. package/package.json +26 -23
  137. package/dist/lib.cjs/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.js +0 -150
  138. package/dist/lib.cjs/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.js +0 -94
  139. package/dist/lib.esm/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.js +0 -148
  140. package/dist/lib.esm/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.js +0 -92
  141. package/dist/noModal.cjs.js +0 -14673
  142. package/dist/types/base/chain/IChainInterface.d.ts +0 -59
  143. package/dist/types/base/interfaces.d.ts +0 -44
  144. package/dist/types/connectors/auth-connector/interface.d.ts +0 -14
  145. package/dist/types/providers/base-provider/utils.d.ts +0 -2
  146. package/dist/types/providers/solana-provider/providers/index.d.ts +0 -2
  147. package/dist/types/providers/solana-provider/providers/privateKeyProvider/index.d.ts +0 -1
  148. package/dist/types/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.d.ts +0 -31
  149. package/dist/types/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.d.ts +0 -7
  150. /package/dist/{types → lib.cjs/types}/base/chain/config.d.ts +0 -0
  151. /package/dist/{types → lib.cjs/types}/base/composables/index.d.ts +0 -0
  152. /package/dist/{types → lib.cjs/types}/base/connector/baseConnector.d.ts +0 -0
  153. /package/dist/{types → lib.cjs/types}/base/connector/index.d.ts +0 -0
  154. /package/dist/{types → lib.cjs/types}/base/connector/utils.d.ts +0 -0
  155. /package/dist/{types → lib.cjs/types}/base/errors/index.d.ts +0 -0
  156. /package/dist/{types → lib.cjs/types}/base/hooks/index.d.ts +0 -0
  157. /package/dist/{types → lib.cjs/types}/base/index.d.ts +0 -0
  158. /package/dist/{types → lib.cjs/types}/base/loglevel.d.ts +0 -0
  159. /package/dist/{types → lib.cjs/types}/base/plugin/IPlugin.d.ts +0 -0
  160. /package/dist/{types → lib.cjs/types}/base/plugin/errors.d.ts +0 -0
  161. /package/dist/{types → lib.cjs/types}/base/plugin/index.d.ts +0 -0
  162. /package/dist/{types → lib.cjs/types}/base/provider/IProvider.d.ts +0 -0
  163. /package/dist/{types → lib.cjs/types}/connectors/auth-connector/index.d.ts +0 -0
  164. /package/dist/{types → lib.cjs/types}/connectors/base-evm-connector/baseEvmConnector.d.ts +0 -0
  165. /package/dist/{types → lib.cjs/types}/connectors/base-evm-connector/index.d.ts +0 -0
  166. /package/dist/{types → lib.cjs/types}/connectors/base-solana-connector/baseSolanaConnector.d.ts +0 -0
  167. /package/dist/{types → lib.cjs/types}/connectors/base-solana-connector/index.d.ts +0 -0
  168. /package/dist/{types → lib.cjs/types}/connectors/coinbase-connector/coinbaseConnector.d.ts +0 -0
  169. /package/dist/{types → lib.cjs/types}/connectors/coinbase-connector/index.d.ts +0 -0
  170. /package/dist/{types → lib.cjs/types}/connectors/index.d.ts +0 -0
  171. /package/dist/{types → lib.cjs/types}/connectors/injected-evm-connector/index.d.ts +0 -0
  172. /package/dist/{types → lib.cjs/types}/connectors/injected-evm-connector/injectedEvmConnector.d.ts +0 -0
  173. /package/dist/{types → lib.cjs/types}/connectors/injected-solana-connector/index.d.ts +0 -0
  174. /package/dist/{types → lib.cjs/types}/connectors/injected-solana-connector/utils.d.ts +0 -0
  175. /package/dist/{types → lib.cjs/types}/connectors/injected-solana-connector/walletStandardConnector.d.ts +0 -0
  176. /package/dist/{types → lib.cjs/types}/connectors/wallet-connect-v2-connector/config.d.ts +0 -0
  177. /package/dist/{types → lib.cjs/types}/connectors/wallet-connect-v2-connector/index.d.ts +0 -0
  178. /package/dist/{types → lib.cjs/types}/connectors/wallet-connect-v2-connector/interface.d.ts +0 -0
  179. /package/dist/{types → lib.cjs/types}/connectors/wallet-connect-v2-connector/utils.d.ts +0 -0
  180. /package/dist/{types → lib.cjs/types}/connectors/wallet-connect-v2-connector/walletConnectV2Connector.d.ts +0 -0
  181. /package/dist/{types → lib.cjs/types}/connectors/wallet-connect-v2-connector/walletConnectV2Utils.d.ts +0 -0
  182. /package/dist/{types → lib.cjs/types}/index.d.ts +0 -0
  183. /package/dist/{types → lib.cjs/types}/plugins/index.d.ts +0 -0
  184. /package/dist/{types → lib.cjs/types}/plugins/nft-checkout-plugin/embed.d.ts +0 -0
  185. /package/dist/{types → lib.cjs/types}/plugins/nft-checkout-plugin/enums.d.ts +0 -0
  186. /package/dist/{types → lib.cjs/types}/plugins/nft-checkout-plugin/index.d.ts +0 -0
  187. /package/dist/{types → lib.cjs/types}/plugins/nft-checkout-plugin/plugin.d.ts +0 -0
  188. /package/dist/{types → lib.cjs/types}/plugins/nft-checkout-plugin/utils.d.ts +0 -0
  189. /package/dist/{types → lib.cjs/types}/plugins/wallet-services-plugin/index.d.ts +0 -0
  190. /package/dist/{types → lib.cjs/types}/plugins/wallet-services-plugin/plugin.d.ts +0 -0
  191. /package/dist/{types → lib.cjs/types}/providers/account-abstraction-provider/index.d.ts +0 -0
  192. /package/dist/{types → lib.cjs/types}/providers/account-abstraction-provider/providers/index.d.ts +0 -0
  193. /package/dist/{types → lib.cjs/types}/providers/account-abstraction-provider/providers/smartAccounts/index.d.ts +0 -0
  194. /package/dist/{types → lib.cjs/types}/providers/account-abstraction-provider/providers/utils.d.ts +0 -0
  195. /package/dist/{types → lib.cjs/types}/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.d.ts +0 -0
  196. /package/dist/{types → lib.cjs/types}/providers/account-abstraction-provider/rpc/index.d.ts +0 -0
  197. /package/dist/{types → lib.cjs/types}/providers/base-provider/CommonJRPCProvider.d.ts +0 -0
  198. /package/dist/{types → lib.cjs/types}/providers/base-provider/index.d.ts +0 -0
  199. /package/dist/{types → lib.cjs/types}/providers/base-provider/jrpcClient.d.ts +0 -0
  200. /package/dist/{types → lib.cjs/types}/providers/ethereum-mpc-provider/index.d.ts +0 -0
  201. /package/dist/{types → lib.cjs/types}/providers/ethereum-mpc-provider/providers/index.d.ts +0 -0
  202. /package/dist/{types → lib.cjs/types}/providers/ethereum-mpc-provider/providers/signingProviders/index.d.ts +0 -0
  203. /package/dist/{types → lib.cjs/types}/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.d.ts +0 -0
  204. /package/dist/{types → lib.cjs/types}/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.d.ts +0 -0
  205. /package/dist/{types → lib.cjs/types}/providers/ethereum-mpc-provider/rpc/interfaces.d.ts +0 -0
  206. /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/index.d.ts +0 -0
  207. /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/providers/converter.d.ts +0 -0
  208. /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/providers/index.d.ts +0 -0
  209. /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.d.ts +0 -0
  210. /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.d.ts +0 -0
  211. /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/index.d.ts +0 -0
  212. /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.d.ts +0 -0
  213. /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.d.ts +0 -0
  214. /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/providers/privateKeyProviders/index.d.ts +0 -0
  215. /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/providers/utils.d.ts +0 -0
  216. /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/rpc/ethRpcMiddlewares.d.ts +0 -0
  217. /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/rpc/index.d.ts +0 -0
  218. /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/rpc/interfaces.d.ts +0 -0
  219. /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/rpc/jrpcClient.d.ts +0 -0
  220. /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/rpc/walletMidddleware.d.ts +0 -0
  221. /package/dist/{types → lib.cjs/types}/providers/index.d.ts +0 -0
  222. /package/dist/{types → lib.cjs/types}/providers/solana-provider/index.d.ts +0 -0
  223. /package/dist/{types → lib.cjs/types}/providers/solana-provider/interface.d.ts +0 -0
  224. /package/dist/{types → lib.cjs/types}/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.d.ts +0 -0
  225. /package/dist/{types → lib.cjs/types}/providers/solana-provider/providers/injectedProviders/base/providerHandlers.d.ts +0 -0
  226. /package/dist/{types → lib.cjs/types}/providers/solana-provider/providers/injectedProviders/index.d.ts +0 -0
  227. /package/dist/{types → lib.cjs/types}/providers/solana-provider/providers/injectedProviders/utils.d.ts +0 -0
  228. /package/dist/{types → lib.cjs/types}/providers/solana-provider/providers/injectedProviders/walletStandardProvider.d.ts +0 -0
  229. /package/dist/{types → lib.cjs/types}/providers/solana-provider/rpc/JrpcClient.d.ts +0 -0
  230. /package/dist/{types → lib.cjs/types}/providers/solana-provider/rpc/index.d.ts +0 -0
  231. /package/dist/{types → lib.cjs/types}/providers/solana-provider/rpc/interfaces.d.ts +0 -0
  232. /package/dist/{types → lib.cjs/types}/providers/solana-provider/rpc/solanaRpcMiddlewares.d.ts +0 -0
  233. /package/dist/{types → lib.cjs/types}/providers/solana-provider/solanaWallet.d.ts +0 -0
  234. /package/dist/{types → lib.cjs/types}/providers/xrpl-provider/index.d.ts +0 -0
  235. /package/dist/{types → lib.cjs/types}/providers/xrpl-provider/providers/index.d.ts +0 -0
  236. /package/dist/{types → lib.cjs/types}/providers/xrpl-provider/providers/privateKeyProviders/constants.d.ts +0 -0
  237. /package/dist/{types → lib.cjs/types}/providers/xrpl-provider/providers/privateKeyProviders/index.d.ts +0 -0
  238. /package/dist/{types → lib.cjs/types}/providers/xrpl-provider/providers/privateKeyProviders/interface.d.ts +0 -0
  239. /package/dist/{types → lib.cjs/types}/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.d.ts +0 -0
  240. /package/dist/{types → lib.cjs/types}/providers/xrpl-provider/rpc/JrpcClient.d.ts +0 -0
  241. /package/dist/{types → lib.cjs/types}/providers/xrpl-provider/rpc/xrplRpcMiddlewares.d.ts +0 -0
  242. /package/dist/{types → lib.cjs/types}/react/index.d.ts +0 -0
  243. /package/dist/{types → lib.cjs/types}/react/no-modal/Web3AuthInnerContext.d.ts +0 -0
  244. /package/dist/{types → lib.cjs/types}/react/no-modal/Web3AuthProvider.d.ts +0 -0
  245. /package/dist/{types → lib.cjs/types}/react/no-modal/hooks/index.d.ts +0 -0
  246. /package/dist/{types → lib.cjs/types}/react/no-modal/hooks/useWeb3Auth.d.ts +0 -0
  247. /package/dist/{types → lib.cjs/types}/react/no-modal/index.d.ts +0 -0
  248. /package/dist/{types → lib.cjs/types}/react/no-modal/interfaces.d.ts +0 -0
  249. /package/dist/{types → lib.cjs/types}/react/wallet-services-plugin/WalletServicesContext.d.ts +0 -0
  250. /package/dist/{types → lib.cjs/types}/react/wallet-services-plugin/WalletServicesProvider.d.ts +0 -0
  251. /package/dist/{types → lib.cjs/types}/react/wallet-services-plugin/hooks/index.d.ts +0 -0
  252. /package/dist/{types → lib.cjs/types}/react/wallet-services-plugin/hooks/useWalletServicesPlugin.d.ts +0 -0
  253. /package/dist/{types → lib.cjs/types}/react/wallet-services-plugin/index.d.ts +0 -0
  254. /package/dist/{types → lib.cjs/types}/react/wallet-services-plugin/interfaces.d.ts +0 -0
  255. /package/dist/{types → lib.cjs/types}/vue/index.d.ts +0 -0
  256. /package/dist/{types → lib.cjs/types}/vue/no-modal/Web3AuthProvider.d.ts +0 -0
  257. /package/dist/{types → lib.cjs/types}/vue/no-modal/composables/index.d.ts +0 -0
  258. /package/dist/{types → lib.cjs/types}/vue/no-modal/composables/useWeb3Auth.d.ts +0 -0
  259. /package/dist/{types → lib.cjs/types}/vue/no-modal/index.d.ts +0 -0
  260. /package/dist/{types → lib.cjs/types}/vue/no-modal/interfaces.d.ts +0 -0
  261. /package/dist/{types → lib.cjs/types}/vue/wallet-services-plugin/WalletServicesProvider.d.ts +0 -0
  262. /package/dist/{types → lib.cjs/types}/vue/wallet-services-plugin/composables/index.d.ts +0 -0
  263. /package/dist/{types → lib.cjs/types}/vue/wallet-services-plugin/composables/useWalletServicesPlugin.d.ts +0 -0
  264. /package/dist/{types → lib.cjs/types}/vue/wallet-services-plugin/context.d.ts +0 -0
  265. /package/dist/{types → lib.cjs/types}/vue/wallet-services-plugin/index.d.ts +0 -0
  266. /package/dist/{types → lib.cjs/types}/vue/wallet-services-plugin/interfaces.d.ts +0 -0
@@ -1,18 +1,25 @@
1
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
1
2
  import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
3
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
3
4
  import { SafeEventEmitter } from '@web3auth/auth';
5
+ import deepmerge from 'deepmerge';
4
6
  import { authConnector } from './connectors/auth-connector/authConnector.js';
5
- import { getChainConfig } from './base/chain/config.js';
6
- import { CHAIN_NAMESPACES, CONNECTOR_NAMESPACES } from './base/chain/IChainInterface.js';
7
7
  import { WalletInitializationError, WalletLoginError } from './base/errors/index.js';
8
- import { log } from './base/loglevel.js';
9
- import { fetchProjectConfig } from './base/utils.js';
8
+ import { CONNECTOR_NAMESPACES } from './base/chain/IChainInterface.js';
10
9
  import { WALLET_CONNECTORS } from './base/wallet/index.js';
11
- import { CommonJRPCProvider } from './providers/base-provider/CommonJRPCProvider.js';
10
+ import { CONNECTOR_STATUS, CONNECTOR_EVENTS, SMART_ACCOUNT_WALLET_SCOPE } from './base/connector/constants.js';
12
11
  import { storageAvailable } from './base/connector/utils.js';
12
+ import { log } from './base/loglevel.js';
13
+ import './base/plugin/errors.js';
13
14
  import { PLUGIN_STATUS, PLUGIN_NAMESPACES } from './base/plugin/IPlugin.js';
14
- import { CONNECTOR_STATUS, CONNECTOR_EVENTS } from './base/connector/constants.js';
15
+ import { fetchProjectConfig, isHexStrict } from './base/utils.js';
16
+ import { CHAIN_NAMESPACES } from '@toruslabs/base-controllers';
17
+ import './providers/base-provider/utils.js';
18
+ import { CommonJRPCProvider } from './providers/base-provider/CommonJRPCProvider.js';
19
+ import './providers/base-provider/commonPrivateKeyProvider.js';
20
+ import { metaMaskConnector } from './connectors/metamask-connector/metamaskConnector.js';
15
21
 
22
+ const _excluded = ["walletScope"];
16
23
  const CONNECTOR_CACHE_KEY = "Web3Auth-cachedConnector";
17
24
  const CURRENT_CHAIN_CACHE_KEY = "Web3Auth-currentChain";
18
25
  class Web3AuthNoModal extends SafeEventEmitter {
@@ -29,25 +36,13 @@ class Web3AuthNoModal extends SafeEventEmitter {
29
36
  _defineProperty(this, "storage", "localStorage");
30
37
  if (!options.clientId) throw WalletInitializationError.invalidParams("Please provide a valid clientId in constructor");
31
38
  if (options.enableLogging) log.enableAll();else log.setLevel("error");
32
- // TODO: This is fine. we get chains from project config. we can throw in init instead
33
- if (!options.chains || options.chains.length === 0) {
34
- throw WalletInitializationError.invalidParams("Please provide chains");
35
- }
36
- const {
37
- chains
38
- } = options;
39
- // validate chain namespace of each chain config
40
- for (const chain of chains) {
41
- if (!chain.chainNamespace || !Object.values(CHAIN_NAMESPACES).includes(chain.chainNamespace)) throw WalletInitializationError.invalidParams("Please provide a valid chainNamespace in chains");
42
- }
43
39
  if (options.storageType === "session") this.storage = "sessionStorage";
44
- this.coreOptions = _objectSpread(_objectSpread({}, options), {}, {
45
- chains: chains.map(chain => _objectSpread(_objectSpread({}, getChainConfig(chain === null || chain === void 0 ? void 0 : chain.chainNamespace, chain === null || chain === void 0 ? void 0 : chain.chainId, options.clientId) || {}), chain))
46
- });
47
- this.currentChainId = options.defaultChainId || chains[0].chainId;
40
+ this.coreOptions = options;
41
+ this.currentChainId = options.defaultChainId;
48
42
  }
49
43
  get currentChain() {
50
- return this.coreOptions.chains.find(chain => chain.chainId === this.currentChainId);
44
+ var _this$coreOptions$cha;
45
+ return (_this$coreOptions$cha = this.coreOptions.chains) === null || _this$coreOptions$cha === void 0 ? void 0 : _this$coreOptions$cha.find(chain => chain.chainId === this.currentChainId);
51
46
  }
52
47
  get connected() {
53
48
  return Boolean(this.connectedConnector);
@@ -59,14 +54,13 @@ class Web3AuthNoModal extends SafeEventEmitter {
59
54
  return null;
60
55
  }
61
56
  get connectedConnector() {
62
- return this.connectors.find(connector => connector.name === this.connectedConnectorName) || null;
57
+ var _this$currentChain;
58
+ return this.getConnector(this.connectedConnectorName, (_this$currentChain = this.currentChain) === null || _this$currentChain === void 0 ? void 0 : _this$currentChain.chainNamespace);
63
59
  }
64
60
  set provider(_) {
65
61
  throw new Error("Not implemented");
66
62
  }
67
63
  async init() {
68
- this.initCachedConnectorAndChainId();
69
-
70
64
  // get project config
71
65
  let projectConfig;
72
66
  try {
@@ -76,16 +70,17 @@ class Web3AuthNoModal extends SafeEventEmitter {
76
70
  log.error("Failed to fetch project configurations", e);
77
71
  throw WalletInitializationError.notReady("failed to fetch project configurations", e);
78
72
  }
79
-
73
+ // init config
74
+ this.initAccountAbstractionConfig(projectConfig);
75
+ this.initChainsConfig(projectConfig);
76
+ this.initCachedConnectorAndChainId();
80
77
  // setup common JRPC provider
81
78
  await this.setupCommonJRPCProvider();
82
-
83
79
  // initialize connectors
84
80
  this.on(CONNECTOR_EVENTS.CONNECTORS_UPDATED, async ({
85
81
  connectors: newConnectors
86
82
  }) => {
87
- await Promise.all(newConnectors.map(this.setupConnector));
88
-
83
+ await Promise.all(newConnectors.map(this.setupConnector.bind(this)));
89
84
  // emit connector ready event
90
85
  if (this.status === CONNECTOR_STATUS.NOT_READY) {
91
86
  this.status = CONNECTOR_STATUS.READY;
@@ -97,8 +92,16 @@ class Web3AuthNoModal extends SafeEventEmitter {
97
92
  });
98
93
  await this.initPlugins();
99
94
  }
100
- getConnector(connectorName) {
101
- return this.connectors.find(connector => connector.name === connectorName) || null;
95
+ // we need to take into account the chainNamespace as for external connectors, same connector name can be used for multiple chain namespaces
96
+ getConnector(connectorName, chainNamespace) {
97
+ return this.connectors.find(connector => {
98
+ if (connector.name !== connectorName) return false;
99
+ if (chainNamespace) {
100
+ if (connector.connectorNamespace === CONNECTOR_NAMESPACES.MULTICHAIN) return true;
101
+ return connector.connectorNamespace === chainNamespace;
102
+ }
103
+ return true;
104
+ }) || null;
102
105
  }
103
106
  clearCache() {
104
107
  if (!storageAvailable(this.storage)) return;
@@ -107,7 +110,8 @@ class Web3AuthNoModal extends SafeEventEmitter {
107
110
  this.cachedConnector = null;
108
111
  }
109
112
  async switchChain(params) {
110
- if (params.chainId === this.currentChain.chainId) return;
113
+ var _this$currentChain2;
114
+ if (params.chainId === ((_this$currentChain2 = this.currentChain) === null || _this$currentChain2 === void 0 ? void 0 : _this$currentChain2.chainId)) return;
111
115
  const newChainConfig = this.coreOptions.chains.find(x => x.chainId === params.chainId);
112
116
  if (!newChainConfig) throw WalletInitializationError.invalidParams("Invalid chainId");
113
117
  if (this.status === CONNECTOR_STATUS.CONNECTED && this.connectedConnector) {
@@ -122,13 +126,13 @@ class Web3AuthNoModal extends SafeEventEmitter {
122
126
  }
123
127
  throw WalletInitializationError.notReady(`No wallet is ready`);
124
128
  }
125
-
126
129
  /**
127
130
  * Connect to a specific wallet connector
128
131
  * @param connectorName - Key of the wallet connector to use.
129
132
  */
130
133
  async connectTo(connectorName, loginParams) {
131
- if (!this.getConnector(connectorName) || !this.commonJRPCProvider) throw WalletInitializationError.notFound(`Please add wallet connector for ${connectorName} wallet, before connecting`);
134
+ const connector = this.getConnector(connectorName, loginParams === null || loginParams === void 0 ? void 0 : loginParams.chainNamespace);
135
+ if (!connector || !this.commonJRPCProvider) throw WalletInitializationError.notFound(`Please add wallet connector for ${connectorName} wallet, before connecting`);
132
136
  return new Promise((resolve, reject) => {
133
137
  this.once(CONNECTOR_EVENTS.CONNECTED, _ => {
134
138
  resolve(this.provider);
@@ -136,7 +140,6 @@ class Web3AuthNoModal extends SafeEventEmitter {
136
140
  this.once(CONNECTOR_EVENTS.ERRORED, err => {
137
141
  reject(err);
138
142
  });
139
- const connector = this.getConnector(connectorName);
140
143
  const initialChain = this.getInitialChainIdForConnector(connector);
141
144
  const finalLoginParams = _objectSpread(_objectSpread({}, loginParams), {}, {
142
145
  chainId: initialChain.chainId
@@ -174,6 +177,89 @@ class Web3AuthNoModal extends SafeEventEmitter {
174
177
  getPlugin(name) {
175
178
  return this.plugins[name] || null;
176
179
  }
180
+ initChainsConfig(projectConfig) {
181
+ // merge chains from project config with core options, core options chains will take precedence over project config chains
182
+ const chainMap = new Map();
183
+ const allChains = [...(projectConfig.chains || []), ...(this.coreOptions.chains || [])];
184
+ for (const chain of allChains) {
185
+ const existingChain = chainMap.get(chain.chainId);
186
+ if (!existingChain) chainMap.set(chain.chainId, chain);else chainMap.set(chain.chainId, _objectSpread(_objectSpread({}, existingChain), chain));
187
+ }
188
+ this.coreOptions.chains = Array.from(chainMap.values());
189
+ // validate chains and namespaces
190
+ if (this.coreOptions.chains.length === 0) {
191
+ log.error("chain info not found. Please configure chains on dashboard at https://dashboard.web3auth.io");
192
+ throw WalletInitializationError.invalidParams("Please configure chains on dashboard at https://dashboard.web3auth.io");
193
+ }
194
+ const validChainNamespaces = new Set(Object.values(CHAIN_NAMESPACES));
195
+ for (const chain of this.coreOptions.chains) {
196
+ if (!chain.chainNamespace || !validChainNamespaces.has(chain.chainNamespace)) {
197
+ log.error(`Please provide a valid chainNamespace in chains for chain ${chain.chainId}`);
198
+ throw WalletInitializationError.invalidParams(`Please provide a valid chainNamespace in chains for chain ${chain.chainId}`);
199
+ }
200
+ if (chain.chainNamespace !== CHAIN_NAMESPACES.OTHER && !isHexStrict(chain.chainId)) {
201
+ log.error(`Please provide a valid chainId in chains for chain ${chain.chainId}`);
202
+ throw WalletInitializationError.invalidParams(`Please provide a valid chainId as hex string in chains for chain ${chain.chainId}`);
203
+ }
204
+ if (chain.chainNamespace !== CHAIN_NAMESPACES.OTHER) {
205
+ try {
206
+ new URL(chain.rpcTarget);
207
+ } catch (error) {
208
+ // TODO: add support for chain.wsTarget
209
+ log.error(`Please provide a valid rpcTarget in chains for chain ${chain.chainId}`, error);
210
+ throw WalletInitializationError.invalidParams(`Please provide a valid rpcTarget in chains for chain ${chain.chainId}`);
211
+ }
212
+ }
213
+ }
214
+ // if AA is enabled, filter out chains that are not AA-supported
215
+ if (this.coreOptions.accountAbstractionConfig) {
216
+ // write a for loop over accountAbstractionConfig.chains and check if the chainId is valid
217
+ for (const chain of this.coreOptions.accountAbstractionConfig.chains) {
218
+ if (!isHexStrict(chain.chainId)) {
219
+ log.error(`Please provide a valid chainId in accountAbstractionConfig.chains for chain ${chain.chainId}`);
220
+ throw WalletInitializationError.invalidParams(`Please provide a valid chainId in accountAbstractionConfig.chains for chain ${chain.chainId}`);
221
+ }
222
+ try {
223
+ var _chain$bundlerConfig;
224
+ new URL((_chain$bundlerConfig = chain.bundlerConfig) === null || _chain$bundlerConfig === void 0 ? void 0 : _chain$bundlerConfig.url);
225
+ } catch (error) {
226
+ log.error(`Please provide a valid bundlerConfig.url in accountAbstractionConfig.chains for chain ${chain.chainId}`, error);
227
+ throw WalletInitializationError.invalidParams(`Please provide a valid bundlerConfig.url in accountAbstractionConfig.chains for chain ${chain.chainId}`);
228
+ }
229
+ if (!chainMap.has(chain.chainId)) {
230
+ log.error(`Please provide chain config for AA chain in accountAbstractionConfig.chains for chain ${chain.chainId}`);
231
+ throw WalletInitializationError.invalidParams(`Please provide chain config for AA chain in accountAbstractionConfig.chains for chain ${chain.chainId}`);
232
+ }
233
+ }
234
+ // const aaSupportedChainIds = new Set(
235
+ // this.coreOptions.accountAbstractionConfig?.chains
236
+ // ?.filter((chain) => chain.chainId && chain.bundlerConfig?.url)
237
+ // .map((chain) => chain.chainId) || []
238
+ // );
239
+ // this.coreOptions.chains = this.coreOptions.chains.filter(
240
+ // (chain) => chain.chainNamespace !== CHAIN_NAMESPACES.EIP155 || aaSupportedChainIds.has(chain.chainId)
241
+ // );
242
+ // if (this.coreOptions.chains.length === 0) {
243
+ // log.error("Account Abstraction is enabled but no supported chains found");
244
+ // throw WalletInitializationError.invalidParams("Account Abstraction is enabled but no supported chains found");
245
+ // }
246
+ }
247
+ }
248
+ initAccountAbstractionConfig(projectConfig) {
249
+ const isAAEnabled = Boolean(this.coreOptions.accountAbstractionConfig || (projectConfig === null || projectConfig === void 0 ? void 0 : projectConfig.smartAccounts));
250
+ if (!isAAEnabled) return;
251
+ // merge project config with core options, code config take precedence over project config
252
+ const _ref = (projectConfig === null || projectConfig === void 0 ? void 0 : projectConfig.smartAccounts) || {},
253
+ {
254
+ walletScope
255
+ } = _ref,
256
+ configWithoutWalletScope = _objectWithoutProperties(_ref, _excluded);
257
+ this.coreOptions.accountAbstractionConfig = deepmerge(configWithoutWalletScope || {}, this.coreOptions.accountAbstractionConfig || {});
258
+ // determine if we should use AA with external wallet
259
+ if (this.coreOptions.useAAWithExternalWallet === undefined) {
260
+ this.coreOptions.useAAWithExternalWallet = walletScope === SMART_ACCOUNT_WALLET_SCOPE.ALL;
261
+ }
262
+ }
177
263
  initCachedConnectorAndChainId() {
178
264
  this.cachedConnector = storageAvailable(this.storage) ? window[this.storage].getItem(CONNECTOR_CACHE_KEY) : null;
179
265
  // init chainId using cached chainId if it exists and is valid, otherwise use the defaultChainId or the first chain
@@ -186,7 +272,6 @@ class Web3AuthNoModal extends SafeEventEmitter {
186
272
  chain: this.currentChain,
187
273
  chains: this.coreOptions.chains
188
274
  });
189
-
190
275
  // sync chainId
191
276
  this.commonJRPCProvider.on("chainChanged", chainId => this.setCurrentChain(chainId));
192
277
  }
@@ -212,9 +297,9 @@ class Web3AuthNoModal extends SafeEventEmitter {
212
297
  projectConfig,
213
298
  coreOptions: this.coreOptions
214
299
  };
215
-
216
300
  // add injected connectors
217
- const isMipdEnabled = (_this$coreOptions$mul = this.coreOptions.multiInjectedProviderDiscovery) !== null && _this$coreOptions$mul !== void 0 ? _this$coreOptions$mul : true;
301
+ const isExternalWalletEnabled = Boolean(projectConfig.externalWalletAuth);
302
+ const isMipdEnabled = isExternalWalletEnabled && ((_this$coreOptions$mul = this.coreOptions.multiInjectedProviderDiscovery) !== null && _this$coreOptions$mul !== void 0 ? _this$coreOptions$mul : true);
218
303
  const chainNamespaces = new Set(this.coreOptions.chains.map(chain => chain.chainNamespace));
219
304
  if (isMipdEnabled) {
220
305
  // Solana chains
@@ -247,9 +332,10 @@ class Web3AuthNoModal extends SafeEventEmitter {
247
332
  connectorFns.push(...evmMipd.getProviders().map(injectedEvmConnector));
248
333
  }
249
334
  }
250
-
251
- // add WalletConnectV2 connector if enabled
252
- if (projectConfig.wallet_connect_enabled && projectConfig.wallet_connect_project_id && (chainNamespaces.has(CHAIN_NAMESPACES.SOLANA) || chainNamespaces.has(CHAIN_NAMESPACES.EIP155))) {
335
+ // it's safe to add it here as if there is a MetaMask injected provider, this won't override it
336
+ connectorFns.push(metaMaskConnector());
337
+ // add WalletConnectV2 connector if external wallets are enabled
338
+ if (isExternalWalletEnabled && (chainNamespaces.has(CHAIN_NAMESPACES.SOLANA) || chainNamespaces.has(CHAIN_NAMESPACES.EIP155))) {
253
339
  const {
254
340
  walletConnectV2Connector
255
341
  } = await import('./connectors/wallet-connect-v2-connector/index.js');
@@ -266,10 +352,12 @@ class Web3AuthNoModal extends SafeEventEmitter {
266
352
  }
267
353
  }
268
354
  setConnectors(connectors) {
269
- const connectorSet = new Set(this.connectors.map(connector => connector.name));
355
+ const getConnectorKey = connector => `${connector.connectorNamespace}-${connector.name}`;
356
+ const connectorSet = new Set(this.connectors.map(getConnectorKey));
270
357
  const newConnectors = connectors.map(connector => {
271
- if (connectorSet.has(connector.name)) return null;
272
- connectorSet.add(connector.name);
358
+ const key = getConnectorKey(connector);
359
+ if (connectorSet.has(key)) return null;
360
+ connectorSet.add(key);
273
361
  return connector;
274
362
  }).filter(connector => connector !== null);
275
363
  if (newConnectors.length > 0) {
@@ -282,16 +370,24 @@ class Web3AuthNoModal extends SafeEventEmitter {
282
370
  }
283
371
  subscribeToConnectorEvents(connector) {
284
372
  connector.on(CONNECTOR_EVENTS.CONNECTED, async data => {
373
+ var _this$currentChain3, _accountAbstractionCo;
285
374
  if (!this.commonJRPCProvider) throw WalletInitializationError.notFound(`CommonJrpcProvider not found`);
286
375
  const {
287
376
  provider
288
377
  } = data;
289
378
  let finalProvider = provider.provider || provider;
290
- // setup aa provider for external wallets on EVM chains, for in app wallet, it uses WS provider which already supports AA
379
+ // setup AA provider for external wallets on EVM chains, no need for app wallet as it uses WS provider which already supports AA
291
380
  const {
292
381
  accountAbstractionConfig
293
382
  } = this.coreOptions;
294
- if (this.currentChain.chainNamespace === CHAIN_NAMESPACES.EIP155 && accountAbstractionConfig && data.connector !== WALLET_CONNECTORS.AUTH && this.coreOptions.useAAWithExternalWallet) {
383
+ const doesAASupportCurrentChain = ((_this$currentChain3 = this.currentChain) === null || _this$currentChain3 === void 0 ? void 0 : _this$currentChain3.chainNamespace) === CHAIN_NAMESPACES.EIP155 && (accountAbstractionConfig === null || accountAbstractionConfig === void 0 || (_accountAbstractionCo = accountAbstractionConfig.chains) === null || _accountAbstractionCo === void 0 ? void 0 : _accountAbstractionCo.some(chain => {
384
+ var _this$currentChain4;
385
+ return chain.chainId === ((_this$currentChain4 = this.currentChain) === null || _this$currentChain4 === void 0 ? void 0 : _this$currentChain4.chainId);
386
+ }));
387
+ const isExternalWalletAndAAEnabled = data.connector !== WALLET_CONNECTORS.AUTH && this.coreOptions.useAAWithExternalWallet;
388
+ if (isExternalWalletAndAAEnabled && doesAASupportCurrentChain) {
389
+ var _accountAbstractionCo2;
390
+ const aaChainIds = new Set((accountAbstractionConfig === null || accountAbstractionConfig === void 0 || (_accountAbstractionCo2 = accountAbstractionConfig.chains) === null || _accountAbstractionCo2 === void 0 ? void 0 : _accountAbstractionCo2.map(chain => chain.chainId)) || []);
295
391
  const {
296
392
  accountAbstractionProvider
297
393
  } = await import('./providers/account-abstraction-provider/index.js');
@@ -299,10 +395,9 @@ class Web3AuthNoModal extends SafeEventEmitter {
299
395
  accountAbstractionConfig,
300
396
  provider,
301
397
  chain: this.currentChain,
302
- chains: this.coreOptions.chains
398
+ chains: this.coreOptions.chains.filter(chain => aaChainIds.has(chain.chainId))
303
399
  });
304
400
  finalProvider = aaProvider;
305
- // TODO: when switching chains to Solana or other chains, we need to switch to the non-AA provider
306
401
  }
307
402
  this.commonJRPCProvider.updateProviderEngineProxy(finalProvider);
308
403
  this.connectedConnectorName = data.connector;
@@ -364,14 +459,14 @@ class Web3AuthNoModal extends SafeEventEmitter {
364
459
  if (this.status === CONNECTOR_STATUS.CONNECTED) throw WalletInitializationError.notReady("Already connected");
365
460
  if (this.status === CONNECTOR_STATUS.READY) throw WalletInitializationError.notReady("Connector is already initialized");
366
461
  }
367
-
368
462
  /**
369
463
  * Gets the initial chain configuration for a connector
370
464
  * @throws WalletInitializationError If no chain is found for the connector's namespace
371
465
  */
372
466
  getInitialChainIdForConnector(connector) {
467
+ var _initialChain;
373
468
  let initialChain = this.currentChain;
374
- if (initialChain.chainNamespace !== connector.connectorNamespace && connector.connectorNamespace !== CONNECTOR_NAMESPACES.MULTICHAIN) {
469
+ if (((_initialChain = initialChain) === null || _initialChain === void 0 ? void 0 : _initialChain.chainNamespace) !== connector.connectorNamespace && connector.connectorNamespace !== CONNECTOR_NAMESPACES.MULTICHAIN) {
375
470
  initialChain = this.coreOptions.chains.find(x => x.chainNamespace === connector.connectorNamespace);
376
471
  if (!initialChain) throw WalletInitializationError.invalidParams(`No chain found for ${connector.connectorNamespace}`);
377
472
  }
@@ -397,10 +492,11 @@ class Web3AuthNoModal extends SafeEventEmitter {
397
492
  connectToPlugins(data) {
398
493
  Object.values(this.plugins).map(async plugin => {
399
494
  try {
495
+ var _this$currentChain5;
400
496
  // skip if it's not compatible with the connector
401
497
  if (!plugin.SUPPORTED_CONNECTORS.includes("all") && !plugin.SUPPORTED_CONNECTORS.includes(data.connector)) return;
402
498
  // skip if it's not compatible with the current chain
403
- if (plugin.pluginNamespace !== PLUGIN_NAMESPACES.MULTICHAIN && plugin.pluginNamespace !== this.currentChain.chainNamespace) return;
499
+ if (plugin.pluginNamespace !== PLUGIN_NAMESPACES.MULTICHAIN && plugin.pluginNamespace !== ((_this$currentChain5 = this.currentChain) === null || _this$currentChain5 === void 0 ? void 0 : _this$currentChain5.chainNamespace)) return;
404
500
  // skip if it's already connected
405
501
  if (plugin.status === PLUGIN_STATUS.CONNECTED) return;
406
502
  await plugin.initWithWeb3Auth(this, this.coreOptions.uiConfig);
@@ -2,7 +2,7 @@ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import { randomId } from '@toruslabs/base-controllers';
3
3
  import { THEME_MODES } from '@web3auth/auth';
4
4
  import loglevel from 'loglevel';
5
- import { NFT_CHECKOUT_BUILD_ENV, NFT_CHECKOUT_URLS, NFT_CHECKOUT_EMBED_MESSAGE_TYPES } from './enums.js';
5
+ import { NFT_CHECKOUT_URLS, NFT_CHECKOUT_BUILD_ENV, NFT_CHECKOUT_EMBED_MESSAGE_TYPES } from './enums.js';
6
6
  import { getTheme, htmlToElement } from './utils.js';
7
7
 
8
8
  // preload for iframe doesn't work https://bugs.chromium.org/p/chromium/issues/detail?id=593267
@@ -47,13 +47,11 @@ class NFTCheckoutEmbed {
47
47
  whiteLabel
48
48
  } = params || {};
49
49
  this.buildEnv = buildEnv;
50
-
51
50
  // construct nft checkout url
52
51
  const nftCheckoutIframeUrl = new URL(NFT_CHECKOUT_URLS[this.buildEnv]);
53
52
  const hashParams = new URLSearchParams();
54
53
  hashParams.append("origin", window.location.origin);
55
54
  nftCheckoutIframeUrl.hash = hashParams.toString();
56
-
57
55
  // create iframe
58
56
  const colorScheme = getTheme((whiteLabel === null || whiteLabel === void 0 ? void 0 : whiteLabel.mode) || THEME_MODES.light);
59
57
  const nftCheckoutIframe = htmlToElement(`<iframe
@@ -97,7 +95,6 @@ class NFTCheckoutEmbed {
97
95
  if (!this.isInitialized) throw new Error("Call init() first");
98
96
  const nftCheckoutIframe = this.getIframe();
99
97
  if (!nftCheckoutIframe) throw new Error("Iframe is not initialized");
100
-
101
98
  // send message to iframe
102
99
  const nftCheckoutOrigin = new URL(NFT_CHECKOUT_URLS[this.buildEnv]).origin;
103
100
  nftCheckoutIframe.contentWindow.postMessage({
@@ -1,9 +1,16 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import { SafeEventEmitter } from '@web3auth/auth';
3
- import { NFTCheckoutEmbed } from './embed.js';
4
- import { EVM_PLUGINS, PLUGIN_STATUS, PLUGIN_NAMESPACES, PLUGIN_EVENTS } from '../../base/plugin/IPlugin.js';
5
- import { NFTCheckoutPluginError } from '../../base/plugin/errors.js';
3
+ import '../../base/errors/index.js';
4
+ import '@toruslabs/base-controllers';
5
+ import '../../base/wallet/index.js';
6
6
  import { CONNECTOR_STATUS } from '../../base/connector/constants.js';
7
+ import 'jwt-decode';
8
+ import '../../base/loglevel.js';
9
+ import { NFTCheckoutPluginError } from '../../base/plugin/errors.js';
10
+ import { EVM_PLUGINS, PLUGIN_STATUS, PLUGIN_NAMESPACES, PLUGIN_EVENTS } from '../../base/plugin/IPlugin.js';
11
+ import '@toruslabs/constants';
12
+ import '@toruslabs/http-helpers';
13
+ import { NFTCheckoutEmbed } from './embed.js';
7
14
 
8
15
  class NFTCheckoutPlugin extends SafeEventEmitter {
9
16
  constructor(params) {
@@ -1,12 +1,16 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import { SafeEventEmitter } from '@web3auth/auth';
3
- import { CHAIN_NAMESPACES } from '../../base/chain/IChainInterface.js';
4
- import { log } from '../../base/loglevel.js';
3
+ import '../../base/errors/index.js';
4
+ import { CHAIN_NAMESPACES } from '@toruslabs/base-controllers';
5
5
  import { WALLET_CONNECTORS } from '../../base/wallet/index.js';
6
- export { BUTTON_POSITION, CONFIRMATION_STRATEGY } from '@web3auth/ws-embed';
6
+ import { CONNECTOR_STATUS } from '../../base/connector/constants.js';
7
+ import 'jwt-decode';
8
+ import { log } from '../../base/loglevel.js';
7
9
  import { WalletServicesPluginError } from '../../base/plugin/errors.js';
8
10
  import { EVM_PLUGINS, PLUGIN_STATUS, PLUGIN_NAMESPACES, PLUGIN_EVENTS } from '../../base/plugin/IPlugin.js';
9
- import { CONNECTOR_STATUS } from '../../base/connector/constants.js';
11
+ import '@toruslabs/constants';
12
+ import '@toruslabs/http-helpers';
13
+ export { BUTTON_POSITION, CONFIRMATION_STRATEGY } from '@web3auth/ws-embed';
10
14
 
11
15
  // TODO: support project config items here. incl. key export flag, multiple chains
12
16
  class WalletServicesPlugin extends SafeEventEmitter {
@@ -30,14 +34,12 @@ class WalletServicesPlugin extends SafeEventEmitter {
30
34
  if (!web3auth) throw WalletServicesPluginError.web3authRequired();
31
35
  if (web3auth.provider && !this.SUPPORTED_CONNECTORS.includes(web3auth.connectedConnectorName)) throw WalletServicesPluginError.notInitialized();
32
36
  const currentChainConfig = web3auth.currentChain;
33
- if (![CHAIN_NAMESPACES.EIP155, CHAIN_NAMESPACES.SOLANA].includes(currentChainConfig.chainNamespace)) throw WalletServicesPluginError.unsupportedChainNamespace();
34
-
37
+ if (![CHAIN_NAMESPACES.EIP155, CHAIN_NAMESPACES.SOLANA].includes(currentChainConfig === null || currentChainConfig === void 0 ? void 0 : currentChainConfig.chainNamespace)) throw WalletServicesPluginError.unsupportedChainNamespace();
35
38
  // Not connected yet to auth
36
39
  if (web3auth.provider) {
37
40
  this.provider = web3auth.provider;
38
41
  }
39
42
  this.web3auth = web3auth;
40
-
41
43
  // Auth connector uses WS embed
42
44
  const authInstance = web3auth.getConnector(WALLET_CONNECTORS.AUTH);
43
45
  if (!authInstance || !authInstance.wsEmbed) throw WalletServicesPluginError.web3AuthNotConnected();
@@ -5,9 +5,20 @@ export { SMART_ACCOUNT } from '@toruslabs/ethereum-controllers';
5
5
  import { providerErrors, JRPCEngine, providerFromEngine } from '@web3auth/auth';
6
6
  import { defineChain, createPublicClient, http } from 'viem';
7
7
  import { createPaymasterClient, createBundlerClient } from 'viem/account-abstraction';
8
- import { CHAIN_NAMESPACES } from '../../../base/chain/IChainInterface.js';
9
8
  import { WalletInitializationError } from '../../../base/errors/index.js';
9
+ import { CHAIN_NAMESPACES } from '@toruslabs/base-controllers';
10
+ import '../../../base/wallet/index.js';
11
+ import '../../../base/connector/constants.js';
12
+ import 'jwt-decode';
13
+ import '../../../base/loglevel.js';
14
+ import '../../../base/plugin/errors.js';
15
+ import '../../../base/plugin/IPlugin.js';
16
+ import '@toruslabs/constants';
17
+ import '@toruslabs/http-helpers';
10
18
  import { BaseProvider } from '../../base-provider/baseProvider.js';
19
+ import '../../base-provider/CommonJRPCProvider.js';
20
+ import '../../base-provider/commonPrivateKeyProvider.js';
21
+ import '../../base-provider/utils.js';
11
22
  import { createAaMiddleware, eoaProviderAsMiddleware } from '../rpc/ethRpcMiddlewares.js';
12
23
  import { getProviderHandlers } from './utils.js';
13
24
 
@@ -53,7 +64,7 @@ class AccountAbstractionProvider extends BaseProvider {
53
64
  });
54
65
  }
55
66
  async setupProvider(eoaProvider) {
56
- var _this$config$bundlerC;
67
+ var _bundlerConfig$transp;
57
68
  const {
58
69
  currentChain
59
70
  } = this;
@@ -61,6 +72,12 @@ class AccountAbstractionProvider extends BaseProvider {
61
72
  chainNamespace
62
73
  } = currentChain;
63
74
  if (chainNamespace !== this.PROVIDER_CHAIN_NAMESPACE) throw WalletInitializationError.incompatibleChainNameSpace("Invalid chain namespace");
75
+ const bundlerAndPaymasterConfig = this.config.smartAccountChainsConfig.find(config => config.chainId === currentChain.chainId);
76
+ if (!bundlerAndPaymasterConfig) throw WalletInitializationError.invalidProviderConfigError(`Bundler and paymaster config not found for chain ${currentChain.chainId}`);
77
+ const {
78
+ bundlerConfig,
79
+ paymasterConfig
80
+ } = bundlerAndPaymasterConfig;
64
81
  const chain = defineChain({
65
82
  id: Number.parseInt(currentChain.chainId, 16),
66
83
  // id in number form
@@ -93,18 +110,17 @@ class AccountAbstractionProvider extends BaseProvider {
93
110
  owner: eoaProvider,
94
111
  client: this._publicClient
95
112
  });
96
-
97
113
  // setup bundler and paymaster
98
- if (this.config.paymasterConfig) {
99
- var _this$config$paymaste;
100
- this._paymasterClient = createPaymasterClient(_objectSpread(_objectSpread({}, this.config.paymasterConfig), {}, {
101
- transport: (_this$config$paymaste = this.config.paymasterConfig.transport) !== null && _this$config$paymaste !== void 0 ? _this$config$paymaste : http(this.config.paymasterConfig.url)
114
+ if (paymasterConfig) {
115
+ var _paymasterConfig$tran;
116
+ this._paymasterClient = createPaymasterClient(_objectSpread(_objectSpread({}, paymasterConfig), {}, {
117
+ transport: (_paymasterConfig$tran = paymasterConfig.transport) !== null && _paymasterConfig$tran !== void 0 ? _paymasterConfig$tran : http(paymasterConfig.url)
102
118
  }));
103
119
  }
104
- this._bundlerClient = createBundlerClient(_objectSpread(_objectSpread({}, this.config.bundlerConfig), {}, {
120
+ this._bundlerClient = createBundlerClient(_objectSpread(_objectSpread({}, bundlerConfig), {}, {
105
121
  account: this.smartAccount,
106
122
  client: this._publicClient,
107
- transport: (_this$config$bundlerC = this.config.bundlerConfig.transport) !== null && _this$config$bundlerC !== void 0 ? _this$config$bundlerC : http(this.config.bundlerConfig.url),
123
+ transport: (_bundlerConfig$transp = bundlerConfig.transport) !== null && _bundlerConfig$transp !== void 0 ? _bundlerConfig$transp : http(bundlerConfig.url),
108
124
  paymaster: this._paymasterClient
109
125
  }));
110
126
  const providerHandlers = getProviderHandlers({
@@ -113,7 +129,6 @@ class AccountAbstractionProvider extends BaseProvider {
113
129
  chain,
114
130
  eoaProvider
115
131
  });
116
-
117
132
  // setup rpc engine and AA middleware
118
133
  const engine = new JRPCEngine();
119
134
  const aaMiddleware = await createAaMiddleware({
@@ -166,10 +181,11 @@ const accountAbstractionProvider = async ({
166
181
  let smartAccountInit;
167
182
  const {
168
183
  smartAccountType,
169
- smartAccountConfig,
170
- bundlerConfig,
171
- paymasterConfig
184
+ chains: smartAccountChainsConfig
172
185
  } = accountAbstractionConfig;
186
+ const {
187
+ smartAccountConfig
188
+ } = smartAccountChainsConfig.find(config => config.chainId === chain.chainId) || {};
173
189
  switch (smartAccountType) {
174
190
  case SMART_ACCOUNT.BICONOMY:
175
191
  {
@@ -219,8 +235,7 @@ const accountAbstractionProvider = async ({
219
235
  smartAccountInit,
220
236
  chain,
221
237
  chains,
222
- bundlerConfig,
223
- paymasterConfig
238
+ smartAccountChainsConfig
224
239
  });
225
240
  };
226
241
 
@@ -2,7 +2,17 @@ import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
2
  import { isHexString, addHexPrefix } from '@ethereumjs/util';
3
3
  import { providerErrors } from '@web3auth/auth';
4
4
  import { createWalletClient, http } from 'viem';
5
+ import '../../../base/errors/index.js';
6
+ import '@toruslabs/base-controllers';
7
+ import '@babel/runtime/helpers/defineProperty';
8
+ import '../../../base/wallet/index.js';
9
+ import '../../../base/connector/constants.js';
10
+ import 'jwt-decode';
5
11
  import { log } from '../../../base/loglevel.js';
12
+ import '../../../base/plugin/errors.js';
13
+ import '../../../base/plugin/IPlugin.js';
14
+ import '@toruslabs/constants';
15
+ import '@toruslabs/http-helpers';
6
16
 
7
17
  function getProviderHandlers({
8
18
  bundlerClient,
@@ -8,7 +8,6 @@ async function createAaMiddleware({
8
8
  const [eoaAddress] = await eoaProvider.request({
9
9
  method: "eth_accounts"
10
10
  });
11
-
12
11
  /**
13
12
  * Validates the keyholder address, and returns a normalized (i.e. lowercase)
14
13
  * copy of it.
@@ -67,7 +66,6 @@ async function createAaMiddleware({
67
66
  const txParams = req.params[0] || {
68
67
  from: ""
69
68
  };
70
-
71
69
  // normalize sender address
72
70
  if (txParams.from) {
73
71
  txParams.from = await normalizeSignSenderAddress(txParams.from, req);