@web3auth/no-modal 10.0.0-beta.0 → 10.0.0-beta.10

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 (325) hide show
  1. package/dist/lib.cjs/base/connector/baseConnector.js +3 -1
  2. package/dist/lib.cjs/base/connector/constants.js +3 -6
  3. package/dist/lib.cjs/base/constants.js +26 -0
  4. package/dist/lib.cjs/base/cookie.js +38 -0
  5. package/dist/lib.cjs/base/deserialize.js +13 -0
  6. package/dist/lib.cjs/base/errors/index.js +3 -22
  7. package/dist/lib.cjs/base/loglevel.js +3 -0
  8. package/dist/lib.cjs/base/utils.js +50 -7
  9. package/dist/lib.cjs/base/wallet/index.js +4 -5
  10. package/dist/lib.cjs/connectors/auth-connector/authConnector.js +64 -21
  11. package/dist/lib.cjs/connectors/base-evm-connector/baseEvmConnector.js +1 -1
  12. package/dist/lib.cjs/connectors/base-solana-connector/baseSolanaConnector.js +1 -1
  13. package/dist/lib.cjs/connectors/coinbase-connector/coinbaseConnector.js +14 -6
  14. package/dist/lib.cjs/connectors/coinbase-connector/index.js +7 -0
  15. package/dist/lib.cjs/connectors/injected-evm-connector/injectedEvmConnector.js +10 -4
  16. package/dist/lib.cjs/connectors/injected-solana-connector/walletStandardConnector.js +9 -5
  17. package/dist/lib.cjs/connectors/metamask-connector/metamaskConnector.js +44 -16
  18. package/dist/lib.cjs/connectors/utils.js +10 -0
  19. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +1 -1
  20. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/config.js +7 -2
  21. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +7 -3
  22. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Utils.js +1 -1
  23. package/dist/lib.cjs/index.js +44 -32
  24. package/dist/lib.cjs/noModal.js +200 -72
  25. package/dist/lib.cjs/plugins/nft-checkout-plugin/plugin.js +3 -3
  26. package/dist/lib.cjs/plugins/wallet-services-plugin/plugin.js +2 -2
  27. package/dist/lib.cjs/providers/account-abstraction-provider/index.js +5 -0
  28. package/dist/lib.cjs/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +30 -3
  29. package/dist/lib.cjs/providers/account-abstraction-provider/providers/utils.js +1 -1
  30. package/dist/lib.cjs/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +25 -3
  31. package/dist/lib.cjs/providers/base-provider/baseProvider.js +2 -0
  32. package/dist/lib.cjs/providers/ethereum-mpc-provider/index.js +7 -0
  33. package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +1 -1
  34. package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +1 -1
  35. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +1 -1
  36. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +1 -1
  37. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +1 -1
  38. package/dist/lib.cjs/providers/xrpl-provider/index.js +9 -0
  39. package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +1 -1
  40. package/dist/lib.cjs/react/Web3AuthProvider.js +19 -0
  41. package/dist/lib.cjs/react/{wallet-services-plugin/WalletServicesContext.js → context/WalletServicesInnerContext.js} +19 -34
  42. package/dist/lib.cjs/react/{no-modal → context}/Web3AuthInnerContext.js +38 -96
  43. package/dist/lib.cjs/react/hooks/useCheckout.js +45 -0
  44. package/dist/lib.cjs/react/hooks/useEnableMFA.js +30 -0
  45. package/dist/lib.cjs/react/hooks/useIdentityToken.js +42 -0
  46. package/dist/lib.cjs/react/hooks/useManageMFA.js +30 -0
  47. package/dist/lib.cjs/react/hooks/useSwap.js +45 -0
  48. package/dist/lib.cjs/react/hooks/useSwitchChain.js +32 -0
  49. package/dist/lib.cjs/react/hooks/useWalletConnectScanner.js +45 -0
  50. package/dist/lib.cjs/react/hooks/useWalletServicesPlugin.js +19 -0
  51. package/dist/lib.cjs/react/hooks/useWalletUI.js +45 -0
  52. package/dist/lib.cjs/react/hooks/useWeb3Auth.js +28 -0
  53. package/dist/lib.cjs/react/hooks/useWeb3AuthConnect.js +48 -0
  54. package/dist/lib.cjs/react/hooks/useWeb3AuthDisconnect.js +30 -0
  55. package/dist/lib.cjs/react/{no-modal/hooks/useWeb3Auth.js → hooks/useWeb3AuthInner.js} +9 -9
  56. package/dist/lib.cjs/react/hooks/useWeb3AuthUser.js +50 -0
  57. package/dist/lib.cjs/react/index.js +26 -9
  58. package/dist/lib.cjs/react/solana/hooks/useSignAndSendTransaction.js +35 -0
  59. package/dist/lib.cjs/react/solana/hooks/useSignMessage.js +36 -0
  60. package/dist/lib.cjs/react/solana/hooks/useSignTransaction.js +34 -0
  61. package/dist/lib.cjs/react/solana/hooks/useSolanaWallet.js +62 -0
  62. package/dist/lib.cjs/react/solana/index.js +13 -0
  63. package/dist/lib.cjs/react/wagmi/constants.js +16 -0
  64. package/dist/lib.cjs/react/wagmi/index.js +7 -0
  65. package/dist/lib.cjs/react/wagmi/provider.js +189 -0
  66. package/dist/lib.cjs/types/base/connector/baseConnector.d.ts +5 -5
  67. package/dist/lib.cjs/types/base/connector/constants.d.ts +2 -4
  68. package/dist/lib.cjs/types/base/connector/interfaces.d.ts +34 -17
  69. package/dist/lib.cjs/types/base/constants.d.ts +18 -0
  70. package/dist/lib.cjs/types/base/cookie.d.ts +10 -0
  71. package/dist/lib.cjs/types/base/core/IWeb3Auth.d.ts +40 -12
  72. package/dist/lib.cjs/types/base/deserialize.d.ts +3 -0
  73. package/dist/lib.cjs/types/base/errors/index.d.ts +1 -2
  74. package/dist/lib.cjs/types/base/hooks/index.d.ts +3 -23
  75. package/dist/lib.cjs/types/base/index.d.ts +2 -1
  76. package/dist/lib.cjs/types/base/interfaces.d.ts +13 -6
  77. package/dist/lib.cjs/types/base/loglevel.d.ts +2 -1
  78. package/dist/lib.cjs/types/base/plugin/IPlugin.d.ts +1 -1
  79. package/dist/lib.cjs/types/base/utils.d.ts +14 -2
  80. package/dist/lib.cjs/types/base/wallet/index.d.ts +18 -17
  81. package/dist/lib.cjs/types/connectors/auth-connector/authConnector.d.ts +5 -6
  82. package/dist/lib.cjs/types/connectors/auth-connector/interface.d.ts +4 -3
  83. package/dist/lib.cjs/types/connectors/coinbase-connector/coinbaseConnector.d.ts +1 -1
  84. package/dist/lib.cjs/types/connectors/index.d.ts +1 -1
  85. package/dist/lib.cjs/types/connectors/injected-evm-connector/injectedEvmConnector.d.ts +1 -0
  86. package/dist/lib.cjs/types/connectors/metamask-connector/index.d.ts +1 -1
  87. package/dist/lib.cjs/types/connectors/metamask-connector/metamaskConnector.d.ts +2 -2
  88. package/dist/lib.cjs/types/connectors/utils.d.ts +8 -0
  89. package/dist/lib.cjs/types/noModal.d.ts +20 -9
  90. package/dist/lib.cjs/types/plugins/nft-checkout-plugin/plugin.d.ts +2 -2
  91. package/dist/lib.cjs/types/plugins/wallet-services-plugin/plugin.d.ts +2 -2
  92. package/dist/lib.cjs/types/providers/account-abstraction-provider/providers/AccountAbstractionProvider.d.ts +3 -2
  93. package/dist/lib.cjs/types/providers/account-abstraction-provider/providers/smartAccounts/index.d.ts +1 -1
  94. package/dist/lib.cjs/types/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.d.ts +4 -1
  95. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.d.ts +1 -1
  96. package/dist/lib.cjs/types/providers/index.d.ts +0 -2
  97. package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.d.ts +1 -1
  98. package/dist/lib.cjs/types/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.d.ts +1 -1
  99. package/dist/lib.cjs/types/react/context/WalletServicesInnerContext.d.ts +6 -0
  100. package/dist/lib.cjs/types/react/{no-modal → context}/Web3AuthInnerContext.d.ts +1 -1
  101. package/dist/lib.cjs/types/react/hooks/index.d.ts +13 -0
  102. package/dist/lib.cjs/types/react/hooks/useCheckout.d.ts +8 -0
  103. package/dist/lib.cjs/types/react/hooks/useEnableMFA.d.ts +7 -0
  104. package/dist/lib.cjs/types/react/hooks/useIdentityToken.d.ts +13 -0
  105. package/dist/lib.cjs/types/react/hooks/useManageMFA.d.ts +7 -0
  106. package/dist/lib.cjs/types/react/hooks/useSwap.d.ts +8 -0
  107. package/dist/lib.cjs/types/react/hooks/useSwitchChain.d.ts +7 -0
  108. package/dist/lib.cjs/types/react/hooks/useWalletConnectScanner.d.ts +8 -0
  109. package/dist/lib.cjs/types/react/hooks/useWalletUI.d.ts +8 -0
  110. package/dist/lib.cjs/types/react/hooks/useWeb3Auth.d.ts +3 -0
  111. package/dist/lib.cjs/types/react/hooks/useWeb3AuthConnect.d.ts +9 -0
  112. package/dist/lib.cjs/types/react/hooks/useWeb3AuthDisconnect.d.ts +9 -0
  113. package/dist/lib.cjs/types/react/hooks/useWeb3AuthInner.d.ts +2 -0
  114. package/dist/lib.cjs/types/react/hooks/useWeb3AuthUser.d.ts +9 -0
  115. package/dist/lib.cjs/types/react/index.d.ts +3 -2
  116. package/dist/lib.cjs/types/react/interfaces.d.ts +21 -0
  117. package/dist/lib.cjs/types/react/solana/hooks/index.d.ts +4 -0
  118. package/dist/lib.cjs/types/react/solana/hooks/useSignAndSendTransaction.d.ts +9 -0
  119. package/dist/lib.cjs/types/react/solana/hooks/useSignMessage.d.ts +8 -0
  120. package/dist/lib.cjs/types/react/solana/hooks/useSignTransaction.d.ts +14 -0
  121. package/dist/lib.cjs/types/react/solana/hooks/useSolanaWallet.d.ts +8 -0
  122. package/dist/lib.cjs/types/react/solana/index.d.ts +1 -0
  123. package/dist/lib.cjs/types/react/wagmi/constants.d.ts +43 -0
  124. package/dist/lib.cjs/types/react/wagmi/index.d.ts +1 -0
  125. package/dist/lib.cjs/types/react/wagmi/interface.d.ts +4 -0
  126. package/dist/lib.cjs/types/react/wagmi/provider.d.ts +3 -0
  127. package/dist/lib.cjs/types/vue/WalletServicesInnerProvider.d.ts +1 -0
  128. package/dist/lib.cjs/types/vue/composables/index.d.ts +13 -0
  129. package/dist/lib.cjs/types/vue/composables/useCheckout.d.ts +9 -0
  130. package/dist/lib.cjs/types/vue/composables/useEnableMFA.d.ts +8 -0
  131. package/dist/lib.cjs/types/vue/composables/useIdentityToken.d.ts +9 -0
  132. package/dist/lib.cjs/types/vue/composables/useManageMFA.d.ts +8 -0
  133. package/dist/lib.cjs/types/vue/composables/useSwap.d.ts +9 -0
  134. package/dist/lib.cjs/types/vue/composables/useSwitchChain.d.ts +10 -0
  135. package/dist/lib.cjs/types/vue/composables/useWalletConnectScanner.d.ts +9 -0
  136. package/dist/lib.cjs/types/vue/composables/useWalletServicesPlugin.d.ts +2 -0
  137. package/dist/lib.cjs/types/vue/composables/useWalletUI.d.ts +9 -0
  138. package/dist/lib.cjs/types/vue/composables/useWeb3Auth.d.ts +3 -0
  139. package/dist/lib.cjs/types/vue/composables/useWeb3AuthConnect.d.ts +10 -0
  140. package/dist/lib.cjs/types/vue/composables/useWeb3AuthDisconnect.d.ts +10 -0
  141. package/dist/lib.cjs/types/vue/composables/useWeb3AuthInner.d.ts +2 -0
  142. package/dist/lib.cjs/types/vue/composables/useWeb3AuthUser.d.ts +10 -0
  143. package/dist/lib.cjs/types/vue/{wallet-services-plugin/context.d.ts → context/WalletServicesContext.d.ts} +2 -2
  144. package/dist/lib.cjs/types/vue/context/index.d.ts +1 -0
  145. package/dist/lib.cjs/types/vue/index.d.ts +4 -2
  146. package/dist/lib.cjs/types/vue/interfaces.d.ts +30 -0
  147. package/dist/lib.cjs/types/vue/solana/composables/index.d.ts +4 -0
  148. package/dist/lib.cjs/types/vue/solana/composables/useSignAndSendTransaction.d.ts +10 -0
  149. package/dist/lib.cjs/types/vue/solana/composables/useSignMessage.d.ts +9 -0
  150. package/dist/lib.cjs/types/vue/solana/composables/useSignTransaction.d.ts +10 -0
  151. package/dist/lib.cjs/types/vue/solana/composables/useSolanaWallet.d.ts +9 -0
  152. package/dist/lib.cjs/types/vue/solana/index.d.ts +1 -0
  153. package/dist/lib.cjs/types/vue/wagmi/constants.d.ts +43 -0
  154. package/dist/lib.cjs/types/vue/wagmi/index.d.ts +2 -0
  155. package/dist/lib.cjs/types/vue/wagmi/interface.d.ts +4 -0
  156. package/dist/lib.cjs/types/vue/wagmi/provider.d.ts +17 -0
  157. package/dist/lib.cjs/vue/{wallet-services-plugin/WalletServicesProvider.js → WalletServicesInnerProvider.js} +26 -43
  158. package/dist/lib.cjs/vue/{no-modal/Web3AuthProvider.js → Web3AuthProvider.js} +45 -86
  159. package/dist/lib.cjs/vue/composables/useCheckout.js +45 -0
  160. package/dist/lib.cjs/vue/composables/useEnableMFA.js +43 -0
  161. package/dist/lib.cjs/vue/composables/useIdentityToken.js +55 -0
  162. package/dist/lib.cjs/vue/composables/useManageMFA.js +43 -0
  163. package/dist/lib.cjs/vue/composables/useSwap.js +45 -0
  164. package/dist/lib.cjs/vue/composables/useSwitchChain.js +43 -0
  165. package/dist/lib.cjs/vue/composables/useWalletConnectScanner.js +45 -0
  166. package/dist/lib.cjs/vue/composables/useWalletServicesPlugin.js +12 -0
  167. package/dist/lib.cjs/vue/composables/useWalletUI.js +45 -0
  168. package/dist/lib.cjs/vue/composables/useWeb3Auth.js +28 -0
  169. package/dist/lib.cjs/vue/composables/useWeb3AuthConnect.js +61 -0
  170. package/dist/lib.cjs/vue/composables/useWeb3AuthDisconnect.js +43 -0
  171. package/dist/lib.cjs/vue/{no-modal/composables/useWeb3Auth.js → composables/useWeb3AuthInner.js} +9 -9
  172. package/dist/lib.cjs/vue/composables/useWeb3AuthUser.js +64 -0
  173. package/dist/lib.cjs/vue/index.js +28 -8
  174. package/dist/lib.cjs/vue/solana/composables/useSignAndSendTransaction.js +36 -0
  175. package/dist/lib.cjs/vue/solana/composables/useSignMessage.js +38 -0
  176. package/dist/lib.cjs/vue/solana/composables/useSignTransaction.js +36 -0
  177. package/dist/lib.cjs/vue/solana/composables/useSolanaWallet.js +64 -0
  178. package/dist/lib.cjs/vue/solana/index.js +13 -0
  179. package/dist/lib.cjs/vue/wagmi/constants.js +16 -0
  180. package/dist/lib.cjs/vue/wagmi/index.js +7 -0
  181. package/dist/lib.cjs/vue/wagmi/provider.js +244 -0
  182. package/dist/lib.esm/base/connector/baseConnector.js +7 -1
  183. package/dist/lib.esm/base/connector/constants.js +4 -6
  184. package/dist/lib.esm/base/constants.js +20 -0
  185. package/dist/lib.esm/base/cookie.js +34 -0
  186. package/dist/lib.esm/base/deserialize.js +11 -0
  187. package/dist/lib.esm/base/errors/index.js +14 -22
  188. package/dist/lib.esm/base/loglevel.js +3 -0
  189. package/dist/lib.esm/base/plugin/errors.js +2 -0
  190. package/dist/lib.esm/base/utils.js +53 -13
  191. package/dist/lib.esm/base/wallet/index.js +4 -5
  192. package/dist/lib.esm/connectors/auth-connector/authConnector.js +84 -31
  193. package/dist/lib.esm/connectors/base-evm-connector/baseEvmConnector.js +2 -9
  194. package/dist/lib.esm/connectors/base-solana-connector/baseSolanaConnector.js +1 -8
  195. package/dist/lib.esm/connectors/coinbase-connector/coinbaseConnector.js +16 -15
  196. package/dist/lib.esm/connectors/coinbase-connector/index.js +1 -0
  197. package/dist/lib.esm/connectors/injected-evm-connector/injectedEvmConnector.js +13 -12
  198. package/dist/lib.esm/connectors/injected-solana-connector/walletStandardConnector.js +14 -17
  199. package/dist/lib.esm/connectors/metamask-connector/metamaskConnector.js +52 -27
  200. package/dist/lib.esm/connectors/utils.js +14 -1
  201. package/dist/lib.esm/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +8 -25
  202. package/dist/lib.esm/connectors/wallet-connect-v2-connector/config.js +20 -25
  203. package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +15 -15
  204. package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Utils.js +1 -11
  205. package/dist/lib.esm/index.js +14 -16
  206. package/dist/lib.esm/noModal.js +223 -79
  207. package/dist/lib.esm/plugins/nft-checkout-plugin/embed.js +4 -1
  208. package/dist/lib.esm/plugins/nft-checkout-plugin/plugin.js +4 -10
  209. package/dist/lib.esm/plugins/wallet-services-plugin/plugin.js +7 -9
  210. package/dist/lib.esm/providers/account-abstraction-provider/index.js +2 -2
  211. package/dist/lib.esm/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +38 -21
  212. package/dist/lib.esm/providers/account-abstraction-provider/providers/utils.js +0 -10
  213. package/dist/lib.esm/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +26 -3
  214. package/dist/lib.esm/providers/base-provider/baseProvider.js +7 -9
  215. package/dist/lib.esm/providers/base-provider/utils.js +3 -3
  216. package/dist/lib.esm/providers/ethereum-mpc-provider/index.js +1 -0
  217. package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +5 -18
  218. package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +3 -13
  219. package/dist/lib.esm/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +1 -0
  220. package/dist/lib.esm/providers/ethereum-provider/providers/converter.js +1 -0
  221. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +10 -11
  222. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +3 -3
  223. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +1 -0
  224. package/dist/lib.esm/providers/ethereum-provider/rpc/walletMidddleware.js +8 -0
  225. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +2 -15
  226. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +5 -12
  227. package/dist/lib.esm/providers/solana-provider/rpc/solanaRpcMiddlewares.js +1 -1
  228. package/dist/lib.esm/providers/solana-provider/solanaWallet.js +3 -0
  229. package/dist/lib.esm/providers/xrpl-provider/index.js +2 -0
  230. package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +3 -14
  231. package/dist/lib.esm/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +1 -0
  232. package/dist/lib.esm/react/Web3AuthProvider.js +17 -0
  233. package/dist/lib.esm/react/context/WalletServicesInnerContext.js +70 -0
  234. package/dist/lib.esm/react/context/Web3AuthInnerContext.js +129 -0
  235. package/dist/lib.esm/react/hooks/useCheckout.js +32 -0
  236. package/dist/lib.esm/react/hooks/useEnableMFA.js +28 -0
  237. package/dist/lib.esm/react/hooks/useIdentityToken.js +40 -0
  238. package/dist/lib.esm/react/hooks/useManageMFA.js +28 -0
  239. package/dist/lib.esm/react/hooks/useSwap.js +32 -0
  240. package/dist/lib.esm/react/hooks/useSwitchChain.js +30 -0
  241. package/dist/lib.esm/react/hooks/useWalletConnectScanner.js +32 -0
  242. package/dist/lib.esm/react/hooks/useWalletServicesPlugin.js +17 -0
  243. package/dist/lib.esm/react/hooks/useWalletUI.js +32 -0
  244. package/dist/lib.esm/react/hooks/useWeb3Auth.js +26 -0
  245. package/dist/lib.esm/react/hooks/useWeb3AuthConnect.js +46 -0
  246. package/dist/lib.esm/react/hooks/useWeb3AuthDisconnect.js +28 -0
  247. package/dist/lib.esm/react/hooks/useWeb3AuthInner.js +13 -0
  248. package/dist/lib.esm/react/hooks/useWeb3AuthUser.js +48 -0
  249. package/dist/lib.esm/react/index.js +14 -5
  250. package/dist/lib.esm/react/solana/hooks/useSignAndSendTransaction.js +33 -0
  251. package/dist/lib.esm/react/solana/hooks/useSignMessage.js +34 -0
  252. package/dist/lib.esm/react/solana/hooks/useSignTransaction.js +32 -0
  253. package/dist/lib.esm/react/solana/hooks/useSolanaWallet.js +42 -0
  254. package/dist/lib.esm/react/solana/index.js +4 -0
  255. package/dist/lib.esm/react/wagmi/constants.js +14 -0
  256. package/dist/lib.esm/react/wagmi/index.js +1 -0
  257. package/dist/lib.esm/react/wagmi/provider.js +179 -0
  258. package/dist/lib.esm/vue/WalletServicesInnerProvider.js +71 -0
  259. package/dist/lib.esm/vue/Web3AuthProvider.js +154 -0
  260. package/dist/lib.esm/vue/composables/useCheckout.js +32 -0
  261. package/dist/lib.esm/vue/composables/useEnableMFA.js +30 -0
  262. package/dist/lib.esm/vue/composables/useIdentityToken.js +42 -0
  263. package/dist/lib.esm/vue/composables/useManageMFA.js +30 -0
  264. package/dist/lib.esm/vue/composables/useSwap.js +32 -0
  265. package/dist/lib.esm/vue/composables/useSwitchChain.js +30 -0
  266. package/dist/lib.esm/vue/composables/useWalletConnectScanner.js +32 -0
  267. package/dist/lib.esm/vue/composables/useWalletServicesPlugin.js +10 -0
  268. package/dist/lib.esm/vue/composables/useWalletUI.js +32 -0
  269. package/dist/lib.esm/vue/composables/useWeb3Auth.js +26 -0
  270. package/dist/lib.esm/vue/composables/useWeb3AuthConnect.js +48 -0
  271. package/dist/lib.esm/vue/composables/useWeb3AuthDisconnect.js +30 -0
  272. package/dist/lib.esm/vue/composables/useWeb3AuthInner.js +11 -0
  273. package/dist/lib.esm/vue/composables/useWeb3AuthUser.js +51 -0
  274. package/dist/lib.esm/vue/index.js +15 -5
  275. package/dist/lib.esm/vue/solana/composables/useSignAndSendTransaction.js +34 -0
  276. package/dist/lib.esm/vue/solana/composables/useSignMessage.js +36 -0
  277. package/dist/lib.esm/vue/solana/composables/useSignTransaction.js +34 -0
  278. package/dist/lib.esm/vue/solana/composables/useSolanaWallet.js +51 -0
  279. package/dist/lib.esm/vue/solana/index.js +4 -0
  280. package/dist/lib.esm/vue/wagmi/constants.js +14 -0
  281. package/dist/lib.esm/vue/wagmi/index.js +1 -0
  282. package/dist/lib.esm/vue/wagmi/provider.js +237 -0
  283. package/dist/noModal.umd.min.js +1 -1
  284. package/dist/noModal.umd.min.js.LICENSE.txt +0 -26
  285. package/package.json +81 -20
  286. package/dist/lib.cjs/base/chain/config.js +0 -323
  287. package/dist/lib.cjs/react/no-modal/Web3AuthProvider.js +0 -15
  288. package/dist/lib.cjs/react/wallet-services-plugin/WalletServicesProvider.js +0 -16
  289. package/dist/lib.cjs/react/wallet-services-plugin/hooks/useWalletServicesPlugin.js +0 -26
  290. package/dist/lib.cjs/types/base/chain/config.d.ts +0 -5
  291. package/dist/lib.cjs/types/react/no-modal/hooks/index.d.ts +0 -1
  292. package/dist/lib.cjs/types/react/no-modal/hooks/useWeb3Auth.d.ts +0 -2
  293. package/dist/lib.cjs/types/react/no-modal/index.d.ts +0 -3
  294. package/dist/lib.cjs/types/react/no-modal/interfaces.d.ts +0 -15
  295. package/dist/lib.cjs/types/react/wallet-services-plugin/WalletServicesContext.d.ts +0 -7
  296. package/dist/lib.cjs/types/react/wallet-services-plugin/WalletServicesProvider.d.ts +0 -7
  297. package/dist/lib.cjs/types/react/wallet-services-plugin/hooks/index.d.ts +0 -1
  298. package/dist/lib.cjs/types/react/wallet-services-plugin/index.d.ts +0 -4
  299. package/dist/lib.cjs/types/react/wallet-services-plugin/interfaces.d.ts +0 -5
  300. package/dist/lib.cjs/types/vue/no-modal/composables/index.d.ts +0 -1
  301. package/dist/lib.cjs/types/vue/no-modal/composables/useWeb3Auth.d.ts +0 -2
  302. package/dist/lib.cjs/types/vue/no-modal/index.d.ts +0 -3
  303. package/dist/lib.cjs/types/vue/no-modal/interfaces.d.ts +0 -39
  304. package/dist/lib.cjs/types/vue/wallet-services-plugin/WalletServicesProvider.d.ts +0 -1
  305. package/dist/lib.cjs/types/vue/wallet-services-plugin/composables/index.d.ts +0 -1
  306. package/dist/lib.cjs/types/vue/wallet-services-plugin/composables/useWalletServicesPlugin.d.ts +0 -2
  307. package/dist/lib.cjs/types/vue/wallet-services-plugin/index.d.ts +0 -4
  308. package/dist/lib.cjs/types/vue/wallet-services-plugin/interfaces.d.ts +0 -13
  309. package/dist/lib.cjs/vue/wallet-services-plugin/composables/useWalletServicesPlugin.js +0 -24
  310. package/dist/lib.esm/base/chain/config.js +0 -318
  311. package/dist/lib.esm/react/no-modal/Web3AuthInnerContext.js +0 -197
  312. package/dist/lib.esm/react/no-modal/Web3AuthProvider.js +0 -13
  313. package/dist/lib.esm/react/no-modal/hooks/useWeb3Auth.js +0 -24
  314. package/dist/lib.esm/react/wallet-services-plugin/WalletServicesContext.js +0 -95
  315. package/dist/lib.esm/react/wallet-services-plugin/WalletServicesProvider.js +0 -14
  316. package/dist/lib.esm/react/wallet-services-plugin/hooks/useWalletServicesPlugin.js +0 -24
  317. package/dist/lib.esm/vue/no-modal/Web3AuthProvider.js +0 -203
  318. package/dist/lib.esm/vue/no-modal/composables/useWeb3Auth.js +0 -22
  319. package/dist/lib.esm/vue/wallet-services-plugin/WalletServicesProvider.js +0 -96
  320. package/dist/lib.esm/vue/wallet-services-plugin/composables/useWalletServicesPlugin.js +0 -22
  321. /package/dist/lib.cjs/types/react/{no-modal/Web3AuthProvider.d.ts → Web3AuthProvider.d.ts} +0 -0
  322. /package/dist/lib.cjs/types/react/{wallet-services-plugin/hooks → hooks}/useWalletServicesPlugin.d.ts +0 -0
  323. /package/dist/lib.cjs/types/vue/{no-modal/Web3AuthProvider.d.ts → Web3AuthProvider.d.ts} +0 -0
  324. /package/dist/lib.cjs/vue/{wallet-services-plugin/context.js → context/WalletServicesContext.js} +0 -0
  325. /package/dist/lib.esm/vue/{wallet-services-plugin/context.js → context/WalletServicesContext.js} +0 -0
@@ -5,42 +5,53 @@ var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
5
5
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
6
  var auth = require('@web3auth/auth');
7
7
  var deepmerge = require('deepmerge');
8
- var authConnector = require('./connectors/auth-connector/authConnector.js');
9
- var index = require('./base/errors/index.js');
10
8
  var IChainInterface = require('./base/chain/IChainInterface.js');
9
+ var index = require('./base/errors/index.js');
11
10
  var index$1 = require('./base/wallet/index.js');
12
11
  var constants = require('./base/connector/constants.js');
13
12
  var utils$1 = require('./base/connector/utils.js');
13
+ var constants$1 = require('./base/constants.js');
14
+ var cookie = require('./base/cookie.js');
14
15
  var loglevel = require('./base/loglevel.js');
15
16
  require('./base/plugin/errors.js');
16
17
  var IPlugin = require('./base/plugin/IPlugin.js');
17
18
  var utils = require('./base/utils.js');
19
+ var deserialize = require('./base/deserialize.js');
20
+ var authConnector = require('./connectors/auth-connector/authConnector.js');
21
+ var metamaskConnector = require('./connectors/metamask-connector/metamaskConnector.js');
22
+ var plugin = require('./plugins/wallet-services-plugin/plugin.js');
18
23
  var baseControllers = require('@toruslabs/base-controllers');
19
24
  require('./providers/base-provider/utils.js');
20
25
  var CommonJRPCProvider = require('./providers/base-provider/CommonJRPCProvider.js');
21
26
  require('./providers/base-provider/commonPrivateKeyProvider.js');
22
- var metamaskConnector = require('./connectors/metamask-connector/metamaskConnector.js');
23
27
 
24
28
  const _excluded = ["walletScope"];
25
- const CONNECTOR_CACHE_KEY = "Web3Auth-cachedConnector";
26
- const CURRENT_CHAIN_CACHE_KEY = "Web3Auth-currentChain";
27
29
  class Web3AuthNoModal extends auth.SafeEventEmitter {
28
- constructor(options) {
30
+ constructor(options, initialState) {
29
31
  super();
30
32
  _defineProperty(this, "coreOptions", void 0);
31
- _defineProperty(this, "connectedConnectorName", null);
32
33
  _defineProperty(this, "status", constants.CONNECTOR_STATUS.NOT_READY);
33
- _defineProperty(this, "cachedConnector", null);
34
- _defineProperty(this, "currentChainId", void 0);
34
+ _defineProperty(this, "aaProvider", null);
35
35
  _defineProperty(this, "connectors", []);
36
36
  _defineProperty(this, "commonJRPCProvider", null);
37
37
  _defineProperty(this, "plugins", {});
38
- _defineProperty(this, "storage", "localStorage");
38
+ _defineProperty(this, "storage", void 0);
39
+ _defineProperty(this, "state", {
40
+ connectedConnectorName: null,
41
+ cachedConnector: null,
42
+ currentChainId: null,
43
+ idToken: null
44
+ });
45
+ _defineProperty(this, "loginMode", constants$1.LOGIN_MODE.NO_MODAL);
39
46
  if (!options.clientId) throw index.WalletInitializationError.invalidParams("Please provide a valid clientId in constructor");
40
47
  if (options.enableLogging) loglevel.log.enableAll();else loglevel.log.setLevel("error");
41
- if (options.storageType === "session") this.storage = "sessionStorage";
48
+ if (!options.storageType) options.storageType = "local";
42
49
  this.coreOptions = options;
43
- this.currentChainId = options.defaultChainId;
50
+ this.storage = this.getStorageMethod();
51
+ this.loadState(initialState);
52
+ if (this.state.idToken && this.coreOptions.ssr) {
53
+ this.status = constants.CONNECTOR_STATUS.CONNECTED;
54
+ }
44
55
  }
45
56
  get currentChain() {
46
57
  var _this$coreOptions$cha;
@@ -55,44 +66,71 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
55
66
  }
56
67
  return null;
57
68
  }
69
+ get connectedConnectorName() {
70
+ return this.state.connectedConnectorName;
71
+ }
72
+ get cachedConnector() {
73
+ return this.state.cachedConnector;
74
+ }
75
+ get currentChainId() {
76
+ return this.state.currentChainId || this.coreOptions.defaultChainId || this.coreOptions.chains[0].chainId;
77
+ }
58
78
  get connectedConnector() {
59
79
  var _this$currentChain;
60
80
  return this.getConnector(this.connectedConnectorName, (_this$currentChain = this.currentChain) === null || _this$currentChain === void 0 ? void 0 : _this$currentChain.chainNamespace);
61
81
  }
82
+ get accountAbstractionProvider() {
83
+ return this.aaProvider;
84
+ }
62
85
  set provider(_) {
63
86
  throw new Error("Not implemented");
64
87
  }
65
- async init() {
88
+ async init(options) {
89
+ const {
90
+ signal
91
+ } = options || {};
66
92
  // get project config
67
93
  let projectConfig;
68
94
  try {
69
95
  var _this$coreOptions$acc;
70
- 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);
96
+ projectConfig = await utils.fetchProjectConfig({
97
+ clientId: this.coreOptions.clientId,
98
+ web3AuthNetwork: this.coreOptions.web3AuthNetwork,
99
+ aaProvider: (_this$coreOptions$acc = this.coreOptions.accountAbstractionConfig) === null || _this$coreOptions$acc === void 0 ? void 0 : _this$coreOptions$acc.smartAccountType,
100
+ authBuildEnv: this.coreOptions.authBuildEnv
101
+ });
71
102
  } catch (e) {
72
- loglevel.log.error("Failed to fetch project configurations", e);
73
- throw index.WalletInitializationError.notReady("failed to fetch project configurations", e);
103
+ const error = await auth.serializeError(e);
104
+ loglevel.log.error("Failed to fetch project configurations", error);
105
+ throw index.WalletInitializationError.notReady("failed to fetch project configurations", error);
74
106
  }
75
107
  // init config
76
108
  this.initAccountAbstractionConfig(projectConfig);
77
109
  this.initChainsConfig(projectConfig);
78
110
  this.initCachedConnectorAndChainId();
79
111
  // setup common JRPC provider
80
- await this.setupCommonJRPCProvider();
112
+ await utils.withAbort(() => this.setupCommonJRPCProvider(), signal);
81
113
  // initialize connectors
82
114
  this.on(constants.CONNECTOR_EVENTS.CONNECTORS_UPDATED, async ({
83
115
  connectors: newConnectors
84
116
  }) => {
85
- await Promise.all(newConnectors.map(this.setupConnector.bind(this)));
117
+ const onAbortHandler = () => {
118
+ var _this$connectors;
119
+ if (((_this$connectors = this.connectors) === null || _this$connectors === void 0 ? void 0 : _this$connectors.length) > 0) {
120
+ this.cleanup();
121
+ }
122
+ };
123
+ await utils.withAbort(() => Promise.all(newConnectors.map(this.setupConnector.bind(this))), signal, onAbortHandler);
86
124
  // emit connector ready event
87
125
  if (this.status === constants.CONNECTOR_STATUS.NOT_READY) {
88
126
  this.status = constants.CONNECTOR_STATUS.READY;
89
127
  this.emit(constants.CONNECTOR_EVENTS.READY);
90
128
  }
91
129
  });
92
- await this.loadConnectors({
130
+ await utils.withAbort(() => this.loadConnectors({
93
131
  projectConfig
94
- });
95
- await this.initPlugins();
132
+ }), signal);
133
+ await utils.withAbort(() => this.initPlugins(), signal);
96
134
  }
97
135
  // we need to take into account the chainNamespace as for external connectors, same connector name can be used for multiple chain namespaces
98
136
  getConnector(connectorName, chainNamespace) {
@@ -106,10 +144,17 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
106
144
  }) || null;
107
145
  }
108
146
  clearCache() {
109
- if (!utils$1.storageAvailable(this.storage)) return;
110
- window[this.storage].removeItem(CONNECTOR_CACHE_KEY);
111
- window[this.storage].removeItem(CURRENT_CHAIN_CACHE_KEY);
112
- this.cachedConnector = null;
147
+ this.setState({
148
+ connectedConnectorName: null,
149
+ cachedConnector: null,
150
+ currentChainId: null,
151
+ idToken: null
152
+ });
153
+ }
154
+ async cleanup() {
155
+ for (const connector of this.connectors) {
156
+ if (connector.cleanup) await connector.cleanup();
157
+ }
113
158
  }
114
159
  async switchChain(params) {
115
160
  var _this$currentChain2;
@@ -132,11 +177,12 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
132
177
  * Connect to a specific wallet connector
133
178
  * @param connectorName - Key of the wallet connector to use.
134
179
  */
135
- async connectTo(connectorName, loginParams) {
180
+ async connectTo(connectorName, loginParams, loginMode) {
181
+ this.loginMode = loginMode || "no-modal";
136
182
  const connector = this.getConnector(connectorName, loginParams === null || loginParams === void 0 ? void 0 : loginParams.chainNamespace);
137
183
  if (!connector || !this.commonJRPCProvider) throw index.WalletInitializationError.notFound(`Please add wallet connector for ${connectorName} wallet, before connecting`);
138
184
  return new Promise((resolve, reject) => {
139
- this.once(constants.CONNECTOR_EVENTS.CONNECTED, _ => {
185
+ this.once(constants.CONNECTOR_EVENTS.CONNECTED, async _ => {
140
186
  resolve(this.provider);
141
187
  });
142
188
  this.once(constants.CONNECTOR_EVENTS.ERRORED, err => {
@@ -216,6 +262,10 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
216
262
  // if AA is enabled, filter out chains that are not AA-supported
217
263
  if (this.coreOptions.accountAbstractionConfig) {
218
264
  // write a for loop over accountAbstractionConfig.chains and check if the chainId is valid
265
+ if (this.coreOptions.accountAbstractionConfig.chains.length === 0) {
266
+ loglevel.log.error("Please configure chains for smart accounts on dashboard at https://dashboard.web3auth.io");
267
+ throw index.WalletInitializationError.invalidParams("Please configure chains for smart accounts on dashboard at https://dashboard.web3auth.io");
268
+ }
219
269
  for (const chain of this.coreOptions.accountAbstractionConfig.chains) {
220
270
  if (!utils.isHexStrict(chain.chainId)) {
221
271
  loglevel.log.error(`Please provide a valid chainId in accountAbstractionConfig.chains for chain ${chain.chainId}`);
@@ -248,26 +298,38 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
248
298
  }
249
299
  }
250
300
  initAccountAbstractionConfig(projectConfig) {
301
+ var _this$coreOptions$acc2;
251
302
  const isAAEnabled = Boolean(this.coreOptions.accountAbstractionConfig || (projectConfig === null || projectConfig === void 0 ? void 0 : projectConfig.smartAccounts));
252
303
  if (!isAAEnabled) return;
253
- // merge project config with core options, code config take precedence over project config
304
+ // merge smart account config from project config with core options, core options will take precedence over project config
254
305
  const _ref = (projectConfig === null || projectConfig === void 0 ? void 0 : projectConfig.smartAccounts) || {},
255
306
  {
256
307
  walletScope
257
308
  } = _ref,
258
309
  configWithoutWalletScope = _objectWithoutProperties(_ref, _excluded);
259
- this.coreOptions.accountAbstractionConfig = deepmerge(configWithoutWalletScope || {}, this.coreOptions.accountAbstractionConfig || {});
310
+ const aaChainMap = new Map();
311
+ const allAaChains = [...((configWithoutWalletScope === null || configWithoutWalletScope === void 0 ? void 0 : configWithoutWalletScope.chains) || []), ...(((_this$coreOptions$acc2 = this.coreOptions.accountAbstractionConfig) === null || _this$coreOptions$acc2 === void 0 ? void 0 : _this$coreOptions$acc2.chains) || [])];
312
+ for (const chain of allAaChains) {
313
+ const existingChain = aaChainMap.get(chain.chainId);
314
+ if (!existingChain) aaChainMap.set(chain.chainId, chain);else aaChainMap.set(chain.chainId, _objectSpread(_objectSpread({}, existingChain), chain));
315
+ }
316
+ this.coreOptions.accountAbstractionConfig = _objectSpread(_objectSpread({}, deepmerge(configWithoutWalletScope || {}, this.coreOptions.accountAbstractionConfig || {})), {}, {
317
+ chains: Array.from(aaChainMap.values())
318
+ });
260
319
  // determine if we should use AA with external wallet
261
320
  if (this.coreOptions.useAAWithExternalWallet === undefined) {
262
- this.coreOptions.useAAWithExternalWallet = walletScope === constants.SMART_ACCOUNT_WALLET_SCOPE.ALL;
321
+ this.coreOptions.useAAWithExternalWallet = walletScope === constants$1.SMART_ACCOUNT_WALLET_SCOPE.ALL;
263
322
  }
264
323
  }
265
324
  initCachedConnectorAndChainId() {
266
- this.cachedConnector = utils$1.storageAvailable(this.storage) ? window[this.storage].getItem(CONNECTOR_CACHE_KEY) : null;
267
325
  // init chainId using cached chainId if it exists and is valid, otherwise use the defaultChainId or the first chain
268
- const cachedChainId = utils$1.storageAvailable(this.storage) ? window[this.storage].getItem(CURRENT_CHAIN_CACHE_KEY) : null;
326
+ const cachedChainId = this.state.currentChainId;
269
327
  const isCachedChainIdValid = cachedChainId && this.coreOptions.chains.some(chain => chain.chainId === cachedChainId);
270
- this.currentChainId = isCachedChainIdValid ? cachedChainId : this.coreOptions.defaultChainId || this.coreOptions.chains[0].chainId;
328
+ if (this.coreOptions.defaultChainId && !utils.isHexStrict(this.coreOptions.defaultChainId)) throw index.WalletInitializationError.invalidParams("Please provide a valid defaultChainId in constructor");
329
+ const currentChainId = isCachedChainIdValid ? cachedChainId : this.coreOptions.defaultChainId || this.coreOptions.chains[0].chainId;
330
+ this.setState({
331
+ currentChainId
332
+ });
271
333
  }
272
334
  async setupCommonJRPCProvider() {
273
335
  this.commonJRPCProvider = await CommonJRPCProvider.CommonJRPCProvider.getProviderInstance({
@@ -290,7 +352,8 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
290
352
  }
291
353
  }
292
354
  async loadConnectors({
293
- projectConfig
355
+ projectConfig,
356
+ modalMode
294
357
  }) {
295
358
  var _this$coreOptions$mul;
296
359
  // always add auth connector
@@ -303,7 +366,7 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
303
366
  const isExternalWalletEnabled = Boolean(projectConfig.externalWalletAuth);
304
367
  const isMipdEnabled = isExternalWalletEnabled && ((_this$coreOptions$mul = this.coreOptions.multiInjectedProviderDiscovery) !== null && _this$coreOptions$mul !== void 0 ? _this$coreOptions$mul : true);
305
368
  const chainNamespaces = new Set(this.coreOptions.chains.map(chain => chain.chainNamespace));
306
- if (isMipdEnabled) {
369
+ if (isMipdEnabled && utils.isBrowser()) {
307
370
  // Solana chains
308
371
  if (chainNamespaces.has(baseControllers.CHAIN_NAMESPACES.SOLANA)) {
309
372
  const {
@@ -335,9 +398,14 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
335
398
  }
336
399
  }
337
400
  // it's safe to add it here as if there is a MetaMask injected provider, this won't override it
338
- connectorFns.push(metamaskConnector.metaMaskConnector());
401
+ // only set headless to true if modal SDK is used, otherwise just use the modal from native Metamask SDK
402
+ if (utils.isBrowser() && (chainNamespaces.has(baseControllers.CHAIN_NAMESPACES.EIP155) || chainNamespaces.has(baseControllers.CHAIN_NAMESPACES.SOLANA))) {
403
+ connectorFns.push(metamaskConnector.metaMaskConnector(modalMode ? {
404
+ headless: true
405
+ } : undefined));
406
+ }
339
407
  // add WalletConnectV2 connector if external wallets are enabled
340
- if (isExternalWalletEnabled && (chainNamespaces.has(baseControllers.CHAIN_NAMESPACES.SOLANA) || chainNamespaces.has(baseControllers.CHAIN_NAMESPACES.EIP155))) {
408
+ if (utils.isBrowser() && isExternalWalletEnabled && (chainNamespaces.has(baseControllers.CHAIN_NAMESPACES.SOLANA) || chainNamespaces.has(baseControllers.CHAIN_NAMESPACES.EIP155))) {
341
409
  const {
342
410
  walletConnectV2Connector
343
411
  } = await Promise.resolve().then(function () { return require('./connectors/wallet-connect-v2-connector/index.js'); });
@@ -347,7 +415,15 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
347
415
  this.setConnectors(connectors);
348
416
  }
349
417
  async initPlugins() {
350
- const pluginFns = this.coreOptions.plugins || [];
418
+ const {
419
+ chains,
420
+ plugins
421
+ } = this.coreOptions;
422
+ const pluginFns = plugins || [];
423
+ const isWsSupportedChain = chains.some(x => x.chainNamespace === baseControllers.CHAIN_NAMESPACES.EIP155 || x.chainNamespace === baseControllers.CHAIN_NAMESPACES.SOLANA);
424
+ if (isWsSupportedChain) {
425
+ pluginFns.push(plugin.walletServicesPlugin());
426
+ }
351
427
  for (const pluginFn of pluginFns) {
352
428
  const plugin = pluginFn();
353
429
  if (!this.plugins[plugin.name]) this.plugins[plugin.name] = plugin;
@@ -377,50 +453,77 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
377
453
  const {
378
454
  provider
379
455
  } = data;
456
+ // when ssr is enabled, we need to get the idToken from the connector.
457
+ if (this.coreOptions.ssr) {
458
+ try {
459
+ const data = await connector.authenticateUser();
460
+ if (!data.idToken) throw index.WalletLoginError.connectionError("No idToken found");
461
+ this.setState({
462
+ idToken: data.idToken
463
+ });
464
+ } catch (error) {
465
+ loglevel.log.error(error);
466
+ this.status = constants.CONNECTOR_STATUS.ERRORED;
467
+ this.emit(constants.CONNECTOR_EVENTS.ERRORED, error);
468
+ return;
469
+ }
470
+ }
380
471
  let finalProvider = provider.provider || provider;
381
- // setup AA provider for external wallets on EVM chains, no need for app wallet as it uses WS provider which already supports AA
472
+ // setup AA provider if AA is enabled
382
473
  const {
383
474
  accountAbstractionConfig
384
475
  } = this.coreOptions;
385
- const doesAASupportCurrentChain = ((_this$currentChain3 = this.currentChain) === null || _this$currentChain3 === void 0 ? void 0 : _this$currentChain3.chainNamespace) === baseControllers.CHAIN_NAMESPACES.EIP155 && (accountAbstractionConfig === null || accountAbstractionConfig === void 0 || (_accountAbstractionCo = accountAbstractionConfig.chains) === null || _accountAbstractionCo === void 0 ? void 0 : _accountAbstractionCo.some(chain => {
476
+ const isAaSupportedForCurrentChain = ((_this$currentChain3 = this.currentChain) === null || _this$currentChain3 === void 0 ? void 0 : _this$currentChain3.chainNamespace) === baseControllers.CHAIN_NAMESPACES.EIP155 && (accountAbstractionConfig === null || accountAbstractionConfig === void 0 || (_accountAbstractionCo = accountAbstractionConfig.chains) === null || _accountAbstractionCo === void 0 ? void 0 : _accountAbstractionCo.some(chain => {
386
477
  var _this$currentChain4;
387
478
  return chain.chainId === ((_this$currentChain4 = this.currentChain) === null || _this$currentChain4 === void 0 ? void 0 : _this$currentChain4.chainId);
388
479
  }));
389
- const isExternalWalletAndAAEnabled = data.connector !== index$1.WALLET_CONNECTORS.AUTH && this.coreOptions.useAAWithExternalWallet;
390
- if (isExternalWalletAndAAEnabled && doesAASupportCurrentChain) {
480
+ if (isAaSupportedForCurrentChain && (data.connector === index$1.WALLET_CONNECTORS.AUTH || this.coreOptions.useAAWithExternalWallet)) {
391
481
  var _accountAbstractionCo2;
392
- const aaChainIds = new Set((accountAbstractionConfig === null || accountAbstractionConfig === void 0 || (_accountAbstractionCo2 = accountAbstractionConfig.chains) === null || _accountAbstractionCo2 === void 0 ? void 0 : _accountAbstractionCo2.map(chain => chain.chainId)) || []);
393
482
  const {
394
- accountAbstractionProvider
483
+ accountAbstractionProvider,
484
+ toEoaProvider
395
485
  } = await Promise.resolve().then(function () { return require('./providers/account-abstraction-provider/index.js'); });
486
+ // for embedded wallets, we use ws-embed provider which is AA provider, need to derive EOA provider
487
+ const eoaProvider = data.connector === index$1.WALLET_CONNECTORS.AUTH ? await toEoaProvider(provider) : provider;
488
+ const aaChainIds = new Set((accountAbstractionConfig === null || accountAbstractionConfig === void 0 || (_accountAbstractionCo2 = accountAbstractionConfig.chains) === null || _accountAbstractionCo2 === void 0 ? void 0 : _accountAbstractionCo2.map(chain => chain.chainId)) || []);
396
489
  const aaProvider = await accountAbstractionProvider({
397
490
  accountAbstractionConfig,
398
- provider,
491
+ provider: eoaProvider,
399
492
  chain: this.currentChain,
400
493
  chains: this.coreOptions.chains.filter(chain => aaChainIds.has(chain.chainId))
401
494
  });
402
- finalProvider = aaProvider;
495
+ this.aaProvider = aaProvider;
496
+ // if external wallet is used and AA is enabled for external wallets, use AA provider
497
+ // for embedded wallets, we use ws-embed provider which already supports AA
498
+ if (data.connector !== index$1.WALLET_CONNECTORS.AUTH && this.coreOptions.useAAWithExternalWallet) {
499
+ finalProvider = this.aaProvider;
500
+ }
403
501
  }
404
502
  this.commonJRPCProvider.updateProviderEngineProxy(finalProvider);
405
- this.connectedConnectorName = data.connector;
406
- this.status = constants.CONNECTOR_STATUS.CONNECTED;
503
+ this.setState({
504
+ connectedConnectorName: data.connector
505
+ });
407
506
  this.cacheWallet(data.connector);
507
+ this.status = constants.CONNECTOR_STATUS.CONNECTED;
408
508
  loglevel.log.debug("connected", this.status, this.connectedConnectorName);
409
509
  this.connectToPlugins(data);
410
- this.emit(constants.CONNECTOR_EVENTS.CONNECTED, _objectSpread({}, data));
510
+ this.emit(constants.CONNECTOR_EVENTS.CONNECTED, _objectSpread(_objectSpread({}, data), {}, {
511
+ loginMode: this.loginMode
512
+ }));
411
513
  });
412
514
  connector.on(constants.CONNECTOR_EVENTS.DISCONNECTED, async () => {
515
+ // re-setup commonJRPCProvider
516
+ this.commonJRPCProvider.removeAllListeners();
517
+ this.setupCommonJRPCProvider();
413
518
  // get back to ready state for rehydrating.
414
519
  this.status = constants.CONNECTOR_STATUS.READY;
415
- if (utils$1.storageAvailable(this.storage)) {
416
- const cachedConnector = window[this.storage].getItem(CONNECTOR_CACHE_KEY);
417
- if (this.connectedConnectorName === cachedConnector) {
418
- this.clearCache();
419
- }
520
+ const cachedConnector = this.state.cachedConnector;
521
+ if (this.connectedConnectorName === cachedConnector) {
522
+ this.clearCache();
420
523
  }
421
524
  loglevel.log.debug("disconnected", this.status, this.connectedConnectorName);
422
525
  await Promise.all(Object.values(this.plugins).map(async plugin => {
423
- if (!plugin.SUPPORTED_CONNECTORS.includes("all") && !plugin.SUPPORTED_CONNECTORS.includes(connector.name)) return;
526
+ if (!plugin.SUPPORTED_CONNECTORS.includes(connector.name)) return;
424
527
  if (plugin.status !== IPlugin.PLUGIN_STATUS.CONNECTED) return;
425
528
  return plugin.disconnect().catch(error => {
426
529
  // swallow error if connector doesn't supports this plugin.
@@ -431,7 +534,9 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
431
534
  loglevel.log.error(error);
432
535
  });
433
536
  }));
434
- this.connectedConnectorName = null;
537
+ this.setState({
538
+ connectedConnectorName: null
539
+ });
435
540
  this.emit(constants.CONNECTOR_EVENTS.DISCONNECTED);
436
541
  });
437
542
  connector.on(constants.CONNECTOR_EVENTS.CONNECTING, data => {
@@ -445,20 +550,25 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
445
550
  this.emit(constants.CONNECTOR_EVENTS.ERRORED, data);
446
551
  loglevel.log.debug("errored", this.status, this.connectedConnectorName);
447
552
  });
553
+ connector.on(constants.CONNECTOR_EVENTS.REHYDRATION_ERROR, error => {
554
+ this.status = constants.CONNECTOR_STATUS.READY;
555
+ this.clearCache();
556
+ this.emit(constants.CONNECTOR_EVENTS.REHYDRATION_ERROR, error);
557
+ });
448
558
  connector.on(constants.CONNECTOR_EVENTS.CONNECTOR_DATA_UPDATED, data => {
449
559
  loglevel.log.debug("connector data updated", data);
450
560
  this.emit(constants.CONNECTOR_EVENTS.CONNECTOR_DATA_UPDATED, data);
451
561
  });
452
562
  connector.on(constants.CONNECTOR_EVENTS.CACHE_CLEAR, data => {
453
563
  loglevel.log.debug("connector cache clear", data);
454
- if (utils$1.storageAvailable(this.storage)) {
455
- this.clearCache();
456
- }
564
+ this.clearCache();
565
+ });
566
+ connector.on(constants.CONNECTOR_EVENTS.MFA_ENABLED, isMFAEnabled => {
567
+ loglevel.log.debug("mfa enabled", isMFAEnabled);
568
+ this.emit(constants.CONNECTOR_EVENTS.MFA_ENABLED, isMFAEnabled);
457
569
  });
458
570
  }
459
571
  checkInitRequirements() {
460
- if (this.status === constants.CONNECTOR_STATUS.CONNECTING) throw index.WalletInitializationError.notReady("Already pending connection");
461
- if (this.status === constants.CONNECTOR_STATUS.CONNECTED) throw index.WalletInitializationError.notReady("Already connected");
462
572
  if (this.status === constants.CONNECTOR_STATUS.READY) throw index.WalletInitializationError.notReady("Connector is already initialized");
463
573
  }
464
574
  /**
@@ -475,28 +585,24 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
475
585
  return initialChain;
476
586
  }
477
587
  cacheWallet(walletName) {
478
- if (!utils$1.storageAvailable(this.storage)) return;
479
- // TODO: use the key from user + this
480
- window[this.storage].setItem(CONNECTOR_CACHE_KEY, walletName);
481
- this.cachedConnector = walletName;
588
+ this.setState({
589
+ cachedConnector: walletName
590
+ });
482
591
  }
483
592
  setCurrentChain(chainId) {
484
593
  if (chainId === this.currentChainId) return;
485
594
  const newChain = this.coreOptions.chains.find(chain => chain.chainId === chainId);
486
595
  if (!newChain) throw index.WalletInitializationError.invalidParams(`Invalid chainId: ${chainId}`);
487
- this.currentChainId = chainId;
488
- this.cacheCurrentChain(chainId);
489
- }
490
- cacheCurrentChain(chainId) {
491
- if (!utils$1.storageAvailable(this.storage)) return;
492
- window[this.storage].setItem(CURRENT_CHAIN_CACHE_KEY, chainId);
596
+ this.setState({
597
+ currentChainId: chainId
598
+ });
493
599
  }
494
600
  connectToPlugins(data) {
495
601
  Object.values(this.plugins).map(async plugin => {
496
602
  try {
497
603
  var _this$currentChain5;
498
604
  // skip if it's not compatible with the connector
499
- if (!plugin.SUPPORTED_CONNECTORS.includes("all") && !plugin.SUPPORTED_CONNECTORS.includes(data.connector)) return;
605
+ if (!plugin.SUPPORTED_CONNECTORS.includes(data.connector)) return;
500
606
  // skip if it's not compatible with the current chain
501
607
  if (plugin.pluginNamespace !== IPlugin.PLUGIN_NAMESPACES.MULTICHAIN && plugin.pluginNamespace !== ((_this$currentChain5 = this.currentChain) === null || _this$currentChain5 === void 0 ? void 0 : _this$currentChain5.chainNamespace)) return;
502
608
  // skip if it's already connected
@@ -512,6 +618,28 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
512
618
  }
513
619
  });
514
620
  }
621
+ setState(newState) {
622
+ this.state = _objectSpread(_objectSpread({}, this.state), newState);
623
+ this.storage.setItem(constants$1.WEB3AUTH_STATE_STORAGE_KEY, JSON.stringify(this.state));
624
+ }
625
+ loadState(initialState) {
626
+ if (initialState) {
627
+ this.state = initialState;
628
+ return;
629
+ }
630
+ const state = this.storage.getItem(constants$1.WEB3AUTH_STATE_STORAGE_KEY);
631
+ if (!state) return;
632
+ this.state = deserialize.deserialize(state);
633
+ }
634
+ getStorageMethod() {
635
+ if (this.coreOptions.ssr || this.coreOptions.storageType === "cookies") return cookie.cookieStorage({
636
+ expiry: this.coreOptions.sessionTime
637
+ });
638
+ if (this.coreOptions.storageType === "session" && utils$1.storageAvailable("sessionStorage")) return window.sessionStorage;
639
+ if (this.coreOptions.storageType === "local" && utils$1.storageAvailable("localStorage")) return window.localStorage;
640
+ // If no storage is available, use a memory store.
641
+ return new auth.MemoryStore();
642
+ }
515
643
  }
516
644
 
517
645
  exports.Web3AuthNoModal = Web3AuthNoModal;
@@ -2,9 +2,9 @@
2
2
 
3
3
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
4
  var auth = require('@web3auth/auth');
5
- require('../../base/errors/index.js');
6
5
  require('@toruslabs/base-controllers');
7
- require('../../base/wallet/index.js');
6
+ require('../../base/errors/index.js');
7
+ var index = require('../../base/wallet/index.js');
8
8
  var constants = require('../../base/connector/constants.js');
9
9
  require('jwt-decode');
10
10
  require('../../base/loglevel.js');
@@ -19,7 +19,7 @@ class NFTCheckoutPlugin extends auth.SafeEventEmitter {
19
19
  super();
20
20
  _defineProperty(this, "name", IPlugin.EVM_PLUGINS.NFT_CHECKOUT);
21
21
  _defineProperty(this, "status", IPlugin.PLUGIN_STATUS.DISCONNECTED);
22
- _defineProperty(this, "SUPPORTED_CONNECTORS", ["all"]);
22
+ _defineProperty(this, "SUPPORTED_CONNECTORS", Object.values(index.WALLET_CONNECTORS));
23
23
  _defineProperty(this, "pluginNamespace", IPlugin.PLUGIN_NAMESPACES.EIP155);
24
24
  _defineProperty(this, "web3auth", null);
25
25
  _defineProperty(this, "nftCheckoutEmbedInstance", null);
@@ -2,8 +2,8 @@
2
2
 
3
3
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
4
  var auth = require('@web3auth/auth');
5
- require('../../base/errors/index.js');
6
5
  var baseControllers = require('@toruslabs/base-controllers');
6
+ require('../../base/errors/index.js');
7
7
  var index = require('../../base/wallet/index.js');
8
8
  var constants = require('../../base/connector/constants.js');
9
9
  require('jwt-decode');
@@ -20,7 +20,7 @@ class WalletServicesPlugin extends auth.SafeEventEmitter {
20
20
  super(...args);
21
21
  _defineProperty(this, "name", IPlugin.EVM_PLUGINS.WALLET_SERVICES);
22
22
  _defineProperty(this, "status", IPlugin.PLUGIN_STATUS.DISCONNECTED);
23
- _defineProperty(this, "SUPPORTED_CONNECTORS", [index.WALLET_CONNECTORS.AUTH, index.WALLET_CONNECTORS.SFA]);
23
+ _defineProperty(this, "SUPPORTED_CONNECTORS", [index.WALLET_CONNECTORS.AUTH]);
24
24
  _defineProperty(this, "pluginNamespace", IPlugin.PLUGIN_NAMESPACES.MULTICHAIN);
25
25
  _defineProperty(this, "wsEmbedInstance", void 0);
26
26
  _defineProperty(this, "provider", null);
@@ -6,6 +6,7 @@ var ethereumControllers = require('@toruslabs/ethereum-controllers');
6
6
 
7
7
 
8
8
  exports.accountAbstractionProvider = AccountAbstractionProvider.accountAbstractionProvider;
9
+ exports.toEoaProvider = AccountAbstractionProvider.toEoaProvider;
9
10
  Object.defineProperty(exports, "BiconomySmartAccount", {
10
11
  enumerable: true,
11
12
  get: function () { return ethereumControllers.BiconomySmartAccount; }
@@ -14,6 +15,10 @@ Object.defineProperty(exports, "KernelSmartAccount", {
14
15
  enumerable: true,
15
16
  get: function () { return ethereumControllers.KernelSmartAccount; }
16
17
  });
18
+ Object.defineProperty(exports, "MetamaskSmartAccount", {
19
+ enumerable: true,
20
+ get: function () { return ethereumControllers.MetamaskSmartAccount; }
21
+ });
17
22
  Object.defineProperty(exports, "NexusSmartAccount", {
18
23
  enumerable: true,
19
24
  get: function () { return ethereumControllers.NexusSmartAccount; }
@@ -6,8 +6,8 @@ var ethereumControllers = require('@toruslabs/ethereum-controllers');
6
6
  var auth = require('@web3auth/auth');
7
7
  var viem = require('viem');
8
8
  var accountAbstraction = require('viem/account-abstraction');
9
- var index = require('../../../base/errors/index.js');
10
9
  var baseControllers = require('@toruslabs/base-controllers');
10
+ var index = require('../../../base/errors/index.js');
11
11
  require('../../../base/wallet/index.js');
12
12
  require('../../../base/connector/constants.js');
13
13
  require('jwt-decode');
@@ -107,8 +107,16 @@ class AccountAbstractionProvider extends baseProvider.BaseProvider {
107
107
  chain,
108
108
  transport: viem.http(currentChain.rpcTarget)
109
109
  });
110
+ const [eoaAddress] = await eoaProvider.request({
111
+ method: ethereumControllers.METHOD_TYPES.ETH_REQUEST_ACCOUNTS
112
+ });
113
+ const walletClient = viem.createWalletClient({
114
+ account: eoaAddress,
115
+ chain,
116
+ transport: viem.custom(eoaProvider)
117
+ });
110
118
  this._smartAccount = await this.config.smartAccountInit.getSmartAccount({
111
- owner: eoaProvider,
119
+ walletClient,
112
120
  client: this._publicClient
113
121
  });
114
122
  // setup bundler and paymaster
@@ -137,7 +145,7 @@ class AccountAbstractionProvider extends baseProvider.BaseProvider {
137
145
  handlers: providerHandlers
138
146
  });
139
147
  engine.push(aaMiddleware);
140
- const eoaMiddleware = ethRpcMiddlewares.eoaProviderAsMiddleware(eoaProvider);
148
+ const eoaMiddleware = ethRpcMiddlewares.providerAsMiddleware(eoaProvider);
141
149
  engine.push(eoaMiddleware);
142
150
  const provider = auth.providerFromEngine(engine);
143
151
  this.updateProviderEngineProxy(provider);
@@ -228,6 +236,14 @@ const accountAbstractionProvider = async ({
228
236
  smartAccountInit = new TrustSmartAccount(smartAccountConfig);
229
237
  break;
230
238
  }
239
+ case ethereumControllers.SMART_ACCOUNT.METAMASK:
240
+ {
241
+ const {
242
+ MetamaskSmartAccount
243
+ } = await import('@toruslabs/ethereum-controllers');
244
+ smartAccountInit = new MetamaskSmartAccount(smartAccountConfig);
245
+ break;
246
+ }
231
247
  default:
232
248
  throw new Error("Smart account type not supported");
233
249
  }
@@ -239,9 +255,20 @@ const accountAbstractionProvider = async ({
239
255
  smartAccountChainsConfig
240
256
  });
241
257
  };
258
+ const toEoaProvider = async aaProvider => {
259
+ // derive EOA provider from AA provider
260
+ const engine = new auth.JRPCEngine();
261
+ const eoaMiddleware = await ethRpcMiddlewares.createEoaMiddleware({
262
+ aaProvider
263
+ });
264
+ engine.push(eoaMiddleware);
265
+ engine.push(ethRpcMiddlewares.providerAsMiddleware(aaProvider));
266
+ return auth.providerFromEngine(engine);
267
+ };
242
268
 
243
269
  Object.defineProperty(exports, "SMART_ACCOUNT", {
244
270
  enumerable: true,
245
271
  get: function () { return ethereumControllers.SMART_ACCOUNT; }
246
272
  });
247
273
  exports.accountAbstractionProvider = accountAbstractionProvider;
274
+ exports.toEoaProvider = toEoaProvider;
@@ -4,9 +4,9 @@ var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
4
4
  var util = require('@ethereumjs/util');
5
5
  var auth = require('@web3auth/auth');
6
6
  var viem = require('viem');
7
- require('../../../base/errors/index.js');
8
7
  require('@toruslabs/base-controllers');
9
8
  require('@babel/runtime/helpers/defineProperty');
9
+ require('../../../base/errors/index.js');
10
10
  require('../../../base/wallet/index.js');
11
11
  require('../../../base/connector/constants.js');
12
12
  require('jwt-decode');