UNPKG

@xlink-network/xlink-sdk

Version:
105 lines (103 loc) 3.55 kB
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