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