@xlink-network/xlink-sdk
Version:
105 lines (103 loc) • 3.55 kB
JavaScript
import {
applyTransferProphet,
applyTransferProphets,
composeTransferProphets
} from "./chunk-HJVY3USW.mjs";
import {
toSDKNumberOrUndefined
} from "./chunk-FZQUIYHC.mjs";
import {
checkNever,
isNotNull
} from "./chunk-E5Y3FGR6.mjs";
import {
BigNumber
} from "./chunk-KHTJNOQE.mjs";
import {
last
} from "./chunk-PRLWYSC3.mjs";
// src/utils/types/TransferProphet.ts
function transformFromPublicTransferProphet(transferProphet) {
return {
isPaused: transferProphet.isPaused,
bridgeToken: transferProphet.fromToken,
fees: transferProphet.fees.flatMap(
(f) => f.type === "rate" ? {
...f,
rate: BigNumber.from(f.rate),
minimumAmount: BigNumber.from(f.minimumAmount)
} : f.type === "fixed" ? {
...f,
amount: BigNumber.from(f.amount)
} : checkNever(f)
).filter(isNotNull),
minBridgeAmount: transferProphet.minBridgeAmount == null ? null : BigNumber.from(transferProphet.minBridgeAmount),
maxBridgeAmount: transferProphet.maxBridgeAmount == null ? null : BigNumber.from(transferProphet.maxBridgeAmount)
};
}
function transformToPublicTransferProphet(route, fromAmount, transferProphet) {
const result = applyTransferProphet(
transferProphet,
BigNumber.from(fromAmount)
);
const fees = result.fees.map(
(f) => f.type === "rate" ? {
...f,
rate: toSDKNumberOrUndefined(f.rate),
minimumAmount: toSDKNumberOrUndefined(f.minimumAmount),
amount: toSDKNumberOrUndefined(f.amount)
} : f.type === "fixed" ? {
...f,
amount: toSDKNumberOrUndefined(f.amount)
} : checkNever(f)
).filter(isNotNull);
return {
...route,
fromAmount: toSDKNumberOrUndefined(fromAmount),
toAmount: toSDKNumberOrUndefined(result.netAmount),
isPaused: transferProphet.isPaused,
minBridgeAmount: toSDKNumberOrUndefined(transferProphet.minBridgeAmount),
maxBridgeAmount: toSDKNumberOrUndefined(transferProphet.maxBridgeAmount),
fees
};
}
var transformToPublicTransferProphetAggregated = (transferProphets, exchangeRates) => {
const firstTransferProphet = transferProphets[0];
const lastTransferProphet = last(transferProphets);
const steps = transferProphets.map(
transformFromPublicTransferProphet
);
const composed = composeTransferProphets(steps, exchangeRates);
const fromAmount = BigNumber.from(firstTransferProphet.fromAmount);
const applyResult = applyTransferProphets(steps, fromAmount);
const fees = applyResult.flatMap((r) => r.fees).map(
(f) => f.type === "rate" ? {
...f,
rate: toSDKNumberOrUndefined(f.rate),
minimumAmount: toSDKNumberOrUndefined(f.minimumAmount),
amount: toSDKNumberOrUndefined(f.amount)
} : f.type === "fixed" ? {
...f,
amount: toSDKNumberOrUndefined(f.amount)
} : checkNever(f)
).filter(isNotNull);
return {
fromChain: firstTransferProphet.fromChain,
fromToken: firstTransferProphet.fromToken,
toChain: lastTransferProphet.toChain,
toToken: lastTransferProphet.toToken,
fromAmount: toSDKNumberOrUndefined(fromAmount),
toAmount: toSDKNumberOrUndefined(last(applyResult).netAmount),
isPaused: composed.isPaused,
fees,
minBridgeAmount: toSDKNumberOrUndefined(composed.minBridgeAmount),
maxBridgeAmount: toSDKNumberOrUndefined(composed.maxBridgeAmount),
transferProphets
};
};
export {
transformFromPublicTransferProphet,
transformToPublicTransferProphet,
transformToPublicTransferProphetAggregated
};
//# sourceMappingURL=chunk-6SXUQECQ.mjs.map