@0xsquid/react-hooks 6.4.4-dex-widget-beta.0 → 6.4.4-stellar-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 (356) hide show
  1. package/dist/core/client/index.d.ts +17 -0
  2. package/dist/core/client/index.js +40 -0
  3. package/dist/core/client/index.js.map +1 -0
  4. package/dist/core/connectors/bitcoin/errors/index.d.ts +2 -1
  5. package/dist/core/connectors/bitcoin/errors/index.js +1 -1
  6. package/dist/core/connectors/bitcoin/errors/index.js.map +1 -1
  7. package/dist/core/connectors/bitcoin/helpers.d.ts +15 -0
  8. package/dist/core/connectors/bitcoin/helpers.js +6 -1
  9. package/dist/core/connectors/bitcoin/helpers.js.map +1 -1
  10. package/dist/core/connectors/bitcoin/wallets/index.d.ts +1 -0
  11. package/dist/core/connectors/bitcoin/wallets/index.js +1 -0
  12. package/dist/core/connectors/bitcoin/wallets/index.js.map +1 -1
  13. package/dist/core/connectors/bitcoin/wallets/keplr.d.ts +11 -0
  14. package/dist/core/connectors/bitcoin/wallets/keplr.js +28 -0
  15. package/dist/core/connectors/bitcoin/wallets/keplr.js.map +1 -0
  16. package/dist/core/connectors/xrpl/CrossMark.d.ts +13 -0
  17. package/dist/core/connectors/xrpl/CrossMark.js +76 -0
  18. package/dist/core/connectors/xrpl/CrossMark.js.map +1 -0
  19. package/dist/core/connectors/xrpl/Xaman.d.ts +16 -0
  20. package/dist/core/connectors/xrpl/Xaman.js +80 -0
  21. package/dist/core/connectors/xrpl/Xaman.js.map +1 -0
  22. package/dist/core/connectors/xrpl/XamanQr.d.ts +15 -0
  23. package/dist/core/connectors/xrpl/XamanQr.js +78 -0
  24. package/dist/core/connectors/xrpl/XamanQr.js.map +1 -0
  25. package/dist/core/connectors/xrpl/XrplMetamaskSnap.d.ts +35 -0
  26. package/dist/core/connectors/xrpl/XrplMetamaskSnap.js +177 -0
  27. package/dist/core/connectors/xrpl/XrplMetamaskSnap.js.map +1 -0
  28. package/dist/core/constants.d.ts +18 -16
  29. package/dist/core/constants.js +57 -21
  30. package/dist/core/constants.js.map +1 -1
  31. package/dist/core/externalLinks.d.ts +1 -1
  32. package/dist/core/externalLinks.js +1 -1
  33. package/dist/core/index.d.ts +1 -1
  34. package/dist/core/index.js +1 -1
  35. package/dist/core/index.js.map +1 -1
  36. package/dist/core/multicall3.d.ts +5 -1
  37. package/dist/core/multicall3.js +21 -1
  38. package/dist/core/multicall3.js.map +1 -1
  39. package/dist/core/providers/CosmosProvider.d.ts +1 -1
  40. package/dist/core/providers/CosmosProvider.js.map +1 -1
  41. package/dist/core/providers/SolanaProvider.d.ts +0 -2
  42. package/dist/core/providers/SolanaProvider.js.map +1 -1
  43. package/dist/core/providers/StellarProvider.d.ts +19 -0
  44. package/dist/core/providers/StellarProvider.js +15 -0
  45. package/dist/core/providers/StellarProvider.js.map +1 -0
  46. package/dist/core/providers/SuiProvider.d.ts +19 -0
  47. package/dist/core/providers/SuiProvider.js +15 -0
  48. package/dist/core/providers/SuiProvider.js.map +1 -0
  49. package/dist/core/providers/XrplProvider.d.ts +17 -0
  50. package/dist/core/providers/XrplProvider.js +15 -0
  51. package/dist/core/providers/XrplProvider.js.map +1 -0
  52. package/dist/core/queries/queries-keys.d.ts +29 -28
  53. package/dist/core/queries/queries-keys.js +88 -76
  54. package/dist/core/queries/queries-keys.js.map +1 -1
  55. package/dist/core/stellar-test.d.ts +1 -0
  56. package/dist/core/stellar-test.js +11 -0
  57. package/dist/core/stellar-test.js.map +1 -0
  58. package/dist/core/types/config.d.ts +2 -0
  59. package/dist/core/types/error.d.ts +4 -4
  60. package/dist/core/types/error.js.map +1 -1
  61. package/dist/core/types/event.d.ts +31 -1
  62. package/dist/core/types/history.d.ts +84 -0
  63. package/dist/core/types/history.js +7 -0
  64. package/dist/core/types/history.js.map +1 -0
  65. package/dist/core/types/index.d.ts +5 -1
  66. package/dist/core/types/index.js +3 -1
  67. package/dist/core/types/index.js.map +1 -1
  68. package/dist/core/types/onramps/index.d.ts +2 -0
  69. package/dist/core/types/onramps/index.js +3 -0
  70. package/dist/core/types/onramps/index.js.map +1 -0
  71. package/dist/core/types/onramps/onramp.d.ts +157 -0
  72. package/dist/core/types/onramps/onramp.js +2 -0
  73. package/dist/core/types/onramps/onramp.js.map +1 -0
  74. package/dist/core/types/onramps/revolut.d.ts +92 -0
  75. package/dist/core/types/onramps/revolut.js +2 -0
  76. package/dist/core/types/onramps/revolut.js.map +1 -0
  77. package/dist/core/types/rpc.d.ts +10 -0
  78. package/dist/core/types/rpc.js +2 -0
  79. package/dist/core/types/rpc.js.map +1 -0
  80. package/dist/core/types/stellar.d.ts +3 -0
  81. package/dist/core/types/stellar.js +2 -0
  82. package/dist/core/types/stellar.js.map +1 -0
  83. package/dist/core/types/sui.d.ts +14 -0
  84. package/dist/core/types/sui.js +2 -0
  85. package/dist/core/types/sui.js.map +1 -0
  86. package/dist/core/types/swap.d.ts +0 -5
  87. package/dist/core/types/swap.js +1 -6
  88. package/dist/core/types/swap.js.map +1 -1
  89. package/dist/core/types/transaction.d.ts +10 -31
  90. package/dist/core/types/transaction.js +6 -0
  91. package/dist/core/types/transaction.js.map +1 -1
  92. package/dist/core/types/wallet.d.ts +39 -4
  93. package/dist/core/types/wallet.js +4 -0
  94. package/dist/core/types/wallet.js.map +1 -1
  95. package/dist/core/types/xrpl.d.ts +70 -0
  96. package/dist/core/types/xrpl.js +20 -0
  97. package/dist/core/types/xrpl.js.map +1 -0
  98. package/dist/core/wagmiConfig.js +2 -8
  99. package/dist/core/wagmiConfig.js.map +1 -1
  100. package/dist/core/wallets.d.ts +2 -1
  101. package/dist/core/wallets.js +76 -21
  102. package/dist/core/wallets.js.map +1 -1
  103. package/dist/hooks/analytics/useTrackSearchEmpty.d.ts +12 -0
  104. package/dist/hooks/analytics/useTrackSearchEmpty.js +22 -0
  105. package/dist/hooks/analytics/useTrackSearchEmpty.js.map +1 -0
  106. package/dist/hooks/chains/useSquidChains.d.ts +1 -0
  107. package/dist/hooks/chains/useSquidChains.js +23 -4
  108. package/dist/hooks/chains/useSquidChains.js.map +1 -1
  109. package/dist/hooks/client/useClient.d.ts +2 -0
  110. package/dist/hooks/client/useClient.js +58 -1
  111. package/dist/hooks/client/useClient.js.map +1 -1
  112. package/dist/hooks/cosmos/useCosmos.d.ts +9 -0
  113. package/dist/hooks/cosmos/useCosmos.js +52 -52
  114. package/dist/hooks/cosmos/useCosmos.js.map +1 -1
  115. package/dist/hooks/cosmos/useCosmosForChain.d.ts +1 -1
  116. package/dist/hooks/cosmos/useCosmosForChain.js +20 -13
  117. package/dist/hooks/cosmos/useCosmosForChain.js.map +1 -1
  118. package/dist/hooks/index.d.ts +12 -1
  119. package/dist/hooks/index.js +12 -1
  120. package/dist/hooks/index.js.map +1 -1
  121. package/dist/hooks/onramp/useFiatToCrypto.d.ts +84 -0
  122. package/dist/hooks/onramp/useFiatToCrypto.js +316 -0
  123. package/dist/hooks/onramp/useFiatToCrypto.js.map +1 -0
  124. package/dist/hooks/solana/useSolana.d.ts +2 -1
  125. package/dist/hooks/solana/useSolana.js +12 -4
  126. package/dist/hooks/solana/useSolana.js.map +1 -1
  127. package/dist/hooks/stellar/useStellar.d.ts +2 -0
  128. package/dist/hooks/stellar/useStellar.js +27 -0
  129. package/dist/hooks/stellar/useStellar.js.map +1 -0
  130. package/dist/hooks/stellar/useStellarWallets.d.ts +4 -0
  131. package/dist/hooks/stellar/useStellarWallets.js +12 -0
  132. package/dist/hooks/stellar/useStellarWallets.js.map +1 -0
  133. package/dist/hooks/store/useAddressBookStore.d.ts +1 -1
  134. package/dist/hooks/store/useAddressBookStore.js +6 -2
  135. package/dist/hooks/store/useAddressBookStore.js.map +1 -1
  136. package/dist/hooks/store/useHistoryStore.d.ts +33 -13
  137. package/dist/hooks/store/useHistoryStore.js +120 -32
  138. package/dist/hooks/store/useHistoryStore.js.map +1 -1
  139. package/dist/hooks/store/useSendTransactionStore.d.ts +20 -0
  140. package/dist/hooks/store/useSendTransactionStore.js +21 -0
  141. package/dist/hooks/store/useSendTransactionStore.js.map +1 -0
  142. package/dist/hooks/store/useSquidStore.d.ts +0 -5
  143. package/dist/hooks/store/useSquidStore.js +0 -2
  144. package/dist/hooks/store/useSquidStore.js.map +1 -1
  145. package/dist/hooks/store/useWalletStore.d.ts +8 -5
  146. package/dist/hooks/store/useWalletStore.js +13 -20
  147. package/dist/hooks/store/useWalletStore.js.map +1 -1
  148. package/dist/hooks/sui/useSui.d.ts +2 -0
  149. package/dist/hooks/sui/useSui.js +28 -0
  150. package/dist/hooks/sui/useSui.js.map +1 -0
  151. package/dist/hooks/sui/useSuiWallets.d.ts +7 -0
  152. package/dist/hooks/sui/useSuiWallets.js +42 -0
  153. package/dist/hooks/sui/useSuiWallets.js.map +1 -0
  154. package/dist/hooks/swap/useSwap.d.ts +1 -0
  155. package/dist/hooks/swap/useSwap.js +7 -13
  156. package/dist/hooks/swap/useSwap.js.map +1 -1
  157. package/dist/hooks/tokens/useAllConnectedWalletBalances.js +34 -1
  158. package/dist/hooks/tokens/useAllConnectedWalletBalances.js.map +1 -1
  159. package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.d.ts +4 -5
  160. package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js +52 -17
  161. package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js.map +1 -1
  162. package/dist/hooks/tokens/useBalance.d.ts +20 -246
  163. package/dist/hooks/tokens/useBalance.js +105 -25
  164. package/dist/hooks/tokens/useBalance.js.map +1 -1
  165. package/dist/hooks/tokens/useMultiChainBalance.d.ts +2 -2
  166. package/dist/hooks/tokens/useMultiChainBalance.js +56 -35
  167. package/dist/hooks/tokens/useMultiChainBalance.js.map +1 -1
  168. package/dist/hooks/tokens/useNativeBalance.d.ts +18 -18
  169. package/dist/hooks/tokens/useNativeBalance.js +184 -56
  170. package/dist/hooks/tokens/useNativeBalance.js.map +1 -1
  171. package/dist/hooks/tokens/useNativeTokenForChain.js +10 -4
  172. package/dist/hooks/tokens/useNativeTokenForChain.js.map +1 -1
  173. package/dist/hooks/tokens/useSquidTokens.d.ts +4 -11
  174. package/dist/hooks/tokens/useSquidTokens.js +18 -16
  175. package/dist/hooks/tokens/useSquidTokens.js.map +1 -1
  176. package/dist/hooks/transaction/send/useEstimateSendTransactionGas.d.ts +28 -0
  177. package/dist/hooks/transaction/send/useEstimateSendTransactionGas.js +58 -0
  178. package/dist/hooks/transaction/send/useEstimateSendTransactionGas.js.map +1 -0
  179. package/dist/hooks/transaction/send/useSendTransaction.d.ts +13 -0
  180. package/dist/hooks/transaction/send/useSendTransaction.js +256 -0
  181. package/dist/hooks/transaction/send/useSendTransaction.js.map +1 -0
  182. package/dist/hooks/transaction/send/useSendTransactionGas.d.ts +6 -0
  183. package/dist/hooks/transaction/send/useSendTransactionGas.js +73 -0
  184. package/dist/hooks/transaction/send/useSendTransactionGas.js.map +1 -0
  185. package/dist/hooks/transaction/useAllTransactionsStatus.d.ts +34 -2
  186. package/dist/hooks/transaction/useAllTransactionsStatus.js +119 -62
  187. package/dist/hooks/transaction/useAllTransactionsStatus.js.map +1 -1
  188. package/dist/hooks/transaction/useApproval.js +3 -3
  189. package/dist/hooks/transaction/useApproval.js.map +1 -1
  190. package/dist/hooks/transaction/useEstimate.d.ts +1 -1
  191. package/dist/hooks/transaction/useEstimate.js +1 -1
  192. package/dist/hooks/transaction/useEstimate.js.map +1 -1
  193. package/dist/hooks/transaction/useEstimatePriceImpact.d.ts +1 -2
  194. package/dist/hooks/transaction/useEstimatePriceImpact.js +12 -12
  195. package/dist/hooks/transaction/useEstimatePriceImpact.js.map +1 -1
  196. package/dist/hooks/transaction/useExecuteTransaction.d.ts +1 -2
  197. package/dist/hooks/transaction/useExecuteTransaction.js +202 -74
  198. package/dist/hooks/transaction/useExecuteTransaction.js.map +1 -1
  199. package/dist/hooks/transaction/useGetRoute.d.ts +7 -2
  200. package/dist/hooks/transaction/useGetRoute.js +12 -9
  201. package/dist/hooks/transaction/useGetRoute.js.map +1 -1
  202. package/dist/hooks/transaction/useSendTransactionStatus.d.ts +11 -0
  203. package/dist/hooks/transaction/useSendTransactionStatus.js +63 -0
  204. package/dist/hooks/transaction/useSendTransactionStatus.js.map +1 -0
  205. package/dist/hooks/transaction/useSwapTransactionStatus.d.ts +15 -0
  206. package/dist/hooks/transaction/{useSingleTransaction.js → useSwapTransactionStatus.js} +40 -18
  207. package/dist/hooks/transaction/useSwapTransactionStatus.js.map +1 -0
  208. package/dist/hooks/user/useAvatar.js +13 -7
  209. package/dist/hooks/user/useAvatar.js.map +1 -1
  210. package/dist/hooks/user/useHistory.d.ts +12 -10
  211. package/dist/hooks/user/useHistory.js +49 -51
  212. package/dist/hooks/user/useHistory.js.map +1 -1
  213. package/dist/hooks/user/useUserParams.js +1 -1
  214. package/dist/hooks/user/useUserParams.js.map +1 -1
  215. package/dist/hooks/utils/useUtils.d.ts +7 -0
  216. package/dist/hooks/utils/useUtils.js +20 -0
  217. package/dist/hooks/utils/useUtils.js.map +1 -0
  218. package/dist/hooks/wallet/useEns.d.ts +0 -1
  219. package/dist/hooks/wallet/useEns.js +1 -13
  220. package/dist/hooks/wallet/useEns.js.map +1 -1
  221. package/dist/hooks/wallet/useGnosisContext.js +7 -11
  222. package/dist/hooks/wallet/useGnosisContext.js.map +1 -1
  223. package/dist/hooks/wallet/useIntegratorContext.js +1 -1
  224. package/dist/hooks/wallet/useIntegratorContext.js.map +1 -1
  225. package/dist/hooks/wallet/useMultiChainWallet.d.ts +3 -1
  226. package/dist/hooks/wallet/useMultiChainWallet.js +78 -24
  227. package/dist/hooks/wallet/useMultiChainWallet.js.map +1 -1
  228. package/dist/hooks/wallet/useSigner.d.ts +10 -7
  229. package/dist/hooks/wallet/useSigner.js +62 -14
  230. package/dist/hooks/wallet/useSigner.js.map +1 -1
  231. package/dist/hooks/wallet/useWallet.d.ts +65 -8
  232. package/dist/hooks/wallet/useWallet.js +69 -12
  233. package/dist/hooks/wallet/useWallet.js.map +1 -1
  234. package/dist/hooks/wallet/useWallets.d.ts +31 -1
  235. package/dist/hooks/wallet/useWallets.js +35 -1
  236. package/dist/hooks/wallet/useWallets.js.map +1 -1
  237. package/dist/hooks/xrpl/useXrpl.d.ts +2 -0
  238. package/dist/hooks/xrpl/useXrpl.js +21 -0
  239. package/dist/hooks/xrpl/useXrpl.js.map +1 -0
  240. package/dist/hooks/xrpl/useXrplTrustLine.d.ts +17 -0
  241. package/dist/hooks/xrpl/useXrplTrustLine.js +136 -0
  242. package/dist/hooks/xrpl/useXrplTrustLine.js.map +1 -0
  243. package/dist/hooks/xrpl/useXrplWallets.d.ts +4 -0
  244. package/dist/hooks/xrpl/useXrplWallets.js +46 -0
  245. package/dist/hooks/xrpl/useXrplWallets.js.map +1 -0
  246. package/dist/index.d.ts +1 -1
  247. package/dist/index.js +1 -1
  248. package/dist/index.js.map +1 -1
  249. package/dist/provider/index.d.ts +1 -1
  250. package/dist/provider/index.js +14 -9
  251. package/dist/provider/index.js.map +1 -1
  252. package/dist/services/external/cosmosRestClient.d.ts +18 -0
  253. package/dist/services/external/cosmosRestClient.js +45 -0
  254. package/dist/services/external/cosmosRestClient.js.map +1 -0
  255. package/dist/services/external/index.d.ts +1 -0
  256. package/dist/services/external/index.js +2 -0
  257. package/dist/services/external/index.js.map +1 -0
  258. package/dist/services/external/onrampAdapter.d.ts +12 -0
  259. package/dist/services/external/onrampAdapter.js +41 -0
  260. package/dist/services/external/onrampAdapter.js.map +1 -0
  261. package/dist/services/external/rpcService.d.ts +15 -8
  262. package/dist/services/external/rpcService.js +84 -64
  263. package/dist/services/external/rpcService.js.map +1 -1
  264. package/dist/services/external/suiRpcClient.d.ts +32 -0
  265. package/dist/services/external/suiRpcClient.js +80 -0
  266. package/dist/services/external/suiRpcClient.js.map +1 -0
  267. package/dist/services/external/websocket.d.ts +6 -0
  268. package/dist/services/external/websocket.js +34 -0
  269. package/dist/services/external/websocket.js.map +1 -0
  270. package/dist/services/external/xaman.d.ts +30 -0
  271. package/dist/services/external/xaman.js +46 -0
  272. package/dist/services/external/xaman.js.map +1 -0
  273. package/dist/services/external/xrplRpcClient.d.ts +39 -0
  274. package/dist/services/external/xrplRpcClient.js +167 -0
  275. package/dist/services/external/xrplRpcClient.js.map +1 -0
  276. package/dist/services/index.d.ts +4 -1
  277. package/dist/services/index.js +4 -1
  278. package/dist/services/index.js.map +1 -1
  279. package/dist/services/internal/assetsService.d.ts +4 -2
  280. package/dist/services/internal/assetsService.js +21 -5
  281. package/dist/services/internal/assetsService.js.map +1 -1
  282. package/dist/services/internal/bitcoinService.d.ts +3 -5
  283. package/dist/services/internal/bitcoinService.js +9 -1
  284. package/dist/services/internal/bitcoinService.js.map +1 -1
  285. package/dist/services/internal/configService.js +10 -2
  286. package/dist/services/internal/configService.js.map +1 -1
  287. package/dist/services/internal/cosmosService.d.ts +16 -14
  288. package/dist/services/internal/cosmosService.js +19 -2
  289. package/dist/services/internal/cosmosService.js.map +1 -1
  290. package/dist/services/internal/countryCurrencyMap.d.ts +13 -0
  291. package/dist/services/internal/countryCurrencyMap.js +1102 -0
  292. package/dist/services/internal/countryCurrencyMap.js.map +1 -0
  293. package/dist/services/internal/errorService.d.ts +18 -7
  294. package/dist/services/internal/errorService.js +34 -4
  295. package/dist/services/internal/errorService.js.map +1 -1
  296. package/dist/services/internal/estimateService.js +5 -5
  297. package/dist/services/internal/estimateService.js.map +1 -1
  298. package/dist/services/internal/eventService.d.ts +46 -0
  299. package/dist/services/internal/eventService.js +61 -5
  300. package/dist/services/internal/eventService.js.map +1 -1
  301. package/dist/services/internal/evmService.d.ts +3 -6
  302. package/dist/services/internal/evmService.js.map +1 -1
  303. package/dist/services/internal/fiatToCryptoService.d.ts +29 -0
  304. package/dist/services/internal/fiatToCryptoService.js +84 -0
  305. package/dist/services/internal/fiatToCryptoService.js.map +1 -0
  306. package/dist/services/internal/fiatToCryptoService.test.d.ts +1 -0
  307. package/dist/services/internal/fiatToCryptoService.test.js +45 -0
  308. package/dist/services/internal/fiatToCryptoService.test.js.map +1 -0
  309. package/dist/services/internal/numberService.d.ts +1 -0
  310. package/dist/services/internal/numberService.js +15 -0
  311. package/dist/services/internal/numberService.js.map +1 -1
  312. package/dist/services/internal/searchService.d.ts +1 -1
  313. package/dist/services/internal/searchService.js +18 -15
  314. package/dist/services/internal/searchService.js.map +1 -1
  315. package/dist/services/internal/sendTransaction.d.ts +53 -0
  316. package/dist/services/internal/sendTransaction.js +194 -0
  317. package/dist/services/internal/sendTransaction.js.map +1 -0
  318. package/dist/services/internal/sendTransactionStatus.d.ts +6 -0
  319. package/dist/services/internal/sendTransactionStatus.js +142 -0
  320. package/dist/services/internal/sendTransactionStatus.js.map +1 -0
  321. package/dist/services/internal/solanaService.d.ts +3 -6
  322. package/dist/services/internal/solanaService.js.map +1 -1
  323. package/dist/services/internal/stellarService.d.ts +4 -0
  324. package/dist/services/internal/stellarService.js +20 -0
  325. package/dist/services/internal/stellarService.js.map +1 -0
  326. package/dist/services/internal/suiService.d.ts +20 -0
  327. package/dist/services/internal/suiService.js +119 -0
  328. package/dist/services/internal/suiService.js.map +1 -0
  329. package/dist/services/internal/transactionService.d.ts +8 -37
  330. package/dist/services/internal/transactionService.js +33 -29
  331. package/dist/services/internal/transactionService.js.map +1 -1
  332. package/dist/services/internal/transactionStatusService.d.ts +16 -5
  333. package/dist/services/internal/transactionStatusService.js +82 -5
  334. package/dist/services/internal/transactionStatusService.js.map +1 -1
  335. package/dist/services/internal/walletService.d.ts +31 -16
  336. package/dist/services/internal/walletService.js +86 -33
  337. package/dist/services/internal/walletService.js.map +1 -1
  338. package/dist/services/internal/xionService.d.ts +1 -0
  339. package/dist/services/internal/xionService.js +6 -0
  340. package/dist/services/internal/xionService.js.map +1 -0
  341. package/dist/services/internal/xrplService.d.ts +17 -0
  342. package/dist/services/internal/xrplService.js +50 -0
  343. package/dist/services/internal/xrplService.js.map +1 -0
  344. package/dist/tests/assetsService.test.js +13 -26
  345. package/dist/tests/assetsService.test.js.map +1 -1
  346. package/dist/tests/numberService.test.js +12 -1
  347. package/dist/tests/numberService.test.js.map +1 -1
  348. package/dist/tests/searchService.test.js +0 -6
  349. package/dist/tests/searchService.test.js.map +1 -1
  350. package/dist/tests/swapConfig.test.js +72 -7
  351. package/dist/tests/swapConfig.test.js.map +1 -1
  352. package/dist/tests/transactionService.test.js +18 -18
  353. package/dist/tests/transactionService.test.js.map +1 -1
  354. package/package.json +19 -9
  355. package/dist/hooks/transaction/useSingleTransaction.d.ts +0 -10
  356. package/dist/hooks/transaction/useSingleTransaction.js.map +0 -1
@@ -0,0 +1,80 @@
1
+ export class SuiRpcClient {
2
+ /**
3
+ * Native Sui coin object type in long format.
4
+ * This is the format used by the Squid UI and API
5
+ */
6
+ suiNativeCoinObjectTypeLong = "0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI";
7
+ /**
8
+ * Native Sui coin object type in short format.
9
+ * This is the format used by RPC providers
10
+ */
11
+ suiNativeCoinObjectTypeShort = "0x2::sui::SUI";
12
+ rpcUrl;
13
+ constructor(rpcUrl) {
14
+ this.rpcUrl = rpcUrl;
15
+ }
16
+ /**
17
+ * Fetches the balance of a single Sui token for a given address.
18
+ */
19
+ async getBalance(userAddress, tokenAddress) {
20
+ const response = await this.call("suix_getBalance", [
21
+ userAddress,
22
+ this.toShortCoinObjectType(tokenAddress),
23
+ ]);
24
+ return {
25
+ ...response,
26
+ coinType: this.toLongCoinObjectType(response.coinType),
27
+ };
28
+ }
29
+ /**
30
+ * Fetches all Sui coin balances for a given address.
31
+ */
32
+ async getAllBalances(userAddress) {
33
+ const response = await this.call("suix_getAllBalances", [
34
+ userAddress,
35
+ ]);
36
+ return response.map((balance) => ({
37
+ ...balance,
38
+ coinType: this.toLongCoinObjectType(balance.coinType),
39
+ }));
40
+ }
41
+ async call(method, params) {
42
+ const response = await fetch(this.rpcUrl, {
43
+ method: "POST",
44
+ headers: {
45
+ "Content-Type": "application/json",
46
+ },
47
+ body: JSON.stringify({
48
+ jsonrpc: "2.0",
49
+ id: 1,
50
+ method,
51
+ params,
52
+ }),
53
+ });
54
+ const data = await response.json();
55
+ if (data.error) {
56
+ throw new Error(`RPC Error (${method}): ${data.error.message}`);
57
+ }
58
+ if (!data.result) {
59
+ throw new Error(`Invalid response from RPC (${method})`);
60
+ }
61
+ return data.result;
62
+ }
63
+ /**
64
+ * Parse native coin object type from the long format to the short format.
65
+ */
66
+ toShortCoinObjectType(coinObjectType) {
67
+ return coinObjectType === this.suiNativeCoinObjectTypeLong
68
+ ? this.suiNativeCoinObjectTypeShort
69
+ : coinObjectType;
70
+ }
71
+ /**
72
+ * Parse native coin object type from the short format to the long format.
73
+ */
74
+ toLongCoinObjectType(coinObjectType) {
75
+ return coinObjectType === this.suiNativeCoinObjectTypeShort
76
+ ? this.suiNativeCoinObjectTypeLong
77
+ : coinObjectType;
78
+ }
79
+ }
80
+ //# sourceMappingURL=suiRpcClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suiRpcClient.js","sourceRoot":"","sources":["../../../src/services/external/suiRpcClient.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,YAAY;IACvB;;;OAGG;IACK,2BAA2B,GACjC,8EAA8E,CAAC;IAEjF;;;OAGG;IACK,4BAA4B,GAAG,eAAe,CAAC;IAE/C,MAAM,CAAS;IAEvB,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CACd,WAAmB,EACnB,YAAoB;QAEpB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAiB,iBAAiB,EAAE;YAClE,WAAW;YACX,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC;SACzC,CAAC,CAAC;QAEH,OAAO;YACL,GAAG,QAAQ;YACX,QAAQ,EAAE,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,QAAQ,CAAC;SACvD,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,WAAmB;QACtC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAmB,qBAAqB,EAAE;YACxE,WAAW;SACZ,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAChC,GAAG,OAAO;YACV,QAAQ,EAAE,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC;SACtD,CAAC,CAAC,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,IAAI,CAAI,MAAc,EAAE,MAAa;QACjD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE;YACxC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,OAAO,EAAE,KAAK;gBACd,EAAE,EAAE,CAAC;gBACL,MAAM;gBACN,MAAM;aACP,CAAC;SACH,CAAC,CAAC;QAEH,MAAM,IAAI,GAAuB,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEvD,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,cAAc,MAAM,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;SACjE;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,GAAG,CAAC,CAAC;SAC1D;QAED,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,cAAsB;QAClD,OAAO,cAAc,KAAK,IAAI,CAAC,2BAA2B;YACxD,CAAC,CAAC,IAAI,CAAC,4BAA4B;YACnC,CAAC,CAAC,cAAc,CAAC;IACrB,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,cAAsB;QACjD,OAAO,cAAc,KAAK,IAAI,CAAC,4BAA4B;YACzD,CAAC,CAAC,IAAI,CAAC,2BAA2B;YAClC,CAAC,CAAC,cAAc,CAAC;IACrB,CAAC;CACF"}
@@ -0,0 +1,6 @@
1
+ type OnMessage<T> = (event: MessageEvent, resolve: (value: T) => void, reject: (reason?: any) => void) => void;
2
+ export declare function websocket<T>(url: string, onMessage: OnMessage<T>): {
3
+ promise: Promise<T>;
4
+ close: () => void;
5
+ };
6
+ export {};
@@ -0,0 +1,34 @@
1
+ export function websocket(url, onMessage) {
2
+ let ws;
3
+ let rejectFn;
4
+ const promise = new Promise((resolve, reject) => {
5
+ ws = new WebSocket(url);
6
+ rejectFn = reject;
7
+ ws.onopen = () => {
8
+ console.debug("WebSocket connected:", url);
9
+ };
10
+ ws.onmessage = (event) => {
11
+ onMessage(event, (value) => {
12
+ ws.close();
13
+ resolve(value);
14
+ }, (error) => {
15
+ ws.close();
16
+ reject(error);
17
+ });
18
+ };
19
+ ws.onerror = (error) => {
20
+ console.debug("WebSocket error:", error);
21
+ reject(new Error("WebSocket error"));
22
+ };
23
+ ws.onclose = () => {
24
+ console.debug("WebSocket closed");
25
+ };
26
+ });
27
+ const close = () => {
28
+ console.debug("WebSocket closed manually");
29
+ ws.close();
30
+ rejectFn(new Error("WebSocket closed"));
31
+ };
32
+ return { promise, close };
33
+ }
34
+ //# sourceMappingURL=websocket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../src/services/external/websocket.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,SAAS,CACvB,GAAW,EACX,SAAuB;IAKvB,IAAI,EAAa,CAAC;IAClB,IAAI,QAAgC,CAAC;IAErC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACjD,EAAE,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;QACxB,QAAQ,GAAG,MAAM,CAAC;QAElB,EAAE,CAAC,MAAM,GAAG,GAAG,EAAE;YACf,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;QAC7C,CAAC,CAAC;QAEF,EAAE,CAAC,SAAS,GAAG,CAAC,KAAK,EAAE,EAAE;YACvB,SAAS,CACP,KAAK,EACL,CAAC,KAAK,EAAE,EAAE;gBACR,EAAE,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;gBACR,EAAE,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;QAEF,EAAE,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE;YACrB,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;YACzC,MAAM,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC;QAEF,EAAE,CAAC,OAAO,GAAG,GAAG,EAAE;YAChB,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACpC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC3C,EAAE,CAAC,KAAK,EAAE,CAAC;QACX,QAAQ,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { XamanXrplNetwork, XrplNetwork, XrplTransaction } from "../../core/types/xrpl";
2
+ /**
3
+ * Client to interact with the Xaman backend through a Squid proxy.
4
+ * Retrieves the QR code data for the following methods:
5
+ * - sign in
6
+ * - get user session
7
+ * - send tx
8
+ */
9
+ export declare abstract class XamanClient {
10
+ static baseUrl: string;
11
+ static signIn(signal?: AbortSignal): Promise<{
12
+ qrMatrix: boolean[][];
13
+ wsStatusUrl: string;
14
+ }>;
15
+ static userSession(payload: string, signal?: AbortSignal): Promise<{
16
+ response: {
17
+ account: string;
18
+ };
19
+ }>;
20
+ static sendTx({ tx, signal, network, }: {
21
+ tx: XrplTransaction;
22
+ signal?: AbortSignal;
23
+ network: XrplNetwork;
24
+ }): Promise<{
25
+ qrMatrix: boolean[][];
26
+ wsStatusUrl: string;
27
+ }>;
28
+ static fetch<T>(endpoint: string, body?: Record<string, any>, signal?: AbortSignal): Promise<T>;
29
+ static getXamanNetwork(network: XrplNetwork): XamanXrplNetwork;
30
+ }
@@ -0,0 +1,46 @@
1
+ import { internalSquidXamanApiBaseUrl } from "../../core/constants";
2
+ import { XamanXrplNetwork, XrplNetwork, } from "../../core/types/xrpl";
3
+ /**
4
+ * Client to interact with the Xaman backend through a Squid proxy.
5
+ * Retrieves the QR code data for the following methods:
6
+ * - sign in
7
+ * - get user session
8
+ * - send tx
9
+ */
10
+ export class XamanClient {
11
+ // TODO: use prod url
12
+ static baseUrl = internalSquidXamanApiBaseUrl;
13
+ static async signIn(signal) {
14
+ return this.fetch("sign-in", undefined, signal);
15
+ }
16
+ static async userSession(payload, signal) {
17
+ return this.fetch("user-session", { payload }, signal);
18
+ }
19
+ static async sendTx({ tx, signal, network, }) {
20
+ const xamanNetwork = this.getXamanNetwork(network);
21
+ return this.fetch("send-tx", { tx, network: xamanNetwork }, signal);
22
+ }
23
+ static async fetch(endpoint, body, signal) {
24
+ const url = new URL(endpoint, this.baseUrl);
25
+ const res = await fetch(url.toString(), {
26
+ method: "POST",
27
+ body: body != null ? JSON.stringify(body) : undefined,
28
+ signal,
29
+ });
30
+ if (!res.ok) {
31
+ throw new Error(`Request failed with status ${res.status}`);
32
+ }
33
+ return res.json();
34
+ }
35
+ static getXamanNetwork(network) {
36
+ switch (network) {
37
+ case XrplNetwork.MAINNET:
38
+ return XamanXrplNetwork.MAINNET;
39
+ case XrplNetwork.TESTNET:
40
+ return XamanXrplNetwork.TESTNET;
41
+ default:
42
+ throw new Error(`Network ${network} is not supported`);
43
+ }
44
+ }
45
+ }
46
+ //# sourceMappingURL=xaman.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xaman.js","sourceRoot":"","sources":["../../../src/services/external/xaman.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EACL,gBAAgB,EAChB,WAAW,GAEZ,MAAM,uBAAuB,CAAC;AAE/B;;;;;;GAMG;AACH,MAAM,OAAgB,WAAW;IAC/B,qBAAqB;IACrB,MAAM,CAAC,OAAO,GAAG,4BAA4B,CAAC;IAE9C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAoB;QACtC,OAAO,IAAI,CAAC,KAAK,CAGd,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,MAAoB;QAC5D,OAAO,IAAI,CAAC,KAAK,CAId,cAAc,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAClB,EAAE,EACF,MAAM,EACN,OAAO,GAKR;QACC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEnD,OAAO,IAAI,CAAC,KAAK,CAGd,SAAS,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,KAAK,CAChB,QAAgB,EAChB,IAA0B,EAC1B,MAAoB;QAEpB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAE5C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;YACtC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;YACrD,MAAM;SACP,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;SAC7D;QAED,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,OAAoB;QACzC,QAAQ,OAAO,EAAE;YACf,KAAK,WAAW,CAAC,OAAO;gBACtB,OAAO,gBAAgB,CAAC,OAAO,CAAC;YAClC,KAAK,WAAW,CAAC,OAAO;gBACtB,OAAO,gBAAgB,CAAC,OAAO,CAAC;YAClC;gBACE,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,mBAAmB,CAAC,CAAC;SAC1D;IACH,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { TrustLine, XrplTokenBalance } from "../../core/types/xrpl";
2
+ type AccountLinesRpcResponse = {
3
+ account: string;
4
+ lines: TrustLine[];
5
+ };
6
+ export declare class XrplRpcClient {
7
+ private rpcUrl;
8
+ constructor(rpcUrl: string);
9
+ getBalance(address: string, tokenAddress: string): Promise<string>;
10
+ getAllBalances(address: string): Promise<XrplTokenBalance[]>;
11
+ getTrustLines(address: string, issuer?: string): Promise<AccountLinesRpcResponse>;
12
+ getTrustLine(address: string, issuer: string, currency: string): Promise<TrustLine | null>;
13
+ accountActivatedInfo(address: string): Promise<{
14
+ isActivated: boolean;
15
+ reserveBaseBn: bigint;
16
+ }>;
17
+ /**
18
+ * Waits for a transaction to be validated and returns its final status.
19
+ * Resolves to 'success' or throws an error with the failed status.
20
+ */
21
+ waitForTransaction(txHash: string, { interval, timeout }?: {
22
+ interval?: number | undefined;
23
+ timeout?: number | undefined;
24
+ }): Promise<string>;
25
+ private getServerState;
26
+ private getAccountInfo;
27
+ /**
28
+ * Returns the balance of the user in the native XRP token
29
+ * formatted as a string
30
+ */
31
+ private getNativeBalance;
32
+ /**
33
+ * Returns the balance of the user in the given issued currency (e.g. RLUSD)
34
+ * formatted as a string
35
+ */
36
+ private getIssuedCurrencyBalance;
37
+ private call;
38
+ }
39
+ export {};
@@ -0,0 +1,167 @@
1
+ import { nativeXrplTokenAddress } from "../../core/constants";
2
+ import { XrplTxStatus, } from "../../core/types/xrpl";
3
+ import { formatBNToReadable } from "../internal/numberService";
4
+ export class XrplRpcClient {
5
+ rpcUrl;
6
+ constructor(rpcUrl) {
7
+ this.rpcUrl = rpcUrl;
8
+ }
9
+ async getBalance(address, tokenAddress) {
10
+ if (tokenAddress.toLowerCase() === nativeXrplTokenAddress.toLowerCase()) {
11
+ return this.getNativeBalance(address);
12
+ }
13
+ return this.getIssuedCurrencyBalance(address, tokenAddress);
14
+ }
15
+ async getAllBalances(address) {
16
+ const [nativeBalance, trustLineBalances] = await Promise.all([
17
+ this.getNativeBalance(address),
18
+ this.getTrustLines(address),
19
+ ]);
20
+ return [
21
+ {
22
+ balance: nativeBalance,
23
+ address: nativeXrplTokenAddress,
24
+ },
25
+ ...trustLineBalances.lines.map((line) => ({
26
+ balance: line.balance,
27
+ address: `${line.currency}.${line.account}`,
28
+ })),
29
+ ];
30
+ }
31
+ async getTrustLines(address, issuer) {
32
+ return this.call("account_lines", [
33
+ {
34
+ account: address,
35
+ ledger_index: "validated",
36
+ peer: issuer,
37
+ },
38
+ ]);
39
+ }
40
+ async getTrustLine(address, issuer, currency) {
41
+ const response = await this.getTrustLines(address, issuer);
42
+ const trustLine = response.lines.find((line) => line.currency === currency);
43
+ return trustLine ?? null;
44
+ }
45
+ async accountActivatedInfo(address) {
46
+ const serverState = await this.getServerState();
47
+ const reserveBaseBn = BigInt(serverState.state.validated_ledger.reserve_base);
48
+ try {
49
+ const accountInfo = await this.getAccountInfo(address);
50
+ const balanceBn = BigInt(accountInfo.account_data.Balance);
51
+ return {
52
+ isActivated: balanceBn >= reserveBaseBn,
53
+ reserveBaseBn,
54
+ };
55
+ }
56
+ catch (error) {
57
+ if (error.message?.includes("actNotFound")) {
58
+ return { isActivated: false, reserveBaseBn };
59
+ }
60
+ throw error;
61
+ }
62
+ }
63
+ /**
64
+ * Waits for a transaction to be validated and returns its final status.
65
+ * Resolves to 'success' or throws an error with the failed status.
66
+ */
67
+ async waitForTransaction(txHash, { interval = 2_000, timeout = 20_000 } = {}) {
68
+ const startTime = Date.now();
69
+ while (true) {
70
+ try {
71
+ const response = await this.call("tx", [
72
+ {
73
+ transaction: txHash,
74
+ binary: false,
75
+ },
76
+ ]);
77
+ if (!response.validated) {
78
+ if (Date.now() - startTime > timeout) {
79
+ throw new Error(`Transaction ${txHash} not validated within timeout`);
80
+ }
81
+ // eslint-disable-next-line @typescript-eslint/no-loop-func
82
+ await new Promise((res) => setTimeout(res, interval));
83
+ continue;
84
+ }
85
+ const status = response.meta?.TransactionResult;
86
+ if (status === XrplTxStatus.SUCCESS) {
87
+ return status;
88
+ }
89
+ else {
90
+ throw new Error(`Transaction failed with status: ${status}`);
91
+ }
92
+ }
93
+ catch (error) {
94
+ // txnNotFound = still pending or non-existent
95
+ if (error?.message?.includes("txnNotFound")) {
96
+ if (Date.now() - startTime > timeout) {
97
+ throw new Error(`Transaction ${txHash} not found within timeout`);
98
+ }
99
+ // eslint-disable-next-line @typescript-eslint/no-loop-func
100
+ await new Promise((res) => setTimeout(res, interval));
101
+ continue;
102
+ }
103
+ throw error;
104
+ }
105
+ }
106
+ }
107
+ async getServerState() {
108
+ return this.call("server_state", [{}]);
109
+ }
110
+ async getAccountInfo(address) {
111
+ return this.call("account_info", [
112
+ {
113
+ account: address,
114
+ ledger_index: "validated",
115
+ },
116
+ ]);
117
+ }
118
+ /**
119
+ * Returns the balance of the user in the native XRP token
120
+ * formatted as a string
121
+ */
122
+ async getNativeBalance(address) {
123
+ const [accountInfo, serverState] = await Promise.all([
124
+ this.getAccountInfo(address),
125
+ this.getServerState(),
126
+ ]);
127
+ const balance = BigInt(accountInfo.account_data.Balance);
128
+ const ownerCount = BigInt(accountInfo.account_data.OwnerCount);
129
+ const reserveBase = BigInt(serverState.state.validated_ledger.reserve_base);
130
+ const reserveIncrement = BigInt(serverState.state.validated_ledger.reserve_inc);
131
+ const reserveBalance = reserveBase + ownerCount * reserveIncrement;
132
+ const spendableBalance = balance - reserveBalance;
133
+ return formatBNToReadable(spendableBalance, 6);
134
+ }
135
+ /**
136
+ * Returns the balance of the user in the given issued currency (e.g. RLUSD)
137
+ * formatted as a string
138
+ */
139
+ async getIssuedCurrencyBalance(address, tokenAddress) {
140
+ const response = await this.getTrustLines(address);
141
+ const tokenBalance = response.lines.find((line) => `${line.currency}.${line.account}` === tokenAddress);
142
+ return tokenBalance?.balance || "0";
143
+ }
144
+ async call(method, params) {
145
+ const response = await fetch(this.rpcUrl, {
146
+ method: "POST",
147
+ headers: {
148
+ "Content-Type": "application/json",
149
+ },
150
+ body: JSON.stringify({
151
+ jsonrpc: "2.0",
152
+ id: 1,
153
+ method,
154
+ params,
155
+ }),
156
+ });
157
+ const data = await response.json();
158
+ if (!data.result) {
159
+ throw new Error(`Invalid response from RPC (${method})`);
160
+ }
161
+ if ("error" in data.result) {
162
+ throw new Error(`Error from RPC (${method}): ${data.result.error}`);
163
+ }
164
+ return data.result;
165
+ }
166
+ }
167
+ //# sourceMappingURL=xrplRpcClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xrplRpcClient.js","sourceRoot":"","sources":["../../../src/services/external/xrplRpcClient.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export * from "./external/ens";
1
+ export * from "./external/";
2
2
  export * from "./internal/apiService";
3
3
  export * from "./internal/assetsService";
4
4
  export * from "./internal/configService";
@@ -6,6 +6,7 @@ export * from "./internal/cosmosService";
6
6
  export * from "./internal/errorService";
7
7
  export * from "./internal/eventService";
8
8
  export * from "./internal/evmService";
9
+ export * from "./internal/fiatToCryptoService";
9
10
  export * from "./internal/numberService";
10
11
  export * from "./internal/priceService";
11
12
  export * from "./internal/searchService";
@@ -13,3 +14,5 @@ export * from "./internal/solanaService";
13
14
  export * from "./internal/transactionService";
14
15
  export * from "./internal/transactionStatusService";
15
16
  export * from "./internal/walletService";
17
+ export * from "./internal/xionService";
18
+ export * from "./internal/xrplService";
@@ -1,4 +1,4 @@
1
- export * from "./external/ens";
1
+ export * from "./external/";
2
2
  export * from "./internal/apiService";
3
3
  export * from "./internal/assetsService";
4
4
  export * from "./internal/configService";
@@ -6,6 +6,7 @@ export * from "./internal/cosmosService";
6
6
  export * from "./internal/errorService";
7
7
  export * from "./internal/eventService";
8
8
  export * from "./internal/evmService";
9
+ export * from "./internal/fiatToCryptoService";
9
10
  export * from "./internal/numberService";
10
11
  export * from "./internal/priceService";
11
12
  export * from "./internal/searchService";
@@ -13,4 +14,6 @@ export * from "./internal/solanaService";
13
14
  export * from "./internal/transactionService";
14
15
  export * from "./internal/transactionStatusService";
15
16
  export * from "./internal/walletService";
17
+ export * from "./internal/xionService";
18
+ export * from "./internal/xrplService";
16
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC"}
@@ -4,6 +4,7 @@ import { QueryClient } from "@tanstack/react-query";
4
4
  import type { AppConfig } from "../../core/types/config";
5
5
  import { SwapParams } from "../../core/types/swap";
6
6
  import type { TokenGroup, TokenWithBalance } from "../../core/types/tokens";
7
+ export declare const assetsBaseUrl = "https://raw.githubusercontent.com/0xsquid/assets/main";
7
8
  export declare const shareSubgraphId: (token1: Token, token2: Token) => boolean;
8
9
  /**
9
10
  * Check if `tokenToCheck` shares any subgraph id with the tokens being compared
@@ -43,8 +44,7 @@ export declare function getDisabledChainsIds({ config, direction, }: {
43
44
  config: Pick<AppConfig, "disabledChains">;
44
45
  direction?: "from" | "to";
45
46
  }): string[];
46
- export declare const assetsBaseUrl = "https://raw.githubusercontent.com/0xsquid/assets/main";
47
- export declare function getTokenImage(token?: Pick<Token, "address" | "chainId">): string | undefined;
47
+ export declare function getTokenImage(token?: Pick<Token, "address" | "chainId">): string;
48
48
  /**
49
49
  * When user changes something from the SwapView
50
50
  * param changed can be chains, tokens, or destination address
@@ -106,6 +106,8 @@ export type AssetsColors = {
106
106
  export declare function fetchAssetsColors(): Promise<AssetsColors>;
107
107
  export declare function initializeSquidWithAssetsColors(squid: Squid, assetsColors: AssetsColors): void;
108
108
  export declare function isEmptyObject(obj: Record<string, unknown> | undefined): boolean;
109
+ export declare const normalizeTokenSymbol: (symbol: string) => string;
110
+ export declare const areTokenSymbolsCompatible: (symbol1: string, symbol2: string) => boolean;
109
111
  export declare function isEvmosChain(chain: ChainData | undefined): boolean;
110
112
  /**
111
113
  * Converts an evmos address (erc20/0x123...abc)
@@ -3,6 +3,8 @@ import BigNumber from "bignumber.js";
3
3
  import { CHAIN_IDS, destinationAddressResetValue, fallbackAddressResetValue, nativeEvmTokenAddress, } from "../../core/constants";
4
4
  import { filterTokensForDestination, getInitialOrDefaultTokenAddressForChain, getTokensForChain, } from "./configService";
5
5
  import { convertTokenAmountToUSD } from "./priceService";
6
+ import { isWalletAddressValid } from "./walletService";
7
+ export const assetsBaseUrl = "https://raw.githubusercontent.com/0xsquid/assets/main";
6
8
  export const shareSubgraphId = (token1, token2) => {
7
9
  return Boolean(token1?.subGraphIds?.some((sgi) => !!token2?.subGraphIds?.includes(sgi)) ||
8
10
  token2?.subGraphIds?.some((sgi) => !!token1?.subGraphIds?.includes(sgi)));
@@ -69,7 +71,6 @@ export function getDisabledChainsIds({ config, direction, }) {
69
71
  : [];
70
72
  return Array.from(new Set(disabledChainsOnDirection));
71
73
  }
72
- export const assetsBaseUrl = "https://raw.githubusercontent.com/0xsquid/assets/main";
73
74
  export function getTokenImage(token) {
74
75
  return `${assetsBaseUrl}/images/migration/webp/${getTokenAssetsKey(token)}.webp`;
75
76
  }
@@ -174,8 +175,11 @@ export const getNewSwapParamsFromInput = ({ inputParams, initialSwapRoute, token
174
175
  newDestinationAddress = undefined;
175
176
  }
176
177
  else {
177
- newDestinationAddress =
178
- destinationAddress ?? initialSwapRoute?.destinationAddress;
178
+ const destAddress = destinationAddress ?? initialSwapRoute?.destinationAddress;
179
+ const isNewDestAddressValid = isWalletAddressValid(chains.find((c) => c.chainId === destinationChainId), destAddress?.address);
180
+ if (isNewDestAddressValid) {
181
+ newDestinationAddress = destAddress;
182
+ }
179
183
  }
180
184
  let newFallbackAddress;
181
185
  if (destinationAddress?.address === destinationAddressResetValue ||
@@ -449,11 +453,12 @@ export const filterViewableTokens = (tokens) => {
449
453
  };
450
454
  export const getSecretNetworkBalances = async (chainData, cosmosAddress, squidTokens, keplrTypeWallet) => {
451
455
  const squidSecretTokens = squidTokens.filter((t) => t.chainId === CHAIN_IDS.SECRET);
452
- const { fetchAllSecretBalances } = await import("../../services/external/secretService");
456
+ const { fetchAllSecretBalances } = await import("../external/secretService");
453
457
  return fetchAllSecretBalances(chainData, cosmosAddress, squidSecretTokens, keplrTypeWallet);
454
458
  };
455
459
  export function getTokenAssetsKey(token) {
456
- return `${token?.chainId}_${token?.address?.replaceAll("/", "").toLowerCase()}`;
460
+ // Remove slashes and colons and lowercase token address
461
+ return `${token?.chainId}_${token?.address?.replace(/[/\:]/g, "").toLowerCase()}`;
457
462
  }
458
463
  export async function fetchAssetsColors() {
459
464
  try {
@@ -510,6 +515,11 @@ export function initializeSquidWithAssetsColors(squid, assetsColors) {
510
515
  }
511
516
  return {
512
517
  ...chain,
518
+ rpc:
519
+ // TODO: temp
520
+ chain.chainId === CHAIN_IDS.XRPL_TESTNET
521
+ ? "https://testnet.xrpl-labs.com/"
522
+ : chain.rpc,
513
523
  bgColor,
514
524
  };
515
525
  });
@@ -519,6 +529,12 @@ export function isEmptyObject(obj) {
519
529
  return true;
520
530
  return Object.values(obj).every((value) => value === undefined);
521
531
  }
532
+ export const normalizeTokenSymbol = (symbol) => {
533
+ return symbol.toUpperCase();
534
+ };
535
+ export const areTokenSymbolsCompatible = (symbol1, symbol2) => {
536
+ return normalizeTokenSymbol(symbol1) === normalizeTokenSymbol(symbol2);
537
+ };
522
538
  export function isEvmosChain(chain) {
523
539
  return chain?.isEvmos || false;
524
540
  }