@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
@@ -0,0 +1,169 @@
1
+ 'use strict';
2
+
3
+ var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
4
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
5
+ var client = require('@solana/client');
6
+ var reactHooks = require('@solana/react-hooks');
7
+ var react = require('react');
8
+ require('@babel/runtime/helpers/defineProperty');
9
+ require('@segment/analytics-next');
10
+ var loglevel = require('../../base/loglevel.js');
11
+ var baseControllers = require('@toruslabs/base-controllers');
12
+ require('@toruslabs/session-manager');
13
+ require('@web3auth/auth');
14
+ require('../../base/errors/index.js');
15
+ require('@toruslabs/constants');
16
+ require('@toruslabs/http-helpers');
17
+ require('../../base/constants.js');
18
+ require('../../base/wallet/index.js');
19
+ require('../../base/connector/connectorStatus.js');
20
+ require('../../base/connector/constants.js');
21
+ require('jwt-decode');
22
+ require('../../base/plugin/errors.js');
23
+ require('../../base/plugin/IPlugin.js');
24
+ require('../context/Web3AuthInnerContext.js');
25
+ var useChain = require('../hooks/useChain.js');
26
+ require('../context/WalletServicesInnerContext.js');
27
+ var useWeb3Auth = require('../hooks/useWeb3Auth.js');
28
+
29
+ const _excluded = ["children"];
30
+ const DEVNET_ENDPOINT = "https://api.devnet.solana.com";
31
+ function placeholderRpc(isInitialized, web3Auth) {
32
+ var _web3Auth$coreOptions;
33
+ if (!isInitialized || !(web3Auth !== null && web3Auth !== void 0 && (_web3Auth$coreOptions = web3Auth.coreOptions) !== null && _web3Auth$coreOptions !== void 0 && _web3Auth$coreOptions.chains)) {
34
+ return {
35
+ rpcTarget: DEVNET_ENDPOINT
36
+ };
37
+ }
38
+ const solanaChains = web3Auth.coreOptions.chains.filter(c => c.chainNamespace === baseControllers.CHAIN_NAMESPACES.SOLANA);
39
+ const current = web3Auth.currentChain;
40
+ const chain = (current === null || current === void 0 ? void 0 : current.chainNamespace) === baseControllers.CHAIN_NAMESPACES.SOLANA ? current : solanaChains[0];
41
+ if (!chain) return {
42
+ rpcTarget: DEVNET_ENDPOINT
43
+ };
44
+ return {
45
+ rpcTarget: chain.rpcTarget,
46
+ wsTarget: chain.wsTarget
47
+ };
48
+ }
49
+ function makePlaceholder(rpc) {
50
+ return client.createClient({
51
+ endpoint: rpc.rpcTarget,
52
+ websocketEndpoint: rpc.wsTarget,
53
+ walletConnectors: []
54
+ });
55
+ }
56
+ function dispose(client) {
57
+ void client.actions.disconnectWallet().catch(() => {});
58
+ client.destroy();
59
+ }
60
+ /**
61
+ * Builds the SolanaClient for Framework Kit React hooks: placeholder when idle, Web3Auth-backed when
62
+ * connected on Solana. Ref + state so React re-renders on swap and effects dispose the right instance.
63
+ */
64
+ function useFrameworkKitSolanaClient() {
65
+ const {
66
+ isConnected,
67
+ connection,
68
+ web3Auth,
69
+ isInitialized
70
+ } = useWeb3Auth.useWeb3Auth();
71
+ const {
72
+ chainNamespace
73
+ } = useChain.useChain();
74
+ const ref = react.useRef(null);
75
+ const [client$1, setClient] = react.useState(() => {
76
+ const c = makePlaceholder({
77
+ rpcTarget: DEVNET_ENDPOINT
78
+ });
79
+ ref.current = c;
80
+ return c;
81
+ });
82
+ react.useEffect(() => {
83
+ if (isInitialized) web3Auth === null || web3Auth === void 0 || web3Auth.setAnalyticsProperties({
84
+ solana_framework_kit_enabled: true
85
+ });
86
+ }, [isInitialized, web3Auth]);
87
+ react.useEffect(() => () => {
88
+ const c = ref.current;
89
+ if (c) {
90
+ dispose(c);
91
+ ref.current = null;
92
+ }
93
+ }, []);
94
+ react.useEffect(() => {
95
+ let stale = false;
96
+ const adopt = next => {
97
+ if (stale) {
98
+ dispose(next);
99
+ return;
100
+ }
101
+ const prev = ref.current;
102
+ if (prev === next) return;
103
+ if (prev) dispose(prev);
104
+ ref.current = next;
105
+ setClient(next);
106
+ };
107
+ (async _web3Auth$currentChai => {
108
+ const rpc = placeholderRpc(isInitialized, web3Auth);
109
+ const solanaWallet = connection === null || connection === void 0 ? void 0 : connection.solanaWallet;
110
+ const onSolana = isConnected && Boolean(solanaWallet) && chainNamespace === baseControllers.CHAIN_NAMESPACES.SOLANA && (web3Auth === null || web3Auth === void 0 || (_web3Auth$currentChai = web3Auth.currentChain) === null || _web3Auth$currentChai === void 0 ? void 0 : _web3Auth$currentChai.chainNamespace) === baseControllers.CHAIN_NAMESPACES.SOLANA;
111
+ if (!onSolana) {
112
+ adopt(makePlaceholder(rpc));
113
+ return;
114
+ }
115
+ const conn = connection;
116
+ if (!conn || !solanaWallet) {
117
+ adopt(makePlaceholder(rpc));
118
+ return;
119
+ }
120
+ // only reconnect for the primary connector
121
+ if (conn.connectorName !== (web3Auth === null || web3Auth === void 0 ? void 0 : web3Auth.primaryConnectorName)) return;
122
+ try {
123
+ const solanaWalletId = "wallet-standard:" + conn.connectorName;
124
+ const connector = client.createWalletStandardConnector(solanaWallet, {
125
+ id: solanaWalletId,
126
+ name: conn.connectorName
127
+ });
128
+ const {
129
+ rpcTarget,
130
+ wsTarget
131
+ } = web3Auth.currentChain;
132
+ const wired = client.createClient({
133
+ endpoint: rpcTarget,
134
+ websocketEndpoint: wsTarget,
135
+ walletConnectors: [connector]
136
+ });
137
+ await wired.actions.connectWallet(solanaWalletId, {
138
+ autoConnect: true
139
+ });
140
+ if (stale) {
141
+ dispose(wired);
142
+ return;
143
+ }
144
+ adopt(wired);
145
+ } catch (e) {
146
+ loglevel.log.error("Failed to create or connect Solana client", e);
147
+ adopt(makePlaceholder(rpc));
148
+ }
149
+ })();
150
+ return () => {
151
+ stale = true;
152
+ };
153
+ }, [isConnected, connection === null || connection === void 0 ? void 0 : connection.solanaWallet, chainNamespace, web3Auth, isInitialized, connection === null || connection === void 0 ? void 0 : connection.connectorName]);
154
+ return client$1;
155
+ }
156
+ function SolanaProvider(_ref) {
157
+ let {
158
+ children
159
+ } = _ref,
160
+ props = _objectWithoutProperties(_ref, _excluded);
161
+ const client = useFrameworkKitSolanaClient();
162
+ return react.createElement(reactHooks.SolanaProvider, _objectSpread(_objectSpread({}, props), {}, {
163
+ client,
164
+ walletPersistence: false,
165
+ children
166
+ }));
167
+ }
168
+
169
+ exports.SolanaProvider = SolanaProvider;
@@ -10,16 +10,18 @@ require('@babel/runtime/helpers/defineProperty');
10
10
  require('@segment/analytics-next');
11
11
  var loglevel = require('../../base/loglevel.js');
12
12
  var baseControllers = require('@toruslabs/base-controllers');
13
+ require('@toruslabs/session-manager');
13
14
  require('@web3auth/auth');
14
15
  var index = require('../../base/errors/index.js');
16
+ require('@toruslabs/constants');
17
+ require('@toruslabs/http-helpers');
18
+ require('../../base/constants.js');
15
19
  require('../../base/wallet/index.js');
16
20
  require('../../base/connector/connectorStatus.js');
17
21
  require('../../base/connector/constants.js');
18
22
  require('jwt-decode');
19
23
  require('../../base/plugin/errors.js');
20
24
  require('../../base/plugin/IPlugin.js');
21
- require('@toruslabs/constants');
22
- require('@toruslabs/http-helpers');
23
25
  require('../context/Web3AuthInnerContext.js');
24
26
  require('../context/WalletServicesInnerContext.js');
25
27
  var useWeb3Auth = require('../hooks/useWeb3Auth.js');
@@ -90,16 +92,16 @@ function Web3AuthWagmiProvider({
90
92
  }) {
91
93
  const {
92
94
  isConnected,
93
- provider
95
+ connection
94
96
  } = useWeb3Auth.useWeb3Auth();
95
97
  const {
96
98
  disconnect
97
99
  } = useWeb3AuthDisconnect.useWeb3AuthDisconnect();
98
100
  const wagmiConfig = wagmi.useConfig();
99
101
  const {
100
- reconnect
102
+ mutate: reconnect
101
103
  } = wagmi.useReconnect();
102
- wagmi.useAccountEffect({
104
+ wagmi.useConnectionEffect({
103
105
  onDisconnect: async () => {
104
106
  loglevel.log.info("Disconnected from wagmi");
105
107
  if (isConnected) await disconnect();
@@ -113,8 +115,8 @@ function Web3AuthWagmiProvider({
113
115
  });
114
116
  react.useEffect(() => {
115
117
  (async () => {
116
- if (isConnected && provider) {
117
- const connector = await setupConnector(provider, wagmiConfig);
118
+ if (isConnected && connection !== null && connection !== void 0 && connection.ethereumProvider) {
119
+ const connector = await setupConnector(connection.ethereumProvider, wagmiConfig);
118
120
  if (!connector) {
119
121
  throw new Error("Failed to setup connector");
120
122
  }
@@ -126,7 +128,7 @@ function Web3AuthWagmiProvider({
126
128
  }
127
129
  }
128
130
  })();
129
- }, [isConnected, wagmiConfig, provider, reconnect]);
131
+ }, [isConnected, wagmiConfig, connection, reconnect]);
130
132
  return react.createElement(react.Fragment, null, children);
131
133
  }
132
134
  function WagmiProvider(_ref) {
@@ -0,0 +1,2 @@
1
+ export * from "./interfaces";
2
+ export * from "./rest";
@@ -0,0 +1,90 @@
1
+ import type { WALLET_CONNECTOR_TYPE } from "../base/wallet";
2
+ export type CITADEL_NETWORK = "ethereum" | "solana";
3
+ export interface LinkAccountParams {
4
+ /**
5
+ * Name of the external wallet connector to link.
6
+ * Example: WALLET_CONNECTORS.METAMASK, WALLET_CONNECTORS.WALLET_CONNECT_V2.
7
+ *
8
+ * Optional in the modal SDK (`@web3auth/modal`): when omitted, the modal opens
9
+ * a wallet picker dedicated to account linking and uses the wallet selected by
10
+ * the user. Required in the no-modal SDK (`@web3auth/no-modal`).
11
+ */
12
+ connectorName: WALLET_CONNECTOR_TYPE | string;
13
+ /**
14
+ * Chain ID to use when generating the wallet identity proof.
15
+ * Defaults to the currently active chain if not specified.
16
+ */
17
+ chainId?: string;
18
+ }
19
+ /**
20
+ * Linked account info returned from the Citadel server
21
+ */
22
+ export interface BaseLinkedAccountInfo {
23
+ /** Type of the account (e.g. "social", "external_wallet", "account_abstraction") */
24
+ accountType: string;
25
+ /** Address of the account */
26
+ address: string | null;
27
+ /** Auth connection id of the account */
28
+ authConnectionId: string | null;
29
+ /** Grouped auth connection id of the account */
30
+ groupedAuthConnectionId?: string | null;
31
+ /** Chain namespace of the account */
32
+ chainNamespace: string | null;
33
+ }
34
+ /**
35
+ * Result returned after a successful account-linking operation.
36
+ */
37
+ export interface LinkAccountResult {
38
+ /** Whether the Citadel server accepted the linking request. */
39
+ success: boolean;
40
+ /** Refreshed id token for the user */
41
+ idToken: string;
42
+ /** Linked account info */
43
+ linkedAccounts: BaseLinkedAccountInfo[];
44
+ /** Error message from the Citadel server */
45
+ message?: string;
46
+ }
47
+ /**
48
+ * Result returned after a successful account-unlinking operation.
49
+ */
50
+ export interface UnlinkAccountResult {
51
+ /** Whether the Citadel server accepted the linking request. */
52
+ success: boolean;
53
+ /** Refreshed id token for the user */
54
+ idToken: string;
55
+ /** Remaining linked account info */
56
+ linkedAccounts: BaseLinkedAccountInfo[];
57
+ /** Error message from the Citadel server */
58
+ message?: string;
59
+ }
60
+ /**
61
+ * Payload sent to the Citadel account-linking endpoint.
62
+ */
63
+ export interface CitadelLinkAccountPayload {
64
+ /** Current idToken to refresh with updated linked accounts */
65
+ idToken: string;
66
+ /** Network of the account being linked */
67
+ network: CITADEL_NETWORK;
68
+ /** Name of the connector being linked */
69
+ connector: string;
70
+ /** Challenge message to be signed by the user */
71
+ message: string;
72
+ /** Sign In with Web3 signature object */
73
+ signature: {
74
+ /** signature value */
75
+ s: string;
76
+ /** signature type (e.g. "eip191", "sip99") */
77
+ t: string;
78
+ };
79
+ }
80
+ /**
81
+ * Payload sent to the Citadel account-unlinking endpoint.
82
+ */
83
+ export interface UnlinkAccountPayload {
84
+ /** Current idToken to refresh with updated linked accounts */
85
+ idToken: string;
86
+ /** Address of the account to unlink */
87
+ address: string;
88
+ /** Network of the account being unlinked */
89
+ network: CITADEL_NETWORK;
90
+ }
@@ -0,0 +1,19 @@
1
+ import { type LinkedAccountInfo, Web3AuthError } from "../base";
2
+ import { makeAccountLinkingRequest, makeAccountUnlinkingRequest } from "./index";
3
+ import type { BaseLinkedAccountInfo, LinkAccountParams, LinkAccountResult, UnlinkAccountResult } from "./interfaces";
4
+ export { makeAccountLinkingRequest, makeAccountUnlinkingRequest };
5
+ export type { CITADEL_NETWORK, CitadelLinkAccountPayload, LinkAccountParams, LinkAccountResult, BaseLinkedAccountInfo as LinkedAccountInfo, UnlinkAccountPayload, UnlinkAccountResult, } from "./interfaces";
6
+ export interface IUseLinkAccount {
7
+ loading: boolean;
8
+ error: Web3AuthError | null;
9
+ linkedAccounts: BaseLinkedAccountInfo[];
10
+ linkAccount(params?: LinkAccountParams): Promise<LinkAccountResult | void>;
11
+ unlinkAccount(address: string): Promise<UnlinkAccountResult | void>;
12
+ }
13
+ export interface IUseSwitchAccount {
14
+ loading: boolean;
15
+ error: Web3AuthError | null;
16
+ switchAccount(account: LinkedAccountInfo): Promise<void>;
17
+ }
18
+ export declare const useLinkAccount: () => IUseLinkAccount;
19
+ export declare const useSwitchAccount: () => IUseSwitchAccount;
@@ -0,0 +1,9 @@
1
+ import { CitadelLinkAccountPayload, LinkAccountResult, UnlinkAccountPayload, UnlinkAccountResult } from "./interfaces";
2
+ /**
3
+ * Send both identity proofs to the Citadel account-linking endpoint and
4
+ * return a normalized result.
5
+ *
6
+ * Throws AccountLinkingError when the server returns an error or the request itself fails.
7
+ */
8
+ export declare function makeAccountLinkingRequest(authServerUrl: string, accessToken: string, payload: CitadelLinkAccountPayload): Promise<LinkAccountResult>;
9
+ export declare function makeAccountUnlinkingRequest(authServerUrl: string, accessToken: string, payload: UnlinkAccountPayload): Promise<UnlinkAccountResult>;
@@ -0,0 +1,20 @@
1
+ import { Ref } from "vue";
2
+ import { type LinkedAccountInfo, Web3AuthError } from "../base";
3
+ import { makeAccountLinkingRequest, makeAccountUnlinkingRequest } from "./index";
4
+ import type { BaseLinkedAccountInfo, LinkAccountParams, LinkAccountResult, UnlinkAccountResult } from "./interfaces";
5
+ export { makeAccountLinkingRequest, makeAccountUnlinkingRequest };
6
+ export type { CITADEL_NETWORK, CitadelLinkAccountPayload, LinkAccountParams, LinkAccountResult, BaseLinkedAccountInfo as LinkedAccountInfo, UnlinkAccountPayload, UnlinkAccountResult, } from "./interfaces";
7
+ export interface IUseLinkAccount {
8
+ loading: Ref<boolean>;
9
+ error: Ref<Web3AuthError | null>;
10
+ linkedAccounts: Ref<BaseLinkedAccountInfo[]>;
11
+ linkAccount(params?: LinkAccountParams): Promise<LinkAccountResult | void>;
12
+ unlinkAccount(address: string): Promise<UnlinkAccountResult | void>;
13
+ }
14
+ export interface IUseSwitchAccount {
15
+ loading: Ref<boolean>;
16
+ error: Ref<Web3AuthError | null>;
17
+ switchAccount(account: LinkedAccountInfo): Promise<void>;
18
+ }
19
+ export declare const useLinkAccount: () => IUseLinkAccount;
20
+ export declare const useSwitchAccount: () => IUseSwitchAccount;
@@ -37,6 +37,15 @@ export declare const ANALYTICS_EVENTS: {
37
37
  WALLET_CHECKOUT_CLICKED: string;
38
38
  WALLET_RECEIVE_CLICKED: string;
39
39
  WALLET_SWAP_CLICKED: string;
40
+ ACCOUNT_LINKING_STARTED: string;
41
+ ACCOUNT_LINKING_COMPLETED: string;
42
+ ACCOUNT_LINKING_FAILED: string;
43
+ ACCOUNT_UNLINKING_STARTED: string;
44
+ ACCOUNT_UNLINKING_COMPLETED: string;
45
+ ACCOUNT_UNLINKING_FAILED: string;
46
+ ACCOUNT_SWITCH_STARTED: string;
47
+ ACCOUNT_SWITCH_COMPLETED: string;
48
+ ACCOUNT_SWITCH_FAILED: string;
40
49
  };
41
50
  export declare const ANALYTICS_INTEGRATION_TYPE: {
42
51
  REACT_HOOKS: string;
@@ -1,13 +1,17 @@
1
+ import { type SiwwTokens } from "@toruslabs/base-controllers";
2
+ import { AuthSessionManager } from "@toruslabs/session-manager";
3
+ import type { Wallet } from "@wallet-standard/base";
1
4
  import { SafeEventEmitter } from "@web3auth/auth";
2
- import { ConnectorNamespaceType, CustomChainConfig } from "../chain/IChainInterface";
5
+ import { type ChainNamespaceType, ConnectorNamespaceType, CustomChainConfig } from "../chain/IChainInterface";
3
6
  import { WALLET_CONNECTOR_TYPE } from "../wallet";
4
- import type { BaseConnectorLoginParams, BaseConnectorSettings, CONNECTOR_CATEGORY_TYPE, CONNECTOR_STATUS_TYPE, ConnectorEvents, ConnectorInitOptions, IConnector, IdentityTokenInfo, IProvider, UserInfo } from "./interfaces";
7
+ import type { AuthTokenInfo, BaseConnectorLoginParams, BaseConnectorSettings, Connection, CONNECTOR_CATEGORY_TYPE, CONNECTOR_STATUS_TYPE, ConnectorEvents, ConnectorInitOptions, IConnector, IProvider, UserInfo } from "./interfaces";
5
8
  export declare abstract class BaseConnector<T> extends SafeEventEmitter<ConnectorEvents> implements IConnector<T> {
6
9
  connectorData?: unknown;
7
10
  isInjected?: boolean;
8
11
  icon?: string;
9
12
  coreOptions: BaseConnectorSettings["coreOptions"];
10
13
  protected rehydrated: boolean;
14
+ protected authSessionManager: AuthSessionManager | null;
11
15
  abstract connectorNamespace: ConnectorNamespaceType;
12
16
  abstract type: CONNECTOR_CATEGORY_TYPE;
13
17
  abstract name: WALLET_CONNECTOR_TYPE | string;
@@ -15,7 +19,8 @@ export declare abstract class BaseConnector<T> extends SafeEventEmitter<Connecto
15
19
  constructor(options: BaseConnectorSettings);
16
20
  get connected(): boolean;
17
21
  get canAuthorize(): boolean;
18
- abstract get provider(): IProvider | null;
22
+ get solanaWallet(): Wallet | null;
23
+ get provider(): IProvider | null;
19
24
  checkConnectionRequirements(): void;
20
25
  checkInitializationRequirements({ chainConfig }: {
21
26
  chainConfig?: CustomChainConfig;
@@ -25,13 +30,29 @@ export declare abstract class BaseConnector<T> extends SafeEventEmitter<Connecto
25
30
  chainId: string;
26
31
  }, init?: boolean): void;
27
32
  updateConnectorData(data: unknown): void;
33
+ protected initSessionManager(address: string): void;
34
+ protected getCachedAuthTokenInfo(): Promise<AuthTokenInfo | null>;
35
+ protected saveAuthTokenInfo(tokens: SiwwTokens): Promise<void>;
36
+ protected getCachedOrNullAuthTokenInfo(account: string): Promise<AuthTokenInfo | null>;
37
+ protected verifyAndAuthorize(params: {
38
+ chainNamespace: ChainNamespaceType;
39
+ signedMessage: string;
40
+ challenge: string;
41
+ authServer: string;
42
+ }): Promise<AuthTokenInfo>;
43
+ protected clearWalletSession(): Promise<void>;
28
44
  abstract init(options?: ConnectorInitOptions): Promise<void>;
29
- abstract connect(params: T & BaseConnectorLoginParams): Promise<IProvider | null>;
45
+ abstract connect(params: T & BaseConnectorLoginParams): Promise<Connection | null>;
30
46
  abstract disconnect(): Promise<void>;
31
47
  abstract getUserInfo(): Promise<Partial<UserInfo>>;
32
48
  abstract enableMFA(params?: T): Promise<void>;
33
49
  abstract manageMFA(params?: T): Promise<void>;
34
- abstract getIdentityToken(): Promise<IdentityTokenInfo>;
50
+ abstract getAuthTokenInfo(): Promise<AuthTokenInfo>;
51
+ abstract generateChallengeAndSign(authServerUrl?: string, accounts?: string[]): Promise<{
52
+ challenge: string;
53
+ signature: string;
54
+ chainNamespace: ChainNamespaceType;
55
+ }>;
35
56
  abstract switchChain(params: {
36
57
  chainId: string;
37
58
  }): Promise<void>;
@@ -1,3 +1,4 @@
1
1
  import { CONNECTOR_STATUS_TYPE } from "./interfaces";
2
2
  export declare const CONNECTED_STATUSES: CONNECTOR_STATUS_TYPE[];
3
3
  export declare const CAN_AUTHORIZE_STATUSES: CONNECTOR_STATUS_TYPE[];
4
+ export declare const CAN_LOGOUT_STATUSES: CONNECTOR_STATUS_TYPE[];
@@ -8,6 +8,7 @@ export declare const CONNECTOR_STATUS: {
8
8
  readonly ERRORED: "errored";
9
9
  readonly AUTHORIZED: "authorized";
10
10
  readonly AUTHORIZING: "authorizing";
11
+ readonly CONSENT_REQUIRING: "consent_requiring";
11
12
  };
12
13
  export declare const CONNECTOR_EVENTS: {
13
14
  readonly CONNECTOR_DATA_UPDATED: "connector_data_updated";
@@ -15,6 +16,9 @@ export declare const CONNECTOR_EVENTS: {
15
16
  readonly CONNECTORS_UPDATED: "connectors_updated";
16
17
  readonly MFA_ENABLED: "mfa_enabled";
17
18
  readonly REHYDRATION_ERROR: "rehydration_error";
19
+ /** Emitted when the active public `connection` changes without a full reconnect (e.g. account switch). */
20
+ readonly CONNECTION_UPDATED: "connection_updated";
21
+ readonly CONSENT_ACCEPTED: "consent_accepted";
18
22
  readonly NOT_READY: "not_ready";
19
23
  readonly READY: "ready";
20
24
  readonly CONNECTING: "connecting";
@@ -24,6 +28,7 @@ export declare const CONNECTOR_EVENTS: {
24
28
  readonly ERRORED: "errored";
25
29
  readonly AUTHORIZED: "authorized";
26
30
  readonly AUTHORIZING: "authorizing";
31
+ readonly CONSENT_REQUIRING: "consent_requiring";
27
32
  };
28
33
  export declare const CONNECTOR_CATEGORY: {
29
34
  readonly EXTERNAL: "external";
@@ -1,13 +1,37 @@
1
+ import { CaipAccountId } from "@metamask/connect-evm";
2
+ import type { Wallet } from "@wallet-standard/base";
1
3
  import { AUTH_CONNECTION_TYPE, AuthUserInfo, ExtraLoginOptions, JRPCRequest, JRPCResponse, Maybe, RequestArguments, SafeEventEmitter, SendCallBack, UX_MODE, type UX_MODE_TYPE, WEB3AUTH_NETWORK, type WEB3AUTH_NETWORK_TYPE } from "@web3auth/auth";
4
+ import { BaseLinkedAccountInfo } from "../../account-linking/interfaces";
2
5
  import { type Analytics } from "../analytics";
3
6
  import type { ChainNamespaceType, ConnectorNamespaceType, CustomChainConfig } from "../chain/IChainInterface";
4
7
  import type { IWeb3AuthCoreOptions } from "../core/IWeb3Auth";
5
8
  import { Web3AuthError } from "../errors";
6
- import type { ProjectConfig } from "../interfaces";
9
+ import type { LoginModeType, ProjectConfig } from "../interfaces";
7
10
  import type { ProviderEvents, SafeEventEmitterProvider } from "../provider/IProvider";
8
11
  import { WALLET_CONNECTOR_TYPE } from "../wallet";
9
12
  import { CONNECTOR_CATEGORY, CONNECTOR_EVENTS, CONNECTOR_STATUS } from "./constants";
10
- export type UserInfo = AuthUserInfo;
13
+ /**
14
+ *
15
+ */
16
+ export interface LinkedAccountInfo extends BaseLinkedAccountInfo {
17
+ /** Linked account id */
18
+ id: string;
19
+ /** Whether the account is the primary account for the user */
20
+ isPrimary: boolean;
21
+ /** Wallet address of the connected account */
22
+ eoaAddress: string;
23
+ /** Address of the account abstraction for the account */
24
+ aaAddress?: string;
25
+ /** Provider of the account abstraction for the account */
26
+ aaProvider?: string;
27
+ /** Connector name of the account */
28
+ connector: string;
29
+ /** Indicates if the account is the active account */
30
+ active: boolean;
31
+ }
32
+ export type UserInfo = AuthUserInfo & {
33
+ linkedAccounts?: LinkedAccountInfo[];
34
+ };
11
35
  export { UX_MODE, UX_MODE_TYPE, WEB3AUTH_NETWORK, WEB3AUTH_NETWORK_TYPE };
12
36
  export type CONNECTOR_CATEGORY_TYPE = (typeof CONNECTOR_CATEGORY)[keyof typeof CONNECTOR_CATEGORY];
13
37
  export interface ConnectorInitOptions {
@@ -20,13 +44,15 @@ export interface ConnectorInitOptions {
20
44
  */
21
45
  chainId: string;
22
46
  /**
23
- * Whether to get the identity token
47
+ * Whether to fetch auth token info (id / access / refresh tokens)
24
48
  */
25
- getIdentityToken?: boolean;
49
+ getAuthTokenInfo?: boolean;
26
50
  }
27
51
  export type CONNECTOR_STATUS_TYPE = (typeof CONNECTOR_STATUS)[keyof typeof CONNECTOR_STATUS];
28
- export type IdentityTokenInfo = {
52
+ export type AuthTokenInfo = {
29
53
  idToken: string;
54
+ accessToken?: string;
55
+ refreshToken?: string;
30
56
  };
31
57
  export interface BaseConnectorSettings {
32
58
  coreOptions: IWeb3AuthCoreOptions;
@@ -49,12 +75,18 @@ export interface IBaseProvider<T> extends IProvider {
49
75
  updateProviderEngineProxy(provider: SafeEventEmitterProvider): void;
50
76
  setKeyExportFlag(flag: boolean): void;
51
77
  }
78
+ export interface Connection {
79
+ readonly ethereumProvider: IProvider | null;
80
+ readonly solanaWallet: Wallet | null;
81
+ readonly connectorName: WALLET_CONNECTOR_TYPE | string;
82
+ }
52
83
  export interface IConnector<T> extends SafeEventEmitter {
53
84
  connectorNamespace: ConnectorNamespaceType;
54
85
  type: CONNECTOR_CATEGORY_TYPE;
55
86
  name: WALLET_CONNECTOR_TYPE | string;
56
87
  status: CONNECTOR_STATUS_TYPE;
57
88
  provider: IProvider | null;
89
+ readonly solanaWallet: Wallet | null;
58
90
  connectorData?: unknown;
59
91
  connected: boolean;
60
92
  isInjected?: boolean;
@@ -63,16 +95,19 @@ export interface IConnector<T> extends SafeEventEmitter {
63
95
  disconnect(options?: {
64
96
  cleanup: boolean;
65
97
  }): Promise<void>;
66
- connect(params: T & {
67
- chainId: string;
68
- }): Promise<IProvider | null>;
98
+ connect(params: T & BaseConnectorLoginParams): Promise<Connection | null>;
69
99
  getUserInfo(): Promise<Partial<UserInfo>>;
70
100
  enableMFA(params?: T): Promise<void>;
71
101
  manageMFA(params?: T): Promise<void>;
72
102
  switchChain(params: {
73
103
  chainId: string;
74
104
  }): Promise<void>;
75
- getIdentityToken(): Promise<IdentityTokenInfo>;
105
+ getAuthTokenInfo(): Promise<AuthTokenInfo>;
106
+ generateChallengeAndSign(authServerUrl?: string, accounts?: string[]): Promise<{
107
+ challenge: string;
108
+ signature: string;
109
+ chainNamespace: ChainNamespaceType;
110
+ }>;
76
111
  cleanup?(): Promise<void>;
77
112
  }
78
113
  export type ConnectorParams = {
@@ -82,28 +117,38 @@ export type ConnectorParams = {
82
117
  };
83
118
  export type BaseConnectorLoginParams = {
84
119
  chainId: string;
85
- getIdentityToken: boolean;
120
+ getAuthTokenInfo?: boolean;
121
+ /**
122
+ * for metamask connector, array of caip account ids to be used for connecting to the wallet
123
+ */
124
+ caipAccountIds?: CaipAccountId[];
125
+ /**
126
+ * Whether the connection is for the primary account or account linking
127
+ */
128
+ isAccountLinking?: boolean;
86
129
  };
87
130
  export type ConnectorFn = (params: ConnectorParams) => IConnector<unknown>;
88
- export type CONNECTED_EVENT_DATA = {
89
- connector: WALLET_CONNECTOR_TYPE | string;
90
- provider: IProvider;
131
+ export type CONNECTED_EVENT_DATA = Connection & {
91
132
  reconnected: boolean;
92
- identityTokenInfo: IdentityTokenInfo;
133
+ pendingUserConsent?: boolean;
134
+ };
135
+ export type DISCONNECTED_EVENT_DATA = {
136
+ connector: WALLET_CONNECTOR_TYPE | string;
93
137
  };
94
138
  export type AUTHORIZED_EVENT_DATA = {
95
139
  connector: WALLET_CONNECTOR_TYPE | string;
96
- identityTokenInfo: IdentityTokenInfo;
140
+ authTokenInfo: AuthTokenInfo;
97
141
  };
98
142
  export interface IConnectorDataEvent {
99
143
  connectorName: string;
100
144
  data: unknown;
101
145
  }
146
+ export type CONNECTION_UPDATED_EVENT_DATA = Connection;
102
147
  export type ConnectorEvents = {
103
148
  [CONNECTOR_EVENTS.NOT_READY]: () => void;
104
149
  [CONNECTOR_EVENTS.READY]: (connector: WALLET_CONNECTOR_TYPE | string) => void;
105
150
  [CONNECTOR_EVENTS.CONNECTED]: (data: CONNECTED_EVENT_DATA) => void;
106
- [CONNECTOR_EVENTS.DISCONNECTED]: () => void;
151
+ [CONNECTOR_EVENTS.DISCONNECTED]: (data?: DISCONNECTED_EVENT_DATA) => void;
107
152
  [CONNECTOR_EVENTS.CONNECTING]: (data: {
108
153
  connector: WALLET_CONNECTOR_TYPE | string;
109
154
  }) => void;
@@ -119,6 +164,11 @@ export type ConnectorEvents = {
119
164
  connectors: IConnector<unknown>[];
120
165
  }) => void;
121
166
  [CONNECTOR_EVENTS.MFA_ENABLED]: (isMFAEnabled: boolean) => void;
167
+ [CONNECTOR_EVENTS.CONSENT_REQUIRING]: (data: CONNECTED_EVENT_DATA) => void;
168
+ [CONNECTOR_EVENTS.CONSENT_ACCEPTED]: (data: CONNECTED_EVENT_DATA & {
169
+ loginMode: LoginModeType;
170
+ }) => void;
171
+ [CONNECTOR_EVENTS.CONNECTION_UPDATED]: (data: CONNECTION_UPDATED_EVENT_DATA) => void;
122
172
  };
123
173
  export interface BaseConnectorConfig {
124
174
  label: string;
@@ -188,3 +238,9 @@ export type WalletConnectV2Data = {
188
238
  export type MetaMaskConnectorData = {
189
239
  uri: string;
190
240
  };
241
+ export type ConnectedAccountsWithProviders = Omit<LinkedAccountInfo, "connector"> & {
242
+ connector: IConnector<unknown>;
243
+ signingProvider: IProvider | null;
244
+ solanaWallet: Connection["solanaWallet"];
245
+ connected: boolean;
246
+ };
@@ -1,5 +1,2 @@
1
1
  export declare function storageAvailable(type: "sessionStorage" | "localStorage"): boolean;
2
2
  export declare const checkIfTokenIsExpired: (token: string) => boolean;
3
- export declare const getSavedToken: (userAddress: string, issuer: string) => string;
4
- export declare const saveToken: (userAddress: string, issuer: string, token: string) => void;
5
- export declare const clearToken: (userAddress: string, issuer: string) => void;
@@ -17,4 +17,5 @@ export declare const LOGIN_MODE: {
17
17
  readonly NO_MODAL: "no-modal";
18
18
  };
19
19
  export declare const SOLANA_CAIP_CHAIN_MAP: Record<string, string>;
20
+ export declare const EIP_7702_SUPPORTED_SMART_ACCOUNTS: readonly ["metamask"];
20
21
  export declare const WALLET_REGISTRY_URL = "https://assets.web3auth.io/v2/wallet-registry.json";