@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
@@ -2,14 +2,15 @@ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProper
2
2
  import _objectSpread from '@babel/runtime/helpers/objectSpread2';
3
3
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
4
  import { CHAIN_NAMESPACES, BUTTON_POSITION, CONFIRMATION_STRATEGY } from '@toruslabs/base-controllers';
5
- import { SafeEventEmitter, serializeError, UX_MODE, cloneDeep, MemoryStore } from '@web3auth/auth';
5
+ import { SMART_ACCOUNT_EIP_STANDARD, EIP7702_SUPPORTED_SMART_ACCOUNT_TYPES } from '@toruslabs/ethereum-controllers';
6
+ import { SafeEventEmitter, serializeError, UX_MODE, cloneDeep, CookieStorage, LocalStorageAdapter, MemoryStorage } from '@web3auth/auth';
6
7
  import deepmerge from 'deepmerge';
7
- import { cookieStorage } from './base/cookie.js';
8
8
  import { deserialize } from './base/deserialize.js';
9
9
  import { LOGIN_MODE, SMART_ACCOUNT_WALLET_SCOPE, WEB3AUTH_STATE_STORAGE_KEY } from './base/constants.js';
10
- import { Analytics, ANALYTICS_INTEGRATION_TYPE, ANALYTICS_SDK_TYPE, ANALYTICS_EVENTS } from './base/analytics.js';
11
10
  import { CONNECTOR_STATUS, CONNECTOR_INITIAL_AUTHENTICATION_MODE, CONNECTOR_EVENTS } from './base/connector/constants.js';
11
+ import { Analytics, ANALYTICS_INTEGRATION_TYPE, ANALYTICS_SDK_TYPE, ANALYTICS_EVENTS } from './base/analytics.js';
12
12
  import { sdkVersion, fetchProjectConfig, withAbort, getErrorAnalyticsProperties, getCaipChainId, isHexStrict, getHostname, getWhitelabelAnalyticsProperties, getAaAnalyticsProperties, getWalletServicesAnalyticsProperties, isBrowser } from './base/utils.js';
13
+ import { CONNECTED_STATUSES, CAN_LOGOUT_STATUSES, CAN_AUTHORIZE_STATUSES } from './base/connector/connectorStatus.js';
13
14
  import { CommonJRPCProvider } from './providers/base-provider/CommonJRPCProvider.js';
14
15
  import { authConnector } from './connectors/auth-connector/authConnector.js';
15
16
  import { walletServicesPlugin } from './plugins/wallet-services-plugin/plugin.js';
@@ -19,42 +20,47 @@ import { WalletInitializationError, WalletLoginError } from './base/errors/index
19
20
  import { log } from './base/loglevel.js';
20
21
  import { WALLET_CONNECTORS } from './base/wallet/index.js';
21
22
  import { CONNECTOR_NAMESPACES } from './base/chain/IChainInterface.js';
22
- import { CONNECTED_STATUSES, CAN_AUTHORIZE_STATUSES } from './base/connector/connectorStatus.js';
23
23
  import { PLUGIN_STATUS, PLUGIN_NAMESPACES } from './base/plugin/IPlugin.js';
24
24
 
25
- const _excluded = ["walletScope"];
25
+ const _excluded = ["walletScope", "eipStandard"];
26
26
  class Web3AuthNoModal extends SafeEventEmitter {
27
27
  constructor(options, initialState) {
28
28
  super();
29
29
  _defineProperty(this, "coreOptions", void 0);
30
30
  _defineProperty(this, "status", CONNECTOR_STATUS.NOT_READY);
31
+ _defineProperty(this, "loginMode", LOGIN_MODE.NO_MODAL);
31
32
  _defineProperty(this, "aaProvider", null);
32
33
  _defineProperty(this, "connectors", []);
33
34
  _defineProperty(this, "commonJRPCProvider", null);
34
35
  _defineProperty(this, "analytics", void 0);
35
36
  _defineProperty(this, "plugins", {});
37
+ _defineProperty(this, "consentRequired", false);
36
38
  _defineProperty(this, "storage", void 0);
39
+ _defineProperty(this, "currentConnection", null);
40
+ _defineProperty(this, "currentConnectionReconnected", false);
37
41
  _defineProperty(this, "state", {
38
42
  connectedConnectorName: null,
39
43
  cachedConnector: null,
40
44
  currentChainId: null,
41
- idToken: null
45
+ idToken: null,
46
+ accessToken: null,
47
+ refreshToken: null
42
48
  });
43
- _defineProperty(this, "loginMode", LOGIN_MODE.NO_MODAL);
44
49
  if (!options.clientId) throw WalletInitializationError.invalidParams("Please provide a valid clientId in constructor");
45
50
  if (options.enableLogging) log.enableAll();else log.setLevel("error");
46
- if (!options.storageType) options.storageType = "local";
51
+ if (!options.initialAuthenticationMode) options.initialAuthenticationMode = CONNECTOR_INITIAL_AUTHENTICATION_MODE.CONNECT_AND_SIGN;
47
52
  this.coreOptions = options;
48
53
  this.storage = this.getStorageMethod();
49
54
  this.analytics = new Analytics();
50
55
  this.analytics.setGlobalProperties({
51
56
  integration_type: ANALYTICS_INTEGRATION_TYPE.NATIVE_SDK
52
57
  });
53
- this.loadState(initialState);
54
- if (this.state.idToken && this.coreOptions.ssr) {
55
- // 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
56
- this.status = this.coreOptions.initialAuthenticationMode === CONNECTOR_INITIAL_AUTHENTICATION_MODE.CONNECT_AND_SIGN ? CONNECTOR_STATUS.AUTHORIZED : CONNECTOR_STATUS.CONNECTED;
57
- }
58
+ this.loadState(initialState).then(() => {
59
+ if (this.state.idToken && this.coreOptions.ssr && !this.consentRequired) {
60
+ this.status = this.coreOptions.initialAuthenticationMode === CONNECTOR_INITIAL_AUTHENTICATION_MODE.CONNECT_AND_SIGN ? CONNECTOR_STATUS.AUTHORIZED : CONNECTOR_STATUS.CONNECTED;
61
+ }
62
+ return undefined;
63
+ }).catch(() => {});
58
64
  }
59
65
  get currentChain() {
60
66
  var _this$coreOptions$cha;
@@ -64,11 +70,8 @@ class Web3AuthNoModal extends SafeEventEmitter {
64
70
  get connected() {
65
71
  return Boolean(this.connectedConnector);
66
72
  }
67
- get provider() {
68
- if (this.status !== CONNECTOR_STATUS.NOT_READY && this.commonJRPCProvider) {
69
- return this.commonJRPCProvider;
70
- }
71
- return null;
73
+ get connection() {
74
+ return this.currentConnection;
72
75
  }
73
76
  get connectedConnectorName() {
74
77
  return this.state.connectedConnectorName;
@@ -134,7 +137,7 @@ class Web3AuthNoModal extends SafeEventEmitter {
134
137
  // init config
135
138
  this.initAccountAbstractionConfig(projectConfig);
136
139
  this.initChainsConfig(projectConfig);
137
- this.initCachedConnectorAndChainId();
140
+ await this.initCachedConnectorAndChainId();
138
141
  this.initUIConfig(projectConfig);
139
142
  this.initWalletServicesConfig(projectConfig);
140
143
  this.initSessionTimeConfig(projectConfig);
@@ -202,12 +205,15 @@ class Web3AuthNoModal extends SafeEventEmitter {
202
205
  return true;
203
206
  }) || null;
204
207
  }
205
- clearCache() {
206
- this.setState({
208
+ async clearCache() {
209
+ await this.setState({
207
210
  connectedConnectorName: null,
208
211
  cachedConnector: null,
209
212
  currentChainId: null,
210
- idToken: null
213
+ idToken: null,
214
+ accessToken: null,
215
+ refreshToken: null,
216
+ hasUserConsent: undefined
211
217
  });
212
218
  }
213
219
  async cleanup() {
@@ -221,6 +227,12 @@ class Web3AuthNoModal extends SafeEventEmitter {
221
227
  const newChainConfig = this.coreOptions.chains.find(x => x.chainId === params.chainId);
222
228
  if (!newChainConfig) throw WalletInitializationError.invalidParams("Invalid chainId");
223
229
  if (CONNECTED_STATUSES.includes(this.status) && this.connectedConnector) {
230
+ var _this$currentChain3;
231
+ // Single-namespace connectors cannot cross namespace boundaries — MULTICHAIN connectors
232
+ // (Auth, WC) enforce their own switchChain policy internally.
233
+ if (this.connectedConnector.connectorNamespace !== CONNECTOR_NAMESPACES.MULTICHAIN && ((_this$currentChain3 = this.currentChain) === null || _this$currentChain3 === void 0 ? void 0 : _this$currentChain3.chainNamespace) !== newChainConfig.chainNamespace) {
234
+ throw WalletLoginError.connectionError(`Cannot switch between chain namespaces with ${this.connectedConnector.name}. Disconnect and reconnect with the target chain.`);
235
+ }
224
236
  await this.connectedConnector.switchChain(params);
225
237
  return;
226
238
  }
@@ -242,7 +254,7 @@ class Web3AuthNoModal extends SafeEventEmitter {
242
254
  const initialChain = this.getInitialChainIdForConnector(connector);
243
255
  const finalLoginParams = _objectSpread(_objectSpread({}, loginParams), {}, {
244
256
  chainId: initialChain.chainId,
245
- getIdentityToken: this.coreOptions.initialAuthenticationMode === CONNECTOR_INITIAL_AUTHENTICATION_MODE.CONNECT_AND_SIGN
257
+ getAuthTokenInfo: this.coreOptions.initialAuthenticationMode === CONNECTOR_INITIAL_AUTHENTICATION_MODE.CONNECT_AND_SIGN
246
258
  });
247
259
 
248
260
  // track connection started event
@@ -298,15 +310,12 @@ class Web3AuthNoModal extends SafeEventEmitter {
298
310
  };
299
311
  const checkCompletion = async () => {
300
312
  // In CONNECT_AND_SIGN mode, wait for both connected event and authorized event
301
- if (finalLoginParams.getIdentityToken) {
313
+ if (finalLoginParams.getAuthTokenInfo) {
302
314
  if (connectedEventCompleted && authorizedEventReceived) {
303
315
  await completeConnection();
304
316
  }
305
- } else {
306
- // In CONNECT_ONLY mode, just wait for connected event
307
- if (connectedEventCompleted) {
308
- await completeConnection();
309
- }
317
+ } else if (connectedEventCompleted) {
318
+ await completeConnection();
310
319
  }
311
320
  };
312
321
  const completeConnection = async () => {
@@ -318,7 +327,7 @@ class Web3AuthNoModal extends SafeEventEmitter {
318
327
  duration: Date.now() - startTime
319
328
  }));
320
329
  cleanup();
321
- resolve(this.provider);
330
+ resolve(this.connection);
322
331
  } catch (error) {
323
332
  cleanup();
324
333
  reject(error);
@@ -341,7 +350,7 @@ class Web3AuthNoModal extends SafeEventEmitter {
341
350
  reject(err);
342
351
  };
343
352
  this.once(CONNECTOR_EVENTS.CONNECTED, onConnected);
344
- if (finalLoginParams.getIdentityToken) {
353
+ if (finalLoginParams.getAuthTokenInfo) {
345
354
  this.once(CONNECTOR_EVENTS.AUTHORIZED, onAuthorized);
346
355
  }
347
356
  this.once(CONNECTOR_EVENTS.ERRORED, onErrored);
@@ -352,7 +361,7 @@ class Web3AuthNoModal extends SafeEventEmitter {
352
361
  async logout(options = {
353
362
  cleanup: false
354
363
  }) {
355
- if (!CONNECTED_STATUSES.includes(this.status) || !this.connectedConnector) throw WalletLoginError.notConnectedError(`No wallet is connected`);
364
+ if (!CAN_LOGOUT_STATUSES.includes(this.status) || !this.connectedConnector) throw WalletLoginError.notConnectedError(`No wallet is connected`);
356
365
  if (this.connectedConnector.status === CONNECTOR_STATUS.DISCONNECTING) return;
357
366
  await this.connectedConnector.disconnect(options);
358
367
  }
@@ -396,16 +405,18 @@ class Web3AuthNoModal extends SafeEventEmitter {
396
405
  throw error;
397
406
  }
398
407
  }
399
- async getIdentityToken() {
408
+ async getAuthTokenInfo() {
400
409
  if (!CAN_AUTHORIZE_STATUSES.includes(this.status) || !this.connectedConnector) throw WalletLoginError.notConnectedError(`No wallet is connected`);
401
410
  const trackData = {
402
411
  connector: this.connectedConnector.name
403
412
  };
404
413
  try {
405
414
  this.analytics.track(ANALYTICS_EVENTS.IDENTITY_TOKEN_STARTED, trackData);
406
- const identityToken = await this.connectedConnector.getIdentityToken();
415
+ const authTokenInfo = await this.connectedConnector.getAuthTokenInfo();
407
416
  this.analytics.track(ANALYTICS_EVENTS.IDENTITY_TOKEN_COMPLETED, trackData);
408
- return identityToken;
417
+ return {
418
+ idToken: authTokenInfo.idToken
419
+ };
409
420
  } catch (error) {
410
421
  this.analytics.track(ANALYTICS_EVENTS.IDENTITY_TOKEN_FAILED, _objectSpread(_objectSpread({}, trackData), getErrorAnalyticsProperties(error)));
411
422
  throw error;
@@ -418,6 +429,7 @@ class Web3AuthNoModal extends SafeEventEmitter {
418
429
  this.analytics.setGlobalProperties(properties);
419
430
  }
420
431
  initChainsConfig(projectConfig) {
432
+ var _this$coreOptions$acc2;
421
433
  // merge chains from project config with core options, core options chains will take precedence over project config chains
422
434
  const chainMap = new Map();
423
435
  const allChains = [...(projectConfig.chains || []), ...(this.coreOptions.chains || [])];
@@ -453,8 +465,9 @@ class Web3AuthNoModal extends SafeEventEmitter {
453
465
  }
454
466
  }
455
467
 
456
- // if AA is enabled, filter out chains that are not AA-supported
457
- if (this.coreOptions.accountAbstractionConfig) {
468
+ // if AA is enabled and smart account is not 7702, filter out chains that are not AA-supported
469
+ const is7702SmartAccount = ((_this$coreOptions$acc2 = this.coreOptions.accountAbstractionConfig) === null || _this$coreOptions$acc2 === void 0 ? void 0 : _this$coreOptions$acc2.smartAccountEipStandard) === SMART_ACCOUNT_EIP_STANDARD.EIP_7702;
470
+ if (this.coreOptions.accountAbstractionConfig && !is7702SmartAccount) {
458
471
  // write a for loop over accountAbstractionConfig.chains and check if the chainId is valid
459
472
  if (this.coreOptions.accountAbstractionConfig.chains.length === 0) {
460
473
  log.error("Please configure chains for smart accounts on dashboard at https://dashboard.web3auth.io");
@@ -492,26 +505,39 @@ class Web3AuthNoModal extends SafeEventEmitter {
492
505
  }
493
506
  }
494
507
  initAccountAbstractionConfig(projectConfig) {
495
- var _this$coreOptions$acc2;
508
+ var _this$coreOptions$acc3;
496
509
  const isAAEnabled = Boolean(this.coreOptions.accountAbstractionConfig || (projectConfig === null || projectConfig === void 0 ? void 0 : projectConfig.smartAccounts));
497
510
  if (!isAAEnabled) return;
498
511
 
499
512
  // merge smart account config from project config with core options, core options will take precedence over project config
500
513
  const _ref = (projectConfig === null || projectConfig === void 0 ? void 0 : projectConfig.smartAccounts) || {},
501
514
  {
502
- walletScope
515
+ walletScope,
516
+ eipStandard
503
517
  } = _ref,
504
518
  configWithoutWalletScope = _objectWithoutProperties(_ref, _excluded);
505
519
  const aaChainMap = new Map();
506
- 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) || [])];
520
+ 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) || [])];
507
521
  for (const chain of allAaChains) {
508
522
  const existingChain = aaChainMap.get(chain.chainId);
509
523
  if (!existingChain) aaChainMap.set(chain.chainId, chain);else aaChainMap.set(chain.chainId, _objectSpread(_objectSpread({}, existingChain), chain));
510
524
  }
511
- this.coreOptions.accountAbstractionConfig = _objectSpread(_objectSpread({}, deepmerge(configWithoutWalletScope || {}, this.coreOptions.accountAbstractionConfig || {})), {}, {
525
+ this.coreOptions.accountAbstractionConfig = _objectSpread(_objectSpread({
526
+ smartAccountEipStandard: eipStandard
527
+ }, deepmerge(configWithoutWalletScope || {}, this.coreOptions.accountAbstractionConfig || {})), {}, {
512
528
  chains: Array.from(aaChainMap.values())
513
529
  });
514
530
 
531
+ // if eipStandard is 7702, validate smart account type
532
+ const {
533
+ smartAccountEipStandard,
534
+ smartAccountType
535
+ } = this.coreOptions.accountAbstractionConfig;
536
+ const is7702SmartAccount = smartAccountEipStandard === SMART_ACCOUNT_EIP_STANDARD.EIP_7702;
537
+ if (is7702SmartAccount && smartAccountType && !EIP7702_SUPPORTED_SMART_ACCOUNT_TYPES.includes(smartAccountType)) {
538
+ throw WalletInitializationError.invalidParams(`Smart account type "${smartAccountType}" does not support EIP-7702. Supported: ${EIP7702_SUPPORTED_SMART_ACCOUNT_TYPES.join(", ")}`);
539
+ }
540
+
515
541
  // determine if we should use AA with external wallet
516
542
  if (this.coreOptions.useAAWithExternalWallet === undefined) {
517
543
  this.coreOptions.useAAWithExternalWallet = walletScope === SMART_ACCOUNT_WALLET_SCOPE.ALL;
@@ -527,13 +553,13 @@ class Web3AuthNoModal extends SafeEventEmitter {
527
553
  if (this.coreOptions.sessionTime) return;
528
554
  if (projectConfig.sessionTime) this.coreOptions.sessionTime = projectConfig.sessionTime;
529
555
  }
530
- initCachedConnectorAndChainId() {
556
+ async initCachedConnectorAndChainId() {
531
557
  // init chainId using cached chainId if it exists and is valid, otherwise use the defaultChainId or the first chain
532
558
  const cachedChainId = this.state.currentChainId;
533
559
  const isCachedChainIdValid = cachedChainId && this.coreOptions.chains.some(chain => chain.chainId === cachedChainId);
534
560
  if (this.coreOptions.defaultChainId && !isHexStrict(this.coreOptions.defaultChainId)) throw WalletInitializationError.invalidParams("Please provide a valid defaultChainId in constructor");
535
561
  const currentChainId = isCachedChainIdValid ? cachedChainId : this.coreOptions.defaultChainId || this.coreOptions.chains[0].chainId;
536
- this.setState({
562
+ await this.setState({
537
563
  currentChainId
538
564
  });
539
565
  }
@@ -593,7 +619,7 @@ class Web3AuthNoModal extends SafeEventEmitter {
593
619
  default_chain_id: defaultChain ? getCaipChainId(defaultChain) : undefined,
594
620
  default_chain_name: defaultChain === null || defaultChain === void 0 ? void 0 : defaultChain.displayName,
595
621
  logging_enabled: this.coreOptions.enableLogging,
596
- storage_type: this.coreOptions.storageType,
622
+ custom_storage: Boolean(this.coreOptions.storage),
597
623
  session_time: this.coreOptions.sessionTime,
598
624
  sfa_key_enabled: this.coreOptions.useSFAKey,
599
625
  mipd_enabled: this.coreOptions.multiInjectedProviderDiscovery,
@@ -617,7 +643,7 @@ class Web3AuthNoModal extends SafeEventEmitter {
617
643
  });
618
644
 
619
645
  // sync chainId
620
- this.commonJRPCProvider.on("chainChanged", chainId => this.setCurrentChain(chainId));
646
+ this.commonJRPCProvider.on("chainChanged", async chainId => this.setCurrentChain(chainId));
621
647
  }
622
648
  async setupConnector(connector) {
623
649
  this.subscribeToConnectorEvents(connector);
@@ -627,7 +653,7 @@ class Web3AuthNoModal extends SafeEventEmitter {
627
653
  await connector.init({
628
654
  autoConnect,
629
655
  chainId: initialChain.chainId,
630
- getIdentityToken: this.coreOptions.initialAuthenticationMode === CONNECTOR_INITIAL_AUTHENTICATION_MODE.CONNECT_AND_SIGN
656
+ getAuthTokenInfo: this.coreOptions.initialAuthenticationMode === CONNECTOR_INITIAL_AUTHENTICATION_MODE.CONNECT_AND_SIGN
631
657
  });
632
658
  } catch (e) {
633
659
  log.error(e, connector.name);
@@ -655,7 +681,9 @@ class Web3AuthNoModal extends SafeEventEmitter {
655
681
  if (isBrowser() && chainNamespaces.has(CHAIN_NAMESPACES.EIP155)) {
656
682
  // only set headless to true if modal SDK is used, otherwise just use the modal from native Metamask SDK
657
683
  connectorFns.push(metaMaskConnector(modalMode ? {
658
- headless: true
684
+ ui: {
685
+ headless: true
686
+ }
659
687
  } : undefined));
660
688
  }
661
689
  if (isMipdEnabled && isBrowser()) {
@@ -734,82 +762,105 @@ class Web3AuthNoModal extends SafeEventEmitter {
734
762
  }
735
763
  subscribeToConnectorEvents(connector) {
736
764
  connector.on(CONNECTOR_EVENTS.CONNECTED, async data => {
737
- var _this$currentChain3, _accountAbstractionCo;
738
765
  if (!this.commonJRPCProvider) throw WalletInitializationError.notFound(`CommonJrpcProvider not found`);
739
766
  const {
740
- provider,
741
- identityTokenInfo
767
+ ethereumProvider,
768
+ solanaWallet
742
769
  } = data;
743
- if (identityTokenInfo) {
744
- this.setState({
745
- idToken: identityTokenInfo.idToken
746
- });
747
- }
770
+ const isSolanaOnly = connector.connectorNamespace === CHAIN_NAMESPACES.SOLANA;
771
+
772
+ // Set connection and consent status SYNCHRONOUSLY before any await so the
773
+ // AUTHORIZED handler (which may fire during async work below) can detect the
774
+ // consent-required state. Create a deferred promise the AUTHORIZED handler
775
+ // will await to ensure consent userId + pre-approval are resolved first.
776
+ this.currentConnection = {
777
+ ethereumProvider: isSolanaOnly ? null : ethereumProvider ? this.commonJRPCProvider : null,
778
+ solanaWallet: solanaWallet !== null && solanaWallet !== void 0 ? solanaWallet : null,
779
+ connectorName: data.connectorName
780
+ };
781
+ this.currentConnectionReconnected = data.reconnected;
748
782
 
749
783
  // when ssr is enabled, we need to get the idToken from the connector.
750
784
  if (this.coreOptions.ssr) {
751
785
  try {
752
- const data = await connector.getIdentityToken();
786
+ var _data$accessToken, _data$refreshToken;
787
+ const data = await connector.getAuthTokenInfo();
753
788
  if (!data.idToken) throw WalletLoginError.connectionError("No idToken found");
754
- this.setState({
755
- idToken: data.idToken
789
+ await this.setState({
790
+ idToken: data.idToken,
791
+ accessToken: (_data$accessToken = data.accessToken) !== null && _data$accessToken !== void 0 ? _data$accessToken : null,
792
+ refreshToken: (_data$refreshToken = data.refreshToken) !== null && _data$refreshToken !== void 0 ? _data$refreshToken : null
756
793
  });
757
794
  } catch (error) {
758
795
  log.error(error);
796
+ this.currentConnection = null;
759
797
  this.status = CONNECTOR_STATUS.ERRORED;
760
798
  this.emit(CONNECTOR_EVENTS.ERRORED, error, this.loginMode);
761
799
  return;
762
800
  }
763
801
  }
764
- let finalProvider = provider.provider || provider;
765
802
 
766
- // setup AA provider if AA is enabled
767
- const {
768
- accountAbstractionConfig
769
- } = this.coreOptions;
770
- const isAaSupportedForCurrentChain = ((_this$currentChain3 = this.currentChain) === null || _this$currentChain3 === void 0 ? void 0 : _this$currentChain3.chainNamespace) === CHAIN_NAMESPACES.EIP155 && (accountAbstractionConfig === null || accountAbstractionConfig === void 0 || (_accountAbstractionCo = accountAbstractionConfig.chains) === null || _accountAbstractionCo === void 0 ? void 0 : _accountAbstractionCo.some(chain => {
771
- var _this$currentChain4;
772
- return chain.chainId === ((_this$currentChain4 = this.currentChain) === null || _this$currentChain4 === void 0 ? void 0 : _this$currentChain4.chainId);
773
- }));
774
- if (isAaSupportedForCurrentChain && (data.connector === WALLET_CONNECTORS.AUTH || this.coreOptions.useAAWithExternalWallet)) {
775
- var _accountAbstractionCo2;
803
+ // setup AA provider if AA is enabled (skip for EIP-7702; 7702 uses EOA + 5792/7702 RPC only)
804
+ if (ethereumProvider) {
805
+ var _this$currentChain4, _accountAbstractionCo;
806
+ let finalProvider = (ethereumProvider === null || ethereumProvider === void 0 ? void 0 : ethereumProvider.provider) || ethereumProvider;
776
807
  const {
777
- accountAbstractionProvider,
778
- toEoaProvider
779
- } = await import('./providers/account-abstraction-provider/index.js');
780
- // for embedded wallets, we use ws-embed provider which is AA provider, need to derive EOA provider
781
- const eoaProvider = data.connector === WALLET_CONNECTORS.AUTH ? await toEoaProvider(provider) : provider;
782
- const aaChainIds = new Set((accountAbstractionConfig === null || accountAbstractionConfig === void 0 || (_accountAbstractionCo2 = accountAbstractionConfig.chains) === null || _accountAbstractionCo2 === void 0 ? void 0 : _accountAbstractionCo2.map(chain => chain.chainId)) || []);
783
- const aaProvider = await accountAbstractionProvider({
784
- accountAbstractionConfig,
785
- provider: eoaProvider,
786
- chain: this.currentChain,
787
- chains: this.coreOptions.chains.filter(chain => aaChainIds.has(chain.chainId)),
788
- useProviderAsTransport: data.connector === WALLET_CONNECTORS.AUTH
789
- });
790
- this.aaProvider = aaProvider;
808
+ accountAbstractionConfig
809
+ } = this.coreOptions;
810
+ const is7702 = (accountAbstractionConfig === null || accountAbstractionConfig === void 0 ? void 0 : accountAbstractionConfig.smartAccountEipStandard) === SMART_ACCOUNT_EIP_STANDARD["EIP_7702"];
811
+ const isAaSupportedForCurrentChain = ((_this$currentChain4 = this.currentChain) === null || _this$currentChain4 === void 0 ? void 0 : _this$currentChain4.chainNamespace) === CHAIN_NAMESPACES.EIP155 && (accountAbstractionConfig === null || accountAbstractionConfig === void 0 || (_accountAbstractionCo = accountAbstractionConfig.chains) === null || _accountAbstractionCo === void 0 ? void 0 : _accountAbstractionCo.some(chain => {
812
+ var _this$currentChain5;
813
+ return chain.chainId === ((_this$currentChain5 = this.currentChain) === null || _this$currentChain5 === void 0 ? void 0 : _this$currentChain5.chainId);
814
+ }));
815
+ if (!is7702 && isAaSupportedForCurrentChain && (data.connectorName === WALLET_CONNECTORS.AUTH || this.coreOptions.useAAWithExternalWallet)) {
816
+ var _accountAbstractionCo2;
817
+ const {
818
+ accountAbstractionProvider,
819
+ toEoaProvider
820
+ } = await import('./providers/account-abstraction-provider/index.js');
821
+ // for embedded wallets, we use ws-embed provider which is AA provider, need to derive EOA provider
822
+ const eoaProvider = data.connectorName === WALLET_CONNECTORS.AUTH ? await toEoaProvider(ethereumProvider) : ethereumProvider;
823
+ const aaChainIds = new Set((accountAbstractionConfig === null || accountAbstractionConfig === void 0 || (_accountAbstractionCo2 = accountAbstractionConfig.chains) === null || _accountAbstractionCo2 === void 0 ? void 0 : _accountAbstractionCo2.map(chain => chain.chainId)) || []);
824
+ const aaProvider = await accountAbstractionProvider({
825
+ accountAbstractionConfig,
826
+ provider: eoaProvider,
827
+ chain: this.currentChain,
828
+ chains: this.coreOptions.chains.filter(chain => aaChainIds.has(chain.chainId)),
829
+ useProviderAsTransport: data.connectorName === WALLET_CONNECTORS.AUTH
830
+ });
831
+ this.aaProvider = aaProvider;
791
832
 
792
- // if external wallet is used and AA is enabled for external wallets, use AA provider
793
- // for embedded wallets, we use ws-embed provider which already supports AA
794
- if (data.connector !== WALLET_CONNECTORS.AUTH && this.coreOptions.useAAWithExternalWallet) {
795
- finalProvider = this.aaProvider;
833
+ // if external wallet is used and AA is enabled for external wallets, use AA provider
834
+ // for embedded wallets, we use ws-embed provider which already supports AA
835
+ if (data.connectorName !== WALLET_CONNECTORS.AUTH && this.coreOptions.useAAWithExternalWallet) {
836
+ finalProvider = this.aaProvider;
837
+ }
796
838
  }
839
+ this.commonJRPCProvider.updateProviderEngineProxy(finalProvider);
797
840
  }
798
- this.commonJRPCProvider.updateProviderEngineProxy(finalProvider);
799
- this.setState({
800
- connectedConnectorName: data.connector
841
+ await this.setState({
842
+ connectedConnectorName: data.connectorName
801
843
  });
802
- this.cacheWallet(data.connector);
803
- this.status = CONNECTOR_STATUS.CONNECTED;
804
- log.debug("connected", this.status, this.connectedConnectorName);
805
- this.connectToPlugins(_objectSpread(_objectSpread({}, data), {}, {
806
- connector: data.connector
807
- }));
808
- this.emit(CONNECTOR_EVENTS.CONNECTED, _objectSpread(_objectSpread({}, data), {}, {
809
- loginMode: this.loginMode
810
- }));
844
+ this.cacheWallet(data.connectorName);
845
+ const isConnectAndSign = this.coreOptions.initialAuthenticationMode === CONNECTOR_INITIAL_AUTHENTICATION_MODE.CONNECT_AND_SIGN;
846
+ if (this.consentRequired && !isConnectAndSign && !this.state.hasUserConsent) {
847
+ this.status = CONNECTOR_STATUS.CONSENT_REQUIRING;
848
+ this.emit(CONNECTOR_EVENTS.CONSENT_REQUIRING);
849
+ log.debug("consent_requiring", this.status, this.connectedConnectorName);
850
+ } else {
851
+ this.status = CONNECTOR_STATUS.CONNECTED;
852
+ log.debug("connected", this.status, this.connectedConnectorName);
853
+ this.connectToPlugins(_objectSpread(_objectSpread({}, data), {}, {
854
+ connector: data.connectorName
855
+ }));
856
+ this.emit(CONNECTOR_EVENTS.CONNECTED, _objectSpread(_objectSpread({}, data), {}, {
857
+ loginMode: this.loginMode
858
+ }));
859
+ }
811
860
  });
812
861
  connector.on(CONNECTOR_EVENTS.DISCONNECTED, async () => {
862
+ this.currentConnection = null;
863
+ this.currentConnectionReconnected = false;
813
864
  // re-setup commonJRPCProvider
814
865
  this.commonJRPCProvider.removeAllListeners();
815
866
  this.setupCommonJRPCProvider();
@@ -818,7 +869,7 @@ class Web3AuthNoModal extends SafeEventEmitter {
818
869
  this.status = CONNECTOR_STATUS.READY;
819
870
  const cachedConnector = this.state.cachedConnector;
820
871
  if (this.connectedConnectorName === cachedConnector) {
821
- this.clearCache();
872
+ await this.clearCache();
822
873
  }
823
874
  log.debug("disconnected", this.status, this.connectedConnectorName);
824
875
  await Promise.all(Object.values(this.plugins).map(async plugin => {
@@ -833,8 +884,9 @@ class Web3AuthNoModal extends SafeEventEmitter {
833
884
  log.error(error);
834
885
  });
835
886
  }));
836
- this.setState({
837
- connectedConnectorName: null
887
+ await this.setState({
888
+ connectedConnectorName: null,
889
+ hasUserConsent: undefined
838
890
  });
839
891
  this.emit(CONNECTOR_EVENTS.DISCONNECTED);
840
892
  });
@@ -843,24 +895,24 @@ class Web3AuthNoModal extends SafeEventEmitter {
843
895
  this.emit(CONNECTOR_EVENTS.CONNECTING, data);
844
896
  log.debug("connecting", this.status, this.connectedConnectorName);
845
897
  });
846
- connector.on(CONNECTOR_EVENTS.ERRORED, data => {
898
+ connector.on(CONNECTOR_EVENTS.ERRORED, async data => {
847
899
  this.status = CONNECTOR_STATUS.ERRORED;
848
- this.clearCache();
900
+ await this.clearCache();
849
901
  this.emit(CONNECTOR_EVENTS.ERRORED, data, this.loginMode);
850
902
  log.debug("errored", this.status, this.connectedConnectorName);
851
903
  });
852
- connector.on(CONNECTOR_EVENTS.REHYDRATION_ERROR, error => {
904
+ connector.on(CONNECTOR_EVENTS.REHYDRATION_ERROR, async error => {
853
905
  this.status = CONNECTOR_STATUS.READY;
854
- this.clearCache();
906
+ await this.clearCache();
855
907
  this.emit(CONNECTOR_EVENTS.REHYDRATION_ERROR, error);
856
908
  });
857
909
  connector.on(CONNECTOR_EVENTS.CONNECTOR_DATA_UPDATED, data => {
858
910
  log.debug("connector data updated", data);
859
911
  this.emit(CONNECTOR_EVENTS.CONNECTOR_DATA_UPDATED, data);
860
912
  });
861
- connector.on(CONNECTOR_EVENTS.CACHE_CLEAR, data => {
913
+ connector.on(CONNECTOR_EVENTS.CACHE_CLEAR, async data => {
862
914
  log.debug("connector cache clear", data);
863
- this.clearCache();
915
+ await this.clearCache();
864
916
  });
865
917
  connector.on(CONNECTOR_EVENTS.MFA_ENABLED, isMFAEnabled => {
866
918
  var _authConnector$authIn4;
@@ -881,22 +933,32 @@ class Web3AuthNoModal extends SafeEventEmitter {
881
933
  this.emit(CONNECTOR_EVENTS.AUTHORIZING, data);
882
934
  log.debug("authorizing", this.status, this.connectedConnectorName);
883
935
  });
884
- connector.on(CONNECTOR_EVENTS.AUTHORIZED, data => {
885
- this.status = CONNECTOR_STATUS.AUTHORIZED;
886
- this.setState({
887
- idToken: data.identityTokenInfo.idToken
936
+ connector.on(CONNECTOR_EVENTS.AUTHORIZED, async data => {
937
+ var _data$authTokenInfo$a, _data$authTokenInfo$r;
938
+ await this.setState({
939
+ idToken: data.authTokenInfo.idToken,
940
+ accessToken: (_data$authTokenInfo$a = data.authTokenInfo.accessToken) !== null && _data$authTokenInfo$a !== void 0 ? _data$authTokenInfo$a : null,
941
+ refreshToken: (_data$authTokenInfo$r = data.authTokenInfo.refreshToken) !== null && _data$authTokenInfo$r !== void 0 ? _data$authTokenInfo$r : null
888
942
  });
889
- this.emit(CONNECTOR_EVENTS.AUTHORIZED, data);
890
- log.debug("authorized", this.status, this.connectedConnectorName);
943
+ // if the user has not consented yet, we will ask for consent
944
+ if (this.consentRequired && this.currentConnection && !this.state.hasUserConsent) {
945
+ this.status = CONNECTOR_STATUS.CONSENT_REQUIRING;
946
+ this.emit(CONNECTOR_EVENTS.CONSENT_REQUIRING);
947
+ log.debug("consent_requiring", this.status, this.connectedConnectorName);
948
+ } else {
949
+ this.status = CONNECTOR_STATUS.AUTHORIZED;
950
+ this.emit(CONNECTOR_EVENTS.AUTHORIZED, data);
951
+ log.debug("authorized", this.status, this.connectedConnectorName);
952
+ }
891
953
  });
892
954
  }
893
955
  checkInitRequirements() {
894
956
  if (this.status === CONNECTOR_STATUS.READY) throw WalletInitializationError.notReady("Connector is already initialized");
895
957
  }
896
958
  checkIfAutoConnect(connector) {
897
- var _this$currentChain5;
959
+ var _this$currentChain6;
898
960
  let autoConnect = this.cachedConnector === connector.name;
899
- if (autoConnect && (_this$currentChain5 = this.currentChain) !== null && _this$currentChain5 !== void 0 && _this$currentChain5.chainNamespace) {
961
+ if (autoConnect && (_this$currentChain6 = this.currentChain) !== null && _this$currentChain6 !== void 0 && _this$currentChain6.chainNamespace) {
900
962
  if (connector.connectorNamespace === CONNECTOR_NAMESPACES.MULTICHAIN) autoConnect = true;else autoConnect = connector.connectorNamespace === this.currentChain.chainNamespace;
901
963
  }
902
964
  return autoConnect;
@@ -915,27 +977,57 @@ class Web3AuthNoModal extends SafeEventEmitter {
915
977
  }
916
978
  return initialChain;
917
979
  }
918
- cacheWallet(walletName) {
919
- this.setState({
980
+ async completeConsentAcceptance() {
981
+ const connection = this.currentConnection;
982
+ if (!connection) {
983
+ throw WalletLoginError.connectionError("Cannot accept consent: no active connection");
984
+ }
985
+ if (this.status !== CONNECTOR_STATUS.CONSENT_REQUIRING) {
986
+ throw WalletLoginError.connectionError("Cannot accept consent: not in consent_requiring state");
987
+ }
988
+ await this.setState({
989
+ hasUserConsent: true
990
+ });
991
+ const isConnectAndSign = this.coreOptions.initialAuthenticationMode === CONNECTOR_INITIAL_AUTHENTICATION_MODE.CONNECT_AND_SIGN;
992
+ if (isConnectAndSign && this.state.idToken) {
993
+ this.status = CONNECTOR_STATUS.AUTHORIZED;
994
+ log.debug("consent accepted, authorized", this.status, this.connectedConnectorName);
995
+ } else {
996
+ this.status = CONNECTOR_STATUS.CONNECTED;
997
+ log.debug("consent accepted, connected", this.status, this.connectedConnectorName);
998
+ }
999
+
1000
+ // connect to wallet-service plugin
1001
+ if (this.connectedConnectorName === WALLET_CONNECTORS.AUTH) {
1002
+ this.connectToPlugins({
1003
+ connector: this.connectedConnectorName
1004
+ });
1005
+ }
1006
+ this.emit(CONNECTOR_EVENTS.CONSENT_ACCEPTED, {
1007
+ reconnected: this.currentConnectionReconnected
1008
+ });
1009
+ }
1010
+ async cacheWallet(walletName) {
1011
+ await this.setState({
920
1012
  cachedConnector: walletName
921
1013
  });
922
1014
  }
923
- setCurrentChain(chainId) {
1015
+ async setCurrentChain(chainId) {
924
1016
  if (chainId === this.currentChainId) return;
925
1017
  const newChain = this.coreOptions.chains.find(chain => chain.chainId === chainId);
926
1018
  if (!newChain) throw WalletInitializationError.invalidParams(`Invalid chainId: ${chainId}`);
927
- this.setState({
1019
+ await this.setState({
928
1020
  currentChainId: chainId
929
1021
  });
930
1022
  }
931
1023
  connectToPlugins(data) {
932
1024
  Object.values(this.plugins).map(async plugin => {
933
1025
  try {
934
- var _this$currentChain6;
1026
+ var _this$currentChain7;
935
1027
  // skip if it's not compatible with the connector
936
1028
  if (!plugin.SUPPORTED_CONNECTORS.includes(data.connector)) return;
937
1029
  // skip if it's not compatible with the current chain
938
- if (plugin.pluginNamespace !== PLUGIN_NAMESPACES.MULTICHAIN && plugin.pluginNamespace !== ((_this$currentChain6 = this.currentChain) === null || _this$currentChain6 === void 0 ? void 0 : _this$currentChain6.chainNamespace)) return;
1030
+ if (plugin.pluginNamespace !== PLUGIN_NAMESPACES.MULTICHAIN && plugin.pluginNamespace !== ((_this$currentChain7 = this.currentChain) === null || _this$currentChain7 === void 0 ? void 0 : _this$currentChain7.chainNamespace)) return;
939
1031
  // skip if it's already connected
940
1032
  if (plugin.status === PLUGIN_STATUS.CONNECTED) return;
941
1033
  await plugin.initWithWeb3Auth(this, this.coreOptions.uiConfig, this.analytics);
@@ -949,27 +1041,27 @@ class Web3AuthNoModal extends SafeEventEmitter {
949
1041
  }
950
1042
  });
951
1043
  }
952
- setState(newState) {
1044
+ async setState(newState) {
953
1045
  this.state = _objectSpread(_objectSpread({}, this.state), newState);
954
- this.storage.setItem(WEB3AUTH_STATE_STORAGE_KEY, JSON.stringify(this.state));
1046
+ await this.storage.set(WEB3AUTH_STATE_STORAGE_KEY, JSON.stringify(this.state));
955
1047
  }
956
- loadState(initialState) {
1048
+ async loadState(initialState) {
957
1049
  if (initialState) {
958
- this.state = initialState;
1050
+ this.state = _objectSpread(_objectSpread({}, this.state), initialState);
959
1051
  return;
960
1052
  }
961
- const state = this.storage.getItem(WEB3AUTH_STATE_STORAGE_KEY);
1053
+ const state = await this.storage.get(WEB3AUTH_STATE_STORAGE_KEY);
962
1054
  if (!state) return;
963
1055
  this.state = deserialize(state);
964
1056
  }
965
1057
  getStorageMethod() {
966
- if (this.coreOptions.ssr || this.coreOptions.storageType === "cookies") return cookieStorage({
967
- expiry: this.coreOptions.sessionTime
1058
+ var _this$coreOptions$sto;
1059
+ if ((_this$coreOptions$sto = this.coreOptions.storage) !== null && _this$coreOptions$sto !== void 0 && _this$coreOptions$sto.sessionId) return this.coreOptions.storage.sessionId;
1060
+ if (this.coreOptions.ssr) return new CookieStorage({
1061
+ maxAge: this.coreOptions.sessionTime
968
1062
  });
969
- if (this.coreOptions.storageType === "session" && storageAvailable("sessionStorage")) return window.sessionStorage;
970
- if (this.coreOptions.storageType === "local" && storageAvailable("localStorage")) return window.localStorage;
971
- // If no storage is available, use a memory store.
972
- return new MemoryStore();
1063
+ if (storageAvailable("localStorage")) return new LocalStorageAdapter();
1064
+ return new MemoryStorage();
973
1065
  }
974
1066
  }
975
1067