@0xsquid/react-hooks 6.4.1-beta.4 → 6.4.1-onramp-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.
- package/dist/core/connectors/bitcoin/helpers.d.ts +0 -15
- package/dist/core/connectors/bitcoin/helpers.js +1 -6
- package/dist/core/connectors/bitcoin/helpers.js.map +1 -1
- package/dist/core/constants.d.ts +3 -1
- package/dist/core/constants.js +3 -6
- package/dist/core/constants.js.map +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/providers/SolanaProvider.d.ts +2 -0
- package/dist/core/providers/SolanaProvider.js.map +1 -1
- package/dist/core/queries/queries-keys.d.ts +26 -11
- package/dist/core/queries/queries-keys.js +81 -31
- package/dist/core/queries/queries-keys.js.map +1 -1
- 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 +8 -0
- package/dist/core/types/index.d.ts +2 -4
- package/dist/core/types/index.js +1 -2
- package/dist/core/types/index.js.map +1 -1
- package/dist/core/types/onramps/onramp.d.ts +76 -2
- package/dist/core/types/transaction.d.ts +32 -10
- package/dist/core/types/transaction.js +0 -6
- package/dist/core/types/transaction.js.map +1 -1
- package/dist/core/wagmiConfig.js +8 -2
- package/dist/core/wagmiConfig.js.map +1 -1
- package/dist/hooks/cosmos/useCosmos.d.ts +0 -9
- package/dist/hooks/cosmos/useCosmos.js +18 -25
- package/dist/hooks/cosmos/useCosmos.js.map +1 -1
- package/dist/hooks/cosmos/useCosmosForChain.d.ts +1 -1
- package/dist/hooks/cosmos/useCosmosForChain.js +11 -7
- package/dist/hooks/cosmos/useCosmosForChain.js.map +1 -1
- package/dist/hooks/index.d.ts +2 -7
- package/dist/hooks/index.js +2 -7
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/onramp/useFiatToCrypto.d.ts +52 -44
- package/dist/hooks/onramp/useFiatToCrypto.js +160 -83
- package/dist/hooks/onramp/useFiatToCrypto.js.map +1 -1
- package/dist/hooks/solana/useSolana.d.ts +1 -2
- package/dist/hooks/solana/useSolana.js +2 -4
- package/dist/hooks/solana/useSolana.js.map +1 -1
- package/dist/hooks/store/useFiatTransactionStore.d.ts +20 -0
- package/dist/hooks/store/useFiatTransactionStore.js +39 -0
- package/dist/hooks/store/useFiatTransactionStore.js.map +1 -0
- package/dist/hooks/store/useHistoryStore.d.ts +13 -33
- package/dist/hooks/store/useHistoryStore.js +32 -120
- package/dist/hooks/store/useHistoryStore.js.map +1 -1
- package/dist/hooks/transaction/useAllTransactionsStatus.d.ts +3 -34
- package/dist/hooks/transaction/useAllTransactionsStatus.js +61 -130
- package/dist/hooks/transaction/useAllTransactionsStatus.js.map +1 -1
- package/dist/hooks/transaction/useApproval.js +2 -2
- package/dist/hooks/transaction/useApproval.js.map +1 -1
- package/dist/hooks/transaction/useEstimate.d.ts +1 -1
- package/dist/hooks/transaction/useExecuteTransaction.d.ts +1 -1
- package/dist/hooks/transaction/useExecuteTransaction.js +43 -40
- package/dist/hooks/transaction/useExecuteTransaction.js.map +1 -1
- package/dist/hooks/transaction/useSingleTransaction.d.ts +10 -0
- package/dist/hooks/transaction/{useSwapTransactionStatus.js → useSingleTransaction.js} +17 -40
- package/dist/hooks/transaction/useSingleTransaction.js.map +1 -0
- package/dist/hooks/user/useHistory.d.ts +9 -11
- package/dist/hooks/user/useHistory.js +47 -39
- package/dist/hooks/user/useHistory.js.map +1 -1
- package/dist/hooks/wallet/useMultiChainWallet.d.ts +0 -1
- package/dist/hooks/wallet/useMultiChainWallet.js +0 -18
- package/dist/hooks/wallet/useMultiChainWallet.js.map +1 -1
- package/dist/hooks/wallet/useSigner.d.ts +7 -7
- package/dist/hooks/wallet/useSigner.js +13 -37
- package/dist/hooks/wallet/useSigner.js.map +1 -1
- package/dist/services/external/index.d.ts +0 -2
- package/dist/services/external/index.js +0 -2
- package/dist/services/external/index.js.map +1 -1
- 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/internal/errorService.d.ts +7 -3
- package/dist/services/internal/errorService.js.map +1 -1
- package/dist/services/internal/estimateService.js +3 -3
- package/dist/services/internal/estimateService.js.map +1 -1
- package/dist/services/internal/eventService.d.ts +16 -0
- package/dist/services/internal/eventService.js +14 -0
- package/dist/services/internal/eventService.js.map +1 -1
- package/dist/services/internal/fiatToCryptoService.d.ts +1 -14
- package/dist/services/internal/fiatToCryptoService.js +0 -29
- package/dist/services/internal/fiatToCryptoService.js.map +1 -1
- package/dist/services/internal/numberService.d.ts +1 -1
- package/dist/services/internal/numberService.js.map +1 -1
- package/dist/services/internal/transactionService.d.ts +36 -8
- package/dist/services/internal/transactionService.js +26 -27
- package/dist/services/internal/transactionService.js.map +1 -1
- package/dist/services/internal/transactionStatusService.d.ts +5 -16
- package/dist/services/internal/transactionStatusService.js +5 -78
- package/dist/services/internal/transactionStatusService.js.map +1 -1
- package/dist/tests/transactionService.test.js +18 -18
- package/dist/tests/transactionService.test.js.map +1 -1
- package/package.json +1 -1
- package/dist/core/client/index.d.ts +0 -12
- package/dist/core/client/index.js +0 -30
- package/dist/core/client/index.js.map +0 -1
- package/dist/core/types/history.d.ts +0 -82
- package/dist/core/types/history.js +0 -7
- package/dist/core/types/history.js.map +0 -1
- package/dist/hooks/store/useSendTransactionStore.d.ts +0 -20
- package/dist/hooks/store/useSendTransactionStore.js +0 -21
- package/dist/hooks/store/useSendTransactionStore.js.map +0 -1
- package/dist/hooks/transaction/send/useEstimateSendTransactionGas.d.ts +0 -27
- package/dist/hooks/transaction/send/useEstimateSendTransactionGas.js +0 -57
- package/dist/hooks/transaction/send/useEstimateSendTransactionGas.js.map +0 -1
- package/dist/hooks/transaction/send/useSendTransaction.d.ts +0 -13
- package/dist/hooks/transaction/send/useSendTransaction.js +0 -155
- package/dist/hooks/transaction/send/useSendTransaction.js.map +0 -1
- package/dist/hooks/transaction/send/useSendTransactionGas.d.ts +0 -5
- package/dist/hooks/transaction/send/useSendTransactionGas.js +0 -67
- package/dist/hooks/transaction/send/useSendTransactionGas.js.map +0 -1
- package/dist/hooks/transaction/useSendTransactionStatus.d.ts +0 -11
- package/dist/hooks/transaction/useSendTransactionStatus.js +0 -53
- package/dist/hooks/transaction/useSendTransactionStatus.js.map +0 -1
- package/dist/hooks/transaction/useSwapTransactionStatus.d.ts +0 -15
- package/dist/hooks/transaction/useSwapTransactionStatus.js.map +0 -1
- package/dist/services/external/baseAdapter.d.ts +0 -31
- package/dist/services/external/baseAdapter.js +0 -20
- package/dist/services/external/baseAdapter.js.map +0 -1
- package/dist/services/external/onramperClientAdapter.d.ts +0 -15
- package/dist/services/external/onramperClientAdapter.js +0 -130
- package/dist/services/external/onramperClientAdapter.js.map +0 -1
- package/dist/services/external/revolutClientAdapter.d.ts +0 -30
- package/dist/services/external/revolutClientAdapter.js +0 -195
- package/dist/services/external/revolutClientAdapter.js.map +0 -1
- package/dist/services/internal/sendTransaction.d.ts +0 -35
- package/dist/services/internal/sendTransaction.js +0 -66
- package/dist/services/internal/sendTransaction.js.map +0 -1
- package/dist/services/internal/sendTransactionStatus.d.ts +0 -6
- package/dist/services/internal/sendTransactionStatus.js +0 -90
- package/dist/services/internal/sendTransactionStatus.js.map +0 -1
- package/dist/tests/revolutClientAdapter.test.d.ts +0 -1
- package/dist/tests/revolutClientAdapter.test.js +0 -181
- package/dist/tests/revolutClientAdapter.test.js.map +0 -1
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { useMemo } from "react";
|
|
2
|
-
import { chainTypeToNativeTokenAddressMap } from "../../../core/constants";
|
|
3
|
-
import { useNativeBalance } from "../../../hooks/tokens/useNativeBalance";
|
|
4
|
-
import { parseToBigInt } from "../../../services";
|
|
5
|
-
import { calculateMinAmountValueWarnMsg } from "../../../services/internal/estimateService";
|
|
6
|
-
import { useSendTransactionGas } from "./useSendTransactionGas";
|
|
7
|
-
export function useEstimateSendTransaction({ chain, token, amount, balance, }) {
|
|
8
|
-
const { data: estimatedGas = BigInt(0), isLoading } = useSendTransactionGas({
|
|
9
|
-
chain,
|
|
10
|
-
token,
|
|
11
|
-
});
|
|
12
|
-
const { nativeBalance } = useNativeBalance(chain);
|
|
13
|
-
const isNativeBalanceEnoughToPayGasFees = useMemo(() => {
|
|
14
|
-
if (!nativeBalance?.value || !amount || !token?.decimals) {
|
|
15
|
-
return false;
|
|
16
|
-
}
|
|
17
|
-
const isTokenNative = token.address.toLowerCase() ===
|
|
18
|
-
chainTypeToNativeTokenAddressMap[token.type].toLowerCase();
|
|
19
|
-
if (isTokenNative) {
|
|
20
|
-
return (parseToBigInt(amount, token.decimals) + estimatedGas <=
|
|
21
|
-
nativeBalance.value);
|
|
22
|
-
}
|
|
23
|
-
return estimatedGas <= nativeBalance.value;
|
|
24
|
-
}, [amount, estimatedGas, nativeBalance?.value, token]);
|
|
25
|
-
const isBalanceEnough = useMemo(() => {
|
|
26
|
-
if (token?.decimals == null || !balance || !amount)
|
|
27
|
-
return false;
|
|
28
|
-
return (parseToBigInt(balance, token.decimals) >=
|
|
29
|
-
parseToBigInt(amount, token.decimals));
|
|
30
|
-
}, [amount, balance, token?.decimals]);
|
|
31
|
-
const minAmountValueWarnMsg = useMemo(() => {
|
|
32
|
-
if (!token?.address || !nativeBalance?.value || !estimatedGas)
|
|
33
|
-
return undefined;
|
|
34
|
-
const isFromTokenNative = token.address.toLowerCase() ===
|
|
35
|
-
chainTypeToNativeTokenAddressMap[token.type].toLowerCase();
|
|
36
|
-
return calculateMinAmountValueWarnMsg({
|
|
37
|
-
isFromTokenNative,
|
|
38
|
-
nativeTokenBalanceFromChainWei: nativeBalance.value,
|
|
39
|
-
sourceChainNativeTokenDecimals: nativeBalance.decimals,
|
|
40
|
-
totalFeesInNativeTokenPlusRatio: estimatedGas,
|
|
41
|
-
});
|
|
42
|
-
}, [
|
|
43
|
-
estimatedGas,
|
|
44
|
-
nativeBalance?.decimals,
|
|
45
|
-
nativeBalance?.value,
|
|
46
|
-
token?.address,
|
|
47
|
-
token?.type,
|
|
48
|
-
]);
|
|
49
|
-
return {
|
|
50
|
-
estimatedGas,
|
|
51
|
-
isBalanceEnough,
|
|
52
|
-
isLoading,
|
|
53
|
-
isNativeBalanceEnoughToPayGasFees,
|
|
54
|
-
minAmountValueWarnMsg,
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=useEstimateSendTransactionGas.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useEstimateSendTransactionGas.js","sourceRoot":"","sources":["../../../../src/hooks/transaction/send/useEstimateSendTransactionGas.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,gCAAgC,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,8BAA8B,EAAE,MAAM,4CAA4C,CAAC;AAC5F,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAsBhE,MAAM,UAAU,0BAA0B,CAAC,EACzC,KAAK,EACL,KAAK,EACL,MAAM,EACN,OAAO,GAMR;IACC,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,qBAAqB,CAAC;QAC1E,KAAK;QACL,KAAK;KACN,CAAC,CAAC;IAEH,MAAM,EAAE,aAAa,EAAE,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAElD,MAAM,iCAAiC,GAAG,OAAO,CAAC,GAAG,EAAE;QACrD,IAAI,CAAC,aAAa,EAAE,KAAK,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE;YACxD,OAAO,KAAK,CAAC;SACd;QAED,MAAM,aAAa,GACjB,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE;YAC3B,gCAAgC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAE7D,IAAI,aAAa,EAAE;YACjB,OAAO,CACL,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,YAAY;gBACpD,aAAa,CAAC,KAAK,CACpB,CAAC;SACH;QAED,OAAO,YAAY,IAAI,aAAa,CAAC,KAAK,CAAC;IAC7C,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAExD,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,EAAE;QACnC,IAAI,KAAK,EAAE,QAAQ,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAEjE,OAAO,CACL,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC;YACtC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CACtC,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEvC,MAAM,qBAAqB,GAAG,OAAO,CAAC,GAAG,EAAE;QACzC,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,CAAC,aAAa,EAAE,KAAK,IAAI,CAAC,YAAY;YAC3D,OAAO,SAAS,CAAC;QAEnB,MAAM,iBAAiB,GACrB,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE;YAC3B,gCAAgC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAE7D,OAAO,8BAA8B,CAAC;YACpC,iBAAiB;YACjB,8BAA8B,EAAE,aAAa,CAAC,KAAK;YACnD,8BAA8B,EAAE,aAAa,CAAC,QAAQ;YACtD,+BAA+B,EAAE,YAAY;SAC9C,CAAC,CAAC;IACL,CAAC,EAAE;QACD,YAAY;QACZ,aAAa,EAAE,QAAQ;QACvB,aAAa,EAAE,KAAK;QACpB,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,IAAI;KACZ,CAAC,CAAC;IAEH,OAAO;QACL,YAAY;QACZ,eAAe;QACf,SAAS;QACT,iCAAiC;QACjC,qBAAqB;KACtB,CAAC;AACJ,CAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { ChainData, Token } from "@0xsquid/squid-types";
|
|
2
|
-
interface UseSendTransactionParams {
|
|
3
|
-
to: string | undefined;
|
|
4
|
-
amount: string | undefined;
|
|
5
|
-
token: Token | undefined;
|
|
6
|
-
chain: ChainData | undefined;
|
|
7
|
-
}
|
|
8
|
-
interface UseSendTransactionReturnType {
|
|
9
|
-
sendTransaction: () => void;
|
|
10
|
-
isSignerReady: boolean;
|
|
11
|
-
}
|
|
12
|
-
export declare function useSendTransaction({ to, amount, token, chain, }: UseSendTransactionParams): UseSendTransactionReturnType;
|
|
13
|
-
export {};
|
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
import { ChainType } from "@0xsquid/squid-types";
|
|
2
|
-
import { useMutation, useQueryClient } from "@tanstack/react-query";
|
|
3
|
-
import { useCallback } from "react";
|
|
4
|
-
import { getPrefixKey, QueryKeys } from "../../../core/queries/queries-keys";
|
|
5
|
-
import { HistoryTxType } from "../../../core/types/history";
|
|
6
|
-
import { SendTransactionStatus } from "../../../core/types/transaction";
|
|
7
|
-
import { useHistoryStore } from "../../../hooks/store/useHistoryStore";
|
|
8
|
-
import { useSendTransactionStore, } from "../../../hooks/store/useSendTransactionStore";
|
|
9
|
-
import { useNativeTokenForChain } from "../../../hooks/tokens/useNativeTokenForChain";
|
|
10
|
-
import { isWalletAddressValid, parseToBigInt } from "../../../services";
|
|
11
|
-
import { getWorkingCosmosRpcUrl } from "../../../services/external/rpcService";
|
|
12
|
-
import { getTransactionError } from "../../../services/internal/errorService";
|
|
13
|
-
import { sendTransactionBitcoin, sendTransactionCosmos, sendTransactionEvm, sendTransactionSolana, } from "../../../services/internal/sendTransaction";
|
|
14
|
-
import { useSolanaConnection } from "../../solana/useSolana";
|
|
15
|
-
import { useSigner } from "../../wallet/useSigner";
|
|
16
|
-
export function useSendTransaction({ to, amount, token, chain, }) {
|
|
17
|
-
const { evmSigner, cosmosSigner, solanaSigner, bitcoinSigner, isSignerReady, } = useSigner({
|
|
18
|
-
chain,
|
|
19
|
-
});
|
|
20
|
-
const solanaClient = useSolanaConnection();
|
|
21
|
-
const queryClient = useQueryClient();
|
|
22
|
-
const { nativeToken } = useNativeTokenForChain(chain);
|
|
23
|
-
const getTransaction = useSendTransactionStore((state) => state.getTransaction);
|
|
24
|
-
const setTransactionState = useSendTransactionStore((state) => state.setTransactionState);
|
|
25
|
-
const persistTransaction = useHistoryStore((state) => state.persistTransaction);
|
|
26
|
-
const sendTransactionMutation = useMutation({
|
|
27
|
-
mutationFn: async () => {
|
|
28
|
-
const allParamsDefined = token && to && amount && chain;
|
|
29
|
-
if (!allParamsDefined)
|
|
30
|
-
throw new Error("Need all params");
|
|
31
|
-
if (token.type !== chain.chainType) {
|
|
32
|
-
throw new Error("Invalid token or chain");
|
|
33
|
-
}
|
|
34
|
-
const isValidDestinationAddress = isWalletAddressValid(chain, to);
|
|
35
|
-
if (!isValidDestinationAddress) {
|
|
36
|
-
throw new Error("Invalid destination address");
|
|
37
|
-
}
|
|
38
|
-
const rawAmount = parseToBigInt(amount, token.decimals).toString();
|
|
39
|
-
let tx;
|
|
40
|
-
switch (token.type) {
|
|
41
|
-
case ChainType.EVM:
|
|
42
|
-
if (!evmSigner) {
|
|
43
|
-
throw new Error("Need EVM signer");
|
|
44
|
-
}
|
|
45
|
-
tx = await sendTransactionEvm({
|
|
46
|
-
to,
|
|
47
|
-
amount: rawAmount,
|
|
48
|
-
token,
|
|
49
|
-
signer: evmSigner,
|
|
50
|
-
rpcUrl: chain.rpc,
|
|
51
|
-
});
|
|
52
|
-
break;
|
|
53
|
-
case ChainType.COSMOS:
|
|
54
|
-
if (!cosmosSigner) {
|
|
55
|
-
throw new Error("Need Cosmos signer");
|
|
56
|
-
}
|
|
57
|
-
if (!nativeToken) {
|
|
58
|
-
throw new Error("Need Cosmos native token");
|
|
59
|
-
}
|
|
60
|
-
const rpcUrl = await getWorkingCosmosRpcUrl(chain);
|
|
61
|
-
tx = await sendTransactionCosmos({
|
|
62
|
-
amount: rawAmount,
|
|
63
|
-
rpcUrl,
|
|
64
|
-
signer: cosmosSigner,
|
|
65
|
-
to,
|
|
66
|
-
token,
|
|
67
|
-
nativeToken,
|
|
68
|
-
});
|
|
69
|
-
break;
|
|
70
|
-
case ChainType.SOLANA:
|
|
71
|
-
if (!solanaSigner) {
|
|
72
|
-
throw new Error("Need Solana signer");
|
|
73
|
-
}
|
|
74
|
-
tx = await sendTransactionSolana({
|
|
75
|
-
amount: rawAmount,
|
|
76
|
-
to,
|
|
77
|
-
token,
|
|
78
|
-
connection: solanaClient,
|
|
79
|
-
signer: solanaSigner,
|
|
80
|
-
});
|
|
81
|
-
break;
|
|
82
|
-
case ChainType.BTC:
|
|
83
|
-
if (!bitcoinSigner) {
|
|
84
|
-
throw new Error("Need Bitcoin signer");
|
|
85
|
-
}
|
|
86
|
-
tx = await sendTransactionBitcoin({
|
|
87
|
-
amount: rawAmount,
|
|
88
|
-
to,
|
|
89
|
-
token,
|
|
90
|
-
signer: bitcoinSigner,
|
|
91
|
-
});
|
|
92
|
-
break;
|
|
93
|
-
}
|
|
94
|
-
return {
|
|
95
|
-
amount,
|
|
96
|
-
to,
|
|
97
|
-
token,
|
|
98
|
-
txHash: tx.txHash,
|
|
99
|
-
};
|
|
100
|
-
},
|
|
101
|
-
onMutate: (variables) => {
|
|
102
|
-
useSendTransactionStore.setState({
|
|
103
|
-
txLocalId: variables.id,
|
|
104
|
-
currentTransaction: undefined,
|
|
105
|
-
});
|
|
106
|
-
},
|
|
107
|
-
onError: (error, variables) => {
|
|
108
|
-
const currentTx = getTransaction(variables.id);
|
|
109
|
-
const errorObject = getTransactionError(error);
|
|
110
|
-
setTransactionState(variables.id, {
|
|
111
|
-
...currentTx,
|
|
112
|
-
error: errorObject,
|
|
113
|
-
});
|
|
114
|
-
},
|
|
115
|
-
onSuccess: (tx, variables) => {
|
|
116
|
-
queryClient.invalidateQueries(getPrefixKey(QueryKeys.Balance));
|
|
117
|
-
setTransactionState(variables.id, tx);
|
|
118
|
-
persistTransaction({
|
|
119
|
-
txType: HistoryTxType.SEND,
|
|
120
|
-
data: {
|
|
121
|
-
amount: tx.amount,
|
|
122
|
-
token: {
|
|
123
|
-
address: tx.token.address,
|
|
124
|
-
chainId: tx.token.chainId,
|
|
125
|
-
decimals: tx.token.decimals,
|
|
126
|
-
symbol: tx.token.symbol,
|
|
127
|
-
type: tx.token.type,
|
|
128
|
-
},
|
|
129
|
-
hash: tx.txHash,
|
|
130
|
-
timestamp: Date.now(),
|
|
131
|
-
toAddress: tx.to,
|
|
132
|
-
status: SendTransactionStatus.ONGOING,
|
|
133
|
-
},
|
|
134
|
-
});
|
|
135
|
-
// Check if needed
|
|
136
|
-
// Dispatch postSwap event after successful swap
|
|
137
|
-
// if (squidRoute && sourceUserAddress && currentTx?.transactionId) {
|
|
138
|
-
// dispatchPostSwapEvent(squidRoute, currentTx.transactionId);
|
|
139
|
-
// }
|
|
140
|
-
},
|
|
141
|
-
});
|
|
142
|
-
const sendTransaction = useCallback(async () => {
|
|
143
|
-
const transactionId = Date.now().toString();
|
|
144
|
-
// TODO: add events
|
|
145
|
-
// Dispatch preSwap event before executing the swap
|
|
146
|
-
// if (squidRoute) {
|
|
147
|
-
// dispatchPreSwapEvent(squidRoute);
|
|
148
|
-
// }
|
|
149
|
-
return sendTransactionMutation.mutate({
|
|
150
|
-
id: transactionId,
|
|
151
|
-
});
|
|
152
|
-
}, [sendTransactionMutation.mutate]);
|
|
153
|
-
return { sendTransaction, isSignerReady };
|
|
154
|
-
}
|
|
155
|
-
//# sourceMappingURL=useSendTransaction.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useSendTransaction.js","sourceRoot":"","sources":["../../../../src/hooks/transaction/send/useSendTransaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { ChainType } from "@0xsquid/squid-types";
|
|
2
|
-
import { useQuery } from "@tanstack/react-query";
|
|
3
|
-
import { Interface } from "ethers";
|
|
4
|
-
import { erc20Abi } from "viem";
|
|
5
|
-
import { getClient } from "../../../core/client";
|
|
6
|
-
import { getFeeRate } from "../../../core/connectors/bitcoin/helpers";
|
|
7
|
-
import { nativeEvmTokenAddress } from "../../../core/constants";
|
|
8
|
-
import { keys } from "../../../core/queries/queries-keys";
|
|
9
|
-
export function useSendTransactionGas({ chain, token, }) {
|
|
10
|
-
return useQuery({
|
|
11
|
-
queryKey: keys().sendTransactionGas(chain?.chainId, token?.address),
|
|
12
|
-
queryFn: async () => {
|
|
13
|
-
if (!chain || !token)
|
|
14
|
-
throw new Error("Missing params");
|
|
15
|
-
switch (chain.chainType) {
|
|
16
|
-
case ChainType.EVM: {
|
|
17
|
-
const client = await getClient(chain);
|
|
18
|
-
const feeData = await client.getFeeData();
|
|
19
|
-
if (!feeData.maxFeePerGas)
|
|
20
|
-
return BigInt(0);
|
|
21
|
-
const dummyAddress = "0x1111111111111111111111111111111111111111";
|
|
22
|
-
if (token.address.toLowerCase() === nativeEvmTokenAddress.toLowerCase()) {
|
|
23
|
-
const gas = await client.estimateGas({
|
|
24
|
-
from: dummyAddress,
|
|
25
|
-
to: dummyAddress,
|
|
26
|
-
value: 1,
|
|
27
|
-
chainId: chain.chainId,
|
|
28
|
-
});
|
|
29
|
-
return gas * feeData.maxFeePerGas;
|
|
30
|
-
}
|
|
31
|
-
const erc20Interface = new Interface(erc20Abi);
|
|
32
|
-
const data = erc20Interface.encodeFunctionData("transfer", [
|
|
33
|
-
dummyAddress,
|
|
34
|
-
1,
|
|
35
|
-
]);
|
|
36
|
-
const gas = await client.estimateGas({
|
|
37
|
-
from: dummyAddress,
|
|
38
|
-
to: token.address,
|
|
39
|
-
data,
|
|
40
|
-
chainId: chain.chainId,
|
|
41
|
-
});
|
|
42
|
-
return gas * feeData.maxFeePerGas;
|
|
43
|
-
}
|
|
44
|
-
case ChainType.COSMOS: {
|
|
45
|
-
// TODO: get gas estimation from backend
|
|
46
|
-
return BigInt(0);
|
|
47
|
-
}
|
|
48
|
-
case ChainType.SOLANA: {
|
|
49
|
-
// TODO: get gas estimation from backend
|
|
50
|
-
return BigInt(5000);
|
|
51
|
-
}
|
|
52
|
-
case ChainType.BTC: {
|
|
53
|
-
const feeRate = await getFeeRate();
|
|
54
|
-
// average vBytes for a segwit tx (2 inputs, 2 outputs)
|
|
55
|
-
const vBytes = 378;
|
|
56
|
-
const feeSats = feeRate * vBytes;
|
|
57
|
-
// TODO: get gas estimation from backend?
|
|
58
|
-
return BigInt(feeSats);
|
|
59
|
-
}
|
|
60
|
-
default:
|
|
61
|
-
throw new Error(`Gas estimation not implemented for chain type ${chain.chainType}`);
|
|
62
|
-
}
|
|
63
|
-
},
|
|
64
|
-
enabled: !!chain && !!token,
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
//# sourceMappingURL=useSendTransactionGas.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useSendTransactionGas.js","sourceRoot":"","sources":["../../../../src/hooks/transaction/send/useSendTransactionGas.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { ChainData } from "@0xsquid/squid-types";
|
|
2
|
-
import { SendTransactionStatus } from "../../core/types/transaction";
|
|
3
|
-
interface UseSendTransactionStatusParams {
|
|
4
|
-
chain: ChainData | undefined;
|
|
5
|
-
txHash: string | undefined;
|
|
6
|
-
}
|
|
7
|
-
interface UseSendTransactionStatusReturnType {
|
|
8
|
-
status: SendTransactionStatus | undefined;
|
|
9
|
-
}
|
|
10
|
-
export declare function useSendTransactionStatus({ chain, txHash, }: UseSendTransactionStatusParams): UseSendTransactionStatusReturnType;
|
|
11
|
-
export {};
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { useQuery } from "@tanstack/react-query";
|
|
2
|
-
import { useMemo, useState } from "react";
|
|
3
|
-
import { keys } from "../../core/queries/queries-keys";
|
|
4
|
-
import { HistoryTxType } from "../../core/types/history";
|
|
5
|
-
import { SendTransactionStatus } from "../../core/types/transaction";
|
|
6
|
-
import { getSendTransactionStatus } from "../../services/internal/sendTransactionStatus";
|
|
7
|
-
import { getSendTxStatusRefetchInterval, isHistoryTransactionEnded, } from "../../services/internal/transactionStatusService";
|
|
8
|
-
import { useHistoryStore } from "../store/useHistoryStore";
|
|
9
|
-
export function useSendTransactionStatus({ chain, txHash, }) {
|
|
10
|
-
const [isTransactionComplete, setIsTransactionComplete] = useState(false);
|
|
11
|
-
const replaceTransactionStatus = useHistoryStore((state) => state.replaceTransactionStatus);
|
|
12
|
-
const findTransaction = useHistoryStore((state) => state.findTransaction);
|
|
13
|
-
const currentHistoryItem = useMemo(() => findTransaction({
|
|
14
|
-
transactionId: txHash,
|
|
15
|
-
txType: HistoryTxType.SEND,
|
|
16
|
-
}), [findTransaction, txHash]);
|
|
17
|
-
const { data: status } = useQuery({
|
|
18
|
-
queryKey: keys().sendTransactionStatus(txHash, chain?.chainId),
|
|
19
|
-
queryFn: async () => {
|
|
20
|
-
if (!chain || !txHash)
|
|
21
|
-
throw new Error("Chain or txHash not provided");
|
|
22
|
-
return getSendTransactionStatus({
|
|
23
|
-
chain,
|
|
24
|
-
txHash,
|
|
25
|
-
});
|
|
26
|
-
},
|
|
27
|
-
onSuccess: (txStatus) => {
|
|
28
|
-
setIsTransactionComplete(txStatus !== SendTransactionStatus.ONGOING);
|
|
29
|
-
if (txStatus != null && !!txHash) {
|
|
30
|
-
replaceTransactionStatus({
|
|
31
|
-
txType: HistoryTxType.SEND,
|
|
32
|
-
status: txStatus,
|
|
33
|
-
hash: txHash,
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
},
|
|
37
|
-
refetchInterval: chain
|
|
38
|
-
? getSendTxStatusRefetchInterval(chain.chainType)
|
|
39
|
-
: false,
|
|
40
|
-
enabled: !!chain &&
|
|
41
|
-
!!txHash &&
|
|
42
|
-
!isTransactionComplete &&
|
|
43
|
-
!!currentHistoryItem &&
|
|
44
|
-
!isHistoryTransactionEnded({
|
|
45
|
-
data: currentHistoryItem?.data,
|
|
46
|
-
txType: HistoryTxType.SEND,
|
|
47
|
-
}),
|
|
48
|
-
});
|
|
49
|
-
return {
|
|
50
|
-
status,
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
//# sourceMappingURL=useSendTransactionStatus.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useSendTransactionStatus.js","sourceRoot":"","sources":["../../../src/hooks/transaction/useSendTransactionStatus.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AACzF,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,GAC1B,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAW3D,MAAM,UAAU,wBAAwB,CAAC,EACvC,KAAK,EACL,MAAM,GACyB;IAC/B,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1E,MAAM,wBAAwB,GAAG,eAAe,CAC9C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,wBAAwB,CAC1C,CAAC;IACF,MAAM,eAAe,GAAG,eAAe,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAE1E,MAAM,kBAAkB,GAAG,OAAO,CAChC,GAAG,EAAE,CACH,eAAe,CAAC;QACd,aAAa,EAAE,MAAM;QACrB,MAAM,EAAE,aAAa,CAAC,IAAI;KAC3B,CAAC,EACJ,CAAC,eAAe,EAAE,MAAM,CAAC,CAC1B,CAAC;IAEF,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAoC;QACnE,QAAQ,EAAE,IAAI,EAAE,CAAC,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC;QAC9D,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAEvE,OAAO,wBAAwB,CAAC;gBAC9B,KAAK;gBACL,MAAM;aACP,CAAC,CAAC;QACL,CAAC;QACD,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE;YACtB,wBAAwB,CAAC,QAAQ,KAAK,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAErE,IAAI,QAAQ,IAAI,IAAI,IAAI,CAAC,CAAC,MAAM,EAAE;gBAChC,wBAAwB,CAAC;oBACvB,MAAM,EAAE,aAAa,CAAC,IAAI;oBAC1B,MAAM,EAAE,QAAQ;oBAChB,IAAI,EAAE,MAAM;iBACb,CAAC,CAAC;aACJ;QACH,CAAC;QACD,eAAe,EAAE,KAAK;YACpB,CAAC,CAAC,8BAA8B,CAAC,KAAK,CAAC,SAAS,CAAC;YACjD,CAAC,CAAC,KAAK;QACT,OAAO,EACL,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,MAAM;YACR,CAAC,qBAAqB;YACtB,CAAC,CAAC,kBAAkB;YACpB,CAAC,yBAAyB,CAAC;gBACzB,IAAI,EAAE,kBAAkB,EAAE,IAAI;gBAC9B,MAAM,EAAE,aAAa,CAAC,IAAI;aAC3B,CAAC;KACL,CAAC,CAAC;IAEH,OAAO;QACL,MAAM;KACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { SwapTransactionForStatus, TransactionStatus } from "../../core/types/transaction";
|
|
2
|
-
interface UseSwapTransactionStatusParams {
|
|
3
|
-
transaction?: SwapTransactionForStatus;
|
|
4
|
-
retry?: number;
|
|
5
|
-
refetchOnWindowFocus?: "always" | boolean;
|
|
6
|
-
enabled?: boolean;
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* Fetch status of a Swap transaction
|
|
10
|
-
*/
|
|
11
|
-
export declare const useSwapTransactionStatus: ({ transaction, retry, refetchOnWindowFocus, enabled, }: UseSwapTransactionStatusParams) => {
|
|
12
|
-
transactionStatusQuery: import("@tanstack/react-query").UseQueryResult<import("@0xsquid/squid-types").StatusResponse, Error>;
|
|
13
|
-
latestStatus: TransactionStatus;
|
|
14
|
-
};
|
|
15
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useSwapTransactionStatus.js","sourceRoot":"","sources":["../../../src/hooks/transaction/useSwapTransactionStatus.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { ChainData, Token } from "@0xsquid/squid-types";
|
|
2
|
-
import { CountryWithCode, ExecuteFiatQuoteResult, ExecuteQuoteClient, FiatCurrencyEnhanced, FiatToCryptoConfig, OnRampQuoteResponse, OnRampTransactionStatus } from "../../core/types/onramps/onramp";
|
|
3
|
-
export type ProviderInfo = {
|
|
4
|
-
value: string;
|
|
5
|
-
key: string;
|
|
6
|
-
label: string;
|
|
7
|
-
iconUrl: string;
|
|
8
|
-
supportedPaymentMethods: readonly string[];
|
|
9
|
-
};
|
|
10
|
-
export declare abstract class BaseFiatToCryptoAdapter {
|
|
11
|
-
abstract readonly key: string;
|
|
12
|
-
abstract readonly label: string;
|
|
13
|
-
abstract readonly supportedPaymentMethods: readonly string[];
|
|
14
|
-
private readonly baseIconUrl;
|
|
15
|
-
getInfo(): ProviderInfo;
|
|
16
|
-
getCountryData(countryCode: string): CountryWithCode;
|
|
17
|
-
getCurrencyData(currencyCode: string): FiatCurrencyEnhanced | undefined;
|
|
18
|
-
abstract getQuote(fiatCurrency: string, cryptoCurrencyID: string, amount: number, paymentMethod?: string, region?: string): Promise<OnRampQuoteResponse>;
|
|
19
|
-
abstract getTransactionStatus(transactionId: string, walletAddress?: string): Promise<OnRampTransactionStatus>;
|
|
20
|
-
abstract executeQuote(executeQuoteRequest: ExecuteQuoteClient): Promise<ExecuteFiatQuoteResult>;
|
|
21
|
-
abstract getConfiguration(squidConfig: {
|
|
22
|
-
chains: ChainData[];
|
|
23
|
-
tokens: Token[];
|
|
24
|
-
}): Promise<FiatToCryptoConfig>;
|
|
25
|
-
mapPaymentMethod?(method: string): string;
|
|
26
|
-
mapConfigResponse?(data: any, squidConfig: {
|
|
27
|
-
chains: ChainData[];
|
|
28
|
-
tokens: Token[];
|
|
29
|
-
}): FiatToCryptoConfig;
|
|
30
|
-
mapQuoteResponse?(data: any, fiatCurrency: string, cryptoCurrencyID: string, originalAmount: number): OnRampQuoteResponse;
|
|
31
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { getCountryData, getCurrencyData, } from "../internal/fiatToCryptoService";
|
|
2
|
-
export class BaseFiatToCryptoAdapter {
|
|
3
|
-
baseIconUrl = "https://raw.githubusercontent.com/0xsquid/assets/main/images/webp128/onramps";
|
|
4
|
-
getInfo() {
|
|
5
|
-
return {
|
|
6
|
-
value: this.key,
|
|
7
|
-
key: this.key,
|
|
8
|
-
label: this.label,
|
|
9
|
-
supportedPaymentMethods: this.supportedPaymentMethods,
|
|
10
|
-
iconUrl: `${this.baseIconUrl}/${this.key}.webp`,
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
getCountryData(countryCode) {
|
|
14
|
-
return getCountryData(countryCode);
|
|
15
|
-
}
|
|
16
|
-
getCurrencyData(currencyCode) {
|
|
17
|
-
return getCurrencyData(currencyCode);
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=baseAdapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"baseAdapter.js","sourceRoot":"","sources":["../../../src/services/external/baseAdapter.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,cAAc,EACd,eAAe,GAChB,MAAM,iCAAiC,CAAC;AAUzC,MAAM,OAAgB,uBAAuB;IAO1B,WAAW,GAC1B,8EAA8E,CAAC;IAEjF,OAAO;QACL,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,GAAG;YACf,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;YACrD,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,GAAG,OAAO;SAChD,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,WAAmB;QAChC,OAAO,cAAc,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;IAED,eAAe,CAAC,YAAoB;QAClC,OAAO,eAAe,CAAC,YAAY,CAAC,CAAC;IACvC,CAAC;CAsCF"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { ExecuteFiatQuoteResult, ExecuteQuoteClient, FiatToCryptoConfig, OnRampQuoteResponse, OnRampTransactionStatus } from "../../core/types/onramps/onramp";
|
|
2
|
-
import { BaseFiatToCryptoAdapter } from "./baseAdapter";
|
|
3
|
-
export declare class OnramperAdapter extends BaseFiatToCryptoAdapter {
|
|
4
|
-
readonly key = "onramper";
|
|
5
|
-
readonly label = "Onramper";
|
|
6
|
-
readonly supportedPaymentMethods: readonly ["credit_card", "bank_transfer"];
|
|
7
|
-
private readonly baseUrl;
|
|
8
|
-
private readonly apiKey;
|
|
9
|
-
private getHeaders;
|
|
10
|
-
getQuote(fiatCurrency: string, cryptoCurrency: string, amount: number): Promise<OnRampQuoteResponse>;
|
|
11
|
-
getTransactionStatus(transactionId: string): Promise<OnRampTransactionStatus>;
|
|
12
|
-
executeQuote(executeQuoteRequest: ExecuteQuoteClient): Promise<ExecuteFiatQuoteResult>;
|
|
13
|
-
private getCryptoNetwork;
|
|
14
|
-
getConfiguration(): Promise<FiatToCryptoConfig>;
|
|
15
|
-
}
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
import axios from "axios";
|
|
2
|
-
import { BaseFiatToCryptoAdapter } from "./baseAdapter";
|
|
3
|
-
export class OnramperAdapter extends BaseFiatToCryptoAdapter {
|
|
4
|
-
key = "onramper";
|
|
5
|
-
label = "Onramper";
|
|
6
|
-
supportedPaymentMethods = ["credit_card", "bank_transfer"];
|
|
7
|
-
baseUrl = "https://api.onramper.com";
|
|
8
|
-
apiKey = "ONRAMPER_API_KEY";
|
|
9
|
-
getHeaders() {
|
|
10
|
-
return {
|
|
11
|
-
Authorization: this.apiKey,
|
|
12
|
-
"Content-Type": "application/json",
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
async getQuote(fiatCurrency, cryptoCurrency, amount) {
|
|
16
|
-
try {
|
|
17
|
-
const { data } = await axios.get(`${this.baseUrl}/quotes/${fiatCurrency.toLowerCase()}/${cryptoCurrency.toLowerCase()}`, {
|
|
18
|
-
params: {
|
|
19
|
-
amount,
|
|
20
|
-
paymentMethod: "creditcard",
|
|
21
|
-
},
|
|
22
|
-
headers: this.getHeaders(),
|
|
23
|
-
});
|
|
24
|
-
// Get the best quote from available options
|
|
25
|
-
const bestQuote = data[0];
|
|
26
|
-
if (!bestQuote) {
|
|
27
|
-
throw new Error("No quotes available from Onramper");
|
|
28
|
-
}
|
|
29
|
-
const totalFees = bestQuote.networkFee + bestQuote.transactionFee;
|
|
30
|
-
const percentageFee = (totalFees / amount) * 100;
|
|
31
|
-
return {
|
|
32
|
-
fiatCurrency: fiatCurrency.toUpperCase(),
|
|
33
|
-
cryptoCurrencyID: cryptoCurrency.toUpperCase(),
|
|
34
|
-
amount,
|
|
35
|
-
fees: {
|
|
36
|
-
fixed: totalFees,
|
|
37
|
-
percentage: percentageFee,
|
|
38
|
-
},
|
|
39
|
-
cryptoAmount: bestQuote.payout,
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
catch (error) {
|
|
43
|
-
if (axios.isAxiosError(error)) {
|
|
44
|
-
throw new Error(error.response?.data?.message || "Failed to get quote from Onramper");
|
|
45
|
-
}
|
|
46
|
-
throw error;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
async getTransactionStatus(transactionId) {
|
|
50
|
-
try {
|
|
51
|
-
const { data } = await axios.get(`${this.baseUrl}/transactions/${transactionId}`, {
|
|
52
|
-
headers: this.getHeaders(),
|
|
53
|
-
});
|
|
54
|
-
const statusMap = {
|
|
55
|
-
pending: "processing",
|
|
56
|
-
completed: "completed",
|
|
57
|
-
failed: "failed",
|
|
58
|
-
};
|
|
59
|
-
return {
|
|
60
|
-
transactionId: data.transactionId,
|
|
61
|
-
status: statusMap[data.status] || "processing",
|
|
62
|
-
createdAt: data.statusDate,
|
|
63
|
-
updatedAt: data.statusDate,
|
|
64
|
-
errorMessage: null,
|
|
65
|
-
transactionHash: data.transactionHash || undefined,
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
catch (error) {
|
|
69
|
-
if (axios.isAxiosError(error)) {
|
|
70
|
-
throw new Error(error.response?.data?.message ||
|
|
71
|
-
"Failed to get transaction status from Onramper");
|
|
72
|
-
}
|
|
73
|
-
throw error;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
async executeQuote(executeQuoteRequest) {
|
|
77
|
-
try {
|
|
78
|
-
const { data } = await axios.post(`${this.baseUrl}/transactions`, {
|
|
79
|
-
fiatCurrency: executeQuoteRequest.fiatCurrency,
|
|
80
|
-
cryptoCurrency: executeQuoteRequest.cryptoCurrencyID,
|
|
81
|
-
amount: executeQuoteRequest.amount,
|
|
82
|
-
walletAddress: executeQuoteRequest.walletAddress,
|
|
83
|
-
paymentMethod: executeQuoteRequest.paymentMethod,
|
|
84
|
-
}, {
|
|
85
|
-
headers: this.getHeaders(),
|
|
86
|
-
});
|
|
87
|
-
return {
|
|
88
|
-
redirectUrl: data.redirectUrl,
|
|
89
|
-
orderId: data.transactionId,
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
catch (error) {
|
|
93
|
-
if (axios.isAxiosError(error)) {
|
|
94
|
-
throw new Error(error.response?.data?.message ||
|
|
95
|
-
"Failed to execute quote with Onramper");
|
|
96
|
-
}
|
|
97
|
-
throw error;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
getCryptoNetwork(cryptoCurrency) {
|
|
101
|
-
const networkMap = {
|
|
102
|
-
BTC: "bitcoin",
|
|
103
|
-
ETH: "ethereum",
|
|
104
|
-
SOL: "solana",
|
|
105
|
-
};
|
|
106
|
-
return networkMap[cryptoCurrency.toUpperCase()] || "ethereum";
|
|
107
|
-
}
|
|
108
|
-
async getConfiguration() {
|
|
109
|
-
try {
|
|
110
|
-
const { data } = await axios.get(`${this.baseUrl}/config`, {
|
|
111
|
-
headers: this.getHeaders(),
|
|
112
|
-
});
|
|
113
|
-
// Add flag URLs to country data
|
|
114
|
-
return {
|
|
115
|
-
supportedCountries: data.supportedCountries || [],
|
|
116
|
-
supportedCurrencies: data.supportedCurrencies || [],
|
|
117
|
-
supportedPaymentMethods: [...this.supportedPaymentMethods],
|
|
118
|
-
supportedTokens: data.supportedTokens || [],
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
catch (error) {
|
|
122
|
-
if (axios.isAxiosError(error)) {
|
|
123
|
-
throw new Error(error.response?.data?.message ||
|
|
124
|
-
"Failed to fetch Onramper configuration");
|
|
125
|
-
}
|
|
126
|
-
throw error;
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
//# sourceMappingURL=onramperClientAdapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"onramperClientAdapter.js","sourceRoot":"","sources":["../../../src/services/external/onramperClientAdapter.ts"],"names":[],"mappings":"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"}
|