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