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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (356) hide show
  1. package/dist/lib.cjs/account-linking/index.js +8 -0
  2. package/dist/lib.cjs/account-linking/react.js +95 -0
  3. package/dist/lib.cjs/account-linking/rest.js +54 -0
  4. package/dist/lib.cjs/account-linking/vue.js +98 -0
  5. package/dist/lib.cjs/base/analytics.js +13 -1
  6. package/dist/lib.cjs/base/connector/baseConnector.js +104 -2
  7. package/dist/lib.cjs/base/connector/connectorStatus.js +2 -0
  8. package/dist/lib.cjs/base/connector/constants.js +6 -2
  9. package/dist/lib.cjs/base/connector/utils.js +0 -21
  10. package/dist/lib.cjs/base/constants.js +4 -0
  11. package/dist/lib.cjs/base/cookie.js +6 -20
  12. package/dist/lib.cjs/base/errors/index.js +84 -12
  13. package/dist/lib.cjs/base/utils.js +22 -11
  14. package/dist/lib.cjs/base/wallet/index.js +7 -0
  15. package/dist/lib.cjs/base/wallet/solana.js +83 -0
  16. package/dist/lib.cjs/connectors/auth-connector/authConnector.js +566 -93
  17. package/dist/lib.cjs/connectors/auth-connector/authSolanaWallet.js +187 -0
  18. package/dist/lib.cjs/connectors/base-evm-connector/baseEvmConnector.js +55 -58
  19. package/dist/lib.cjs/connectors/base-solana-connector/baseSolanaConnector.js +57 -66
  20. package/dist/lib.cjs/connectors/coinbase-connector/coinbaseConnector.js +19 -14
  21. package/dist/lib.cjs/connectors/injected-evm-connector/injectedEvmConnector.js +18 -13
  22. package/dist/lib.cjs/connectors/injected-solana-connector/walletStandardConnector.js +24 -36
  23. package/dist/lib.cjs/connectors/metamask-connector/metamaskConnector.js +350 -131
  24. package/dist/lib.cjs/connectors/utils.js +8 -2
  25. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +12 -38
  26. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/config.js +4 -3
  27. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +111 -73
  28. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Utils.js +24 -51
  29. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/wcSolanaWallet.js +144 -0
  30. package/dist/lib.cjs/index.js +55 -83
  31. package/dist/lib.cjs/noModal.js +957 -169
  32. package/dist/lib.cjs/plugins/wallet-services-plugin/plugin.js +23 -39
  33. package/dist/lib.cjs/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +12 -10
  34. package/dist/lib.cjs/providers/account-abstraction-provider/providers/utils.js +8 -6
  35. package/dist/lib.cjs/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +47 -44
  36. package/dist/lib.cjs/providers/base-provider/CommonJRPCProvider.js +1 -3
  37. package/dist/lib.cjs/providers/base-provider/baseProvider.js +69 -35
  38. package/dist/lib.cjs/providers/base-provider/commonPrivateKeyProvider.js +8 -11
  39. package/dist/lib.cjs/providers/base-provider/index.js +0 -1
  40. package/dist/lib.cjs/providers/base-provider/jrpcClient.js +18 -19
  41. package/dist/lib.cjs/providers/base-provider/utils.js +0 -3
  42. package/dist/lib.cjs/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +22 -43
  43. package/dist/lib.cjs/providers/ethereum-provider/rpc/jrpcClient.js +18 -19
  44. package/dist/lib.cjs/providers/ethereum-provider/rpc/walletMiddleware.js +200 -0
  45. package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +9 -18
  46. package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.js +2 -1
  47. package/dist/lib.cjs/providers/xrpl-provider/rpc/JrpcClient.js +19 -26
  48. package/dist/lib.cjs/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +46 -37
  49. package/dist/lib.cjs/react/context/WalletServicesInnerContext.js +2 -69
  50. package/dist/lib.cjs/react/context/Web3AuthInnerContext.js +6 -161
  51. package/dist/lib.cjs/react/context/useWalletServicesContextValue.js +76 -0
  52. package/dist/lib.cjs/react/context/useWeb3AuthInnerContextValue.js +216 -0
  53. package/dist/lib.cjs/react/hooks/{useIdentityToken.js → useAuthTokenInfo.js} +6 -7
  54. package/dist/lib.cjs/react/hooks/useCheckout.js +4 -2
  55. package/dist/lib.cjs/react/hooks/useFunding.js +4 -2
  56. package/dist/lib.cjs/react/hooks/useReceive.js +4 -2
  57. package/dist/lib.cjs/react/hooks/useSwap.js +4 -2
  58. package/dist/lib.cjs/react/hooks/useWalletConnectScanner.js +4 -2
  59. package/dist/lib.cjs/react/hooks/useWalletServicesPlugin.js +3 -10
  60. package/dist/lib.cjs/react/hooks/useWalletUI.js +4 -2
  61. package/dist/lib.cjs/react/hooks/useWallets.js +51 -0
  62. package/dist/lib.cjs/react/hooks/useWeb3Auth.js +1 -22
  63. package/dist/lib.cjs/react/hooks/useWeb3AuthConnect.js +2 -2
  64. package/dist/lib.cjs/react/hooks/useWeb3AuthInner.js +4 -2
  65. package/dist/lib.cjs/react/index.js +12 -2
  66. package/dist/lib.cjs/react/solana/hooks/useSignAndSendTransaction.js +22 -4
  67. package/dist/lib.cjs/react/solana/hooks/useSignMessage.js +20 -2
  68. package/dist/lib.cjs/react/solana/hooks/useSignTransaction.js +22 -3
  69. package/dist/lib.cjs/react/solana/hooks/useSolanaWallet.js +34 -51
  70. package/dist/lib.cjs/react/solana/index.js +2 -0
  71. package/dist/lib.cjs/react/solana/provider.js +169 -0
  72. package/dist/lib.cjs/react/wagmi/provider.js +10 -8
  73. package/dist/lib.cjs/types/account-linking/index.d.ts +2 -0
  74. package/dist/lib.cjs/types/account-linking/interfaces.d.ts +90 -0
  75. package/dist/lib.cjs/types/account-linking/react.d.ts +19 -0
  76. package/dist/lib.cjs/types/account-linking/rest.d.ts +9 -0
  77. package/dist/lib.cjs/types/account-linking/vue.d.ts +20 -0
  78. package/dist/lib.cjs/types/base/analytics.d.ts +9 -0
  79. package/dist/lib.cjs/types/base/connector/baseConnector.d.ts +26 -5
  80. package/dist/lib.cjs/types/base/connector/connectorStatus.d.ts +1 -0
  81. package/dist/lib.cjs/types/base/connector/constants.d.ts +5 -0
  82. package/dist/lib.cjs/types/base/connector/interfaces.d.ts +72 -16
  83. package/dist/lib.cjs/types/base/connector/utils.d.ts +0 -3
  84. package/dist/lib.cjs/types/base/constants.d.ts +1 -0
  85. package/dist/lib.cjs/types/base/cookie.d.ts +0 -7
  86. package/dist/lib.cjs/types/base/core/IWeb3Auth.d.ts +57 -13
  87. package/dist/lib.cjs/types/base/errors/index.d.ts +15 -3
  88. package/dist/lib.cjs/types/base/hooks/index.d.ts +2 -2
  89. package/dist/lib.cjs/types/base/interfaces.d.ts +8 -2
  90. package/dist/lib.cjs/types/base/utils.d.ts +9 -2
  91. package/dist/lib.cjs/types/base/wallet/index.d.ts +3 -0
  92. package/dist/lib.cjs/types/base/wallet/solana.d.ts +19 -0
  93. package/dist/lib.cjs/types/connectors/auth-connector/authConnector.d.ts +37 -8
  94. package/dist/lib.cjs/types/connectors/auth-connector/authSolanaWallet.d.ts +35 -0
  95. package/dist/lib.cjs/types/connectors/auth-connector/interface.d.ts +77 -2
  96. package/dist/lib.cjs/types/connectors/base-evm-connector/baseEvmConnector.d.ts +8 -2
  97. package/dist/lib.cjs/types/connectors/base-solana-connector/baseSolanaConnector.d.ts +8 -2
  98. package/dist/lib.cjs/types/connectors/injected-evm-connector/injectedEvmConnector.d.ts +2 -2
  99. package/dist/lib.cjs/types/connectors/injected-solana-connector/walletStandardConnector.d.ts +10 -7
  100. package/dist/lib.cjs/types/connectors/metamask-connector/metamaskConnector.d.ts +35 -3
  101. package/dist/lib.cjs/types/connectors/utils.d.ts +2 -0
  102. package/dist/lib.cjs/types/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.d.ts +0 -1
  103. package/dist/lib.cjs/types/connectors/wallet-connect-v2-connector/walletConnectV2Utils.d.ts +1 -5
  104. package/dist/lib.cjs/types/connectors/wallet-connect-v2-connector/wcSolanaWallet.d.ts +26 -0
  105. package/dist/lib.cjs/types/index.d.ts +1 -0
  106. package/dist/lib.cjs/types/noModal.d.ts +113 -10
  107. package/dist/lib.cjs/types/plugins/wallet-services-plugin/plugin.d.ts +1 -4
  108. package/dist/lib.cjs/types/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.d.ts +4 -4
  109. package/dist/lib.cjs/types/providers/base-provider/baseProvider.d.ts +7 -0
  110. package/dist/lib.cjs/types/providers/base-provider/jrpcClient.d.ts +2 -5
  111. package/dist/lib.cjs/types/providers/base-provider/utils.d.ts +0 -1
  112. package/dist/lib.cjs/types/providers/ethereum-provider/index.d.ts +0 -1
  113. package/dist/lib.cjs/types/providers/ethereum-provider/rpc/ethRpcMiddlewares.d.ts +4 -4
  114. package/dist/lib.cjs/types/providers/ethereum-provider/rpc/index.d.ts +1 -1
  115. package/dist/lib.cjs/types/providers/ethereum-provider/rpc/jrpcClient.d.ts +2 -5
  116. package/dist/lib.cjs/types/providers/ethereum-provider/rpc/walletMiddleware.d.ts +3 -0
  117. package/dist/lib.cjs/types/providers/index.d.ts +0 -1
  118. package/dist/lib.cjs/types/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.d.ts +0 -1
  119. package/dist/lib.cjs/types/providers/xrpl-provider/rpc/JrpcClient.d.ts +3 -7
  120. package/dist/lib.cjs/types/providers/xrpl-provider/rpc/xrplRpcMiddlewares.d.ts +5 -12
  121. package/dist/lib.cjs/types/react/context/index.d.ts +4 -0
  122. package/dist/lib.cjs/types/react/context/useWalletServicesContextValue.d.ts +12 -0
  123. package/dist/lib.cjs/types/react/context/useWeb3AuthInnerContextValue.d.ts +26 -0
  124. package/dist/lib.cjs/types/react/hooks/index.d.ts +2 -1
  125. package/dist/lib.cjs/types/react/hooks/{useIdentityToken.d.ts → useAuthTokenInfo.d.ts} +4 -4
  126. package/dist/lib.cjs/types/react/hooks/useWallets.d.ts +8 -0
  127. package/dist/lib.cjs/types/react/hooks/useWeb3Auth.d.ts +1 -2
  128. package/dist/lib.cjs/types/react/hooks/useWeb3AuthConnect.d.ts +2 -2
  129. package/dist/lib.cjs/types/react/index.d.ts +1 -0
  130. package/dist/lib.cjs/types/react/solana/hooks/useSignAndSendTransaction.d.ts +7 -2
  131. package/dist/lib.cjs/types/react/solana/hooks/useSignTransaction.d.ts +8 -3
  132. package/dist/lib.cjs/types/react/solana/hooks/useSolanaWallet.d.ts +17 -4
  133. package/dist/lib.cjs/types/react/solana/index.d.ts +1 -0
  134. package/dist/lib.cjs/types/react/solana/provider.d.ts +26 -0
  135. package/dist/lib.cjs/types/vue/composables/index.d.ts +3 -1
  136. package/dist/lib.cjs/types/vue/composables/{useIdentityToken.d.ts → useAuthTokenInfo.d.ts} +3 -3
  137. package/dist/lib.cjs/types/vue/composables/useInjectedWeb3AuthInnerContext.d.ts +1 -0
  138. package/dist/lib.cjs/types/vue/composables/useWallets.d.ts +9 -0
  139. package/dist/lib.cjs/types/vue/composables/useWeb3Auth.d.ts +1 -2
  140. package/dist/lib.cjs/types/vue/composables/useWeb3AuthConnect.d.ts +2 -2
  141. package/dist/lib.cjs/types/vue/index.d.ts +2 -0
  142. package/dist/lib.cjs/types/vue/interfaces.d.ts +2 -2
  143. package/dist/lib.cjs/types/vue/solana/composables/index.d.ts +1 -0
  144. package/dist/lib.cjs/types/vue/solana/composables/useSignAndSendTransaction.d.ts +7 -2
  145. package/dist/lib.cjs/types/vue/solana/composables/useSignTransaction.d.ts +8 -3
  146. package/dist/lib.cjs/types/vue/solana/composables/useSolanaClient.d.ts +7 -0
  147. package/dist/lib.cjs/types/vue/solana/composables/useSolanaWallet.d.ts +17 -4
  148. package/dist/lib.cjs/types/vue/solana/constants.d.ts +3 -0
  149. package/dist/lib.cjs/types/vue/solana/index.d.ts +2 -0
  150. package/dist/lib.cjs/types/vue/solana/provider.d.ts +8 -0
  151. package/dist/lib.cjs/types/vue/useWalletServicesInnerContextValue.d.ts +13 -0
  152. package/dist/lib.cjs/types/vue/useWeb3AuthInnerContextValue.d.ts +26 -0
  153. package/dist/lib.cjs/types/x402/index.d.ts +43 -0
  154. package/dist/lib.cjs/types/x402/interfaces.d.ts +11 -0
  155. package/dist/lib.cjs/types/x402/react.d.ts +17 -0
  156. package/dist/lib.cjs/types/x402/vue.d.ts +18 -0
  157. package/dist/lib.cjs/vue/WalletServicesInnerProvider.js +9 -54
  158. package/dist/lib.cjs/vue/Web3AuthProvider.js +16 -177
  159. package/dist/lib.cjs/vue/composables/{useIdentityToken.js → useAuthTokenInfo.js} +10 -8
  160. package/dist/lib.cjs/vue/composables/useCheckout.js +4 -2
  161. package/dist/lib.cjs/vue/composables/useEnableMFA.js +4 -2
  162. package/dist/lib.cjs/vue/composables/useFunding.js +4 -2
  163. package/dist/lib.cjs/vue/composables/useInjectedWeb3AuthInnerContext.js +29 -0
  164. package/dist/lib.cjs/vue/composables/useManageMFA.js +4 -2
  165. package/dist/lib.cjs/vue/composables/useReceive.js +4 -2
  166. package/dist/lib.cjs/vue/composables/useSwap.js +4 -2
  167. package/dist/lib.cjs/vue/composables/useSwitchChain.js +4 -2
  168. package/dist/lib.cjs/vue/composables/useWalletConnectScanner.js +4 -2
  169. package/dist/lib.cjs/vue/composables/useWalletUI.js +4 -2
  170. package/dist/lib.cjs/vue/composables/useWallets.js +52 -0
  171. package/dist/lib.cjs/vue/composables/useWeb3Auth.js +1 -26
  172. package/dist/lib.cjs/vue/composables/useWeb3AuthConnect.js +6 -4
  173. package/dist/lib.cjs/vue/composables/useWeb3AuthDisconnect.js +4 -2
  174. package/dist/lib.cjs/vue/composables/useWeb3AuthInner.js +2 -20
  175. package/dist/lib.cjs/vue/composables/useWeb3AuthUser.js +4 -2
  176. package/dist/lib.cjs/vue/index.js +10 -2
  177. package/dist/lib.cjs/vue/solana/composables/useSignAndSendTransaction.js +6 -3
  178. package/dist/lib.cjs/vue/solana/composables/useSignMessage.js +6 -3
  179. package/dist/lib.cjs/vue/solana/composables/useSignTransaction.js +6 -3
  180. package/dist/lib.cjs/vue/solana/composables/useSolanaClient.js +14 -0
  181. package/dist/lib.cjs/vue/solana/composables/useSolanaWallet.js +60 -41
  182. package/dist/lib.cjs/vue/solana/constants.js +5 -0
  183. package/dist/lib.cjs/vue/solana/index.js +6 -0
  184. package/dist/lib.cjs/vue/solana/provider.js +110 -0
  185. package/dist/lib.cjs/vue/useWalletServicesInnerContextValue.js +75 -0
  186. package/dist/lib.cjs/vue/useWeb3AuthInnerContextValue.js +226 -0
  187. package/dist/lib.cjs/vue/wagmi/provider.js +28 -12
  188. package/dist/lib.cjs/x402/index.js +175 -0
  189. package/dist/lib.cjs/x402/interfaces.js +5 -0
  190. package/dist/lib.cjs/x402/react.js +64 -0
  191. package/dist/lib.cjs/x402/vue.js +58 -0
  192. package/dist/lib.esm/account-linking/index.js +1 -0
  193. package/dist/lib.esm/account-linking/react.js +74 -0
  194. package/dist/lib.esm/account-linking/rest.js +51 -0
  195. package/dist/lib.esm/account-linking/vue.js +78 -0
  196. package/dist/lib.esm/base/analytics.js +13 -1
  197. package/dist/lib.esm/base/connector/baseConnector.js +104 -2
  198. package/dist/lib.esm/base/connector/connectorStatus.js +2 -1
  199. package/dist/lib.esm/base/connector/constants.js +6 -2
  200. package/dist/lib.esm/base/connector/utils.js +1 -19
  201. package/dist/lib.esm/base/constants.js +4 -1
  202. package/dist/lib.esm/base/cookie.js +7 -20
  203. package/dist/lib.esm/base/errors/index.js +84 -13
  204. package/dist/lib.esm/base/utils.js +22 -7
  205. package/dist/lib.esm/base/wallet/index.js +2 -1
  206. package/dist/lib.esm/base/wallet/solana.js +81 -0
  207. package/dist/lib.esm/connectors/auth-connector/authConnector.js +527 -57
  208. package/dist/lib.esm/connectors/auth-connector/authSolanaWallet.js +175 -0
  209. package/dist/lib.esm/connectors/base-evm-connector/baseEvmConnector.js +55 -58
  210. package/dist/lib.esm/connectors/base-solana-connector/baseSolanaConnector.js +57 -66
  211. package/dist/lib.esm/connectors/coinbase-connector/coinbaseConnector.js +16 -13
  212. package/dist/lib.esm/connectors/injected-evm-connector/injectedEvmConnector.js +16 -13
  213. package/dist/lib.esm/connectors/injected-solana-connector/walletStandardConnector.js +22 -34
  214. package/dist/lib.esm/connectors/metamask-connector/metamaskConnector.js +366 -132
  215. package/dist/lib.esm/connectors/utils.js +9 -4
  216. package/dist/lib.esm/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +12 -31
  217. package/dist/lib.esm/connectors/wallet-connect-v2-connector/config.js +1 -1
  218. package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +110 -73
  219. package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Utils.js +21 -49
  220. package/dist/lib.esm/connectors/wallet-connect-v2-connector/wcSolanaWallet.js +130 -0
  221. package/dist/lib.esm/index.js +12 -19
  222. package/dist/lib.esm/noModal.js +975 -177
  223. package/dist/lib.esm/plugins/wallet-services-plugin/plugin.js +20 -39
  224. package/dist/lib.esm/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +9 -9
  225. package/dist/lib.esm/providers/account-abstraction-provider/providers/utils.js +3 -3
  226. package/dist/lib.esm/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +48 -45
  227. package/dist/lib.esm/providers/base-provider/CommonJRPCProvider.js +2 -4
  228. package/dist/lib.esm/providers/base-provider/baseProvider.js +68 -38
  229. package/dist/lib.esm/providers/base-provider/commonPrivateKeyProvider.js +9 -12
  230. package/dist/lib.esm/providers/base-provider/index.js +1 -1
  231. package/dist/lib.esm/providers/base-provider/jrpcClient.js +20 -19
  232. package/dist/lib.esm/providers/base-provider/utils.js +1 -3
  233. package/dist/lib.esm/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +23 -44
  234. package/dist/lib.esm/providers/ethereum-provider/rpc/jrpcClient.js +20 -19
  235. package/dist/lib.esm/providers/ethereum-provider/rpc/walletMiddleware.js +201 -0
  236. package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +6 -17
  237. package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.js +2 -1
  238. package/dist/lib.esm/providers/xrpl-provider/rpc/JrpcClient.js +21 -25
  239. package/dist/lib.esm/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +48 -38
  240. package/dist/lib.esm/react/context/WalletServicesInnerContext.js +3 -57
  241. package/dist/lib.esm/react/context/Web3AuthInnerContext.js +7 -152
  242. package/dist/lib.esm/react/context/useWalletServicesContextValue.js +59 -0
  243. package/dist/lib.esm/react/context/useWeb3AuthInnerContextValue.js +203 -0
  244. package/dist/lib.esm/react/hooks/{useIdentityToken.js → useAuthTokenInfo.js} +6 -7
  245. package/dist/lib.esm/react/hooks/useWalletServicesPlugin.js +3 -10
  246. package/dist/lib.esm/react/hooks/useWallets.js +33 -0
  247. package/dist/lib.esm/react/hooks/useWeb3Auth.js +1 -22
  248. package/dist/lib.esm/react/hooks/useWeb3AuthConnect.js +2 -2
  249. package/dist/lib.esm/react/index.js +6 -1
  250. package/dist/lib.esm/react/solana/hooks/useSignAndSendTransaction.js +6 -4
  251. package/dist/lib.esm/react/solana/hooks/useSignMessage.js +4 -2
  252. package/dist/lib.esm/react/solana/hooks/useSignTransaction.js +6 -3
  253. package/dist/lib.esm/react/solana/hooks/useSolanaWallet.js +33 -28
  254. package/dist/lib.esm/react/solana/index.js +1 -0
  255. package/dist/lib.esm/react/solana/provider.js +153 -0
  256. package/dist/lib.esm/react/wagmi/provider.js +8 -8
  257. package/dist/lib.esm/vue/WalletServicesInnerProvider.js +4 -54
  258. package/dist/lib.esm/vue/Web3AuthProvider.js +7 -179
  259. package/dist/lib.esm/vue/composables/{useIdentityToken.js → useAuthTokenInfo.js} +6 -6
  260. package/dist/lib.esm/vue/composables/useCheckout.js +1 -1
  261. package/dist/lib.esm/vue/composables/useFunding.js +1 -1
  262. package/dist/lib.esm/vue/composables/useInjectedWeb3AuthInnerContext.js +11 -0
  263. package/dist/lib.esm/vue/composables/useReceive.js +1 -1
  264. package/dist/lib.esm/vue/composables/useSwap.js +1 -1
  265. package/dist/lib.esm/vue/composables/useWalletConnectScanner.js +1 -1
  266. package/dist/lib.esm/vue/composables/useWalletUI.js +1 -1
  267. package/dist/lib.esm/vue/composables/useWallets.js +35 -0
  268. package/dist/lib.esm/vue/composables/useWeb3Auth.js +1 -26
  269. package/dist/lib.esm/vue/composables/useWeb3AuthConnect.js +2 -2
  270. package/dist/lib.esm/vue/composables/useWeb3AuthInner.js +2 -6
  271. package/dist/lib.esm/vue/index.js +5 -1
  272. package/dist/lib.esm/vue/solana/composables/useSignAndSendTransaction.js +2 -1
  273. package/dist/lib.esm/vue/solana/composables/useSignMessage.js +2 -1
  274. package/dist/lib.esm/vue/solana/composables/useSignTransaction.js +3 -2
  275. package/dist/lib.esm/vue/solana/composables/useSolanaClient.js +12 -0
  276. package/dist/lib.esm/vue/solana/composables/useSolanaWallet.js +53 -35
  277. package/dist/lib.esm/vue/solana/constants.js +3 -0
  278. package/dist/lib.esm/vue/solana/index.js +3 -0
  279. package/dist/lib.esm/vue/solana/provider.js +99 -0
  280. package/dist/lib.esm/vue/useWalletServicesInnerContextValue.js +58 -0
  281. package/dist/lib.esm/vue/useWeb3AuthInnerContextValue.js +213 -0
  282. package/dist/lib.esm/vue/wagmi/provider.js +26 -12
  283. package/dist/lib.esm/x402/index.js +170 -0
  284. package/dist/lib.esm/x402/interfaces.js +3 -0
  285. package/dist/lib.esm/x402/react.js +59 -0
  286. package/dist/lib.esm/x402/vue.js +54 -0
  287. package/package.json +102 -53
  288. package/dist/lib.cjs/providers/ethereum-mpc-provider/index.js +0 -7
  289. package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +0 -224
  290. package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +0 -177
  291. package/dist/lib.cjs/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +0 -21
  292. package/dist/lib.cjs/providers/ethereum-provider/providers/converter.js +0 -88
  293. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.js +0 -27
  294. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +0 -383
  295. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +0 -8
  296. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +0 -93
  297. package/dist/lib.cjs/providers/ethereum-provider/providers/utils.js +0 -29
  298. package/dist/lib.cjs/providers/ethereum-provider/rpc/walletMidddleware.js +0 -251
  299. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +0 -65
  300. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +0 -45
  301. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/utils.js +0 -16
  302. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +0 -103
  303. package/dist/lib.cjs/providers/solana-provider/rpc/JrpcClient.js +0 -47
  304. package/dist/lib.cjs/providers/solana-provider/rpc/solanaRpcMiddlewares.js +0 -97
  305. package/dist/lib.cjs/providers/solana-provider/solanaWallet.js +0 -91
  306. package/dist/lib.cjs/types/connectors/injected-solana-connector/utils.d.ts +0 -3
  307. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/index.d.ts +0 -1
  308. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/providers/index.d.ts +0 -1
  309. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.d.ts +0 -74
  310. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/providers/signingProviders/index.d.ts +0 -1
  311. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.d.ts +0 -12
  312. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.d.ts +0 -3
  313. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/rpc/interfaces.d.ts +0 -15
  314. package/dist/lib.cjs/types/providers/ethereum-provider/providers/converter.d.ts +0 -14
  315. package/dist/lib.cjs/types/providers/ethereum-provider/providers/index.d.ts +0 -1
  316. package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.d.ts +0 -16
  317. package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.d.ts +0 -28
  318. package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/index.d.ts +0 -4
  319. package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.d.ts +0 -46
  320. package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.d.ts +0 -11
  321. package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/index.d.ts +0 -1
  322. package/dist/lib.cjs/types/providers/ethereum-provider/providers/utils.d.ts +0 -5
  323. package/dist/lib.cjs/types/providers/ethereum-provider/rpc/walletMidddleware.d.ts +0 -3
  324. package/dist/lib.cjs/types/providers/solana-provider/index.d.ts +0 -4
  325. package/dist/lib.cjs/types/providers/solana-provider/interface.d.ts +0 -22
  326. package/dist/lib.cjs/types/providers/solana-provider/providers/index.d.ts +0 -1
  327. package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.d.ts +0 -16
  328. package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/base/providerHandlers.d.ts +0 -3
  329. package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/index.d.ts +0 -2
  330. package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/utils.d.ts +0 -3
  331. package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/walletStandardProvider.d.ts +0 -9
  332. package/dist/lib.cjs/types/providers/solana-provider/rpc/JrpcClient.d.ts +0 -9
  333. package/dist/lib.cjs/types/providers/solana-provider/rpc/index.d.ts +0 -3
  334. package/dist/lib.cjs/types/providers/solana-provider/rpc/interfaces.d.ts +0 -27
  335. package/dist/lib.cjs/types/providers/solana-provider/rpc/solanaRpcMiddlewares.d.ts +0 -20
  336. package/dist/lib.cjs/types/providers/solana-provider/solanaWallet.d.ts +0 -29
  337. package/dist/lib.esm/providers/ethereum-mpc-provider/index.js +0 -1
  338. package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +0 -206
  339. package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +0 -163
  340. package/dist/lib.esm/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +0 -20
  341. package/dist/lib.esm/providers/ethereum-provider/providers/converter.js +0 -85
  342. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.js +0 -21
  343. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +0 -378
  344. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +0 -8
  345. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +0 -88
  346. package/dist/lib.esm/providers/ethereum-provider/providers/utils.js +0 -24
  347. package/dist/lib.esm/providers/ethereum-provider/rpc/walletMidddleware.js +0 -258
  348. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +0 -47
  349. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +0 -43
  350. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/utils.js +0 -14
  351. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +0 -91
  352. package/dist/lib.esm/providers/solana-provider/rpc/JrpcClient.js +0 -42
  353. package/dist/lib.esm/providers/solana-provider/rpc/solanaRpcMiddlewares.js +0 -89
  354. package/dist/lib.esm/providers/solana-provider/solanaWallet.js +0 -92
  355. package/dist/noModal.umd.min.js +0 -2
  356. package/dist/noModal.umd.min.js.LICENSE.txt +0 -46
@@ -0,0 +1,213 @@
1
+ import { shallowRef, ref, watch } from 'vue';
2
+ import { ANALYTICS_INTEGRATION_TYPE } from '../base/analytics.js';
3
+ import { log } from '../base/loglevel.js';
4
+ import { LOGIN_MODE } from '../base/constants.js';
5
+ import { WalletInitializationError } from '../base/errors/index.js';
6
+ import { CONNECTOR_EVENTS, CONNECTOR_STATUS } from '../base/connector/constants.js';
7
+
8
+ function useWeb3AuthInnerContextValue({
9
+ Web3AuthConstructor,
10
+ watchSource,
11
+ getWeb3AuthOptions,
12
+ initialState,
13
+ createConnectionRef = () => ref(null)
14
+ }) {
15
+ const web3Auth = shallowRef(null);
16
+ const connection = createConnectionRef();
17
+ const isMFAEnabled = ref(false);
18
+ const status = ref(null);
19
+ const chainId = ref(null);
20
+ const chainNamespace = ref(null);
21
+ const isInitializing = ref(false);
22
+ const initError = ref(null);
23
+ const isInitialized = ref(false);
24
+ const isConnected = ref(false);
25
+ const isAuthorized = ref(false);
26
+ const getPlugin = name => {
27
+ if (!web3Auth.value) throw WalletInitializationError.notReady();
28
+ return web3Auth.value.getPlugin(name);
29
+ };
30
+ const setIsMFAEnabled = isMfaEnabled => {
31
+ isMFAEnabled.value = isMfaEnabled;
32
+ };
33
+ watch(watchSource, (newSource, _, onInvalidate) => {
34
+ const resetHookState = () => {
35
+ connection.value = null;
36
+ isMFAEnabled.value = false;
37
+ isConnected.value = false;
38
+ isAuthorized.value = false;
39
+ status.value = null;
40
+ chainId.value = null;
41
+ chainNamespace.value = null;
42
+ };
43
+ onInvalidate(() => {
44
+ if (web3Auth.value) {
45
+ web3Auth.value.cleanup();
46
+ }
47
+ });
48
+ resetHookState();
49
+ const web3AuthInstance = new Web3AuthConstructor(getWeb3AuthOptions(newSource), initialState);
50
+ web3AuthInstance.setAnalyticsProperties({
51
+ integration_type: ANALYTICS_INTEGRATION_TYPE.VUE_COMPOSABLES
52
+ });
53
+ web3Auth.value = web3AuthInstance;
54
+ }, {
55
+ immediate: true
56
+ });
57
+ watch(web3Auth, async (newWeb3Auth, _, onInvalidate) => {
58
+ const controller = new AbortController();
59
+ onInvalidate(() => {
60
+ controller.abort();
61
+ });
62
+ if (newWeb3Auth) {
63
+ try {
64
+ initError.value = null;
65
+ isInitializing.value = true;
66
+ await newWeb3Auth.init({
67
+ signal: controller.signal
68
+ });
69
+ } catch (error) {
70
+ log.error("Error initializing web3auth", error);
71
+ initError.value = error;
72
+ } finally {
73
+ isInitializing.value = false;
74
+ }
75
+ }
76
+ }, {
77
+ immediate: true
78
+ });
79
+ watch(web3Auth, (newWeb3Auth, prevWeb3Auth) => {
80
+ const notReadyListener = () => {
81
+ status.value = web3Auth.value.status;
82
+ };
83
+ const readyListener = () => {
84
+ status.value = web3Auth.value.status;
85
+ isInitialized.value = true;
86
+ };
87
+ const connectedListener = data => {
88
+ if (data.pendingUserConsent) return;
89
+ status.value = web3Auth.value.status;
90
+ // We do this because of rehydration issues. status connected is fired first but web3auth sdk is not ready yet.
91
+ if (web3Auth.value.status === CONNECTOR_STATUS.CONNECTED) {
92
+ var _currentChain$chainNa, _currentChain;
93
+ if (!isInitialized.value) isInitialized.value = true;
94
+ isConnected.value = true;
95
+ connection.value = web3Auth.value.connection;
96
+ chainId.value = web3Auth.value.currentChainId;
97
+ chainNamespace.value = (_currentChain$chainNa = (_currentChain = web3Auth.value.currentChain) === null || _currentChain === void 0 ? void 0 : _currentChain.chainNamespace) !== null && _currentChain$chainNa !== void 0 ? _currentChain$chainNa : null;
98
+ }
99
+ };
100
+ const authorizedListener = () => {
101
+ status.value = web3Auth.value.status;
102
+ if (web3Auth.value.status === CONNECTOR_STATUS.AUTHORIZED) {
103
+ isAuthorized.value = true;
104
+ isConnected.value = true;
105
+ }
106
+ };
107
+ const consentAcceptedListener = () => {
108
+ status.value = web3Auth.value.status;
109
+ if (web3Auth.value.status === CONNECTOR_STATUS.CONNECTED || web3Auth.value.status === CONNECTOR_STATUS.AUTHORIZED) {
110
+ var _currentChain$chainNa2, _currentChain2;
111
+ if (!isInitialized.value) isInitialized.value = true;
112
+ isConnected.value = true;
113
+ connection.value = web3Auth.value.connection;
114
+ chainId.value = web3Auth.value.currentChainId;
115
+ chainNamespace.value = (_currentChain$chainNa2 = (_currentChain2 = web3Auth.value.currentChain) === null || _currentChain2 === void 0 ? void 0 : _currentChain2.chainNamespace) !== null && _currentChain$chainNa2 !== void 0 ? _currentChain$chainNa2 : null;
116
+ if (web3Auth.value.status === CONNECTOR_STATUS.AUTHORIZED) {
117
+ isAuthorized.value = true;
118
+ }
119
+ }
120
+ };
121
+ const disconnectedListener = () => {
122
+ status.value = web3Auth.value.status;
123
+ isConnected.value = false;
124
+ connection.value = null;
125
+ isMFAEnabled.value = false;
126
+ isAuthorized.value = false;
127
+ };
128
+ const connectingListener = () => {
129
+ status.value = web3Auth.value.status;
130
+ };
131
+ const errorListener = () => {
132
+ status.value = web3Auth.value.status;
133
+ };
134
+ const mfaEnabledListener = () => {
135
+ isMFAEnabled.value = true;
136
+ };
137
+ const connectionUpdatedListener = () => {
138
+ var _currentChain$chainNa3, _currentChain3;
139
+ status.value = web3Auth.value.status;
140
+ connection.value = web3Auth.value.connection;
141
+ chainId.value = web3Auth.value.currentChainId;
142
+ chainNamespace.value = (_currentChain$chainNa3 = (_currentChain3 = web3Auth.value.currentChain) === null || _currentChain3 === void 0 ? void 0 : _currentChain3.chainNamespace) !== null && _currentChain$chainNa3 !== void 0 ? _currentChain$chainNa3 : null;
143
+ };
144
+ if (prevWeb3Auth && newWeb3Auth !== prevWeb3Auth) {
145
+ prevWeb3Auth.removeListener(CONNECTOR_EVENTS.NOT_READY, notReadyListener);
146
+ prevWeb3Auth.removeListener(CONNECTOR_EVENTS.READY, readyListener);
147
+ prevWeb3Auth.removeListener(CONNECTOR_EVENTS.CONNECTED, connectedListener);
148
+ prevWeb3Auth.removeListener(CONNECTOR_EVENTS.AUTHORIZED, authorizedListener);
149
+ prevWeb3Auth.removeListener(CONNECTOR_EVENTS.DISCONNECTED, disconnectedListener);
150
+ prevWeb3Auth.removeListener(CONNECTOR_EVENTS.CONNECTING, connectingListener);
151
+ prevWeb3Auth.removeListener(CONNECTOR_EVENTS.ERRORED, errorListener);
152
+ prevWeb3Auth.removeListener(CONNECTOR_EVENTS.REHYDRATION_ERROR, errorListener);
153
+ prevWeb3Auth.removeListener(CONNECTOR_EVENTS.MFA_ENABLED, mfaEnabledListener);
154
+ prevWeb3Auth.removeListener(CONNECTOR_EVENTS.CONNECTION_UPDATED, connectionUpdatedListener);
155
+ if (prevWeb3Auth.loginMode === LOGIN_MODE.MODAL) {
156
+ prevWeb3Auth.removeListener(CONNECTOR_EVENTS.CONSENT_ACCEPTED, consentAcceptedListener);
157
+ }
158
+ }
159
+ if (newWeb3Auth && newWeb3Auth !== prevWeb3Auth) {
160
+ status.value = newWeb3Auth.status;
161
+ newWeb3Auth.on(CONNECTOR_EVENTS.NOT_READY, notReadyListener);
162
+ newWeb3Auth.on(CONNECTOR_EVENTS.READY, readyListener);
163
+ newWeb3Auth.on(CONNECTOR_EVENTS.CONNECTED, connectedListener);
164
+ newWeb3Auth.on(CONNECTOR_EVENTS.AUTHORIZED, authorizedListener);
165
+ newWeb3Auth.on(CONNECTOR_EVENTS.DISCONNECTED, disconnectedListener);
166
+ newWeb3Auth.on(CONNECTOR_EVENTS.CONNECTING, connectingListener);
167
+ newWeb3Auth.on(CONNECTOR_EVENTS.ERRORED, errorListener);
168
+ newWeb3Auth.on(CONNECTOR_EVENTS.REHYDRATION_ERROR, errorListener);
169
+ newWeb3Auth.on(CONNECTOR_EVENTS.MFA_ENABLED, mfaEnabledListener);
170
+ newWeb3Auth.on(CONNECTOR_EVENTS.CONNECTION_UPDATED, connectionUpdatedListener);
171
+ if (newWeb3Auth.loginMode === LOGIN_MODE.MODAL) {
172
+ newWeb3Auth.on(CONNECTOR_EVENTS.CONSENT_ACCEPTED, consentAcceptedListener);
173
+ }
174
+ }
175
+ }, {
176
+ immediate: true
177
+ });
178
+ watch(connection, (newConnection, prevConnection) => {
179
+ var _prevConnection$ether, _newConnection$ethere;
180
+ const handleChainChange = newChainId => {
181
+ var _web3Auth$value$curre, _web3Auth$value;
182
+ chainId.value = newChainId;
183
+ chainNamespace.value = (_web3Auth$value$curre = (_web3Auth$value = web3Auth.value) === null || _web3Auth$value === void 0 || (_web3Auth$value = _web3Auth$value.currentChain) === null || _web3Auth$value === void 0 ? void 0 : _web3Auth$value.chainNamespace) !== null && _web3Auth$value$curre !== void 0 ? _web3Auth$value$curre : null;
184
+ };
185
+ const prevProvider = (_prevConnection$ether = prevConnection === null || prevConnection === void 0 ? void 0 : prevConnection.ethereumProvider) !== null && _prevConnection$ether !== void 0 ? _prevConnection$ether : null;
186
+ const newProvider = (_newConnection$ethere = newConnection === null || newConnection === void 0 ? void 0 : newConnection.ethereumProvider) !== null && _newConnection$ethere !== void 0 ? _newConnection$ethere : null;
187
+ if (prevProvider && newProvider !== prevProvider) {
188
+ prevProvider.removeListener("chainChanged", handleChainChange);
189
+ }
190
+ if (newProvider && newProvider !== prevProvider) {
191
+ newProvider.on("chainChanged", handleChainChange);
192
+ }
193
+ }, {
194
+ immediate: true
195
+ });
196
+ return {
197
+ web3Auth,
198
+ isConnected,
199
+ isAuthorized,
200
+ connection,
201
+ isInitializing,
202
+ initError,
203
+ isInitialized,
204
+ status,
205
+ isMFAEnabled,
206
+ chainId,
207
+ chainNamespace,
208
+ getPlugin,
209
+ setIsMFAEnabled
210
+ };
211
+ }
212
+
213
+ export { useWeb3AuthInnerContextValue };
@@ -1,14 +1,14 @@
1
1
  import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
2
  import { hydrate } from '@wagmi/core';
3
- import { configKey, createConfig, useConfig, useReconnect, useAccountEffect } from '@wagmi/vue';
3
+ import { configKey, createConfig, useConfig, useReconnect, useConnectionEffect } from '@wagmi/vue';
4
4
  import { injected } from '@wagmi/vue/connectors';
5
5
  import { randomId } from '@web3auth/auth';
6
6
  import { defineChain, webSocket, http, fallback } from 'viem';
7
7
  import { defineComponent, h, shallowRef, ref, watch, provide } from 'vue';
8
8
  import { log } from '../../base/loglevel.js';
9
9
  import { defaultWagmiConfig } from './constants.js';
10
- import { useWeb3AuthDisconnect } from '../composables/useWeb3AuthDisconnect.js';
11
10
  import { useWeb3Auth } from '../composables/useWeb3Auth.js';
11
+ import { useWeb3AuthDisconnect } from '../composables/useWeb3AuthDisconnect.js';
12
12
  import { CHAIN_NAMESPACES } from '@toruslabs/base-controllers';
13
13
  import { WalletInitializationError } from '../../base/errors/index.js';
14
14
 
@@ -78,16 +78,17 @@ const Web3AuthWagmiProvider = defineComponent({
78
78
  setup() {
79
79
  const {
80
80
  isConnected,
81
- provider
81
+ connection
82
82
  } = useWeb3Auth();
83
83
  const {
84
84
  disconnect
85
85
  } = useWeb3AuthDisconnect();
86
86
  const wagmiConfig = useConfig();
87
87
  const {
88
- reconnect
88
+ mutate: reconnect
89
89
  } = useReconnect();
90
- useAccountEffect({
90
+ const lastSyncedWeb3AuthConnection = shallowRef(null);
91
+ useConnectionEffect({
91
92
  onDisconnect: async () => {
92
93
  log.info("Disconnected from wagmi");
93
94
  if (isConnected.value) await disconnect();
@@ -99,15 +100,28 @@ const Web3AuthWagmiProvider = defineComponent({
99
100
  }
100
101
  }
101
102
  });
102
- watch(isConnected, async newIsConnected => {
103
- if (newIsConnected && provider.value) {
104
- const connector = await setupConnector(provider.value, wagmiConfig);
105
- if (!connector) {
106
- throw new Error("Failed to setup connector");
103
+ watch([isConnected, connection], async () => {
104
+ var _newConnection$ethere;
105
+ const newIsConnected = isConnected.value;
106
+ const newConnection = connection.value;
107
+ const newEth = (_newConnection$ethere = newConnection === null || newConnection === void 0 ? void 0 : newConnection.ethereumProvider) !== null && _newConnection$ethere !== void 0 ? _newConnection$ethere : null;
108
+ if (newIsConnected && newConnection && newEth) {
109
+ // Linked-account switches can reuse or replace the underlying wallet provider,
110
+ // so key wagmi resyncs off the Web3Auth connection object instead of provider identity.
111
+ if (lastSyncedWeb3AuthConnection.value !== newConnection) {
112
+ if (getWeb3authConnector(wagmiConfig)) {
113
+ resetConnectorState(wagmiConfig);
114
+ }
115
+ lastSyncedWeb3AuthConnection.value = newConnection;
116
+ const connector = await setupConnector(newEth, wagmiConfig);
117
+ if (!connector) {
118
+ throw new Error("Failed to setup connector");
119
+ }
120
+ await connectWeb3AuthWithWagmi(connector, wagmiConfig);
121
+ reconnect();
107
122
  }
108
- await connectWeb3AuthWithWagmi(connector, wagmiConfig);
109
- reconnect();
110
123
  } else if (!newIsConnected) {
124
+ lastSyncedWeb3AuthConnection.value = null;
111
125
  if (wagmiConfig.state.status === "connected") {
112
126
  await disconnectWeb3AuthFromWagmi(wagmiConfig);
113
127
  }
@@ -0,0 +1,170 @@
1
+ import { getBase58Encoder, address } from '@solana/kit';
2
+ import { encodeBase64Url } from '@toruslabs/metadata-helpers';
3
+ import { EVM_METHOD_TYPES } from '@web3auth/ws-embed';
4
+ import { toClientEvmSigner, ExactEvmScheme } from '@x402/evm';
5
+ import { x402Client, wrapFetchWithPayment } from '@x402/fetch';
6
+ import { ExactSvmScheme, toClientSvmSigner } from '@x402/svm';
7
+ import { createWalletClient, custom } from 'viem';
8
+ import { PAYMENT_REQUIRED_HEADER } from './interfaces.js';
9
+ import { walletSignTransaction } from '../base/wallet/solana.js';
10
+
11
+ const EVM_CAIP2_WILDCARD = "eip155:*";
12
+ const SOLANA_CAIP2_WILDCARD = "solana:*";
13
+
14
+ /**
15
+ * For 402 responses that carry v2 payment requirements in the JSON body instead
16
+ * of the PAYMENT-REQUIRED header, reads the body, promotes the data into the
17
+ * header, and reconstructs the response so downstream code can consume it normally.
18
+ *
19
+ * Returns the original response unchanged when the body is not JSON, is malformed,
20
+ * or does not carry an x402Version \>= 2 payload.
21
+ */
22
+ async function normalizePaymentRequiredResponse(response) {
23
+ var _response$headers$get;
24
+ const contentType = (_response$headers$get = response.headers.get("Content-Type")) !== null && _response$headers$get !== void 0 ? _response$headers$get : "";
25
+ let body;
26
+ if (contentType.includes("application/json")) {
27
+ body = await response.json();
28
+ } else {
29
+ const data = await response.text();
30
+ body = JSON.parse(data);
31
+ }
32
+ try {
33
+ if (body.x402Version && body.x402Version >= 2) {
34
+ const newHeaders = new Headers(response.headers);
35
+ const jsonData = JSON.stringify(body);
36
+ newHeaders.set(PAYMENT_REQUIRED_HEADER, encodeBase64Url(jsonData));
37
+ return new Response(jsonData, {
38
+ status: response.status,
39
+ statusText: response.statusText,
40
+ headers: newHeaders
41
+ });
42
+ }
43
+ } catch {
44
+ // Malformed JSON - fall through and return response with the already-consumed body
45
+ }
46
+ return new Response(JSON.stringify(body), {
47
+ status: response.status,
48
+ statusText: response.statusText,
49
+ headers: response.headers
50
+ });
51
+ }
52
+ async function getEvmAddress(provider) {
53
+ var _ref;
54
+ const accounts = await provider.request({
55
+ method: EVM_METHOD_TYPES.GET_ACCOUNTS
56
+ });
57
+ return (_ref = accounts === null || accounts === void 0 ? void 0 : accounts[0]) !== null && _ref !== void 0 ? _ref : null;
58
+ }
59
+ function createProviderBackedEvmSigner(provider, address) {
60
+ const walletClient = createWalletClient({
61
+ account: address,
62
+ transport: custom(provider)
63
+ });
64
+ return walletClient;
65
+ }
66
+
67
+ /**
68
+ * Wraps a fetch function so that 402 responses whose v2 payment requirements
69
+ * arrive in the response body (instead of the PAYMENT-REQUIRED header) are
70
+ * normalised: the body JSON is base64-encoded and promoted into the
71
+ * PAYMENT-REQUIRED header so that the \@x402/fetch client library can process it.
72
+ *
73
+ * The \@x402/fetch library's body fallback only accepts x402Version === 1;
74
+ * this shim bridges the gap for servers that send v2 data in the body.
75
+ *
76
+ * @param baseFetch - The underlying fetch implementation to wrap
77
+ * @returns A fetch-compatible function with the shim applied
78
+ */
79
+ function withX402BodyShim(baseFetch) {
80
+ return async (input, init) => {
81
+ const response = await baseFetch(input, init);
82
+ if (response.status === 402 && !response.headers.get(PAYMENT_REQUIRED_HEADER)) {
83
+ return normalizePaymentRequiredResponse(response);
84
+ }
85
+ return response;
86
+ };
87
+ }
88
+
89
+ /**
90
+ * Builds a `@x402/svm`-compatible `TransactionPartialSigner` from a web3auth
91
+ * Solana provider.
92
+ *
93
+ * The web3auth `signTransaction` call returns the signer's Ed25519 signature
94
+ * encoded in base58 (64 bytes). We decode it back to bytes and slot it into
95
+ * the signature dictionary that `@solana/kit`'s partial-signing helpers expect.
96
+ */
97
+ function createSvmSigner(wallet, walletAddress) {
98
+ const base58Encoder = getBase58Encoder();
99
+ const signerAddress = address(walletAddress);
100
+ const clientSvmSigner = toClientSvmSigner({
101
+ address: signerAddress,
102
+ signTransactions: async transactions => {
103
+ const signatureDictionaries = await Promise.all(transactions.map(async tx => {
104
+ const signatureBase58 = await walletSignTransaction(wallet, tx);
105
+ return {
106
+ [signerAddress]: base58Encoder.encode(signatureBase58)
107
+ };
108
+ }));
109
+ return signatureDictionaries;
110
+ }
111
+ });
112
+ return clientSvmSigner;
113
+ }
114
+
115
+ /**
116
+ * Creates a payment-aware fetch function for a connected Solana wallet.
117
+ * Registers the exact SVM payment scheme and applies the body-shim so that
118
+ * servers returning v2 payment requirements in the response body are handled
119
+ * transparently.
120
+ *
121
+ * @param wallet - Connected Solana wallet (must have an account)
122
+ * @param walletAddress - The wallet's public key as a base58 address string
123
+ * @param rpcUrl - Optional custom Solana RPC URL (defaults to public cluster endpoints)
124
+ * @returns A fetch-compatible function that handles x402 payment flows
125
+ */
126
+ function createSolanaX402Fetch(wallet, walletAddress, rpcUrl) {
127
+ if (!walletAddress) throw new Error("Wallet address is unavailable.");
128
+ const svmSigner = createSvmSigner(wallet, walletAddress);
129
+ const client = new x402Client().register(SOLANA_CAIP2_WILDCARD, new ExactSvmScheme(svmSigner, rpcUrl ? {
130
+ rpcUrl
131
+ } : undefined));
132
+ return wrapFetchWithPayment(withX402BodyShim(fetch), client);
133
+ }
134
+
135
+ /**
136
+ * Creates a payment-aware fetch function for an EVM typed-data signer.
137
+ * Registers the exact EVM payment scheme and applies the body-shim so that
138
+ * servers returning v2 payment requirements in the response body are handled
139
+ * transparently.
140
+ *
141
+ * @param signer - Minimal signer with an address and EIP-712 signTypedData implementation
142
+ * @returns A fetch-compatible function that handles x402 payment flows
143
+ */
144
+ function createEvmX402Fetch(walletClient) {
145
+ var _walletClient$account;
146
+ const address = (_walletClient$account = walletClient.account) === null || _walletClient$account === void 0 ? void 0 : _walletClient$account.address;
147
+ if (!address) throw new Error("Wallet account is unavailable.");
148
+ const evmSigner = toClientEvmSigner({
149
+ address,
150
+ signTypedData: async params => {
151
+ const {
152
+ domain,
153
+ types,
154
+ primaryType,
155
+ message
156
+ } = params;
157
+ return walletClient.signTypedData({
158
+ account: address,
159
+ domain,
160
+ types,
161
+ primaryType,
162
+ message
163
+ });
164
+ }
165
+ });
166
+ const client = new x402Client().register(EVM_CAIP2_WILDCARD, new ExactEvmScheme(evmSigner));
167
+ return wrapFetchWithPayment(withX402BodyShim(fetch), client);
168
+ }
169
+
170
+ export { EVM_CAIP2_WILDCARD, PAYMENT_REQUIRED_HEADER, SOLANA_CAIP2_WILDCARD, createEvmX402Fetch, createProviderBackedEvmSigner, createSolanaX402Fetch, getEvmAddress, withX402BodyShim };
@@ -0,0 +1,3 @@
1
+ const PAYMENT_REQUIRED_HEADER = "PAYMENT-REQUIRED";
2
+
3
+ export { PAYMENT_REQUIRED_HEADER };
@@ -0,0 +1,59 @@
1
+ import { useCallback } from 'react';
2
+ import { CHAIN_NAMESPACES } from '@toruslabs/base-controllers';
3
+ import { useChain } from '../react/hooks/useChain.js';
4
+ import { useWeb3Auth } from '../react/hooks/useWeb3Auth.js';
5
+ import { createSolanaX402Fetch, getEvmAddress, createProviderBackedEvmSigner, createEvmX402Fetch } from './index.js';
6
+
7
+ /**
8
+ * Web3Auth-integrated x402 fetch hook.
9
+ *
10
+ * Automatically selects the correct payment path based on the currently connected
11
+ * chain namespace:
12
+ * - **Solana** - uses `createSolanaX402Fetch` backed by the web3auth Solana wallet.
13
+ * - **EVM** - uses `createEvmX402Fetch` backed by the web3auth EIP-1193 provider.
14
+ *
15
+ * Callers do not need to pass a signer manually; it is sourced internally.
16
+ * When `address` is provided, it takes precedence over the provider's active account.
17
+ */
18
+ const useX402Fetch = address => {
19
+ const {
20
+ chainNamespace
21
+ } = useChain();
22
+ const {
23
+ web3Auth,
24
+ isConnected,
25
+ connection
26
+ } = useWeb3Auth();
27
+ // const { solanaWallet, accounts } = useSolanaWallet();
28
+
29
+ const fetchWithPayment = useCallback(async ({
30
+ url,
31
+ options
32
+ }) => {
33
+ if (!isConnected) throw new Error("Wallet not connected");
34
+ if (chainNamespace === CHAIN_NAMESPACES.SOLANA) {
35
+ var _solanaWallet$account;
36
+ const {
37
+ solanaWallet
38
+ } = connection;
39
+ if (!solanaWallet || !((_solanaWallet$account = solanaWallet.accounts) !== null && _solanaWallet$account !== void 0 && _solanaWallet$account[0])) throw new Error("Solana wallet not available");
40
+ const account = solanaWallet.accounts[0];
41
+ if (!account) throw new Error("Solana account not available");
42
+ return createSolanaX402Fetch(solanaWallet, account.address)(url, options);
43
+ }
44
+ if (chainNamespace === CHAIN_NAMESPACES.EIP155) {
45
+ const provider = connection === null || connection === void 0 ? void 0 : connection.ethereumProvider;
46
+ if (!provider) throw new Error("EVM provider not available");
47
+ const evmAddress = address !== null && address !== void 0 ? address : await getEvmAddress(provider);
48
+ if (!evmAddress) throw new Error("EVM address not available");
49
+ const signer = createProviderBackedEvmSigner(provider, evmAddress);
50
+ return createEvmX402Fetch(signer)(url, options);
51
+ }
52
+ throw new Error("Unsupported chain namespace");
53
+ }, [web3Auth, isConnected, chainNamespace, address, connection]);
54
+ return {
55
+ fetchWithPayment
56
+ };
57
+ };
58
+
59
+ export { createEvmX402Fetch, createProviderBackedEvmSigner, createSolanaX402Fetch, getEvmAddress, useX402Fetch };
@@ -0,0 +1,54 @@
1
+ import { toValue } from 'vue';
2
+ import { CHAIN_NAMESPACES } from '@toruslabs/base-controllers';
3
+ import { useWeb3Auth } from '../vue/composables/useWeb3Auth.js';
4
+ import { createSolanaX402Fetch, getEvmAddress, createProviderBackedEvmSigner, createEvmX402Fetch } from './index.js';
5
+
6
+ /**
7
+ * Web3Auth-integrated x402 fetch composable.
8
+ *
9
+ * Automatically selects the correct payment path based on the currently connected
10
+ * chain namespace:
11
+ * - **Solana** - uses `createSolanaX402Fetch` backed by the web3auth Solana wallet.
12
+ * - **EVM** - uses `createEvmX402Fetch` backed by the web3auth EIP-1193 provider.
13
+ *
14
+ * Callers do not need to pass a signer manually; it is sourced internally.
15
+ * When `address` is provided, it takes precedence over the provider's active account.
16
+ */
17
+ const useX402Fetch = address => {
18
+ const {
19
+ isConnected,
20
+ chainNamespace,
21
+ connection
22
+ } = useWeb3Auth();
23
+ const fetchWithPayment = async ({
24
+ url,
25
+ options
26
+ }) => {
27
+ if (!isConnected.value) throw new Error("Wallet not connected");
28
+ if (chainNamespace.value === CHAIN_NAMESPACES.SOLANA) {
29
+ var _solanaWallet$account;
30
+ const {
31
+ solanaWallet
32
+ } = connection.value;
33
+ if (!solanaWallet || !((_solanaWallet$account = solanaWallet.accounts) !== null && _solanaWallet$account !== void 0 && _solanaWallet$account[0])) throw new Error("Solana wallet not available");
34
+ const account = solanaWallet.accounts[0];
35
+ if (!account) throw new Error("Solana account not available");
36
+ return createSolanaX402Fetch(solanaWallet, account.address)(url, options);
37
+ }
38
+ if (chainNamespace.value === CHAIN_NAMESPACES.EIP155) {
39
+ var _connection$value, _toValue;
40
+ const provider = (_connection$value = connection.value) === null || _connection$value === void 0 ? void 0 : _connection$value.ethereumProvider;
41
+ if (!provider) throw new Error("EVM provider not available");
42
+ const evmAddress = (_toValue = toValue(address)) !== null && _toValue !== void 0 ? _toValue : await getEvmAddress(provider);
43
+ if (!evmAddress) throw new Error("EVM address not available");
44
+ const signer = createProviderBackedEvmSigner(provider, evmAddress);
45
+ return createEvmX402Fetch(signer)(url, options);
46
+ }
47
+ throw new Error("Unsupported chain namespace");
48
+ };
49
+ return {
50
+ fetchWithPayment
51
+ };
52
+ };
53
+
54
+ export { createEvmX402Fetch, createSolanaX402Fetch, useX402Fetch };