@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,187 @@
1
+ 'use strict';
2
+
3
+ var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
4
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
5
+ var kit = require('@solana/kit');
6
+ var walletStandardFeatures = require('@solana/wallet-standard-features');
7
+ var features = require('@wallet-standard/features');
8
+ var wsEmbed = require('@web3auth/ws-embed');
9
+ require('@segment/analytics-next');
10
+ require('../../base/loglevel.js');
11
+ require('@toruslabs/base-controllers');
12
+ require('@toruslabs/session-manager');
13
+ require('@web3auth/auth');
14
+ var index$1 = require('../../base/errors/index.js');
15
+ require('@toruslabs/constants');
16
+ require('@toruslabs/http-helpers');
17
+ var constants = require('../../base/constants.js');
18
+ var index = require('../../base/wallet/index.js');
19
+ require('../../base/connector/connectorStatus.js');
20
+ require('../../base/connector/constants.js');
21
+ require('jwt-decode');
22
+ require('../../base/plugin/errors.js');
23
+ require('../../base/plugin/IPlugin.js');
24
+ var solana = require('../../base/wallet/solana.js');
25
+
26
+ const base58Encoder = kit.getBase58Encoder();
27
+ const base64Decoder = kit.getBase64Decoder();
28
+ const base64Encoder = kit.getBase64Encoder();
29
+ const transactionDecoder = kit.getTransactionDecoder();
30
+ const ACCOUNT_FEATURES = [walletStandardFeatures.SolanaSignAndSendTransaction, walletStandardFeatures.SolanaSignMessage, walletStandardFeatures.SolanaSignTransaction];
31
+ function solanaWalletChainsFromConfigs(solanaChainConfigs) {
32
+ const ids = solanaChainConfigs.map(solana.getSolanaChainByChainConfig).filter(id => id != null);
33
+ const unique = [...new Set(ids)];
34
+ return unique;
35
+ }
36
+ const SOLANA_PROVIDER_HEX_CHAIN_IDS = new Set(Object.keys(constants.SOLANA_CAIP_CHAIN_MAP).map(id => id.toLowerCase()));
37
+ /**
38
+ * AuthSolanaWallet implements the Wallet Standard interface, wrapping a JRPC provider.
39
+ * Used by AuthConnector so consumers get a standards-compliant Wallet from `connection.solanaWallet`.
40
+ *
41
+ * {@link Wallet.accounts} is synchronous in the Wallet Standard; it returns `[]` until accounts have been loaded
42
+ * (`null` internally). The first async operation ({@link StandardConnect}, sign, etc.) calls `ensureAccountsLoaded`, which
43
+ * requires {@link IProvider.chainId} to be a configured Solana network (see {@link SOLANA_CAIP_CHAIN_MAP}) before {@link SOLANA_METHOD_TYPES.GET_ACCOUNTS}.
44
+ */
45
+ class AuthSolanaWallet {
46
+ /**
47
+ * @param solanaChainConfigs - All configured Solana {@link CustomChainConfig} entries (same namespace).
48
+ */
49
+ constructor(_provider, solanaChainConfigs) {
50
+ _defineProperty(this, "_provider", void 0);
51
+ _defineProperty(this, "version", "1.0.0");
52
+ _defineProperty(this, "name", "Web3Auth");
53
+ _defineProperty(this, "icon", index.WEB3AUTH_ICON);
54
+ _defineProperty(this, "chains", void 0);
55
+ _defineProperty(this, "features", void 0);
56
+ _defineProperty(this, "_accounts", null);
57
+ _defineProperty(this, "_listeners", {});
58
+ this._provider = _provider;
59
+ this.chains = solanaWalletChainsFromConfigs(solanaChainConfigs);
60
+ this.features = {
61
+ [features.StandardConnect]: {
62
+ version: "1.0.0",
63
+ connect: async () => {
64
+ await this.ensureAccountsLoaded();
65
+ return {
66
+ accounts: this.accounts
67
+ };
68
+ }
69
+ },
70
+ [features.StandardDisconnect]: {
71
+ version: "1.0.0",
72
+ disconnect: async () => {}
73
+ },
74
+ [features.StandardEvents]: {
75
+ version: "1.0.0",
76
+ on: (event, listener) => {
77
+ var _this$_listeners, _this$_listeners$even;
78
+ ((_this$_listeners$even = (_this$_listeners = this._listeners)[event]) !== null && _this$_listeners$even !== void 0 ? _this$_listeners$even : _this$_listeners[event] = new Set()).add(listener);
79
+ return () => this._listeners[event].delete(listener);
80
+ }
81
+ },
82
+ [walletStandardFeatures.SolanaSignAndSendTransaction]: {
83
+ version: "1.0.0",
84
+ supportedTransactionVersions: ["legacy", 0],
85
+ signAndSendTransaction: async (...inputs) => {
86
+ await this.ensureAccountsLoaded();
87
+ return Promise.all(inputs.map(async input => {
88
+ const base64Tx = base64Decoder.decode(input.transaction);
89
+ const signature = await this._provider.request({
90
+ method: wsEmbed.SOLANA_METHOD_TYPES.SEND_TRANSACTION,
91
+ params: {
92
+ message: base64Tx
93
+ }
94
+ });
95
+ return {
96
+ signature: new Uint8Array(base58Encoder.encode(signature))
97
+ };
98
+ }));
99
+ }
100
+ },
101
+ [walletStandardFeatures.SolanaSignMessage]: {
102
+ version: "1.0.0",
103
+ signMessage: async (...inputs) => {
104
+ await this.ensureAccountsLoaded();
105
+ return Promise.all(inputs.map(async input => {
106
+ const message = new TextDecoder().decode(input.message);
107
+ const signature = await this._provider.request({
108
+ method: wsEmbed.SOLANA_METHOD_TYPES.SIGN_MESSAGE,
109
+ params: {
110
+ data: message,
111
+ from: input.account.address
112
+ }
113
+ });
114
+ return {
115
+ signedMessage: new Uint8Array(input.message),
116
+ signature: new Uint8Array(base58Encoder.encode(signature))
117
+ };
118
+ }));
119
+ }
120
+ },
121
+ [walletStandardFeatures.SolanaSignTransaction]: {
122
+ version: "1.0.0",
123
+ supportedTransactionVersions: ["legacy", 0],
124
+ signTransaction: async (...inputs) => {
125
+ await this.ensureAccountsLoaded();
126
+ return Promise.all(inputs.map(async input => {
127
+ const base64Tx = base64Decoder.decode(input.transaction);
128
+ const signatureBase58 = await this._provider.request({
129
+ method: wsEmbed.SOLANA_METHOD_TYPES.SIGN_TRANSACTION,
130
+ params: {
131
+ message: base64Tx
132
+ }
133
+ });
134
+ const sigBytes = new Uint8Array(base58Encoder.encode(signatureBase58));
135
+ const decodedTx = transactionDecoder.decode(input.transaction);
136
+ const signedTx = _objectSpread(_objectSpread({}, decodedTx), {}, {
137
+ signatures: _objectSpread(_objectSpread({}, decodedTx.signatures), {}, {
138
+ [input.account.address]: sigBytes
139
+ })
140
+ });
141
+ const signedBase64 = kit.getBase64EncodedWireTransaction(signedTx);
142
+ return {
143
+ signedTransaction: new Uint8Array(base64Encoder.encode(signedBase64))
144
+ };
145
+ }));
146
+ }
147
+ }
148
+ };
149
+ }
150
+ /**
151
+ * Wallet Standard requires a synchronous getter; RPC runs on first async wallet operation instead.
152
+ */
153
+ get accounts() {
154
+ var _this$_accounts;
155
+ return (_this$_accounts = this._accounts) !== null && _this$_accounts !== void 0 ? _this$_accounts : [];
156
+ }
157
+ /** Throws if the embed is not on Solana; otherwise loads accounts once via {@link SOLANA_METHOD_TYPES.GET_ACCOUNTS}. */
158
+ async ensureAccountsLoaded() {
159
+ var _await$this$_provider;
160
+ // assert solana chain
161
+ const chainId = this._provider.chainId;
162
+ if (!SOLANA_PROVIDER_HEX_CHAIN_IDS.has(chainId.toLowerCase())) throw index$1.WalletLoginError.unsupportedOperation(`Solana wallet operations require the embedded provider to be on a Solana network (current chainId: ${chainId}). Switch chain first.`);
163
+ if (this._accounts !== null) return;
164
+ const addresses = (_await$this$_provider = await this._provider.request({
165
+ method: wsEmbed.SOLANA_METHOD_TYPES.GET_ACCOUNTS
166
+ })) !== null && _await$this$_provider !== void 0 ? _await$this$_provider : [];
167
+ const accountChains = this.chains;
168
+ this._accounts = addresses.map(address => ({
169
+ address,
170
+ publicKey: new Uint8Array(base58Encoder.encode(address)),
171
+ chains: accountChains.length ? accountChains : [],
172
+ features: ACCOUNT_FEATURES
173
+ }));
174
+ this.emitChange({
175
+ accounts: this.accounts
176
+ });
177
+ }
178
+ emitChange(properties) {
179
+ const listeners = this._listeners.change;
180
+ if (!listeners) return;
181
+ listeners.forEach(listener => {
182
+ listener(properties);
183
+ });
184
+ }
185
+ }
186
+
187
+ exports.AuthSolanaWallet = AuthSolanaWallet;
@@ -1,7 +1,9 @@
1
1
  'use strict';
2
2
 
3
3
  var baseControllers = require('@toruslabs/base-controllers');
4
+ var metadataHelpers = require('@toruslabs/metadata-helpers');
4
5
  var wsEmbed = require('@web3auth/ws-embed');
6
+ var siwe = require('viem/siwe');
5
7
  require('@babel/runtime/helpers/objectSpread2');
6
8
  require('@babel/runtime/helpers/defineProperty');
7
9
  require('@segment/analytics-next');
@@ -10,17 +12,17 @@ var baseConnector = require('../../base/connector/baseConnector.js');
10
12
  require('../../base/connector/connectorStatus.js');
11
13
  var constants = require('../../base/connector/constants.js');
12
14
  require('@web3auth/auth');
13
- var utils = require('../../base/connector/utils.js');
15
+ require('jwt-decode');
16
+ require('../../base/constants.js');
14
17
  var index = require('../../base/errors/index.js');
15
18
  require('../../base/plugin/errors.js');
16
19
  require('../../base/plugin/IPlugin.js');
17
- require('@toruslabs/constants');
18
- require('@toruslabs/http-helpers');
20
+ var utils = require('../../base/utils.js');
19
21
  require('../../base/wallet/index.js');
20
22
 
21
23
  class BaseEvmConnector extends baseConnector.BaseConnector {
22
24
  async init(_) {}
23
- async getIdentityToken() {
25
+ async getAuthTokenInfo() {
24
26
  if (!this.provider || !this.canAuthorize) throw index.WalletLoginError.notConnectedError();
25
27
  if (!this.coreOptions) throw index.WalletInitializationError.invalidParams("Please initialize Web3Auth with valid options");
26
28
  this.status = constants.CONNECTOR_STATUS.AUTHORIZING;
@@ -31,68 +33,63 @@ class BaseEvmConnector extends baseConnector.BaseConnector {
31
33
  method: wsEmbed.EVM_METHOD_TYPES.GET_ACCOUNTS
32
34
  });
33
35
  if (accounts && accounts.length > 0) {
34
- const existingToken = utils.getSavedToken(accounts[0], this.name);
35
- if (existingToken) {
36
- const isExpired = utils.checkIfTokenIsExpired(existingToken);
37
- if (!isExpired) {
38
- this.status = constants.CONNECTOR_STATUS.AUTHORIZED;
39
- this.emit(constants.CONNECTOR_EVENTS.AUTHORIZED, {
40
- connector: this.name,
41
- identityTokenInfo: {
42
- idToken: existingToken
43
- }
44
- });
45
- return {
46
- idToken: existingToken
47
- };
48
- }
49
- }
50
- const chainId = await this.provider.request({
51
- method: "eth_chainId"
52
- });
53
- const currentChainConfig = this.coreOptions.chains.find(x => x.chainId === chainId);
54
- if (!currentChainConfig) throw index.WalletInitializationError.invalidParams("chainConfig is required before authentication");
36
+ const cached = await this.getCachedOrNullAuthTokenInfo(accounts[0]);
37
+ if (cached) return cached;
38
+ const authServer = utils.citadelServerUrl(this.coreOptions.authBuildEnv);
55
39
  const {
40
+ challenge,
41
+ signature,
56
42
  chainNamespace
57
- } = currentChainConfig;
58
- const payload = {
59
- domain: window.location.origin,
60
- uri: window.location.href,
61
- address: accounts[0],
62
- chainId: parseInt(chainId, 16),
63
- version: "1",
64
- nonce: Math.random().toString(36).slice(2),
65
- issuedAt: new Date().toISOString()
66
- };
67
- const challenge = await baseControllers.signChallenge(payload, chainNamespace);
68
- const hexChallenge = `0x${Buffer.from(challenge, "utf8").toString("hex")}`;
69
- const signedMessage = await this.provider.request({
70
- method: wsEmbed.EVM_METHOD_TYPES.PERSONAL_SIGN,
71
- params: [hexChallenge, accounts[0]]
72
- });
73
- const idToken = await baseControllers.verifySignedChallenge(chainNamespace, signedMessage, challenge, this.name, this.coreOptions.sessionTime, this.coreOptions.clientId, this.coreOptions.web3AuthNetwork);
74
- utils.saveToken(accounts[0], this.name, idToken);
75
- this.status = constants.CONNECTOR_STATUS.AUTHORIZED;
76
- this.emit(constants.CONNECTOR_EVENTS.AUTHORIZED, {
77
- connector: this.name,
78
- identityTokenInfo: {
79
- idToken
80
- }
43
+ } = await this.generateChallengeAndSign(authServer, accounts);
44
+ return this.verifyAndAuthorize({
45
+ chainNamespace,
46
+ signedMessage: signature,
47
+ challenge,
48
+ authServer
81
49
  });
82
- return {
83
- idToken
84
- };
85
50
  }
86
51
  throw index.WalletLoginError.notConnectedError("Not connected with wallet, Please login/connect first");
87
52
  }
53
+ async generateChallengeAndSign(authServerUrl, accounts) {
54
+ const accountsToUse = accounts || (await this.provider.request({
55
+ method: wsEmbed.EVM_METHOD_TYPES.GET_ACCOUNTS
56
+ }));
57
+ if (!accountsToUse || accountsToUse.length === 0) {
58
+ throw index.WalletLoginError.notConnectedError("No accounts found in the connected wallet");
59
+ }
60
+ const chainId = await this.provider.request({
61
+ method: "eth_chainId"
62
+ });
63
+ const currentChainConfig = this.coreOptions.chains.find(x => x.chainId === chainId);
64
+ if (!currentChainConfig) throw index.WalletInitializationError.invalidParams("chainConfig is required before authentication");
65
+ const {
66
+ chainNamespace
67
+ } = currentChainConfig;
68
+ const authServer = authServerUrl || utils.citadelServerUrl(this.coreOptions.authBuildEnv);
69
+ const payload = {
70
+ domain: window.location.origin,
71
+ uri: window.location.href,
72
+ address: accountsToUse[0],
73
+ chainId: parseInt(chainId, 16),
74
+ version: "1",
75
+ nonce: siwe.generateSiweNonce(),
76
+ issuedAt: new Date().toISOString()
77
+ };
78
+ const challenge = await baseControllers.signChallenge(payload, chainNamespace, authServer);
79
+ const hexChallenge = metadataHelpers.bytesToHexPrefixedString(metadataHelpers.utf8ToBytes(challenge));
80
+ const signature = await this.provider.request({
81
+ method: wsEmbed.EVM_METHOD_TYPES.PERSONAL_SIGN,
82
+ params: [hexChallenge, accountsToUse[0]]
83
+ });
84
+ return {
85
+ challenge,
86
+ signature,
87
+ chainNamespace
88
+ };
89
+ }
88
90
  async disconnectSession() {
89
91
  super.checkDisconnectionRequirements();
90
- const accounts = await this.provider.request({
91
- method: "eth_accounts"
92
- });
93
- if (accounts && accounts.length > 0) {
94
- utils.clearToken(accounts[0], this.name);
95
- }
92
+ await this.clearWalletSession();
96
93
  }
97
94
  async disconnect() {
98
95
  this.rehydrated = false;
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var baseControllers = require('@toruslabs/base-controllers');
4
- var wsEmbed = require('@web3auth/ws-embed');
4
+ var siwe = require('viem/siwe');
5
5
  require('@babel/runtime/helpers/objectSpread2');
6
6
  require('@babel/runtime/helpers/defineProperty');
7
7
  require('@segment/analytics-next');
@@ -10,91 +10,82 @@ var baseConnector = require('../../base/connector/baseConnector.js');
10
10
  require('../../base/connector/connectorStatus.js');
11
11
  var constants = require('../../base/connector/constants.js');
12
12
  require('@web3auth/auth');
13
- var utils = require('../../base/connector/utils.js');
13
+ require('jwt-decode');
14
+ require('../../base/constants.js');
14
15
  var index = require('../../base/errors/index.js');
15
16
  require('../../base/plugin/errors.js');
16
17
  require('../../base/plugin/IPlugin.js');
17
- require('@toruslabs/constants');
18
- require('@toruslabs/http-helpers');
18
+ var utils = require('../../base/utils.js');
19
19
  require('../../base/wallet/index.js');
20
+ var solana = require('../../base/wallet/solana.js');
20
21
 
21
22
  class BaseSolanaConnector extends baseConnector.BaseConnector {
22
23
  async init(_) {}
23
- async getIdentityToken() {
24
- if (!this.provider || !this.canAuthorize) throw index.WalletLoginError.notConnectedError();
24
+ async getAuthTokenInfo() {
25
+ if (!this.solanaWallet || !this.canAuthorize) throw index.WalletLoginError.notConnectedError();
25
26
  if (!this.coreOptions) throw index.WalletInitializationError.invalidParams("Please initialize Web3Auth with a valid options");
26
27
  this.status = constants.CONNECTOR_STATUS.AUTHORIZING;
27
28
  this.emit(constants.CONNECTOR_EVENTS.AUTHORIZING, {
28
29
  connector: this.name
29
30
  });
30
- const accounts = await this.provider.request({
31
- method: wsEmbed.SOLANA_METHOD_TYPES.GET_ACCOUNTS
32
- });
33
- if (accounts && accounts.length > 0) {
34
- const existingToken = utils.getSavedToken(accounts[0], this.name);
35
- if (existingToken) {
36
- const isExpired = utils.checkIfTokenIsExpired(existingToken);
37
- if (!isExpired) {
38
- this.status = constants.CONNECTOR_STATUS.AUTHORIZED;
39
- this.emit(constants.CONNECTOR_EVENTS.AUTHORIZED, {
40
- connector: this.name,
41
- identityTokenInfo: {
42
- idToken: existingToken
43
- }
44
- });
45
- return {
46
- idToken: existingToken
47
- };
48
- }
49
- }
50
- const chainId = await this.provider.request({
51
- method: "solana_chainId"
52
- });
53
- const currentChainConfig = this.coreOptions.chains.find(x => x.chainId === chainId);
54
- if (!currentChainConfig) throw index.WalletInitializationError.invalidParams("chainConfig is required before authentication");
31
+ const accounts = this.solanaWallet.accounts.map(a => a.address);
32
+ if (accounts.length > 0) {
33
+ const cached = await this.getCachedOrNullAuthTokenInfo(accounts[0]);
34
+ if (cached) return cached;
35
+ const authServer = utils.citadelServerUrl(this.coreOptions.authBuildEnv);
55
36
  const {
37
+ challenge,
38
+ signature,
56
39
  chainNamespace
57
- } = currentChainConfig;
58
- const payload = {
59
- domain: window.location.origin,
60
- uri: window.location.href,
61
- address: accounts[0],
62
- chainId: parseInt(chainId, 16),
63
- version: "1",
64
- nonce: Math.random().toString(36).slice(2),
65
- issuedAt: new Date().toISOString()
66
- };
67
- const challenge = await baseControllers.signChallenge(payload, chainNamespace);
68
- const signedMessage = await this.provider.request({
69
- method: wsEmbed.SOLANA_METHOD_TYPES.SIGN_MESSAGE,
70
- params: {
71
- data: challenge,
72
- display: "utf8"
73
- }
74
- });
75
- const idToken = await baseControllers.verifySignedChallenge(chainNamespace, signedMessage, challenge, this.name, this.coreOptions.sessionTime, this.coreOptions.clientId, this.coreOptions.web3AuthNetwork);
76
- utils.saveToken(accounts[0], this.name, idToken);
77
- this.status = constants.CONNECTOR_STATUS.AUTHORIZED;
78
- this.emit(constants.CONNECTOR_EVENTS.AUTHORIZED, {
79
- connector: this.name,
80
- identityTokenInfo: {
81
- idToken
82
- }
40
+ } = await this.generateChallengeAndSign(authServer);
41
+ return this.verifyAndAuthorize({
42
+ chainNamespace,
43
+ signedMessage: signature,
44
+ challenge,
45
+ authServer
83
46
  });
84
- return {
85
- idToken
86
- };
87
47
  }
88
48
  throw index.WalletLoginError.notConnectedError("Not connected with wallet, Please login/connect first");
89
49
  }
90
- async disconnectSession() {
91
- super.checkDisconnectionRequirements();
92
- const accounts = await this.provider.request({
93
- method: wsEmbed.SOLANA_METHOD_TYPES.GET_ACCOUNTS
50
+ async generateChallengeAndSign(authServerUrl, accounts) {
51
+ const accountsToUse = accounts || this.solanaWallet.accounts.map(a => a.address);
52
+ if (!accountsToUse || accountsToUse.length === 0) {
53
+ throw index.WalletLoginError.notConnectedError("No accounts found in the connected wallet");
54
+ }
55
+ const walletChains = new Set(this.solanaWallet.chains);
56
+ const currentChainConfig = this.coreOptions.chains.find(c => {
57
+ if (c.chainNamespace !== baseControllers.CHAIN_NAMESPACES.SOLANA) return false;
58
+ const id = solana.getSolanaChainByChainConfig(c);
59
+ return id != null && walletChains.has(id);
94
60
  });
95
- if (accounts && accounts.length > 0) {
96
- utils.clearToken(accounts[0], this.name);
61
+ if (!currentChainConfig) {
62
+ throw index.WalletInitializationError.invalidParams("No Solana chain in common between the connected wallet and Web3Auth chain configuration");
97
63
  }
64
+ const {
65
+ chainId,
66
+ chainNamespace
67
+ } = currentChainConfig;
68
+ const authServer = authServerUrl || utils.citadelServerUrl(this.coreOptions.authBuildEnv);
69
+ const payload = {
70
+ domain: window.location.origin,
71
+ uri: window.location.href,
72
+ address: accountsToUse[0],
73
+ chainId: parseInt(chainId, 16),
74
+ version: "1",
75
+ nonce: siwe.generateSiweNonce(),
76
+ issuedAt: new Date().toISOString()
77
+ };
78
+ const challenge = await baseControllers.signChallenge(payload, chainNamespace, authServer);
79
+ const signedMessage = await solana.walletSignMessage(this.solanaWallet, challenge, accountsToUse[0]);
80
+ return {
81
+ challenge,
82
+ signature: signedMessage,
83
+ chainNamespace
84
+ };
85
+ }
86
+ async disconnectSession() {
87
+ super.checkDisconnectionRequirements();
88
+ await this.clearWalletSession();
98
89
  }
99
90
  async disconnect() {
100
91
  this.rehydrated = false;
@@ -5,17 +5,19 @@ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
5
5
  require('@segment/analytics-next');
6
6
  require('../../base/loglevel.js');
7
7
  var IChainInterface = require('../../base/chain/IChainInterface.js');
8
+ var baseControllers = require('@toruslabs/base-controllers');
9
+ require('@toruslabs/session-manager');
8
10
  require('@web3auth/auth');
9
11
  var index$1 = require('../../base/errors/index.js');
12
+ require('@toruslabs/constants');
13
+ require('@toruslabs/http-helpers');
14
+ require('../../base/constants.js');
10
15
  var index = require('../../base/wallet/index.js');
11
16
  require('../../base/connector/connectorStatus.js');
12
17
  var constants = require('../../base/connector/constants.js');
13
18
  require('jwt-decode');
14
19
  require('../../base/plugin/errors.js');
15
20
  require('../../base/plugin/IPlugin.js');
16
- var baseControllers = require('@toruslabs/base-controllers');
17
- require('@toruslabs/constants');
18
- require('@toruslabs/http-helpers');
19
21
  var baseEvmConnector = require('../base-evm-connector/baseEvmConnector.js');
20
22
 
21
23
  class CoinbaseConnector extends baseEvmConnector.BaseEvmConnector {
@@ -64,12 +66,12 @@ class CoinbaseConnector extends baseEvmConnector.BaseEvmConnector {
64
66
  try {
65
67
  if (options.autoConnect) {
66
68
  this.rehydrated = true;
67
- const provider = await this.connect({
69
+ const connection = await this.connect({
68
70
  chainId: options.chainId,
69
- getIdentityToken: options.getIdentityToken
71
+ getAuthTokenInfo: options.getAuthTokenInfo
70
72
  });
71
73
  // the connect function could fail silently as well.
72
- if (!provider) {
74
+ if (!connection) {
73
75
  this.rehydrated = false;
74
76
  throw index$1.WalletLoginError.connectionError("Failed to rehydrate.");
75
77
  }
@@ -80,7 +82,7 @@ class CoinbaseConnector extends baseEvmConnector.BaseEvmConnector {
80
82
  }
81
83
  async connect({
82
84
  chainId,
83
- getIdentityToken
85
+ getAuthTokenInfo
84
86
  }) {
85
87
  super.checkConnectionRequirements();
86
88
  if (!this.coinbaseProvider) throw index$1.WalletLoginError.notConnectedError("Connector is not initialized");
@@ -106,17 +108,20 @@ class CoinbaseConnector extends baseEvmConnector.BaseEvmConnector {
106
108
  // ready to be connected again
107
109
  this.disconnect();
108
110
  });
109
- let identityTokenInfo;
110
111
  this.emit(constants.CONNECTOR_EVENTS.CONNECTED, {
111
- connector: index.WALLET_CONNECTORS.COINBASE,
112
+ connectorName: index.WALLET_CONNECTORS.COINBASE,
112
113
  reconnected: this.rehydrated,
113
- provider: this.provider,
114
- identityTokenInfo
114
+ ethereumProvider: this.provider,
115
+ solanaWallet: null
115
116
  });
116
- if (getIdentityToken) {
117
- identityTokenInfo = await this.getIdentityToken();
117
+ if (getAuthTokenInfo) {
118
+ await this.getAuthTokenInfo();
118
119
  }
119
- return this.provider;
120
+ return {
121
+ ethereumProvider: this.provider,
122
+ solanaWallet: null,
123
+ connectorName: this.name
124
+ };
120
125
  } catch (error) {
121
126
  // ready again to be connected
122
127
  this.status = constants.CONNECTOR_STATUS.READY;
@@ -5,17 +5,19 @@ require('@babel/runtime/helpers/objectSpread2');
5
5
  require('@segment/analytics-next');
6
6
  var loglevel = require('../../base/loglevel.js');
7
7
  var IChainInterface = require('../../base/chain/IChainInterface.js');
8
+ var baseControllers = require('@toruslabs/base-controllers');
9
+ require('@toruslabs/session-manager');
8
10
  require('@web3auth/auth');
9
11
  var index = require('../../base/errors/index.js');
12
+ var utils = require('../../base/utils.js');
10
13
  require('../../base/wallet/index.js');
11
14
  require('../../base/connector/connectorStatus.js');
12
15
  var constants = require('../../base/connector/constants.js');
13
16
  require('jwt-decode');
17
+ require('../../base/constants.js');
14
18
  require('../../base/plugin/errors.js');
15
19
  require('../../base/plugin/IPlugin.js');
16
- var utils = require('../../base/utils.js');
17
20
  var baseEvmConnector = require('../base-evm-connector/baseEvmConnector.js');
18
- var baseControllers = require('@toruslabs/base-controllers');
19
21
 
20
22
  class InjectedEvmConnector extends baseEvmConnector.BaseEvmConnector {
21
23
  constructor(options) {
@@ -52,11 +54,11 @@ class InjectedEvmConnector extends baseEvmConnector.BaseEvmConnector {
52
54
  loglevel.log.debug(`initializing ${this.name} injected connector`);
53
55
  if (options.autoConnect) {
54
56
  this.rehydrated = true;
55
- const provider = await this.connect({
57
+ const connection = await this.connect({
56
58
  chainId: options.chainId,
57
- getIdentityToken: options.getIdentityToken
59
+ getAuthTokenInfo: options.getAuthTokenInfo
58
60
  });
59
- if (!provider) {
61
+ if (!connection) {
60
62
  this.rehydrated = false;
61
63
  throw index.WalletLoginError.connectionError("Failed to rehydrate.");
62
64
  }
@@ -67,7 +69,7 @@ class InjectedEvmConnector extends baseEvmConnector.BaseEvmConnector {
67
69
  }
68
70
  async connect({
69
71
  chainId,
70
- getIdentityToken
72
+ getAuthTokenInfo
71
73
  }) {
72
74
  super.checkConnectionRequirements();
73
75
  if (!this.injectedProvider) throw index.WalletLoginError.connectionError("Injected provider is not available");
@@ -99,17 +101,20 @@ class InjectedEvmConnector extends baseEvmConnector.BaseEvmConnector {
99
101
  }
100
102
  };
101
103
  this.injectedProvider.on("accountsChanged", accountDisconnectHandler);
102
- let identityTokenInfo;
103
104
  this.emit(constants.CONNECTOR_EVENTS.CONNECTED, {
104
- connector: this.name,
105
+ connectorName: this.name,
105
106
  reconnected: this.rehydrated,
106
- provider: this.injectedProvider,
107
- identityTokenInfo
107
+ ethereumProvider: this.injectedProvider,
108
+ solanaWallet: null
108
109
  });
109
- if (getIdentityToken) {
110
- identityTokenInfo = await this.getIdentityToken();
110
+ if (getAuthTokenInfo) {
111
+ await this.getAuthTokenInfo();
111
112
  }
112
- return this.injectedProvider;
113
+ return {
114
+ ethereumProvider: this.injectedProvider,
115
+ solanaWallet: null,
116
+ connectorName: this.name
117
+ };
113
118
  } catch (error) {
114
119
  // ready again to be connected
115
120
  this.status = constants.CONNECTOR_STATUS.READY;