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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (356) hide show
  1. package/dist/lib.cjs/account-linking/index.js +8 -0
  2. package/dist/lib.cjs/account-linking/react.js +95 -0
  3. package/dist/lib.cjs/account-linking/rest.js +54 -0
  4. package/dist/lib.cjs/account-linking/vue.js +98 -0
  5. package/dist/lib.cjs/base/analytics.js +13 -1
  6. package/dist/lib.cjs/base/connector/baseConnector.js +104 -2
  7. package/dist/lib.cjs/base/connector/connectorStatus.js +2 -0
  8. package/dist/lib.cjs/base/connector/constants.js +6 -2
  9. package/dist/lib.cjs/base/connector/utils.js +0 -21
  10. package/dist/lib.cjs/base/constants.js +4 -0
  11. package/dist/lib.cjs/base/cookie.js +6 -20
  12. package/dist/lib.cjs/base/errors/index.js +84 -12
  13. package/dist/lib.cjs/base/utils.js +22 -11
  14. package/dist/lib.cjs/base/wallet/index.js +7 -0
  15. package/dist/lib.cjs/base/wallet/solana.js +83 -0
  16. package/dist/lib.cjs/connectors/auth-connector/authConnector.js +566 -93
  17. package/dist/lib.cjs/connectors/auth-connector/authSolanaWallet.js +187 -0
  18. package/dist/lib.cjs/connectors/base-evm-connector/baseEvmConnector.js +55 -58
  19. package/dist/lib.cjs/connectors/base-solana-connector/baseSolanaConnector.js +57 -66
  20. package/dist/lib.cjs/connectors/coinbase-connector/coinbaseConnector.js +19 -14
  21. package/dist/lib.cjs/connectors/injected-evm-connector/injectedEvmConnector.js +18 -13
  22. package/dist/lib.cjs/connectors/injected-solana-connector/walletStandardConnector.js +24 -36
  23. package/dist/lib.cjs/connectors/metamask-connector/metamaskConnector.js +350 -131
  24. package/dist/lib.cjs/connectors/utils.js +8 -2
  25. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +12 -38
  26. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/config.js +4 -3
  27. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +111 -73
  28. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Utils.js +24 -51
  29. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/wcSolanaWallet.js +144 -0
  30. package/dist/lib.cjs/index.js +55 -83
  31. package/dist/lib.cjs/noModal.js +957 -169
  32. package/dist/lib.cjs/plugins/wallet-services-plugin/plugin.js +23 -39
  33. package/dist/lib.cjs/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +12 -10
  34. package/dist/lib.cjs/providers/account-abstraction-provider/providers/utils.js +8 -6
  35. package/dist/lib.cjs/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +47 -44
  36. package/dist/lib.cjs/providers/base-provider/CommonJRPCProvider.js +1 -3
  37. package/dist/lib.cjs/providers/base-provider/baseProvider.js +69 -35
  38. package/dist/lib.cjs/providers/base-provider/commonPrivateKeyProvider.js +8 -11
  39. package/dist/lib.cjs/providers/base-provider/index.js +0 -1
  40. package/dist/lib.cjs/providers/base-provider/jrpcClient.js +18 -19
  41. package/dist/lib.cjs/providers/base-provider/utils.js +0 -3
  42. package/dist/lib.cjs/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +22 -43
  43. package/dist/lib.cjs/providers/ethereum-provider/rpc/jrpcClient.js +18 -19
  44. package/dist/lib.cjs/providers/ethereum-provider/rpc/walletMiddleware.js +200 -0
  45. package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +9 -18
  46. package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.js +2 -1
  47. package/dist/lib.cjs/providers/xrpl-provider/rpc/JrpcClient.js +19 -26
  48. package/dist/lib.cjs/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +46 -37
  49. package/dist/lib.cjs/react/context/WalletServicesInnerContext.js +2 -69
  50. package/dist/lib.cjs/react/context/Web3AuthInnerContext.js +6 -161
  51. package/dist/lib.cjs/react/context/useWalletServicesContextValue.js +76 -0
  52. package/dist/lib.cjs/react/context/useWeb3AuthInnerContextValue.js +216 -0
  53. package/dist/lib.cjs/react/hooks/{useIdentityToken.js → useAuthTokenInfo.js} +6 -7
  54. package/dist/lib.cjs/react/hooks/useCheckout.js +4 -2
  55. package/dist/lib.cjs/react/hooks/useFunding.js +4 -2
  56. package/dist/lib.cjs/react/hooks/useReceive.js +4 -2
  57. package/dist/lib.cjs/react/hooks/useSwap.js +4 -2
  58. package/dist/lib.cjs/react/hooks/useWalletConnectScanner.js +4 -2
  59. package/dist/lib.cjs/react/hooks/useWalletServicesPlugin.js +3 -10
  60. package/dist/lib.cjs/react/hooks/useWalletUI.js +4 -2
  61. package/dist/lib.cjs/react/hooks/useWallets.js +51 -0
  62. package/dist/lib.cjs/react/hooks/useWeb3Auth.js +1 -22
  63. package/dist/lib.cjs/react/hooks/useWeb3AuthConnect.js +2 -2
  64. package/dist/lib.cjs/react/hooks/useWeb3AuthInner.js +4 -2
  65. package/dist/lib.cjs/react/index.js +12 -2
  66. package/dist/lib.cjs/react/solana/hooks/useSignAndSendTransaction.js +22 -4
  67. package/dist/lib.cjs/react/solana/hooks/useSignMessage.js +20 -2
  68. package/dist/lib.cjs/react/solana/hooks/useSignTransaction.js +22 -3
  69. package/dist/lib.cjs/react/solana/hooks/useSolanaWallet.js +34 -51
  70. package/dist/lib.cjs/react/solana/index.js +2 -0
  71. package/dist/lib.cjs/react/solana/provider.js +169 -0
  72. package/dist/lib.cjs/react/wagmi/provider.js +10 -8
  73. package/dist/lib.cjs/types/account-linking/index.d.ts +2 -0
  74. package/dist/lib.cjs/types/account-linking/interfaces.d.ts +90 -0
  75. package/dist/lib.cjs/types/account-linking/react.d.ts +19 -0
  76. package/dist/lib.cjs/types/account-linking/rest.d.ts +9 -0
  77. package/dist/lib.cjs/types/account-linking/vue.d.ts +20 -0
  78. package/dist/lib.cjs/types/base/analytics.d.ts +9 -0
  79. package/dist/lib.cjs/types/base/connector/baseConnector.d.ts +26 -5
  80. package/dist/lib.cjs/types/base/connector/connectorStatus.d.ts +1 -0
  81. package/dist/lib.cjs/types/base/connector/constants.d.ts +5 -0
  82. package/dist/lib.cjs/types/base/connector/interfaces.d.ts +72 -16
  83. package/dist/lib.cjs/types/base/connector/utils.d.ts +0 -3
  84. package/dist/lib.cjs/types/base/constants.d.ts +1 -0
  85. package/dist/lib.cjs/types/base/cookie.d.ts +0 -7
  86. package/dist/lib.cjs/types/base/core/IWeb3Auth.d.ts +57 -13
  87. package/dist/lib.cjs/types/base/errors/index.d.ts +15 -3
  88. package/dist/lib.cjs/types/base/hooks/index.d.ts +2 -2
  89. package/dist/lib.cjs/types/base/interfaces.d.ts +8 -2
  90. package/dist/lib.cjs/types/base/utils.d.ts +9 -2
  91. package/dist/lib.cjs/types/base/wallet/index.d.ts +3 -0
  92. package/dist/lib.cjs/types/base/wallet/solana.d.ts +19 -0
  93. package/dist/lib.cjs/types/connectors/auth-connector/authConnector.d.ts +37 -8
  94. package/dist/lib.cjs/types/connectors/auth-connector/authSolanaWallet.d.ts +35 -0
  95. package/dist/lib.cjs/types/connectors/auth-connector/interface.d.ts +77 -2
  96. package/dist/lib.cjs/types/connectors/base-evm-connector/baseEvmConnector.d.ts +8 -2
  97. package/dist/lib.cjs/types/connectors/base-solana-connector/baseSolanaConnector.d.ts +8 -2
  98. package/dist/lib.cjs/types/connectors/injected-evm-connector/injectedEvmConnector.d.ts +2 -2
  99. package/dist/lib.cjs/types/connectors/injected-solana-connector/walletStandardConnector.d.ts +10 -7
  100. package/dist/lib.cjs/types/connectors/metamask-connector/metamaskConnector.d.ts +35 -3
  101. package/dist/lib.cjs/types/connectors/utils.d.ts +2 -0
  102. package/dist/lib.cjs/types/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.d.ts +0 -1
  103. package/dist/lib.cjs/types/connectors/wallet-connect-v2-connector/walletConnectV2Utils.d.ts +1 -5
  104. package/dist/lib.cjs/types/connectors/wallet-connect-v2-connector/wcSolanaWallet.d.ts +26 -0
  105. package/dist/lib.cjs/types/index.d.ts +1 -0
  106. package/dist/lib.cjs/types/noModal.d.ts +113 -10
  107. package/dist/lib.cjs/types/plugins/wallet-services-plugin/plugin.d.ts +1 -4
  108. package/dist/lib.cjs/types/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.d.ts +4 -4
  109. package/dist/lib.cjs/types/providers/base-provider/baseProvider.d.ts +7 -0
  110. package/dist/lib.cjs/types/providers/base-provider/jrpcClient.d.ts +2 -5
  111. package/dist/lib.cjs/types/providers/base-provider/utils.d.ts +0 -1
  112. package/dist/lib.cjs/types/providers/ethereum-provider/index.d.ts +0 -1
  113. package/dist/lib.cjs/types/providers/ethereum-provider/rpc/ethRpcMiddlewares.d.ts +4 -4
  114. package/dist/lib.cjs/types/providers/ethereum-provider/rpc/index.d.ts +1 -1
  115. package/dist/lib.cjs/types/providers/ethereum-provider/rpc/jrpcClient.d.ts +2 -5
  116. package/dist/lib.cjs/types/providers/ethereum-provider/rpc/walletMiddleware.d.ts +3 -0
  117. package/dist/lib.cjs/types/providers/index.d.ts +0 -1
  118. package/dist/lib.cjs/types/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.d.ts +0 -1
  119. package/dist/lib.cjs/types/providers/xrpl-provider/rpc/JrpcClient.d.ts +3 -7
  120. package/dist/lib.cjs/types/providers/xrpl-provider/rpc/xrplRpcMiddlewares.d.ts +5 -12
  121. package/dist/lib.cjs/types/react/context/index.d.ts +4 -0
  122. package/dist/lib.cjs/types/react/context/useWalletServicesContextValue.d.ts +12 -0
  123. package/dist/lib.cjs/types/react/context/useWeb3AuthInnerContextValue.d.ts +26 -0
  124. package/dist/lib.cjs/types/react/hooks/index.d.ts +2 -1
  125. package/dist/lib.cjs/types/react/hooks/{useIdentityToken.d.ts → useAuthTokenInfo.d.ts} +4 -4
  126. package/dist/lib.cjs/types/react/hooks/useWallets.d.ts +8 -0
  127. package/dist/lib.cjs/types/react/hooks/useWeb3Auth.d.ts +1 -2
  128. package/dist/lib.cjs/types/react/hooks/useWeb3AuthConnect.d.ts +2 -2
  129. package/dist/lib.cjs/types/react/index.d.ts +1 -0
  130. package/dist/lib.cjs/types/react/solana/hooks/useSignAndSendTransaction.d.ts +7 -2
  131. package/dist/lib.cjs/types/react/solana/hooks/useSignTransaction.d.ts +8 -3
  132. package/dist/lib.cjs/types/react/solana/hooks/useSolanaWallet.d.ts +17 -4
  133. package/dist/lib.cjs/types/react/solana/index.d.ts +1 -0
  134. package/dist/lib.cjs/types/react/solana/provider.d.ts +26 -0
  135. package/dist/lib.cjs/types/vue/composables/index.d.ts +3 -1
  136. package/dist/lib.cjs/types/vue/composables/{useIdentityToken.d.ts → useAuthTokenInfo.d.ts} +3 -3
  137. package/dist/lib.cjs/types/vue/composables/useInjectedWeb3AuthInnerContext.d.ts +1 -0
  138. package/dist/lib.cjs/types/vue/composables/useWallets.d.ts +9 -0
  139. package/dist/lib.cjs/types/vue/composables/useWeb3Auth.d.ts +1 -2
  140. package/dist/lib.cjs/types/vue/composables/useWeb3AuthConnect.d.ts +2 -2
  141. package/dist/lib.cjs/types/vue/index.d.ts +2 -0
  142. package/dist/lib.cjs/types/vue/interfaces.d.ts +2 -2
  143. package/dist/lib.cjs/types/vue/solana/composables/index.d.ts +1 -0
  144. package/dist/lib.cjs/types/vue/solana/composables/useSignAndSendTransaction.d.ts +7 -2
  145. package/dist/lib.cjs/types/vue/solana/composables/useSignTransaction.d.ts +8 -3
  146. package/dist/lib.cjs/types/vue/solana/composables/useSolanaClient.d.ts +7 -0
  147. package/dist/lib.cjs/types/vue/solana/composables/useSolanaWallet.d.ts +17 -4
  148. package/dist/lib.cjs/types/vue/solana/constants.d.ts +3 -0
  149. package/dist/lib.cjs/types/vue/solana/index.d.ts +2 -0
  150. package/dist/lib.cjs/types/vue/solana/provider.d.ts +8 -0
  151. package/dist/lib.cjs/types/vue/useWalletServicesInnerContextValue.d.ts +13 -0
  152. package/dist/lib.cjs/types/vue/useWeb3AuthInnerContextValue.d.ts +26 -0
  153. package/dist/lib.cjs/types/x402/index.d.ts +43 -0
  154. package/dist/lib.cjs/types/x402/interfaces.d.ts +11 -0
  155. package/dist/lib.cjs/types/x402/react.d.ts +17 -0
  156. package/dist/lib.cjs/types/x402/vue.d.ts +18 -0
  157. package/dist/lib.cjs/vue/WalletServicesInnerProvider.js +9 -54
  158. package/dist/lib.cjs/vue/Web3AuthProvider.js +16 -177
  159. package/dist/lib.cjs/vue/composables/{useIdentityToken.js → useAuthTokenInfo.js} +10 -8
  160. package/dist/lib.cjs/vue/composables/useCheckout.js +4 -2
  161. package/dist/lib.cjs/vue/composables/useEnableMFA.js +4 -2
  162. package/dist/lib.cjs/vue/composables/useFunding.js +4 -2
  163. package/dist/lib.cjs/vue/composables/useInjectedWeb3AuthInnerContext.js +29 -0
  164. package/dist/lib.cjs/vue/composables/useManageMFA.js +4 -2
  165. package/dist/lib.cjs/vue/composables/useReceive.js +4 -2
  166. package/dist/lib.cjs/vue/composables/useSwap.js +4 -2
  167. package/dist/lib.cjs/vue/composables/useSwitchChain.js +4 -2
  168. package/dist/lib.cjs/vue/composables/useWalletConnectScanner.js +4 -2
  169. package/dist/lib.cjs/vue/composables/useWalletUI.js +4 -2
  170. package/dist/lib.cjs/vue/composables/useWallets.js +52 -0
  171. package/dist/lib.cjs/vue/composables/useWeb3Auth.js +1 -26
  172. package/dist/lib.cjs/vue/composables/useWeb3AuthConnect.js +6 -4
  173. package/dist/lib.cjs/vue/composables/useWeb3AuthDisconnect.js +4 -2
  174. package/dist/lib.cjs/vue/composables/useWeb3AuthInner.js +2 -20
  175. package/dist/lib.cjs/vue/composables/useWeb3AuthUser.js +4 -2
  176. package/dist/lib.cjs/vue/index.js +10 -2
  177. package/dist/lib.cjs/vue/solana/composables/useSignAndSendTransaction.js +6 -3
  178. package/dist/lib.cjs/vue/solana/composables/useSignMessage.js +6 -3
  179. package/dist/lib.cjs/vue/solana/composables/useSignTransaction.js +6 -3
  180. package/dist/lib.cjs/vue/solana/composables/useSolanaClient.js +14 -0
  181. package/dist/lib.cjs/vue/solana/composables/useSolanaWallet.js +60 -41
  182. package/dist/lib.cjs/vue/solana/constants.js +5 -0
  183. package/dist/lib.cjs/vue/solana/index.js +6 -0
  184. package/dist/lib.cjs/vue/solana/provider.js +110 -0
  185. package/dist/lib.cjs/vue/useWalletServicesInnerContextValue.js +75 -0
  186. package/dist/lib.cjs/vue/useWeb3AuthInnerContextValue.js +226 -0
  187. package/dist/lib.cjs/vue/wagmi/provider.js +28 -12
  188. package/dist/lib.cjs/x402/index.js +175 -0
  189. package/dist/lib.cjs/x402/interfaces.js +5 -0
  190. package/dist/lib.cjs/x402/react.js +64 -0
  191. package/dist/lib.cjs/x402/vue.js +58 -0
  192. package/dist/lib.esm/account-linking/index.js +1 -0
  193. package/dist/lib.esm/account-linking/react.js +74 -0
  194. package/dist/lib.esm/account-linking/rest.js +51 -0
  195. package/dist/lib.esm/account-linking/vue.js +78 -0
  196. package/dist/lib.esm/base/analytics.js +13 -1
  197. package/dist/lib.esm/base/connector/baseConnector.js +104 -2
  198. package/dist/lib.esm/base/connector/connectorStatus.js +2 -1
  199. package/dist/lib.esm/base/connector/constants.js +6 -2
  200. package/dist/lib.esm/base/connector/utils.js +1 -19
  201. package/dist/lib.esm/base/constants.js +4 -1
  202. package/dist/lib.esm/base/cookie.js +7 -20
  203. package/dist/lib.esm/base/errors/index.js +84 -13
  204. package/dist/lib.esm/base/utils.js +22 -7
  205. package/dist/lib.esm/base/wallet/index.js +2 -1
  206. package/dist/lib.esm/base/wallet/solana.js +81 -0
  207. package/dist/lib.esm/connectors/auth-connector/authConnector.js +527 -57
  208. package/dist/lib.esm/connectors/auth-connector/authSolanaWallet.js +175 -0
  209. package/dist/lib.esm/connectors/base-evm-connector/baseEvmConnector.js +55 -58
  210. package/dist/lib.esm/connectors/base-solana-connector/baseSolanaConnector.js +57 -66
  211. package/dist/lib.esm/connectors/coinbase-connector/coinbaseConnector.js +16 -13
  212. package/dist/lib.esm/connectors/injected-evm-connector/injectedEvmConnector.js +16 -13
  213. package/dist/lib.esm/connectors/injected-solana-connector/walletStandardConnector.js +22 -34
  214. package/dist/lib.esm/connectors/metamask-connector/metamaskConnector.js +366 -132
  215. package/dist/lib.esm/connectors/utils.js +9 -4
  216. package/dist/lib.esm/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +12 -31
  217. package/dist/lib.esm/connectors/wallet-connect-v2-connector/config.js +1 -1
  218. package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +110 -73
  219. package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Utils.js +21 -49
  220. package/dist/lib.esm/connectors/wallet-connect-v2-connector/wcSolanaWallet.js +130 -0
  221. package/dist/lib.esm/index.js +12 -19
  222. package/dist/lib.esm/noModal.js +975 -177
  223. package/dist/lib.esm/plugins/wallet-services-plugin/plugin.js +20 -39
  224. package/dist/lib.esm/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +9 -9
  225. package/dist/lib.esm/providers/account-abstraction-provider/providers/utils.js +3 -3
  226. package/dist/lib.esm/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +48 -45
  227. package/dist/lib.esm/providers/base-provider/CommonJRPCProvider.js +2 -4
  228. package/dist/lib.esm/providers/base-provider/baseProvider.js +68 -38
  229. package/dist/lib.esm/providers/base-provider/commonPrivateKeyProvider.js +9 -12
  230. package/dist/lib.esm/providers/base-provider/index.js +1 -1
  231. package/dist/lib.esm/providers/base-provider/jrpcClient.js +20 -19
  232. package/dist/lib.esm/providers/base-provider/utils.js +1 -3
  233. package/dist/lib.esm/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +23 -44
  234. package/dist/lib.esm/providers/ethereum-provider/rpc/jrpcClient.js +20 -19
  235. package/dist/lib.esm/providers/ethereum-provider/rpc/walletMiddleware.js +201 -0
  236. package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +6 -17
  237. package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.js +2 -1
  238. package/dist/lib.esm/providers/xrpl-provider/rpc/JrpcClient.js +21 -25
  239. package/dist/lib.esm/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +48 -38
  240. package/dist/lib.esm/react/context/WalletServicesInnerContext.js +3 -57
  241. package/dist/lib.esm/react/context/Web3AuthInnerContext.js +7 -152
  242. package/dist/lib.esm/react/context/useWalletServicesContextValue.js +59 -0
  243. package/dist/lib.esm/react/context/useWeb3AuthInnerContextValue.js +203 -0
  244. package/dist/lib.esm/react/hooks/{useIdentityToken.js → useAuthTokenInfo.js} +6 -7
  245. package/dist/lib.esm/react/hooks/useWalletServicesPlugin.js +3 -10
  246. package/dist/lib.esm/react/hooks/useWallets.js +33 -0
  247. package/dist/lib.esm/react/hooks/useWeb3Auth.js +1 -22
  248. package/dist/lib.esm/react/hooks/useWeb3AuthConnect.js +2 -2
  249. package/dist/lib.esm/react/index.js +6 -1
  250. package/dist/lib.esm/react/solana/hooks/useSignAndSendTransaction.js +6 -4
  251. package/dist/lib.esm/react/solana/hooks/useSignMessage.js +4 -2
  252. package/dist/lib.esm/react/solana/hooks/useSignTransaction.js +6 -3
  253. package/dist/lib.esm/react/solana/hooks/useSolanaWallet.js +33 -28
  254. package/dist/lib.esm/react/solana/index.js +1 -0
  255. package/dist/lib.esm/react/solana/provider.js +153 -0
  256. package/dist/lib.esm/react/wagmi/provider.js +8 -8
  257. package/dist/lib.esm/vue/WalletServicesInnerProvider.js +4 -54
  258. package/dist/lib.esm/vue/Web3AuthProvider.js +7 -179
  259. package/dist/lib.esm/vue/composables/{useIdentityToken.js → useAuthTokenInfo.js} +6 -6
  260. package/dist/lib.esm/vue/composables/useCheckout.js +1 -1
  261. package/dist/lib.esm/vue/composables/useFunding.js +1 -1
  262. package/dist/lib.esm/vue/composables/useInjectedWeb3AuthInnerContext.js +11 -0
  263. package/dist/lib.esm/vue/composables/useReceive.js +1 -1
  264. package/dist/lib.esm/vue/composables/useSwap.js +1 -1
  265. package/dist/lib.esm/vue/composables/useWalletConnectScanner.js +1 -1
  266. package/dist/lib.esm/vue/composables/useWalletUI.js +1 -1
  267. package/dist/lib.esm/vue/composables/useWallets.js +35 -0
  268. package/dist/lib.esm/vue/composables/useWeb3Auth.js +1 -26
  269. package/dist/lib.esm/vue/composables/useWeb3AuthConnect.js +2 -2
  270. package/dist/lib.esm/vue/composables/useWeb3AuthInner.js +2 -6
  271. package/dist/lib.esm/vue/index.js +5 -1
  272. package/dist/lib.esm/vue/solana/composables/useSignAndSendTransaction.js +2 -1
  273. package/dist/lib.esm/vue/solana/composables/useSignMessage.js +2 -1
  274. package/dist/lib.esm/vue/solana/composables/useSignTransaction.js +3 -2
  275. package/dist/lib.esm/vue/solana/composables/useSolanaClient.js +12 -0
  276. package/dist/lib.esm/vue/solana/composables/useSolanaWallet.js +53 -35
  277. package/dist/lib.esm/vue/solana/constants.js +3 -0
  278. package/dist/lib.esm/vue/solana/index.js +3 -0
  279. package/dist/lib.esm/vue/solana/provider.js +99 -0
  280. package/dist/lib.esm/vue/useWalletServicesInnerContextValue.js +58 -0
  281. package/dist/lib.esm/vue/useWeb3AuthInnerContextValue.js +213 -0
  282. package/dist/lib.esm/vue/wagmi/provider.js +26 -12
  283. package/dist/lib.esm/x402/index.js +170 -0
  284. package/dist/lib.esm/x402/interfaces.js +3 -0
  285. package/dist/lib.esm/x402/react.js +59 -0
  286. package/dist/lib.esm/x402/vue.js +54 -0
  287. package/package.json +102 -53
  288. package/dist/lib.cjs/providers/ethereum-mpc-provider/index.js +0 -7
  289. package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +0 -224
  290. package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +0 -177
  291. package/dist/lib.cjs/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +0 -21
  292. package/dist/lib.cjs/providers/ethereum-provider/providers/converter.js +0 -88
  293. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.js +0 -27
  294. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +0 -383
  295. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +0 -8
  296. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +0 -93
  297. package/dist/lib.cjs/providers/ethereum-provider/providers/utils.js +0 -29
  298. package/dist/lib.cjs/providers/ethereum-provider/rpc/walletMidddleware.js +0 -251
  299. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +0 -65
  300. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +0 -45
  301. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/utils.js +0 -16
  302. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +0 -103
  303. package/dist/lib.cjs/providers/solana-provider/rpc/JrpcClient.js +0 -47
  304. package/dist/lib.cjs/providers/solana-provider/rpc/solanaRpcMiddlewares.js +0 -97
  305. package/dist/lib.cjs/providers/solana-provider/solanaWallet.js +0 -91
  306. package/dist/lib.cjs/types/connectors/injected-solana-connector/utils.d.ts +0 -3
  307. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/index.d.ts +0 -1
  308. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/providers/index.d.ts +0 -1
  309. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.d.ts +0 -74
  310. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/providers/signingProviders/index.d.ts +0 -1
  311. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.d.ts +0 -12
  312. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.d.ts +0 -3
  313. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/rpc/interfaces.d.ts +0 -15
  314. package/dist/lib.cjs/types/providers/ethereum-provider/providers/converter.d.ts +0 -14
  315. package/dist/lib.cjs/types/providers/ethereum-provider/providers/index.d.ts +0 -1
  316. package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.d.ts +0 -16
  317. package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.d.ts +0 -28
  318. package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/index.d.ts +0 -4
  319. package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.d.ts +0 -46
  320. package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.d.ts +0 -11
  321. package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/index.d.ts +0 -1
  322. package/dist/lib.cjs/types/providers/ethereum-provider/providers/utils.d.ts +0 -5
  323. package/dist/lib.cjs/types/providers/ethereum-provider/rpc/walletMidddleware.d.ts +0 -3
  324. package/dist/lib.cjs/types/providers/solana-provider/index.d.ts +0 -4
  325. package/dist/lib.cjs/types/providers/solana-provider/interface.d.ts +0 -22
  326. package/dist/lib.cjs/types/providers/solana-provider/providers/index.d.ts +0 -1
  327. package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.d.ts +0 -16
  328. package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/base/providerHandlers.d.ts +0 -3
  329. package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/index.d.ts +0 -2
  330. package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/utils.d.ts +0 -3
  331. package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/walletStandardProvider.d.ts +0 -9
  332. package/dist/lib.cjs/types/providers/solana-provider/rpc/JrpcClient.d.ts +0 -9
  333. package/dist/lib.cjs/types/providers/solana-provider/rpc/index.d.ts +0 -3
  334. package/dist/lib.cjs/types/providers/solana-provider/rpc/interfaces.d.ts +0 -27
  335. package/dist/lib.cjs/types/providers/solana-provider/rpc/solanaRpcMiddlewares.d.ts +0 -20
  336. package/dist/lib.cjs/types/providers/solana-provider/solanaWallet.d.ts +0 -29
  337. package/dist/lib.esm/providers/ethereum-mpc-provider/index.js +0 -1
  338. package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +0 -206
  339. package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +0 -163
  340. package/dist/lib.esm/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +0 -20
  341. package/dist/lib.esm/providers/ethereum-provider/providers/converter.js +0 -85
  342. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.js +0 -21
  343. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +0 -378
  344. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +0 -8
  345. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +0 -88
  346. package/dist/lib.esm/providers/ethereum-provider/providers/utils.js +0 -24
  347. package/dist/lib.esm/providers/ethereum-provider/rpc/walletMidddleware.js +0 -258
  348. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +0 -47
  349. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +0 -43
  350. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/utils.js +0 -14
  351. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +0 -91
  352. package/dist/lib.esm/providers/solana-provider/rpc/JrpcClient.js +0 -42
  353. package/dist/lib.esm/providers/solana-provider/rpc/solanaRpcMiddlewares.js +0 -89
  354. package/dist/lib.esm/providers/solana-provider/solanaWallet.js +0 -92
  355. package/dist/noModal.umd.min.js +0 -2
  356. package/dist/noModal.umd.min.js.LICENSE.txt +0 -46
@@ -1,16 +1,14 @@
1
1
  import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
2
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
3
3
  import { getAccountsFromNamespaces, parseAccountId } from '@walletconnect/utils';
4
- import { providerErrors, JRPCEngine, providerFromEngine } from '@web3auth/auth';
4
+ import { providerErrors, JRPCEngineV2, providerFromEngineV2 } from '@web3auth/auth';
5
5
  import { formatChainId } from './utils.js';
6
- import { switchChain, addChain, getAccounts, getEthProviderHandlers, getSolProviderHandlers } from './walletConnectV2Utils.js';
7
- import { createEthMiddleware, createEthChainSwitchMiddleware } from '../../providers/ethereum-provider/rpc/ethRpcMiddlewares.js';
8
- import { createEthJsonRpcClient } from '../../providers/ethereum-provider/rpc/jrpcClient.js';
9
- import { createSolanaMiddleware } from '../../providers/solana-provider/rpc/solanaRpcMiddlewares.js';
10
- import { createSolanaJsonRpcClient } from '../../providers/solana-provider/rpc/JrpcClient.js';
6
+ import { switchChain, addChain, getAccounts, getEthProviderHandlers } from './walletConnectV2Utils.js';
11
7
  import { BaseProvider } from '../../providers/base-provider/baseProvider.js';
12
8
  import { WalletLoginError } from '../../base/errors/index.js';
13
9
  import { CHAIN_NAMESPACES } from '@toruslabs/base-controllers';
10
+ import { createEthMiddleware, createEthChainSwitchMiddleware } from '../../providers/ethereum-provider/rpc/ethRpcMiddlewares.js';
11
+ import { createEthJsonRpcClient } from '../../providers/ethereum-provider/rpc/jrpcClient.js';
14
12
  import { log } from '../../base/loglevel.js';
15
13
 
16
14
  var _WalletConnectV2Provider;
@@ -91,7 +89,11 @@ class WalletConnectV2Provider extends BaseProvider {
91
89
  if (chain.chainNamespace === CHAIN_NAMESPACES.EIP155) {
92
90
  await this.setupEthEngine(connector, chainId);
93
91
  } else if (chain.chainNamespace === CHAIN_NAMESPACES.SOLANA) {
94
- await this.setupSolEngine(connector, chainId);
92
+ // Solana operations are handled via WCSolanaWallet directly; only update accounts state.
93
+ const accounts = await getAccounts(connector);
94
+ this.update({
95
+ accounts: accounts || []
96
+ });
95
97
  } else {
96
98
  throw new Error(`Unsupported chainNamespace: ${chain.chainNamespace}`);
97
99
  }
@@ -116,34 +118,13 @@ class WalletConnectV2Provider extends BaseProvider {
116
118
  });
117
119
  const ethMiddleware = createEthMiddleware(providerHandlers);
118
120
  const chainSwitchMiddleware = this.getEthChainSwitchMiddleware();
119
- const engine = new JRPCEngine();
120
121
  const {
121
122
  networkMiddleware
122
123
  } = createEthJsonRpcClient(chain);
123
- engine.push(ethMiddleware);
124
- engine.push(chainSwitchMiddleware);
125
- engine.push(networkMiddleware);
126
- const provider = providerFromEngine(engine);
127
- this.updateProviderEngineProxy(provider);
128
- }
129
- async setupSolEngine(connector, chainId) {
130
- const chain = this.getChain(chainId);
131
- const providerHandlers = getSolProviderHandlers({
132
- connector,
133
- chainId
124
+ const engine = JRPCEngineV2.create({
125
+ middleware: [ethMiddleware, chainSwitchMiddleware, networkMiddleware]
134
126
  });
135
- const jrpcRes = await getAccounts(connector);
136
- this.update({
137
- accounts: jrpcRes || []
138
- });
139
- const solMiddleware = createSolanaMiddleware(providerHandlers);
140
- const engine = new JRPCEngine();
141
- const {
142
- networkMiddleware
143
- } = createSolanaJsonRpcClient(chain);
144
- engine.push(solMiddleware);
145
- engine.push(networkMiddleware);
146
- const provider = providerFromEngine(engine);
127
+ const provider = providerFromEngineV2(engine);
147
128
  this.updateProviderEngineProxy(provider);
148
129
  }
149
130
  getEthChainSwitchMiddleware() {
@@ -1,6 +1,6 @@
1
1
  import { getSiteIcon, getSiteName } from '../utils.js';
2
- import { SOLANA_CAIP_CHAIN_MAP } from '../../base/constants.js';
3
2
  import { CHAIN_NAMESPACES } from '@toruslabs/base-controllers';
3
+ import { SOLANA_CAIP_CHAIN_MAP } from '../../base/constants.js';
4
4
 
5
5
  let DEFAULT_EIP155_METHODS = /*#__PURE__*/function (DEFAULT_EIP155_METHODS) {
6
6
  DEFAULT_EIP155_METHODS["ETH_SEND_TRANSACTION"] = "eth_sendTransaction";
@@ -1,21 +1,24 @@
1
1
  import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
2
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
3
- import { CHAIN_NAMESPACES, getErrorAnalyticsProperties, signChallenge, verifySignedChallenge } from '@toruslabs/base-controllers';
3
+ import { CHAIN_NAMESPACES, getErrorAnalyticsProperties, signChallenge } from '@toruslabs/base-controllers';
4
4
  import Client from '@walletconnect/sign-client';
5
5
  import { isValidArray, getSdkError } from '@walletconnect/utils';
6
- import { EVM_METHOD_TYPES, SOLANA_METHOD_TYPES } from '@web3auth/ws-embed';
6
+ import { EVM_METHOD_TYPES } from '@web3auth/ws-embed';
7
7
  import deepmerge from 'deepmerge';
8
+ import { generateSiweNonce } from 'viem/siwe';
8
9
  import { getWalletConnectV2Settings } from './config.js';
9
10
  import { WalletConnectV2Provider } from './WalletConnectV2Provider.js';
10
- import { BaseConnector } from '../../base/connector/baseConnector.js';
11
+ import { WCSolanaWallet } from './wcSolanaWallet.js';
11
12
  import { WALLET_CONNECTORS } from '../../base/wallet/index.js';
12
13
  import { CONNECTOR_NAMESPACES } from '../../base/chain/IChainInterface.js';
13
- import { CONNECTOR_CATEGORY, CONNECTOR_STATUS, CONNECTOR_EVENTS } from '../../base/connector/constants.js';
14
14
  import { WalletInitializationError, WalletLoginError, Web3AuthError } from '../../base/errors/index.js';
15
15
  import { log } from '../../base/loglevel.js';
16
- import { getCaipChainId } from '../../base/utils.js';
16
+ import { getCaipChainId, citadelServerUrl } from '../../base/utils.js';
17
17
  import { ANALYTICS_EVENTS } from '../../base/analytics.js';
18
- import { getSavedToken, checkIfTokenIsExpired, saveToken } from '../../base/connector/utils.js';
18
+ import { SOLANA_CAIP_CHAIN_MAP } from '../../base/constants.js';
19
+ import { BaseConnector } from '../../base/connector/baseConnector.js';
20
+ import { CONNECTOR_CATEGORY, CONNECTOR_STATUS, CONNECTOR_EVENTS } from '../../base/connector/constants.js';
21
+ import { walletSignMessage } from '../../base/wallet/solana.js';
19
22
 
20
23
  class WalletConnectV2Connector extends BaseConnector {
21
24
  constructor(options) {
@@ -33,6 +36,7 @@ class WalletConnectV2Connector extends BaseConnector {
33
36
  _defineProperty(this, "connector", null);
34
37
  _defineProperty(this, "activeSession", null);
35
38
  _defineProperty(this, "wcProvider", null);
39
+ _defineProperty(this, "_solanaWallet", null);
36
40
  _defineProperty(this, "analytics", void 0);
37
41
  this.connectorOptions = _objectSpread({}, options);
38
42
  const {
@@ -60,6 +64,9 @@ class WalletConnectV2Connector extends BaseConnector {
60
64
  }
61
65
  return null;
62
66
  }
67
+ get solanaWallet() {
68
+ return this._solanaWallet;
69
+ }
63
70
  set provider(_) {
64
71
  throw new Error("Not implemented");
65
72
  }
@@ -100,7 +107,7 @@ class WalletConnectV2Connector extends BaseConnector {
100
107
  try {
101
108
  await this.onConnectHandler({
102
109
  chain: chainConfig,
103
- getIdentityToken: options.getIdentityToken
110
+ getAuthTokenInfo: options.getAuthTokenInfo
104
111
  });
105
112
  } catch (error) {
106
113
  log.error("wallet auto connect", error);
@@ -114,7 +121,7 @@ class WalletConnectV2Connector extends BaseConnector {
114
121
  }
115
122
  async connect({
116
123
  chainId,
117
- getIdentityToken
124
+ getAuthTokenInfo
118
125
  }) {
119
126
  super.checkConnectionRequirements();
120
127
  const chainConfig = this.coreOptions.chains.find(x => x.chainId === chainId);
@@ -167,18 +174,26 @@ class WalletConnectV2Connector extends BaseConnector {
167
174
  if (this.connected) {
168
175
  await this.onConnectHandler({
169
176
  chain: chainConfig,
170
- getIdentityToken
177
+ getAuthTokenInfo
171
178
  });
172
- return this.provider;
179
+ return {
180
+ ethereumProvider: this.provider,
181
+ solanaWallet: this._solanaWallet,
182
+ connectorName: this.name
183
+ };
173
184
  }
174
185
  if (this.status !== CONNECTOR_STATUS.CONNECTING) {
175
186
  await this.createNewSession({
176
187
  chainConfig,
177
188
  trackCompletionEvents,
178
- getIdentityToken
189
+ getAuthTokenInfo
179
190
  });
180
191
  }
181
- return this.provider;
192
+ return {
193
+ ethereumProvider: this.provider,
194
+ solanaWallet: this._solanaWallet,
195
+ connectorName: this.name
196
+ };
182
197
  } catch (error) {
183
198
  log.error("Wallet connect v2 connector error while connecting", error);
184
199
  // ready again to be connected
@@ -227,7 +242,9 @@ class WalletConnectV2Connector extends BaseConnector {
227
242
  topic: (_this$activeSession3 = this.activeSession) === null || _this$activeSession3 === void 0 ? void 0 : _this$activeSession3.topic,
228
243
  reason: getSdkError("USER_DISCONNECTED")
229
244
  });
245
+ await this.clearWalletSession();
230
246
  this.rehydrated = false;
247
+ this._solanaWallet = null;
231
248
  if (cleanup) {
232
249
  this.connector = null;
233
250
  this.status = CONNECTOR_STATUS.NOT_READY;
@@ -237,9 +254,11 @@ class WalletConnectV2Connector extends BaseConnector {
237
254
  this.status = CONNECTOR_STATUS.READY;
238
255
  }
239
256
  this.activeSession = null;
240
- this.emit(CONNECTOR_EVENTS.DISCONNECTED);
257
+ this.emit(CONNECTOR_EVENTS.DISCONNECTED, {
258
+ connector: WALLET_CONNECTORS.WALLET_CONNECT_V2
259
+ });
241
260
  }
242
- async getIdentityToken() {
261
+ async getAuthTokenInfo() {
243
262
  if (!this.provider || !this.canAuthorize) throw WalletLoginError.notConnectedError();
244
263
  this.status = CONNECTOR_STATUS.AUTHORIZING;
245
264
  this.emit(CONNECTOR_EVENTS.AUTHORIZING, {
@@ -253,52 +272,59 @@ class WalletConnectV2Connector extends BaseConnector {
253
272
  const {
254
273
  chainNamespace
255
274
  } = currentChainConfig;
256
- const accounts = await this.provider.request({
257
- method: chainNamespace === CHAIN_NAMESPACES.EIP155 ? EVM_METHOD_TYPES.GET_ACCOUNTS : SOLANA_METHOD_TYPES.GET_ACCOUNTS
275
+ const accounts = chainNamespace === CHAIN_NAMESPACES.SOLANA && this._solanaWallet ? this._solanaWallet.accounts.map(a => a.address) : await this.provider.request({
276
+ method: EVM_METHOD_TYPES.GET_ACCOUNTS
258
277
  });
259
278
  if (accounts && accounts.length > 0) {
260
- const existingToken = getSavedToken(accounts[0], this.name);
261
- if (existingToken) {
262
- const isExpired = checkIfTokenIsExpired(existingToken);
263
- if (!isExpired) {
264
- this.status = CONNECTOR_STATUS.AUTHORIZED;
265
- this.emit(CONNECTOR_EVENTS.AUTHORIZED, {
266
- connector: WALLET_CONNECTORS.WALLET_CONNECT_V2,
267
- identityTokenInfo: {
268
- idToken: existingToken
269
- }
270
- });
271
- return {
272
- idToken: existingToken
273
- };
274
- }
275
- }
276
- const payload = {
277
- domain: window.location.origin,
278
- uri: window.location.href,
279
- address: accounts[0],
280
- chainId: parseInt(chainId, 16),
281
- version: "1",
282
- nonce: Math.random().toString(36).slice(2),
283
- issuedAt: new Date().toISOString()
284
- };
285
- const challenge = await signChallenge(payload, chainNamespace);
286
- const signedMessage = await this._getSignedMessage(challenge, accounts, chainNamespace);
287
- const idToken = await verifySignedChallenge(chainNamespace, signedMessage, challenge, this.name, this.coreOptions.sessionTime, this.coreOptions.clientId, this.coreOptions.web3AuthNetwork);
288
- saveToken(accounts[0], this.name, idToken);
289
- this.status = CONNECTOR_STATUS.AUTHORIZED;
290
- this.emit(CONNECTOR_EVENTS.AUTHORIZED, {
291
- connector: WALLET_CONNECTORS.WALLET_CONNECT_V2,
292
- identityTokenInfo: {
293
- idToken
294
- }
279
+ const cached = await this.getCachedOrNullAuthTokenInfo(accounts[0]);
280
+ if (cached) return cached;
281
+ const authServer = citadelServerUrl(this.coreOptions.authBuildEnv);
282
+ const {
283
+ challenge,
284
+ signature
285
+ } = await this.generateChallengeAndSign(authServer, accounts);
286
+ return this.verifyAndAuthorize({
287
+ chainNamespace,
288
+ signedMessage: signature,
289
+ challenge,
290
+ authServer
295
291
  });
296
- return {
297
- idToken
298
- };
299
292
  }
300
293
  throw WalletLoginError.notConnectedError("Not connected with wallet, Please login/connect first");
301
294
  }
295
+ async generateChallengeAndSign(authServerUrl, accounts) {
296
+ const {
297
+ chainId
298
+ } = this.provider;
299
+ const currentChainConfig = this.coreOptions.chains.find(x => x.chainId === chainId);
300
+ if (!currentChainConfig) throw WalletLoginError.connectionError("Chain config is not available");
301
+ const {
302
+ chainNamespace
303
+ } = currentChainConfig;
304
+ const accountsToUse = accounts || (chainNamespace === CHAIN_NAMESPACES.SOLANA && this._solanaWallet ? this._solanaWallet.accounts.map(a => a.address) : await this.provider.request({
305
+ method: EVM_METHOD_TYPES.GET_ACCOUNTS
306
+ }));
307
+ if (!accountsToUse || accountsToUse.length === 0) {
308
+ throw WalletLoginError.notConnectedError("No accounts found in the connected wallet");
309
+ }
310
+ const payload = {
311
+ domain: window.location.origin,
312
+ uri: window.location.href,
313
+ address: accountsToUse[0],
314
+ chainId: parseInt(chainId, 16),
315
+ version: "1",
316
+ nonce: generateSiweNonce(),
317
+ issuedAt: new Date().toISOString()
318
+ };
319
+ const authServer = authServerUrl || citadelServerUrl(this.coreOptions.authBuildEnv);
320
+ const challenge = await signChallenge(payload, chainNamespace, authServer);
321
+ const signature = await this._getSignedMessage(challenge, accountsToUse, chainNamespace);
322
+ return {
323
+ challenge,
324
+ signature,
325
+ chainNamespace
326
+ };
327
+ }
302
328
  async enableMFA() {
303
329
  throw new Error("Method Not implemented");
304
330
  }
@@ -329,7 +355,7 @@ class WalletConnectV2Connector extends BaseConnector {
329
355
  forceNewSession = false,
330
356
  chainConfig,
331
357
  trackCompletionEvents,
332
- getIdentityToken
358
+ getAuthTokenInfo
333
359
  }) {
334
360
  try {
335
361
  var _this$activeSession4, _this$connectorOption7;
@@ -379,7 +405,7 @@ class WalletConnectV2Connector extends BaseConnector {
379
405
  await this.onConnectHandler({
380
406
  chain: chainConfig,
381
407
  trackCompletionEvents,
382
- getIdentityToken
408
+ getAuthTokenInfo
383
409
  });
384
410
  if (qrcodeModal) {
385
411
  qrcodeModal.closeModal();
@@ -394,7 +420,7 @@ class WalletConnectV2Connector extends BaseConnector {
394
420
  return this.createNewSession({
395
421
  forceNewSession: true,
396
422
  chainConfig,
397
- getIdentityToken
423
+ getAuthTokenInfo
398
424
  });
399
425
  }
400
426
  if (this.status === CONNECTOR_STATUS.READY) {
@@ -410,9 +436,9 @@ class WalletConnectV2Connector extends BaseConnector {
410
436
  async onConnectHandler({
411
437
  chain,
412
438
  trackCompletionEvents,
413
- getIdentityToken
439
+ getAuthTokenInfo
414
440
  }) {
415
- var _this$connectorOption8;
441
+ var _this$connectorOption8, _this$activeSession$n, _this$activeSession6;
416
442
  if (!this.connector || !this.wcProvider) throw WalletInitializationError.notReady("Wallet connect connector is not ready yet");
417
443
  this.subscribeEvents();
418
444
  if ((_this$connectorOption8 = this.connectorOptions.connectorSettings) !== null && _this$connectorOption8 !== void 0 && _this$connectorOption8.qrcodeModal) {
@@ -426,20 +452,31 @@ class WalletConnectV2Connector extends BaseConnector {
426
452
  });
427
453
  }
428
454
  await this.wcProvider.setupProvider(this.connector);
455
+ // Derive the active Solana chain from the WC session namespaces (genesis hash → hex chainId),
456
+ // rather than picking the first Solana chain from coreOptions which may not match the session.
457
+ const sessionSolanaChains = (_this$activeSession$n = (_this$activeSession6 = this.activeSession) === null || _this$activeSession6 === void 0 || (_this$activeSession6 = _this$activeSession6.namespaces) === null || _this$activeSession6 === void 0 || (_this$activeSession6 = _this$activeSession6.solana) === null || _this$activeSession6 === void 0 ? void 0 : _this$activeSession6.chains) !== null && _this$activeSession$n !== void 0 ? _this$activeSession$n : [];
458
+ if (sessionSolanaChains.length > 0) {
459
+ const reverseMap = Object.fromEntries(Object.entries(SOLANA_CAIP_CHAIN_MAP).map(([hex, hash]) => [hash, hex]));
460
+ const genesisHash = sessionSolanaChains[0].split(":")[1];
461
+ const hexChainId = reverseMap[genesisHash];
462
+ const solanaChain = hexChainId ? this.coreOptions.chains.find(c => c.chainId === hexChainId) : null;
463
+ if (solanaChain) {
464
+ this._solanaWallet = await WCSolanaWallet.create(this.connector, solanaChain);
465
+ }
466
+ }
429
467
  this.cleanupPendingPairings();
430
468
  this.status = CONNECTOR_STATUS.CONNECTED;
431
469
 
432
470
  // track connection events
433
471
  if (trackCompletionEvents) trackCompletionEvents();
434
- let identityTokenInfo;
435
472
  this.emit(CONNECTOR_EVENTS.CONNECTED, {
436
- connector: WALLET_CONNECTORS.WALLET_CONNECT_V2,
473
+ connectorName: WALLET_CONNECTORS.WALLET_CONNECT_V2,
437
474
  reconnected: this.rehydrated,
438
- provider: this.provider,
439
- identityTokenInfo
475
+ ethereumProvider: this.provider,
476
+ solanaWallet: this._solanaWallet
440
477
  });
441
- if (getIdentityToken) {
442
- identityTokenInfo = await this.getIdentityToken();
478
+ if (getAuthTokenInfo) {
479
+ await this.getAuthTokenInfo();
443
480
  }
444
481
  }
445
482
  subscribeEvents() {
@@ -469,10 +506,10 @@ class WalletConnectV2Connector extends BaseConnector {
469
506
  this.connector.events.on("session_expire", ({
470
507
  topic
471
508
  }) => {
472
- var _this$activeSession6;
509
+ var _this$activeSession7;
473
510
  // Session has expired -> clean up the session
474
511
  log.info("Session expired event received for topic:", topic);
475
- if (((_this$activeSession6 = this.activeSession) === null || _this$activeSession6 === void 0 ? void 0 : _this$activeSession6.topic) === topic) {
512
+ if (((_this$activeSession7 = this.activeSession) === null || _this$activeSession7 === void 0 ? void 0 : _this$activeSession7.topic) === topic) {
476
513
  this.disconnect({
477
514
  sessionRemovedByWallet: true
478
515
  }).catch(error => {
@@ -482,13 +519,13 @@ class WalletConnectV2Connector extends BaseConnector {
482
519
  });
483
520
  }
484
521
  async _getSignedMessage(challenge, accounts, chainNamespace) {
485
- const signedMessage = await this.provider.request({
486
- method: chainNamespace === CHAIN_NAMESPACES.EIP155 ? EVM_METHOD_TYPES.PERSONAL_SIGN : SOLANA_METHOD_TYPES.SIGN_MESSAGE,
487
- params: chainNamespace === CHAIN_NAMESPACES.EIP155 ? [challenge, accounts[0]] : {
488
- data: challenge
489
- }
522
+ if (chainNamespace === CHAIN_NAMESPACES.SOLANA && this._solanaWallet) {
523
+ return walletSignMessage(this._solanaWallet, challenge, accounts[0]);
524
+ }
525
+ return this.provider.request({
526
+ method: EVM_METHOD_TYPES.PERSONAL_SIGN,
527
+ params: [challenge, accounts[0]]
490
528
  });
491
- return signedMessage;
492
529
  }
493
530
  }
494
531
  const walletConnectV2Connector = params => {
@@ -1,12 +1,11 @@
1
1
  import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
- import { bs58 } from '@toruslabs/bs58';
3
2
  import { EIP_5792_METHODS } from '@toruslabs/ethereum-controllers';
4
3
  import { getAccountsFromNamespaces, parseAccountId } from '@walletconnect/utils';
5
4
  import { providerErrors, rpcErrors } from '@web3auth/auth';
6
- import { EVM_METHOD_TYPES, SOLANA_METHOD_TYPES } from '@web3auth/ws-embed';
5
+ import { EVM_METHOD_TYPES } from '@web3auth/ws-embed';
7
6
  import { formatChainId } from './utils.js';
8
7
  import { WalletLoginError } from '../../base/errors/index.js';
9
- import { SOLANA_CAIP_CHAIN_MAP } from '../../base/constants.js';
8
+ import { log } from '../../base/loglevel.js';
10
9
 
11
10
  async function getLastActiveSession(signClient) {
12
11
  if (signClient.session.length) {
@@ -28,7 +27,16 @@ async function sendJrpcRequest(signClient, chainId, method, params) {
28
27
  }
29
28
  if (typeof window !== "undefined" && isMobileDevice()) {
30
29
  if (session.peer.metadata.redirect && session.peer.metadata.redirect.native) {
31
- window.open(session.peer.metadata.redirect.native, "_blank");
30
+ const redirectUrl = session.peer.metadata.redirect.native;
31
+ try {
32
+ const parsedUrl = new URL(redirectUrl);
33
+ if (["javascript:", "data:", "vbscript:"].includes(parsedUrl.protocol)) {
34
+ throw new Error("Invalid redirect scheme");
35
+ }
36
+ window.open(parsedUrl.href, "_blank");
37
+ } catch (e) {
38
+ log.error("Invalid redirect URL", e);
39
+ }
32
40
  }
33
41
  }
34
42
  return signClient.request({
@@ -55,6 +63,14 @@ async function getAccounts(signClient) {
55
63
  }
56
64
  throw WalletLoginError.connectionError("Failed to get accounts");
57
65
  }
66
+ async function getSolanaAccounts(signClient) {
67
+ const session = await getLastActiveSession(signClient);
68
+ if (!session) {
69
+ throw providerErrors.disconnected();
70
+ }
71
+ const accounts = getAccountsFromNamespaces(session.namespaces);
72
+ return [...new Set(accounts.filter(add => add.startsWith("solana:")).map(add => parseAccountId(add).address))];
73
+ }
58
74
  function getEthProviderHandlers({
59
75
  connector,
60
76
  chainId
@@ -110,50 +126,6 @@ function getEthProviderHandlers({
110
126
  }
111
127
  };
112
128
  }
113
- function getSolProviderHandlers({
114
- connector,
115
- chainId
116
- }) {
117
- return {
118
- requestAccounts: async _ => {
119
- return getAccounts(connector);
120
- },
121
- getPrivateKey: async () => {
122
- throw rpcErrors.methodNotSupported();
123
- },
124
- getSecretKey: async () => {
125
- throw rpcErrors.methodNotSupported();
126
- },
127
- getPublicKey: async () => {
128
- throw rpcErrors.methodNotSupported();
129
- },
130
- getAccounts: async _ => {
131
- return getAccounts(connector);
132
- },
133
- signAllTransactions: async _ => {
134
- throw rpcErrors.methodNotSupported();
135
- },
136
- signAndSendTransaction: async _ => {
137
- throw rpcErrors.methodNotSupported();
138
- },
139
- signMessage: async req => {
140
- const methodRes = await sendJrpcRequest(connector, `solana:${SOLANA_CAIP_CHAIN_MAP[chainId]}`, SOLANA_METHOD_TYPES.SIGN_MESSAGE, {
141
- message: bs58.encode(Buffer.from(req.params.data, "utf-8"))
142
- });
143
- return methodRes.signature;
144
- },
145
- signTransaction: async req => {
146
- const accounts = await getAccounts(connector);
147
- if (accounts.length === 0) {
148
- throw providerErrors.disconnected();
149
- }
150
- const methodRes = await sendJrpcRequest(connector, `solana:${SOLANA_CAIP_CHAIN_MAP[chainId]}`, SOLANA_METHOD_TYPES.SIGN_TRANSACTION, {
151
- transaction: req.params.message
152
- });
153
- return methodRes.signature;
154
- }
155
- };
156
- }
157
129
  async function switchChain({
158
130
  connector,
159
131
  chainId,
@@ -181,4 +153,4 @@ async function addChain({
181
153
  await sendJrpcRequest(connector, `eip155:${chainId}`, "wallet_addEthereumChain", [formattedChainConfig]);
182
154
  }
183
155
 
184
- export { addChain, getAccounts, getEthProviderHandlers, getSolProviderHandlers, sendJrpcRequest, switchChain };
156
+ export { addChain, getAccounts, getEthProviderHandlers, getSolanaAccounts, sendJrpcRequest, switchChain };
@@ -0,0 +1,130 @@
1
+ import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
3
+ import { getBase64EncodedWireTransaction, getBase64Decoder, getBase58Encoder, getTransactionDecoder, getBase64Encoder, getBase58Decoder } from '@solana/kit';
4
+ import { SolanaSignTransaction, SolanaSignMessage, SolanaSignAndSendTransaction } from '@solana/wallet-standard-features';
5
+ import { StandardEvents, StandardDisconnect, StandardConnect } from '@wallet-standard/features';
6
+ import { SOLANA_METHOD_TYPES } from '@web3auth/ws-embed';
7
+ import { sendJrpcRequest, getSolanaAccounts } from './walletConnectV2Utils.js';
8
+ import { WEB3AUTH_ICON } from '../../base/wallet/index.js';
9
+ import { SOLANA_CAIP_CHAIN_MAP } from '../../base/constants.js';
10
+ import { getSolanaChainByChainConfig } from '../../base/wallet/solana.js';
11
+
12
+ const base58Encoder = getBase58Encoder();
13
+ const base58Decoder = getBase58Decoder();
14
+ const base64Decoder = getBase64Decoder();
15
+ const base64Encoder = getBase64Encoder();
16
+ const transactionDecoder = getTransactionDecoder();
17
+ /**
18
+ * WCSolanaWallet implements the Wallet Standard interface by routing directly to
19
+ * a WalletConnect SignClient — no intermediate JRPC engine needed.
20
+ */
21
+ class WCSolanaWallet {
22
+ constructor(connector, wcCaipChainId, chainIdentifier, accounts) {
23
+ _defineProperty(this, "version", "1.0.0");
24
+ _defineProperty(this, "name", "WalletConnect");
25
+ _defineProperty(this, "icon", WEB3AUTH_ICON);
26
+ _defineProperty(this, "chains", void 0);
27
+ _defineProperty(this, "features", void 0);
28
+ _defineProperty(this, "_accounts", void 0);
29
+ _defineProperty(this, "_listeners", {});
30
+ this.chains = chainIdentifier ? [chainIdentifier] : [];
31
+ this._accounts = accounts;
32
+ this.features = {
33
+ [StandardConnect]: {
34
+ version: "1.0.0",
35
+ connect: async () => ({
36
+ accounts: this._accounts
37
+ })
38
+ },
39
+ [StandardDisconnect]: {
40
+ version: "1.0.0",
41
+ disconnect: async () => {}
42
+ },
43
+ [StandardEvents]: {
44
+ version: "1.0.0",
45
+ on: (event, listener) => {
46
+ var _this$_listeners, _this$_listeners$even;
47
+ ((_this$_listeners$even = (_this$_listeners = this._listeners)[event]) !== null && _this$_listeners$even !== void 0 ? _this$_listeners$even : _this$_listeners[event] = new Set()).add(listener);
48
+ return () => this._listeners[event].delete(listener);
49
+ }
50
+ },
51
+ [SolanaSignAndSendTransaction]: {
52
+ version: "1.0.0",
53
+ supportedTransactionVersions: ["legacy", 0],
54
+ signAndSendTransaction: async (...inputs) => {
55
+ return Promise.all(inputs.map(async input => {
56
+ const base64Tx = base64Decoder.decode(input.transaction);
57
+ const result = await sendJrpcRequest(connector, wcCaipChainId, "solana_signAndSendTransaction", {
58
+ transaction: base64Tx
59
+ });
60
+ return {
61
+ signature: new Uint8Array(base58Encoder.encode(result.signature))
62
+ };
63
+ }));
64
+ }
65
+ },
66
+ [SolanaSignMessage]: {
67
+ version: "1.0.0",
68
+ signMessage: async (...inputs) => {
69
+ return Promise.all(inputs.map(async input => {
70
+ const base58Message = base58Decoder.decode(new Uint8Array(input.message));
71
+ const result = await sendJrpcRequest(connector, wcCaipChainId, SOLANA_METHOD_TYPES.SIGN_MESSAGE, {
72
+ message: base58Message
73
+ });
74
+ return {
75
+ signedMessage: new Uint8Array(input.message),
76
+ signature: new Uint8Array(base58Encoder.encode(result.signature))
77
+ };
78
+ }));
79
+ }
80
+ },
81
+ [SolanaSignTransaction]: {
82
+ version: "1.0.0",
83
+ supportedTransactionVersions: ["legacy", 0],
84
+ signTransaction: async (...inputs) => {
85
+ return Promise.all(inputs.map(async input => {
86
+ const base64Tx = base64Decoder.decode(input.transaction);
87
+ const result = await sendJrpcRequest(connector, wcCaipChainId, SOLANA_METHOD_TYPES.SIGN_TRANSACTION, {
88
+ transaction: base64Tx
89
+ });
90
+ // Reconstruct signed transaction by inserting signature into decoded tx
91
+ const sigBytes = new Uint8Array(base58Encoder.encode(result.signature));
92
+ const decodedTx = transactionDecoder.decode(input.transaction);
93
+ const signedTx = _objectSpread(_objectSpread({}, decodedTx), {}, {
94
+ signatures: _objectSpread(_objectSpread({}, decodedTx.signatures), {}, {
95
+ [input.account.address]: sigBytes
96
+ })
97
+ });
98
+ const signedBase64 = getBase64EncodedWireTransaction(signedTx);
99
+ return {
100
+ signedTransaction: new Uint8Array(base64Encoder.encode(signedBase64))
101
+ };
102
+ }));
103
+ }
104
+ }
105
+ };
106
+ }
107
+ get accounts() {
108
+ return this._accounts;
109
+ }
110
+
111
+ /**
112
+ * Creates a WCSolanaWallet by reading accounts from the active WC session.
113
+ */
114
+ static async create(connector, chainConfig) {
115
+ const chainIdentifier = getSolanaChainByChainConfig(chainConfig);
116
+ const wcCaipChainId = `solana:${SOLANA_CAIP_CHAIN_MAP[chainConfig.chainId]}`;
117
+ const addresses = await getSolanaAccounts(connector);
118
+ if (!addresses.length) return null;
119
+ const accountFeatures = [SolanaSignAndSendTransaction, SolanaSignMessage, SolanaSignTransaction];
120
+ const accounts = addresses.map(address => ({
121
+ address,
122
+ publicKey: new Uint8Array(base58Encoder.encode(address)),
123
+ chains: chainIdentifier ? [chainIdentifier] : [],
124
+ features: accountFeatures
125
+ }));
126
+ return new WCSolanaWallet(connector, wcCaipChainId, chainIdentifier, accounts);
127
+ }
128
+ }
129
+
130
+ export { WCSolanaWallet };