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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (326) hide show
  1. package/dist/lib.cjs/base/connector/baseConnector.js +104 -2
  2. package/dist/lib.cjs/base/connector/connectorStatus.js +2 -0
  3. package/dist/lib.cjs/base/connector/constants.js +4 -2
  4. package/dist/lib.cjs/base/connector/utils.js +0 -21
  5. package/dist/lib.cjs/base/constants.js +4 -0
  6. package/dist/lib.cjs/base/cookie.js +6 -20
  7. package/dist/lib.cjs/base/errors/index.js +36 -12
  8. package/dist/lib.cjs/base/utils.js +10 -11
  9. package/dist/lib.cjs/base/wallet/index.js +7 -0
  10. package/dist/lib.cjs/base/wallet/solana.js +83 -0
  11. package/dist/lib.cjs/connectors/auth-connector/authConnector.js +145 -49
  12. package/dist/lib.cjs/connectors/auth-connector/authSolanaWallet.js +187 -0
  13. package/dist/lib.cjs/connectors/base-evm-connector/baseEvmConnector.js +18 -40
  14. package/dist/lib.cjs/connectors/base-solana-connector/baseSolanaConnector.js +30 -56
  15. package/dist/lib.cjs/connectors/coinbase-connector/coinbaseConnector.js +19 -14
  16. package/dist/lib.cjs/connectors/injected-evm-connector/injectedEvmConnector.js +18 -13
  17. package/dist/lib.cjs/connectors/injected-solana-connector/walletStandardConnector.js +24 -36
  18. package/dist/lib.cjs/connectors/metamask-connector/metamaskConnector.js +321 -133
  19. package/dist/lib.cjs/connectors/utils.js +8 -2
  20. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +13 -38
  21. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/config.js +4 -3
  22. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +73 -63
  23. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Utils.js +40 -47
  24. package/dist/lib.cjs/connectors/wallet-connect-v2-connector/wcSolanaWallet.js +144 -0
  25. package/dist/lib.cjs/index.js +50 -85
  26. package/dist/lib.cjs/noModal.js +223 -133
  27. package/dist/lib.cjs/plugins/wallet-services-plugin/plugin.js +23 -39
  28. package/dist/lib.cjs/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +12 -10
  29. package/dist/lib.cjs/providers/account-abstraction-provider/providers/utils.js +8 -6
  30. package/dist/lib.cjs/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +47 -44
  31. package/dist/lib.cjs/providers/base-provider/CommonJRPCProvider.js +1 -3
  32. package/dist/lib.cjs/providers/base-provider/baseProvider.js +4 -2
  33. package/dist/lib.cjs/providers/base-provider/commonPrivateKeyProvider.js +8 -11
  34. package/dist/lib.cjs/providers/base-provider/index.js +0 -1
  35. package/dist/lib.cjs/providers/base-provider/jrpcClient.js +18 -19
  36. package/dist/lib.cjs/providers/base-provider/utils.js +0 -3
  37. package/dist/lib.cjs/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +22 -35
  38. package/dist/lib.cjs/providers/ethereum-provider/rpc/jrpcClient.js +18 -19
  39. package/dist/lib.cjs/providers/ethereum-provider/rpc/walletMiddleware.js +200 -0
  40. package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +9 -18
  41. package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.js +2 -1
  42. package/dist/lib.cjs/providers/xrpl-provider/rpc/JrpcClient.js +19 -26
  43. package/dist/lib.cjs/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +46 -37
  44. package/dist/lib.cjs/react/context/WalletServicesInnerContext.js +2 -69
  45. package/dist/lib.cjs/react/context/Web3AuthInnerContext.js +6 -161
  46. package/dist/lib.cjs/react/context/useWalletServicesContextValue.js +76 -0
  47. package/dist/lib.cjs/react/context/useWeb3AuthInnerContextValue.js +202 -0
  48. package/dist/lib.cjs/react/hooks/{useIdentityToken.js → useAuthTokenInfo.js} +6 -7
  49. package/dist/lib.cjs/react/hooks/useCheckout.js +4 -2
  50. package/dist/lib.cjs/react/hooks/useFunding.js +4 -2
  51. package/dist/lib.cjs/react/hooks/useReceive.js +4 -2
  52. package/dist/lib.cjs/react/hooks/useSwap.js +4 -2
  53. package/dist/lib.cjs/react/hooks/useWalletConnectScanner.js +4 -2
  54. package/dist/lib.cjs/react/hooks/useWalletServicesPlugin.js +3 -10
  55. package/dist/lib.cjs/react/hooks/useWalletUI.js +4 -2
  56. package/dist/lib.cjs/react/hooks/useWeb3Auth.js +1 -22
  57. package/dist/lib.cjs/react/hooks/useWeb3AuthInner.js +4 -2
  58. package/dist/lib.cjs/react/index.js +10 -2
  59. package/dist/lib.cjs/react/solana/hooks/useSignAndSendTransaction.js +22 -4
  60. package/dist/lib.cjs/react/solana/hooks/useSignMessage.js +20 -2
  61. package/dist/lib.cjs/react/solana/hooks/useSignTransaction.js +22 -3
  62. package/dist/lib.cjs/react/solana/hooks/useSolanaWallet.js +34 -51
  63. package/dist/lib.cjs/react/solana/index.js +2 -0
  64. package/dist/lib.cjs/react/solana/provider.js +167 -0
  65. package/dist/lib.cjs/react/wagmi/provider.js +10 -8
  66. package/dist/lib.cjs/types/base/connector/baseConnector.d.ts +21 -5
  67. package/dist/lib.cjs/types/base/connector/connectorStatus.d.ts +1 -0
  68. package/dist/lib.cjs/types/base/connector/constants.d.ts +3 -0
  69. package/dist/lib.cjs/types/base/connector/interfaces.d.ts +23 -12
  70. package/dist/lib.cjs/types/base/connector/utils.d.ts +0 -3
  71. package/dist/lib.cjs/types/base/constants.d.ts +1 -0
  72. package/dist/lib.cjs/types/base/cookie.d.ts +0 -7
  73. package/dist/lib.cjs/types/base/core/IWeb3Auth.d.ts +24 -12
  74. package/dist/lib.cjs/types/base/errors/index.d.ts +2 -3
  75. package/dist/lib.cjs/types/base/hooks/index.d.ts +2 -2
  76. package/dist/lib.cjs/types/base/interfaces.d.ts +5 -1
  77. package/dist/lib.cjs/types/base/utils.d.ts +2 -1
  78. package/dist/lib.cjs/types/base/wallet/index.d.ts +3 -0
  79. package/dist/lib.cjs/types/base/wallet/solana.d.ts +19 -0
  80. package/dist/lib.cjs/types/connectors/auth-connector/authConnector.d.ts +11 -6
  81. package/dist/lib.cjs/types/connectors/auth-connector/authSolanaWallet.d.ts +35 -0
  82. package/dist/lib.cjs/types/connectors/base-evm-connector/baseEvmConnector.d.ts +2 -2
  83. package/dist/lib.cjs/types/connectors/base-solana-connector/baseSolanaConnector.d.ts +2 -2
  84. package/dist/lib.cjs/types/connectors/injected-evm-connector/injectedEvmConnector.d.ts +2 -2
  85. package/dist/lib.cjs/types/connectors/injected-solana-connector/walletStandardConnector.d.ts +10 -7
  86. package/dist/lib.cjs/types/connectors/metamask-connector/metamaskConnector.d.ts +35 -3
  87. package/dist/lib.cjs/types/connectors/utils.d.ts +2 -0
  88. package/dist/lib.cjs/types/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.d.ts +0 -1
  89. package/dist/lib.cjs/types/connectors/wallet-connect-v2-connector/walletConnectV2Utils.d.ts +1 -5
  90. package/dist/lib.cjs/types/connectors/wallet-connect-v2-connector/wcSolanaWallet.d.ts +26 -0
  91. package/dist/lib.cjs/types/noModal.d.ts +12 -8
  92. package/dist/lib.cjs/types/plugins/wallet-services-plugin/plugin.d.ts +1 -4
  93. package/dist/lib.cjs/types/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.d.ts +4 -4
  94. package/dist/lib.cjs/types/providers/base-provider/jrpcClient.d.ts +2 -5
  95. package/dist/lib.cjs/types/providers/base-provider/utils.d.ts +0 -1
  96. package/dist/lib.cjs/types/providers/ethereum-provider/index.d.ts +0 -1
  97. package/dist/lib.cjs/types/providers/ethereum-provider/rpc/ethRpcMiddlewares.d.ts +4 -4
  98. package/dist/lib.cjs/types/providers/ethereum-provider/rpc/index.d.ts +1 -1
  99. package/dist/lib.cjs/types/providers/ethereum-provider/rpc/interfaces.d.ts +6 -0
  100. package/dist/lib.cjs/types/providers/ethereum-provider/rpc/jrpcClient.d.ts +2 -5
  101. package/dist/lib.cjs/types/providers/ethereum-provider/rpc/walletMiddleware.d.ts +3 -0
  102. package/dist/lib.cjs/types/providers/index.d.ts +0 -1
  103. package/dist/lib.cjs/types/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.d.ts +0 -1
  104. package/dist/lib.cjs/types/providers/xrpl-provider/rpc/JrpcClient.d.ts +3 -7
  105. package/dist/lib.cjs/types/providers/xrpl-provider/rpc/xrplRpcMiddlewares.d.ts +5 -12
  106. package/dist/lib.cjs/types/react/context/index.d.ts +4 -0
  107. package/dist/lib.cjs/types/react/context/useWalletServicesContextValue.d.ts +12 -0
  108. package/dist/lib.cjs/types/react/context/useWeb3AuthInnerContextValue.d.ts +26 -0
  109. package/dist/lib.cjs/types/react/hooks/index.d.ts +1 -1
  110. package/dist/lib.cjs/types/react/hooks/{useIdentityToken.d.ts → useAuthTokenInfo.d.ts} +4 -4
  111. package/dist/lib.cjs/types/react/hooks/useWeb3Auth.d.ts +1 -2
  112. package/dist/lib.cjs/types/react/hooks/useWeb3AuthConnect.d.ts +2 -2
  113. package/dist/lib.cjs/types/react/index.d.ts +1 -0
  114. package/dist/lib.cjs/types/react/solana/hooks/useSignAndSendTransaction.d.ts +7 -2
  115. package/dist/lib.cjs/types/react/solana/hooks/useSignTransaction.d.ts +8 -3
  116. package/dist/lib.cjs/types/react/solana/hooks/useSolanaWallet.d.ts +17 -4
  117. package/dist/lib.cjs/types/react/solana/index.d.ts +1 -0
  118. package/dist/lib.cjs/types/react/solana/provider.d.ts +26 -0
  119. package/dist/lib.cjs/types/vue/composables/index.d.ts +2 -1
  120. package/dist/lib.cjs/types/vue/composables/{useIdentityToken.d.ts → useAuthTokenInfo.d.ts} +3 -3
  121. package/dist/lib.cjs/types/vue/composables/useInjectedWeb3AuthInnerContext.d.ts +1 -0
  122. package/dist/lib.cjs/types/vue/composables/useWeb3Auth.d.ts +1 -2
  123. package/dist/lib.cjs/types/vue/composables/useWeb3AuthConnect.d.ts +2 -2
  124. package/dist/lib.cjs/types/vue/index.d.ts +2 -0
  125. package/dist/lib.cjs/types/vue/interfaces.d.ts +2 -2
  126. package/dist/lib.cjs/types/vue/solana/composables/index.d.ts +1 -0
  127. package/dist/lib.cjs/types/vue/solana/composables/useSignAndSendTransaction.d.ts +7 -2
  128. package/dist/lib.cjs/types/vue/solana/composables/useSignTransaction.d.ts +8 -3
  129. package/dist/lib.cjs/types/vue/solana/composables/useSolanaClient.d.ts +7 -0
  130. package/dist/lib.cjs/types/vue/solana/composables/useSolanaWallet.d.ts +17 -4
  131. package/dist/lib.cjs/types/vue/solana/constants.d.ts +3 -0
  132. package/dist/lib.cjs/types/vue/solana/index.d.ts +2 -0
  133. package/dist/lib.cjs/types/vue/solana/provider.d.ts +8 -0
  134. package/dist/lib.cjs/types/vue/useWalletServicesInnerContextValue.d.ts +13 -0
  135. package/dist/lib.cjs/types/vue/useWeb3AuthInnerContextValue.d.ts +26 -0
  136. package/dist/lib.cjs/types/x402/index.d.ts +43 -0
  137. package/dist/lib.cjs/types/x402/interfaces.d.ts +11 -0
  138. package/dist/lib.cjs/types/x402/react.d.ts +17 -0
  139. package/dist/lib.cjs/types/x402/vue.d.ts +18 -0
  140. package/dist/lib.cjs/vue/WalletServicesInnerProvider.js +9 -54
  141. package/dist/lib.cjs/vue/Web3AuthProvider.js +16 -177
  142. package/dist/lib.cjs/vue/composables/{useIdentityToken.js → useAuthTokenInfo.js} +10 -8
  143. package/dist/lib.cjs/vue/composables/useCheckout.js +4 -2
  144. package/dist/lib.cjs/vue/composables/useEnableMFA.js +4 -2
  145. package/dist/lib.cjs/vue/composables/useFunding.js +4 -2
  146. package/dist/lib.cjs/vue/composables/useInjectedWeb3AuthInnerContext.js +29 -0
  147. package/dist/lib.cjs/vue/composables/useManageMFA.js +4 -2
  148. package/dist/lib.cjs/vue/composables/useReceive.js +4 -2
  149. package/dist/lib.cjs/vue/composables/useSwap.js +4 -2
  150. package/dist/lib.cjs/vue/composables/useSwitchChain.js +4 -2
  151. package/dist/lib.cjs/vue/composables/useWalletConnectScanner.js +4 -2
  152. package/dist/lib.cjs/vue/composables/useWalletUI.js +4 -2
  153. package/dist/lib.cjs/vue/composables/useWeb3Auth.js +1 -26
  154. package/dist/lib.cjs/vue/composables/useWeb3AuthConnect.js +4 -2
  155. package/dist/lib.cjs/vue/composables/useWeb3AuthDisconnect.js +4 -2
  156. package/dist/lib.cjs/vue/composables/useWeb3AuthInner.js +2 -20
  157. package/dist/lib.cjs/vue/composables/useWeb3AuthUser.js +4 -2
  158. package/dist/lib.cjs/vue/index.js +8 -2
  159. package/dist/lib.cjs/vue/solana/composables/useSignAndSendTransaction.js +6 -3
  160. package/dist/lib.cjs/vue/solana/composables/useSignMessage.js +6 -3
  161. package/dist/lib.cjs/vue/solana/composables/useSignTransaction.js +6 -3
  162. package/dist/lib.cjs/vue/solana/composables/useSolanaClient.js +14 -0
  163. package/dist/lib.cjs/vue/solana/composables/useSolanaWallet.js +60 -41
  164. package/dist/lib.cjs/vue/solana/constants.js +5 -0
  165. package/dist/lib.cjs/vue/solana/index.js +6 -0
  166. package/dist/lib.cjs/vue/solana/provider.js +107 -0
  167. package/dist/lib.cjs/vue/useWalletServicesInnerContextValue.js +75 -0
  168. package/dist/lib.cjs/vue/useWeb3AuthInnerContextValue.js +217 -0
  169. package/dist/lib.cjs/vue/wagmi/provider.js +12 -8
  170. package/dist/lib.cjs/x402/index.js +175 -0
  171. package/dist/lib.cjs/x402/interfaces.js +5 -0
  172. package/dist/lib.cjs/x402/react.js +64 -0
  173. package/dist/lib.cjs/x402/vue.js +58 -0
  174. package/dist/lib.esm/base/connector/baseConnector.js +104 -2
  175. package/dist/lib.esm/base/connector/connectorStatus.js +2 -1
  176. package/dist/lib.esm/base/connector/constants.js +4 -2
  177. package/dist/lib.esm/base/connector/utils.js +1 -19
  178. package/dist/lib.esm/base/constants.js +4 -1
  179. package/dist/lib.esm/base/cookie.js +7 -20
  180. package/dist/lib.esm/base/errors/index.js +36 -12
  181. package/dist/lib.esm/base/utils.js +10 -7
  182. package/dist/lib.esm/base/wallet/index.js +2 -1
  183. package/dist/lib.esm/base/wallet/solana.js +81 -0
  184. package/dist/lib.esm/connectors/auth-connector/authConnector.js +143 -50
  185. package/dist/lib.esm/connectors/auth-connector/authSolanaWallet.js +175 -0
  186. package/dist/lib.esm/connectors/base-evm-connector/baseEvmConnector.js +17 -39
  187. package/dist/lib.esm/connectors/base-solana-connector/baseSolanaConnector.js +29 -55
  188. package/dist/lib.esm/connectors/coinbase-connector/coinbaseConnector.js +14 -11
  189. package/dist/lib.esm/connectors/injected-evm-connector/index.js +6 -1
  190. package/dist/lib.esm/connectors/injected-evm-connector/injectedEvmConnector.js +14 -11
  191. package/dist/lib.esm/connectors/injected-solana-connector/index.js +3 -2
  192. package/dist/lib.esm/connectors/injected-solana-connector/walletStandardConnector.js +19 -31
  193. package/dist/lib.esm/connectors/metamask-connector/metamaskConnector.js +335 -132
  194. package/dist/lib.esm/connectors/utils.js +9 -4
  195. package/dist/lib.esm/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +11 -30
  196. package/dist/lib.esm/connectors/wallet-connect-v2-connector/config.js +1 -1
  197. package/dist/lib.esm/connectors/wallet-connect-v2-connector/index.js +5 -1
  198. package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +70 -61
  199. package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Utils.js +37 -45
  200. package/dist/lib.esm/connectors/wallet-connect-v2-connector/wcSolanaWallet.js +130 -0
  201. package/dist/lib.esm/index.js +30 -38
  202. package/dist/lib.esm/noModal.js +225 -133
  203. package/dist/lib.esm/plugins/wallet-services-plugin/plugin.js +18 -37
  204. package/dist/lib.esm/providers/account-abstraction-provider/index.js +5 -1
  205. package/dist/lib.esm/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +9 -9
  206. package/dist/lib.esm/providers/account-abstraction-provider/providers/utils.js +3 -3
  207. package/dist/lib.esm/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +48 -45
  208. package/dist/lib.esm/providers/base-provider/CommonJRPCProvider.js +2 -4
  209. package/dist/lib.esm/providers/base-provider/commonPrivateKeyProvider.js +9 -12
  210. package/dist/lib.esm/providers/base-provider/index.js +6 -2
  211. package/dist/lib.esm/providers/base-provider/jrpcClient.js +20 -19
  212. package/dist/lib.esm/providers/base-provider/utils.js +1 -3
  213. package/dist/lib.esm/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +23 -36
  214. package/dist/lib.esm/providers/ethereum-provider/rpc/jrpcClient.js +20 -19
  215. package/dist/lib.esm/providers/ethereum-provider/rpc/walletMiddleware.js +201 -0
  216. package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +6 -17
  217. package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.js +2 -1
  218. package/dist/lib.esm/providers/xrpl-provider/rpc/JrpcClient.js +21 -25
  219. package/dist/lib.esm/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +48 -38
  220. package/dist/lib.esm/react/context/WalletServicesInnerContext.js +3 -57
  221. package/dist/lib.esm/react/context/Web3AuthInnerContext.js +7 -152
  222. package/dist/lib.esm/react/context/useWalletServicesContextValue.js +59 -0
  223. package/dist/lib.esm/react/context/useWeb3AuthInnerContextValue.js +188 -0
  224. package/dist/lib.esm/react/hooks/{useIdentityToken.js → useAuthTokenInfo.js} +6 -7
  225. package/dist/lib.esm/react/hooks/useWalletServicesPlugin.js +3 -10
  226. package/dist/lib.esm/react/hooks/useWeb3Auth.js +1 -22
  227. package/dist/lib.esm/react/index.js +5 -1
  228. package/dist/lib.esm/react/solana/hooks/useSignAndSendTransaction.js +6 -4
  229. package/dist/lib.esm/react/solana/hooks/useSignMessage.js +4 -2
  230. package/dist/lib.esm/react/solana/hooks/useSignTransaction.js +6 -3
  231. package/dist/lib.esm/react/solana/hooks/useSolanaWallet.js +33 -28
  232. package/dist/lib.esm/react/solana/index.js +1 -0
  233. package/dist/lib.esm/react/solana/provider.js +150 -0
  234. package/dist/lib.esm/react/wagmi/provider.js +7 -7
  235. package/dist/lib.esm/vue/WalletServicesInnerProvider.js +4 -54
  236. package/dist/lib.esm/vue/Web3AuthProvider.js +7 -179
  237. package/dist/lib.esm/vue/composables/{useIdentityToken.js → useAuthTokenInfo.js} +6 -6
  238. package/dist/lib.esm/vue/composables/useInjectedWeb3AuthInnerContext.js +11 -0
  239. package/dist/lib.esm/vue/composables/useWeb3Auth.js +1 -26
  240. package/dist/lib.esm/vue/composables/useWeb3AuthInner.js +2 -6
  241. package/dist/lib.esm/vue/index.js +5 -2
  242. package/dist/lib.esm/vue/solana/composables/useSignAndSendTransaction.js +2 -1
  243. package/dist/lib.esm/vue/solana/composables/useSignMessage.js +2 -1
  244. package/dist/lib.esm/vue/solana/composables/useSignTransaction.js +3 -2
  245. package/dist/lib.esm/vue/solana/composables/useSolanaClient.js +12 -0
  246. package/dist/lib.esm/vue/solana/composables/useSolanaWallet.js +53 -35
  247. package/dist/lib.esm/vue/solana/constants.js +3 -0
  248. package/dist/lib.esm/vue/solana/index.js +3 -0
  249. package/dist/lib.esm/vue/solana/provider.js +95 -0
  250. package/dist/lib.esm/vue/useWalletServicesInnerContextValue.js +58 -0
  251. package/dist/lib.esm/vue/useWeb3AuthInnerContextValue.js +204 -0
  252. package/dist/lib.esm/vue/wagmi/provider.js +9 -7
  253. package/dist/lib.esm/x402/index.js +170 -0
  254. package/dist/lib.esm/x402/interfaces.js +3 -0
  255. package/dist/lib.esm/x402/react.js +59 -0
  256. package/dist/lib.esm/x402/vue.js +54 -0
  257. package/package.json +78 -53
  258. package/dist/lib.cjs/providers/ethereum-mpc-provider/index.js +0 -7
  259. package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +0 -223
  260. package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +0 -177
  261. package/dist/lib.cjs/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +0 -21
  262. package/dist/lib.cjs/providers/ethereum-provider/providers/converter.js +0 -88
  263. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.js +0 -27
  264. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +0 -383
  265. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +0 -8
  266. package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +0 -93
  267. package/dist/lib.cjs/providers/ethereum-provider/providers/utils.js +0 -29
  268. package/dist/lib.cjs/providers/ethereum-provider/rpc/walletMidddleware.js +0 -171
  269. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +0 -65
  270. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +0 -45
  271. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/utils.js +0 -16
  272. package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +0 -103
  273. package/dist/lib.cjs/providers/solana-provider/rpc/JrpcClient.js +0 -47
  274. package/dist/lib.cjs/providers/solana-provider/rpc/solanaRpcMiddlewares.js +0 -97
  275. package/dist/lib.cjs/providers/solana-provider/solanaWallet.js +0 -91
  276. package/dist/lib.cjs/types/connectors/injected-solana-connector/utils.d.ts +0 -3
  277. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/index.d.ts +0 -1
  278. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/providers/index.d.ts +0 -1
  279. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.d.ts +0 -74
  280. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/providers/signingProviders/index.d.ts +0 -1
  281. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.d.ts +0 -12
  282. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.d.ts +0 -3
  283. package/dist/lib.cjs/types/providers/ethereum-mpc-provider/rpc/interfaces.d.ts +0 -15
  284. package/dist/lib.cjs/types/providers/ethereum-provider/providers/converter.d.ts +0 -14
  285. package/dist/lib.cjs/types/providers/ethereum-provider/providers/index.d.ts +0 -1
  286. package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.d.ts +0 -16
  287. package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.d.ts +0 -28
  288. package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/index.d.ts +0 -4
  289. package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.d.ts +0 -46
  290. package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.d.ts +0 -11
  291. package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/index.d.ts +0 -1
  292. package/dist/lib.cjs/types/providers/ethereum-provider/providers/utils.d.ts +0 -5
  293. package/dist/lib.cjs/types/providers/ethereum-provider/rpc/walletMidddleware.d.ts +0 -3
  294. package/dist/lib.cjs/types/providers/solana-provider/index.d.ts +0 -4
  295. package/dist/lib.cjs/types/providers/solana-provider/interface.d.ts +0 -22
  296. package/dist/lib.cjs/types/providers/solana-provider/providers/index.d.ts +0 -1
  297. package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.d.ts +0 -16
  298. package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/base/providerHandlers.d.ts +0 -3
  299. package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/index.d.ts +0 -2
  300. package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/utils.d.ts +0 -3
  301. package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/walletStandardProvider.d.ts +0 -9
  302. package/dist/lib.cjs/types/providers/solana-provider/rpc/JrpcClient.d.ts +0 -9
  303. package/dist/lib.cjs/types/providers/solana-provider/rpc/index.d.ts +0 -3
  304. package/dist/lib.cjs/types/providers/solana-provider/rpc/interfaces.d.ts +0 -27
  305. package/dist/lib.cjs/types/providers/solana-provider/rpc/solanaRpcMiddlewares.d.ts +0 -20
  306. package/dist/lib.cjs/types/providers/solana-provider/solanaWallet.d.ts +0 -29
  307. package/dist/lib.esm/providers/ethereum-mpc-provider/index.js +0 -1
  308. package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +0 -206
  309. package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +0 -163
  310. package/dist/lib.esm/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +0 -20
  311. package/dist/lib.esm/providers/ethereum-provider/providers/converter.js +0 -85
  312. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.js +0 -21
  313. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +0 -378
  314. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +0 -8
  315. package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +0 -88
  316. package/dist/lib.esm/providers/ethereum-provider/providers/utils.js +0 -24
  317. package/dist/lib.esm/providers/ethereum-provider/rpc/walletMidddleware.js +0 -177
  318. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +0 -47
  319. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +0 -43
  320. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/utils.js +0 -14
  321. package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +0 -91
  322. package/dist/lib.esm/providers/solana-provider/rpc/JrpcClient.js +0 -42
  323. package/dist/lib.esm/providers/solana-provider/rpc/solanaRpcMiddlewares.js +0 -89
  324. package/dist/lib.esm/providers/solana-provider/solanaWallet.js +0 -92
  325. package/dist/noModal.umd.min.js +0 -2
  326. package/dist/noModal.umd.min.js.LICENSE.txt +0 -50
@@ -1,20 +1,22 @@
1
1
  import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
2
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
3
+ import { CITADEL_SERVER_MAP } from '@toruslabs/constants';
4
+ import { put } from '@toruslabs/http-helpers';
3
5
  import { SecurePubSub } from '@toruslabs/secure-pub-sub';
4
- import { BUILD_ENV, UX_MODE, Auth, SDK_MODE, SUPPORTED_KEY_CURVES, randomId, version, createHandler, PopupHandler, getUserId } from '@web3auth/auth';
6
+ import { BUILD_ENV, UX_MODE, Auth, SDK_MODE, SUPPORTED_KEY_CURVES, generateRecordId, version, createHandler, PopupHandler, getUserId } from '@web3auth/auth';
5
7
  import { WS_EMBED_LOGIN_MODE } from '@web3auth/ws-embed';
6
8
  import deepmerge from 'deepmerge';
7
- import { parseToken } from '../utils.js';
9
+ import { generateNonce, parseToken } from '../utils.js';
10
+ import { AuthSolanaWallet } from './authSolanaWallet.js';
8
11
  import { BaseConnector } from '../../base/connector/baseConnector.js';
9
12
  import { WALLET_CONNECTORS } from '../../base/wallet/index.js';
10
13
  import { CONNECTOR_NAMESPACES } from '../../base/chain/IChainInterface.js';
11
14
  import { CONNECTOR_CATEGORY, CONNECTOR_STATUS, CONNECTOR_EVENTS } from '../../base/connector/constants.js';
12
15
  import { WalletInitializationError, WalletLoginError, Web3AuthError } from '../../base/errors/index.js';
13
16
  import { log } from '../../base/loglevel.js';
17
+ import { getCaipChainId } from '../../base/utils.js';
14
18
  import { CONNECTED_STATUSES } from '../../base/connector/connectorStatus.js';
15
19
  import { CHAIN_NAMESPACES, cloneDeep } from '@toruslabs/base-controllers';
16
- import '@toruslabs/constants';
17
- import '@toruslabs/http-helpers';
18
20
 
19
21
  class AuthConnector extends BaseConnector {
20
22
  constructor(params) {
@@ -33,6 +35,7 @@ class AuthConnector extends BaseConnector {
33
35
  _defineProperty(this, "wsEmbedInstance", null);
34
36
  _defineProperty(this, "authConnectionConfig", []);
35
37
  _defineProperty(this, "wsEmbedInstancePromise", null);
38
+ _defineProperty(this, "_solanaWallet", null);
36
39
  this.authOptions = params.connectorSettings;
37
40
  this.loginSettings = params.loginSettings || {
38
41
  authConnection: ""
@@ -54,6 +57,9 @@ class AuthConnector extends BaseConnector {
54
57
  get wsEmbed() {
55
58
  return this.wsEmbedInstance;
56
59
  }
60
+ get solanaWallet() {
61
+ return this._solanaWallet;
62
+ }
57
63
  set provider(_) {
58
64
  throw new Error("Not implemented");
59
65
  }
@@ -88,7 +94,7 @@ class AuthConnector extends BaseConnector {
88
94
  // making it async here to initialize provider.
89
95
  const authInstancePromise = this.authInstance.init();
90
96
 
91
- // Use this for xrpl, mpc cases
97
+ // Use this for xrpl cases
92
98
  if (this.coreOptions.privateKeyProvider) {
93
99
  this.privateKeyProvider = this.coreOptions.privateKeyProvider;
94
100
  } else {
@@ -110,6 +116,7 @@ class AuthConnector extends BaseConnector {
110
116
  loginMode: WS_EMBED_LOGIN_MODE.PLUGIN,
111
117
  chains: wsSupportedChains,
112
118
  chainId,
119
+ buildEnv: this.authOptions.buildEnv,
113
120
  whiteLabel: _objectSpread(_objectSpread({}, this.authOptions.whiteLabel), this.wsSettings.whiteLabel)
114
121
  })).then(() => {
115
122
  this.wsEmbedInstancePromise = null;
@@ -148,7 +155,7 @@ class AuthConnector extends BaseConnector {
148
155
  this.rehydrated = true;
149
156
  await this.connect({
150
157
  chainId: options.chainId,
151
- getIdentityToken: options.getIdentityToken
158
+ getAuthTokenInfo: options.getAuthTokenInfo
152
159
  });
153
160
  } else if (!sessionId && options.autoConnect) {
154
161
  // if here, this means that the connector is cached but the sessionId is not available.
@@ -168,7 +175,11 @@ class AuthConnector extends BaseConnector {
168
175
  }));
169
176
  try {
170
177
  await this.connectWithProvider(params);
171
- return this.provider;
178
+ return {
179
+ ethereumProvider: this.provider,
180
+ solanaWallet: this._solanaWallet,
181
+ connectorName: this.name
182
+ };
172
183
  } catch (error) {
173
184
  var _message;
174
185
  log.error("Failed to connect with auth provider", error);
@@ -233,9 +244,10 @@ class AuthConnector extends BaseConnector {
233
244
  this.status = CONNECTOR_STATUS.READY;
234
245
  }
235
246
  this.rehydrated = false;
247
+ this._solanaWallet = null;
236
248
  this.emit(CONNECTOR_EVENTS.DISCONNECTED);
237
249
  }
238
- async getIdentityToken() {
250
+ async getAuthTokenInfo() {
239
251
  if (!this.canAuthorize) throw WalletLoginError.notConnectedError("Not connected with wallet, Please login/connect first");
240
252
  this.status = CONNECTOR_STATUS.AUTHORIZING;
241
253
  this.emit(CONNECTOR_EVENTS.AUTHORIZING, {
@@ -243,14 +255,19 @@ class AuthConnector extends BaseConnector {
243
255
  });
244
256
  const userInfo = await this.getUserInfo();
245
257
  this.status = CONNECTOR_STATUS.AUTHORIZED;
258
+ const [accessToken, refreshToken] = await Promise.all([this.authInstance.authSessionManager.getAccessToken(), this.authInstance.authSessionManager.getRefreshToken()]);
246
259
  this.emit(CONNECTOR_EVENTS.AUTHORIZED, {
247
260
  connector: WALLET_CONNECTORS.AUTH,
248
- identityTokenInfo: {
249
- idToken: userInfo.idToken
261
+ authTokenInfo: {
262
+ idToken: userInfo.idToken,
263
+ accessToken,
264
+ refreshToken
250
265
  }
251
266
  });
252
267
  return {
253
- idToken: userInfo.idToken
268
+ idToken: userInfo.idToken,
269
+ accessToken,
270
+ refreshToken
254
271
  };
255
272
  }
256
273
  async getUserInfo() {
@@ -259,41 +276,29 @@ class AuthConnector extends BaseConnector {
259
276
  const userInfo = this.authInstance.getUserInfo();
260
277
  return userInfo;
261
278
  }
262
-
263
- // we don't support switching between different namespaces, except for solana and evm
264
279
  async switchChain(params, init = false) {
265
280
  super.checkSwitchChainRequirements(params, init);
266
- // get chains and namespaces
267
281
  const {
268
282
  chainId: newChainId
269
283
  } = params;
270
284
  const {
271
285
  chainId: currentChainId
272
286
  } = this.provider;
273
- const {
274
- chainNamespace: currentNamespace
275
- } = this.getChain(currentChainId);
276
- const {
277
- chainNamespace: newNamespace
278
- } = this.getChain(newChainId);
279
-
280
- // skip if chainId is the same
281
287
  if (currentChainId === newChainId) return;
282
- if (currentNamespace === CHAIN_NAMESPACES.SOLANA || currentNamespace === CHAIN_NAMESPACES.EIP155) {
288
+ const newChainConfig = this.coreOptions.chains.find(c => c.chainId === newChainId);
289
+ if (!newChainConfig) throw WalletInitializationError.invalidParams("Chain config is not available");
290
+ if (newChainConfig.chainNamespace === CHAIN_NAMESPACES.SOLANA || newChainConfig.chainNamespace === CHAIN_NAMESPACES.EIP155) {
283
291
  var _this$wsEmbedInstance2;
284
- // can only switch to solana or evm
285
- if (newNamespace !== CHAIN_NAMESPACES.SOLANA && newNamespace !== CHAIN_NAMESPACES.EIP155) throw WalletLoginError.connectionError("Cannot switch to other chain namespace");
286
- const fullChainId = `${newNamespace}:${Number(params.chainId)}`;
287
- await ((_this$wsEmbedInstance2 = this.wsEmbedInstance.provider) === null || _this$wsEmbedInstance2 === void 0 ? void 0 : _this$wsEmbedInstance2.request({
292
+ if (!((_this$wsEmbedInstance2 = this.wsEmbedInstance) !== null && _this$wsEmbedInstance2 !== void 0 && _this$wsEmbedInstance2.provider)) throw WalletInitializationError.notReady("Wallet embed is not ready");
293
+ const fullChainId = getCaipChainId(newChainConfig);
294
+ await this.wsEmbedInstance.provider.request({
288
295
  method: "wallet_switchChain",
289
296
  params: {
290
297
  chainId: fullChainId
291
298
  }
292
- }));
299
+ });
293
300
  } else {
294
301
  var _this$privateKeyProvi;
295
- // cannot switch to other namespaces
296
- if (currentNamespace !== newNamespace) throw WalletLoginError.connectionError("Cannot switch to other chain namespace");
297
302
  await ((_this$privateKeyProvi = this.privateKeyProvider) === null || _this$privateKeyProvi === void 0 ? void 0 : _this$privateKeyProvi.switchChain(params));
298
303
  }
299
304
  }
@@ -322,8 +327,10 @@ class AuthConnector extends BaseConnector {
322
327
  });
323
328
  return providerConfig;
324
329
  }
325
- getChain(chainId) {
326
- return this.coreOptions.chains.find(x => x.chainId === chainId);
330
+ setupSolanaWallet() {
331
+ const solanaChains = this.coreOptions.chains.filter(c => c.chainNamespace === CHAIN_NAMESPACES.SOLANA);
332
+ if (solanaChains.length === 0 || !this.provider) return;
333
+ this._solanaWallet = new AuthSolanaWallet(this.provider, solanaChains);
327
334
  }
328
335
  _getFinalPrivKey() {
329
336
  if (!this.authInstance) return "";
@@ -384,24 +391,26 @@ class AuthConnector extends BaseConnector {
384
391
  sessionNamespace
385
392
  } = this.authInstance || {};
386
393
  if (sessionId) {
387
- const isLoggedIn = await this.wsEmbedInstance.loginWithSessionId({
394
+ this.wsEmbedInstance.setAccessTokenProvider(this.accessTokenProvider.bind(this));
395
+ const isLoggedIn = await this.wsEmbedInstance.connectWithSession({
388
396
  sessionId,
389
- sessionNamespace
397
+ sessionNamespace,
398
+ idToken: await this.getIdToken()
390
399
  });
391
400
  if (isLoggedIn) {
392
401
  var _this$wsEmbedInstance3;
393
- // if getIdentityToken is true, then get the identity token
394
- // No need to get the identity token for auth connector as it is already handled
395
- let identityTokenInfo;
402
+ this.setupSolanaWallet();
403
+ // if getAuthTokenInfo is true, then get auth token info
404
+ // No need to get auth token info for auth connector as it is already handled
396
405
  this.status = CONNECTOR_STATUS.CONNECTED;
397
406
  this.emit(CONNECTOR_EVENTS.CONNECTED, {
398
- connector: WALLET_CONNECTORS.AUTH,
407
+ connectorName: WALLET_CONNECTORS.AUTH,
399
408
  reconnected: this.rehydrated,
400
- provider: this.provider,
401
- identityTokenInfo
409
+ ethereumProvider: this.provider,
410
+ solanaWallet: this._solanaWallet
402
411
  });
403
- if (params.getIdentityToken) {
404
- identityTokenInfo = await this.getIdentityToken();
412
+ if (params.getAuthTokenInfo) {
413
+ await this.getAuthTokenInfo();
405
414
  }
406
415
  // handle disconnect from ws embed
407
416
  (_this$wsEmbedInstance3 = this.wsEmbedInstance) === null || _this$wsEmbedInstance3 === void 0 || _this$wsEmbedInstance3.provider.on("accountsChanged", (accounts = []) => {
@@ -418,9 +427,10 @@ class AuthConnector extends BaseConnector {
418
427
  await this.privateKeyProvider.setupProvider(finalPrivKey, params.chainId);
419
428
  this.status = CONNECTOR_STATUS.CONNECTED;
420
429
  this.emit(CONNECTOR_EVENTS.CONNECTED, {
421
- connector: WALLET_CONNECTORS.AUTH,
422
- reconnected: this.rehydrated,
423
- provider: this.provider
430
+ connectorName: WALLET_CONNECTORS.AUTH,
431
+ ethereumProvider: this.provider,
432
+ solanaWallet: this._solanaWallet,
433
+ reconnected: this.rehydrated
424
434
  });
425
435
  }
426
436
  }
@@ -436,10 +446,13 @@ class AuthConnector extends BaseConnector {
436
446
  const jwtParams = _objectSpread(_objectSpread(_objectSpread({}, providerConfig.jwtParameters || {}), params.extraLoginOptions || {}), {}, {
437
447
  login_hint: params.loginHint || ((_params$extraLoginOpt3 = params.extraLoginOptions) === null || _params$extraLoginOpt3 === void 0 ? void 0 : _params$extraLoginOpt3.login_hint)
438
448
  });
439
- const nonce = randomId();
449
+ const nonce = generateNonce();
440
450
 
441
451
  // post a message to the auth provider to indicate that login has been initiated.
442
- const loginParams = cloneDeep(params);
452
+ const loginParams = _objectSpread(_objectSpread({}, cloneDeep(params)), {}, {
453
+ recordId: generateRecordId(),
454
+ loginSource: "web3auth-web"
455
+ });
443
456
  loginParams.extraLoginOptions = _objectSpread(_objectSpread({}, loginParams.extraLoginOptions || {}), {}, {
444
457
  login_hint: params.loginHint || ((_params$extraLoginOpt4 = params.extraLoginOptions) === null || _params$extraLoginOpt4 === void 0 ? void 0 : _params$extraLoginOpt4.login_hint)
445
458
  });
@@ -462,10 +475,11 @@ class AuthConnector extends BaseConnector {
462
475
  version: version.split(".")[0],
463
476
  web3AuthNetwork: this.coreOptions.web3AuthNetwork,
464
477
  web3AuthClientId: this.coreOptions.clientId,
465
- originData: this.authInstance.options.originData ? JSON.stringify(this.authInstance.options.originData) : undefined
478
+ originData: this.getOriginData()
466
479
  },
467
480
  web3AuthClientId: this.coreOptions.clientId,
468
- web3AuthNetwork: this.coreOptions.web3AuthNetwork
481
+ web3AuthNetwork: this.coreOptions.web3AuthNetwork,
482
+ storageServerUrl: this.authInstance.options.storageServerUrl
469
483
  };
470
484
  const loginHandler = createHandler(popupParams);
471
485
  const verifierWindow = new PopupHandler({
@@ -474,6 +488,9 @@ class AuthConnector extends BaseConnector {
474
488
  });
475
489
  if (this.authOptions.uxMode === UX_MODE.REDIRECT) return verifierWindow.redirect(this.authOptions.replaceUrlOnRedirect);
476
490
  let isClosedWindow = false;
491
+ this.auditOAuditProgress(loginParams).catch(error => {
492
+ log.error("Error reporting `oauthInitiated` audit progress", error);
493
+ });
477
494
  return new Promise((resolve, reject) => {
478
495
  verifierWindow.open().catch(error => {
479
496
  log.error("Error during login with social", error);
@@ -483,7 +500,9 @@ class AuthConnector extends BaseConnector {
483
500
 
484
501
  // this is to close the popup when the login is finished.
485
502
  const securePubSub = new SecurePubSub({
486
- sameIpCheck: true
503
+ sameIpCheck: true,
504
+ serverUrl: this.authInstance.options.storageServerUrl,
505
+ socketUrl: this.authInstance.options.sessionSocketUrl
487
506
  });
488
507
  securePubSub.subscribe(`web3auth-login-${nonce}`).then(data => {
489
508
  const parsedData = JSON.parse(data || "{}");
@@ -500,6 +519,9 @@ class AuthConnector extends BaseConnector {
500
519
  }).catch(error => {
501
520
  // swallow the error, dont need to throw.
502
521
  log.error("Error during login with social", error);
522
+ this.auditOAuditProgress(loginParams, "failed").catch(error => {
523
+ log.error("Error reporting `oauthFailed` audit progress", error);
524
+ });
503
525
  });
504
526
  verifierWindow.once("close", () => {
505
527
  if (!isClosedWindow) {
@@ -509,6 +531,9 @@ class AuthConnector extends BaseConnector {
509
531
  }
510
532
  });
511
533
  this.authInstance.postLoginInitiatedMessage(loginParams, nonce).then(resolve).catch(error => {
534
+ this.auditOAuditProgress(loginParams, "failed").catch(error => {
535
+ log.error("Error reporting `oauthFailed` audit progress", error);
536
+ });
512
537
  if (error instanceof Web3AuthError) {
513
538
  throw error;
514
539
  }
@@ -516,6 +541,39 @@ class AuthConnector extends BaseConnector {
516
541
  });
517
542
  });
518
543
  }
544
+ async accessTokenProvider({
545
+ forceRefresh
546
+ }) {
547
+ if (forceRefresh) {
548
+ await this.authInstance.refreshSession();
549
+ }
550
+ return this.authInstance.getAccessToken();
551
+ }
552
+ async getIdToken() {
553
+ if (!this.authInstance) throw WalletInitializationError.notReady("authInstance is not ready");
554
+ return this.authInstance.authSessionManager.getIdToken();
555
+ }
556
+ getOriginData() {
557
+ try {
558
+ const {
559
+ originData,
560
+ redirectUrl
561
+ } = this.authInstance.options;
562
+ const origin = new URL(redirectUrl).origin;
563
+ if (originData) {
564
+ const dappOriginData = originData[origin];
565
+ if (dappOriginData) {
566
+ return JSON.stringify({
567
+ [origin]: dappOriginData
568
+ });
569
+ }
570
+ }
571
+ return undefined;
572
+ } catch (error) {
573
+ log.error("Error getting origin data", error);
574
+ return undefined;
575
+ }
576
+ }
519
577
  connectWithJwtLogin(params) {
520
578
  var _params$extraLoginOpt5, _params$extraLoginOpt7;
521
579
  const loginConfig = this.getOAuthProviderConfig({
@@ -556,6 +614,41 @@ class AuthConnector extends BaseConnector {
556
614
  delete loginParams.chainId;
557
615
  return this.authInstance.postLoginInitiatedMessage(loginParams);
558
616
  }
617
+ async auditOAuditProgress(loginParams, status) {
618
+ const {
619
+ authConnection,
620
+ authConnectionId,
621
+ groupedAuthConnectionId,
622
+ recordId,
623
+ loginSource
624
+ } = loginParams;
625
+ const {
626
+ authBuildEnv = BUILD_ENV.PRODUCTION,
627
+ web3AuthNetwork,
628
+ clientId
629
+ } = this.coreOptions;
630
+ const auditServerUrl = `${CITADEL_SERVER_MAP[authBuildEnv]}/v1/auth/audit`;
631
+ const progressFlag = {
632
+ oauthInitiated: true
633
+ };
634
+ const auditPayload = _objectSpread({
635
+ authConnection,
636
+ authConnectionId,
637
+ groupedAuthConnectionId,
638
+ recordId,
639
+ source: loginSource,
640
+ web3AuthNetwork,
641
+ web3AuthClientId: clientId
642
+ }, progressFlag);
643
+ if (status === "failed") {
644
+ auditPayload.oauthFailed = true;
645
+ } else if (status === "completed") {
646
+ auditPayload.oauthCompleted = true;
647
+ } else {
648
+ auditPayload.oauthInitiated = true;
649
+ }
650
+ await put(auditServerUrl, auditPayload);
651
+ }
559
652
  }
560
653
  const authConnector = params => {
561
654
  return ({
@@ -0,0 +1,175 @@
1
+ import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
3
+ import { getBase64EncodedWireTransaction, getBase64Decoder, getBase58Encoder, getTransactionDecoder, getBase64Encoder } from '@solana/kit';
4
+ import { SolanaSignTransaction, SolanaSignMessage, SolanaSignAndSendTransaction } from '@solana/wallet-standard-features';
5
+ import { StandardEvents, StandardDisconnect, StandardConnect } from '@wallet-standard/features';
6
+ import { SOLANA_METHOD_TYPES } from '@web3auth/ws-embed';
7
+ import { WEB3AUTH_ICON } from '../../base/wallet/index.js';
8
+ import { WalletLoginError } from '../../base/errors/index.js';
9
+ import { getSolanaChainByChainConfig } from '../../base/wallet/solana.js';
10
+ import { SOLANA_CAIP_CHAIN_MAP } from '../../base/constants.js';
11
+
12
+ const base58Encoder = getBase58Encoder();
13
+ const base64Decoder = getBase64Decoder();
14
+ const base64Encoder = getBase64Encoder();
15
+ const transactionDecoder = getTransactionDecoder();
16
+ const ACCOUNT_FEATURES = [SolanaSignAndSendTransaction, SolanaSignMessage, SolanaSignTransaction];
17
+ function solanaWalletChainsFromConfigs(solanaChainConfigs) {
18
+ const ids = solanaChainConfigs.map(getSolanaChainByChainConfig).filter(id => id != null);
19
+ const unique = [...new Set(ids)];
20
+ return unique;
21
+ }
22
+ const SOLANA_PROVIDER_HEX_CHAIN_IDS = new Set(Object.keys(SOLANA_CAIP_CHAIN_MAP).map(id => id.toLowerCase()));
23
+
24
+ /**
25
+ * AuthSolanaWallet implements the Wallet Standard interface, wrapping a JRPC provider.
26
+ * Used by AuthConnector so consumers get a standards-compliant Wallet from `connection.solanaWallet`.
27
+ *
28
+ * {@link Wallet.accounts} is synchronous in the Wallet Standard; it returns `[]` until accounts have been loaded
29
+ * (`null` internally). The first async operation ({@link StandardConnect}, sign, etc.) calls `ensureAccountsLoaded`, which
30
+ * requires {@link IProvider.chainId} to be a configured Solana network (see {@link SOLANA_CAIP_CHAIN_MAP}) before {@link SOLANA_METHOD_TYPES.GET_ACCOUNTS}.
31
+ */
32
+ class AuthSolanaWallet {
33
+ /**
34
+ * @param solanaChainConfigs - All configured Solana {@link CustomChainConfig} entries (same namespace).
35
+ */
36
+ constructor(_provider, solanaChainConfigs) {
37
+ this._provider = _provider;
38
+ _defineProperty(this, "version", "1.0.0");
39
+ _defineProperty(this, "name", "Web3Auth");
40
+ _defineProperty(this, "icon", WEB3AUTH_ICON);
41
+ _defineProperty(this, "chains", void 0);
42
+ _defineProperty(this, "features", void 0);
43
+ _defineProperty(this, "_accounts", null);
44
+ _defineProperty(this, "_listeners", {});
45
+ this.chains = solanaWalletChainsFromConfigs(solanaChainConfigs);
46
+ this.features = {
47
+ [StandardConnect]: {
48
+ version: "1.0.0",
49
+ connect: async () => {
50
+ await this.ensureAccountsLoaded();
51
+ return {
52
+ accounts: this.accounts
53
+ };
54
+ }
55
+ },
56
+ [StandardDisconnect]: {
57
+ version: "1.0.0",
58
+ disconnect: async () => {}
59
+ },
60
+ [StandardEvents]: {
61
+ version: "1.0.0",
62
+ on: (event, listener) => {
63
+ var _this$_listeners, _this$_listeners$even;
64
+ ((_this$_listeners$even = (_this$_listeners = this._listeners)[event]) !== null && _this$_listeners$even !== void 0 ? _this$_listeners$even : _this$_listeners[event] = new Set()).add(listener);
65
+ return () => this._listeners[event].delete(listener);
66
+ }
67
+ },
68
+ [SolanaSignAndSendTransaction]: {
69
+ version: "1.0.0",
70
+ supportedTransactionVersions: ["legacy", 0],
71
+ signAndSendTransaction: async (...inputs) => {
72
+ await this.ensureAccountsLoaded();
73
+ return Promise.all(inputs.map(async input => {
74
+ const base64Tx = base64Decoder.decode(input.transaction);
75
+ const signature = await this._provider.request({
76
+ method: SOLANA_METHOD_TYPES.SEND_TRANSACTION,
77
+ params: {
78
+ message: base64Tx
79
+ }
80
+ });
81
+ return {
82
+ signature: new Uint8Array(base58Encoder.encode(signature))
83
+ };
84
+ }));
85
+ }
86
+ },
87
+ [SolanaSignMessage]: {
88
+ version: "1.0.0",
89
+ signMessage: async (...inputs) => {
90
+ await this.ensureAccountsLoaded();
91
+ return Promise.all(inputs.map(async input => {
92
+ const message = new TextDecoder().decode(input.message);
93
+ const signature = await this._provider.request({
94
+ method: SOLANA_METHOD_TYPES.SIGN_MESSAGE,
95
+ params: {
96
+ data: message,
97
+ from: input.account.address
98
+ }
99
+ });
100
+ return {
101
+ signedMessage: new Uint8Array(input.message),
102
+ signature: new Uint8Array(base58Encoder.encode(signature))
103
+ };
104
+ }));
105
+ }
106
+ },
107
+ [SolanaSignTransaction]: {
108
+ version: "1.0.0",
109
+ supportedTransactionVersions: ["legacy", 0],
110
+ signTransaction: async (...inputs) => {
111
+ await this.ensureAccountsLoaded();
112
+ return Promise.all(inputs.map(async input => {
113
+ const base64Tx = base64Decoder.decode(input.transaction);
114
+ const signatureBase58 = await this._provider.request({
115
+ method: SOLANA_METHOD_TYPES.SIGN_TRANSACTION,
116
+ params: {
117
+ message: base64Tx
118
+ }
119
+ });
120
+ const sigBytes = new Uint8Array(base58Encoder.encode(signatureBase58));
121
+ const decodedTx = transactionDecoder.decode(input.transaction);
122
+ const signedTx = _objectSpread(_objectSpread({}, decodedTx), {}, {
123
+ signatures: _objectSpread(_objectSpread({}, decodedTx.signatures), {}, {
124
+ [input.account.address]: sigBytes
125
+ })
126
+ });
127
+ const signedBase64 = getBase64EncodedWireTransaction(signedTx);
128
+ return {
129
+ signedTransaction: new Uint8Array(base64Encoder.encode(signedBase64))
130
+ };
131
+ }));
132
+ }
133
+ }
134
+ };
135
+ }
136
+
137
+ /**
138
+ * Wallet Standard requires a synchronous getter; RPC runs on first async wallet operation instead.
139
+ */
140
+ get accounts() {
141
+ var _this$_accounts;
142
+ return (_this$_accounts = this._accounts) !== null && _this$_accounts !== void 0 ? _this$_accounts : [];
143
+ }
144
+
145
+ /** Throws if the embed is not on Solana; otherwise loads accounts once via {@link SOLANA_METHOD_TYPES.GET_ACCOUNTS}. */
146
+ async ensureAccountsLoaded() {
147
+ var _await$this$_provider;
148
+ // assert solana chain
149
+ const chainId = this._provider.chainId;
150
+ if (!SOLANA_PROVIDER_HEX_CHAIN_IDS.has(chainId.toLowerCase())) throw WalletLoginError.unsupportedOperation(`Solana wallet operations require the embedded provider to be on a Solana network (current chainId: ${chainId}). Switch chain first.`);
151
+ if (this._accounts !== null) return;
152
+ const addresses = (_await$this$_provider = await this._provider.request({
153
+ method: SOLANA_METHOD_TYPES.GET_ACCOUNTS
154
+ })) !== null && _await$this$_provider !== void 0 ? _await$this$_provider : [];
155
+ const accountChains = this.chains;
156
+ this._accounts = addresses.map(address => ({
157
+ address,
158
+ publicKey: new Uint8Array(base58Encoder.encode(address)),
159
+ chains: accountChains.length ? accountChains : [],
160
+ features: ACCOUNT_FEATURES
161
+ }));
162
+ this.emitChange({
163
+ accounts: this.accounts
164
+ });
165
+ }
166
+ emitChange(properties) {
167
+ const listeners = this._listeners.change;
168
+ if (!listeners) return;
169
+ listeners.forEach(listener => {
170
+ listener(properties);
171
+ });
172
+ }
173
+ }
174
+
175
+ export { AuthSolanaWallet };
@@ -1,13 +1,15 @@
1
- import { signChallenge, verifySignedChallenge } from '@toruslabs/base-controllers';
1
+ import { signChallenge } from '@toruslabs/base-controllers';
2
+ import { bytesToHexPrefixedString, utf8ToBytes } from '@toruslabs/metadata-helpers';
2
3
  import { EVM_METHOD_TYPES } from '@web3auth/ws-embed';
3
- import { getSavedToken, checkIfTokenIsExpired, saveToken, clearToken } from '../../base/connector/utils.js';
4
+ import { generateSiweNonce } from 'viem/siwe';
5
+ import { citadelServerUrl } from '../../base/utils.js';
4
6
  import { BaseConnector } from '../../base/connector/baseConnector.js';
5
7
  import { WalletLoginError, WalletInitializationError } from '../../base/errors/index.js';
6
8
  import { CONNECTOR_STATUS, CONNECTOR_EVENTS } from '../../base/connector/constants.js';
7
9
 
8
10
  class BaseEvmConnector extends BaseConnector {
9
11
  async init(_) {}
10
- async getIdentityToken() {
12
+ async getAuthTokenInfo() {
11
13
  if (!this.provider || !this.canAuthorize) throw WalletLoginError.notConnectedError();
12
14
  if (!this.coreOptions) throw WalletInitializationError.invalidParams("Please initialize Web3Auth with valid options");
13
15
  this.status = CONNECTOR_STATUS.AUTHORIZING;
@@ -18,22 +20,8 @@ class BaseEvmConnector extends BaseConnector {
18
20
  method: EVM_METHOD_TYPES.GET_ACCOUNTS
19
21
  });
20
22
  if (accounts && accounts.length > 0) {
21
- const existingToken = getSavedToken(accounts[0], this.name);
22
- if (existingToken) {
23
- const isExpired = checkIfTokenIsExpired(existingToken);
24
- if (!isExpired) {
25
- this.status = CONNECTOR_STATUS.AUTHORIZED;
26
- this.emit(CONNECTOR_EVENTS.AUTHORIZED, {
27
- connector: this.name,
28
- identityTokenInfo: {
29
- idToken: existingToken
30
- }
31
- });
32
- return {
33
- idToken: existingToken
34
- };
35
- }
36
- }
23
+ const cached = await this.getCachedOrNullAuthTokenInfo(accounts[0]);
24
+ if (cached) return cached;
37
25
  const chainId = await this.provider.request({
38
26
  method: "eth_chainId"
39
27
  });
@@ -42,44 +30,34 @@ class BaseEvmConnector extends BaseConnector {
42
30
  const {
43
31
  chainNamespace
44
32
  } = currentChainConfig;
33
+ const authServer = citadelServerUrl(this.coreOptions.authBuildEnv);
45
34
  const payload = {
46
35
  domain: window.location.origin,
47
36
  uri: window.location.href,
48
37
  address: accounts[0],
49
38
  chainId: parseInt(chainId, 16),
50
39
  version: "1",
51
- nonce: Math.random().toString(36).slice(2),
40
+ nonce: generateSiweNonce(),
52
41
  issuedAt: new Date().toISOString()
53
42
  };
54
- const challenge = await signChallenge(payload, chainNamespace);
55
- const hexChallenge = `0x${Buffer.from(challenge, "utf8").toString("hex")}`;
43
+ const challenge = await signChallenge(payload, chainNamespace, authServer);
44
+ const hexChallenge = bytesToHexPrefixedString(utf8ToBytes(challenge));
56
45
  const signedMessage = await this.provider.request({
57
46
  method: EVM_METHOD_TYPES.PERSONAL_SIGN,
58
47
  params: [hexChallenge, accounts[0]]
59
48
  });
60
- const idToken = await verifySignedChallenge(chainNamespace, signedMessage, challenge, this.name, this.coreOptions.sessionTime, this.coreOptions.clientId, this.coreOptions.web3AuthNetwork);
61
- saveToken(accounts[0], this.name, idToken);
62
- this.status = CONNECTOR_STATUS.AUTHORIZED;
63
- this.emit(CONNECTOR_EVENTS.AUTHORIZED, {
64
- connector: this.name,
65
- identityTokenInfo: {
66
- idToken
67
- }
49
+ return this.verifyAndAuthorize({
50
+ chainNamespace,
51
+ signedMessage,
52
+ challenge,
53
+ authServer
68
54
  });
69
- return {
70
- idToken
71
- };
72
55
  }
73
56
  throw WalletLoginError.notConnectedError("Not connected with wallet, Please login/connect first");
74
57
  }
75
58
  async disconnectSession() {
76
59
  super.checkDisconnectionRequirements();
77
- const accounts = await this.provider.request({
78
- method: "eth_accounts"
79
- });
80
- if (accounts && accounts.length > 0) {
81
- clearToken(accounts[0], this.name);
82
- }
60
+ await this.clearWalletSession();
83
61
  }
84
62
  async disconnect() {
85
63
  this.rehydrated = false;