@web3auth/no-modal 10.16.0 → 11.0.0-beta.1

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 (356) hide show
  1. package/dist/lib.cjs/account-linking/index.js +8 -0
  2. package/dist/lib.cjs/account-linking/react.js +95 -0
  3. package/dist/lib.cjs/account-linking/rest.js +54 -0
  4. package/dist/lib.cjs/account-linking/vue.js +98 -0
  5. package/dist/lib.cjs/base/analytics.js +13 -1
  6. package/dist/lib.cjs/base/connector/baseConnector.js +104 -2
  7. package/dist/lib.cjs/base/connector/connectorStatus.js +2 -0
  8. package/dist/lib.cjs/base/connector/constants.js +6 -2
  9. package/dist/lib.cjs/base/connector/utils.js +0 -21
  10. package/dist/lib.cjs/base/constants.js +4 -0
  11. package/dist/lib.cjs/base/cookie.js +6 -20
  12. package/dist/lib.cjs/base/errors/index.js +84 -12
  13. package/dist/lib.cjs/base/utils.js +22 -11
  14. package/dist/lib.cjs/base/wallet/index.js +7 -0
  15. package/dist/lib.cjs/base/wallet/solana.js +83 -0
  16. package/dist/lib.cjs/connectors/auth-connector/authConnector.js +566 -93
  17. package/dist/lib.cjs/connectors/auth-connector/authSolanaWallet.js +187 -0
  18. package/dist/lib.cjs/connectors/base-evm-connector/baseEvmConnector.js +55 -58
  19. package/dist/lib.cjs/connectors/base-solana-connector/baseSolanaConnector.js +57 -66
  20. package/dist/lib.cjs/connectors/coinbase-connector/coinbaseConnector.js +19 -14
  21. package/dist/lib.cjs/connectors/injected-evm-connector/injectedEvmConnector.js +18 -13
  22. package/dist/lib.cjs/connectors/injected-solana-connector/walletStandardConnector.js +24 -36
  23. package/dist/lib.cjs/connectors/metamask-connector/metamaskConnector.js +350 -131
  24. package/dist/lib.cjs/connectors/utils.js +8 -2
  25. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +12 -38
  26. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/config.js +4 -3
  27. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +111 -73
  28. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Utils.js +24 -51
  29. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/wcSolanaWallet.js +144 -0
  30. package/dist/lib.cjs/index.js +55 -83
  31. package/dist/lib.cjs/noModal.js +957 -169
  32. package/dist/lib.cjs/plugins/wallet-services-plugin/plugin.js +23 -39
  33. package/dist/lib.cjs/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +12 -10
  34. package/dist/lib.cjs/providers/account-abstraction-provider/providers/utils.js +8 -6
  35. package/dist/lib.cjs/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +47 -44
  36. package/dist/lib.cjs/providers/base-provider/CommonJRPCProvider.js +1 -3
  37. package/dist/lib.cjs/providers/base-provider/baseProvider.js +69 -35
  38. package/dist/lib.cjs/providers/base-provider/commonPrivateKeyProvider.js +8 -11
  39. package/dist/lib.cjs/providers/base-provider/index.js +0 -1
  40. package/dist/lib.cjs/providers/base-provider/jrpcClient.js +18 -19
  41. package/dist/lib.cjs/providers/base-provider/utils.js +0 -3
  42. package/dist/lib.cjs/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +22 -43
  43. package/dist/lib.cjs/providers/ethereum-provider/rpc/jrpcClient.js +18 -19
  44. package/dist/lib.cjs/providers/ethereum-provider/rpc/walletMiddleware.js +200 -0
  45. package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +9 -18
  46. package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.js +2 -1
  47. package/dist/lib.cjs/providers/xrpl-provider/rpc/JrpcClient.js +19 -26
  48. package/dist/lib.cjs/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +46 -37
  49. package/dist/lib.cjs/react/context/WalletServicesInnerContext.js +2 -69
  50. package/dist/lib.cjs/react/context/Web3AuthInnerContext.js +6 -161
  51. package/dist/lib.cjs/react/context/useWalletServicesContextValue.js +76 -0
  52. package/dist/lib.cjs/react/context/useWeb3AuthInnerContextValue.js +216 -0
  53. package/dist/lib.cjs/react/hooks/{useIdentityToken.js → useAuthTokenInfo.js} +6 -7
  54. package/dist/lib.cjs/react/hooks/useCheckout.js +4 -2
  55. package/dist/lib.cjs/react/hooks/useFunding.js +4 -2
  56. package/dist/lib.cjs/react/hooks/useReceive.js +4 -2
  57. package/dist/lib.cjs/react/hooks/useSwap.js +4 -2
  58. package/dist/lib.cjs/react/hooks/useWalletConnectScanner.js +4 -2
  59. package/dist/lib.cjs/react/hooks/useWalletServicesPlugin.js +3 -10
  60. package/dist/lib.cjs/react/hooks/useWalletUI.js +4 -2
  61. package/dist/lib.cjs/react/hooks/useWallets.js +51 -0
  62. package/dist/lib.cjs/react/hooks/useWeb3Auth.js +1 -22
  63. package/dist/lib.cjs/react/hooks/useWeb3AuthConnect.js +2 -2
  64. package/dist/lib.cjs/react/hooks/useWeb3AuthInner.js +4 -2
  65. package/dist/lib.cjs/react/index.js +12 -2
  66. package/dist/lib.cjs/react/solana/hooks/useSignAndSendTransaction.js +22 -4
  67. package/dist/lib.cjs/react/solana/hooks/useSignMessage.js +20 -2
  68. package/dist/lib.cjs/react/solana/hooks/useSignTransaction.js +22 -3
  69. package/dist/lib.cjs/react/solana/hooks/useSolanaWallet.js +34 -51
  70. package/dist/lib.cjs/react/solana/index.js +2 -0
  71. package/dist/lib.cjs/react/solana/provider.js +169 -0
  72. package/dist/lib.cjs/react/wagmi/provider.js +10 -8
  73. package/dist/lib.cjs/types/account-linking/index.d.ts +2 -0
  74. package/dist/lib.cjs/types/account-linking/interfaces.d.ts +90 -0
  75. package/dist/lib.cjs/types/account-linking/react.d.ts +19 -0
  76. package/dist/lib.cjs/types/account-linking/rest.d.ts +9 -0
  77. package/dist/lib.cjs/types/account-linking/vue.d.ts +20 -0
  78. package/dist/lib.cjs/types/base/analytics.d.ts +9 -0
  79. package/dist/lib.cjs/types/base/connector/baseConnector.d.ts +26 -5
  80. package/dist/lib.cjs/types/base/connector/connectorStatus.d.ts +1 -0
  81. package/dist/lib.cjs/types/base/connector/constants.d.ts +5 -0
  82. package/dist/lib.cjs/types/base/connector/interfaces.d.ts +72 -16
  83. package/dist/lib.cjs/types/base/connector/utils.d.ts +0 -3
  84. package/dist/lib.cjs/types/base/constants.d.ts +1 -0
  85. package/dist/lib.cjs/types/base/cookie.d.ts +0 -7
  86. package/dist/lib.cjs/types/base/core/IWeb3Auth.d.ts +57 -13
  87. package/dist/lib.cjs/types/base/errors/index.d.ts +15 -3
  88. package/dist/lib.cjs/types/base/hooks/index.d.ts +2 -2
  89. package/dist/lib.cjs/types/base/interfaces.d.ts +8 -2
  90. package/dist/lib.cjs/types/base/utils.d.ts +9 -2
  91. package/dist/lib.cjs/types/base/wallet/index.d.ts +3 -0
  92. package/dist/lib.cjs/types/base/wallet/solana.d.ts +19 -0
  93. package/dist/lib.cjs/types/connectors/auth-connector/authConnector.d.ts +37 -8
  94. package/dist/lib.cjs/types/connectors/auth-connector/authSolanaWallet.d.ts +35 -0
  95. package/dist/lib.cjs/types/connectors/auth-connector/interface.d.ts +77 -2
  96. package/dist/lib.cjs/types/connectors/base-evm-connector/baseEvmConnector.d.ts +8 -2
  97. package/dist/lib.cjs/types/connectors/base-solana-connector/baseSolanaConnector.d.ts +8 -2
  98. package/dist/lib.cjs/types/connectors/injected-evm-connector/injectedEvmConnector.d.ts +2 -2
  99. package/dist/lib.cjs/types/connectors/injected-solana-connector/walletStandardConnector.d.ts +10 -7
  100. package/dist/lib.cjs/types/connectors/metamask-connector/metamaskConnector.d.ts +35 -3
  101. package/dist/lib.cjs/types/connectors/utils.d.ts +2 -0
  102. package/dist/lib.cjs/types/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.d.ts +0 -1
  103. package/dist/lib.cjs/types/connectors/wallet-connect-v2-connector/walletConnectV2Utils.d.ts +1 -5
  104. package/dist/lib.cjs/types/connectors/wallet-connect-v2-connector/wcSolanaWallet.d.ts +26 -0
  105. package/dist/lib.cjs/types/index.d.ts +1 -0
  106. package/dist/lib.cjs/types/noModal.d.ts +113 -10
  107. package/dist/lib.cjs/types/plugins/wallet-services-plugin/plugin.d.ts +1 -4
  108. package/dist/lib.cjs/types/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.d.ts +4 -4
  109. package/dist/lib.cjs/types/providers/base-provider/baseProvider.d.ts +7 -0
  110. package/dist/lib.cjs/types/providers/base-provider/jrpcClient.d.ts +2 -5
  111. package/dist/lib.cjs/types/providers/base-provider/utils.d.ts +0 -1
  112. package/dist/lib.cjs/types/providers/ethereum-provider/index.d.ts +0 -1
  113. package/dist/lib.cjs/types/providers/ethereum-provider/rpc/ethRpcMiddlewares.d.ts +4 -4
  114. package/dist/lib.cjs/types/providers/ethereum-provider/rpc/index.d.ts +1 -1
  115. package/dist/lib.cjs/types/providers/ethereum-provider/rpc/jrpcClient.d.ts +2 -5
  116. package/dist/lib.cjs/types/providers/ethereum-provider/rpc/walletMiddleware.d.ts +3 -0
  117. package/dist/lib.cjs/types/providers/index.d.ts +0 -1
  118. package/dist/lib.cjs/types/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.d.ts +0 -1
  119. package/dist/lib.cjs/types/providers/xrpl-provider/rpc/JrpcClient.d.ts +3 -7
  120. package/dist/lib.cjs/types/providers/xrpl-provider/rpc/xrplRpcMiddlewares.d.ts +5 -12
  121. package/dist/lib.cjs/types/react/context/index.d.ts +4 -0
  122. package/dist/lib.cjs/types/react/context/useWalletServicesContextValue.d.ts +12 -0
  123. package/dist/lib.cjs/types/react/context/useWeb3AuthInnerContextValue.d.ts +26 -0
  124. package/dist/lib.cjs/types/react/hooks/index.d.ts +2 -1
  125. package/dist/lib.cjs/types/react/hooks/{useIdentityToken.d.ts → useAuthTokenInfo.d.ts} +4 -4
  126. package/dist/lib.cjs/types/react/hooks/useWallets.d.ts +8 -0
  127. package/dist/lib.cjs/types/react/hooks/useWeb3Auth.d.ts +1 -2
  128. package/dist/lib.cjs/types/react/hooks/useWeb3AuthConnect.d.ts +2 -2
  129. package/dist/lib.cjs/types/react/index.d.ts +1 -0
  130. package/dist/lib.cjs/types/react/solana/hooks/useSignAndSendTransaction.d.ts +7 -2
  131. package/dist/lib.cjs/types/react/solana/hooks/useSignTransaction.d.ts +8 -3
  132. package/dist/lib.cjs/types/react/solana/hooks/useSolanaWallet.d.ts +17 -4
  133. package/dist/lib.cjs/types/react/solana/index.d.ts +1 -0
  134. package/dist/lib.cjs/types/react/solana/provider.d.ts +26 -0
  135. package/dist/lib.cjs/types/vue/composables/index.d.ts +3 -1
  136. package/dist/lib.cjs/types/vue/composables/{useIdentityToken.d.ts → useAuthTokenInfo.d.ts} +3 -3
  137. package/dist/lib.cjs/types/vue/composables/useInjectedWeb3AuthInnerContext.d.ts +1 -0
  138. package/dist/lib.cjs/types/vue/composables/useWallets.d.ts +9 -0
  139. package/dist/lib.cjs/types/vue/composables/useWeb3Auth.d.ts +1 -2
  140. package/dist/lib.cjs/types/vue/composables/useWeb3AuthConnect.d.ts +2 -2
  141. package/dist/lib.cjs/types/vue/index.d.ts +2 -0
  142. package/dist/lib.cjs/types/vue/interfaces.d.ts +2 -2
  143. package/dist/lib.cjs/types/vue/solana/composables/index.d.ts +1 -0
  144. package/dist/lib.cjs/types/vue/solana/composables/useSignAndSendTransaction.d.ts +7 -2
  145. package/dist/lib.cjs/types/vue/solana/composables/useSignTransaction.d.ts +8 -3
  146. package/dist/lib.cjs/types/vue/solana/composables/useSolanaClient.d.ts +7 -0
  147. package/dist/lib.cjs/types/vue/solana/composables/useSolanaWallet.d.ts +17 -4
  148. package/dist/lib.cjs/types/vue/solana/constants.d.ts +3 -0
  149. package/dist/lib.cjs/types/vue/solana/index.d.ts +2 -0
  150. package/dist/lib.cjs/types/vue/solana/provider.d.ts +8 -0
  151. package/dist/lib.cjs/types/vue/useWalletServicesInnerContextValue.d.ts +13 -0
  152. package/dist/lib.cjs/types/vue/useWeb3AuthInnerContextValue.d.ts +26 -0
  153. package/dist/lib.cjs/types/x402/index.d.ts +43 -0
  154. package/dist/lib.cjs/types/x402/interfaces.d.ts +11 -0
  155. package/dist/lib.cjs/types/x402/react.d.ts +17 -0
  156. package/dist/lib.cjs/types/x402/vue.d.ts +18 -0
  157. package/dist/lib.cjs/vue/WalletServicesInnerProvider.js +9 -54
  158. package/dist/lib.cjs/vue/Web3AuthProvider.js +16 -177
  159. package/dist/lib.cjs/vue/composables/{useIdentityToken.js → useAuthTokenInfo.js} +10 -8
  160. package/dist/lib.cjs/vue/composables/useCheckout.js +4 -2
  161. package/dist/lib.cjs/vue/composables/useEnableMFA.js +4 -2
  162. package/dist/lib.cjs/vue/composables/useFunding.js +4 -2
  163. package/dist/lib.cjs/vue/composables/useInjectedWeb3AuthInnerContext.js +29 -0
  164. package/dist/lib.cjs/vue/composables/useManageMFA.js +4 -2
  165. package/dist/lib.cjs/vue/composables/useReceive.js +4 -2
  166. package/dist/lib.cjs/vue/composables/useSwap.js +4 -2
  167. package/dist/lib.cjs/vue/composables/useSwitchChain.js +4 -2
  168. package/dist/lib.cjs/vue/composables/useWalletConnectScanner.js +4 -2
  169. package/dist/lib.cjs/vue/composables/useWalletUI.js +4 -2
  170. package/dist/lib.cjs/vue/composables/useWallets.js +52 -0
  171. package/dist/lib.cjs/vue/composables/useWeb3Auth.js +1 -26
  172. package/dist/lib.cjs/vue/composables/useWeb3AuthConnect.js +6 -4
  173. package/dist/lib.cjs/vue/composables/useWeb3AuthDisconnect.js +4 -2
  174. package/dist/lib.cjs/vue/composables/useWeb3AuthInner.js +2 -20
  175. package/dist/lib.cjs/vue/composables/useWeb3AuthUser.js +4 -2
  176. package/dist/lib.cjs/vue/index.js +10 -2
  177. package/dist/lib.cjs/vue/solana/composables/useSignAndSendTransaction.js +6 -3
  178. package/dist/lib.cjs/vue/solana/composables/useSignMessage.js +6 -3
  179. package/dist/lib.cjs/vue/solana/composables/useSignTransaction.js +6 -3
  180. package/dist/lib.cjs/vue/solana/composables/useSolanaClient.js +14 -0
  181. package/dist/lib.cjs/vue/solana/composables/useSolanaWallet.js +60 -41
  182. package/dist/lib.cjs/vue/solana/constants.js +5 -0
  183. package/dist/lib.cjs/vue/solana/index.js +6 -0
  184. package/dist/lib.cjs/vue/solana/provider.js +110 -0
  185. package/dist/lib.cjs/vue/useWalletServicesInnerContextValue.js +75 -0
  186. package/dist/lib.cjs/vue/useWeb3AuthInnerContextValue.js +226 -0
  187. package/dist/lib.cjs/vue/wagmi/provider.js +28 -12
  188. package/dist/lib.cjs/x402/index.js +175 -0
  189. package/dist/lib.cjs/x402/interfaces.js +5 -0
  190. package/dist/lib.cjs/x402/react.js +64 -0
  191. package/dist/lib.cjs/x402/vue.js +58 -0
  192. package/dist/lib.esm/account-linking/index.js +1 -0
  193. package/dist/lib.esm/account-linking/react.js +74 -0
  194. package/dist/lib.esm/account-linking/rest.js +51 -0
  195. package/dist/lib.esm/account-linking/vue.js +78 -0
  196. package/dist/lib.esm/base/analytics.js +13 -1
  197. package/dist/lib.esm/base/connector/baseConnector.js +104 -2
  198. package/dist/lib.esm/base/connector/connectorStatus.js +2 -1
  199. package/dist/lib.esm/base/connector/constants.js +6 -2
  200. package/dist/lib.esm/base/connector/utils.js +1 -19
  201. package/dist/lib.esm/base/constants.js +4 -1
  202. package/dist/lib.esm/base/cookie.js +7 -20
  203. package/dist/lib.esm/base/errors/index.js +84 -13
  204. package/dist/lib.esm/base/utils.js +22 -7
  205. package/dist/lib.esm/base/wallet/index.js +2 -1
  206. package/dist/lib.esm/base/wallet/solana.js +81 -0
  207. package/dist/lib.esm/connectors/auth-connector/authConnector.js +527 -57
  208. package/dist/lib.esm/connectors/auth-connector/authSolanaWallet.js +175 -0
  209. package/dist/lib.esm/connectors/base-evm-connector/baseEvmConnector.js +55 -58
  210. package/dist/lib.esm/connectors/base-solana-connector/baseSolanaConnector.js +57 -66
  211. package/dist/lib.esm/connectors/coinbase-connector/coinbaseConnector.js +16 -13
  212. package/dist/lib.esm/connectors/injected-evm-connector/injectedEvmConnector.js +16 -13
  213. package/dist/lib.esm/connectors/injected-solana-connector/walletStandardConnector.js +22 -34
  214. package/dist/lib.esm/connectors/metamask-connector/metamaskConnector.js +366 -132
  215. package/dist/lib.esm/connectors/utils.js +9 -4
  216. package/dist/lib.esm/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +12 -31
  217. package/dist/lib.esm/connectors/wallet-connect-v2-connector/config.js +1 -1
  218. package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +110 -73
  219. package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Utils.js +21 -49
  220. package/dist/lib.esm/connectors/wallet-connect-v2-connector/wcSolanaWallet.js +130 -0
  221. package/dist/lib.esm/index.js +12 -19
  222. package/dist/lib.esm/noModal.js +975 -177
  223. package/dist/lib.esm/plugins/wallet-services-plugin/plugin.js +20 -39
  224. package/dist/lib.esm/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +9 -9
  225. package/dist/lib.esm/providers/account-abstraction-provider/providers/utils.js +3 -3
  226. package/dist/lib.esm/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +48 -45
  227. package/dist/lib.esm/providers/base-provider/CommonJRPCProvider.js +2 -4
  228. package/dist/lib.esm/providers/base-provider/baseProvider.js +68 -38
  229. package/dist/lib.esm/providers/base-provider/commonPrivateKeyProvider.js +9 -12
  230. package/dist/lib.esm/providers/base-provider/index.js +1 -1
  231. package/dist/lib.esm/providers/base-provider/jrpcClient.js +20 -19
  232. package/dist/lib.esm/providers/base-provider/utils.js +1 -3
  233. package/dist/lib.esm/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +23 -44
  234. package/dist/lib.esm/providers/ethereum-provider/rpc/jrpcClient.js +20 -19
  235. package/dist/lib.esm/providers/ethereum-provider/rpc/walletMiddleware.js +201 -0
  236. package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +6 -17
  237. package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.js +2 -1
  238. package/dist/lib.esm/providers/xrpl-provider/rpc/JrpcClient.js +21 -25
  239. package/dist/lib.esm/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +48 -38
  240. package/dist/lib.esm/react/context/WalletServicesInnerContext.js +3 -57
  241. package/dist/lib.esm/react/context/Web3AuthInnerContext.js +7 -152
  242. package/dist/lib.esm/react/context/useWalletServicesContextValue.js +59 -0
  243. package/dist/lib.esm/react/context/useWeb3AuthInnerContextValue.js +203 -0
  244. package/dist/lib.esm/react/hooks/{useIdentityToken.js → useAuthTokenInfo.js} +6 -7
  245. package/dist/lib.esm/react/hooks/useWalletServicesPlugin.js +3 -10
  246. package/dist/lib.esm/react/hooks/useWallets.js +33 -0
  247. package/dist/lib.esm/react/hooks/useWeb3Auth.js +1 -22
  248. package/dist/lib.esm/react/hooks/useWeb3AuthConnect.js +2 -2
  249. package/dist/lib.esm/react/index.js +6 -1
  250. package/dist/lib.esm/react/solana/hooks/useSignAndSendTransaction.js +6 -4
  251. package/dist/lib.esm/react/solana/hooks/useSignMessage.js +4 -2
  252. package/dist/lib.esm/react/solana/hooks/useSignTransaction.js +6 -3
  253. package/dist/lib.esm/react/solana/hooks/useSolanaWallet.js +33 -28
  254. package/dist/lib.esm/react/solana/index.js +1 -0
  255. package/dist/lib.esm/react/solana/provider.js +153 -0
  256. package/dist/lib.esm/react/wagmi/provider.js +8 -8
  257. package/dist/lib.esm/vue/WalletServicesInnerProvider.js +4 -54
  258. package/dist/lib.esm/vue/Web3AuthProvider.js +7 -179
  259. package/dist/lib.esm/vue/composables/{useIdentityToken.js → useAuthTokenInfo.js} +6 -6
  260. package/dist/lib.esm/vue/composables/useCheckout.js +1 -1
  261. package/dist/lib.esm/vue/composables/useFunding.js +1 -1
  262. package/dist/lib.esm/vue/composables/useInjectedWeb3AuthInnerContext.js +11 -0
  263. package/dist/lib.esm/vue/composables/useReceive.js +1 -1
  264. package/dist/lib.esm/vue/composables/useSwap.js +1 -1
  265. package/dist/lib.esm/vue/composables/useWalletConnectScanner.js +1 -1
  266. package/dist/lib.esm/vue/composables/useWalletUI.js +1 -1
  267. package/dist/lib.esm/vue/composables/useWallets.js +35 -0
  268. package/dist/lib.esm/vue/composables/useWeb3Auth.js +1 -26
  269. package/dist/lib.esm/vue/composables/useWeb3AuthConnect.js +2 -2
  270. package/dist/lib.esm/vue/composables/useWeb3AuthInner.js +2 -6
  271. package/dist/lib.esm/vue/index.js +5 -1
  272. package/dist/lib.esm/vue/solana/composables/useSignAndSendTransaction.js +2 -1
  273. package/dist/lib.esm/vue/solana/composables/useSignMessage.js +2 -1
  274. package/dist/lib.esm/vue/solana/composables/useSignTransaction.js +3 -2
  275. package/dist/lib.esm/vue/solana/composables/useSolanaClient.js +12 -0
  276. package/dist/lib.esm/vue/solana/composables/useSolanaWallet.js +53 -35
  277. package/dist/lib.esm/vue/solana/constants.js +3 -0
  278. package/dist/lib.esm/vue/solana/index.js +3 -0
  279. package/dist/lib.esm/vue/solana/provider.js +99 -0
  280. package/dist/lib.esm/vue/useWalletServicesInnerContextValue.js +58 -0
  281. package/dist/lib.esm/vue/useWeb3AuthInnerContextValue.js +213 -0
  282. package/dist/lib.esm/vue/wagmi/provider.js +26 -12
  283. package/dist/lib.esm/x402/index.js +170 -0
  284. package/dist/lib.esm/x402/interfaces.js +3 -0
  285. package/dist/lib.esm/x402/react.js +59 -0
  286. package/dist/lib.esm/x402/vue.js +54 -0
  287. package/package.json +102 -53
  288. package/dist/lib.cjs/providers/ethereum-mpc-provider/index.js +0 -7
  289. package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +0 -224
  290. package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +0 -177
  291. package/dist/lib.cjs/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +0 -21
  292. package/dist/lib.cjs/providers/ethereum-provider/providers/converter.js +0 -88
  293. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.js +0 -27
  294. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +0 -383
  295. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +0 -8
  296. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +0 -93
  297. package/dist/lib.cjs/providers/ethereum-provider/providers/utils.js +0 -29
  298. package/dist/lib.cjs/providers/ethereum-provider/rpc/walletMidddleware.js +0 -251
  299. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +0 -65
  300. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +0 -45
  301. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/utils.js +0 -16
  302. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +0 -103
  303. package/dist/lib.cjs/providers/solana-provider/rpc/JrpcClient.js +0 -47
  304. package/dist/lib.cjs/providers/solana-provider/rpc/solanaRpcMiddlewares.js +0 -97
  305. package/dist/lib.cjs/providers/solana-provider/solanaWallet.js +0 -91
  306. package/dist/lib.cjs/types/connectors/injected-solana-connector/utils.d.ts +0 -3
  307. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/index.d.ts +0 -1
  308. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/providers/index.d.ts +0 -1
  309. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.d.ts +0 -74
  310. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/providers/signingProviders/index.d.ts +0 -1
  311. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.d.ts +0 -12
  312. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.d.ts +0 -3
  313. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/rpc/interfaces.d.ts +0 -15
  314. package/dist/lib.cjs/types/providers/ethereum-provider/providers/converter.d.ts +0 -14
  315. package/dist/lib.cjs/types/providers/ethereum-provider/providers/index.d.ts +0 -1
  316. package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.d.ts +0 -16
  317. package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.d.ts +0 -28
  318. package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/index.d.ts +0 -4
  319. package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.d.ts +0 -46
  320. package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.d.ts +0 -11
  321. package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/index.d.ts +0 -1
  322. package/dist/lib.cjs/types/providers/ethereum-provider/providers/utils.d.ts +0 -5
  323. package/dist/lib.cjs/types/providers/ethereum-provider/rpc/walletMidddleware.d.ts +0 -3
  324. package/dist/lib.cjs/types/providers/solana-provider/index.d.ts +0 -4
  325. package/dist/lib.cjs/types/providers/solana-provider/interface.d.ts +0 -22
  326. package/dist/lib.cjs/types/providers/solana-provider/providers/index.d.ts +0 -1
  327. package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.d.ts +0 -16
  328. package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/base/providerHandlers.d.ts +0 -3
  329. package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/index.d.ts +0 -2
  330. package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/utils.d.ts +0 -3
  331. package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/walletStandardProvider.d.ts +0 -9
  332. package/dist/lib.cjs/types/providers/solana-provider/rpc/JrpcClient.d.ts +0 -9
  333. package/dist/lib.cjs/types/providers/solana-provider/rpc/index.d.ts +0 -3
  334. package/dist/lib.cjs/types/providers/solana-provider/rpc/interfaces.d.ts +0 -27
  335. package/dist/lib.cjs/types/providers/solana-provider/rpc/solanaRpcMiddlewares.d.ts +0 -20
  336. package/dist/lib.cjs/types/providers/solana-provider/solanaWallet.d.ts +0 -29
  337. package/dist/lib.esm/providers/ethereum-mpc-provider/index.js +0 -1
  338. package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +0 -206
  339. package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +0 -163
  340. package/dist/lib.esm/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +0 -20
  341. package/dist/lib.esm/providers/ethereum-provider/providers/converter.js +0 -85
  342. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.js +0 -21
  343. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +0 -378
  344. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +0 -8
  345. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +0 -88
  346. package/dist/lib.esm/providers/ethereum-provider/providers/utils.js +0 -24
  347. package/dist/lib.esm/providers/ethereum-provider/rpc/walletMidddleware.js +0 -258
  348. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +0 -47
  349. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +0 -43
  350. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/utils.js +0 -14
  351. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +0 -91
  352. package/dist/lib.esm/providers/solana-provider/rpc/JrpcClient.js +0 -42
  353. package/dist/lib.esm/providers/solana-provider/rpc/solanaRpcMiddlewares.js +0 -89
  354. package/dist/lib.esm/providers/solana-provider/solanaWallet.js +0 -92
  355. package/dist/noModal.umd.min.js +0 -2
  356. package/dist/noModal.umd.min.js.LICENSE.txt +0 -46
@@ -1,20 +1,24 @@
1
1
  import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
2
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
3
+ import { CITADEL_SERVER_MAP } from '@toruslabs/constants';
4
+ import { get, put } from '@toruslabs/http-helpers';
3
5
  import { SecurePubSub } from '@toruslabs/secure-pub-sub';
4
- import { BUILD_ENV, UX_MODE, Auth, SDK_MODE, SUPPORTED_KEY_CURVES, randomId, version, createHandler, PopupHandler, getUserId } from '@web3auth/auth';
6
+ import { BUILD_ENV, UX_MODE, Auth, SDK_MODE, SUPPORTED_KEY_CURVES, generateRecordId, version, createHandler, PopupHandler, getUserId } from '@web3auth/auth';
5
7
  import { WS_EMBED_LOGIN_MODE } from '@web3auth/ws-embed';
6
8
  import deepmerge from 'deepmerge';
7
- import { parseToken } from '../utils.js';
8
- import { BaseConnector } from '../../base/connector/baseConnector.js';
9
+ import { generateNonce, parseToken } from '../utils.js';
10
+ import { AuthSolanaWallet } from './authSolanaWallet.js';
11
+ import { WalletLoginError, WalletInitializationError, Web3AuthError, AccountLinkingError } from '../../base/errors/index.js';
9
12
  import { WALLET_CONNECTORS } from '../../base/wallet/index.js';
13
+ import { BaseConnector } from '../../base/connector/baseConnector.js';
10
14
  import { CONNECTOR_NAMESPACES } from '../../base/chain/IChainInterface.js';
11
15
  import { CONNECTOR_CATEGORY, CONNECTOR_STATUS, CONNECTOR_EVENTS } from '../../base/connector/constants.js';
12
- import { WalletInitializationError, WalletLoginError, Web3AuthError } from '../../base/errors/index.js';
16
+ import { Analytics, ANALYTICS_EVENTS } from '../../base/analytics.js';
13
17
  import { log } from '../../base/loglevel.js';
18
+ import { citadelServerUrl, getCaipChainId, getErrorAnalyticsProperties, parseChainNamespaceFromCitadelResponse } from '../../base/utils.js';
14
19
  import { CONNECTED_STATUSES } from '../../base/connector/connectorStatus.js';
20
+ import { makeAccountLinkingRequest, makeAccountUnlinkingRequest } from '../../account-linking/rest.js';
15
21
  import { CHAIN_NAMESPACES, cloneDeep } from '@toruslabs/base-controllers';
16
- import '@toruslabs/constants';
17
- import '@toruslabs/http-helpers';
18
22
 
19
23
  class AuthConnector extends BaseConnector {
20
24
  constructor(params) {
@@ -33,6 +37,8 @@ class AuthConnector extends BaseConnector {
33
37
  _defineProperty(this, "wsEmbedInstance", null);
34
38
  _defineProperty(this, "authConnectionConfig", []);
35
39
  _defineProperty(this, "wsEmbedInstancePromise", null);
40
+ _defineProperty(this, "_solanaWallet", null);
41
+ _defineProperty(this, "analytics", void 0);
36
42
  this.authOptions = params.connectorSettings;
37
43
  this.loginSettings = params.loginSettings || {
38
44
  authConnection: ""
@@ -41,6 +47,7 @@ class AuthConnector extends BaseConnector {
41
47
  loginMode: WS_EMBED_LOGIN_MODE.PLUGIN
42
48
  };
43
49
  this.authConnectionConfig = params.authConnectionConfig || [];
50
+ this.analytics = params.analytics || new Analytics();
44
51
  }
45
52
  get provider() {
46
53
  if (this.status !== CONNECTOR_STATUS.NOT_READY) {
@@ -54,6 +61,9 @@ class AuthConnector extends BaseConnector {
54
61
  get wsEmbed() {
55
62
  return this.wsEmbedInstance;
56
63
  }
64
+ get solanaWallet() {
65
+ return this._solanaWallet;
66
+ }
57
67
  set provider(_) {
58
68
  throw new Error("Not implemented");
59
69
  }
@@ -88,7 +98,7 @@ class AuthConnector extends BaseConnector {
88
98
  // making it async here to initialize provider.
89
99
  const authInstancePromise = this.authInstance.init();
90
100
 
91
- // Use this for xrpl, mpc cases
101
+ // Use this for xrpl cases
92
102
  if (this.coreOptions.privateKeyProvider) {
93
103
  this.privateKeyProvider = this.coreOptions.privateKeyProvider;
94
104
  } else {
@@ -110,6 +120,7 @@ class AuthConnector extends BaseConnector {
110
120
  loginMode: WS_EMBED_LOGIN_MODE.PLUGIN,
111
121
  chains: wsSupportedChains,
112
122
  chainId,
123
+ buildEnv: this.authOptions.buildEnv,
113
124
  whiteLabel: _objectSpread(_objectSpread({}, this.authOptions.whiteLabel), this.wsSettings.whiteLabel)
114
125
  })).then(() => {
115
126
  this.wsEmbedInstancePromise = null;
@@ -148,7 +159,7 @@ class AuthConnector extends BaseConnector {
148
159
  this.rehydrated = true;
149
160
  await this.connect({
150
161
  chainId: options.chainId,
151
- getIdentityToken: options.getIdentityToken
162
+ getAuthTokenInfo: options.getAuthTokenInfo
152
163
  });
153
164
  } else if (!sessionId && options.autoConnect) {
154
165
  // if here, this means that the connector is cached but the sessionId is not available.
@@ -168,7 +179,11 @@ class AuthConnector extends BaseConnector {
168
179
  }));
169
180
  try {
170
181
  await this.connectWithProvider(params);
171
- return this.provider;
182
+ return {
183
+ ethereumProvider: this.provider,
184
+ solanaWallet: this._solanaWallet,
185
+ connectorName: this.name
186
+ };
172
187
  } catch (error) {
173
188
  var _message;
174
189
  log.error("Failed to connect with auth provider", error);
@@ -233,9 +248,12 @@ class AuthConnector extends BaseConnector {
233
248
  this.status = CONNECTOR_STATUS.READY;
234
249
  }
235
250
  this.rehydrated = false;
236
- this.emit(CONNECTOR_EVENTS.DISCONNECTED);
251
+ this._solanaWallet = null;
252
+ this.emit(CONNECTOR_EVENTS.DISCONNECTED, {
253
+ connector: WALLET_CONNECTORS.AUTH
254
+ });
237
255
  }
238
- async getIdentityToken() {
256
+ async getAuthTokenInfo() {
239
257
  if (!this.canAuthorize) throw WalletLoginError.notConnectedError("Not connected with wallet, Please login/connect first");
240
258
  this.status = CONNECTOR_STATUS.AUTHORIZING;
241
259
  this.emit(CONNECTOR_EVENTS.AUTHORIZING, {
@@ -243,57 +261,66 @@ class AuthConnector extends BaseConnector {
243
261
  });
244
262
  const userInfo = await this.getUserInfo();
245
263
  this.status = CONNECTOR_STATUS.AUTHORIZED;
264
+ const [accessToken, refreshToken] = await Promise.all([this.authInstance.authSessionManager.getAccessToken(), this.authInstance.authSessionManager.getRefreshToken()]);
246
265
  this.emit(CONNECTOR_EVENTS.AUTHORIZED, {
247
266
  connector: WALLET_CONNECTORS.AUTH,
248
- identityTokenInfo: {
249
- idToken: userInfo.idToken
267
+ authTokenInfo: {
268
+ idToken: userInfo.idToken,
269
+ accessToken,
270
+ refreshToken
250
271
  }
251
272
  });
252
273
  return {
253
- idToken: userInfo.idToken
274
+ idToken: userInfo.idToken,
275
+ accessToken,
276
+ refreshToken
254
277
  };
255
278
  }
256
279
  async getUserInfo() {
257
280
  if (!this.canAuthorize) throw WalletLoginError.notConnectedError("Not connected with wallet");
258
281
  if (!this.authInstance) throw WalletInitializationError.notReady("authInstance is not ready");
259
- const userInfo = this.authInstance.getUserInfo();
260
- return userInfo;
282
+ const [userInfo, linkedAccounts] = await Promise.all([this.authInstance.getUserInfo(), this.getLinkedAccounts()]);
283
+ return _objectSpread(_objectSpread({}, userInfo), {}, {
284
+ linkedAccounts
285
+ });
286
+ }
287
+ async getLinkedAccounts() {
288
+ const accessToken = await this.authInstance.authSessionManager.getAccessToken();
289
+ if (!accessToken) throw WalletLoginError.connectionError("Could not obtain an access token from the current AUTH session.");
290
+ const citadelUserInfo = await get(`${citadelServerUrl(this.coreOptions.authBuildEnv)}/v1/user`, {
291
+ headers: {
292
+ Authorization: `Bearer ${accessToken}`
293
+ }
294
+ });
295
+ const linkedAccounts = (citadelUserInfo === null || citadelUserInfo === void 0 ? void 0 : citadelUserInfo.accounts) || [];
296
+ return linkedAccounts.map(account => _objectSpread(_objectSpread({}, account), {}, {
297
+ // by default, the primary account is the active account
298
+ active: account.isPrimary
299
+ }));
261
300
  }
262
-
263
- // we don't support switching between different namespaces, except for solana and evm
264
301
  async switchChain(params, init = false) {
265
302
  super.checkSwitchChainRequirements(params, init);
266
- // get chains and namespaces
267
303
  const {
268
304
  chainId: newChainId
269
305
  } = params;
270
306
  const {
271
307
  chainId: currentChainId
272
308
  } = this.provider;
273
- const {
274
- chainNamespace: currentNamespace
275
- } = this.getChain(currentChainId);
276
- const {
277
- chainNamespace: newNamespace
278
- } = this.getChain(newChainId);
279
-
280
- // skip if chainId is the same
281
309
  if (currentChainId === newChainId) return;
282
- if (currentNamespace === CHAIN_NAMESPACES.SOLANA || currentNamespace === CHAIN_NAMESPACES.EIP155) {
310
+ const newChainConfig = this.coreOptions.chains.find(c => c.chainId === newChainId);
311
+ if (!newChainConfig) throw WalletInitializationError.invalidParams("Chain config is not available");
312
+ if (newChainConfig.chainNamespace === CHAIN_NAMESPACES.SOLANA || newChainConfig.chainNamespace === CHAIN_NAMESPACES.EIP155) {
283
313
  var _this$wsEmbedInstance2;
284
- // can only switch to solana or evm
285
- if (newNamespace !== CHAIN_NAMESPACES.SOLANA && newNamespace !== CHAIN_NAMESPACES.EIP155) throw WalletLoginError.connectionError("Cannot switch to other chain namespace");
286
- const fullChainId = `${newNamespace}:${Number(params.chainId)}`;
287
- await ((_this$wsEmbedInstance2 = this.wsEmbedInstance.provider) === null || _this$wsEmbedInstance2 === void 0 ? void 0 : _this$wsEmbedInstance2.request({
314
+ if (!((_this$wsEmbedInstance2 = this.wsEmbedInstance) !== null && _this$wsEmbedInstance2 !== void 0 && _this$wsEmbedInstance2.provider)) throw WalletInitializationError.notReady("Wallet embed is not ready");
315
+ const fullChainId = getCaipChainId(newChainConfig);
316
+ await this.wsEmbedInstance.provider.request({
288
317
  method: "wallet_switchChain",
289
318
  params: {
290
319
  chainId: fullChainId
291
320
  }
292
- }));
321
+ });
293
322
  } else {
294
323
  var _this$privateKeyProvi;
295
- // cannot switch to other namespaces
296
- if (currentNamespace !== newNamespace) throw WalletLoginError.connectionError("Cannot switch to other chain namespace");
297
324
  await ((_this$privateKeyProvi = this.privateKeyProvider) === null || _this$privateKeyProvi === void 0 ? void 0 : _this$privateKeyProvi.switchChain(params));
298
325
  }
299
326
  }
@@ -322,8 +349,351 @@ class AuthConnector extends BaseConnector {
322
349
  });
323
350
  return providerConfig;
324
351
  }
325
- getChain(chainId) {
326
- return this.coreOptions.chains.find(x => x.chainId === chainId);
352
+ async generateChallengeAndSign() {
353
+ // we do not support this for auth connector, as of now. since auth login returns a valid idToken
354
+ throw new Error("Not implemented");
355
+ }
356
+ async switchAccount(account, context) {
357
+ if (!CONNECTED_STATUSES.includes(this.status)) {
358
+ throw WalletLoginError.notConnectedError("No wallet is connected. Connect with AUTH before switching accounts.");
359
+ }
360
+ try {
361
+ var _userInfo$linkedAccou;
362
+ const userInfo = await this.getUserInfo();
363
+ const linkedAccounts = (_userInfo$linkedAccou = userInfo.linkedAccounts) !== null && _userInfo$linkedAccou !== void 0 ? _userInfo$linkedAccou : [];
364
+ const targetAccount = linkedAccounts.find(candidate => candidate.id === account.id);
365
+ if (!targetAccount) {
366
+ throw AccountLinkingError.requestFailed(`No connected wallet matches account id "${account.id}". Refresh user info and try again.`);
367
+ }
368
+ const currentActiveAccount = context.activeAccount;
369
+ const isTargetAlreadyActive = currentActiveAccount ? currentActiveAccount.id === targetAccount.id : targetAccount.isPrimary;
370
+ if (isTargetAlreadyActive) {
371
+ return;
372
+ }
373
+ this.analytics.track(ANALYTICS_EVENTS.ACCOUNT_SWITCH_STARTED, this.getSwitchAccountTrackData(targetAccount));
374
+ if (targetAccount.connector === WALLET_CONNECTORS.AUTH && targetAccount.isPrimary) {
375
+ var _this$provider$chainI, _this$provider;
376
+ const activeChainId = this.getChainIdForLinkedAccount(targetAccount, (_this$provider$chainI = (_this$provider = this.provider) === null || _this$provider === void 0 ? void 0 : _this$provider.chainId) !== null && _this$provider$chainI !== void 0 ? _this$provider$chainI : context.currentChainId);
377
+ const ethereumProvider = this.provider;
378
+ const solanaWallet = this.solanaWallet;
379
+ if (!ethereumProvider && !solanaWallet) {
380
+ throw AccountLinkingError.requestFailed("Failed to restore the primary AUTH session for account switch.");
381
+ }
382
+ return {
383
+ kind: "primary",
384
+ targetAccount,
385
+ activeAccount: null,
386
+ activeChainId,
387
+ connectorName: this.name,
388
+ connectorNamespace: this.connectorNamespace,
389
+ ethereumProvider,
390
+ solanaWallet
391
+ };
392
+ }
393
+ return {
394
+ kind: "external",
395
+ targetAccount,
396
+ activeAccount: targetAccount,
397
+ activeChainId: this.getChainIdForLinkedAccount(targetAccount, context.currentChainId)
398
+ };
399
+ } catch (error) {
400
+ await this.trackSwitchAccountFailed(account, error);
401
+ throw error;
402
+ }
403
+ }
404
+ async trackSwitchAccountCompleted(account) {
405
+ await this.analytics.track(ANALYTICS_EVENTS.ACCOUNT_SWITCH_COMPLETED, _objectSpread(_objectSpread({}, this.getSwitchAccountTrackData(account)), {}, {
406
+ connector: account.connector
407
+ }));
408
+ }
409
+ async trackSwitchAccountFailed(account, error) {
410
+ await this.analytics.track(ANALYTICS_EVENTS.ACCOUNT_SWITCH_FAILED, _objectSpread(_objectSpread({}, this.getSwitchAccountTrackData(account)), getErrorAnalyticsProperties(error)));
411
+ }
412
+ async linkAccount(params) {
413
+ if (!CONNECTED_STATUSES.includes(this.status)) {
414
+ throw WalletLoginError.notConnectedError("No wallet is connected. Connect with AUTH before linking an account.");
415
+ }
416
+ const {
417
+ connectorName,
418
+ chainId,
419
+ walletConnector
420
+ } = params;
421
+ try {
422
+ if (!walletConnector.connected) {
423
+ const connection = await walletConnector.connect({
424
+ chainId,
425
+ isAccountLinking: true
426
+ });
427
+ if (!connection) {
428
+ throw AccountLinkingError.walletProofFailed(`Failed to connect to "${params.connectorName}" for account linking.`);
429
+ }
430
+ }
431
+ } catch (error) {
432
+ if (error instanceof AccountLinkingError) {
433
+ throw error;
434
+ }
435
+ throw AccountLinkingError.walletProofFailed(error instanceof Error ? error.message : String(error), error);
436
+ }
437
+ const trackData = {
438
+ connector: this.name,
439
+ linking_connector: connectorName,
440
+ chain_id: params.chainId
441
+ };
442
+ try {
443
+ await this.analytics.track(ANALYTICS_EVENTS.ACCOUNT_LINKING_STARTED, trackData);
444
+ const {
445
+ accessToken,
446
+ idToken
447
+ } = await this.getPrimaryAuthSession(params.authSessionTokens);
448
+ const walletProof = await this.createWalletLinkingProof(params.walletConnector);
449
+ const authServerUrl = citadelServerUrl(this.coreOptions.authBuildEnv);
450
+ const result = await makeAccountLinkingRequest(authServerUrl, accessToken, {
451
+ idToken,
452
+ network: walletProof.network,
453
+ connector: params.connectorName,
454
+ message: walletProof.challenge,
455
+ signature: {
456
+ s: walletProof.signature,
457
+ t: walletProof.signatureType
458
+ }
459
+ });
460
+ this.analytics.track(ANALYTICS_EVENTS.ACCOUNT_LINKING_COMPLETED, _objectSpread(_objectSpread({}, trackData), {}, {
461
+ linked_address: walletProof.address
462
+ }));
463
+ return result;
464
+ } catch (error) {
465
+ this.analytics.track(ANALYTICS_EVENTS.ACCOUNT_LINKING_FAILED, _objectSpread(_objectSpread({}, trackData), getErrorAnalyticsProperties(error)));
466
+
467
+ // disconnect the wallet connector to avoid any leftover state
468
+ try {
469
+ await walletConnector.disconnect({
470
+ cleanup: true
471
+ });
472
+ } catch (disconnectError) {
473
+ log.debug("Failed to disconnect wallet connector after linking failure", disconnectError);
474
+ }
475
+ throw error;
476
+ }
477
+ }
478
+ async unlinkAccount(params) {
479
+ if (!CONNECTED_STATUSES.includes(this.status)) {
480
+ throw WalletLoginError.notConnectedError("No wallet is connected. Connect with AUTH before unlinking an account.");
481
+ }
482
+ const {
483
+ address,
484
+ authSessionTokens
485
+ } = params;
486
+ const trackData = {
487
+ connector: this.name,
488
+ address
489
+ };
490
+ await this.analytics.track(ANALYTICS_EVENTS.ACCOUNT_UNLINKING_STARTED, trackData);
491
+ try {
492
+ const {
493
+ accessToken,
494
+ idToken,
495
+ linkedAccounts
496
+ } = await this.getPrimaryAuthSession(authSessionTokens, {
497
+ includeLinkedAccounts: true
498
+ });
499
+ const network = this.getNetworkForUnlinkAddress(linkedAccounts, address);
500
+ const authServerUrl = citadelServerUrl(this.coreOptions.authBuildEnv);
501
+ const result = await makeAccountUnlinkingRequest(authServerUrl, accessToken, {
502
+ idToken,
503
+ address,
504
+ network
505
+ });
506
+ await this.analytics.track(ANALYTICS_EVENTS.ACCOUNT_UNLINKING_COMPLETED, _objectSpread(_objectSpread({}, trackData), {}, {
507
+ linked_address: address
508
+ }));
509
+ return result;
510
+ } catch (error) {
511
+ await this.analytics.track(ANALYTICS_EVENTS.ACCOUNT_UNLINKING_FAILED, _objectSpread(_objectSpread({}, trackData), getErrorAnalyticsProperties(error)));
512
+ throw error;
513
+ }
514
+ }
515
+ getChainIdForLinkedAccount(account, preferredChainId) {
516
+ const accountChainNamespace = account.chainNamespace ? parseChainNamespaceFromCitadelResponse(account.chainNamespace) : null;
517
+ if (preferredChainId) {
518
+ const preferredChain = this.coreOptions.chains.find(chain => chain.chainId === preferredChainId);
519
+ if (preferredChain && (!accountChainNamespace || preferredChain.chainNamespace === accountChainNamespace)) {
520
+ return preferredChainId;
521
+ }
522
+ }
523
+ if (accountChainNamespace) {
524
+ const namespaceChain = this.coreOptions.chains.find(chain => chain.chainNamespace === accountChainNamespace);
525
+ if (namespaceChain) {
526
+ return namespaceChain.chainId;
527
+ }
528
+ }
529
+ throw WalletInitializationError.invalidParams(`No compatible chainId found for connector "${account.connector}".`);
530
+ }
531
+ async assertSwitchAccountConnectorMatchesTarget(connector, account) {
532
+ if (!account.chainNamespace) {
533
+ throw AccountLinkingError.requestFailed(`Could not determine the chain namespace for linked account "${account.eoaAddress}".`);
534
+ }
535
+ const chainNamespace = parseChainNamespaceFromCitadelResponse(account.chainNamespace);
536
+ let connectedAddress = null;
537
+ if (chainNamespace === CHAIN_NAMESPACES.EIP155) {
538
+ var _accounts$;
539
+ const accounts = connector.provider ? await connector.provider.request({
540
+ method: "eth_accounts"
541
+ }) : [];
542
+ connectedAddress = (_accounts$ = accounts === null || accounts === void 0 ? void 0 : accounts[0]) !== null && _accounts$ !== void 0 ? _accounts$ : null;
543
+ } else if (chainNamespace === CHAIN_NAMESPACES.SOLANA) {
544
+ var _connector$solanaWall, _connector$solanaWall2;
545
+ connectedAddress = (_connector$solanaWall = (_connector$solanaWall2 = connector.solanaWallet) === null || _connector$solanaWall2 === void 0 || (_connector$solanaWall2 = _connector$solanaWall2.accounts) === null || _connector$solanaWall2 === void 0 || (_connector$solanaWall2 = _connector$solanaWall2[0]) === null || _connector$solanaWall2 === void 0 ? void 0 : _connector$solanaWall2.address) !== null && _connector$solanaWall !== void 0 ? _connector$solanaWall : null;
546
+ } else {
547
+ throw AccountLinkingError.requestFailed(`Unsupported chain namespace "${account.chainNamespace}" for linked account "${account.eoaAddress}".`);
548
+ }
549
+ if (!connectedAddress) {
550
+ throw AccountLinkingError.requestFailed(`Connector "${account.connector}" is not connected to linked account "${account.eoaAddress}". Connect the intended wallet account and try again.`);
551
+ }
552
+ const isExpectedAddress = chainNamespace === CHAIN_NAMESPACES.EIP155 ? connectedAddress.toLowerCase() === account.eoaAddress.toLowerCase() : connectedAddress === account.eoaAddress;
553
+ if (!isExpectedAddress) {
554
+ throw AccountLinkingError.requestFailed(`Connector "${account.connector}" is connected to "${connectedAddress}" instead of linked account "${account.eoaAddress}". Connect the intended wallet account and try again.`);
555
+ }
556
+ }
557
+ toSwitchAccountConnectorError(account, error) {
558
+ if (error instanceof AccountLinkingError && error.code === 5401) {
559
+ return error;
560
+ }
561
+ const message = error instanceof Error ? error.message : String(error);
562
+ const isUnavailableConnectorError = error instanceof AccountLinkingError && error.code === 5405 || /not available|not initialized|not ready/i.test(message);
563
+ if (isUnavailableConnectorError) {
564
+ return AccountLinkingError.requestFailed(`Connector "${account.connector}" is not available for linked account "${account.eoaAddress}". Make sure the wallet is installed, unlocked, and accessible, then try again.`, error);
565
+ }
566
+ return AccountLinkingError.requestFailed(`Failed to connect connector "${account.connector}" for linked account "${account.eoaAddress}". ${message}`, error);
567
+ }
568
+ getSwitchAccountTrackData(account) {
569
+ var _account$eoaAddress;
570
+ return {
571
+ connector: this.name,
572
+ account_id: account.id,
573
+ account_type: account.accountType,
574
+ switched_to_address: (_account$eoaAddress = account.eoaAddress) !== null && _account$eoaAddress !== void 0 ? _account$eoaAddress : null
575
+ };
576
+ }
577
+ async getPrimaryAuthSession(authSessionTokens, options = {}) {
578
+ const {
579
+ accessToken: cachedAccessToken,
580
+ idToken: cachedIdToken
581
+ } = authSessionTokens;
582
+ const {
583
+ includeLinkedAccounts = false
584
+ } = options;
585
+ let accessToken = cachedAccessToken;
586
+ let idToken = cachedIdToken;
587
+ let linkedAccounts = [];
588
+ if (includeLinkedAccounts) {
589
+ const userInfoPromise = this.getUserInfo();
590
+ if (!accessToken || !idToken) {
591
+ var _userInfo$linkedAccou2;
592
+ const [tokenInfo, userInfo] = await Promise.all([this.getAuthTokenInfo(), userInfoPromise]);
593
+ accessToken = tokenInfo.accessToken;
594
+ idToken = tokenInfo.idToken;
595
+ linkedAccounts = (_userInfo$linkedAccou2 = userInfo.linkedAccounts) !== null && _userInfo$linkedAccou2 !== void 0 ? _userInfo$linkedAccou2 : [];
596
+ } else {
597
+ var _userInfo$linkedAccou3;
598
+ const userInfo = await userInfoPromise;
599
+ linkedAccounts = (_userInfo$linkedAccou3 = userInfo.linkedAccounts) !== null && _userInfo$linkedAccou3 !== void 0 ? _userInfo$linkedAccou3 : [];
600
+ }
601
+ } else if (!accessToken || !idToken) {
602
+ const tokenInfo = await this.getAuthTokenInfo();
603
+ accessToken = tokenInfo.accessToken;
604
+ idToken = tokenInfo.idToken;
605
+ }
606
+ if (!accessToken || !idToken) {
607
+ throw AccountLinkingError.primaryTokenNotAvailable("Could not obtain an identity token from the current AUTH session.");
608
+ }
609
+ return {
610
+ accessToken,
611
+ idToken,
612
+ linkedAccounts
613
+ };
614
+ }
615
+ getNetworkForUnlinkAddress(accounts, address) {
616
+ const matchedAccount = accounts.find(account => {
617
+ var _account$address, _account$eoaAddress2;
618
+ if (!account.chainNamespace || parseChainNamespaceFromCitadelResponse(account.chainNamespace) !== CHAIN_NAMESPACES.EIP155) {
619
+ return false;
620
+ }
621
+ const normalizedAddress = address.toLowerCase();
622
+ return ((_account$address = account.address) === null || _account$address === void 0 ? void 0 : _account$address.toLowerCase()) === normalizedAddress || ((_account$eoaAddress2 = account.eoaAddress) === null || _account$eoaAddress2 === void 0 ? void 0 : _account$eoaAddress2.toLowerCase()) === normalizedAddress;
623
+ });
624
+ if (!matchedAccount) {
625
+ throw AccountLinkingError.requestFailed(`No connected wallet matches address "${address}".`);
626
+ }
627
+ if (!matchedAccount.chainNamespace) {
628
+ throw AccountLinkingError.requestFailed(`Could not determine the chain namespace for address "${address}".`);
629
+ }
630
+ const chainNamespace = parseChainNamespaceFromCitadelResponse(matchedAccount.chainNamespace);
631
+ if (chainNamespace === CHAIN_NAMESPACES.EIP155) {
632
+ return "ethereum";
633
+ }
634
+ if (chainNamespace === CHAIN_NAMESPACES.SOLANA) {
635
+ return "solana";
636
+ }
637
+ throw AccountLinkingError.requestFailed(`Unsupported chain namespace "${matchedAccount.chainNamespace}" for address "${address}".`);
638
+ }
639
+ async createWalletLinkingProof(connector) {
640
+ // Notify listeners that the linking wallet is about to be asked for a signature so the UI
641
+ // (e.g. modal) can switch from a "connecting" loader to an "authorizing" prompt while the
642
+ // user reviews the signature request inside their wallet. Emitted on the isolated wallet
643
+ // connector (not the auth connector) so it doesn't mutate the global SDK status.
644
+ connector.emit(CONNECTOR_EVENTS.AUTHORIZING, {
645
+ connector: connector.name
646
+ });
647
+ const {
648
+ challenge,
649
+ signature,
650
+ chainNamespace
651
+ } = await connector.generateChallengeAndSign();
652
+ const address = await this.getLinkingWalletAddress(connector, chainNamespace);
653
+ if (chainNamespace === CHAIN_NAMESPACES.EIP155) {
654
+ return {
655
+ address,
656
+ challenge,
657
+ signature,
658
+ signatureType: "eip191",
659
+ network: "ethereum"
660
+ };
661
+ }
662
+ if (chainNamespace === CHAIN_NAMESPACES.SOLANA) {
663
+ return {
664
+ address,
665
+ challenge,
666
+ signature,
667
+ signatureType: "sip99",
668
+ network: "solana"
669
+ };
670
+ }
671
+ throw AccountLinkingError.unsupportedConnector(`Connector "${connector.name}" returned unsupported chain namespace "${chainNamespace}".`);
672
+ }
673
+ async getLinkingWalletAddress(connector, chainNamespace) {
674
+ if (chainNamespace === CHAIN_NAMESPACES.SOLANA) {
675
+ var _connector$solanaWall3;
676
+ const address = (_connector$solanaWall3 = connector.solanaWallet) === null || _connector$solanaWall3 === void 0 || (_connector$solanaWall3 = _connector$solanaWall3.accounts) === null || _connector$solanaWall3 === void 0 || (_connector$solanaWall3 = _connector$solanaWall3[0]) === null || _connector$solanaWall3 === void 0 ? void 0 : _connector$solanaWall3.address;
677
+ if (!address) {
678
+ throw AccountLinkingError.walletProofFailed("No connected Solana account found for account linking.");
679
+ }
680
+ return address;
681
+ }
682
+ if (!connector.provider) {
683
+ throw AccountLinkingError.walletProofFailed("No connected EVM account found for account linking.");
684
+ }
685
+ const accounts = await connector.provider.request({
686
+ method: "eth_accounts"
687
+ });
688
+ if (!(accounts !== null && accounts !== void 0 && accounts.length)) {
689
+ throw AccountLinkingError.walletProofFailed("No connected EVM account found for account linking.");
690
+ }
691
+ return accounts[0];
692
+ }
693
+ setupSolanaWallet() {
694
+ const solanaChains = this.coreOptions.chains.filter(c => c.chainNamespace === CHAIN_NAMESPACES.SOLANA);
695
+ if (solanaChains.length === 0 || !this.provider) return;
696
+ this._solanaWallet = new AuthSolanaWallet(this.provider, solanaChains);
327
697
  }
328
698
  _getFinalPrivKey() {
329
699
  if (!this.authInstance) return "";
@@ -384,24 +754,26 @@ class AuthConnector extends BaseConnector {
384
754
  sessionNamespace
385
755
  } = this.authInstance || {};
386
756
  if (sessionId) {
387
- const isLoggedIn = await this.wsEmbedInstance.loginWithSessionId({
757
+ this.wsEmbedInstance.setAccessTokenProvider(this.accessTokenProvider.bind(this));
758
+ const isLoggedIn = await this.wsEmbedInstance.connectWithSession({
388
759
  sessionId,
389
- sessionNamespace
760
+ sessionNamespace,
761
+ idToken: await this.getIdToken()
390
762
  });
391
763
  if (isLoggedIn) {
392
764
  var _this$wsEmbedInstance3;
393
- // if getIdentityToken is true, then get the identity token
394
- // No need to get the identity token for auth connector as it is already handled
395
- let identityTokenInfo;
765
+ this.setupSolanaWallet();
766
+ // if getAuthTokenInfo is true, then get auth token info
767
+ // No need to get auth token info for auth connector as it is already handled
396
768
  this.status = CONNECTOR_STATUS.CONNECTED;
397
769
  this.emit(CONNECTOR_EVENTS.CONNECTED, {
398
- connector: WALLET_CONNECTORS.AUTH,
770
+ connectorName: WALLET_CONNECTORS.AUTH,
399
771
  reconnected: this.rehydrated,
400
- provider: this.provider,
401
- identityTokenInfo
772
+ ethereumProvider: this.provider,
773
+ solanaWallet: this._solanaWallet
402
774
  });
403
- if (params.getIdentityToken) {
404
- identityTokenInfo = await this.getIdentityToken();
775
+ if (params.getAuthTokenInfo) {
776
+ await this.getAuthTokenInfo();
405
777
  }
406
778
  // handle disconnect from ws embed
407
779
  (_this$wsEmbedInstance3 = this.wsEmbedInstance) === null || _this$wsEmbedInstance3 === void 0 || _this$wsEmbedInstance3.provider.on("accountsChanged", (accounts = []) => {
@@ -418,9 +790,10 @@ class AuthConnector extends BaseConnector {
418
790
  await this.privateKeyProvider.setupProvider(finalPrivKey, params.chainId);
419
791
  this.status = CONNECTOR_STATUS.CONNECTED;
420
792
  this.emit(CONNECTOR_EVENTS.CONNECTED, {
421
- connector: WALLET_CONNECTORS.AUTH,
422
- reconnected: this.rehydrated,
423
- provider: this.provider
793
+ connectorName: WALLET_CONNECTORS.AUTH,
794
+ ethereumProvider: this.provider,
795
+ solanaWallet: this._solanaWallet,
796
+ reconnected: this.rehydrated
424
797
  });
425
798
  }
426
799
  }
@@ -436,10 +809,13 @@ class AuthConnector extends BaseConnector {
436
809
  const jwtParams = _objectSpread(_objectSpread(_objectSpread({}, providerConfig.jwtParameters || {}), params.extraLoginOptions || {}), {}, {
437
810
  login_hint: params.loginHint || ((_params$extraLoginOpt3 = params.extraLoginOptions) === null || _params$extraLoginOpt3 === void 0 ? void 0 : _params$extraLoginOpt3.login_hint)
438
811
  });
439
- const nonce = randomId();
812
+ const nonce = generateNonce();
440
813
 
441
814
  // post a message to the auth provider to indicate that login has been initiated.
442
- const loginParams = cloneDeep(params);
815
+ const loginParams = _objectSpread(_objectSpread({}, cloneDeep(params)), {}, {
816
+ recordId: generateRecordId(),
817
+ loginSource: "web3auth-web"
818
+ });
443
819
  loginParams.extraLoginOptions = _objectSpread(_objectSpread({}, loginParams.extraLoginOptions || {}), {}, {
444
820
  login_hint: params.loginHint || ((_params$extraLoginOpt4 = params.extraLoginOptions) === null || _params$extraLoginOpt4 === void 0 ? void 0 : _params$extraLoginOpt4.login_hint)
445
821
  });
@@ -462,10 +838,11 @@ class AuthConnector extends BaseConnector {
462
838
  version: version.split(".")[0],
463
839
  web3AuthNetwork: this.coreOptions.web3AuthNetwork,
464
840
  web3AuthClientId: this.coreOptions.clientId,
465
- originData: this.authInstance.options.originData ? JSON.stringify(this.authInstance.options.originData) : undefined
841
+ originData: this.getOriginData()
466
842
  },
467
843
  web3AuthClientId: this.coreOptions.clientId,
468
- web3AuthNetwork: this.coreOptions.web3AuthNetwork
844
+ web3AuthNetwork: this.coreOptions.web3AuthNetwork,
845
+ storageServerUrl: this.authInstance.options.storageServerUrl
469
846
  };
470
847
  const loginHandler = createHandler(popupParams);
471
848
  const verifierWindow = new PopupHandler({
@@ -474,6 +851,9 @@ class AuthConnector extends BaseConnector {
474
851
  });
475
852
  if (this.authOptions.uxMode === UX_MODE.REDIRECT) return verifierWindow.redirect(this.authOptions.replaceUrlOnRedirect);
476
853
  let isClosedWindow = false;
854
+ this.auditOAuditProgress(loginParams).catch(error => {
855
+ log.error("Error reporting `oauthInitiated` audit progress", error);
856
+ });
477
857
  return new Promise((resolve, reject) => {
478
858
  verifierWindow.open().catch(error => {
479
859
  log.error("Error during login with social", error);
@@ -483,7 +863,9 @@ class AuthConnector extends BaseConnector {
483
863
 
484
864
  // this is to close the popup when the login is finished.
485
865
  const securePubSub = new SecurePubSub({
486
- sameIpCheck: true
866
+ sameIpCheck: true,
867
+ serverUrl: this.authInstance.options.storageServerUrl,
868
+ socketUrl: this.authInstance.options.sessionSocketUrl
487
869
  });
488
870
  securePubSub.subscribe(`web3auth-login-${nonce}`).then(data => {
489
871
  const parsedData = JSON.parse(data || "{}");
@@ -500,6 +882,9 @@ class AuthConnector extends BaseConnector {
500
882
  }).catch(error => {
501
883
  // swallow the error, dont need to throw.
502
884
  log.error("Error during login with social", error);
885
+ this.auditOAuditProgress(loginParams, "failed").catch(error => {
886
+ log.error("Error reporting `oauthFailed` audit progress", error);
887
+ });
503
888
  });
504
889
  verifierWindow.once("close", () => {
505
890
  if (!isClosedWindow) {
@@ -509,6 +894,9 @@ class AuthConnector extends BaseConnector {
509
894
  }
510
895
  });
511
896
  this.authInstance.postLoginInitiatedMessage(loginParams, nonce).then(resolve).catch(error => {
897
+ this.auditOAuditProgress(loginParams, "failed").catch(error => {
898
+ log.error("Error reporting `oauthFailed` audit progress", error);
899
+ });
512
900
  if (error instanceof Web3AuthError) {
513
901
  throw error;
514
902
  }
@@ -516,6 +904,39 @@ class AuthConnector extends BaseConnector {
516
904
  });
517
905
  });
518
906
  }
907
+ async accessTokenProvider({
908
+ forceRefresh
909
+ }) {
910
+ if (forceRefresh) {
911
+ await this.authInstance.refreshSession();
912
+ }
913
+ return this.authInstance.getAccessToken();
914
+ }
915
+ async getIdToken() {
916
+ if (!this.authInstance) throw WalletInitializationError.notReady("authInstance is not ready");
917
+ return this.authInstance.authSessionManager.getIdToken();
918
+ }
919
+ getOriginData() {
920
+ try {
921
+ const {
922
+ originData,
923
+ redirectUrl
924
+ } = this.authInstance.options;
925
+ const origin = new URL(redirectUrl).origin;
926
+ if (originData) {
927
+ const dappOriginData = originData[origin];
928
+ if (dappOriginData) {
929
+ return JSON.stringify({
930
+ [origin]: dappOriginData
931
+ });
932
+ }
933
+ }
934
+ return undefined;
935
+ } catch (error) {
936
+ log.error("Error getting origin data", error);
937
+ return undefined;
938
+ }
939
+ }
519
940
  connectWithJwtLogin(params) {
520
941
  var _params$extraLoginOpt5, _params$extraLoginOpt7;
521
942
  const loginConfig = this.getOAuthProviderConfig({
@@ -556,11 +977,47 @@ class AuthConnector extends BaseConnector {
556
977
  delete loginParams.chainId;
557
978
  return this.authInstance.postLoginInitiatedMessage(loginParams);
558
979
  }
980
+ async auditOAuditProgress(loginParams, status) {
981
+ const {
982
+ authConnection,
983
+ authConnectionId,
984
+ groupedAuthConnectionId,
985
+ recordId,
986
+ loginSource
987
+ } = loginParams;
988
+ const {
989
+ authBuildEnv = BUILD_ENV.PRODUCTION,
990
+ web3AuthNetwork,
991
+ clientId
992
+ } = this.coreOptions;
993
+ const auditServerUrl = `${CITADEL_SERVER_MAP[authBuildEnv]}/v1/auth/audit`;
994
+ const progressFlag = {
995
+ oauthInitiated: true
996
+ };
997
+ const auditPayload = _objectSpread({
998
+ authConnection,
999
+ authConnectionId,
1000
+ groupedAuthConnectionId,
1001
+ recordId,
1002
+ source: loginSource,
1003
+ web3AuthNetwork,
1004
+ web3AuthClientId: clientId
1005
+ }, progressFlag);
1006
+ if (status === "failed") {
1007
+ auditPayload.oauthFailed = true;
1008
+ } else if (status === "completed") {
1009
+ auditPayload.oauthCompleted = true;
1010
+ } else {
1011
+ auditPayload.oauthInitiated = true;
1012
+ }
1013
+ await put(auditServerUrl, auditPayload);
1014
+ }
559
1015
  }
560
1016
  const authConnector = params => {
561
1017
  return ({
562
1018
  projectConfig,
563
- coreOptions
1019
+ coreOptions,
1020
+ analytics
564
1021
  }) => {
565
1022
  var _coreOptions$uiConfig, _coreOptions$walletSe, _coreOptions$walletSe2, _coreOptions$walletSe3;
566
1023
  // Connector settings
@@ -605,9 +1062,22 @@ const authConnector = params => {
605
1062
  mfaLevel: coreOptions.mfaLevel
606
1063
  }),
607
1064
  coreOptions,
1065
+ analytics,
608
1066
  authConnectionConfig: projectConfig.embeddedWalletAuth
609
1067
  });
610
1068
  };
611
1069
  };
1070
+ function isAuthConnector(connector) {
1071
+ if (!connector || connector.name !== WALLET_CONNECTORS.AUTH) {
1072
+ return false;
1073
+ }
1074
+ const maybeAuthConnector = connector;
1075
+ return typeof maybeAuthConnector.switchAccount === "function" && typeof maybeAuthConnector.linkAccount === "function" && typeof maybeAuthConnector.unlinkAccount === "function";
1076
+ }
1077
+ function assertAuthConnector(connector, errorMessage = "Account linking is only supported when connected with the AUTH connector.") {
1078
+ if (!isAuthConnector(connector)) {
1079
+ throw WalletLoginError.unsupportedOperation(errorMessage);
1080
+ }
1081
+ }
612
1082
 
613
- export { authConnector };
1083
+ export { assertAuthConnector, authConnector, isAuthConnector };