UNPKG

@xlink-network/xlink-sdk

Version:
137 lines (135 loc) 3.88 kB
import { supportedRoutes } from "./chunk-52RRFT5Y.mjs"; import { transformToPublicTransferProphet } from "./chunk-6SXUQECQ.mjs"; import { getStacks2BtcFeeInfo } from "./chunk-DAZBH3JI.mjs"; import { getStacks2MetaFeeInfo } from "./chunk-UPYNSDGA.mjs"; import { getStacks2EvmFeeInfo } from "./chunk-COUTRDKA.mjs"; import { UnsupportedBridgeRouteError } from "./chunk-KTUPNUM5.mjs"; import { KnownChainId, KnownTokenId } from "./chunk-GZDQGY7B.mjs"; import { assertExclude, checkNever } from "./chunk-E5Y3FGR6.mjs"; // src/xlinkSdkUtils/bridgeInfoFromStacks.ts async function bridgeInfoFromStacks(ctx, info) { const route = await supportedRoutes.checkRouteValid(ctx, info); if (KnownChainId.isStacksChain(route.fromChain)) { if (KnownChainId.isBitcoinChain(route.toChain)) { if (KnownTokenId.isStacksToken(route.fromToken) && KnownTokenId.isBitcoinToken(route.toToken)) { return bridgeInfoFromStacks_toBitcoin({ ...info, fromChain: route.fromChain, toChain: route.toChain, fromToken: route.fromToken, toToken: route.toToken }); } } else if (KnownChainId.isEVMChain(route.toChain)) { if (KnownTokenId.isStacksToken(route.fromToken) && KnownTokenId.isEVMToken(route.toToken)) { return bridgeInfoFromStacks_toEVM({ ...info, fromChain: route.fromChain, toChain: route.toChain, fromToken: route.fromToken, toToken: route.toToken }); } } else if (KnownChainId.isBRC20Chain(route.toChain)) { if (KnownTokenId.isStacksToken(route.fromToken) && KnownTokenId.isBRC20Token(route.toToken)) { return bridgeInfoFromStacks_toMeta(ctx, { ...info, fromChain: route.fromChain, toChain: route.toChain, fromToken: route.fromToken, toToken: route.toToken }); } } else if (KnownChainId.isRunesChain(route.toChain)) { if (KnownTokenId.isStacksToken(route.fromToken) && KnownTokenId.isRunesToken(route.toToken)) { return bridgeInfoFromStacks_toMeta(ctx, { ...info, fromChain: route.fromChain, toChain: route.toChain, fromToken: route.fromToken, toToken: route.toToken }); } } else { assertExclude(route.toChain, assertExclude.i()); checkNever(route); } } else { assertExclude(route.fromChain, assertExclude.i()); assertExclude(route.fromChain, assertExclude.i()); checkNever(route); } throw new UnsupportedBridgeRouteError( info.fromChain, info.toChain, info.fromToken, info.toToken ); } async function bridgeInfoFromStacks_toBitcoin(info) { const step1 = await getStacks2BtcFeeInfo(info); if (step1 == null) { throw new UnsupportedBridgeRouteError( info.fromChain, info.toChain, info.fromToken, info.toToken ); } return { ...transformToPublicTransferProphet(info, info.amount, step1), transferProphets: [] }; } async function bridgeInfoFromStacks_toEVM(info) { const step1 = await getStacks2EvmFeeInfo(info); if (step1 == null) { throw new UnsupportedBridgeRouteError( info.fromChain, info.toChain, info.fromToken, info.toToken ); } return { ...transformToPublicTransferProphet(info, info.amount, step1), transferProphets: [] }; } async function bridgeInfoFromStacks_toMeta(ctx, info) { const step1 = await getStacks2MetaFeeInfo(ctx, info); if (step1 == null) { throw new UnsupportedBridgeRouteError( info.fromChain, info.toChain, info.fromToken, info.toToken ); } return { ...transformToPublicTransferProphet(info, info.amount, step1), transferProphets: [] }; } export { bridgeInfoFromStacks }; //# sourceMappingURL=chunk-KXUQUA42.mjs.map