@0xsquid/react-hooks 6.4.4-dex-widget-beta.0 → 6.4.4-stellar-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/client/index.d.ts +17 -0
- package/dist/core/client/index.js +40 -0
- package/dist/core/client/index.js.map +1 -0
- package/dist/core/connectors/bitcoin/errors/index.d.ts +2 -1
- package/dist/core/connectors/bitcoin/errors/index.js +1 -1
- package/dist/core/connectors/bitcoin/errors/index.js.map +1 -1
- package/dist/core/connectors/bitcoin/helpers.d.ts +15 -0
- package/dist/core/connectors/bitcoin/helpers.js +6 -1
- package/dist/core/connectors/bitcoin/helpers.js.map +1 -1
- package/dist/core/connectors/bitcoin/wallets/index.d.ts +1 -0
- package/dist/core/connectors/bitcoin/wallets/index.js +1 -0
- package/dist/core/connectors/bitcoin/wallets/index.js.map +1 -1
- package/dist/core/connectors/bitcoin/wallets/keplr.d.ts +11 -0
- package/dist/core/connectors/bitcoin/wallets/keplr.js +28 -0
- package/dist/core/connectors/bitcoin/wallets/keplr.js.map +1 -0
- package/dist/core/connectors/xrpl/CrossMark.d.ts +13 -0
- package/dist/core/connectors/xrpl/CrossMark.js +76 -0
- package/dist/core/connectors/xrpl/CrossMark.js.map +1 -0
- package/dist/core/connectors/xrpl/Xaman.d.ts +16 -0
- package/dist/core/connectors/xrpl/Xaman.js +80 -0
- package/dist/core/connectors/xrpl/Xaman.js.map +1 -0
- package/dist/core/connectors/xrpl/XamanQr.d.ts +15 -0
- package/dist/core/connectors/xrpl/XamanQr.js +78 -0
- package/dist/core/connectors/xrpl/XamanQr.js.map +1 -0
- package/dist/core/connectors/xrpl/XrplMetamaskSnap.d.ts +35 -0
- package/dist/core/connectors/xrpl/XrplMetamaskSnap.js +177 -0
- package/dist/core/connectors/xrpl/XrplMetamaskSnap.js.map +1 -0
- package/dist/core/constants.d.ts +18 -16
- package/dist/core/constants.js +57 -21
- package/dist/core/constants.js.map +1 -1
- package/dist/core/externalLinks.d.ts +1 -1
- package/dist/core/externalLinks.js +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.js +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/multicall3.d.ts +5 -1
- package/dist/core/multicall3.js +21 -1
- package/dist/core/multicall3.js.map +1 -1
- package/dist/core/providers/CosmosProvider.d.ts +1 -1
- package/dist/core/providers/CosmosProvider.js.map +1 -1
- package/dist/core/providers/SolanaProvider.d.ts +0 -2
- package/dist/core/providers/SolanaProvider.js.map +1 -1
- package/dist/core/providers/StellarProvider.d.ts +19 -0
- package/dist/core/providers/StellarProvider.js +15 -0
- package/dist/core/providers/StellarProvider.js.map +1 -0
- package/dist/core/providers/SuiProvider.d.ts +19 -0
- package/dist/core/providers/SuiProvider.js +15 -0
- package/dist/core/providers/SuiProvider.js.map +1 -0
- package/dist/core/providers/XrplProvider.d.ts +17 -0
- package/dist/core/providers/XrplProvider.js +15 -0
- package/dist/core/providers/XrplProvider.js.map +1 -0
- package/dist/core/queries/queries-keys.d.ts +29 -28
- package/dist/core/queries/queries-keys.js +88 -76
- package/dist/core/queries/queries-keys.js.map +1 -1
- package/dist/core/stellar-test.d.ts +1 -0
- package/dist/core/stellar-test.js +11 -0
- package/dist/core/stellar-test.js.map +1 -0
- package/dist/core/types/config.d.ts +2 -0
- package/dist/core/types/error.d.ts +4 -4
- package/dist/core/types/error.js.map +1 -1
- package/dist/core/types/event.d.ts +31 -1
- package/dist/core/types/history.d.ts +84 -0
- package/dist/core/types/history.js +7 -0
- package/dist/core/types/history.js.map +1 -0
- package/dist/core/types/index.d.ts +5 -1
- package/dist/core/types/index.js +3 -1
- package/dist/core/types/index.js.map +1 -1
- package/dist/core/types/onramps/index.d.ts +2 -0
- package/dist/core/types/onramps/index.js +3 -0
- package/dist/core/types/onramps/index.js.map +1 -0
- package/dist/core/types/onramps/onramp.d.ts +157 -0
- package/dist/core/types/onramps/onramp.js +2 -0
- package/dist/core/types/onramps/onramp.js.map +1 -0
- package/dist/core/types/onramps/revolut.d.ts +92 -0
- package/dist/core/types/onramps/revolut.js +2 -0
- package/dist/core/types/onramps/revolut.js.map +1 -0
- package/dist/core/types/rpc.d.ts +10 -0
- package/dist/core/types/rpc.js +2 -0
- package/dist/core/types/rpc.js.map +1 -0
- package/dist/core/types/stellar.d.ts +3 -0
- package/dist/core/types/stellar.js +2 -0
- package/dist/core/types/stellar.js.map +1 -0
- package/dist/core/types/sui.d.ts +14 -0
- package/dist/core/types/sui.js +2 -0
- package/dist/core/types/sui.js.map +1 -0
- package/dist/core/types/swap.d.ts +0 -5
- package/dist/core/types/swap.js +1 -6
- package/dist/core/types/swap.js.map +1 -1
- package/dist/core/types/transaction.d.ts +10 -31
- package/dist/core/types/transaction.js +6 -0
- package/dist/core/types/transaction.js.map +1 -1
- package/dist/core/types/wallet.d.ts +39 -4
- package/dist/core/types/wallet.js +4 -0
- package/dist/core/types/wallet.js.map +1 -1
- package/dist/core/types/xrpl.d.ts +70 -0
- package/dist/core/types/xrpl.js +20 -0
- package/dist/core/types/xrpl.js.map +1 -0
- package/dist/core/wagmiConfig.js +2 -8
- package/dist/core/wagmiConfig.js.map +1 -1
- package/dist/core/wallets.d.ts +2 -1
- package/dist/core/wallets.js +76 -21
- package/dist/core/wallets.js.map +1 -1
- package/dist/hooks/analytics/useTrackSearchEmpty.d.ts +12 -0
- package/dist/hooks/analytics/useTrackSearchEmpty.js +22 -0
- package/dist/hooks/analytics/useTrackSearchEmpty.js.map +1 -0
- package/dist/hooks/chains/useSquidChains.d.ts +1 -0
- package/dist/hooks/chains/useSquidChains.js +23 -4
- package/dist/hooks/chains/useSquidChains.js.map +1 -1
- package/dist/hooks/client/useClient.d.ts +2 -0
- package/dist/hooks/client/useClient.js +58 -1
- package/dist/hooks/client/useClient.js.map +1 -1
- package/dist/hooks/cosmos/useCosmos.d.ts +9 -0
- package/dist/hooks/cosmos/useCosmos.js +52 -52
- package/dist/hooks/cosmos/useCosmos.js.map +1 -1
- package/dist/hooks/cosmos/useCosmosForChain.d.ts +1 -1
- package/dist/hooks/cosmos/useCosmosForChain.js +20 -13
- package/dist/hooks/cosmos/useCosmosForChain.js.map +1 -1
- package/dist/hooks/index.d.ts +12 -1
- package/dist/hooks/index.js +12 -1
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/onramp/useFiatToCrypto.d.ts +84 -0
- package/dist/hooks/onramp/useFiatToCrypto.js +316 -0
- package/dist/hooks/onramp/useFiatToCrypto.js.map +1 -0
- package/dist/hooks/solana/useSolana.d.ts +2 -1
- package/dist/hooks/solana/useSolana.js +12 -4
- package/dist/hooks/solana/useSolana.js.map +1 -1
- package/dist/hooks/stellar/useStellar.d.ts +2 -0
- package/dist/hooks/stellar/useStellar.js +27 -0
- package/dist/hooks/stellar/useStellar.js.map +1 -0
- package/dist/hooks/stellar/useStellarWallets.d.ts +4 -0
- package/dist/hooks/stellar/useStellarWallets.js +12 -0
- package/dist/hooks/stellar/useStellarWallets.js.map +1 -0
- package/dist/hooks/store/useAddressBookStore.d.ts +1 -1
- package/dist/hooks/store/useAddressBookStore.js +6 -2
- package/dist/hooks/store/useAddressBookStore.js.map +1 -1
- package/dist/hooks/store/useHistoryStore.d.ts +33 -13
- package/dist/hooks/store/useHistoryStore.js +120 -32
- package/dist/hooks/store/useHistoryStore.js.map +1 -1
- package/dist/hooks/store/useSendTransactionStore.d.ts +20 -0
- package/dist/hooks/store/useSendTransactionStore.js +21 -0
- package/dist/hooks/store/useSendTransactionStore.js.map +1 -0
- package/dist/hooks/store/useSquidStore.d.ts +0 -5
- package/dist/hooks/store/useSquidStore.js +0 -2
- package/dist/hooks/store/useSquidStore.js.map +1 -1
- package/dist/hooks/store/useWalletStore.d.ts +8 -5
- package/dist/hooks/store/useWalletStore.js +13 -20
- package/dist/hooks/store/useWalletStore.js.map +1 -1
- package/dist/hooks/sui/useSui.d.ts +2 -0
- package/dist/hooks/sui/useSui.js +28 -0
- package/dist/hooks/sui/useSui.js.map +1 -0
- package/dist/hooks/sui/useSuiWallets.d.ts +7 -0
- package/dist/hooks/sui/useSuiWallets.js +42 -0
- package/dist/hooks/sui/useSuiWallets.js.map +1 -0
- package/dist/hooks/swap/useSwap.d.ts +1 -0
- package/dist/hooks/swap/useSwap.js +7 -13
- package/dist/hooks/swap/useSwap.js.map +1 -1
- package/dist/hooks/tokens/useAllConnectedWalletBalances.js +34 -1
- package/dist/hooks/tokens/useAllConnectedWalletBalances.js.map +1 -1
- package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.d.ts +4 -5
- package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js +52 -17
- package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js.map +1 -1
- package/dist/hooks/tokens/useBalance.d.ts +20 -246
- package/dist/hooks/tokens/useBalance.js +105 -25
- package/dist/hooks/tokens/useBalance.js.map +1 -1
- package/dist/hooks/tokens/useMultiChainBalance.d.ts +2 -2
- package/dist/hooks/tokens/useMultiChainBalance.js +56 -35
- package/dist/hooks/tokens/useMultiChainBalance.js.map +1 -1
- package/dist/hooks/tokens/useNativeBalance.d.ts +18 -18
- package/dist/hooks/tokens/useNativeBalance.js +184 -56
- package/dist/hooks/tokens/useNativeBalance.js.map +1 -1
- package/dist/hooks/tokens/useNativeTokenForChain.js +10 -4
- package/dist/hooks/tokens/useNativeTokenForChain.js.map +1 -1
- package/dist/hooks/tokens/useSquidTokens.d.ts +4 -11
- package/dist/hooks/tokens/useSquidTokens.js +18 -16
- package/dist/hooks/tokens/useSquidTokens.js.map +1 -1
- package/dist/hooks/transaction/send/useEstimateSendTransactionGas.d.ts +28 -0
- package/dist/hooks/transaction/send/useEstimateSendTransactionGas.js +58 -0
- package/dist/hooks/transaction/send/useEstimateSendTransactionGas.js.map +1 -0
- package/dist/hooks/transaction/send/useSendTransaction.d.ts +13 -0
- package/dist/hooks/transaction/send/useSendTransaction.js +256 -0
- package/dist/hooks/transaction/send/useSendTransaction.js.map +1 -0
- package/dist/hooks/transaction/send/useSendTransactionGas.d.ts +6 -0
- package/dist/hooks/transaction/send/useSendTransactionGas.js +73 -0
- package/dist/hooks/transaction/send/useSendTransactionGas.js.map +1 -0
- package/dist/hooks/transaction/useAllTransactionsStatus.d.ts +34 -2
- package/dist/hooks/transaction/useAllTransactionsStatus.js +119 -62
- package/dist/hooks/transaction/useAllTransactionsStatus.js.map +1 -1
- package/dist/hooks/transaction/useApproval.js +3 -3
- package/dist/hooks/transaction/useApproval.js.map +1 -1
- package/dist/hooks/transaction/useEstimate.d.ts +1 -1
- package/dist/hooks/transaction/useEstimate.js +1 -1
- package/dist/hooks/transaction/useEstimate.js.map +1 -1
- package/dist/hooks/transaction/useEstimatePriceImpact.d.ts +1 -2
- package/dist/hooks/transaction/useEstimatePriceImpact.js +12 -12
- package/dist/hooks/transaction/useEstimatePriceImpact.js.map +1 -1
- package/dist/hooks/transaction/useExecuteTransaction.d.ts +1 -2
- package/dist/hooks/transaction/useExecuteTransaction.js +202 -74
- package/dist/hooks/transaction/useExecuteTransaction.js.map +1 -1
- package/dist/hooks/transaction/useGetRoute.d.ts +7 -2
- package/dist/hooks/transaction/useGetRoute.js +12 -9
- package/dist/hooks/transaction/useGetRoute.js.map +1 -1
- package/dist/hooks/transaction/useSendTransactionStatus.d.ts +11 -0
- package/dist/hooks/transaction/useSendTransactionStatus.js +63 -0
- package/dist/hooks/transaction/useSendTransactionStatus.js.map +1 -0
- package/dist/hooks/transaction/useSwapTransactionStatus.d.ts +15 -0
- package/dist/hooks/transaction/{useSingleTransaction.js → useSwapTransactionStatus.js} +40 -18
- package/dist/hooks/transaction/useSwapTransactionStatus.js.map +1 -0
- package/dist/hooks/user/useAvatar.js +13 -7
- package/dist/hooks/user/useAvatar.js.map +1 -1
- package/dist/hooks/user/useHistory.d.ts +12 -10
- package/dist/hooks/user/useHistory.js +49 -51
- package/dist/hooks/user/useHistory.js.map +1 -1
- package/dist/hooks/user/useUserParams.js +1 -1
- package/dist/hooks/user/useUserParams.js.map +1 -1
- package/dist/hooks/utils/useUtils.d.ts +7 -0
- package/dist/hooks/utils/useUtils.js +20 -0
- package/dist/hooks/utils/useUtils.js.map +1 -0
- package/dist/hooks/wallet/useEns.d.ts +0 -1
- package/dist/hooks/wallet/useEns.js +1 -13
- package/dist/hooks/wallet/useEns.js.map +1 -1
- package/dist/hooks/wallet/useGnosisContext.js +7 -11
- package/dist/hooks/wallet/useGnosisContext.js.map +1 -1
- package/dist/hooks/wallet/useIntegratorContext.js +1 -1
- package/dist/hooks/wallet/useIntegratorContext.js.map +1 -1
- package/dist/hooks/wallet/useMultiChainWallet.d.ts +3 -1
- package/dist/hooks/wallet/useMultiChainWallet.js +78 -24
- package/dist/hooks/wallet/useMultiChainWallet.js.map +1 -1
- package/dist/hooks/wallet/useSigner.d.ts +10 -7
- package/dist/hooks/wallet/useSigner.js +62 -14
- package/dist/hooks/wallet/useSigner.js.map +1 -1
- package/dist/hooks/wallet/useWallet.d.ts +65 -8
- package/dist/hooks/wallet/useWallet.js +69 -12
- package/dist/hooks/wallet/useWallet.js.map +1 -1
- package/dist/hooks/wallet/useWallets.d.ts +31 -1
- package/dist/hooks/wallet/useWallets.js +35 -1
- package/dist/hooks/wallet/useWallets.js.map +1 -1
- package/dist/hooks/xrpl/useXrpl.d.ts +2 -0
- package/dist/hooks/xrpl/useXrpl.js +21 -0
- package/dist/hooks/xrpl/useXrpl.js.map +1 -0
- package/dist/hooks/xrpl/useXrplTrustLine.d.ts +17 -0
- package/dist/hooks/xrpl/useXrplTrustLine.js +136 -0
- package/dist/hooks/xrpl/useXrplTrustLine.js.map +1 -0
- package/dist/hooks/xrpl/useXrplWallets.d.ts +4 -0
- package/dist/hooks/xrpl/useXrplWallets.js +46 -0
- package/dist/hooks/xrpl/useXrplWallets.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/provider/index.d.ts +1 -1
- package/dist/provider/index.js +14 -9
- package/dist/provider/index.js.map +1 -1
- package/dist/services/external/cosmosRestClient.d.ts +18 -0
- package/dist/services/external/cosmosRestClient.js +45 -0
- package/dist/services/external/cosmosRestClient.js.map +1 -0
- package/dist/services/external/index.d.ts +1 -0
- package/dist/services/external/index.js +2 -0
- package/dist/services/external/index.js.map +1 -0
- package/dist/services/external/onrampAdapter.d.ts +12 -0
- package/dist/services/external/onrampAdapter.js +41 -0
- package/dist/services/external/onrampAdapter.js.map +1 -0
- package/dist/services/external/rpcService.d.ts +15 -8
- package/dist/services/external/rpcService.js +84 -64
- package/dist/services/external/rpcService.js.map +1 -1
- package/dist/services/external/suiRpcClient.d.ts +32 -0
- package/dist/services/external/suiRpcClient.js +80 -0
- package/dist/services/external/suiRpcClient.js.map +1 -0
- package/dist/services/external/websocket.d.ts +6 -0
- package/dist/services/external/websocket.js +34 -0
- package/dist/services/external/websocket.js.map +1 -0
- package/dist/services/external/xaman.d.ts +30 -0
- package/dist/services/external/xaman.js +46 -0
- package/dist/services/external/xaman.js.map +1 -0
- package/dist/services/external/xrplRpcClient.d.ts +39 -0
- package/dist/services/external/xrplRpcClient.js +167 -0
- package/dist/services/external/xrplRpcClient.js.map +1 -0
- package/dist/services/index.d.ts +4 -1
- package/dist/services/index.js +4 -1
- package/dist/services/index.js.map +1 -1
- package/dist/services/internal/assetsService.d.ts +4 -2
- package/dist/services/internal/assetsService.js +21 -5
- package/dist/services/internal/assetsService.js.map +1 -1
- package/dist/services/internal/bitcoinService.d.ts +3 -5
- package/dist/services/internal/bitcoinService.js +9 -1
- package/dist/services/internal/bitcoinService.js.map +1 -1
- package/dist/services/internal/configService.js +10 -2
- package/dist/services/internal/configService.js.map +1 -1
- package/dist/services/internal/cosmosService.d.ts +16 -14
- package/dist/services/internal/cosmosService.js +19 -2
- package/dist/services/internal/cosmosService.js.map +1 -1
- package/dist/services/internal/countryCurrencyMap.d.ts +13 -0
- package/dist/services/internal/countryCurrencyMap.js +1102 -0
- package/dist/services/internal/countryCurrencyMap.js.map +1 -0
- package/dist/services/internal/errorService.d.ts +18 -7
- package/dist/services/internal/errorService.js +34 -4
- package/dist/services/internal/errorService.js.map +1 -1
- package/dist/services/internal/estimateService.js +5 -5
- package/dist/services/internal/estimateService.js.map +1 -1
- package/dist/services/internal/eventService.d.ts +46 -0
- package/dist/services/internal/eventService.js +61 -5
- package/dist/services/internal/eventService.js.map +1 -1
- package/dist/services/internal/evmService.d.ts +3 -6
- package/dist/services/internal/evmService.js.map +1 -1
- package/dist/services/internal/fiatToCryptoService.d.ts +29 -0
- package/dist/services/internal/fiatToCryptoService.js +84 -0
- package/dist/services/internal/fiatToCryptoService.js.map +1 -0
- package/dist/services/internal/fiatToCryptoService.test.d.ts +1 -0
- package/dist/services/internal/fiatToCryptoService.test.js +45 -0
- package/dist/services/internal/fiatToCryptoService.test.js.map +1 -0
- package/dist/services/internal/numberService.d.ts +1 -0
- package/dist/services/internal/numberService.js +15 -0
- package/dist/services/internal/numberService.js.map +1 -1
- package/dist/services/internal/searchService.d.ts +1 -1
- package/dist/services/internal/searchService.js +18 -15
- package/dist/services/internal/searchService.js.map +1 -1
- package/dist/services/internal/sendTransaction.d.ts +53 -0
- package/dist/services/internal/sendTransaction.js +194 -0
- package/dist/services/internal/sendTransaction.js.map +1 -0
- package/dist/services/internal/sendTransactionStatus.d.ts +6 -0
- package/dist/services/internal/sendTransactionStatus.js +142 -0
- package/dist/services/internal/sendTransactionStatus.js.map +1 -0
- package/dist/services/internal/solanaService.d.ts +3 -6
- package/dist/services/internal/solanaService.js.map +1 -1
- package/dist/services/internal/stellarService.d.ts +4 -0
- package/dist/services/internal/stellarService.js +20 -0
- package/dist/services/internal/stellarService.js.map +1 -0
- package/dist/services/internal/suiService.d.ts +20 -0
- package/dist/services/internal/suiService.js +119 -0
- package/dist/services/internal/suiService.js.map +1 -0
- package/dist/services/internal/transactionService.d.ts +8 -37
- package/dist/services/internal/transactionService.js +33 -29
- package/dist/services/internal/transactionService.js.map +1 -1
- package/dist/services/internal/transactionStatusService.d.ts +16 -5
- package/dist/services/internal/transactionStatusService.js +82 -5
- package/dist/services/internal/transactionStatusService.js.map +1 -1
- package/dist/services/internal/walletService.d.ts +31 -16
- package/dist/services/internal/walletService.js +86 -33
- package/dist/services/internal/walletService.js.map +1 -1
- package/dist/services/internal/xionService.d.ts +1 -0
- package/dist/services/internal/xionService.js +6 -0
- package/dist/services/internal/xionService.js.map +1 -0
- package/dist/services/internal/xrplService.d.ts +17 -0
- package/dist/services/internal/xrplService.js +50 -0
- package/dist/services/internal/xrplService.js.map +1 -0
- package/dist/tests/assetsService.test.js +13 -26
- package/dist/tests/assetsService.test.js.map +1 -1
- package/dist/tests/numberService.test.js +12 -1
- package/dist/tests/numberService.test.js.map +1 -1
- package/dist/tests/searchService.test.js +0 -6
- package/dist/tests/searchService.test.js.map +1 -1
- package/dist/tests/swapConfig.test.js +72 -7
- package/dist/tests/swapConfig.test.js.map +1 -1
- package/dist/tests/transactionService.test.js +18 -18
- package/dist/tests/transactionService.test.js.map +1 -1
- package/package.json +18 -8
- package/dist/hooks/transaction/useSingleTransaction.d.ts +0 -10
- 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,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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"}
|
package/dist/services/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from "./external/
|
|
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";
|
package/dist/services/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from "./external/
|
|
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,
|
|
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
|
|
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
|
-
|
|
178
|
-
|
|
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("
|
|
456
|
+
const { fetchAllSecretBalances } = await import("../external/secretService");
|
|
453
457
|
return fetchAllSecretBalances(chainData, cosmosAddress, squidSecretTokens, keplrTypeWallet);
|
|
454
458
|
};
|
|
455
459
|
export function getTokenAssetsKey(token) {
|
|
456
|
-
|
|
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
|
}
|