@xlink-network/xlink-sdk
Version:
76 lines (74 loc) • 2.55 kB
JavaScript
import {
fromCorrespondingStacksToken
} from "./chunk-COUTRDKA.mjs";
import {
getEVMTokenContractInfo
} from "./chunk-UJDCORME.mjs";
import {
getBRC20SupportedRoutes,
getRunesSupportedRoutes
} from "./chunk-BNOOAGFD.mjs";
import {
KnownChainId,
KnownTokenId,
_allNoLongerSupportedEVMChains
} from "./chunk-GZDQGY7B.mjs";
import {
checkNever
} from "./chunk-E5Y3FGR6.mjs";
import {
hasAny
} from "./chunk-PRLWYSC3.mjs";
// src/stacksUtils/peggingHelpers.ts
var isSupportedStacksRoute = async (ctx, route) => {
const { fromChain, toChain, fromToken, toToken } = route;
if (fromChain === toChain && fromToken === toToken) {
return false;
}
if (KnownChainId.isEVMChain(fromChain) && _allNoLongerSupportedEVMChains.includes(fromChain)) {
return false;
}
if (KnownChainId.isEVMChain(toChain) && _allNoLongerSupportedEVMChains.includes(toChain)) {
return false;
}
if (!KnownChainId.isStacksChain(fromChain) || !KnownTokenId.isStacksToken(fromToken)) {
return false;
}
if (!KnownChainId.isKnownChain(toChain)) return false;
if (KnownChainId.isStacksChain(toChain)) {
return false;
}
if (KnownChainId.isBitcoinChain(toChain)) {
if (!KnownTokenId.isBitcoinToken(toToken)) return false;
return fromToken === KnownTokenId.Stacks.aBTC && toToken === KnownTokenId.Bitcoin.BTC;
}
if (KnownChainId.isRunesChain(toChain)) {
if (!KnownTokenId.isRunesToken(toToken)) return false;
const supportedRoutes = await getRunesSupportedRoutes(ctx, toChain);
if (supportedRoutes == null || !hasAny(supportedRoutes)) return false;
return supportedRoutes.some(
(route2) => route2.stacksToken === fromToken && route2.runesToken === toToken
);
}
if (KnownChainId.isBRC20Chain(toChain)) {
if (!KnownTokenId.isBRC20Token(toToken)) return false;
const supportedRoutes = await getBRC20SupportedRoutes(ctx, toChain);
if (supportedRoutes == null || !hasAny(supportedRoutes)) return false;
return supportedRoutes.some(
(route2) => route2.stacksToken === fromToken && route2.brc20Token === toToken
);
}
if (KnownChainId.isEVMChain(toChain)) {
if (!KnownTokenId.isEVMToken(toToken)) return false;
const info = await getEVMTokenContractInfo(ctx, toChain, toToken);
if (info == null) return false;
const toEVMTokens = await fromCorrespondingStacksToken(toChain, fromToken);
return toEVMTokens.includes(toToken);
}
checkNever(toChain);
return false;
};
export {
isSupportedStacksRoute
};
//# sourceMappingURL=chunk-56RIW7A5.mjs.map