@ledgerhq/live-common
Version:
Common ground for the Ledger Live apps
100 lines (94 loc) • 2.86 kB
text/typescript
import BigNumber from "bignumber.js";
import { ExchangeRateResponseRaw } from "../../../types";
import { SwapExchangeRateAmountTooHigh, SwapExchangeRateAmountTooLow } from "../../../../../errors";
const MIN_AMOUNT_FROM = new BigNumber(0.0001);
const MAX_AMOUNT_FROM = new BigNumber(1000);
export const fetchRatesMock = (
amountFrom: string,
fromCurrencyID?: string,
): ExchangeRateResponseRaw[] => {
const bigNumberAmountFrom = BigNumber(amountFrom);
if (bigNumberAmountFrom.lte(MIN_AMOUNT_FROM)) {
throw new SwapExchangeRateAmountTooLow(undefined, {
minAmountFromFormatted: `${MIN_AMOUNT_FROM}`,
});
}
if (bigNumberAmountFrom.gte(MAX_AMOUNT_FROM)) {
throw new SwapExchangeRateAmountTooHigh(undefined, {
maxAmountFromFormatted: `${MAX_AMOUNT_FROM}`,
});
}
if (fromCurrencyID === "bitcoin") {
return [
{
provider: "changelly",
providerType: "CEX",
rateId: "^WIpYZZFCdjPwLY7YLFnY*T5Q4@abI",
from: "ethereum",
to: "bitcoin",
amountFrom: "100",
amountTo: "0.059713921500",
rate: "0.000577819215",
payoutNetworkFees: "0.001932",
expirationTime: "1694082226000",
tradeMethod: "fixed",
status: "success",
},
{
provider: "changelly",
providerType: "CEX",
from: "ethereum",
to: "bitcoin",
amountFrom: "100",
amountTo: "0.05949154",
minAmountFrom: "21.61899",
maxAmountFrom: "2417804.095968",
payoutNetworkFees: "0.0019320000000000000000",
tradeMethod: "float",
status: "success",
},
];
}
return [
{
provider: "oneinch",
providerType: "DEX",
providerURL: "https://1inch.com/swap/#/1/unified/swap/usdt/eth&sourceTokenAmount=100",
from: "ethereum/erc20/usd_tether__erc20_",
to: "ethereum",
amountFrom: "100",
amountTo: "0.030863259880419774",
minAmountFrom: "0.0",
payoutNetworkFees: "0.00192528",
tradeMethod: "float",
status: "success",
},
{
provider: "changelly",
providerType: "CEX",
rateId: "^WIpYZZFCdjPwLY7YLFnY*T5Q4@abI",
from: "ethereum/erc20/usd_tether__erc20_",
to: "ethereum",
amountFrom: "100",
amountTo: "0.059713921500",
rate: "0.000577819215",
payoutNetworkFees: "0.001932",
expirationTime: "1694082226000",
tradeMethod: "fixed",
status: "success",
},
{
provider: "changelly",
providerType: "CEX",
from: "ethereum/erc20/usd_tether__erc20_",
to: "ethereum",
amountFrom: "100",
amountTo: "0.05949154",
minAmountFrom: "21.61899",
maxAmountFrom: "2417804.095968",
payoutNetworkFees: "0.0019320000000000000000",
tradeMethod: "float",
status: "success",
},
];
};