@xlink-network/xlink-sdk
Version:
137 lines (135 loc) • 3.88 kB
JavaScript
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