@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,22 +1,22 @@
1
1
  import { createFetchMiddleware } from '@toruslabs/base-controllers';
2
- import { mergeMiddleware } from '@web3auth/auth';
2
+ import { JRPCEngineV2 } from '@web3auth/auth';
3
3
 
4
4
  function createEthChainIdMiddleware(chainId) {
5
- return (req, res, next, end) => {
6
- if (req.method === "eth_chainId") {
7
- res.result = chainId;
8
- return end();
9
- }
10
- return next();
5
+ return ({
6
+ request,
7
+ next
8
+ }) => {
9
+ if (request.method === "eth_chainId") return chainId;
10
+ return next(request);
11
11
  };
12
12
  }
13
13
  function createEthProviderConfigMiddleware(providerConfig) {
14
- return (req, res, next, end) => {
15
- if (req.method === "eth_provider_config") {
16
- res.result = providerConfig;
17
- return end();
18
- }
19
- return next();
14
+ return ({
15
+ request,
16
+ next
17
+ }) => {
18
+ if (request.method === "eth_provider_config") return providerConfig;
19
+ return next(request);
20
20
  };
21
21
  }
22
22
  function createEthJsonRpcClient(providerConfig) {
@@ -24,14 +24,15 @@ function createEthJsonRpcClient(providerConfig) {
24
24
  chainId,
25
25
  rpcTarget
26
26
  } = providerConfig;
27
- const fetchMiddleware = createFetchMiddleware({
28
- rpcTarget
27
+ const engine = JRPCEngineV2.create({
28
+ middleware: [createEthChainIdMiddleware(chainId), createEthProviderConfigMiddleware(providerConfig), createFetchMiddleware({
29
+ rpcTarget
30
+ })]
29
31
  });
30
- const networkMiddleware = mergeMiddleware([createEthChainIdMiddleware(chainId), createEthProviderConfigMiddleware(providerConfig), fetchMiddleware]);
32
+ const networkMiddleware = engine.asMiddleware();
31
33
  return {
32
- networkMiddleware,
33
- fetchMiddleware
34
+ networkMiddleware
34
35
  };
35
36
  }
36
37
 
37
- export { createEthChainIdMiddleware, createEthJsonRpcClient, createEthProviderConfigMiddleware };
38
+ export { createEthJsonRpcClient };
@@ -0,0 +1,201 @@
1
+ import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
+ import { createScaffoldMiddlewareV2, rpcErrors } from '@web3auth/auth';
3
+ import { isHex, toHex } from 'viem';
4
+
5
+ function createWalletMiddlewareV2({
6
+ getAccounts,
7
+ getPrivateKey,
8
+ getPublicKey,
9
+ processEthSignMessage,
10
+ processPersonalMessage,
11
+ processTransaction,
12
+ processSignTransaction,
13
+ processTypedMessageV4,
14
+ processGetCapabilities,
15
+ processSendCalls,
16
+ processGetCallsStatus,
17
+ processShowCallsStatus
18
+ }) {
19
+ if (!getAccounts) throw new Error("opts.getAccounts is required");
20
+ async function validateAndNormalizeKeyholder(address, req) {
21
+ if (typeof address === "string" && address.length > 0) {
22
+ const accounts = await getAccounts(req);
23
+ const normalizedAddress = address.toLowerCase();
24
+ if (accounts.map(a => a.toLowerCase()).includes(normalizedAddress)) return normalizedAddress;
25
+ }
26
+ throw rpcErrors.invalidParams({
27
+ message: `Invalid parameters: must provide an Ethereum address.`
28
+ });
29
+ }
30
+
31
+ // Account lookups
32
+ function ethAccountsHandler(p) {
33
+ return getAccounts(p.request);
34
+ }
35
+
36
+ // Tx signatures
37
+ async function ethSendTransactionHandler(p) {
38
+ var _req$params$, _req$params;
39
+ if (!processTransaction) throw rpcErrors.methodNotSupported();
40
+ const req = p.request;
41
+ const txParams = (_req$params$ = (_req$params = req.params) === null || _req$params === void 0 ? void 0 : _req$params[0]) !== null && _req$params$ !== void 0 ? _req$params$ : {
42
+ from: ""
43
+ };
44
+ txParams.from = await validateAndNormalizeKeyholder(txParams.from, req);
45
+ return processTransaction(txParams, req);
46
+ }
47
+ async function ethSignTransactionHandler(p) {
48
+ var _req$params$2, _req$params2;
49
+ if (!processSignTransaction) throw rpcErrors.methodNotSupported();
50
+ const req = p.request;
51
+ const txParams = (_req$params$2 = (_req$params2 = req.params) === null || _req$params2 === void 0 ? void 0 : _req$params2[0]) !== null && _req$params$2 !== void 0 ? _req$params$2 : {
52
+ from: ""
53
+ };
54
+ txParams.from = await validateAndNormalizeKeyholder(txParams.from, req);
55
+ return processSignTransaction(txParams, req);
56
+ }
57
+
58
+ // Message signatures
59
+ async function ethSignHandler(p) {
60
+ if (!processEthSignMessage) throw rpcErrors.methodNotSupported();
61
+ const req = p.request;
62
+ let msgParams;
63
+ if (Array.isArray(req.params)) {
64
+ if (req.params.length !== 2) throw new Error(`WalletMiddleware - incorrect params for eth_sign. expected [address, message]`);
65
+ const [address, message] = req.params;
66
+ msgParams = {
67
+ from: address,
68
+ data: message
69
+ };
70
+ } else {
71
+ var _req$params3;
72
+ msgParams = (_req$params3 = req.params) !== null && _req$params3 !== void 0 ? _req$params3 : {
73
+ from: "",
74
+ data: ""
75
+ };
76
+ }
77
+ return processEthSignMessage(msgParams, req);
78
+ }
79
+ async function ethSignTypedDataV4Handler(p) {
80
+ if (!processTypedMessageV4) throw rpcErrors.methodNotSupported();
81
+ const req = p.request;
82
+ if (!(req !== null && req !== void 0 && req.params)) throw new Error("WalletMiddleware - missing params");
83
+ let msgParams;
84
+ if (Array.isArray(req.params)) {
85
+ if (req.params.length !== 2) throw new Error(`WalletMiddleware - incorrect params for eth_signTypedData_v4. expected [address, typedData]`);
86
+ const [address, message] = req.params;
87
+ msgParams = {
88
+ from: address,
89
+ data: message
90
+ };
91
+ } else {
92
+ msgParams = req.params;
93
+ }
94
+ return processTypedMessageV4(msgParams, req);
95
+ }
96
+ async function personalSignHandler(p) {
97
+ if (!processPersonalMessage) throw rpcErrors.methodNotSupported();
98
+ const req = p.request;
99
+ let msgParams;
100
+ if (Array.isArray(req.params)) {
101
+ if (req.params.length < 2) throw new Error(`WalletMiddleware - incorrect params for personal_sign. expected [message, address]`);
102
+ const params = req.params;
103
+ if (typeof params[0] === "object" && params[0] !== null && "challenge" in params[0] && "address" in params[0]) {
104
+ const {
105
+ challenge,
106
+ address
107
+ } = params[0];
108
+ msgParams = {
109
+ from: address,
110
+ data: challenge
111
+ };
112
+ } else {
113
+ msgParams = {
114
+ from: params[1],
115
+ data: typeof params[0] === "string" ? params[0] : ""
116
+ };
117
+ }
118
+ } else {
119
+ var _req$params4;
120
+ msgParams = (_req$params4 = req.params) !== null && _req$params4 !== void 0 ? _req$params4 : {
121
+ from: "",
122
+ data: ""
123
+ };
124
+ }
125
+ return processPersonalMessage(msgParams, req);
126
+ }
127
+ async function ethPrivateKeyHandler(p) {
128
+ if (!getPrivateKey) throw rpcErrors.methodNotSupported();
129
+ return getPrivateKey(p.request);
130
+ }
131
+ async function ethPublicKeyHandler(p) {
132
+ if (!getPublicKey) throw rpcErrors.methodNotSupported();
133
+ return getPublicKey(p.request);
134
+ }
135
+ async function walletGetCapabilitiesHandler(p) {
136
+ var _req$params$3;
137
+ if (!processGetCapabilities) throw rpcErrors.methodNotSupported();
138
+ const req = p.request;
139
+ if (!req.params || !Array.isArray(req.params) || req.params.length < 2) throw rpcErrors.invalidParams("Invalid parameters");
140
+ const account = req.params[0];
141
+ if (!isHex(account)) throw rpcErrors.invalidParams("Invalid account address");
142
+ let chainIds = (_req$params$3 = req.params[1]) !== null && _req$params$3 !== void 0 ? _req$params$3 : [];
143
+ if (!Array.isArray(chainIds)) throw rpcErrors.invalidParams(`Invalid params, received: ${chainIds}. expected: Array`);
144
+ chainIds = chainIds.map(chainId => isHex(chainId) ? chainId : toHex(chainId));
145
+ const getCapabilitiesParams = [account, chainIds];
146
+ return processGetCapabilities(getCapabilitiesParams);
147
+ }
148
+ async function walletSendCallsHandler(p) {
149
+ if (!processSendCalls) throw rpcErrors.methodNotSupported();
150
+ const req = p.request;
151
+ const params = Array.isArray(req.params) ? req.params[0] : req.params;
152
+ if (!params || typeof params !== "object") throw rpcErrors.invalidParams("Missing or invalid params for wallet_sendCalls");
153
+ if (!params.version || typeof params.version !== "string") throw rpcErrors.invalidParams(`Invalid version: expected string, got "${params.version || "undefined"}"`);
154
+ if (!params.chainId) throw rpcErrors.invalidParams("Missing required field: chainId");
155
+ if (!Array.isArray(params.calls) || params.calls.length === 0) throw rpcErrors.invalidParams("calls must be a non-empty array");
156
+ const from = params.from;
157
+ if (from) await validateAndNormalizeKeyholder(from, req);
158
+ const walletSendCallsParams = _objectSpread(_objectSpread({}, params), {}, {
159
+ chainId: isHex(params.chainId) ? params.chainId : toHex(params.chainId)
160
+ });
161
+ return processSendCalls(walletSendCallsParams);
162
+ }
163
+ async function walletBatchCallStatusHandler(p) {
164
+ if (!processGetCallsStatus) throw rpcErrors.methodNotSupported();
165
+ const req = p.request;
166
+ const batchId = Array.isArray(req.params) ? req.params[0] : req.params;
167
+ if (!batchId || typeof batchId !== "string") throw rpcErrors.invalidParams("Missing or invalid batchId");
168
+ return processGetCallsStatus(batchId);
169
+ }
170
+ async function walletShowCallsStatusHandler(p) {
171
+ if (!processShowCallsStatus) throw rpcErrors.methodNotSupported();
172
+ const req = p.request;
173
+ const batchId = Array.isArray(req.params) ? req.params[0] : req.params;
174
+ if (!batchId || typeof batchId !== "string") throw rpcErrors.invalidParams("Missing or invalid batchId");
175
+ await processShowCallsStatus(batchId);
176
+ return true;
177
+ }
178
+ return createScaffoldMiddlewareV2({
179
+ // account lookups
180
+ eth_accounts: ethAccountsHandler,
181
+ eth_requestAccounts: ethAccountsHandler,
182
+ eth_private_key: ethPrivateKeyHandler,
183
+ eth_public_key: ethPublicKeyHandler,
184
+ public_key: ethPublicKeyHandler,
185
+ private_key: ethPrivateKeyHandler,
186
+ // tx signatures
187
+ eth_sendTransaction: ethSendTransactionHandler,
188
+ eth_signTransaction: ethSignTransactionHandler,
189
+ // message signatures
190
+ eth_sign: ethSignHandler,
191
+ eth_signTypedData_v4: ethSignTypedDataV4Handler,
192
+ personal_sign: personalSignHandler,
193
+ // EIP5792
194
+ wallet_getCapabilities: walletGetCapabilitiesHandler,
195
+ wallet_sendCalls: walletSendCallsHandler,
196
+ wallet_batchCallStatus: walletBatchCallStatusHandler,
197
+ wallet_showCallsStatus: walletShowCallsStatusHandler
198
+ });
199
+ }
200
+
201
+ export { createWalletMiddlewareV2 };
@@ -1,5 +1,5 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
- import { providerErrors, JRPCEngine, providerFromEngine, rpcErrors } from '@web3auth/auth';
2
+ import { providerErrors, JRPCEngineV2, providerFromEngineV2, rpcErrors } from '@web3auth/auth';
3
3
  import { createXrplJsonRpcClient } from '../../rpc/JrpcClient.js';
4
4
  import { RPC_METHODS, createXRPLMiddleware, creatXrplChainSwitchMiddleware } from '../../rpc/xrplRpcMiddlewares.js';
5
5
  import { getProviderHandlers } from './xrplWalletUtils.js';
@@ -45,14 +45,14 @@ class XrplPrivateKeyProvider extends BaseProvider {
45
45
  keyExportEnabled: this.config.keyExportEnabled
46
46
  });
47
47
  const xrplWalletMiddleware = createXRPLMiddleware(providerHandlers);
48
- const engine = new JRPCEngine();
49
48
  const {
50
49
  networkMiddleware
51
50
  } = createXrplJsonRpcClient(chain);
52
- engine.push(this.getChainSwitchMiddleware());
53
- engine.push(xrplWalletMiddleware);
54
- engine.push(networkMiddleware);
55
- const provider = providerFromEngine(engine);
51
+ const chainSwitchMiddleware = creatXrplChainSwitchMiddleware(params => this.switchChain(params));
52
+ const engine = JRPCEngineV2.create({
53
+ middleware: [chainSwitchMiddleware, xrplWalletMiddleware, networkMiddleware]
54
+ });
55
+ const provider = providerFromEngineV2(engine);
56
56
  this.updateProviderEngineProxy(provider);
57
57
  await this.lookupNetwork(privKey, chainId);
58
58
  this.emit("chainChanged", chainId);
@@ -94,17 +94,6 @@ class XrplPrivateKeyProvider extends BaseProvider {
94
94
  throw WalletInitializationError.rpcConnectionError(`Failed to ping network for following rpc target: ${chain.rpcTarget}`);
95
95
  }
96
96
  }
97
- getChainSwitchMiddleware() {
98
- const chainSwitchHandlers = {
99
- switchChain: async req => {
100
- if (!req.params) throw rpcErrors.invalidParams("Missing request params");
101
- if (!req.params.chainId) throw rpcErrors.invalidParams("Missing chainId");
102
- await this.switchChain(req.params);
103
- }
104
- };
105
- const chainSwitchMiddleware = creatXrplChainSwitchMiddleware(chainSwitchHandlers);
106
- return chainSwitchMiddleware;
107
- }
108
97
  }
109
98
  _XrplPrivateKeyProvider = XrplPrivateKeyProvider;
110
99
  _defineProperty(XrplPrivateKeyProvider, "getProviderInstance", async params => {
@@ -1,3 +1,4 @@
1
+ import { hexToBytes } from '@toruslabs/metadata-helpers';
1
2
  import { rpcErrors, providerErrors } from '@web3auth/auth';
2
3
  import { sign, generateSeed } from 'ripple-keypairs';
3
4
  import { Client, Wallet, deriveAddress } from 'xrpl';
@@ -5,7 +6,7 @@ import ECDSA from 'xrpl/dist/npm/ECDSA';
5
6
 
6
7
  const deriveKeypair = web3authKey => {
7
8
  const seed = generateSeed({
8
- entropy: Buffer.from(web3authKey.padStart(64, "0"), "hex"),
9
+ entropy: hexToBytes(web3authKey.padStart(64, "0")),
9
10
  algorithm: "ecdsa-secp256k1"
10
11
  });
11
12
  const wallet = Wallet.fromSecret(seed, {
@@ -1,43 +1,39 @@
1
1
  import { createFetchMiddleware } from '@toruslabs/base-controllers';
2
- import { mergeMiddleware } from '@web3auth/auth';
2
+ import { JRPCEngineV2 } from '@web3auth/auth';
3
3
  import { RPC_METHODS } from './xrplRpcMiddlewares.js';
4
4
 
5
5
  function createXrplChainIdMiddleware(chainId) {
6
- return (req, res, next, end) => {
7
- if (req.method === RPC_METHODS.CHAIN_ID) {
8
- res.result = chainId;
9
- return end();
10
- }
11
- return next();
6
+ return ({
7
+ request,
8
+ next
9
+ }) => {
10
+ if (request.method === RPC_METHODS.CHAIN_ID) return chainId;
11
+ return next(request);
12
12
  };
13
13
  }
14
14
  function createXrplProviderConfigMiddleware(providerConfig) {
15
- return (req, res, next, end) => {
16
- if (req.method === RPC_METHODS.PROVIDER_CHAIN_CONFIG) {
17
- res.result = providerConfig;
18
- return end();
19
- }
20
- return next();
15
+ return ({
16
+ request,
17
+ next
18
+ }) => {
19
+ if (request.method === RPC_METHODS.PROVIDER_CHAIN_CONFIG) return providerConfig;
20
+ return next(request);
21
21
  };
22
22
  }
23
- function createConfigMiddleware(providerConfig) {
24
- const {
25
- chainId
26
- } = providerConfig;
27
- return mergeMiddleware([createXrplChainIdMiddleware(chainId), createXrplProviderConfigMiddleware(providerConfig)]);
28
- }
29
23
  function createXrplJsonRpcClient(providerConfig) {
30
24
  const {
25
+ chainId,
31
26
  rpcTarget
32
27
  } = providerConfig;
33
- const fetchMiddleware = createFetchMiddleware({
34
- rpcTarget
28
+ const engine = JRPCEngineV2.create({
29
+ middleware: [createXrplChainIdMiddleware(chainId), createXrplProviderConfigMiddleware(providerConfig), createFetchMiddleware({
30
+ rpcTarget
31
+ })]
35
32
  });
36
- const networkMiddleware = mergeMiddleware([createConfigMiddleware(providerConfig), fetchMiddleware]);
33
+ const networkMiddleware = engine.asMiddleware();
37
34
  return {
38
- networkMiddleware,
39
- fetchMiddleware
35
+ networkMiddleware
40
36
  };
41
37
  }
42
38
 
43
- export { createConfigMiddleware, createXrplChainIdMiddleware, createXrplJsonRpcClient, createXrplProviderConfigMiddleware };
39
+ export { createXrplJsonRpcClient };
@@ -1,5 +1,5 @@
1
1
  import { randomId } from '@toruslabs/base-controllers';
2
- import { mergeMiddleware, createAsyncMiddleware } from '@web3auth/auth';
2
+ import { createScaffoldMiddlewareV2, JRPCEngineV2, rpcErrors } from '@web3auth/auth';
3
3
 
4
4
  const RPC_METHODS = {
5
5
  GET_ACCOUNTS: "xrpl_getAccounts",
@@ -12,36 +12,15 @@ const RPC_METHODS = {
12
12
  CHAIN_ID: "xrpl_chainId",
13
13
  PROVIDER_CHAIN_CONFIG: "xrpl_providerChainConfig"
14
14
  };
15
- function createGetAccountsMiddleware({
16
- getAccounts
17
- }) {
18
- return createAsyncMiddleware(async (request, response, next) => {
19
- const {
20
- method
21
- } = request;
22
-
23
- // hack to override big ids from fetch middleware which are not supported in xrpl servers
24
- // TODO: fix this for xrpl controllers.
15
+ /** Normalizes request.id for XRPL servers that don't support large IDs from fetch middleware. */
16
+ function createRequestIdNormalizerMiddleware() {
17
+ return ({
18
+ request,
19
+ next
20
+ }) => {
25
21
  request.id = randomId();
26
- if (method !== RPC_METHODS.GET_ACCOUNTS) return next();
27
- if (!getAccounts) throw new Error("WalletMiddleware - opts.getAccounts not provided");
28
- // This calls from the prefs controller
29
- const accounts = await getAccounts(request);
30
- response.result = accounts;
31
- return undefined;
32
- });
33
- }
34
- function createGenericJRPCMiddleware(targetMethod, handler) {
35
- return createAsyncMiddleware(async (request, response, next) => {
36
- const {
37
- method
38
- } = request;
39
- if (method !== targetMethod) return next();
40
- if (!handler) throw new Error(`WalletMiddleware - ${targetMethod} not provided`);
41
- const result = await handler(request);
42
- response.result = result;
43
- return undefined;
44
- });
22
+ return next(request);
23
+ };
45
24
  }
46
25
  function createXRPLMiddleware(providerHandlers) {
47
26
  const {
@@ -52,14 +31,45 @@ function createXRPLMiddleware(providerHandlers) {
52
31
  getKeyPair,
53
32
  getPublicKey
54
33
  } = providerHandlers;
55
- return mergeMiddleware([createGetAccountsMiddleware({
56
- getAccounts
57
- }), createGenericJRPCMiddleware(RPC_METHODS.SIGN_TRANSACTION, signTransaction), createGenericJRPCMiddleware(RPC_METHODS.SUBMIT_TRANSACTION, submitTransaction), createGenericJRPCMiddleware(RPC_METHODS.SIGN_MESSAGE, signMessage), createGenericJRPCMiddleware(RPC_METHODS.GET_KEY_PAIR, getKeyPair), createGenericJRPCMiddleware(RPC_METHODS.GET_PUBLIC_KEY, getPublicKey)]);
34
+ const scaffold = createScaffoldMiddlewareV2({
35
+ [RPC_METHODS.GET_ACCOUNTS]: params => {
36
+ if (!getAccounts) throw new Error("WalletMiddleware - opts.getAccounts not provided");
37
+ return getAccounts(params.request);
38
+ },
39
+ [RPC_METHODS.SIGN_TRANSACTION]: params => {
40
+ return signTransaction(params.request);
41
+ },
42
+ [RPC_METHODS.SUBMIT_TRANSACTION]: params => {
43
+ return submitTransaction(params.request);
44
+ },
45
+ [RPC_METHODS.SIGN_MESSAGE]: params => {
46
+ return signMessage(params.request);
47
+ },
48
+ [RPC_METHODS.GET_KEY_PAIR]: params => {
49
+ return getKeyPair(params.request);
50
+ },
51
+ [RPC_METHODS.GET_PUBLIC_KEY]: params => {
52
+ return getPublicKey(params.request);
53
+ }
54
+ });
55
+ const engine = JRPCEngineV2.create({
56
+ middleware: [createRequestIdNormalizerMiddleware(), scaffold]
57
+ });
58
+ return engine.asMiddleware();
58
59
  }
59
- function creatXrplChainSwitchMiddleware({
60
- switchChain
61
- }) {
62
- return mergeMiddleware([createGenericJRPCMiddleware(RPC_METHODS.SWITCH_CHAIN, switchChain)]);
60
+ function creatXrplChainSwitchMiddleware(switchChain) {
61
+ async function switchChainHandler(params) {
62
+ const req = params.request;
63
+ if (!req.params) throw rpcErrors.invalidParams("Missing request params");
64
+ if (!req.params.chainId) throw rpcErrors.invalidParams("Missing chainId");
65
+ await switchChain({
66
+ chainId: req.params.chainId
67
+ });
68
+ return undefined;
69
+ }
70
+ return createScaffoldMiddlewareV2({
71
+ [RPC_METHODS.SWITCH_CHAIN]: switchChainHandler
72
+ });
63
73
  }
64
74
 
65
- export { RPC_METHODS, creatXrplChainSwitchMiddleware, createGenericJRPCMiddleware, createGetAccountsMiddleware, createXRPLMiddleware };
75
+ export { RPC_METHODS, creatXrplChainSwitchMiddleware, createXRPLMiddleware };
@@ -1,6 +1,5 @@
1
- import { createContext, useContext, useState, useEffect, useMemo, createElement } from 'react';
2
- import { EVM_PLUGINS, PLUGIN_EVENTS } from '../../base/plugin/IPlugin.js';
3
- import { CONNECTOR_STATUS } from '../../base/connector/constants.js';
1
+ import { createContext, useContext, createElement } from 'react';
2
+ import { useWalletServicesContextValue } from './useWalletServicesContextValue.js';
4
3
 
5
4
  const WalletServicesContext = createContext(null);
6
5
  function WalletServicesContextProvider({
@@ -8,60 +7,7 @@ function WalletServicesContextProvider({
8
7
  context
9
8
  }) {
10
9
  const web3AuthContext = useContext(context);
11
- const {
12
- getPlugin,
13
- isInitialized,
14
- isConnected
15
- } = web3AuthContext;
16
- const [ready, setReady] = useState(false);
17
- const [connecting, setConnecting] = useState(false);
18
- const [walletServicesPlugin, setWalletServicesPlugin] = useState(null);
19
- useEffect(() => {
20
- if (isInitialized) {
21
- const plugin = getPlugin(EVM_PLUGINS.WALLET_SERVICES);
22
- setWalletServicesPlugin(plugin);
23
- }
24
- }, [isInitialized, getPlugin]);
25
- useEffect(() => {
26
- if (isConnected) {
27
- const plugin = getPlugin(EVM_PLUGINS.WALLET_SERVICES);
28
- setWalletServicesPlugin(plugin);
29
- // when rehydrating, the connectedListener may be registered after the connected event is emitted, we need to check the status here
30
- if ((plugin === null || plugin === void 0 ? void 0 : plugin.status) === CONNECTOR_STATUS.CONNECTED) setReady(true);
31
- }
32
- }, [isConnected, getPlugin, walletServicesPlugin]);
33
- useEffect(() => {
34
- const connectedListener = () => {
35
- setReady(true);
36
- setConnecting(false);
37
- };
38
- const disconnectedListener = () => {
39
- setReady(false);
40
- setConnecting(false);
41
- };
42
- const connectingListener = () => {
43
- setConnecting(true);
44
- };
45
- if (walletServicesPlugin) {
46
- walletServicesPlugin.on(PLUGIN_EVENTS.CONNECTED, connectedListener);
47
- walletServicesPlugin.on(PLUGIN_EVENTS.DISCONNECTED, disconnectedListener);
48
- walletServicesPlugin.on(PLUGIN_EVENTS.CONNECTING, connectingListener);
49
- }
50
- return () => {
51
- if (walletServicesPlugin) {
52
- walletServicesPlugin.removeListener(PLUGIN_EVENTS.CONNECTED, connectedListener);
53
- walletServicesPlugin.removeListener(PLUGIN_EVENTS.DISCONNECTED, disconnectedListener);
54
- walletServicesPlugin.removeListener(PLUGIN_EVENTS.CONNECTING, connectingListener);
55
- }
56
- };
57
- }, [walletServicesPlugin]);
58
- const value = useMemo(() => {
59
- return {
60
- plugin: walletServicesPlugin,
61
- ready,
62
- connecting
63
- };
64
- }, [walletServicesPlugin, ready, connecting]);
10
+ const value = useWalletServicesContextValue(web3AuthContext);
65
11
  return createElement(WalletServicesContext.Provider, {
66
12
  value
67
13
  }, children);