@web3auth/no-modal 10.15.0 → 11.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (321) hide show
  1. package/dist/lib.cjs/base/connector/baseConnector.js +104 -2
  2. package/dist/lib.cjs/base/connector/connectorStatus.js +2 -0
  3. package/dist/lib.cjs/base/connector/constants.js +4 -2
  4. package/dist/lib.cjs/base/connector/utils.js +0 -21
  5. package/dist/lib.cjs/base/constants.js +4 -0
  6. package/dist/lib.cjs/base/cookie.js +6 -20
  7. package/dist/lib.cjs/base/errors/index.js +36 -12
  8. package/dist/lib.cjs/base/utils.js +10 -11
  9. package/dist/lib.cjs/base/wallet/index.js +7 -0
  10. package/dist/lib.cjs/base/wallet/solana.js +83 -0
  11. package/dist/lib.cjs/connectors/auth-connector/authConnector.js +145 -49
  12. package/dist/lib.cjs/connectors/auth-connector/authSolanaWallet.js +187 -0
  13. package/dist/lib.cjs/connectors/base-evm-connector/baseEvmConnector.js +18 -40
  14. package/dist/lib.cjs/connectors/base-solana-connector/baseSolanaConnector.js +30 -56
  15. package/dist/lib.cjs/connectors/coinbase-connector/coinbaseConnector.js +19 -14
  16. package/dist/lib.cjs/connectors/injected-evm-connector/injectedEvmConnector.js +18 -13
  17. package/dist/lib.cjs/connectors/injected-solana-connector/walletStandardConnector.js +24 -36
  18. package/dist/lib.cjs/connectors/metamask-connector/metamaskConnector.js +321 -133
  19. package/dist/lib.cjs/connectors/utils.js +8 -2
  20. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +12 -38
  21. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/config.js +4 -3
  22. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +73 -63
  23. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Utils.js +24 -51
  24. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/wcSolanaWallet.js +144 -0
  25. package/dist/lib.cjs/index.js +36 -71
  26. package/dist/lib.cjs/noModal.js +223 -133
  27. package/dist/lib.cjs/plugins/wallet-services-plugin/plugin.js +23 -39
  28. package/dist/lib.cjs/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +12 -10
  29. package/dist/lib.cjs/providers/account-abstraction-provider/providers/utils.js +8 -6
  30. package/dist/lib.cjs/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +47 -44
  31. package/dist/lib.cjs/providers/base-provider/CommonJRPCProvider.js +1 -3
  32. package/dist/lib.cjs/providers/base-provider/baseProvider.js +4 -2
  33. package/dist/lib.cjs/providers/base-provider/commonPrivateKeyProvider.js +8 -11
  34. package/dist/lib.cjs/providers/base-provider/index.js +0 -1
  35. package/dist/lib.cjs/providers/base-provider/jrpcClient.js +18 -19
  36. package/dist/lib.cjs/providers/base-provider/utils.js +0 -3
  37. package/dist/lib.cjs/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +22 -43
  38. package/dist/lib.cjs/providers/ethereum-provider/rpc/jrpcClient.js +18 -19
  39. package/dist/lib.cjs/providers/ethereum-provider/rpc/walletMiddleware.js +200 -0
  40. package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +9 -18
  41. package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.js +2 -1
  42. package/dist/lib.cjs/providers/xrpl-provider/rpc/JrpcClient.js +19 -26
  43. package/dist/lib.cjs/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +46 -37
  44. package/dist/lib.cjs/react/context/WalletServicesInnerContext.js +2 -69
  45. package/dist/lib.cjs/react/context/Web3AuthInnerContext.js +6 -161
  46. package/dist/lib.cjs/react/context/useWalletServicesContextValue.js +76 -0
  47. package/dist/lib.cjs/react/context/useWeb3AuthInnerContextValue.js +202 -0
  48. package/dist/lib.cjs/react/hooks/{useIdentityToken.js → useAuthTokenInfo.js} +6 -7
  49. package/dist/lib.cjs/react/hooks/useCheckout.js +4 -2
  50. package/dist/lib.cjs/react/hooks/useFunding.js +4 -2
  51. package/dist/lib.cjs/react/hooks/useReceive.js +4 -2
  52. package/dist/lib.cjs/react/hooks/useSwap.js +4 -2
  53. package/dist/lib.cjs/react/hooks/useWalletConnectScanner.js +4 -2
  54. package/dist/lib.cjs/react/hooks/useWalletServicesPlugin.js +3 -10
  55. package/dist/lib.cjs/react/hooks/useWalletUI.js +4 -2
  56. package/dist/lib.cjs/react/hooks/useWeb3Auth.js +1 -22
  57. package/dist/lib.cjs/react/hooks/useWeb3AuthInner.js +4 -2
  58. package/dist/lib.cjs/react/index.js +10 -2
  59. package/dist/lib.cjs/react/solana/hooks/useSignAndSendTransaction.js +22 -4
  60. package/dist/lib.cjs/react/solana/hooks/useSignMessage.js +20 -2
  61. package/dist/lib.cjs/react/solana/hooks/useSignTransaction.js +22 -3
  62. package/dist/lib.cjs/react/solana/hooks/useSolanaWallet.js +34 -51
  63. package/dist/lib.cjs/react/solana/index.js +2 -0
  64. package/dist/lib.cjs/react/solana/provider.js +167 -0
  65. package/dist/lib.cjs/react/wagmi/provider.js +10 -8
  66. package/dist/lib.cjs/types/base/connector/baseConnector.d.ts +21 -5
  67. package/dist/lib.cjs/types/base/connector/connectorStatus.d.ts +1 -0
  68. package/dist/lib.cjs/types/base/connector/constants.d.ts +3 -0
  69. package/dist/lib.cjs/types/base/connector/interfaces.d.ts +23 -12
  70. package/dist/lib.cjs/types/base/connector/utils.d.ts +0 -3
  71. package/dist/lib.cjs/types/base/constants.d.ts +1 -0
  72. package/dist/lib.cjs/types/base/cookie.d.ts +0 -7
  73. package/dist/lib.cjs/types/base/core/IWeb3Auth.d.ts +24 -12
  74. package/dist/lib.cjs/types/base/errors/index.d.ts +2 -3
  75. package/dist/lib.cjs/types/base/hooks/index.d.ts +2 -2
  76. package/dist/lib.cjs/types/base/interfaces.d.ts +5 -1
  77. package/dist/lib.cjs/types/base/utils.d.ts +2 -1
  78. package/dist/lib.cjs/types/base/wallet/index.d.ts +3 -0
  79. package/dist/lib.cjs/types/base/wallet/solana.d.ts +19 -0
  80. package/dist/lib.cjs/types/connectors/auth-connector/authConnector.d.ts +11 -6
  81. package/dist/lib.cjs/types/connectors/auth-connector/authSolanaWallet.d.ts +35 -0
  82. package/dist/lib.cjs/types/connectors/base-evm-connector/baseEvmConnector.d.ts +2 -2
  83. package/dist/lib.cjs/types/connectors/base-solana-connector/baseSolanaConnector.d.ts +2 -2
  84. package/dist/lib.cjs/types/connectors/injected-evm-connector/injectedEvmConnector.d.ts +2 -2
  85. package/dist/lib.cjs/types/connectors/injected-solana-connector/walletStandardConnector.d.ts +10 -7
  86. package/dist/lib.cjs/types/connectors/metamask-connector/metamaskConnector.d.ts +35 -3
  87. package/dist/lib.cjs/types/connectors/utils.d.ts +2 -0
  88. package/dist/lib.cjs/types/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.d.ts +0 -1
  89. package/dist/lib.cjs/types/connectors/wallet-connect-v2-connector/walletConnectV2Utils.d.ts +1 -5
  90. package/dist/lib.cjs/types/connectors/wallet-connect-v2-connector/wcSolanaWallet.d.ts +26 -0
  91. package/dist/lib.cjs/types/noModal.d.ts +12 -8
  92. package/dist/lib.cjs/types/plugins/wallet-services-plugin/plugin.d.ts +1 -4
  93. package/dist/lib.cjs/types/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.d.ts +4 -4
  94. package/dist/lib.cjs/types/providers/base-provider/jrpcClient.d.ts +2 -5
  95. package/dist/lib.cjs/types/providers/base-provider/utils.d.ts +0 -1
  96. package/dist/lib.cjs/types/providers/ethereum-provider/index.d.ts +0 -1
  97. package/dist/lib.cjs/types/providers/ethereum-provider/rpc/ethRpcMiddlewares.d.ts +4 -4
  98. package/dist/lib.cjs/types/providers/ethereum-provider/rpc/index.d.ts +1 -1
  99. package/dist/lib.cjs/types/providers/ethereum-provider/rpc/jrpcClient.d.ts +2 -5
  100. package/dist/lib.cjs/types/providers/ethereum-provider/rpc/walletMiddleware.d.ts +3 -0
  101. package/dist/lib.cjs/types/providers/index.d.ts +0 -1
  102. package/dist/lib.cjs/types/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.d.ts +0 -1
  103. package/dist/lib.cjs/types/providers/xrpl-provider/rpc/JrpcClient.d.ts +3 -7
  104. package/dist/lib.cjs/types/providers/xrpl-provider/rpc/xrplRpcMiddlewares.d.ts +5 -12
  105. package/dist/lib.cjs/types/react/context/index.d.ts +4 -0
  106. package/dist/lib.cjs/types/react/context/useWalletServicesContextValue.d.ts +12 -0
  107. package/dist/lib.cjs/types/react/context/useWeb3AuthInnerContextValue.d.ts +26 -0
  108. package/dist/lib.cjs/types/react/hooks/index.d.ts +1 -1
  109. package/dist/lib.cjs/types/react/hooks/{useIdentityToken.d.ts → useAuthTokenInfo.d.ts} +4 -4
  110. package/dist/lib.cjs/types/react/hooks/useWeb3Auth.d.ts +1 -2
  111. package/dist/lib.cjs/types/react/hooks/useWeb3AuthConnect.d.ts +2 -2
  112. package/dist/lib.cjs/types/react/index.d.ts +1 -0
  113. package/dist/lib.cjs/types/react/solana/hooks/useSignAndSendTransaction.d.ts +7 -2
  114. package/dist/lib.cjs/types/react/solana/hooks/useSignTransaction.d.ts +8 -3
  115. package/dist/lib.cjs/types/react/solana/hooks/useSolanaWallet.d.ts +17 -4
  116. package/dist/lib.cjs/types/react/solana/index.d.ts +1 -0
  117. package/dist/lib.cjs/types/react/solana/provider.d.ts +26 -0
  118. package/dist/lib.cjs/types/vue/composables/index.d.ts +2 -1
  119. package/dist/lib.cjs/types/vue/composables/{useIdentityToken.d.ts → useAuthTokenInfo.d.ts} +3 -3
  120. package/dist/lib.cjs/types/vue/composables/useInjectedWeb3AuthInnerContext.d.ts +1 -0
  121. package/dist/lib.cjs/types/vue/composables/useWeb3Auth.d.ts +1 -2
  122. package/dist/lib.cjs/types/vue/composables/useWeb3AuthConnect.d.ts +2 -2
  123. package/dist/lib.cjs/types/vue/index.d.ts +2 -0
  124. package/dist/lib.cjs/types/vue/interfaces.d.ts +2 -2
  125. package/dist/lib.cjs/types/vue/solana/composables/index.d.ts +1 -0
  126. package/dist/lib.cjs/types/vue/solana/composables/useSignAndSendTransaction.d.ts +7 -2
  127. package/dist/lib.cjs/types/vue/solana/composables/useSignTransaction.d.ts +8 -3
  128. package/dist/lib.cjs/types/vue/solana/composables/useSolanaClient.d.ts +7 -0
  129. package/dist/lib.cjs/types/vue/solana/composables/useSolanaWallet.d.ts +17 -4
  130. package/dist/lib.cjs/types/vue/solana/constants.d.ts +3 -0
  131. package/dist/lib.cjs/types/vue/solana/index.d.ts +2 -0
  132. package/dist/lib.cjs/types/vue/solana/provider.d.ts +8 -0
  133. package/dist/lib.cjs/types/vue/useWalletServicesInnerContextValue.d.ts +13 -0
  134. package/dist/lib.cjs/types/vue/useWeb3AuthInnerContextValue.d.ts +26 -0
  135. package/dist/lib.cjs/types/x402/index.d.ts +43 -0
  136. package/dist/lib.cjs/types/x402/interfaces.d.ts +11 -0
  137. package/dist/lib.cjs/types/x402/react.d.ts +17 -0
  138. package/dist/lib.cjs/types/x402/vue.d.ts +18 -0
  139. package/dist/lib.cjs/vue/WalletServicesInnerProvider.js +9 -54
  140. package/dist/lib.cjs/vue/Web3AuthProvider.js +16 -177
  141. package/dist/lib.cjs/vue/composables/{useIdentityToken.js → useAuthTokenInfo.js} +10 -8
  142. package/dist/lib.cjs/vue/composables/useCheckout.js +4 -2
  143. package/dist/lib.cjs/vue/composables/useEnableMFA.js +4 -2
  144. package/dist/lib.cjs/vue/composables/useFunding.js +4 -2
  145. package/dist/lib.cjs/vue/composables/useInjectedWeb3AuthInnerContext.js +29 -0
  146. package/dist/lib.cjs/vue/composables/useManageMFA.js +4 -2
  147. package/dist/lib.cjs/vue/composables/useReceive.js +4 -2
  148. package/dist/lib.cjs/vue/composables/useSwap.js +4 -2
  149. package/dist/lib.cjs/vue/composables/useSwitchChain.js +4 -2
  150. package/dist/lib.cjs/vue/composables/useWalletConnectScanner.js +4 -2
  151. package/dist/lib.cjs/vue/composables/useWalletUI.js +4 -2
  152. package/dist/lib.cjs/vue/composables/useWeb3Auth.js +1 -26
  153. package/dist/lib.cjs/vue/composables/useWeb3AuthConnect.js +4 -2
  154. package/dist/lib.cjs/vue/composables/useWeb3AuthDisconnect.js +4 -2
  155. package/dist/lib.cjs/vue/composables/useWeb3AuthInner.js +2 -20
  156. package/dist/lib.cjs/vue/composables/useWeb3AuthUser.js +4 -2
  157. package/dist/lib.cjs/vue/index.js +8 -2
  158. package/dist/lib.cjs/vue/solana/composables/useSignAndSendTransaction.js +6 -3
  159. package/dist/lib.cjs/vue/solana/composables/useSignMessage.js +6 -3
  160. package/dist/lib.cjs/vue/solana/composables/useSignTransaction.js +6 -3
  161. package/dist/lib.cjs/vue/solana/composables/useSolanaClient.js +14 -0
  162. package/dist/lib.cjs/vue/solana/composables/useSolanaWallet.js +60 -41
  163. package/dist/lib.cjs/vue/solana/constants.js +5 -0
  164. package/dist/lib.cjs/vue/solana/index.js +6 -0
  165. package/dist/lib.cjs/vue/solana/provider.js +107 -0
  166. package/dist/lib.cjs/vue/useWalletServicesInnerContextValue.js +75 -0
  167. package/dist/lib.cjs/vue/useWeb3AuthInnerContextValue.js +217 -0
  168. package/dist/lib.cjs/vue/wagmi/provider.js +12 -8
  169. package/dist/lib.cjs/x402/index.js +175 -0
  170. package/dist/lib.cjs/x402/interfaces.js +5 -0
  171. package/dist/lib.cjs/x402/react.js +64 -0
  172. package/dist/lib.cjs/x402/vue.js +58 -0
  173. package/dist/lib.esm/base/connector/baseConnector.js +104 -2
  174. package/dist/lib.esm/base/connector/connectorStatus.js +2 -1
  175. package/dist/lib.esm/base/connector/constants.js +4 -2
  176. package/dist/lib.esm/base/connector/utils.js +1 -19
  177. package/dist/lib.esm/base/constants.js +4 -1
  178. package/dist/lib.esm/base/cookie.js +7 -20
  179. package/dist/lib.esm/base/errors/index.js +36 -12
  180. package/dist/lib.esm/base/utils.js +10 -7
  181. package/dist/lib.esm/base/wallet/index.js +2 -1
  182. package/dist/lib.esm/base/wallet/solana.js +81 -0
  183. package/dist/lib.esm/connectors/auth-connector/authConnector.js +143 -50
  184. package/dist/lib.esm/connectors/auth-connector/authSolanaWallet.js +175 -0
  185. package/dist/lib.esm/connectors/base-evm-connector/baseEvmConnector.js +17 -39
  186. package/dist/lib.esm/connectors/base-solana-connector/baseSolanaConnector.js +29 -55
  187. package/dist/lib.esm/connectors/coinbase-connector/coinbaseConnector.js +14 -11
  188. package/dist/lib.esm/connectors/injected-evm-connector/injectedEvmConnector.js +14 -11
  189. package/dist/lib.esm/connectors/injected-solana-connector/walletStandardConnector.js +19 -31
  190. package/dist/lib.esm/connectors/metamask-connector/metamaskConnector.js +335 -132
  191. package/dist/lib.esm/connectors/utils.js +9 -4
  192. package/dist/lib.esm/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +11 -30
  193. package/dist/lib.esm/connectors/wallet-connect-v2-connector/config.js +1 -1
  194. package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +70 -61
  195. package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Utils.js +21 -49
  196. package/dist/lib.esm/connectors/wallet-connect-v2-connector/wcSolanaWallet.js +130 -0
  197. package/dist/lib.esm/index.js +9 -17
  198. package/dist/lib.esm/noModal.js +225 -133
  199. package/dist/lib.esm/plugins/wallet-services-plugin/plugin.js +18 -37
  200. package/dist/lib.esm/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +9 -9
  201. package/dist/lib.esm/providers/account-abstraction-provider/providers/utils.js +3 -3
  202. package/dist/lib.esm/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +48 -45
  203. package/dist/lib.esm/providers/base-provider/CommonJRPCProvider.js +2 -4
  204. package/dist/lib.esm/providers/base-provider/commonPrivateKeyProvider.js +9 -12
  205. package/dist/lib.esm/providers/base-provider/index.js +1 -1
  206. package/dist/lib.esm/providers/base-provider/jrpcClient.js +20 -19
  207. package/dist/lib.esm/providers/base-provider/utils.js +1 -3
  208. package/dist/lib.esm/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +23 -44
  209. package/dist/lib.esm/providers/ethereum-provider/rpc/jrpcClient.js +20 -19
  210. package/dist/lib.esm/providers/ethereum-provider/rpc/walletMiddleware.js +201 -0
  211. package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +6 -17
  212. package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.js +2 -1
  213. package/dist/lib.esm/providers/xrpl-provider/rpc/JrpcClient.js +21 -25
  214. package/dist/lib.esm/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +48 -38
  215. package/dist/lib.esm/react/context/WalletServicesInnerContext.js +3 -57
  216. package/dist/lib.esm/react/context/Web3AuthInnerContext.js +7 -152
  217. package/dist/lib.esm/react/context/useWalletServicesContextValue.js +59 -0
  218. package/dist/lib.esm/react/context/useWeb3AuthInnerContextValue.js +188 -0
  219. package/dist/lib.esm/react/hooks/{useIdentityToken.js → useAuthTokenInfo.js} +6 -7
  220. package/dist/lib.esm/react/hooks/useWalletServicesPlugin.js +3 -10
  221. package/dist/lib.esm/react/hooks/useWeb3Auth.js +1 -22
  222. package/dist/lib.esm/react/index.js +5 -1
  223. package/dist/lib.esm/react/solana/hooks/useSignAndSendTransaction.js +6 -4
  224. package/dist/lib.esm/react/solana/hooks/useSignMessage.js +4 -2
  225. package/dist/lib.esm/react/solana/hooks/useSignTransaction.js +6 -3
  226. package/dist/lib.esm/react/solana/hooks/useSolanaWallet.js +33 -28
  227. package/dist/lib.esm/react/solana/index.js +1 -0
  228. package/dist/lib.esm/react/solana/provider.js +150 -0
  229. package/dist/lib.esm/react/wagmi/provider.js +7 -7
  230. package/dist/lib.esm/vue/WalletServicesInnerProvider.js +4 -54
  231. package/dist/lib.esm/vue/Web3AuthProvider.js +7 -179
  232. package/dist/lib.esm/vue/composables/{useIdentityToken.js → useAuthTokenInfo.js} +6 -6
  233. package/dist/lib.esm/vue/composables/useInjectedWeb3AuthInnerContext.js +11 -0
  234. package/dist/lib.esm/vue/composables/useWeb3Auth.js +1 -26
  235. package/dist/lib.esm/vue/composables/useWeb3AuthInner.js +2 -6
  236. package/dist/lib.esm/vue/index.js +4 -1
  237. package/dist/lib.esm/vue/solana/composables/useSignAndSendTransaction.js +2 -1
  238. package/dist/lib.esm/vue/solana/composables/useSignMessage.js +2 -1
  239. package/dist/lib.esm/vue/solana/composables/useSignTransaction.js +3 -2
  240. package/dist/lib.esm/vue/solana/composables/useSolanaClient.js +12 -0
  241. package/dist/lib.esm/vue/solana/composables/useSolanaWallet.js +53 -35
  242. package/dist/lib.esm/vue/solana/constants.js +3 -0
  243. package/dist/lib.esm/vue/solana/index.js +3 -0
  244. package/dist/lib.esm/vue/solana/provider.js +95 -0
  245. package/dist/lib.esm/vue/useWalletServicesInnerContextValue.js +58 -0
  246. package/dist/lib.esm/vue/useWeb3AuthInnerContextValue.js +204 -0
  247. package/dist/lib.esm/vue/wagmi/provider.js +9 -7
  248. package/dist/lib.esm/x402/index.js +170 -0
  249. package/dist/lib.esm/x402/interfaces.js +3 -0
  250. package/dist/lib.esm/x402/react.js +59 -0
  251. package/dist/lib.esm/x402/vue.js +54 -0
  252. package/package.json +78 -53
  253. package/dist/lib.cjs/providers/ethereum-mpc-provider/index.js +0 -7
  254. package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +0 -224
  255. package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +0 -177
  256. package/dist/lib.cjs/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +0 -21
  257. package/dist/lib.cjs/providers/ethereum-provider/providers/converter.js +0 -88
  258. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.js +0 -27
  259. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +0 -383
  260. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +0 -8
  261. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +0 -93
  262. package/dist/lib.cjs/providers/ethereum-provider/providers/utils.js +0 -29
  263. package/dist/lib.cjs/providers/ethereum-provider/rpc/walletMidddleware.js +0 -251
  264. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +0 -65
  265. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +0 -45
  266. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/utils.js +0 -16
  267. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +0 -103
  268. package/dist/lib.cjs/providers/solana-provider/rpc/JrpcClient.js +0 -47
  269. package/dist/lib.cjs/providers/solana-provider/rpc/solanaRpcMiddlewares.js +0 -97
  270. package/dist/lib.cjs/providers/solana-provider/solanaWallet.js +0 -91
  271. package/dist/lib.cjs/types/connectors/injected-solana-connector/utils.d.ts +0 -3
  272. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/index.d.ts +0 -1
  273. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/providers/index.d.ts +0 -1
  274. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.d.ts +0 -74
  275. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/providers/signingProviders/index.d.ts +0 -1
  276. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.d.ts +0 -12
  277. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.d.ts +0 -3
  278. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/rpc/interfaces.d.ts +0 -15
  279. package/dist/lib.cjs/types/providers/ethereum-provider/providers/converter.d.ts +0 -14
  280. package/dist/lib.cjs/types/providers/ethereum-provider/providers/index.d.ts +0 -1
  281. package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.d.ts +0 -16
  282. package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.d.ts +0 -28
  283. package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/index.d.ts +0 -4
  284. package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.d.ts +0 -46
  285. package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.d.ts +0 -11
  286. package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/index.d.ts +0 -1
  287. package/dist/lib.cjs/types/providers/ethereum-provider/providers/utils.d.ts +0 -5
  288. package/dist/lib.cjs/types/providers/ethereum-provider/rpc/walletMidddleware.d.ts +0 -3
  289. package/dist/lib.cjs/types/providers/solana-provider/index.d.ts +0 -4
  290. package/dist/lib.cjs/types/providers/solana-provider/interface.d.ts +0 -22
  291. package/dist/lib.cjs/types/providers/solana-provider/providers/index.d.ts +0 -1
  292. package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.d.ts +0 -16
  293. package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/base/providerHandlers.d.ts +0 -3
  294. package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/index.d.ts +0 -2
  295. package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/utils.d.ts +0 -3
  296. package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/walletStandardProvider.d.ts +0 -9
  297. package/dist/lib.cjs/types/providers/solana-provider/rpc/JrpcClient.d.ts +0 -9
  298. package/dist/lib.cjs/types/providers/solana-provider/rpc/index.d.ts +0 -3
  299. package/dist/lib.cjs/types/providers/solana-provider/rpc/interfaces.d.ts +0 -27
  300. package/dist/lib.cjs/types/providers/solana-provider/rpc/solanaRpcMiddlewares.d.ts +0 -20
  301. package/dist/lib.cjs/types/providers/solana-provider/solanaWallet.d.ts +0 -29
  302. package/dist/lib.esm/providers/ethereum-mpc-provider/index.js +0 -1
  303. package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +0 -206
  304. package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +0 -163
  305. package/dist/lib.esm/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +0 -20
  306. package/dist/lib.esm/providers/ethereum-provider/providers/converter.js +0 -85
  307. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.js +0 -21
  308. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +0 -378
  309. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +0 -8
  310. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +0 -88
  311. package/dist/lib.esm/providers/ethereum-provider/providers/utils.js +0 -24
  312. package/dist/lib.esm/providers/ethereum-provider/rpc/walletMidddleware.js +0 -258
  313. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +0 -47
  314. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +0 -43
  315. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/utils.js +0 -14
  316. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +0 -91
  317. package/dist/lib.esm/providers/solana-provider/rpc/JrpcClient.js +0 -42
  318. package/dist/lib.esm/providers/solana-provider/rpc/solanaRpcMiddlewares.js +0 -89
  319. package/dist/lib.esm/providers/solana-provider/solanaWallet.js +0 -92
  320. package/dist/noModal.umd.min.js +0 -2
  321. package/dist/noModal.umd.min.js.LICENSE.txt +0 -48
@@ -4,22 +4,23 @@ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProp
4
4
  var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
5
5
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
6
  var baseControllers = require('@toruslabs/base-controllers');
7
+ var ethereumControllers = require('@toruslabs/ethereum-controllers');
7
8
  var auth = require('@web3auth/auth');
8
9
  var deepmerge = require('deepmerge');
9
10
  var analytics = require('./base/analytics.js');
10
11
  var IChainInterface = require('./base/chain/IChainInterface.js');
12
+ require('@toruslabs/session-manager');
11
13
  var index = require('./base/errors/index.js');
14
+ var loglevel = require('./base/loglevel.js');
15
+ var utils = require('./base/utils.js');
12
16
  var index$1 = require('./base/wallet/index.js');
13
17
  var connectorStatus = require('./base/connector/connectorStatus.js');
14
18
  var constants = require('./base/connector/constants.js');
15
19
  var utils$1 = require('./base/connector/utils.js');
16
20
  var constants$1 = require('./base/constants.js');
17
- var cookie = require('./base/cookie.js');
18
- var loglevel = require('./base/loglevel.js');
21
+ var deserialize = require('./base/deserialize.js');
19
22
  require('./base/plugin/errors.js');
20
23
  var IPlugin = require('./base/plugin/IPlugin.js');
21
- var utils = require('./base/utils.js');
22
- var deserialize = require('./base/deserialize.js');
23
24
  var authConnector = require('./connectors/auth-connector/authConnector.js');
24
25
  var metamaskConnector = require('./connectors/metamask-connector/metamaskConnector.js');
25
26
  var plugin = require('./plugins/wallet-services-plugin/plugin.js');
@@ -27,39 +28,45 @@ require('./providers/base-provider/utils.js');
27
28
  var CommonJRPCProvider = require('./providers/base-provider/CommonJRPCProvider.js');
28
29
  require('./providers/base-provider/commonPrivateKeyProvider.js');
29
30
 
30
- const _excluded = ["walletScope"];
31
+ const _excluded = ["walletScope", "eipStandard"];
31
32
  class Web3AuthNoModal extends auth.SafeEventEmitter {
32
33
  constructor(options, initialState) {
33
34
  super();
34
35
  _defineProperty(this, "coreOptions", void 0);
35
36
  _defineProperty(this, "status", constants.CONNECTOR_STATUS.NOT_READY);
37
+ _defineProperty(this, "loginMode", constants$1.LOGIN_MODE.NO_MODAL);
36
38
  _defineProperty(this, "aaProvider", null);
37
39
  _defineProperty(this, "connectors", []);
38
40
  _defineProperty(this, "commonJRPCProvider", null);
39
41
  _defineProperty(this, "analytics", void 0);
40
42
  _defineProperty(this, "plugins", {});
43
+ _defineProperty(this, "consentRequired", false);
41
44
  _defineProperty(this, "storage", void 0);
45
+ _defineProperty(this, "currentConnection", null);
46
+ _defineProperty(this, "currentConnectionReconnected", false);
42
47
  _defineProperty(this, "state", {
43
48
  connectedConnectorName: null,
44
49
  cachedConnector: null,
45
50
  currentChainId: null,
46
- idToken: null
51
+ idToken: null,
52
+ accessToken: null,
53
+ refreshToken: null
47
54
  });
48
- _defineProperty(this, "loginMode", constants$1.LOGIN_MODE.NO_MODAL);
49
55
  if (!options.clientId) throw index.WalletInitializationError.invalidParams("Please provide a valid clientId in constructor");
50
56
  if (options.enableLogging) loglevel.log.enableAll();else loglevel.log.setLevel("error");
51
- if (!options.storageType) options.storageType = "local";
57
+ if (!options.initialAuthenticationMode) options.initialAuthenticationMode = constants.CONNECTOR_INITIAL_AUTHENTICATION_MODE.CONNECT_AND_SIGN;
52
58
  this.coreOptions = options;
53
59
  this.storage = this.getStorageMethod();
54
60
  this.analytics = new analytics.Analytics();
55
61
  this.analytics.setGlobalProperties({
56
62
  integration_type: analytics.ANALYTICS_INTEGRATION_TYPE.NATIVE_SDK
57
63
  });
58
- this.loadState(initialState);
59
- if (this.state.idToken && this.coreOptions.ssr) {
60
- // connect-only is the default authentication mode, so we need to set the status to connected if the idToken is present and ssr is enabled
61
- this.status = this.coreOptions.initialAuthenticationMode === constants.CONNECTOR_INITIAL_AUTHENTICATION_MODE.CONNECT_AND_SIGN ? constants.CONNECTOR_STATUS.AUTHORIZED : constants.CONNECTOR_STATUS.CONNECTED;
62
- }
64
+ this.loadState(initialState).then(() => {
65
+ if (this.state.idToken && this.coreOptions.ssr && !this.consentRequired) {
66
+ this.status = this.coreOptions.initialAuthenticationMode === constants.CONNECTOR_INITIAL_AUTHENTICATION_MODE.CONNECT_AND_SIGN ? constants.CONNECTOR_STATUS.AUTHORIZED : constants.CONNECTOR_STATUS.CONNECTED;
67
+ }
68
+ return undefined;
69
+ }).catch(() => {});
63
70
  }
64
71
  get currentChain() {
65
72
  var _this$coreOptions$cha;
@@ -69,11 +76,8 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
69
76
  get connected() {
70
77
  return Boolean(this.connectedConnector);
71
78
  }
72
- get provider() {
73
- if (this.status !== constants.CONNECTOR_STATUS.NOT_READY && this.commonJRPCProvider) {
74
- return this.commonJRPCProvider;
75
- }
76
- return null;
79
+ get connection() {
80
+ return this.currentConnection;
77
81
  }
78
82
  get connectedConnectorName() {
79
83
  return this.state.connectedConnectorName;
@@ -138,7 +142,7 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
138
142
  // init config
139
143
  this.initAccountAbstractionConfig(projectConfig);
140
144
  this.initChainsConfig(projectConfig);
141
- this.initCachedConnectorAndChainId();
145
+ await this.initCachedConnectorAndChainId();
142
146
  this.initUIConfig(projectConfig);
143
147
  this.initWalletServicesConfig(projectConfig);
144
148
  this.initSessionTimeConfig(projectConfig);
@@ -200,12 +204,15 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
200
204
  return true;
201
205
  }) || null;
202
206
  }
203
- clearCache() {
204
- this.setState({
207
+ async clearCache() {
208
+ await this.setState({
205
209
  connectedConnectorName: null,
206
210
  cachedConnector: null,
207
211
  currentChainId: null,
208
- idToken: null
212
+ idToken: null,
213
+ accessToken: null,
214
+ refreshToken: null,
215
+ hasUserConsent: undefined
209
216
  });
210
217
  }
211
218
  async cleanup() {
@@ -219,6 +226,12 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
219
226
  const newChainConfig = this.coreOptions.chains.find(x => x.chainId === params.chainId);
220
227
  if (!newChainConfig) throw index.WalletInitializationError.invalidParams("Invalid chainId");
221
228
  if (connectorStatus.CONNECTED_STATUSES.includes(this.status) && this.connectedConnector) {
229
+ var _this$currentChain3;
230
+ // Single-namespace connectors cannot cross namespace boundaries — MULTICHAIN connectors
231
+ // (Auth, WC) enforce their own switchChain policy internally.
232
+ if (this.connectedConnector.connectorNamespace !== IChainInterface.CONNECTOR_NAMESPACES.MULTICHAIN && ((_this$currentChain3 = this.currentChain) === null || _this$currentChain3 === void 0 ? void 0 : _this$currentChain3.chainNamespace) !== newChainConfig.chainNamespace) {
233
+ throw index.WalletLoginError.connectionError(`Cannot switch between chain namespaces with ${this.connectedConnector.name}. Disconnect and reconnect with the target chain.`);
234
+ }
222
235
  await this.connectedConnector.switchChain(params);
223
236
  return;
224
237
  }
@@ -239,7 +252,7 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
239
252
  const initialChain = this.getInitialChainIdForConnector(connector);
240
253
  const finalLoginParams = _objectSpread(_objectSpread({}, loginParams), {}, {
241
254
  chainId: initialChain.chainId,
242
- getIdentityToken: this.coreOptions.initialAuthenticationMode === constants.CONNECTOR_INITIAL_AUTHENTICATION_MODE.CONNECT_AND_SIGN
255
+ getAuthTokenInfo: this.coreOptions.initialAuthenticationMode === constants.CONNECTOR_INITIAL_AUTHENTICATION_MODE.CONNECT_AND_SIGN
243
256
  });
244
257
  // track connection started event
245
258
  const startTime = Date.now();
@@ -293,15 +306,12 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
293
306
  };
294
307
  const checkCompletion = async () => {
295
308
  // In CONNECT_AND_SIGN mode, wait for both connected event and authorized event
296
- if (finalLoginParams.getIdentityToken) {
309
+ if (finalLoginParams.getAuthTokenInfo) {
297
310
  if (connectedEventCompleted && authorizedEventReceived) {
298
311
  await completeConnection();
299
312
  }
300
- } else {
301
- // In CONNECT_ONLY mode, just wait for connected event
302
- if (connectedEventCompleted) {
303
- await completeConnection();
304
- }
313
+ } else if (connectedEventCompleted) {
314
+ await completeConnection();
305
315
  }
306
316
  };
307
317
  const completeConnection = async () => {
@@ -313,7 +323,7 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
313
323
  duration: Date.now() - startTime
314
324
  }));
315
325
  cleanup();
316
- resolve(this.provider);
326
+ resolve(this.connection);
317
327
  } catch (error) {
318
328
  cleanup();
319
329
  reject(error);
@@ -336,7 +346,7 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
336
346
  reject(err);
337
347
  };
338
348
  this.once(constants.CONNECTOR_EVENTS.CONNECTED, onConnected);
339
- if (finalLoginParams.getIdentityToken) {
349
+ if (finalLoginParams.getAuthTokenInfo) {
340
350
  this.once(constants.CONNECTOR_EVENTS.AUTHORIZED, onAuthorized);
341
351
  }
342
352
  this.once(constants.CONNECTOR_EVENTS.ERRORED, onErrored);
@@ -347,7 +357,7 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
347
357
  async logout(options = {
348
358
  cleanup: false
349
359
  }) {
350
- if (!connectorStatus.CONNECTED_STATUSES.includes(this.status) || !this.connectedConnector) throw index.WalletLoginError.notConnectedError(`No wallet is connected`);
360
+ if (!connectorStatus.CAN_LOGOUT_STATUSES.includes(this.status) || !this.connectedConnector) throw index.WalletLoginError.notConnectedError(`No wallet is connected`);
351
361
  if (this.connectedConnector.status === constants.CONNECTOR_STATUS.DISCONNECTING) return;
352
362
  await this.connectedConnector.disconnect(options);
353
363
  }
@@ -391,16 +401,18 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
391
401
  throw error;
392
402
  }
393
403
  }
394
- async getIdentityToken() {
404
+ async getAuthTokenInfo() {
395
405
  if (!connectorStatus.CAN_AUTHORIZE_STATUSES.includes(this.status) || !this.connectedConnector) throw index.WalletLoginError.notConnectedError(`No wallet is connected`);
396
406
  const trackData = {
397
407
  connector: this.connectedConnector.name
398
408
  };
399
409
  try {
400
410
  this.analytics.track(analytics.ANALYTICS_EVENTS.IDENTITY_TOKEN_STARTED, trackData);
401
- const identityToken = await this.connectedConnector.getIdentityToken();
411
+ const authTokenInfo = await this.connectedConnector.getAuthTokenInfo();
402
412
  this.analytics.track(analytics.ANALYTICS_EVENTS.IDENTITY_TOKEN_COMPLETED, trackData);
403
- return identityToken;
413
+ return {
414
+ idToken: authTokenInfo.idToken
415
+ };
404
416
  } catch (error) {
405
417
  this.analytics.track(analytics.ANALYTICS_EVENTS.IDENTITY_TOKEN_FAILED, _objectSpread(_objectSpread({}, trackData), utils.getErrorAnalyticsProperties(error)));
406
418
  throw error;
@@ -413,6 +425,7 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
413
425
  this.analytics.setGlobalProperties(properties);
414
426
  }
415
427
  initChainsConfig(projectConfig) {
428
+ var _this$coreOptions$acc2;
416
429
  // merge chains from project config with core options, core options chains will take precedence over project config chains
417
430
  const chainMap = new Map();
418
431
  const allChains = [...(projectConfig.chains || []), ...(this.coreOptions.chains || [])];
@@ -446,8 +459,9 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
446
459
  }
447
460
  }
448
461
  }
449
- // if AA is enabled, filter out chains that are not AA-supported
450
- if (this.coreOptions.accountAbstractionConfig) {
462
+ // if AA is enabled and smart account is not 7702, filter out chains that are not AA-supported
463
+ const is7702SmartAccount = ((_this$coreOptions$acc2 = this.coreOptions.accountAbstractionConfig) === null || _this$coreOptions$acc2 === void 0 ? void 0 : _this$coreOptions$acc2.smartAccountEipStandard) === ethereumControllers.SMART_ACCOUNT_EIP_STANDARD.EIP_7702;
464
+ if (this.coreOptions.accountAbstractionConfig && !is7702SmartAccount) {
451
465
  // write a for loop over accountAbstractionConfig.chains and check if the chainId is valid
452
466
  if (this.coreOptions.accountAbstractionConfig.chains.length === 0) {
453
467
  loglevel.log.error("Please configure chains for smart accounts on dashboard at https://dashboard.web3auth.io");
@@ -485,24 +499,36 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
485
499
  }
486
500
  }
487
501
  initAccountAbstractionConfig(projectConfig) {
488
- var _this$coreOptions$acc2;
502
+ var _this$coreOptions$acc3;
489
503
  const isAAEnabled = Boolean(this.coreOptions.accountAbstractionConfig || (projectConfig === null || projectConfig === void 0 ? void 0 : projectConfig.smartAccounts));
490
504
  if (!isAAEnabled) return;
491
505
  // merge smart account config from project config with core options, core options will take precedence over project config
492
506
  const _ref = (projectConfig === null || projectConfig === void 0 ? void 0 : projectConfig.smartAccounts) || {},
493
507
  {
494
- walletScope
508
+ walletScope,
509
+ eipStandard
495
510
  } = _ref,
496
511
  configWithoutWalletScope = _objectWithoutProperties(_ref, _excluded);
497
512
  const aaChainMap = new Map();
498
- 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) || [])];
513
+ const allAaChains = [...((configWithoutWalletScope === null || configWithoutWalletScope === void 0 ? void 0 : configWithoutWalletScope.chains) || []), ...(((_this$coreOptions$acc3 = this.coreOptions.accountAbstractionConfig) === null || _this$coreOptions$acc3 === void 0 ? void 0 : _this$coreOptions$acc3.chains) || [])];
499
514
  for (const chain of allAaChains) {
500
515
  const existingChain = aaChainMap.get(chain.chainId);
501
516
  if (!existingChain) aaChainMap.set(chain.chainId, chain);else aaChainMap.set(chain.chainId, _objectSpread(_objectSpread({}, existingChain), chain));
502
517
  }
503
- this.coreOptions.accountAbstractionConfig = _objectSpread(_objectSpread({}, deepmerge(configWithoutWalletScope || {}, this.coreOptions.accountAbstractionConfig || {})), {}, {
518
+ this.coreOptions.accountAbstractionConfig = _objectSpread(_objectSpread({
519
+ smartAccountEipStandard: eipStandard
520
+ }, deepmerge(configWithoutWalletScope || {}, this.coreOptions.accountAbstractionConfig || {})), {}, {
504
521
  chains: Array.from(aaChainMap.values())
505
522
  });
523
+ // if eipStandard is 7702, validate smart account type
524
+ const {
525
+ smartAccountEipStandard,
526
+ smartAccountType
527
+ } = this.coreOptions.accountAbstractionConfig;
528
+ const is7702SmartAccount = smartAccountEipStandard === ethereumControllers.SMART_ACCOUNT_EIP_STANDARD.EIP_7702;
529
+ if (is7702SmartAccount && smartAccountType && !ethereumControllers.EIP7702_SUPPORTED_SMART_ACCOUNT_TYPES.includes(smartAccountType)) {
530
+ throw index.WalletInitializationError.invalidParams(`Smart account type "${smartAccountType}" does not support EIP-7702. Supported: ${ethereumControllers.EIP7702_SUPPORTED_SMART_ACCOUNT_TYPES.join(", ")}`);
531
+ }
506
532
  // determine if we should use AA with external wallet
507
533
  if (this.coreOptions.useAAWithExternalWallet === undefined) {
508
534
  this.coreOptions.useAAWithExternalWallet = walletScope === constants$1.SMART_ACCOUNT_WALLET_SCOPE.ALL;
@@ -518,13 +544,13 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
518
544
  if (this.coreOptions.sessionTime) return;
519
545
  if (projectConfig.sessionTime) this.coreOptions.sessionTime = projectConfig.sessionTime;
520
546
  }
521
- initCachedConnectorAndChainId() {
547
+ async initCachedConnectorAndChainId() {
522
548
  // init chainId using cached chainId if it exists and is valid, otherwise use the defaultChainId or the first chain
523
549
  const cachedChainId = this.state.currentChainId;
524
550
  const isCachedChainIdValid = cachedChainId && this.coreOptions.chains.some(chain => chain.chainId === cachedChainId);
525
551
  if (this.coreOptions.defaultChainId && !utils.isHexStrict(this.coreOptions.defaultChainId)) throw index.WalletInitializationError.invalidParams("Please provide a valid defaultChainId in constructor");
526
552
  const currentChainId = isCachedChainIdValid ? cachedChainId : this.coreOptions.defaultChainId || this.coreOptions.chains[0].chainId;
527
- this.setState({
553
+ await this.setState({
528
554
  currentChainId
529
555
  });
530
556
  }
@@ -584,7 +610,7 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
584
610
  default_chain_id: defaultChain ? utils.getCaipChainId(defaultChain) : undefined,
585
611
  default_chain_name: defaultChain === null || defaultChain === void 0 ? void 0 : defaultChain.displayName,
586
612
  logging_enabled: this.coreOptions.enableLogging,
587
- storage_type: this.coreOptions.storageType,
613
+ custom_storage: Boolean(this.coreOptions.storage),
588
614
  session_time: this.coreOptions.sessionTime,
589
615
  sfa_key_enabled: this.coreOptions.useSFAKey,
590
616
  mipd_enabled: this.coreOptions.multiInjectedProviderDiscovery,
@@ -607,7 +633,7 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
607
633
  chains: this.coreOptions.chains
608
634
  });
609
635
  // sync chainId
610
- this.commonJRPCProvider.on("chainChanged", chainId => this.setCurrentChain(chainId));
636
+ this.commonJRPCProvider.on("chainChanged", async chainId => this.setCurrentChain(chainId));
611
637
  }
612
638
  async setupConnector(connector) {
613
639
  this.subscribeToConnectorEvents(connector);
@@ -617,7 +643,7 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
617
643
  await connector.init({
618
644
  autoConnect,
619
645
  chainId: initialChain.chainId,
620
- getIdentityToken: this.coreOptions.initialAuthenticationMode === constants.CONNECTOR_INITIAL_AUTHENTICATION_MODE.CONNECT_AND_SIGN
646
+ getAuthTokenInfo: this.coreOptions.initialAuthenticationMode === constants.CONNECTOR_INITIAL_AUTHENTICATION_MODE.CONNECT_AND_SIGN
621
647
  });
622
648
  } catch (e) {
623
649
  loglevel.log.error(e, connector.name);
@@ -643,7 +669,9 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
643
669
  if (utils.isBrowser() && chainNamespaces.has(baseControllers.CHAIN_NAMESPACES.EIP155)) {
644
670
  // only set headless to true if modal SDK is used, otherwise just use the modal from native Metamask SDK
645
671
  connectorFns.push(metamaskConnector.metaMaskConnector(modalMode ? {
646
- headless: true
672
+ ui: {
673
+ headless: true
674
+ }
647
675
  } : undefined));
648
676
  }
649
677
  if (isMipdEnabled && utils.isBrowser()) {
@@ -721,79 +749,101 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
721
749
  }
722
750
  subscribeToConnectorEvents(connector) {
723
751
  connector.on(constants.CONNECTOR_EVENTS.CONNECTED, async data => {
724
- var _this$currentChain3, _accountAbstractionCo;
725
752
  if (!this.commonJRPCProvider) throw index.WalletInitializationError.notFound(`CommonJrpcProvider not found`);
726
753
  const {
727
- provider,
728
- identityTokenInfo
754
+ ethereumProvider,
755
+ solanaWallet
729
756
  } = data;
730
- if (identityTokenInfo) {
731
- this.setState({
732
- idToken: identityTokenInfo.idToken
733
- });
734
- }
757
+ const isSolanaOnly = connector.connectorNamespace === baseControllers.CHAIN_NAMESPACES.SOLANA;
758
+ // Set connection and consent status SYNCHRONOUSLY before any await so the
759
+ // AUTHORIZED handler (which may fire during async work below) can detect the
760
+ // consent-required state. Create a deferred promise the AUTHORIZED handler
761
+ // will await to ensure consent userId + pre-approval are resolved first.
762
+ this.currentConnection = {
763
+ ethereumProvider: isSolanaOnly ? null : ethereumProvider ? this.commonJRPCProvider : null,
764
+ solanaWallet: solanaWallet !== null && solanaWallet !== void 0 ? solanaWallet : null,
765
+ connectorName: data.connectorName
766
+ };
767
+ this.currentConnectionReconnected = data.reconnected;
735
768
  // when ssr is enabled, we need to get the idToken from the connector.
736
769
  if (this.coreOptions.ssr) {
737
770
  try {
738
- const data = await connector.getIdentityToken();
771
+ var _data$accessToken, _data$refreshToken;
772
+ const data = await connector.getAuthTokenInfo();
739
773
  if (!data.idToken) throw index.WalletLoginError.connectionError("No idToken found");
740
- this.setState({
741
- idToken: data.idToken
774
+ await this.setState({
775
+ idToken: data.idToken,
776
+ accessToken: (_data$accessToken = data.accessToken) !== null && _data$accessToken !== void 0 ? _data$accessToken : null,
777
+ refreshToken: (_data$refreshToken = data.refreshToken) !== null && _data$refreshToken !== void 0 ? _data$refreshToken : null
742
778
  });
743
779
  } catch (error) {
744
780
  loglevel.log.error(error);
781
+ this.currentConnection = null;
745
782
  this.status = constants.CONNECTOR_STATUS.ERRORED;
746
783
  this.emit(constants.CONNECTOR_EVENTS.ERRORED, error, this.loginMode);
747
784
  return;
748
785
  }
749
786
  }
750
- let finalProvider = provider.provider || provider;
751
- // setup AA provider if AA is enabled
752
- const {
753
- accountAbstractionConfig
754
- } = this.coreOptions;
755
- 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 => {
756
- var _this$currentChain4;
757
- return chain.chainId === ((_this$currentChain4 = this.currentChain) === null || _this$currentChain4 === void 0 ? void 0 : _this$currentChain4.chainId);
758
- }));
759
- if (isAaSupportedForCurrentChain && (data.connector === index$1.WALLET_CONNECTORS.AUTH || this.coreOptions.useAAWithExternalWallet)) {
760
- var _accountAbstractionCo2;
787
+ // setup AA provider if AA is enabled (skip for EIP-7702; 7702 uses EOA + 5792/7702 RPC only)
788
+ if (ethereumProvider) {
789
+ var _this$currentChain4, _accountAbstractionCo;
790
+ let finalProvider = (ethereumProvider === null || ethereumProvider === void 0 ? void 0 : ethereumProvider.provider) || ethereumProvider;
761
791
  const {
762
- accountAbstractionProvider,
763
- toEoaProvider
764
- } = await Promise.resolve().then(function () { return require('./providers/account-abstraction-provider/index.js'); });
765
- // for embedded wallets, we use ws-embed provider which is AA provider, need to derive EOA provider
766
- const eoaProvider = data.connector === index$1.WALLET_CONNECTORS.AUTH ? await toEoaProvider(provider) : provider;
767
- const aaChainIds = new Set((accountAbstractionConfig === null || accountAbstractionConfig === void 0 || (_accountAbstractionCo2 = accountAbstractionConfig.chains) === null || _accountAbstractionCo2 === void 0 ? void 0 : _accountAbstractionCo2.map(chain => chain.chainId)) || []);
768
- const aaProvider = await accountAbstractionProvider({
769
- accountAbstractionConfig,
770
- provider: eoaProvider,
771
- chain: this.currentChain,
772
- chains: this.coreOptions.chains.filter(chain => aaChainIds.has(chain.chainId)),
773
- useProviderAsTransport: data.connector === index$1.WALLET_CONNECTORS.AUTH
774
- });
775
- this.aaProvider = aaProvider;
776
- // if external wallet is used and AA is enabled for external wallets, use AA provider
777
- // for embedded wallets, we use ws-embed provider which already supports AA
778
- if (data.connector !== index$1.WALLET_CONNECTORS.AUTH && this.coreOptions.useAAWithExternalWallet) {
779
- finalProvider = this.aaProvider;
792
+ accountAbstractionConfig
793
+ } = this.coreOptions;
794
+ const is7702 = (accountAbstractionConfig === null || accountAbstractionConfig === void 0 ? void 0 : accountAbstractionConfig.smartAccountEipStandard) === ethereumControllers.SMART_ACCOUNT_EIP_STANDARD["EIP_7702"];
795
+ const isAaSupportedForCurrentChain = ((_this$currentChain4 = this.currentChain) === null || _this$currentChain4 === void 0 ? void 0 : _this$currentChain4.chainNamespace) === baseControllers.CHAIN_NAMESPACES.EIP155 && (accountAbstractionConfig === null || accountAbstractionConfig === void 0 || (_accountAbstractionCo = accountAbstractionConfig.chains) === null || _accountAbstractionCo === void 0 ? void 0 : _accountAbstractionCo.some(chain => {
796
+ var _this$currentChain5;
797
+ return chain.chainId === ((_this$currentChain5 = this.currentChain) === null || _this$currentChain5 === void 0 ? void 0 : _this$currentChain5.chainId);
798
+ }));
799
+ if (!is7702 && isAaSupportedForCurrentChain && (data.connectorName === index$1.WALLET_CONNECTORS.AUTH || this.coreOptions.useAAWithExternalWallet)) {
800
+ var _accountAbstractionCo2;
801
+ const {
802
+ accountAbstractionProvider,
803
+ toEoaProvider
804
+ } = await Promise.resolve().then(function () { return require('./providers/account-abstraction-provider/index.js'); });
805
+ // for embedded wallets, we use ws-embed provider which is AA provider, need to derive EOA provider
806
+ const eoaProvider = data.connectorName === index$1.WALLET_CONNECTORS.AUTH ? await toEoaProvider(ethereumProvider) : ethereumProvider;
807
+ const aaChainIds = new Set((accountAbstractionConfig === null || accountAbstractionConfig === void 0 || (_accountAbstractionCo2 = accountAbstractionConfig.chains) === null || _accountAbstractionCo2 === void 0 ? void 0 : _accountAbstractionCo2.map(chain => chain.chainId)) || []);
808
+ const aaProvider = await accountAbstractionProvider({
809
+ accountAbstractionConfig,
810
+ provider: eoaProvider,
811
+ chain: this.currentChain,
812
+ chains: this.coreOptions.chains.filter(chain => aaChainIds.has(chain.chainId)),
813
+ useProviderAsTransport: data.connectorName === index$1.WALLET_CONNECTORS.AUTH
814
+ });
815
+ this.aaProvider = aaProvider;
816
+ // if external wallet is used and AA is enabled for external wallets, use AA provider
817
+ // for embedded wallets, we use ws-embed provider which already supports AA
818
+ if (data.connectorName !== index$1.WALLET_CONNECTORS.AUTH && this.coreOptions.useAAWithExternalWallet) {
819
+ finalProvider = this.aaProvider;
820
+ }
780
821
  }
822
+ this.commonJRPCProvider.updateProviderEngineProxy(finalProvider);
781
823
  }
782
- this.commonJRPCProvider.updateProviderEngineProxy(finalProvider);
783
- this.setState({
784
- connectedConnectorName: data.connector
824
+ await this.setState({
825
+ connectedConnectorName: data.connectorName
785
826
  });
786
- this.cacheWallet(data.connector);
787
- this.status = constants.CONNECTOR_STATUS.CONNECTED;
788
- loglevel.log.debug("connected", this.status, this.connectedConnectorName);
789
- this.connectToPlugins(_objectSpread(_objectSpread({}, data), {}, {
790
- connector: data.connector
791
- }));
792
- this.emit(constants.CONNECTOR_EVENTS.CONNECTED, _objectSpread(_objectSpread({}, data), {}, {
793
- loginMode: this.loginMode
794
- }));
827
+ this.cacheWallet(data.connectorName);
828
+ const isConnectAndSign = this.coreOptions.initialAuthenticationMode === constants.CONNECTOR_INITIAL_AUTHENTICATION_MODE.CONNECT_AND_SIGN;
829
+ if (this.consentRequired && !isConnectAndSign && !this.state.hasUserConsent) {
830
+ this.status = constants.CONNECTOR_STATUS.CONSENT_REQUIRING;
831
+ this.emit(constants.CONNECTOR_EVENTS.CONSENT_REQUIRING);
832
+ loglevel.log.debug("consent_requiring", this.status, this.connectedConnectorName);
833
+ } else {
834
+ this.status = constants.CONNECTOR_STATUS.CONNECTED;
835
+ loglevel.log.debug("connected", this.status, this.connectedConnectorName);
836
+ this.connectToPlugins(_objectSpread(_objectSpread({}, data), {}, {
837
+ connector: data.connectorName
838
+ }));
839
+ this.emit(constants.CONNECTOR_EVENTS.CONNECTED, _objectSpread(_objectSpread({}, data), {}, {
840
+ loginMode: this.loginMode
841
+ }));
842
+ }
795
843
  });
796
844
  connector.on(constants.CONNECTOR_EVENTS.DISCONNECTED, async () => {
845
+ this.currentConnection = null;
846
+ this.currentConnectionReconnected = false;
797
847
  // re-setup commonJRPCProvider
798
848
  this.commonJRPCProvider.removeAllListeners();
799
849
  this.setupCommonJRPCProvider();
@@ -801,7 +851,7 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
801
851
  this.status = constants.CONNECTOR_STATUS.READY;
802
852
  const cachedConnector = this.state.cachedConnector;
803
853
  if (this.connectedConnectorName === cachedConnector) {
804
- this.clearCache();
854
+ await this.clearCache();
805
855
  }
806
856
  loglevel.log.debug("disconnected", this.status, this.connectedConnectorName);
807
857
  await Promise.all(Object.values(this.plugins).map(async plugin => {
@@ -816,8 +866,9 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
816
866
  loglevel.log.error(error);
817
867
  });
818
868
  }));
819
- this.setState({
820
- connectedConnectorName: null
869
+ await this.setState({
870
+ connectedConnectorName: null,
871
+ hasUserConsent: undefined
821
872
  });
822
873
  this.emit(constants.CONNECTOR_EVENTS.DISCONNECTED);
823
874
  });
@@ -826,24 +877,24 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
826
877
  this.emit(constants.CONNECTOR_EVENTS.CONNECTING, data);
827
878
  loglevel.log.debug("connecting", this.status, this.connectedConnectorName);
828
879
  });
829
- connector.on(constants.CONNECTOR_EVENTS.ERRORED, data => {
880
+ connector.on(constants.CONNECTOR_EVENTS.ERRORED, async data => {
830
881
  this.status = constants.CONNECTOR_STATUS.ERRORED;
831
- this.clearCache();
882
+ await this.clearCache();
832
883
  this.emit(constants.CONNECTOR_EVENTS.ERRORED, data, this.loginMode);
833
884
  loglevel.log.debug("errored", this.status, this.connectedConnectorName);
834
885
  });
835
- connector.on(constants.CONNECTOR_EVENTS.REHYDRATION_ERROR, error => {
886
+ connector.on(constants.CONNECTOR_EVENTS.REHYDRATION_ERROR, async error => {
836
887
  this.status = constants.CONNECTOR_STATUS.READY;
837
- this.clearCache();
888
+ await this.clearCache();
838
889
  this.emit(constants.CONNECTOR_EVENTS.REHYDRATION_ERROR, error);
839
890
  });
840
891
  connector.on(constants.CONNECTOR_EVENTS.CONNECTOR_DATA_UPDATED, data => {
841
892
  loglevel.log.debug("connector data updated", data);
842
893
  this.emit(constants.CONNECTOR_EVENTS.CONNECTOR_DATA_UPDATED, data);
843
894
  });
844
- connector.on(constants.CONNECTOR_EVENTS.CACHE_CLEAR, data => {
895
+ connector.on(constants.CONNECTOR_EVENTS.CACHE_CLEAR, async data => {
845
896
  loglevel.log.debug("connector cache clear", data);
846
- this.clearCache();
897
+ await this.clearCache();
847
898
  });
848
899
  connector.on(constants.CONNECTOR_EVENTS.MFA_ENABLED, isMFAEnabled => {
849
900
  var _authConnector$authIn4;
@@ -863,22 +914,32 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
863
914
  this.emit(constants.CONNECTOR_EVENTS.AUTHORIZING, data);
864
915
  loglevel.log.debug("authorizing", this.status, this.connectedConnectorName);
865
916
  });
866
- connector.on(constants.CONNECTOR_EVENTS.AUTHORIZED, data => {
867
- this.status = constants.CONNECTOR_STATUS.AUTHORIZED;
868
- this.setState({
869
- idToken: data.identityTokenInfo.idToken
917
+ connector.on(constants.CONNECTOR_EVENTS.AUTHORIZED, async data => {
918
+ var _data$authTokenInfo$a, _data$authTokenInfo$r;
919
+ await this.setState({
920
+ idToken: data.authTokenInfo.idToken,
921
+ accessToken: (_data$authTokenInfo$a = data.authTokenInfo.accessToken) !== null && _data$authTokenInfo$a !== void 0 ? _data$authTokenInfo$a : null,
922
+ refreshToken: (_data$authTokenInfo$r = data.authTokenInfo.refreshToken) !== null && _data$authTokenInfo$r !== void 0 ? _data$authTokenInfo$r : null
870
923
  });
871
- this.emit(constants.CONNECTOR_EVENTS.AUTHORIZED, data);
872
- loglevel.log.debug("authorized", this.status, this.connectedConnectorName);
924
+ // if the user has not consented yet, we will ask for consent
925
+ if (this.consentRequired && this.currentConnection && !this.state.hasUserConsent) {
926
+ this.status = constants.CONNECTOR_STATUS.CONSENT_REQUIRING;
927
+ this.emit(constants.CONNECTOR_EVENTS.CONSENT_REQUIRING);
928
+ loglevel.log.debug("consent_requiring", this.status, this.connectedConnectorName);
929
+ } else {
930
+ this.status = constants.CONNECTOR_STATUS.AUTHORIZED;
931
+ this.emit(constants.CONNECTOR_EVENTS.AUTHORIZED, data);
932
+ loglevel.log.debug("authorized", this.status, this.connectedConnectorName);
933
+ }
873
934
  });
874
935
  }
875
936
  checkInitRequirements() {
876
937
  if (this.status === constants.CONNECTOR_STATUS.READY) throw index.WalletInitializationError.notReady("Connector is already initialized");
877
938
  }
878
939
  checkIfAutoConnect(connector) {
879
- var _this$currentChain5;
940
+ var _this$currentChain6;
880
941
  let autoConnect = this.cachedConnector === connector.name;
881
- if (autoConnect && (_this$currentChain5 = this.currentChain) !== null && _this$currentChain5 !== void 0 && _this$currentChain5.chainNamespace) {
942
+ if (autoConnect && (_this$currentChain6 = this.currentChain) !== null && _this$currentChain6 !== void 0 && _this$currentChain6.chainNamespace) {
882
943
  if (connector.connectorNamespace === IChainInterface.CONNECTOR_NAMESPACES.MULTICHAIN) autoConnect = true;else autoConnect = connector.connectorNamespace === this.currentChain.chainNamespace;
883
944
  }
884
945
  return autoConnect;
@@ -896,27 +957,56 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
896
957
  }
897
958
  return initialChain;
898
959
  }
899
- cacheWallet(walletName) {
900
- this.setState({
960
+ async completeConsentAcceptance() {
961
+ const connection = this.currentConnection;
962
+ if (!connection) {
963
+ throw index.WalletLoginError.connectionError("Cannot accept consent: no active connection");
964
+ }
965
+ if (this.status !== constants.CONNECTOR_STATUS.CONSENT_REQUIRING) {
966
+ throw index.WalletLoginError.connectionError("Cannot accept consent: not in consent_requiring state");
967
+ }
968
+ await this.setState({
969
+ hasUserConsent: true
970
+ });
971
+ const isConnectAndSign = this.coreOptions.initialAuthenticationMode === constants.CONNECTOR_INITIAL_AUTHENTICATION_MODE.CONNECT_AND_SIGN;
972
+ if (isConnectAndSign && this.state.idToken) {
973
+ this.status = constants.CONNECTOR_STATUS.AUTHORIZED;
974
+ loglevel.log.debug("consent accepted, authorized", this.status, this.connectedConnectorName);
975
+ } else {
976
+ this.status = constants.CONNECTOR_STATUS.CONNECTED;
977
+ loglevel.log.debug("consent accepted, connected", this.status, this.connectedConnectorName);
978
+ }
979
+ // connect to wallet-service plugin
980
+ if (this.connectedConnectorName === index$1.WALLET_CONNECTORS.AUTH) {
981
+ this.connectToPlugins({
982
+ connector: this.connectedConnectorName
983
+ });
984
+ }
985
+ this.emit(constants.CONNECTOR_EVENTS.CONSENT_ACCEPTED, {
986
+ reconnected: this.currentConnectionReconnected
987
+ });
988
+ }
989
+ async cacheWallet(walletName) {
990
+ await this.setState({
901
991
  cachedConnector: walletName
902
992
  });
903
993
  }
904
- setCurrentChain(chainId) {
994
+ async setCurrentChain(chainId) {
905
995
  if (chainId === this.currentChainId) return;
906
996
  const newChain = this.coreOptions.chains.find(chain => chain.chainId === chainId);
907
997
  if (!newChain) throw index.WalletInitializationError.invalidParams(`Invalid chainId: ${chainId}`);
908
- this.setState({
998
+ await this.setState({
909
999
  currentChainId: chainId
910
1000
  });
911
1001
  }
912
1002
  connectToPlugins(data) {
913
1003
  Object.values(this.plugins).map(async plugin => {
914
1004
  try {
915
- var _this$currentChain6;
1005
+ var _this$currentChain7;
916
1006
  // skip if it's not compatible with the connector
917
1007
  if (!plugin.SUPPORTED_CONNECTORS.includes(data.connector)) return;
918
1008
  // skip if it's not compatible with the current chain
919
- if (plugin.pluginNamespace !== IPlugin.PLUGIN_NAMESPACES.MULTICHAIN && plugin.pluginNamespace !== ((_this$currentChain6 = this.currentChain) === null || _this$currentChain6 === void 0 ? void 0 : _this$currentChain6.chainNamespace)) return;
1009
+ if (plugin.pluginNamespace !== IPlugin.PLUGIN_NAMESPACES.MULTICHAIN && plugin.pluginNamespace !== ((_this$currentChain7 = this.currentChain) === null || _this$currentChain7 === void 0 ? void 0 : _this$currentChain7.chainNamespace)) return;
920
1010
  // skip if it's already connected
921
1011
  if (plugin.status === IPlugin.PLUGIN_STATUS.CONNECTED) return;
922
1012
  await plugin.initWithWeb3Auth(this, this.coreOptions.uiConfig, this.analytics);
@@ -930,27 +1020,27 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
930
1020
  }
931
1021
  });
932
1022
  }
933
- setState(newState) {
1023
+ async setState(newState) {
934
1024
  this.state = _objectSpread(_objectSpread({}, this.state), newState);
935
- this.storage.setItem(constants$1.WEB3AUTH_STATE_STORAGE_KEY, JSON.stringify(this.state));
1025
+ await this.storage.set(constants$1.WEB3AUTH_STATE_STORAGE_KEY, JSON.stringify(this.state));
936
1026
  }
937
- loadState(initialState) {
1027
+ async loadState(initialState) {
938
1028
  if (initialState) {
939
- this.state = initialState;
1029
+ this.state = _objectSpread(_objectSpread({}, this.state), initialState);
940
1030
  return;
941
1031
  }
942
- const state = this.storage.getItem(constants$1.WEB3AUTH_STATE_STORAGE_KEY);
1032
+ const state = await this.storage.get(constants$1.WEB3AUTH_STATE_STORAGE_KEY);
943
1033
  if (!state) return;
944
1034
  this.state = deserialize.deserialize(state);
945
1035
  }
946
1036
  getStorageMethod() {
947
- if (this.coreOptions.ssr || this.coreOptions.storageType === "cookies") return cookie.cookieStorage({
948
- expiry: this.coreOptions.sessionTime
1037
+ var _this$coreOptions$sto;
1038
+ if ((_this$coreOptions$sto = this.coreOptions.storage) !== null && _this$coreOptions$sto !== void 0 && _this$coreOptions$sto.sessionId) return this.coreOptions.storage.sessionId;
1039
+ if (this.coreOptions.ssr) return new auth.CookieStorage({
1040
+ maxAge: this.coreOptions.sessionTime
949
1041
  });
950
- if (this.coreOptions.storageType === "session" && utils$1.storageAvailable("sessionStorage")) return window.sessionStorage;
951
- if (this.coreOptions.storageType === "local" && utils$1.storageAvailable("localStorage")) return window.localStorage;
952
- // If no storage is available, use a memory store.
953
- return new auth.MemoryStore();
1042
+ if (utils$1.storageAvailable("localStorage")) return new auth.LocalStorageAdapter();
1043
+ return new auth.MemoryStorage();
954
1044
  }
955
1045
  }
956
1046