@web3auth/no-modal 10.15.0 → 11.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (321) hide show
  1. package/dist/lib.cjs/base/connector/baseConnector.js +104 -2
  2. package/dist/lib.cjs/base/connector/connectorStatus.js +2 -0
  3. package/dist/lib.cjs/base/connector/constants.js +4 -2
  4. package/dist/lib.cjs/base/connector/utils.js +0 -21
  5. package/dist/lib.cjs/base/constants.js +4 -0
  6. package/dist/lib.cjs/base/cookie.js +6 -20
  7. package/dist/lib.cjs/base/errors/index.js +36 -12
  8. package/dist/lib.cjs/base/utils.js +10 -11
  9. package/dist/lib.cjs/base/wallet/index.js +7 -0
  10. package/dist/lib.cjs/base/wallet/solana.js +83 -0
  11. package/dist/lib.cjs/connectors/auth-connector/authConnector.js +145 -49
  12. package/dist/lib.cjs/connectors/auth-connector/authSolanaWallet.js +187 -0
  13. package/dist/lib.cjs/connectors/base-evm-connector/baseEvmConnector.js +18 -40
  14. package/dist/lib.cjs/connectors/base-solana-connector/baseSolanaConnector.js +30 -56
  15. package/dist/lib.cjs/connectors/coinbase-connector/coinbaseConnector.js +19 -14
  16. package/dist/lib.cjs/connectors/injected-evm-connector/injectedEvmConnector.js +18 -13
  17. package/dist/lib.cjs/connectors/injected-solana-connector/walletStandardConnector.js +24 -36
  18. package/dist/lib.cjs/connectors/metamask-connector/metamaskConnector.js +321 -133
  19. package/dist/lib.cjs/connectors/utils.js +8 -2
  20. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +12 -38
  21. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/config.js +4 -3
  22. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +73 -63
  23. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Utils.js +24 -51
  24. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/wcSolanaWallet.js +144 -0
  25. package/dist/lib.cjs/index.js +36 -71
  26. package/dist/lib.cjs/noModal.js +223 -133
  27. package/dist/lib.cjs/plugins/wallet-services-plugin/plugin.js +23 -39
  28. package/dist/lib.cjs/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +12 -10
  29. package/dist/lib.cjs/providers/account-abstraction-provider/providers/utils.js +8 -6
  30. package/dist/lib.cjs/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +47 -44
  31. package/dist/lib.cjs/providers/base-provider/CommonJRPCProvider.js +1 -3
  32. package/dist/lib.cjs/providers/base-provider/baseProvider.js +4 -2
  33. package/dist/lib.cjs/providers/base-provider/commonPrivateKeyProvider.js +8 -11
  34. package/dist/lib.cjs/providers/base-provider/index.js +0 -1
  35. package/dist/lib.cjs/providers/base-provider/jrpcClient.js +18 -19
  36. package/dist/lib.cjs/providers/base-provider/utils.js +0 -3
  37. package/dist/lib.cjs/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +22 -43
  38. package/dist/lib.cjs/providers/ethereum-provider/rpc/jrpcClient.js +18 -19
  39. package/dist/lib.cjs/providers/ethereum-provider/rpc/walletMiddleware.js +200 -0
  40. package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +9 -18
  41. package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.js +2 -1
  42. package/dist/lib.cjs/providers/xrpl-provider/rpc/JrpcClient.js +19 -26
  43. package/dist/lib.cjs/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +46 -37
  44. package/dist/lib.cjs/react/context/WalletServicesInnerContext.js +2 -69
  45. package/dist/lib.cjs/react/context/Web3AuthInnerContext.js +6 -161
  46. package/dist/lib.cjs/react/context/useWalletServicesContextValue.js +76 -0
  47. package/dist/lib.cjs/react/context/useWeb3AuthInnerContextValue.js +202 -0
  48. package/dist/lib.cjs/react/hooks/{useIdentityToken.js → useAuthTokenInfo.js} +6 -7
  49. package/dist/lib.cjs/react/hooks/useCheckout.js +4 -2
  50. package/dist/lib.cjs/react/hooks/useFunding.js +4 -2
  51. package/dist/lib.cjs/react/hooks/useReceive.js +4 -2
  52. package/dist/lib.cjs/react/hooks/useSwap.js +4 -2
  53. package/dist/lib.cjs/react/hooks/useWalletConnectScanner.js +4 -2
  54. package/dist/lib.cjs/react/hooks/useWalletServicesPlugin.js +3 -10
  55. package/dist/lib.cjs/react/hooks/useWalletUI.js +4 -2
  56. package/dist/lib.cjs/react/hooks/useWeb3Auth.js +1 -22
  57. package/dist/lib.cjs/react/hooks/useWeb3AuthInner.js +4 -2
  58. package/dist/lib.cjs/react/index.js +10 -2
  59. package/dist/lib.cjs/react/solana/hooks/useSignAndSendTransaction.js +22 -4
  60. package/dist/lib.cjs/react/solana/hooks/useSignMessage.js +20 -2
  61. package/dist/lib.cjs/react/solana/hooks/useSignTransaction.js +22 -3
  62. package/dist/lib.cjs/react/solana/hooks/useSolanaWallet.js +34 -51
  63. package/dist/lib.cjs/react/solana/index.js +2 -0
  64. package/dist/lib.cjs/react/solana/provider.js +167 -0
  65. package/dist/lib.cjs/react/wagmi/provider.js +10 -8
  66. package/dist/lib.cjs/types/base/connector/baseConnector.d.ts +21 -5
  67. package/dist/lib.cjs/types/base/connector/connectorStatus.d.ts +1 -0
  68. package/dist/lib.cjs/types/base/connector/constants.d.ts +3 -0
  69. package/dist/lib.cjs/types/base/connector/interfaces.d.ts +23 -12
  70. package/dist/lib.cjs/types/base/connector/utils.d.ts +0 -3
  71. package/dist/lib.cjs/types/base/constants.d.ts +1 -0
  72. package/dist/lib.cjs/types/base/cookie.d.ts +0 -7
  73. package/dist/lib.cjs/types/base/core/IWeb3Auth.d.ts +24 -12
  74. package/dist/lib.cjs/types/base/errors/index.d.ts +2 -3
  75. package/dist/lib.cjs/types/base/hooks/index.d.ts +2 -2
  76. package/dist/lib.cjs/types/base/interfaces.d.ts +5 -1
  77. package/dist/lib.cjs/types/base/utils.d.ts +2 -1
  78. package/dist/lib.cjs/types/base/wallet/index.d.ts +3 -0
  79. package/dist/lib.cjs/types/base/wallet/solana.d.ts +19 -0
  80. package/dist/lib.cjs/types/connectors/auth-connector/authConnector.d.ts +11 -6
  81. package/dist/lib.cjs/types/connectors/auth-connector/authSolanaWallet.d.ts +35 -0
  82. package/dist/lib.cjs/types/connectors/base-evm-connector/baseEvmConnector.d.ts +2 -2
  83. package/dist/lib.cjs/types/connectors/base-solana-connector/baseSolanaConnector.d.ts +2 -2
  84. package/dist/lib.cjs/types/connectors/injected-evm-connector/injectedEvmConnector.d.ts +2 -2
  85. package/dist/lib.cjs/types/connectors/injected-solana-connector/walletStandardConnector.d.ts +10 -7
  86. package/dist/lib.cjs/types/connectors/metamask-connector/metamaskConnector.d.ts +35 -3
  87. package/dist/lib.cjs/types/connectors/utils.d.ts +2 -0
  88. package/dist/lib.cjs/types/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.d.ts +0 -1
  89. package/dist/lib.cjs/types/connectors/wallet-connect-v2-connector/walletConnectV2Utils.d.ts +1 -5
  90. package/dist/lib.cjs/types/connectors/wallet-connect-v2-connector/wcSolanaWallet.d.ts +26 -0
  91. package/dist/lib.cjs/types/noModal.d.ts +12 -8
  92. package/dist/lib.cjs/types/plugins/wallet-services-plugin/plugin.d.ts +1 -4
  93. package/dist/lib.cjs/types/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.d.ts +4 -4
  94. package/dist/lib.cjs/types/providers/base-provider/jrpcClient.d.ts +2 -5
  95. package/dist/lib.cjs/types/providers/base-provider/utils.d.ts +0 -1
  96. package/dist/lib.cjs/types/providers/ethereum-provider/index.d.ts +0 -1
  97. package/dist/lib.cjs/types/providers/ethereum-provider/rpc/ethRpcMiddlewares.d.ts +4 -4
  98. package/dist/lib.cjs/types/providers/ethereum-provider/rpc/index.d.ts +1 -1
  99. package/dist/lib.cjs/types/providers/ethereum-provider/rpc/jrpcClient.d.ts +2 -5
  100. package/dist/lib.cjs/types/providers/ethereum-provider/rpc/walletMiddleware.d.ts +3 -0
  101. package/dist/lib.cjs/types/providers/index.d.ts +0 -1
  102. package/dist/lib.cjs/types/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.d.ts +0 -1
  103. package/dist/lib.cjs/types/providers/xrpl-provider/rpc/JrpcClient.d.ts +3 -7
  104. package/dist/lib.cjs/types/providers/xrpl-provider/rpc/xrplRpcMiddlewares.d.ts +5 -12
  105. package/dist/lib.cjs/types/react/context/index.d.ts +4 -0
  106. package/dist/lib.cjs/types/react/context/useWalletServicesContextValue.d.ts +12 -0
  107. package/dist/lib.cjs/types/react/context/useWeb3AuthInnerContextValue.d.ts +26 -0
  108. package/dist/lib.cjs/types/react/hooks/index.d.ts +1 -1
  109. package/dist/lib.cjs/types/react/hooks/{useIdentityToken.d.ts → useAuthTokenInfo.d.ts} +4 -4
  110. package/dist/lib.cjs/types/react/hooks/useWeb3Auth.d.ts +1 -2
  111. package/dist/lib.cjs/types/react/hooks/useWeb3AuthConnect.d.ts +2 -2
  112. package/dist/lib.cjs/types/react/index.d.ts +1 -0
  113. package/dist/lib.cjs/types/react/solana/hooks/useSignAndSendTransaction.d.ts +7 -2
  114. package/dist/lib.cjs/types/react/solana/hooks/useSignTransaction.d.ts +8 -3
  115. package/dist/lib.cjs/types/react/solana/hooks/useSolanaWallet.d.ts +17 -4
  116. package/dist/lib.cjs/types/react/solana/index.d.ts +1 -0
  117. package/dist/lib.cjs/types/react/solana/provider.d.ts +26 -0
  118. package/dist/lib.cjs/types/vue/composables/index.d.ts +2 -1
  119. package/dist/lib.cjs/types/vue/composables/{useIdentityToken.d.ts → useAuthTokenInfo.d.ts} +3 -3
  120. package/dist/lib.cjs/types/vue/composables/useInjectedWeb3AuthInnerContext.d.ts +1 -0
  121. package/dist/lib.cjs/types/vue/composables/useWeb3Auth.d.ts +1 -2
  122. package/dist/lib.cjs/types/vue/composables/useWeb3AuthConnect.d.ts +2 -2
  123. package/dist/lib.cjs/types/vue/index.d.ts +2 -0
  124. package/dist/lib.cjs/types/vue/interfaces.d.ts +2 -2
  125. package/dist/lib.cjs/types/vue/solana/composables/index.d.ts +1 -0
  126. package/dist/lib.cjs/types/vue/solana/composables/useSignAndSendTransaction.d.ts +7 -2
  127. package/dist/lib.cjs/types/vue/solana/composables/useSignTransaction.d.ts +8 -3
  128. package/dist/lib.cjs/types/vue/solana/composables/useSolanaClient.d.ts +7 -0
  129. package/dist/lib.cjs/types/vue/solana/composables/useSolanaWallet.d.ts +17 -4
  130. package/dist/lib.cjs/types/vue/solana/constants.d.ts +3 -0
  131. package/dist/lib.cjs/types/vue/solana/index.d.ts +2 -0
  132. package/dist/lib.cjs/types/vue/solana/provider.d.ts +8 -0
  133. package/dist/lib.cjs/types/vue/useWalletServicesInnerContextValue.d.ts +13 -0
  134. package/dist/lib.cjs/types/vue/useWeb3AuthInnerContextValue.d.ts +26 -0
  135. package/dist/lib.cjs/types/x402/index.d.ts +43 -0
  136. package/dist/lib.cjs/types/x402/interfaces.d.ts +11 -0
  137. package/dist/lib.cjs/types/x402/react.d.ts +17 -0
  138. package/dist/lib.cjs/types/x402/vue.d.ts +18 -0
  139. package/dist/lib.cjs/vue/WalletServicesInnerProvider.js +9 -54
  140. package/dist/lib.cjs/vue/Web3AuthProvider.js +16 -177
  141. package/dist/lib.cjs/vue/composables/{useIdentityToken.js → useAuthTokenInfo.js} +10 -8
  142. package/dist/lib.cjs/vue/composables/useCheckout.js +4 -2
  143. package/dist/lib.cjs/vue/composables/useEnableMFA.js +4 -2
  144. package/dist/lib.cjs/vue/composables/useFunding.js +4 -2
  145. package/dist/lib.cjs/vue/composables/useInjectedWeb3AuthInnerContext.js +29 -0
  146. package/dist/lib.cjs/vue/composables/useManageMFA.js +4 -2
  147. package/dist/lib.cjs/vue/composables/useReceive.js +4 -2
  148. package/dist/lib.cjs/vue/composables/useSwap.js +4 -2
  149. package/dist/lib.cjs/vue/composables/useSwitchChain.js +4 -2
  150. package/dist/lib.cjs/vue/composables/useWalletConnectScanner.js +4 -2
  151. package/dist/lib.cjs/vue/composables/useWalletUI.js +4 -2
  152. package/dist/lib.cjs/vue/composables/useWeb3Auth.js +1 -26
  153. package/dist/lib.cjs/vue/composables/useWeb3AuthConnect.js +4 -2
  154. package/dist/lib.cjs/vue/composables/useWeb3AuthDisconnect.js +4 -2
  155. package/dist/lib.cjs/vue/composables/useWeb3AuthInner.js +2 -20
  156. package/dist/lib.cjs/vue/composables/useWeb3AuthUser.js +4 -2
  157. package/dist/lib.cjs/vue/index.js +8 -2
  158. package/dist/lib.cjs/vue/solana/composables/useSignAndSendTransaction.js +6 -3
  159. package/dist/lib.cjs/vue/solana/composables/useSignMessage.js +6 -3
  160. package/dist/lib.cjs/vue/solana/composables/useSignTransaction.js +6 -3
  161. package/dist/lib.cjs/vue/solana/composables/useSolanaClient.js +14 -0
  162. package/dist/lib.cjs/vue/solana/composables/useSolanaWallet.js +60 -41
  163. package/dist/lib.cjs/vue/solana/constants.js +5 -0
  164. package/dist/lib.cjs/vue/solana/index.js +6 -0
  165. package/dist/lib.cjs/vue/solana/provider.js +107 -0
  166. package/dist/lib.cjs/vue/useWalletServicesInnerContextValue.js +75 -0
  167. package/dist/lib.cjs/vue/useWeb3AuthInnerContextValue.js +217 -0
  168. package/dist/lib.cjs/vue/wagmi/provider.js +12 -8
  169. package/dist/lib.cjs/x402/index.js +175 -0
  170. package/dist/lib.cjs/x402/interfaces.js +5 -0
  171. package/dist/lib.cjs/x402/react.js +64 -0
  172. package/dist/lib.cjs/x402/vue.js +58 -0
  173. package/dist/lib.esm/base/connector/baseConnector.js +104 -2
  174. package/dist/lib.esm/base/connector/connectorStatus.js +2 -1
  175. package/dist/lib.esm/base/connector/constants.js +4 -2
  176. package/dist/lib.esm/base/connector/utils.js +1 -19
  177. package/dist/lib.esm/base/constants.js +4 -1
  178. package/dist/lib.esm/base/cookie.js +7 -20
  179. package/dist/lib.esm/base/errors/index.js +36 -12
  180. package/dist/lib.esm/base/utils.js +10 -7
  181. package/dist/lib.esm/base/wallet/index.js +2 -1
  182. package/dist/lib.esm/base/wallet/solana.js +81 -0
  183. package/dist/lib.esm/connectors/auth-connector/authConnector.js +143 -50
  184. package/dist/lib.esm/connectors/auth-connector/authSolanaWallet.js +175 -0
  185. package/dist/lib.esm/connectors/base-evm-connector/baseEvmConnector.js +17 -39
  186. package/dist/lib.esm/connectors/base-solana-connector/baseSolanaConnector.js +29 -55
  187. package/dist/lib.esm/connectors/coinbase-connector/coinbaseConnector.js +14 -11
  188. package/dist/lib.esm/connectors/injected-evm-connector/injectedEvmConnector.js +14 -11
  189. package/dist/lib.esm/connectors/injected-solana-connector/walletStandardConnector.js +19 -31
  190. package/dist/lib.esm/connectors/metamask-connector/metamaskConnector.js +335 -132
  191. package/dist/lib.esm/connectors/utils.js +9 -4
  192. package/dist/lib.esm/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +11 -30
  193. package/dist/lib.esm/connectors/wallet-connect-v2-connector/config.js +1 -1
  194. package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +70 -61
  195. package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Utils.js +21 -49
  196. package/dist/lib.esm/connectors/wallet-connect-v2-connector/wcSolanaWallet.js +130 -0
  197. package/dist/lib.esm/index.js +9 -17
  198. package/dist/lib.esm/noModal.js +225 -133
  199. package/dist/lib.esm/plugins/wallet-services-plugin/plugin.js +18 -37
  200. package/dist/lib.esm/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +9 -9
  201. package/dist/lib.esm/providers/account-abstraction-provider/providers/utils.js +3 -3
  202. package/dist/lib.esm/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +48 -45
  203. package/dist/lib.esm/providers/base-provider/CommonJRPCProvider.js +2 -4
  204. package/dist/lib.esm/providers/base-provider/commonPrivateKeyProvider.js +9 -12
  205. package/dist/lib.esm/providers/base-provider/index.js +1 -1
  206. package/dist/lib.esm/providers/base-provider/jrpcClient.js +20 -19
  207. package/dist/lib.esm/providers/base-provider/utils.js +1 -3
  208. package/dist/lib.esm/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +23 -44
  209. package/dist/lib.esm/providers/ethereum-provider/rpc/jrpcClient.js +20 -19
  210. package/dist/lib.esm/providers/ethereum-provider/rpc/walletMiddleware.js +201 -0
  211. package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +6 -17
  212. package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.js +2 -1
  213. package/dist/lib.esm/providers/xrpl-provider/rpc/JrpcClient.js +21 -25
  214. package/dist/lib.esm/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +48 -38
  215. package/dist/lib.esm/react/context/WalletServicesInnerContext.js +3 -57
  216. package/dist/lib.esm/react/context/Web3AuthInnerContext.js +7 -152
  217. package/dist/lib.esm/react/context/useWalletServicesContextValue.js +59 -0
  218. package/dist/lib.esm/react/context/useWeb3AuthInnerContextValue.js +188 -0
  219. package/dist/lib.esm/react/hooks/{useIdentityToken.js → useAuthTokenInfo.js} +6 -7
  220. package/dist/lib.esm/react/hooks/useWalletServicesPlugin.js +3 -10
  221. package/dist/lib.esm/react/hooks/useWeb3Auth.js +1 -22
  222. package/dist/lib.esm/react/index.js +5 -1
  223. package/dist/lib.esm/react/solana/hooks/useSignAndSendTransaction.js +6 -4
  224. package/dist/lib.esm/react/solana/hooks/useSignMessage.js +4 -2
  225. package/dist/lib.esm/react/solana/hooks/useSignTransaction.js +6 -3
  226. package/dist/lib.esm/react/solana/hooks/useSolanaWallet.js +33 -28
  227. package/dist/lib.esm/react/solana/index.js +1 -0
  228. package/dist/lib.esm/react/solana/provider.js +150 -0
  229. package/dist/lib.esm/react/wagmi/provider.js +7 -7
  230. package/dist/lib.esm/vue/WalletServicesInnerProvider.js +4 -54
  231. package/dist/lib.esm/vue/Web3AuthProvider.js +7 -179
  232. package/dist/lib.esm/vue/composables/{useIdentityToken.js → useAuthTokenInfo.js} +6 -6
  233. package/dist/lib.esm/vue/composables/useInjectedWeb3AuthInnerContext.js +11 -0
  234. package/dist/lib.esm/vue/composables/useWeb3Auth.js +1 -26
  235. package/dist/lib.esm/vue/composables/useWeb3AuthInner.js +2 -6
  236. package/dist/lib.esm/vue/index.js +4 -1
  237. package/dist/lib.esm/vue/solana/composables/useSignAndSendTransaction.js +2 -1
  238. package/dist/lib.esm/vue/solana/composables/useSignMessage.js +2 -1
  239. package/dist/lib.esm/vue/solana/composables/useSignTransaction.js +3 -2
  240. package/dist/lib.esm/vue/solana/composables/useSolanaClient.js +12 -0
  241. package/dist/lib.esm/vue/solana/composables/useSolanaWallet.js +53 -35
  242. package/dist/lib.esm/vue/solana/constants.js +3 -0
  243. package/dist/lib.esm/vue/solana/index.js +3 -0
  244. package/dist/lib.esm/vue/solana/provider.js +95 -0
  245. package/dist/lib.esm/vue/useWalletServicesInnerContextValue.js +58 -0
  246. package/dist/lib.esm/vue/useWeb3AuthInnerContextValue.js +204 -0
  247. package/dist/lib.esm/vue/wagmi/provider.js +9 -7
  248. package/dist/lib.esm/x402/index.js +170 -0
  249. package/dist/lib.esm/x402/interfaces.js +3 -0
  250. package/dist/lib.esm/x402/react.js +59 -0
  251. package/dist/lib.esm/x402/vue.js +54 -0
  252. package/package.json +78 -53
  253. package/dist/lib.cjs/providers/ethereum-mpc-provider/index.js +0 -7
  254. package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +0 -224
  255. package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +0 -177
  256. package/dist/lib.cjs/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +0 -21
  257. package/dist/lib.cjs/providers/ethereum-provider/providers/converter.js +0 -88
  258. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.js +0 -27
  259. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +0 -383
  260. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +0 -8
  261. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +0 -93
  262. package/dist/lib.cjs/providers/ethereum-provider/providers/utils.js +0 -29
  263. package/dist/lib.cjs/providers/ethereum-provider/rpc/walletMidddleware.js +0 -251
  264. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +0 -65
  265. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +0 -45
  266. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/utils.js +0 -16
  267. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +0 -103
  268. package/dist/lib.cjs/providers/solana-provider/rpc/JrpcClient.js +0 -47
  269. package/dist/lib.cjs/providers/solana-provider/rpc/solanaRpcMiddlewares.js +0 -97
  270. package/dist/lib.cjs/providers/solana-provider/solanaWallet.js +0 -91
  271. package/dist/lib.cjs/types/connectors/injected-solana-connector/utils.d.ts +0 -3
  272. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/index.d.ts +0 -1
  273. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/providers/index.d.ts +0 -1
  274. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.d.ts +0 -74
  275. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/providers/signingProviders/index.d.ts +0 -1
  276. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.d.ts +0 -12
  277. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.d.ts +0 -3
  278. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/rpc/interfaces.d.ts +0 -15
  279. package/dist/lib.cjs/types/providers/ethereum-provider/providers/converter.d.ts +0 -14
  280. package/dist/lib.cjs/types/providers/ethereum-provider/providers/index.d.ts +0 -1
  281. package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.d.ts +0 -16
  282. package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.d.ts +0 -28
  283. package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/index.d.ts +0 -4
  284. package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.d.ts +0 -46
  285. package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.d.ts +0 -11
  286. package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/index.d.ts +0 -1
  287. package/dist/lib.cjs/types/providers/ethereum-provider/providers/utils.d.ts +0 -5
  288. package/dist/lib.cjs/types/providers/ethereum-provider/rpc/walletMidddleware.d.ts +0 -3
  289. package/dist/lib.cjs/types/providers/solana-provider/index.d.ts +0 -4
  290. package/dist/lib.cjs/types/providers/solana-provider/interface.d.ts +0 -22
  291. package/dist/lib.cjs/types/providers/solana-provider/providers/index.d.ts +0 -1
  292. package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.d.ts +0 -16
  293. package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/base/providerHandlers.d.ts +0 -3
  294. package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/index.d.ts +0 -2
  295. package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/utils.d.ts +0 -3
  296. package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/walletStandardProvider.d.ts +0 -9
  297. package/dist/lib.cjs/types/providers/solana-provider/rpc/JrpcClient.d.ts +0 -9
  298. package/dist/lib.cjs/types/providers/solana-provider/rpc/index.d.ts +0 -3
  299. package/dist/lib.cjs/types/providers/solana-provider/rpc/interfaces.d.ts +0 -27
  300. package/dist/lib.cjs/types/providers/solana-provider/rpc/solanaRpcMiddlewares.d.ts +0 -20
  301. package/dist/lib.cjs/types/providers/solana-provider/solanaWallet.d.ts +0 -29
  302. package/dist/lib.esm/providers/ethereum-mpc-provider/index.js +0 -1
  303. package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +0 -206
  304. package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +0 -163
  305. package/dist/lib.esm/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +0 -20
  306. package/dist/lib.esm/providers/ethereum-provider/providers/converter.js +0 -85
  307. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.js +0 -21
  308. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +0 -378
  309. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +0 -8
  310. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +0 -88
  311. package/dist/lib.esm/providers/ethereum-provider/providers/utils.js +0 -24
  312. package/dist/lib.esm/providers/ethereum-provider/rpc/walletMidddleware.js +0 -258
  313. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +0 -47
  314. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +0 -43
  315. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/utils.js +0 -14
  316. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +0 -91
  317. package/dist/lib.esm/providers/solana-provider/rpc/JrpcClient.js +0 -42
  318. package/dist/lib.esm/providers/solana-provider/rpc/solanaRpcMiddlewares.js +0 -89
  319. package/dist/lib.esm/providers/solana-provider/solanaWallet.js +0 -92
  320. package/dist/noModal.umd.min.js +0 -2
  321. package/dist/noModal.umd.min.js.LICENSE.txt +0 -48
@@ -1,14 +1,12 @@
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';
6
+ import { switchChain, addChain, getAccounts, getEthProviderHandlers } from './walletConnectV2Utils.js';
7
+ import { BaseProvider } from '../../providers/base-provider/baseProvider.js';
7
8
  import { createEthMiddleware, createEthChainSwitchMiddleware } from '../../providers/ethereum-provider/rpc/ethRpcMiddlewares.js';
8
9
  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';
11
- import { BaseProvider } from '../../providers/base-provider/baseProvider.js';
12
10
  import { WalletLoginError } from '../../base/errors/index.js';
13
11
  import { CHAIN_NAMESPACES } from '@toruslabs/base-controllers';
14
12
  import { log } from '../../base/loglevel.js';
@@ -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';
11
+ import { WCSolanaWallet } from './wcSolanaWallet.js';
10
12
  import { BaseConnector } from '../../base/connector/baseConnector.js';
11
13
  import { WALLET_CONNECTORS } from '../../base/wallet/index.js';
12
14
  import { CONNECTOR_NAMESPACES } from '../../base/chain/IChainInterface.js';
13
15
  import { CONNECTOR_CATEGORY, CONNECTOR_STATUS, CONNECTOR_EVENTS } from '../../base/connector/constants.js';
14
16
  import { WalletInitializationError, WalletLoginError, Web3AuthError } from '../../base/errors/index.js';
15
17
  import { log } from '../../base/loglevel.js';
16
- import { getCaipChainId } from '../../base/utils.js';
18
+ import { getCaipChainId, citadelServerUrl } from '../../base/utils.js';
17
19
  import { ANALYTICS_EVENTS } from '../../base/analytics.js';
18
- import { getSavedToken, checkIfTokenIsExpired, saveToken } from '../../base/connector/utils.js';
20
+ import { SOLANA_CAIP_CHAIN_MAP } from '../../base/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;
@@ -239,7 +256,7 @@ class WalletConnectV2Connector extends BaseConnector {
239
256
  this.activeSession = null;
240
257
  this.emit(CONNECTOR_EVENTS.DISCONNECTED);
241
258
  }
242
- async getIdentityToken() {
259
+ async getAuthTokenInfo() {
243
260
  if (!this.provider || !this.canAuthorize) throw WalletLoginError.notConnectedError();
244
261
  this.status = CONNECTOR_STATUS.AUTHORIZING;
245
262
  this.emit(CONNECTOR_EVENTS.AUTHORIZING, {
@@ -253,49 +270,30 @@ class WalletConnectV2Connector extends BaseConnector {
253
270
  const {
254
271
  chainNamespace
255
272
  } = currentChainConfig;
256
- const accounts = await this.provider.request({
257
- method: chainNamespace === CHAIN_NAMESPACES.EIP155 ? EVM_METHOD_TYPES.GET_ACCOUNTS : SOLANA_METHOD_TYPES.GET_ACCOUNTS
273
+ const accounts = chainNamespace === CHAIN_NAMESPACES.SOLANA && this._solanaWallet ? this._solanaWallet.accounts.map(a => a.address) : await this.provider.request({
274
+ method: EVM_METHOD_TYPES.GET_ACCOUNTS
258
275
  });
259
276
  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
- }
277
+ const cached = await this.getCachedOrNullAuthTokenInfo(accounts[0]);
278
+ if (cached) return cached;
276
279
  const payload = {
277
280
  domain: window.location.origin,
278
281
  uri: window.location.href,
279
282
  address: accounts[0],
280
283
  chainId: parseInt(chainId, 16),
281
284
  version: "1",
282
- nonce: Math.random().toString(36).slice(2),
285
+ nonce: generateSiweNonce(),
283
286
  issuedAt: new Date().toISOString()
284
287
  };
285
- const challenge = await signChallenge(payload, chainNamespace);
288
+ const authServer = citadelServerUrl(this.coreOptions.authBuildEnv);
289
+ const challenge = await signChallenge(payload, chainNamespace, authServer);
286
290
  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
- }
291
+ return this.verifyAndAuthorize({
292
+ chainNamespace,
293
+ signedMessage: signedMessage,
294
+ challenge,
295
+ authServer
295
296
  });
296
- return {
297
- idToken
298
- };
299
297
  }
300
298
  throw WalletLoginError.notConnectedError("Not connected with wallet, Please login/connect first");
301
299
  }
@@ -329,7 +327,7 @@ class WalletConnectV2Connector extends BaseConnector {
329
327
  forceNewSession = false,
330
328
  chainConfig,
331
329
  trackCompletionEvents,
332
- getIdentityToken
330
+ getAuthTokenInfo
333
331
  }) {
334
332
  try {
335
333
  var _this$activeSession4, _this$connectorOption7;
@@ -379,7 +377,7 @@ class WalletConnectV2Connector extends BaseConnector {
379
377
  await this.onConnectHandler({
380
378
  chain: chainConfig,
381
379
  trackCompletionEvents,
382
- getIdentityToken
380
+ getAuthTokenInfo
383
381
  });
384
382
  if (qrcodeModal) {
385
383
  qrcodeModal.closeModal();
@@ -394,7 +392,7 @@ class WalletConnectV2Connector extends BaseConnector {
394
392
  return this.createNewSession({
395
393
  forceNewSession: true,
396
394
  chainConfig,
397
- getIdentityToken
395
+ getAuthTokenInfo
398
396
  });
399
397
  }
400
398
  if (this.status === CONNECTOR_STATUS.READY) {
@@ -410,9 +408,9 @@ class WalletConnectV2Connector extends BaseConnector {
410
408
  async onConnectHandler({
411
409
  chain,
412
410
  trackCompletionEvents,
413
- getIdentityToken
411
+ getAuthTokenInfo
414
412
  }) {
415
- var _this$connectorOption8;
413
+ var _this$connectorOption8, _this$activeSession$n, _this$activeSession6;
416
414
  if (!this.connector || !this.wcProvider) throw WalletInitializationError.notReady("Wallet connect connector is not ready yet");
417
415
  this.subscribeEvents();
418
416
  if ((_this$connectorOption8 = this.connectorOptions.connectorSettings) !== null && _this$connectorOption8 !== void 0 && _this$connectorOption8.qrcodeModal) {
@@ -426,20 +424,31 @@ class WalletConnectV2Connector extends BaseConnector {
426
424
  });
427
425
  }
428
426
  await this.wcProvider.setupProvider(this.connector);
427
+ // Derive the active Solana chain from the WC session namespaces (genesis hash → hex chainId),
428
+ // rather than picking the first Solana chain from coreOptions which may not match the session.
429
+ 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 : [];
430
+ if (sessionSolanaChains.length > 0) {
431
+ const reverseMap = Object.fromEntries(Object.entries(SOLANA_CAIP_CHAIN_MAP).map(([hex, hash]) => [hash, hex]));
432
+ const genesisHash = sessionSolanaChains[0].split(":")[1];
433
+ const hexChainId = reverseMap[genesisHash];
434
+ const solanaChain = hexChainId ? this.coreOptions.chains.find(c => c.chainId === hexChainId) : null;
435
+ if (solanaChain) {
436
+ this._solanaWallet = await WCSolanaWallet.create(this.connector, solanaChain);
437
+ }
438
+ }
429
439
  this.cleanupPendingPairings();
430
440
  this.status = CONNECTOR_STATUS.CONNECTED;
431
441
 
432
442
  // track connection events
433
443
  if (trackCompletionEvents) trackCompletionEvents();
434
- let identityTokenInfo;
435
444
  this.emit(CONNECTOR_EVENTS.CONNECTED, {
436
- connector: WALLET_CONNECTORS.WALLET_CONNECT_V2,
445
+ connectorName: WALLET_CONNECTORS.WALLET_CONNECT_V2,
437
446
  reconnected: this.rehydrated,
438
- provider: this.provider,
439
- identityTokenInfo
447
+ ethereumProvider: this.provider,
448
+ solanaWallet: this._solanaWallet
440
449
  });
441
- if (getIdentityToken) {
442
- identityTokenInfo = await this.getIdentityToken();
450
+ if (getAuthTokenInfo) {
451
+ await this.getAuthTokenInfo();
443
452
  }
444
453
  }
445
454
  subscribeEvents() {
@@ -469,10 +478,10 @@ class WalletConnectV2Connector extends BaseConnector {
469
478
  this.connector.events.on("session_expire", ({
470
479
  topic
471
480
  }) => {
472
- var _this$activeSession6;
481
+ var _this$activeSession7;
473
482
  // Session has expired -> clean up the session
474
483
  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) {
484
+ if (((_this$activeSession7 = this.activeSession) === null || _this$activeSession7 === void 0 ? void 0 : _this$activeSession7.topic) === topic) {
476
485
  this.disconnect({
477
486
  sessionRemovedByWallet: true
478
487
  }).catch(error => {
@@ -482,13 +491,13 @@ class WalletConnectV2Connector extends BaseConnector {
482
491
  });
483
492
  }
484
493
  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
- }
494
+ if (chainNamespace === CHAIN_NAMESPACES.SOLANA && this._solanaWallet) {
495
+ return walletSignMessage(this._solanaWallet, challenge, accounts[0]);
496
+ }
497
+ return this.provider.request({
498
+ method: EVM_METHOD_TYPES.PERSONAL_SIGN,
499
+ params: [challenge, accounts[0]]
490
500
  });
491
- return signedMessage;
492
501
  }
493
502
  }
494
503
  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 { getSolanaChainByChainConfig } from '../../base/wallet/solana.js';
10
+ import { SOLANA_CAIP_CHAIN_MAP } from '../../base/constants.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 };
@@ -7,41 +7,33 @@ export { BaseEvmConnector } from './connectors/base-evm-connector/baseEvmConnect
7
7
  export { BaseProvider } from './providers/base-provider/baseProvider.js';
8
8
  export { BaseSolanaConnector } from './connectors/base-solana-connector/baseSolanaConnector.js';
9
9
  export { BiconomySmartAccount, KernelSmartAccount, MetamaskSmartAccount, NexusSmartAccount, SMART_ACCOUNT, SafeSmartAccount, TrustSmartAccount } from '@toruslabs/ethereum-controllers';
10
- export { CAN_AUTHORIZE_STATUSES, CONNECTED_STATUSES } from './base/connector/connectorStatus.js';
10
+ export { CAN_AUTHORIZE_STATUSES, CAN_LOGOUT_STATUSES, CONNECTED_STATUSES } from './base/connector/connectorStatus.js';
11
11
  export { CHAIN_NAMESPACES, cloneDeep } from '@toruslabs/base-controllers';
12
12
  export { CONNECTOR_CATEGORY, CONNECTOR_EVENTS, CONNECTOR_INITIAL_AUTHENTICATION_MODE, CONNECTOR_STATUS } from './base/connector/constants.js';
13
- export { CONNECTOR_NAMES, EVM_CONNECTORS, MULTI_CHAIN_CONNECTORS, SOLANA_CONNECTORS, WALLET_CONNECTORS } from './base/wallet/index.js';
13
+ export { CONNECTOR_NAMES, EVM_CONNECTORS, MULTI_CHAIN_CONNECTORS, SOLANA_CONNECTORS, WALLET_CONNECTORS, WEB3AUTH_ICON } from './base/wallet/index.js';
14
14
  export { CONNECTOR_NAMESPACES } from './base/chain/IChainInterface.js';
15
15
  export { CommonJRPCProvider } from './providers/base-provider/CommonJRPCProvider.js';
16
16
  export { CommonPrivateKeyProvider } from './providers/base-provider/commonPrivateKeyProvider.js';
17
17
  export { DEFAULT_EIP155_METHODS, DEFAULT_EIP_155_EVENTS, DEFAULT_SOLANA_EVENTS, DEFAULT_SOLANA_METHODS, getNamespacesFromChains, getRequiredNamespaces, getSupportedEventsByNamespace, getSupportedMethodsByNamespace, getWalletConnectV2Settings } from './connectors/wallet-connect-v2-connector/config.js';
18
- export { EIP1193_EVENTS, createRandomId } from './providers/base-provider/utils.js';
19
- export { EIP1559APIEndpoint, GAS_ESTIMATE_TYPES, LegacyGasAPIEndpoint, TRANSACTION_ENVELOPE_TYPES, TRANSACTION_TYPES } from './providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.js';
18
+ export { EIP1193_EVENTS } from './providers/base-provider/utils.js';
19
+ export { EIP_7702_SUPPORTED_SMART_ACCOUNTS, LOGIN_MODE, MODAL_SIGN_IN_METHODS, SMART_ACCOUNT_WALLET_SCOPE, SOLANA_CAIP_CHAIN_MAP, WALLET_REGISTRY_URL, WEB3AUTH_STATE_STORAGE_KEY, WIDGET_TYPE } from './base/constants.js';
20
20
  export { EVM_PLUGINS, PLUGIN_EVENTS, PLUGIN_NAMESPACES, PLUGIN_STATUS, SOLANA_PLUGINS, WALLET_PLUGINS } from './base/plugin/IPlugin.js';
21
- export { LOGIN_MODE, MODAL_SIGN_IN_METHODS, SMART_ACCOUNT_WALLET_SCOPE, SOLANA_CAIP_CHAIN_MAP, WALLET_REGISTRY_URL, WEB3AUTH_STATE_STORAGE_KEY, WIDGET_TYPE } from './base/constants.js';
22
21
  export { PROVIDER_EVENTS } from './base/provider/IProvider.js';
23
- export { SignTypedDataVersion } from './providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js';
24
- export { SolanaWallet } from './providers/solana-provider/solanaWallet.js';
25
- export { TransactionFormatter } from './providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js';
26
22
  export { WalletConnectV2Provider } from './connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js';
27
23
  export { WalletInitializationError, WalletLoginError, WalletOperationsError, WalletProviderError, Web3AuthError } from './base/errors/index.js';
28
24
  export { WalletServicesPluginError } from './base/plugin/errors.js';
29
- export { WalletStandardProvider } from './providers/solana-provider/providers/injectedProviders/walletStandardProvider.js';
30
25
  export { Web3AuthContextKey } from './base/composables/index.js';
31
26
  export { accountAbstractionProvider, toEoaProvider } from './providers/account-abstraction-provider/providers/AccountAbstractionProvider.js';
32
27
  export { authConnector } from './connectors/auth-connector/authConnector.js';
33
- export { checkIfTokenIsExpired, clearToken, getSavedToken, saveToken, storageAvailable } from './base/connector/utils.js';
28
+ export { checkIfTokenIsExpired, storageAvailable } from './base/connector/utils.js';
29
+ export { citadelServerUrl, dashboardPublicApiUrl, fetchProjectConfig, fetchWalletRegistry, fromViemChain, fromWagmiChain, getAaAnalyticsProperties, getCaipChainId, getErrorAnalyticsProperties, getHostname, getWalletServicesAnalyticsProperties, getWhitelabelAnalyticsProperties, isBrowser, isHexStrict, normalizeWalletName, sdkVersion, withAbort } from './base/utils.js';
34
30
  export { cookieToWeb3AuthState } from './base/cookie.js';
35
- export { createConfigMiddleware, createSolanaChainIdMiddleware, createSolanaJsonRpcClient, createSolanaProviderConfigMiddleware } from './providers/solana-provider/rpc/JrpcClient.js';
36
- export { createEthChainIdMiddleware, createEthJsonRpcClient, createEthProviderConfigMiddleware } from './providers/ethereum-provider/rpc/jrpcClient.js';
37
31
  export { createEthChainSwitchMiddleware, createEthMiddleware } from './providers/ethereum-provider/rpc/ethRpcMiddlewares.js';
38
- export { createGenericJRPCMiddleware, createGetAccountsMiddleware, createGetPublicKeyMiddleware, createRequestAccountsMiddleware, createSolanaAccountMiddleware, createSolanaChainSwitchMiddleware, createSolanaMiddleware } from './providers/solana-provider/rpc/solanaRpcMiddlewares.js';
32
+ export { createEthJsonRpcClient } from './providers/ethereum-provider/rpc/jrpcClient.js';
39
33
  export { createStore as createMipd } from 'mipd';
40
34
  export { getWallets as createSolanaMipd } from '@wallet-standard/app';
41
- export { createWalletMiddleware } from './providers/ethereum-provider/rpc/walletMidddleware.js';
42
- export { fetchEip1159GasEstimates, fetchLegacyGasPriceEstimates, normalizeGWEIDecimalNumbers, validateAddress, validateTypedSignMessageDataV4 } from './providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js';
43
- export { fetchProjectConfig, fetchWalletRegistry, fromViemChain, fromWagmiChain, getAaAnalyticsProperties, getCaipChainId, getErrorAnalyticsProperties, getHostname, getWalletServicesAnalyticsProperties, getWhitelabelAnalyticsProperties, isBrowser, isHexStrict, normalizeWalletName, sdkVersion, signerHost, withAbort } from './base/utils.js';
44
- export { getSolanaChainByChainConfig } from './providers/solana-provider/providers/injectedProviders/utils.js';
35
+ export { createWalletMiddlewareV2 } from './providers/ethereum-provider/rpc/walletMiddleware.js';
36
+ export { getSolanaChainByChainConfig, walletSignAndSendTransaction, walletSignMessage, walletSignTransaction } from './base/wallet/solana.js';
45
37
  export { hasSolanaWalletStandardFeatures } from './connectors/injected-solana-connector/index.js';
46
38
  export { injectedEvmConnector } from './connectors/injected-evm-connector/injectedEvmConnector.js';
47
39
  export { log } from './base/loglevel.js';