@web3auth/no-modal 10.0.0-alpha.0 → 10.0.0-alpha.2

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 (378) hide show
  1. package/dist/lib.cjs/base/chain/IChainInterface.js +7 -12
  2. package/dist/lib.cjs/base/chain/config.js +76 -35
  3. package/dist/lib.cjs/base/connector/baseConnector.js +64 -0
  4. package/dist/lib.cjs/base/connector/constants.js +26 -0
  5. package/dist/lib.cjs/base/errors/index.js +2 -12
  6. package/dist/lib.cjs/base/plugin/IPlugin.js +2 -2
  7. package/dist/lib.cjs/base/plugin/errors.js +2 -4
  8. package/dist/lib.cjs/base/utils.js +7 -7
  9. package/dist/lib.cjs/base/wallet/index.js +15 -20
  10. package/dist/lib.cjs/connectors/auth-connector/authConnector.js +503 -0
  11. package/dist/lib.cjs/connectors/auth-connector/config/authConnectionConfig.js +216 -0
  12. package/dist/lib.cjs/connectors/auth-connector/config/config-build.js +54 -0
  13. package/dist/lib.cjs/connectors/auth-connector/config/config-env.js +361 -0
  14. package/dist/lib.cjs/{adapters/base-evm-adapter/baseEvmAdapter.js → connectors/base-evm-connector/baseEvmConnector.js} +28 -19
  15. package/dist/lib.cjs/connectors/base-solana-connector/baseSolanaConnector.js +83 -0
  16. package/dist/lib.cjs/connectors/coinbase-connector/coinbaseConnector.js +159 -0
  17. package/dist/lib.cjs/connectors/injected-evm-connector/index.js +12 -0
  18. package/dist/lib.cjs/{adapters/default-evm-adapter/injectedEvmAdapter.js → connectors/injected-evm-connector/injectedEvmConnector.js} +66 -42
  19. package/dist/lib.cjs/connectors/injected-solana-connector/index.js +25 -0
  20. package/dist/lib.cjs/connectors/injected-solana-connector/walletStandardConnector.js +156 -0
  21. package/dist/lib.cjs/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/WalletConnectV2Provider.js +63 -95
  22. package/dist/lib.cjs/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/config.js +55 -57
  23. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/index.js +32 -0
  24. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +418 -0
  25. package/dist/lib.cjs/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/walletConnectV2Utils.js +23 -26
  26. package/dist/lib.cjs/index.js +142 -102
  27. package/dist/lib.cjs/noModal.js +299 -241
  28. package/dist/lib.cjs/plugins/nft-checkout-plugin/embed.js +0 -3
  29. package/dist/lib.cjs/plugins/nft-checkout-plugin/plugin.js +18 -6
  30. package/dist/lib.cjs/plugins/wallet-services-plugin/plugin.js +50 -204
  31. package/dist/lib.cjs/providers/account-abstraction-provider/index.js +32 -0
  32. package/dist/lib.cjs/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +112 -35
  33. package/dist/lib.cjs/providers/account-abstraction-provider/providers/utils.js +10 -0
  34. package/dist/lib.cjs/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +0 -2
  35. package/dist/lib.cjs/providers/base-provider/CommonJRPCProvider.js +21 -26
  36. package/dist/lib.cjs/providers/base-provider/baseProvider.js +49 -24
  37. package/dist/lib.cjs/providers/base-provider/commonPrivateKeyProvider.js +2 -13
  38. package/dist/lib.cjs/providers/base-provider/index.js +22 -0
  39. package/dist/lib.cjs/providers/base-provider/utils.js +10 -2
  40. package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +51 -61
  41. package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +12 -2
  42. package/dist/lib.cjs/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +0 -1
  43. package/dist/lib.cjs/providers/ethereum-provider/providers/converter.js +0 -1
  44. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +12 -11
  45. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +3 -5
  46. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +1 -2
  47. package/dist/lib.cjs/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +1 -30
  48. package/dist/lib.cjs/providers/ethereum-provider/rpc/walletMidddleware.js +0 -8
  49. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +22 -11
  50. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +7 -9
  51. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +90 -2
  52. package/dist/lib.cjs/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.js +37 -56
  53. package/dist/lib.cjs/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.js +30 -29
  54. package/dist/lib.cjs/providers/solana-provider/rpc/solanaRpcMiddlewares.js +5 -5
  55. package/dist/lib.cjs/providers/solana-provider/solanaWallet.js +41 -18
  56. package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +36 -60
  57. package/dist/lib.cjs/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +1 -4
  58. package/dist/lib.cjs/react/no-modal/Web3AuthInnerContext.js +28 -44
  59. package/dist/lib.cjs/react/no-modal/hooks/useWeb3Auth.js +11 -0
  60. package/dist/lib.cjs/react/wallet-services-plugin/WalletServicesContext.js +13 -1
  61. package/dist/lib.cjs/react/wallet-services-plugin/hooks/useWalletServicesPlugin.js +11 -0
  62. package/dist/{types → lib.cjs/types}/base/chain/IChainInterface.d.ts +4 -10
  63. package/dist/{types → lib.cjs/types}/base/chain/config.d.ts +2 -2
  64. package/dist/lib.cjs/types/base/connector/baseConnector.d.ts +37 -0
  65. package/dist/{types/base/adapter → lib.cjs/types/base/connector}/constants.d.ts +7 -4
  66. package/dist/{types/base/adapter → lib.cjs/types/base/connector}/index.d.ts +1 -1
  67. package/dist/{types/base/adapter → lib.cjs/types/base/connector}/interfaces.d.ts +58 -48
  68. package/dist/lib.cjs/types/base/core/IWeb3Auth.d.ts +142 -0
  69. package/dist/{types → lib.cjs/types}/base/errors/index.d.ts +1 -1
  70. package/dist/{types → lib.cjs/types}/base/hooks/index.d.ts +2 -6
  71. package/dist/{types → lib.cjs/types}/base/index.d.ts +1 -1
  72. package/dist/{types → lib.cjs/types}/base/interfaces.d.ts +2 -1
  73. package/dist/{types → lib.cjs/types}/base/plugin/IPlugin.d.ts +4 -7
  74. package/dist/{types → lib.cjs/types}/base/plugin/errors.d.ts +1 -1
  75. package/dist/{types → lib.cjs/types}/base/utils.d.ts +1 -1
  76. package/dist/lib.cjs/types/base/wallet/index.d.ts +29 -0
  77. package/dist/lib.cjs/types/connectors/auth-connector/authConnector.d.ts +49 -0
  78. package/dist/lib.cjs/types/connectors/auth-connector/config/authConnectionConfig.d.ts +2 -0
  79. package/dist/lib.cjs/types/connectors/auth-connector/config/config-build.d.ts +18 -0
  80. package/dist/lib.cjs/types/connectors/auth-connector/config/config-env.d.ts +60 -0
  81. package/dist/lib.cjs/types/connectors/auth-connector/index.d.ts +2 -0
  82. package/dist/lib.cjs/types/connectors/auth-connector/interface.d.ts +15 -0
  83. package/dist/lib.cjs/types/connectors/base-evm-connector/baseEvmConnector.d.ts +7 -0
  84. package/dist/lib.cjs/types/connectors/base-evm-connector/index.d.ts +1 -0
  85. package/dist/lib.cjs/types/connectors/base-solana-connector/baseSolanaConnector.d.ts +7 -0
  86. package/dist/lib.cjs/types/connectors/base-solana-connector/index.d.ts +1 -0
  87. package/dist/lib.cjs/types/connectors/coinbase-connector/coinbaseConnector.d.ts +7 -0
  88. package/dist/lib.cjs/types/connectors/coinbase-connector/index.d.ts +1 -0
  89. package/dist/lib.cjs/types/connectors/index.d.ts +7 -0
  90. package/dist/lib.cjs/types/connectors/injected-evm-connector/index.d.ts +2 -0
  91. package/dist/lib.cjs/types/connectors/injected-evm-connector/injectedEvmConnector.d.ts +34 -0
  92. package/dist/lib.cjs/types/connectors/injected-solana-connector/index.d.ts +5 -0
  93. package/dist/lib.cjs/types/connectors/injected-solana-connector/walletStandardConnector.d.ts +33 -0
  94. package/dist/{types/adapters/wallet-connect-v2-adapter → lib.cjs/types/connectors/wallet-connect-v2-connector}/WalletConnectV2Provider.d.ts +4 -6
  95. package/dist/{types/adapters/wallet-connect-v2-adapter → lib.cjs/types/connectors/wallet-connect-v2-connector}/config.d.ts +4 -4
  96. package/dist/{types/adapters/wallet-connect-v2-adapter → lib.cjs/types/connectors/wallet-connect-v2-connector}/index.d.ts +1 -1
  97. package/dist/{types/adapters/wallet-connect-v2-adapter → lib.cjs/types/connectors/wallet-connect-v2-connector}/interface.d.ts +4 -4
  98. package/dist/lib.cjs/types/connectors/wallet-connect-v2-connector/walletConnectV2Connector.d.ts +3 -0
  99. package/dist/{types/adapters/wallet-connect-v2-adapter → lib.cjs/types/connectors/wallet-connect-v2-connector}/walletConnectV2Utils.d.ts +1 -6
  100. package/dist/{types → lib.cjs/types}/index.d.ts +1 -1
  101. package/dist/lib.cjs/types/noModal.d.ts +58 -0
  102. package/dist/{types → lib.cjs/types}/plugins/nft-checkout-plugin/plugin.d.ts +11 -7
  103. package/dist/lib.cjs/types/plugins/wallet-services-plugin/plugin.d.ts +27 -0
  104. package/dist/lib.cjs/types/providers/account-abstraction-provider/providers/AccountAbstractionProvider.d.ts +48 -0
  105. package/dist/{types → lib.cjs/types}/providers/account-abstraction-provider/providers/index.d.ts +0 -1
  106. package/dist/lib.cjs/types/providers/account-abstraction-provider/providers/smartAccounts/index.d.ts +1 -0
  107. package/dist/{types → lib.cjs/types}/providers/base-provider/CommonJRPCProvider.d.ts +3 -3
  108. package/dist/{types → lib.cjs/types}/providers/base-provider/baseProvider.d.ts +10 -11
  109. package/dist/{types → lib.cjs/types}/providers/base-provider/commonPrivateKeyProvider.d.ts +3 -6
  110. package/dist/{types → lib.cjs/types}/providers/base-provider/interfaces.d.ts +3 -1
  111. package/dist/lib.cjs/types/providers/base-provider/utils.d.ts +9 -0
  112. package/dist/{types → lib.cjs/types}/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.d.ts +14 -6
  113. package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/index.d.ts +1 -0
  114. package/dist/lib.cjs/types/providers/ethereum-provider/rpc/ethRpcMiddlewares.d.ts +4 -0
  115. package/dist/{types → lib.cjs/types}/providers/ethereum-provider/rpc/interfaces.d.ts +0 -13
  116. package/dist/lib.cjs/types/providers/solana-provider/interface.d.ts +22 -0
  117. package/dist/{types → lib.cjs/types}/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.d.ts +2 -2
  118. package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/index.d.ts +2 -0
  119. package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/utils.d.ts +3 -0
  120. package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/walletStandardProvider.d.ts +9 -0
  121. package/dist/{types → lib.cjs/types}/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.d.ts +5 -6
  122. package/dist/lib.cjs/types/providers/solana-provider/rpc/interfaces.d.ts +27 -0
  123. package/dist/{types → lib.cjs/types}/providers/solana-provider/rpc/solanaRpcMiddlewares.d.ts +1 -1
  124. package/dist/lib.cjs/types/providers/solana-provider/solanaWallet.d.ts +28 -0
  125. package/dist/{types → lib.cjs/types}/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.d.ts +5 -6
  126. package/dist/{types → lib.cjs/types}/providers/xrpl-provider/rpc/xrplRpcMiddlewares.d.ts +1 -4
  127. package/dist/{types → lib.cjs/types}/react/no-modal/interfaces.d.ts +4 -4
  128. package/dist/{types → lib.cjs/types}/react/wallet-services-plugin/interfaces.d.ts +2 -2
  129. package/dist/{types → lib.cjs/types}/vue/no-modal/interfaces.d.ts +5 -8
  130. package/dist/{types → lib.cjs/types}/vue/wallet-services-plugin/interfaces.d.ts +2 -2
  131. package/dist/lib.cjs/vue/no-modal/Web3AuthProvider.js +27 -44
  132. package/dist/lib.cjs/vue/no-modal/composables/useWeb3Auth.js +12 -1
  133. package/dist/lib.cjs/vue/wallet-services-plugin/WalletServicesProvider.js +14 -2
  134. package/dist/lib.cjs/vue/wallet-services-plugin/composables/useWalletServicesPlugin.js +12 -1
  135. package/dist/lib.esm/base/chain/IChainInterface.js +3 -11
  136. package/dist/lib.esm/base/chain/config.js +65 -24
  137. package/dist/lib.esm/base/connector/baseConnector.js +62 -0
  138. package/dist/lib.esm/base/connector/constants.js +22 -0
  139. package/dist/lib.esm/base/errors/index.js +2 -12
  140. package/dist/lib.esm/base/plugin/IPlugin.js +1 -1
  141. package/dist/lib.esm/base/plugin/errors.js +2 -4
  142. package/dist/lib.esm/base/utils.js +5 -5
  143. package/dist/lib.esm/base/wallet/index.js +11 -16
  144. package/dist/lib.esm/connectors/auth-connector/authConnector.js +501 -0
  145. package/dist/lib.esm/connectors/auth-connector/config/authConnectionConfig.js +214 -0
  146. package/dist/lib.esm/connectors/auth-connector/config/config-build.js +48 -0
  147. package/dist/lib.esm/connectors/auth-connector/config/config-env.js +359 -0
  148. package/dist/lib.esm/{adapters/base-evm-adapter/baseEvmAdapter.js → connectors/base-evm-connector/baseEvmConnector.js} +29 -20
  149. package/dist/lib.esm/connectors/base-solana-connector/baseSolanaConnector.js +81 -0
  150. package/dist/lib.esm/connectors/coinbase-connector/coinbaseConnector.js +157 -0
  151. package/dist/lib.esm/connectors/injected-evm-connector/index.js +2 -0
  152. package/dist/lib.esm/{adapters/default-evm-adapter/injectedEvmAdapter.js → connectors/injected-evm-connector/injectedEvmConnector.js} +64 -41
  153. package/dist/lib.esm/connectors/injected-solana-connector/index.js +18 -0
  154. package/dist/lib.esm/{adapters/default-solana-adapter/walletStandardAdapter.js → connectors/injected-solana-connector/walletStandardConnector.js} +66 -49
  155. package/dist/lib.esm/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/WalletConnectV2Provider.js +63 -95
  156. package/dist/lib.esm/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/config.js +47 -45
  157. package/dist/lib.esm/connectors/wallet-connect-v2-connector/index.js +3 -0
  158. package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +416 -0
  159. package/dist/lib.esm/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/walletConnectV2Utils.js +24 -26
  160. package/dist/lib.esm/index.js +29 -34
  161. package/dist/lib.esm/noModal.js +297 -239
  162. package/dist/lib.esm/plugins/nft-checkout-plugin/embed.js +1 -4
  163. package/dist/lib.esm/plugins/nft-checkout-plugin/plugin.js +18 -6
  164. package/dist/lib.esm/plugins/wallet-services-plugin/plugin.js +46 -201
  165. package/dist/lib.esm/providers/account-abstraction-provider/index.js +2 -0
  166. package/dist/lib.esm/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +108 -34
  167. package/dist/lib.esm/providers/account-abstraction-provider/providers/utils.js +10 -0
  168. package/dist/lib.esm/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +0 -2
  169. package/dist/lib.esm/providers/base-provider/CommonJRPCProvider.js +22 -27
  170. package/dist/lib.esm/providers/base-provider/baseProvider.js +49 -24
  171. package/dist/lib.esm/providers/base-provider/commonPrivateKeyProvider.js +2 -13
  172. package/dist/lib.esm/providers/base-provider/index.js +5 -0
  173. package/dist/lib.esm/providers/base-provider/utils.js +9 -1
  174. package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +50 -60
  175. package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +12 -2
  176. package/dist/lib.esm/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +0 -1
  177. package/dist/lib.esm/providers/ethereum-provider/providers/converter.js +0 -1
  178. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +12 -11
  179. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +3 -3
  180. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +1 -2
  181. package/dist/lib.esm/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +2 -30
  182. package/dist/lib.esm/providers/ethereum-provider/rpc/walletMidddleware.js +0 -8
  183. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +22 -11
  184. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +4 -6
  185. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +90 -2
  186. package/dist/lib.esm/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.js +36 -55
  187. package/dist/lib.esm/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.js +29 -28
  188. package/dist/lib.esm/providers/solana-provider/rpc/solanaRpcMiddlewares.js +6 -6
  189. package/dist/lib.esm/providers/solana-provider/solanaWallet.js +41 -18
  190. package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +35 -59
  191. package/dist/lib.esm/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +1 -4
  192. package/dist/lib.esm/react/no-modal/Web3AuthInnerContext.js +28 -44
  193. package/dist/lib.esm/react/no-modal/hooks/useWeb3Auth.js +11 -0
  194. package/dist/lib.esm/react/wallet-services-plugin/WalletServicesContext.js +13 -1
  195. package/dist/lib.esm/react/wallet-services-plugin/hooks/useWalletServicesPlugin.js +11 -0
  196. package/dist/lib.esm/vue/no-modal/Web3AuthProvider.js +27 -44
  197. package/dist/lib.esm/vue/no-modal/composables/useWeb3Auth.js +12 -1
  198. package/dist/lib.esm/vue/wallet-services-plugin/WalletServicesProvider.js +14 -2
  199. package/dist/lib.esm/vue/wallet-services-plugin/composables/useWalletServicesPlugin.js +12 -1
  200. package/dist/noModal.umd.min.js +1 -1
  201. package/dist/noModal.umd.min.js.LICENSE.txt +0 -9
  202. package/package.json +25 -22
  203. package/dist/757.noModal.cjs.js +0 -226
  204. package/dist/lib.cjs/adapters/auth-adapter/authAdapter.js +0 -262
  205. package/dist/lib.cjs/adapters/auth-adapter/config.js +0 -17
  206. package/dist/lib.cjs/adapters/base-solana-adapter/baseSolanaAdapter.js +0 -76
  207. package/dist/lib.cjs/adapters/coinbase-adapter/coinbaseAdapter.js +0 -156
  208. package/dist/lib.cjs/adapters/default-evm-adapter/index.js +0 -40
  209. package/dist/lib.cjs/adapters/default-evm-adapter/injectedAdapters.js +0 -42
  210. package/dist/lib.cjs/adapters/default-solana-adapter/index.js +0 -40
  211. package/dist/lib.cjs/adapters/default-solana-adapter/injectedAdapters.js +0 -53
  212. package/dist/lib.cjs/adapters/default-solana-adapter/walletStandardAdapter.js +0 -138
  213. package/dist/lib.cjs/adapters/default-solana-adapter/walletStandardHandler.js +0 -77
  214. package/dist/lib.cjs/adapters/wallet-connect-v2-adapter/walletConnectV2adapter.js +0 -376
  215. package/dist/lib.cjs/base/adapter/baseAdapter.js +0 -117
  216. package/dist/lib.cjs/base/adapter/constants.js +0 -24
  217. package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/BiconomySmartAccount.js +0 -29
  218. package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/KernelSmartAccount.js +0 -22
  219. package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/NexusSmartAccount.js +0 -30
  220. package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/SafeSmartAccount.js +0 -30
  221. package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/TrustSmartAccount.js +0 -29
  222. package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/constants.js +0 -11
  223. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/EthereumPrivateKeyProvider.js +0 -185
  224. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/ethPrivatekeyUtils.js +0 -106
  225. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/injectedProviderProxy.js +0 -12
  226. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/torus/providerHandlers.js +0 -75
  227. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/torus/torusInjectedProvider.js +0 -109
  228. package/dist/lib.esm/adapters/auth-adapter/authAdapter.js +0 -260
  229. package/dist/lib.esm/adapters/auth-adapter/config.js +0 -15
  230. package/dist/lib.esm/adapters/base-solana-adapter/baseSolanaAdapter.js +0 -74
  231. package/dist/lib.esm/adapters/coinbase-adapter/coinbaseAdapter.js +0 -154
  232. package/dist/lib.esm/adapters/default-evm-adapter/index.js +0 -37
  233. package/dist/lib.esm/adapters/default-evm-adapter/injectedAdapters.js +0 -40
  234. package/dist/lib.esm/adapters/default-solana-adapter/index.js +0 -37
  235. package/dist/lib.esm/adapters/default-solana-adapter/injectedAdapters.js +0 -51
  236. package/dist/lib.esm/adapters/default-solana-adapter/walletStandardHandler.js +0 -75
  237. package/dist/lib.esm/adapters/wallet-connect-v2-adapter/walletConnectV2adapter.js +0 -374
  238. package/dist/lib.esm/base/adapter/baseAdapter.js +0 -115
  239. package/dist/lib.esm/base/adapter/constants.js +0 -20
  240. package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/BiconomySmartAccount.js +0 -27
  241. package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/KernelSmartAccount.js +0 -20
  242. package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/NexusSmartAccount.js +0 -28
  243. package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/SafeSmartAccount.js +0 -28
  244. package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/TrustSmartAccount.js +0 -27
  245. package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/constants.js +0 -9
  246. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/EthereumPrivateKeyProvider.js +0 -183
  247. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/ethPrivatekeyUtils.js +0 -104
  248. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/injectedProviderProxy.js +0 -10
  249. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/torus/providerHandlers.js +0 -73
  250. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/torus/torusInjectedProvider.js +0 -107
  251. package/dist/noModal.cjs.js +0 -26385
  252. package/dist/types/adapters/auth-adapter/authAdapter.d.ts +0 -42
  253. package/dist/types/adapters/auth-adapter/config.d.ts +0 -2
  254. package/dist/types/adapters/auth-adapter/index.d.ts +0 -3
  255. package/dist/types/adapters/auth-adapter/interface.d.ts +0 -11
  256. package/dist/types/adapters/base-evm-adapter/baseEvmAdapter.d.ts +0 -7
  257. package/dist/types/adapters/base-evm-adapter/index.d.ts +0 -1
  258. package/dist/types/adapters/base-solana-adapter/baseSolanaAdapter.d.ts +0 -7
  259. package/dist/types/adapters/base-solana-adapter/index.d.ts +0 -1
  260. package/dist/types/adapters/coinbase-adapter/coinbaseAdapter.d.ts +0 -33
  261. package/dist/types/adapters/coinbase-adapter/index.d.ts +0 -1
  262. package/dist/types/adapters/default-evm-adapter/index.d.ts +0 -6
  263. package/dist/types/adapters/default-evm-adapter/injectedAdapters.d.ts +0 -4
  264. package/dist/types/adapters/default-evm-adapter/injectedEvmAdapter.d.ts +0 -30
  265. package/dist/types/adapters/default-solana-adapter/index.d.ts +0 -6
  266. package/dist/types/adapters/default-solana-adapter/injectedAdapters.d.ts +0 -4
  267. package/dist/types/adapters/default-solana-adapter/walletStandardAdapter.d.ts +0 -31
  268. package/dist/types/adapters/default-solana-adapter/walletStandardHandler.d.ts +0 -27
  269. package/dist/types/adapters/index.d.ts +0 -7
  270. package/dist/types/adapters/wallet-connect-v2-adapter/walletConnectV2adapter.d.ts +0 -42
  271. package/dist/types/base/adapter/baseAdapter.d.ts +0 -44
  272. package/dist/types/base/core/IWeb3Auth.d.ts +0 -101
  273. package/dist/types/base/wallet/index.d.ts +0 -33
  274. package/dist/types/noModal.d.ts +0 -43
  275. package/dist/types/plugins/wallet-services-plugin/plugin.d.ts +0 -51
  276. package/dist/types/providers/account-abstraction-provider/providers/AccountAbstractionProvider.d.ts +0 -46
  277. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/BiconomySmartAccount.d.ts +0 -14
  278. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/KernelSmartAccount.d.ts +0 -13
  279. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/LightSmartAccount.d.ts +0 -14
  280. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/NexusSmartAccount.d.ts +0 -14
  281. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/SafeSmartAccount.d.ts +0 -13
  282. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/SimpleSmartAccount.d.ts +0 -13
  283. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/TrustSmartAccount.d.ts +0 -13
  284. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/constants.d.ts +0 -9
  285. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/index.d.ts +0 -6
  286. package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/types.d.ts +0 -22
  287. package/dist/types/providers/account-abstraction-provider/providers/types.d.ts +0 -17
  288. package/dist/types/providers/base-provider/utils.d.ts +0 -2
  289. package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/EthereumPrivateKeyProvider.d.ts +0 -30
  290. package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/ethPrivatekeyUtils.d.ts +0 -9
  291. package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/index.d.ts +0 -2
  292. package/dist/types/providers/ethereum-provider/rpc/ethRpcMiddlewares.d.ts +0 -5
  293. package/dist/types/providers/solana-provider/interface.d.ts +0 -39
  294. package/dist/types/providers/solana-provider/providers/injectedProviders/index.d.ts +0 -3
  295. package/dist/types/providers/solana-provider/providers/injectedProviders/injectedProviderProxy.d.ts +0 -3
  296. package/dist/types/providers/solana-provider/providers/injectedProviders/interface.d.ts +0 -5
  297. package/dist/types/providers/solana-provider/providers/injectedProviders/torus/providerHandlers.d.ts +0 -3
  298. package/dist/types/providers/solana-provider/providers/injectedProviders/torus/torusInjectedProvider.d.ts +0 -18
  299. package/dist/types/providers/solana-provider/providers/injectedProviders/walletStandardProvider.d.ts +0 -6
  300. package/dist/types/providers/solana-provider/rpc/interfaces.d.ts +0 -42
  301. package/dist/types/providers/solana-provider/solanaWallet.d.ts +0 -14
  302. /package/dist/lib.cjs/base/{adapter → connector}/utils.js +0 -0
  303. /package/dist/lib.cjs/{adapters/default-solana-adapter → providers/solana-provider/providers/injectedProviders}/utils.js +0 -0
  304. /package/dist/{types → lib.cjs/types}/base/composables/index.d.ts +0 -0
  305. /package/dist/{types/base/adapter → lib.cjs/types/base/connector}/utils.d.ts +0 -0
  306. /package/dist/{types → lib.cjs/types}/base/loglevel.d.ts +0 -0
  307. /package/dist/{types → lib.cjs/types}/base/plugin/index.d.ts +0 -0
  308. /package/dist/{types → lib.cjs/types}/base/provider/IProvider.d.ts +0 -0
  309. /package/dist/{types/adapters/default-solana-adapter → lib.cjs/types/connectors/injected-solana-connector}/utils.d.ts +0 -0
  310. /package/dist/{types/adapters/wallet-connect-v2-adapter → lib.cjs/types/connectors/wallet-connect-v2-connector}/utils.d.ts +0 -0
  311. /package/dist/{types → lib.cjs/types}/plugins/index.d.ts +0 -0
  312. /package/dist/{types → lib.cjs/types}/plugins/nft-checkout-plugin/embed.d.ts +0 -0
  313. /package/dist/{types → lib.cjs/types}/plugins/nft-checkout-plugin/enums.d.ts +0 -0
  314. /package/dist/{types → lib.cjs/types}/plugins/nft-checkout-plugin/index.d.ts +0 -0
  315. /package/dist/{types → lib.cjs/types}/plugins/nft-checkout-plugin/utils.d.ts +0 -0
  316. /package/dist/{types → lib.cjs/types}/plugins/wallet-services-plugin/index.d.ts +0 -0
  317. /package/dist/{types → lib.cjs/types}/providers/account-abstraction-provider/index.d.ts +0 -0
  318. /package/dist/{types → lib.cjs/types}/providers/account-abstraction-provider/providers/utils.d.ts +0 -0
  319. /package/dist/{types → lib.cjs/types}/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.d.ts +0 -0
  320. /package/dist/{types → lib.cjs/types}/providers/account-abstraction-provider/rpc/index.d.ts +0 -0
  321. /package/dist/{types → lib.cjs/types}/providers/base-provider/index.d.ts +0 -0
  322. /package/dist/{types → lib.cjs/types}/providers/base-provider/jrpcClient.d.ts +0 -0
  323. /package/dist/{types → lib.cjs/types}/providers/ethereum-mpc-provider/index.d.ts +0 -0
  324. /package/dist/{types → lib.cjs/types}/providers/ethereum-mpc-provider/providers/index.d.ts +0 -0
  325. /package/dist/{types → lib.cjs/types}/providers/ethereum-mpc-provider/providers/signingProviders/index.d.ts +0 -0
  326. /package/dist/{types → lib.cjs/types}/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.d.ts +0 -0
  327. /package/dist/{types → lib.cjs/types}/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.d.ts +0 -0
  328. /package/dist/{types → lib.cjs/types}/providers/ethereum-mpc-provider/rpc/interfaces.d.ts +0 -0
  329. /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/index.d.ts +0 -0
  330. /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/providers/converter.d.ts +0 -0
  331. /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/providers/index.d.ts +0 -0
  332. /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.d.ts +0 -0
  333. /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.d.ts +0 -0
  334. /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/index.d.ts +0 -0
  335. /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.d.ts +0 -0
  336. /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.d.ts +0 -0
  337. /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/providers/utils.d.ts +0 -0
  338. /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/rpc/index.d.ts +0 -0
  339. /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/rpc/jrpcClient.d.ts +0 -0
  340. /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/rpc/walletMidddleware.d.ts +0 -0
  341. /package/dist/{types → lib.cjs/types}/providers/index.d.ts +0 -0
  342. /package/dist/{types → lib.cjs/types}/providers/solana-provider/index.d.ts +0 -0
  343. /package/dist/{types → lib.cjs/types}/providers/solana-provider/providers/index.d.ts +0 -0
  344. /package/dist/{types → lib.cjs/types}/providers/solana-provider/providers/injectedProviders/base/providerHandlers.d.ts +0 -0
  345. /package/dist/{types → lib.cjs/types}/providers/solana-provider/providers/privateKeyProvider/index.d.ts +0 -0
  346. /package/dist/{types → lib.cjs/types}/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.d.ts +0 -0
  347. /package/dist/{types → lib.cjs/types}/providers/solana-provider/rpc/JrpcClient.d.ts +0 -0
  348. /package/dist/{types → lib.cjs/types}/providers/solana-provider/rpc/index.d.ts +0 -0
  349. /package/dist/{types → lib.cjs/types}/providers/xrpl-provider/index.d.ts +0 -0
  350. /package/dist/{types → lib.cjs/types}/providers/xrpl-provider/providers/index.d.ts +0 -0
  351. /package/dist/{types → lib.cjs/types}/providers/xrpl-provider/providers/privateKeyProviders/constants.d.ts +0 -0
  352. /package/dist/{types → lib.cjs/types}/providers/xrpl-provider/providers/privateKeyProviders/index.d.ts +0 -0
  353. /package/dist/{types → lib.cjs/types}/providers/xrpl-provider/providers/privateKeyProviders/interface.d.ts +0 -0
  354. /package/dist/{types → lib.cjs/types}/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.d.ts +0 -0
  355. /package/dist/{types → lib.cjs/types}/providers/xrpl-provider/rpc/JrpcClient.d.ts +0 -0
  356. /package/dist/{types → lib.cjs/types}/react/index.d.ts +0 -0
  357. /package/dist/{types → lib.cjs/types}/react/no-modal/Web3AuthInnerContext.d.ts +0 -0
  358. /package/dist/{types → lib.cjs/types}/react/no-modal/Web3AuthProvider.d.ts +0 -0
  359. /package/dist/{types → lib.cjs/types}/react/no-modal/hooks/index.d.ts +0 -0
  360. /package/dist/{types → lib.cjs/types}/react/no-modal/hooks/useWeb3Auth.d.ts +0 -0
  361. /package/dist/{types → lib.cjs/types}/react/no-modal/index.d.ts +0 -0
  362. /package/dist/{types → lib.cjs/types}/react/wallet-services-plugin/WalletServicesContext.d.ts +0 -0
  363. /package/dist/{types → lib.cjs/types}/react/wallet-services-plugin/WalletServicesProvider.d.ts +0 -0
  364. /package/dist/{types → lib.cjs/types}/react/wallet-services-plugin/hooks/index.d.ts +0 -0
  365. /package/dist/{types → lib.cjs/types}/react/wallet-services-plugin/hooks/useWalletServicesPlugin.d.ts +0 -0
  366. /package/dist/{types → lib.cjs/types}/react/wallet-services-plugin/index.d.ts +0 -0
  367. /package/dist/{types → lib.cjs/types}/vue/index.d.ts +0 -0
  368. /package/dist/{types → lib.cjs/types}/vue/no-modal/Web3AuthProvider.d.ts +0 -0
  369. /package/dist/{types → lib.cjs/types}/vue/no-modal/composables/index.d.ts +0 -0
  370. /package/dist/{types → lib.cjs/types}/vue/no-modal/composables/useWeb3Auth.d.ts +0 -0
  371. /package/dist/{types → lib.cjs/types}/vue/no-modal/index.d.ts +0 -0
  372. /package/dist/{types → lib.cjs/types}/vue/wallet-services-plugin/WalletServicesProvider.d.ts +0 -0
  373. /package/dist/{types → lib.cjs/types}/vue/wallet-services-plugin/composables/index.d.ts +0 -0
  374. /package/dist/{types → lib.cjs/types}/vue/wallet-services-plugin/composables/useWalletServicesPlugin.d.ts +0 -0
  375. /package/dist/{types → lib.cjs/types}/vue/wallet-services-plugin/context.d.ts +0 -0
  376. /package/dist/{types → lib.cjs/types}/vue/wallet-services-plugin/index.d.ts +0 -0
  377. /package/dist/lib.esm/base/{adapter → connector}/utils.js +0 -0
  378. /package/dist/lib.esm/{adapters/default-solana-adapter → providers/solana-provider/providers/injectedProviders}/utils.js +0 -0
@@ -3,296 +3,339 @@
3
3
  var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
4
4
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
5
5
  var auth = require('@web3auth/auth');
6
- var deepmerge = require('deepmerge');
6
+ var authConnector = require('./connectors/auth-connector/authConnector.js');
7
7
  var config = require('./base/chain/config.js');
8
8
  var IChainInterface = require('./base/chain/IChainInterface.js');
9
9
  var index = require('./base/errors/index.js');
10
- var loglevel = require('./base/loglevel.js');
11
- var utils$1 = require('./base/utils.js');
12
10
  var index$1 = require('./base/wallet/index.js');
13
- var utils = require('./base/adapter/utils.js');
14
- var CommonJRPCProvider = require('./providers/base-provider/CommonJRPCProvider.js');
11
+ var constants = require('./base/connector/constants.js');
12
+ var utils$1 = require('./base/connector/utils.js');
13
+ var loglevel = require('./base/loglevel.js');
14
+ require('./base/plugin/errors.js');
15
15
  var IPlugin = require('./base/plugin/IPlugin.js');
16
- var constants = require('./base/adapter/constants.js');
16
+ var utils = require('./base/utils.js');
17
17
  var baseControllers = require('@toruslabs/base-controllers');
18
+ require('./providers/base-provider/utils.js');
19
+ var CommonJRPCProvider = require('./providers/base-provider/CommonJRPCProvider.js');
20
+ require('./providers/base-provider/commonPrivateKeyProvider.js');
18
21
 
19
- const ADAPTER_CACHE_KEY = "Web3Auth-cachedAdapter";
22
+ const CONNECTOR_CACHE_KEY = "Web3Auth-cachedConnector";
23
+ const CURRENT_CHAIN_CACHE_KEY = "Web3Auth-currentChain";
20
24
  class Web3AuthNoModal extends auth.SafeEventEmitter {
21
25
  constructor(options) {
22
- var _options$chainConfig, _options$chainConfig2, _options$chainConfig3, _options$chainConfig4;
23
26
  super();
24
27
  _defineProperty(this, "coreOptions", void 0);
25
- _defineProperty(this, "connectedAdapterName", null);
26
- _defineProperty(this, "status", constants.ADAPTER_STATUS.NOT_READY);
27
- _defineProperty(this, "cachedAdapter", null);
28
- _defineProperty(this, "walletAdapters", {});
28
+ _defineProperty(this, "connectedConnectorName", null);
29
+ _defineProperty(this, "status", constants.CONNECTOR_STATUS.NOT_READY);
30
+ _defineProperty(this, "cachedConnector", null);
31
+ _defineProperty(this, "currentChainId", void 0);
32
+ _defineProperty(this, "connectors", []);
29
33
  _defineProperty(this, "commonJRPCProvider", null);
30
34
  _defineProperty(this, "plugins", {});
31
35
  _defineProperty(this, "storage", "localStorage");
32
36
  if (!options.clientId) throw index.WalletInitializationError.invalidParams("Please provide a valid clientId in constructor");
33
37
  if (options.enableLogging) loglevel.log.enableAll();else loglevel.log.setLevel("error");
34
- if (!options.privateKeyProvider && !options.chainConfig) {
35
- throw index.WalletInitializationError.invalidParams("Please provide chainConfig or privateKeyProvider");
38
+ // TODO: This is fine. we get chains from project config. we can throw in init instead
39
+ if (!options.chains || options.chains.length === 0) {
40
+ throw index.WalletInitializationError.invalidParams("Please provide chains");
41
+ }
42
+ const {
43
+ chains
44
+ } = options;
45
+ // validate chain namespace of each chain config
46
+ for (const chain of chains) {
47
+ if (!chain.chainNamespace || !Object.values(baseControllers.CHAIN_NAMESPACES).includes(chain.chainNamespace)) throw index.WalletInitializationError.invalidParams("Please provide a valid chainNamespace in chains");
36
48
  }
37
- options.chainConfig = options.chainConfig || options.privateKeyProvider.currentChainConfig;
38
- if (!((_options$chainConfig = options.chainConfig) !== null && _options$chainConfig !== void 0 && _options$chainConfig.chainNamespace) || !Object.values(IChainInterface.CHAIN_NAMESPACES).includes((_options$chainConfig2 = options.chainConfig) === null || _options$chainConfig2 === void 0 ? void 0 : _options$chainConfig2.chainNamespace)) throw index.WalletInitializationError.invalidParams("Please provide a valid chainNamespace in chainConfig");
39
- if (options.storageKey === "session") this.storage = "sessionStorage";
40
- this.cachedAdapter = utils.storageAvailable(this.storage) ? window[this.storage].getItem(ADAPTER_CACHE_KEY) : null;
49
+ if (options.storageType === "session") this.storage = "sessionStorage";
41
50
  this.coreOptions = _objectSpread(_objectSpread({}, options), {}, {
42
- chainConfig: _objectSpread(_objectSpread({}, config.getChainConfig((_options$chainConfig3 = options.chainConfig) === null || _options$chainConfig3 === void 0 ? void 0 : _options$chainConfig3.chainNamespace, (_options$chainConfig4 = options.chainConfig) === null || _options$chainConfig4 === void 0 ? void 0 : _options$chainConfig4.chainId) || {}), options.chainConfig)
51
+ chains: chains.map(chain => _objectSpread(_objectSpread({}, config.getChainConfig(chain === null || chain === void 0 ? void 0 : chain.chainNamespace, chain === null || chain === void 0 ? void 0 : chain.chainId, options.clientId) || {}), chain))
43
52
  });
44
- this.subscribeToAdapterEvents = this.subscribeToAdapterEvents.bind(this);
53
+ this.currentChainId = options.defaultChainId || chains[0].chainId;
54
+ }
55
+ get currentChain() {
56
+ return this.coreOptions.chains.find(chain => chain.chainId === this.currentChainId);
45
57
  }
46
58
  get connected() {
47
- return Boolean(this.connectedAdapterName);
59
+ return Boolean(this.connectedConnector);
48
60
  }
49
61
  get provider() {
50
- if (this.status !== constants.ADAPTER_STATUS.NOT_READY && this.commonJRPCProvider) {
62
+ if (this.status !== constants.CONNECTOR_STATUS.NOT_READY && this.commonJRPCProvider) {
51
63
  return this.commonJRPCProvider;
52
64
  }
53
65
  return null;
54
66
  }
67
+ get connectedConnector() {
68
+ var _this$currentChain;
69
+ return this.getConnector(this.connectedConnectorName, (_this$currentChain = this.currentChain) === null || _this$currentChain === void 0 ? void 0 : _this$currentChain.chainNamespace);
70
+ }
55
71
  set provider(_) {
56
72
  throw new Error("Not implemented");
57
73
  }
58
74
  async init() {
59
- this.commonJRPCProvider = await CommonJRPCProvider.CommonJRPCProvider.getProviderInstance({
60
- chainConfig: this.coreOptions.chainConfig
61
- });
75
+ this.initCachedConnectorAndChainId();
76
+ // get project config
62
77
  let projectConfig;
63
78
  try {
64
79
  var _this$coreOptions$acc;
65
- projectConfig = await utils$1.fetchProjectConfig(this.coreOptions.clientId, this.coreOptions.web3AuthNetwork, (_this$coreOptions$acc = this.coreOptions.accountAbstractionProvider) === null || _this$coreOptions$acc === void 0 ? void 0 : _this$coreOptions$acc.config.smartAccountInit.name);
80
+ projectConfig = await utils.fetchProjectConfig(this.coreOptions.clientId, this.coreOptions.web3AuthNetwork, (_this$coreOptions$acc = this.coreOptions.accountAbstractionConfig) === null || _this$coreOptions$acc === void 0 ? void 0 : _this$coreOptions$acc.smartAccountType);
66
81
  } catch (e) {
67
82
  loglevel.log.error("Failed to fetch project configurations", e);
68
83
  throw index.WalletInitializationError.notReady("failed to fetch project configurations", e);
69
84
  }
70
- const initPromises = Object.keys(this.walletAdapters).map(async adapterName => {
71
- this.subscribeToAdapterEvents(this.walletAdapters[adapterName]);
72
- // if adapter doesn't have any chain config yet then set it based on provided namespace and chainId.
73
- // if no chainNamespace or chainId is being provided, it will connect with mainnet.
74
- if (!this.walletAdapters[adapterName].chainConfigProxy) {
75
- const providedChainConfig = this.coreOptions.chainConfig;
76
- if (!providedChainConfig.chainNamespace) throw index.WalletInitializationError.invalidParams("Please provide chainNamespace in chainConfig");
77
- this.walletAdapters[adapterName].setAdapterSettings({
78
- chainConfig: providedChainConfig,
79
- sessionTime: this.coreOptions.sessionTime,
80
- clientId: this.coreOptions.clientId,
81
- web3AuthNetwork: this.coreOptions.web3AuthNetwork,
82
- useCoreKitKey: this.coreOptions.useCoreKitKey
83
- });
84
- } else {
85
- this.walletAdapters[adapterName].setAdapterSettings({
86
- sessionTime: this.coreOptions.sessionTime,
87
- clientId: this.coreOptions.clientId,
88
- web3AuthNetwork: this.coreOptions.web3AuthNetwork,
89
- useCoreKitKey: this.coreOptions.useCoreKitKey
90
- });
85
+ // setup common JRPC provider
86
+ await this.setupCommonJRPCProvider();
87
+ // initialize connectors
88
+ this.on(constants.CONNECTOR_EVENTS.CONNECTORS_UPDATED, async ({
89
+ connectors: newConnectors
90
+ }) => {
91
+ await Promise.all(newConnectors.map(this.setupConnector.bind(this)));
92
+ // emit connector ready event
93
+ if (this.status === constants.CONNECTOR_STATUS.NOT_READY) {
94
+ this.status = constants.CONNECTOR_STATUS.READY;
95
+ this.emit(constants.CONNECTOR_EVENTS.READY);
91
96
  }
92
- if (adapterName === index$1.WALLET_ADAPTERS.AUTH) {
93
- const authAdapter = this.walletAdapters[adapterName];
94
- const {
95
- whitelabel
96
- } = projectConfig;
97
- this.coreOptions.uiConfig = deepmerge(baseControllers.cloneDeep(whitelabel || {}), this.coreOptions.uiConfig || {});
98
- if (!this.coreOptions.uiConfig.mode) this.coreOptions.uiConfig.mode = "light";
99
- const {
100
- sms_otp_enabled: smsOtpEnabled,
101
- whitelist,
102
- key_export_enabled: keyExportEnabled
103
- } = projectConfig;
104
- if (smsOtpEnabled !== undefined) {
105
- authAdapter.setAdapterSettings({
106
- loginConfig: {
107
- [auth.LOGIN_PROVIDER.SMS_PASSWORDLESS]: {
108
- showOnModal: smsOtpEnabled,
109
- showOnDesktop: smsOtpEnabled,
110
- showOnMobile: smsOtpEnabled,
111
- showOnSocialBackupFactor: smsOtpEnabled
112
- }
113
- }
114
- });
115
- }
116
- if (whitelist) {
117
- authAdapter.setAdapterSettings({
118
- originData: whitelist.signed_urls
119
- });
120
- }
121
- if (typeof keyExportEnabled === "boolean") {
122
- this.coreOptions.privateKeyProvider.setKeyExportFlag(keyExportEnabled);
123
- // dont know if this is required or not.
124
- this.commonJRPCProvider.setKeyExportFlag(keyExportEnabled);
125
- }
126
- if (this.coreOptions.privateKeyProvider) {
127
- if (authAdapter.currentChainNamespace !== this.coreOptions.privateKeyProvider.currentChainConfig.chainNamespace) {
128
- throw index.WalletInitializationError.incompatibleChainNameSpace("private key provider is not compatible with provided chainNamespace for auth adapter");
129
- }
130
- authAdapter.setAdapterSettings({
131
- privateKeyProvider: this.coreOptions.privateKeyProvider
132
- });
133
- }
134
- authAdapter.setAdapterSettings({
135
- whiteLabel: this.coreOptions.uiConfig
136
- });
137
- if (!authAdapter.privateKeyProvider) {
138
- throw index.WalletInitializationError.invalidParams("privateKeyProvider is required for auth adapter");
139
- }
140
- } else if (adapterName === index$1.WALLET_ADAPTERS.WALLET_CONNECT_V2) {
141
- const walletConnectAdapter = this.walletAdapters[adapterName];
142
- const {
143
- wallet_connect_enabled: walletConnectEnabled,
144
- wallet_connect_project_id: walletConnectProjectId
145
- } = projectConfig;
146
- if (walletConnectEnabled === false) {
147
- throw index.WalletInitializationError.invalidParams("Please enable wallet connect v2 addon on dashboard");
148
- }
149
- if (!walletConnectProjectId) throw index.WalletInitializationError.invalidParams("Invalid wallet connect project id. Please configure it on the dashboard");
150
- walletConnectAdapter.setAdapterSettings({
151
- adapterSettings: {
152
- walletConnectInitOptions: {
153
- projectId: walletConnectProjectId
154
- }
155
- }
156
- });
157
- }
158
- return this.walletAdapters[adapterName].init({
159
- autoConnect: this.cachedAdapter === adapterName
160
- }).catch(e => loglevel.log.error(e, adapterName));
161
97
  });
162
- await Promise.all(initPromises);
163
- if (this.status === constants.ADAPTER_STATUS.NOT_READY) {
164
- this.status = constants.ADAPTER_STATUS.READY;
165
- this.emit(constants.ADAPTER_EVENTS.READY);
166
- }
167
- }
168
- getAdapter(adapterName) {
169
- return this.walletAdapters[adapterName] || null;
98
+ await this.loadConnectors({
99
+ projectConfig
100
+ });
101
+ await this.initPlugins();
170
102
  }
171
- configureAdapter(adapter) {
172
- this.checkInitRequirements();
173
- const providedChainConfig = this.coreOptions.chainConfig;
174
- if (!providedChainConfig.chainNamespace) throw index.WalletInitializationError.invalidParams("Please provide chainNamespace in chainConfig");
175
- const adapterAlreadyExists = this.walletAdapters[adapter.name];
176
- if (adapterAlreadyExists) throw index.WalletInitializationError.duplicateAdapterError(`Wallet adapter for ${adapter.name} already exists`);
177
- if (adapter.adapterNamespace !== IChainInterface.ADAPTER_NAMESPACES.MULTICHAIN && adapter.adapterNamespace !== providedChainConfig.chainNamespace) throw index.WalletInitializationError.incompatibleChainNameSpace(`This wallet adapter belongs to ${adapter.adapterNamespace} which is incompatible with currently used namespace: ${providedChainConfig.chainNamespace}`);
178
- if (adapter.adapterNamespace === IChainInterface.ADAPTER_NAMESPACES.MULTICHAIN && adapter.currentChainNamespace && providedChainConfig.chainNamespace !== adapter.currentChainNamespace) {
179
- // chainConfig checks are already validated in constructor so using typecast is safe here.
180
- adapter.setAdapterSettings({
181
- chainConfig: providedChainConfig
182
- });
183
- }
184
- this.walletAdapters[adapter.name] = adapter;
185
- return this;
103
+ // we need to take into account the chainNamespace as for external connectors, same connector name can be used for multiple chain namespaces
104
+ getConnector(connectorName, chainNamespace) {
105
+ return this.connectors.find(connector => {
106
+ if (connector.name !== connectorName) return false;
107
+ if (chainNamespace) {
108
+ if (connector.connectorNamespace === IChainInterface.CONNECTOR_NAMESPACES.MULTICHAIN) return true;
109
+ return connector.connectorNamespace === chainNamespace;
110
+ }
111
+ return true;
112
+ }) || null;
186
113
  }
187
114
  clearCache() {
188
- if (!utils.storageAvailable(this.storage)) return;
189
- window[this.storage].removeItem(ADAPTER_CACHE_KEY);
190
- this.cachedAdapter = null;
191
- }
192
- async addChain(chainConfig) {
193
- if (this.status === constants.ADAPTER_STATUS.CONNECTED && this.connectedAdapterName) return this.walletAdapters[this.connectedAdapterName].addChain(chainConfig);
194
- if (this.commonJRPCProvider) {
195
- return this.commonJRPCProvider.addChain(chainConfig);
196
- }
197
- throw index.WalletInitializationError.notReady(`No wallet is ready`);
115
+ if (!utils$1.storageAvailable(this.storage)) return;
116
+ window[this.storage].removeItem(CONNECTOR_CACHE_KEY);
117
+ window[this.storage].removeItem(CURRENT_CHAIN_CACHE_KEY);
118
+ this.cachedConnector = null;
198
119
  }
199
120
  async switchChain(params) {
200
- if (this.status === constants.ADAPTER_STATUS.CONNECTED && this.connectedAdapterName) return this.walletAdapters[this.connectedAdapterName].switchChain(params);
121
+ if (params.chainId === this.currentChain.chainId) return;
122
+ const newChainConfig = this.coreOptions.chains.find(x => x.chainId === params.chainId);
123
+ if (!newChainConfig) throw index.WalletInitializationError.invalidParams("Invalid chainId");
124
+ if (this.status === constants.CONNECTOR_STATUS.CONNECTED && this.connectedConnector) {
125
+ await this.connectedConnector.switchChain(params);
126
+ this.setCurrentChain(params.chainId);
127
+ return;
128
+ }
201
129
  if (this.commonJRPCProvider) {
202
- return this.commonJRPCProvider.switchChain(params);
130
+ await this.commonJRPCProvider.switchChain(params);
131
+ this.setCurrentChain(params.chainId);
132
+ return;
203
133
  }
204
134
  throw index.WalletInitializationError.notReady(`No wallet is ready`);
205
135
  }
206
-
207
136
  /**
208
- * Connect to a specific wallet adapter
209
- * @param walletName - Key of the walletAdapter to use.
137
+ * Connect to a specific wallet connector
138
+ * @param connectorName - Key of the wallet connector to use.
210
139
  */
211
- async connectTo(walletName, loginParams) {
212
- if (!this.walletAdapters[walletName] || !this.commonJRPCProvider) throw index.WalletInitializationError.notFound(`Please add wallet adapter for ${walletName} wallet, before connecting`);
140
+ async connectTo(connectorName, loginParams) {
141
+ const connector = this.getConnector(connectorName, loginParams === null || loginParams === void 0 ? void 0 : loginParams.chainNamespace);
142
+ if (!connector || !this.commonJRPCProvider) throw index.WalletInitializationError.notFound(`Please add wallet connector for ${connectorName} wallet, before connecting`);
213
143
  return new Promise((resolve, reject) => {
214
- this.once(constants.ADAPTER_EVENTS.CONNECTED, _ => {
144
+ this.once(constants.CONNECTOR_EVENTS.CONNECTED, _ => {
215
145
  resolve(this.provider);
216
146
  });
217
- this.once(constants.ADAPTER_EVENTS.ERRORED, err => {
147
+ this.once(constants.CONNECTOR_EVENTS.ERRORED, err => {
218
148
  reject(err);
219
149
  });
220
- this.walletAdapters[walletName].connect(loginParams);
150
+ const initialChain = this.getInitialChainIdForConnector(connector);
151
+ const finalLoginParams = _objectSpread(_objectSpread({}, loginParams), {}, {
152
+ chainId: initialChain.chainId
153
+ });
154
+ connector.connect(finalLoginParams);
155
+ this.setCurrentChain(initialChain.chainId);
221
156
  });
222
157
  }
223
158
  async logout(options = {
224
159
  cleanup: false
225
160
  }) {
226
- if (this.status !== constants.ADAPTER_STATUS.CONNECTED || !this.connectedAdapterName) throw index.WalletLoginError.notConnectedError(`No wallet is connected`);
227
- await this.walletAdapters[this.connectedAdapterName].disconnect(options);
161
+ if (this.status !== constants.CONNECTOR_STATUS.CONNECTED || !this.connectedConnector) throw index.WalletLoginError.notConnectedError(`No wallet is connected`);
162
+ await this.connectedConnector.disconnect(options);
228
163
  }
229
164
  async getUserInfo() {
230
- loglevel.log.debug("Getting user info", this.status, this.connectedAdapterName);
231
- if (this.status !== constants.ADAPTER_STATUS.CONNECTED || !this.connectedAdapterName) throw index.WalletLoginError.notConnectedError(`No wallet is connected`);
232
- return this.walletAdapters[this.connectedAdapterName].getUserInfo();
165
+ var _this$connectedConnec;
166
+ loglevel.log.debug("Getting user info", this.status, (_this$connectedConnec = this.connectedConnector) === null || _this$connectedConnec === void 0 ? void 0 : _this$connectedConnec.name);
167
+ if (this.status !== constants.CONNECTOR_STATUS.CONNECTED || !this.connectedConnector) throw index.WalletLoginError.notConnectedError(`No wallet is connected`);
168
+ return this.connectedConnector.getUserInfo();
233
169
  }
234
170
  async enableMFA(loginParams) {
235
- if (this.status !== constants.ADAPTER_STATUS.CONNECTED || !this.connectedAdapterName) throw index.WalletLoginError.notConnectedError(`No wallet is connected`);
236
- if (this.connectedAdapterName !== index$1.WALLET_ADAPTERS.AUTH) throw index.WalletLoginError.unsupportedOperation(`EnableMFA is not supported for this adapter.`);
237
- return this.walletAdapters[this.connectedAdapterName].enableMFA(loginParams);
171
+ if (this.status !== constants.CONNECTOR_STATUS.CONNECTED || !this.connectedConnector) throw index.WalletLoginError.notConnectedError(`No wallet is connected`);
172
+ if (this.connectedConnector.name !== index$1.WALLET_CONNECTORS.AUTH) throw index.WalletLoginError.unsupportedOperation(`EnableMFA is not supported for this connector.`);
173
+ return this.connectedConnector.enableMFA(loginParams);
238
174
  }
239
175
  async manageMFA(loginParams) {
240
- if (this.status !== constants.ADAPTER_STATUS.CONNECTED || !this.connectedAdapterName) throw index.WalletLoginError.notConnectedError(`No wallet is connected`);
241
- if (this.connectedAdapterName !== index$1.WALLET_ADAPTERS.AUTH) throw index.WalletLoginError.unsupportedOperation(`ManageMFA is not supported for this adapter.`);
242
- return this.walletAdapters[this.connectedAdapterName].manageMFA(loginParams);
176
+ if (this.status !== constants.CONNECTOR_STATUS.CONNECTED || !this.connectedConnector) throw index.WalletLoginError.notConnectedError(`No wallet is connected`);
177
+ if (this.connectedConnector.name !== index$1.WALLET_CONNECTORS.AUTH) throw index.WalletLoginError.unsupportedOperation(`ManageMFA is not supported for this connector.`);
178
+ return this.connectedConnector.manageMFA(loginParams);
243
179
  }
244
180
  async authenticateUser() {
245
- if (this.status !== constants.ADAPTER_STATUS.CONNECTED || !this.connectedAdapterName) throw index.WalletLoginError.notConnectedError(`No wallet is connected`);
246
- return this.walletAdapters[this.connectedAdapterName].authenticateUser();
181
+ if (this.status !== constants.CONNECTOR_STATUS.CONNECTED || !this.connectedConnector) throw index.WalletLoginError.notConnectedError(`No wallet is connected`);
182
+ return this.connectedConnector.authenticateUser();
183
+ }
184
+ getPlugin(name) {
185
+ return this.plugins[name] || null;
186
+ }
187
+ initCachedConnectorAndChainId() {
188
+ this.cachedConnector = utils$1.storageAvailable(this.storage) ? window[this.storage].getItem(CONNECTOR_CACHE_KEY) : null;
189
+ // init chainId using cached chainId if it exists and is valid, otherwise use the defaultChainId or the first chain
190
+ const cachedChainId = utils$1.storageAvailable(this.storage) ? window[this.storage].getItem(CURRENT_CHAIN_CACHE_KEY) : null;
191
+ const isCachedChainIdValid = cachedChainId && this.coreOptions.chains.some(chain => chain.chainId === cachedChainId);
192
+ this.currentChainId = isCachedChainIdValid ? cachedChainId : this.coreOptions.defaultChainId || this.coreOptions.chains[0].chainId;
193
+ }
194
+ async setupCommonJRPCProvider() {
195
+ this.commonJRPCProvider = await CommonJRPCProvider.CommonJRPCProvider.getProviderInstance({
196
+ chain: this.currentChain,
197
+ chains: this.coreOptions.chains
198
+ });
199
+ // sync chainId
200
+ this.commonJRPCProvider.on("chainChanged", chainId => this.setCurrentChain(chainId));
247
201
  }
248
- addPlugin(plugin) {
249
- if (this.plugins[plugin.name]) throw index.WalletInitializationError.duplicateAdapterError(`Plugin ${plugin.name} already exist`);
250
- if (plugin.pluginNamespace !== IPlugin.PLUGIN_NAMESPACES.MULTICHAIN && plugin.pluginNamespace !== this.coreOptions.chainConfig.chainNamespace) throw index.WalletInitializationError.incompatibleChainNameSpace(`This plugin belongs to ${plugin.pluginNamespace} namespace which is incompatible with currently used namespace: ${this.coreOptions.chainConfig.chainNamespace}`);
251
- this.plugins[plugin.name] = plugin;
252
- if (this.status === constants.ADAPTER_STATUS.CONNECTED && this.connectedAdapterName) {
253
- // web3auth is already connected. can initialize plugins
254
- this.connectToPlugins({
255
- adapter: this.connectedAdapterName
202
+ async setupConnector(connector) {
203
+ this.subscribeToConnectorEvents(connector);
204
+ try {
205
+ const initialChain = this.getInitialChainIdForConnector(connector);
206
+ await connector.init({
207
+ autoConnect: this.cachedConnector === connector.name,
208
+ chainId: initialChain.chainId
256
209
  });
210
+ } catch (e) {
211
+ loglevel.log.error(e, connector.name);
257
212
  }
258
- return this;
259
213
  }
260
- getPlugin(name) {
261
- return this.plugins[name] || null;
214
+ async loadConnectors({
215
+ projectConfig
216
+ }) {
217
+ var _this$coreOptions$mul;
218
+ // always add auth connector
219
+ const connectorFns = [...(this.coreOptions.connectors || []), authConnector.authConnector()];
220
+ const config = {
221
+ projectConfig,
222
+ coreOptions: this.coreOptions
223
+ };
224
+ // add injected connectors
225
+ const isMipdEnabled = (_this$coreOptions$mul = this.coreOptions.multiInjectedProviderDiscovery) !== null && _this$coreOptions$mul !== void 0 ? _this$coreOptions$mul : true;
226
+ const chainNamespaces = new Set(this.coreOptions.chains.map(chain => chain.chainNamespace));
227
+ if (isMipdEnabled) {
228
+ // Solana chains
229
+ if (chainNamespaces.has(baseControllers.CHAIN_NAMESPACES.SOLANA)) {
230
+ const {
231
+ createSolanaMipd,
232
+ hasSolanaWalletStandardFeatures,
233
+ walletStandardConnector
234
+ } = await Promise.resolve().then(function () { return require('./connectors/injected-solana-connector/index.js'); });
235
+ const solanaMipd = createSolanaMipd();
236
+ // subscribe to new injected connectors
237
+ solanaMipd.on("register", async (...wallets) => {
238
+ const newConnectors = wallets.filter(hasSolanaWalletStandardFeatures).map(wallet => walletStandardConnector(wallet)(config));
239
+ this.setConnectors(newConnectors);
240
+ });
241
+ connectorFns.push(...solanaMipd.get().filter(wallet => hasSolanaWalletStandardFeatures(wallet)).map(walletStandardConnector));
242
+ }
243
+ // EVM chains
244
+ if (chainNamespaces.has(baseControllers.CHAIN_NAMESPACES.EIP155)) {
245
+ const {
246
+ createMipd,
247
+ injectedEvmConnector
248
+ } = await Promise.resolve().then(function () { return require('./connectors/injected-evm-connector/index.js'); });
249
+ const evmMipd = createMipd();
250
+ // subscribe to new injected connectors
251
+ evmMipd.subscribe(providerDetails => {
252
+ const newConnectors = providerDetails.map(providerDetail => injectedEvmConnector(providerDetail)(config));
253
+ this.setConnectors(newConnectors);
254
+ });
255
+ connectorFns.push(...evmMipd.getProviders().map(injectedEvmConnector));
256
+ }
257
+ }
258
+ // add WalletConnectV2 connector if enabled
259
+ if (projectConfig.wallet_connect_enabled && projectConfig.wallet_connect_project_id && (chainNamespaces.has(baseControllers.CHAIN_NAMESPACES.SOLANA) || chainNamespaces.has(baseControllers.CHAIN_NAMESPACES.EIP155))) {
260
+ const {
261
+ walletConnectV2Connector
262
+ } = await Promise.resolve().then(function () { return require('./connectors/wallet-connect-v2-connector/index.js'); });
263
+ connectorFns.push(walletConnectV2Connector());
264
+ }
265
+ const connectors = connectorFns.map(connectorFn => connectorFn(config));
266
+ this.setConnectors(connectors);
262
267
  }
263
- subscribeToAdapterEvents(walletAdapter) {
264
- walletAdapter.on(constants.ADAPTER_EVENTS.CONNECTED, async data => {
268
+ async initPlugins() {
269
+ const pluginFns = this.coreOptions.plugins || [];
270
+ for (const pluginFn of pluginFns) {
271
+ const plugin = pluginFn();
272
+ if (!this.plugins[plugin.name]) this.plugins[plugin.name] = plugin;
273
+ }
274
+ }
275
+ setConnectors(connectors) {
276
+ const getConnectorKey = connector => `${connector.connectorNamespace}-${connector.name}`;
277
+ const connectorSet = new Set(this.connectors.map(getConnectorKey));
278
+ const newConnectors = connectors.map(connector => {
279
+ const key = getConnectorKey(connector);
280
+ if (connectorSet.has(key)) return null;
281
+ connectorSet.add(key);
282
+ return connector;
283
+ }).filter(connector => connector !== null);
284
+ if (newConnectors.length > 0) {
285
+ this.connectors = [...this.connectors, ...newConnectors];
286
+ // only emit new connectors
287
+ this.emit(constants.CONNECTOR_EVENTS.CONNECTORS_UPDATED, {
288
+ connectors: newConnectors
289
+ });
290
+ }
291
+ }
292
+ subscribeToConnectorEvents(connector) {
293
+ connector.on(constants.CONNECTOR_EVENTS.CONNECTED, async data => {
265
294
  if (!this.commonJRPCProvider) throw index.WalletInitializationError.notFound(`CommonJrpcProvider not found`);
266
295
  const {
267
296
  provider
268
297
  } = data;
269
298
  let finalProvider = provider.provider || provider;
270
- // setup aa provider after adapter is connected and private key provider is setup
271
- if (this.coreOptions.accountAbstractionProvider && (data.adapter === index$1.WALLET_ADAPTERS.AUTH || data.adapter !== index$1.WALLET_ADAPTERS.AUTH && this.coreOptions.useAAWithExternalWallet)) {
272
- await this.coreOptions.accountAbstractionProvider.setupProvider(provider); // Don't change this to finalProvider
273
- finalProvider = this.coreOptions.accountAbstractionProvider;
299
+ // setup aa provider for external wallets on EVM chains, for in app wallet, it uses WS provider which already supports AA
300
+ const {
301
+ accountAbstractionConfig
302
+ } = this.coreOptions;
303
+ if (this.currentChain.chainNamespace === baseControllers.CHAIN_NAMESPACES.EIP155 && accountAbstractionConfig && data.connector !== index$1.WALLET_CONNECTORS.AUTH && this.coreOptions.useAAWithExternalWallet) {
304
+ const {
305
+ accountAbstractionProvider
306
+ } = await Promise.resolve().then(function () { return require('./providers/account-abstraction-provider/index.js'); });
307
+ const aaProvider = await accountAbstractionProvider({
308
+ accountAbstractionConfig,
309
+ provider,
310
+ chain: this.currentChain,
311
+ chains: this.coreOptions.chains
312
+ });
313
+ finalProvider = aaProvider;
314
+ // TODO: when switching chains to Solana or other chains, we need to switch to the non-AA provider
274
315
  }
275
316
  this.commonJRPCProvider.updateProviderEngineProxy(finalProvider);
276
- this.connectedAdapterName = data.adapter;
277
- this.status = constants.ADAPTER_STATUS.CONNECTED;
278
- this.cacheWallet(data.adapter);
279
- loglevel.log.debug("connected", this.status, this.connectedAdapterName);
317
+ this.connectedConnectorName = data.connector;
318
+ this.status = constants.CONNECTOR_STATUS.CONNECTED;
319
+ this.cacheWallet(data.connector);
320
+ loglevel.log.debug("connected", this.status, this.connectedConnectorName);
280
321
  this.connectToPlugins(data);
281
- this.emit(constants.ADAPTER_EVENTS.CONNECTED, _objectSpread({}, data));
322
+ this.emit(constants.CONNECTOR_EVENTS.CONNECTED, _objectSpread({}, data));
282
323
  });
283
- walletAdapter.on(constants.ADAPTER_EVENTS.DISCONNECTED, async () => {
324
+ connector.on(constants.CONNECTOR_EVENTS.DISCONNECTED, async () => {
284
325
  // get back to ready state for rehydrating.
285
- this.status = constants.ADAPTER_STATUS.READY;
286
- if (utils.storageAvailable(this.storage)) {
287
- const cachedAdapter = window[this.storage].getItem(ADAPTER_CACHE_KEY);
288
- if (this.connectedAdapterName === cachedAdapter) {
326
+ this.status = constants.CONNECTOR_STATUS.READY;
327
+ if (utils$1.storageAvailable(this.storage)) {
328
+ const cachedConnector = window[this.storage].getItem(CONNECTOR_CACHE_KEY);
329
+ if (this.connectedConnectorName === cachedConnector) {
289
330
  this.clearCache();
290
331
  }
291
332
  }
292
- loglevel.log.debug("disconnected", this.status, this.connectedAdapterName);
293
- await Promise.all(Object.values(this.plugins).map(plugin => {
333
+ loglevel.log.debug("disconnected", this.status, this.connectedConnectorName);
334
+ await Promise.all(Object.values(this.plugins).map(async plugin => {
335
+ if (!plugin.SUPPORTED_CONNECTORS.includes("all") && !plugin.SUPPORTED_CONNECTORS.includes(connector.name)) return;
336
+ if (plugin.status !== IPlugin.PLUGIN_STATUS.CONNECTED) return;
294
337
  return plugin.disconnect().catch(error => {
295
- // swallow error if adapter doesn't supports this plugin.
338
+ // swallow error if connector doesn't supports this plugin.
296
339
  if (error.code === 5211) {
297
340
  return;
298
341
  }
@@ -300,63 +343,78 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
300
343
  loglevel.log.error(error);
301
344
  });
302
345
  }));
303
- this.connectedAdapterName = null;
304
- this.emit(constants.ADAPTER_EVENTS.DISCONNECTED);
346
+ this.connectedConnectorName = null;
347
+ this.emit(constants.CONNECTOR_EVENTS.DISCONNECTED);
305
348
  });
306
- walletAdapter.on(constants.ADAPTER_EVENTS.CONNECTING, data => {
307
- this.status = constants.ADAPTER_STATUS.CONNECTING;
308
- this.emit(constants.ADAPTER_EVENTS.CONNECTING, data);
309
- loglevel.log.debug("connecting", this.status, this.connectedAdapterName);
349
+ connector.on(constants.CONNECTOR_EVENTS.CONNECTING, data => {
350
+ this.status = constants.CONNECTOR_STATUS.CONNECTING;
351
+ this.emit(constants.CONNECTOR_EVENTS.CONNECTING, data);
352
+ loglevel.log.debug("connecting", this.status, this.connectedConnectorName);
310
353
  });
311
- walletAdapter.on(constants.ADAPTER_EVENTS.ERRORED, data => {
312
- this.status = constants.ADAPTER_STATUS.ERRORED;
354
+ connector.on(constants.CONNECTOR_EVENTS.ERRORED, data => {
355
+ this.status = constants.CONNECTOR_STATUS.ERRORED;
313
356
  this.clearCache();
314
- this.emit(constants.ADAPTER_EVENTS.ERRORED, data);
315
- loglevel.log.debug("errored", this.status, this.connectedAdapterName);
357
+ this.emit(constants.CONNECTOR_EVENTS.ERRORED, data);
358
+ loglevel.log.debug("errored", this.status, this.connectedConnectorName);
316
359
  });
317
- walletAdapter.on(constants.ADAPTER_EVENTS.ADAPTER_DATA_UPDATED, data => {
318
- loglevel.log.debug("adapter data updated", data);
319
- this.emit(constants.ADAPTER_EVENTS.ADAPTER_DATA_UPDATED, data);
360
+ connector.on(constants.CONNECTOR_EVENTS.CONNECTOR_DATA_UPDATED, data => {
361
+ loglevel.log.debug("connector data updated", data);
362
+ this.emit(constants.CONNECTOR_EVENTS.CONNECTOR_DATA_UPDATED, data);
320
363
  });
321
- walletAdapter.on(constants.ADAPTER_EVENTS.CACHE_CLEAR, data => {
322
- loglevel.log.debug("adapter cache clear", data);
323
- if (utils.storageAvailable(this.storage)) {
364
+ connector.on(constants.CONNECTOR_EVENTS.CACHE_CLEAR, data => {
365
+ loglevel.log.debug("connector cache clear", data);
366
+ if (utils$1.storageAvailable(this.storage)) {
324
367
  this.clearCache();
325
368
  }
326
369
  });
327
370
  }
328
371
  checkInitRequirements() {
329
- if (this.status === constants.ADAPTER_STATUS.CONNECTING) throw index.WalletInitializationError.notReady("Already pending connection");
330
- if (this.status === constants.ADAPTER_STATUS.CONNECTED) throw index.WalletInitializationError.notReady("Already connected");
331
- if (this.status === constants.ADAPTER_STATUS.READY) throw index.WalletInitializationError.notReady("Adapter is already initialized");
372
+ if (this.status === constants.CONNECTOR_STATUS.CONNECTING) throw index.WalletInitializationError.notReady("Already pending connection");
373
+ if (this.status === constants.CONNECTOR_STATUS.CONNECTED) throw index.WalletInitializationError.notReady("Already connected");
374
+ if (this.status === constants.CONNECTOR_STATUS.READY) throw index.WalletInitializationError.notReady("Connector is already initialized");
375
+ }
376
+ /**
377
+ * Gets the initial chain configuration for a connector
378
+ * @throws WalletInitializationError If no chain is found for the connector's namespace
379
+ */
380
+ getInitialChainIdForConnector(connector) {
381
+ let initialChain = this.currentChain;
382
+ if (initialChain.chainNamespace !== connector.connectorNamespace && connector.connectorNamespace !== IChainInterface.CONNECTOR_NAMESPACES.MULTICHAIN) {
383
+ initialChain = this.coreOptions.chains.find(x => x.chainNamespace === connector.connectorNamespace);
384
+ if (!initialChain) throw index.WalletInitializationError.invalidParams(`No chain found for ${connector.connectorNamespace}`);
385
+ }
386
+ return initialChain;
332
387
  }
333
388
  cacheWallet(walletName) {
334
- if (!utils.storageAvailable(this.storage)) return;
335
- window[this.storage].setItem(ADAPTER_CACHE_KEY, walletName);
336
- this.cachedAdapter = walletName;
389
+ if (!utils$1.storageAvailable(this.storage)) return;
390
+ // TODO: use the key from user + this
391
+ window[this.storage].setItem(CONNECTOR_CACHE_KEY, walletName);
392
+ this.cachedConnector = walletName;
393
+ }
394
+ setCurrentChain(chainId) {
395
+ if (chainId === this.currentChainId) return;
396
+ const newChain = this.coreOptions.chains.find(chain => chain.chainId === chainId);
397
+ if (!newChain) throw index.WalletInitializationError.invalidParams(`Invalid chainId: ${chainId}`);
398
+ this.currentChainId = chainId;
399
+ this.cacheCurrentChain(chainId);
400
+ }
401
+ cacheCurrentChain(chainId) {
402
+ if (!utils$1.storageAvailable(this.storage)) return;
403
+ window[this.storage].setItem(CURRENT_CHAIN_CACHE_KEY, chainId);
337
404
  }
338
405
  connectToPlugins(data) {
339
406
  Object.values(this.plugins).map(async plugin => {
340
407
  try {
341
- if (!plugin.SUPPORTED_ADAPTERS.includes("all") && !plugin.SUPPORTED_ADAPTERS.includes(data.adapter)) {
342
- return;
343
- }
408
+ // skip if it's not compatible with the connector
409
+ if (!plugin.SUPPORTED_CONNECTORS.includes("all") && !plugin.SUPPORTED_CONNECTORS.includes(data.connector)) return;
410
+ // skip if it's not compatible with the current chain
411
+ if (plugin.pluginNamespace !== IPlugin.PLUGIN_NAMESPACES.MULTICHAIN && plugin.pluginNamespace !== this.currentChain.chainNamespace) return;
412
+ // skip if it's already connected
344
413
  if (plugin.status === IPlugin.PLUGIN_STATUS.CONNECTED) return;
345
- const {
346
- authInstance
347
- } = this.walletAdapters[this.connectedAdapterName];
348
- const {
349
- options,
350
- sessionId,
351
- sessionNamespace
352
- } = authInstance || {};
353
- await plugin.initWithWeb3Auth(this, options === null || options === void 0 ? void 0 : options.whiteLabel);
354
- await plugin.connect({
355
- sessionId,
356
- sessionNamespace
357
- });
414
+ await plugin.initWithWeb3Auth(this, this.coreOptions.uiConfig);
415
+ await plugin.connect();
358
416
  } catch (error) {
359
- // swallow error if connector adapter doesn't supports this plugin.
417
+ // swallow error if connector connector doesn't supports this plugin.
360
418
  if (error.code === 5211) {
361
419
  return;
362
420
  }