UNPKG

@xlink-network/xlink-sdk

Version:
121 lines (119 loc) 4.24 kB
import { requestAPI } from "./chunk-3OBVOHLZ.mjs"; import { getStacksToken } from "./chunk-JJNS722O.mjs"; import { KnownChainId, createBRC20Token, createRunesToken } from "./chunk-GZDQGY7B.mjs"; import { isNotNull } from "./chunk-E5Y3FGR6.mjs"; import { BigNumber } from "./chunk-KHTJNOQE.mjs"; // src/metaUtils/xlinkContractHelpers.ts async function getBRC20SupportedRoutes(sdkContext, chainId) { if (sdkContext.brc20.routesConfigCache != null && sdkContext.brc20.routesConfigCache.get(chainId) != null) { return sdkContext.brc20.routesConfigCache.get(chainId); } const promise = _getBRC20SupportedRoutes(sdkContext, chainId).catch((err) => { const cachedPromise = sdkContext.brc20.routesConfigCache?.get(chainId); if (promise === cachedPromise) { sdkContext.brc20.routesConfigCache?.delete(chainId); } throw err; }); sdkContext.brc20.routesConfigCache?.set(chainId, promise); return promise; } async function _getBRC20SupportedRoutes(sdkContext, chainId) { const stacksChainId = chainId === KnownChainId.BRC20.Mainnet ? KnownChainId.Stacks.Mainnet : KnownChainId.Stacks.Testnet; const resp = await requestAPI( sdkContext, { method: "GET", path: "/2024-10-01/brc20/supported-routes", query: { network: chainId === KnownChainId.BRC20.Mainnet ? "mainnet" : "testnet" } } ); const routes = await Promise.all( resp.routes.map(async (route) => { const stacksToken = await getStacksToken( stacksChainId, route.stacksTokenContractAddress ); if (stacksToken == null) return null; return { brc20Tick: route.brc20Tick, brc20Token: createBRC20Token(route.brc20Tick), stacksToken, pegInPaused: route.pegInPaused, pegInFeeRate: BigNumber.from(route.pegInFeeRate), pegInFeeBitcoinAmount: route.pegInFeeBitcoinAmount == null ? null : BigNumber.from(route.pegInFeeBitcoinAmount), pegOutPaused: route.pegOutPaused, pegOutFeeRate: BigNumber.from(route.pegOutFeeRate), pegOutFeeBitcoinAmount: route.pegOutFeeBitcoinAmount == null ? null : BigNumber.from(route.pegOutFeeBitcoinAmount) }; }) ); return routes.filter(isNotNull); } async function getRunesSupportedRoutes(sdkContext, chainId) { if (sdkContext.runes.routesConfigCache != null && sdkContext.runes.routesConfigCache.get(chainId) != null) { return sdkContext.runes.routesConfigCache.get(chainId); } const promise = _getRunesSupportedRoutes(sdkContext, chainId).catch((err) => { const cachedPromise = sdkContext.runes.routesConfigCache?.get(chainId); if (promise === cachedPromise) { sdkContext.runes.routesConfigCache?.delete(chainId); } throw err; }); sdkContext.runes.routesConfigCache?.set(chainId, promise); return promise; } async function _getRunesSupportedRoutes(sdkContext, chainId) { const stacksChainId = chainId === KnownChainId.Runes.Mainnet ? KnownChainId.Stacks.Mainnet : KnownChainId.Stacks.Testnet; const resp = await requestAPI( sdkContext, { method: "GET", path: "/2024-10-01/runes/supported-routes", query: { network: chainId === KnownChainId.Runes.Mainnet ? "mainnet" : "testnet" } } ); const routes = await Promise.all( resp.routes.map(async (route) => { const stacksToken = await getStacksToken( stacksChainId, route.stacksTokenContractAddress ); if (stacksToken == null) return null; return { runesId: route.runesId, runesToken: createRunesToken(route.runesId), stacksToken, pegInPaused: route.pegInPaused, pegInFeeRate: BigNumber.from(route.pegInFeeRate), pegInFeeBitcoinAmount: route.pegInFeeBitcoinAmount == null ? null : BigNumber.from(route.pegInFeeBitcoinAmount), pegOutPaused: route.pegOutPaused, pegOutFeeRate: BigNumber.from(route.pegOutFeeRate), pegOutFeeBitcoinAmount: route.pegOutFeeBitcoinAmount == null ? null : BigNumber.from(route.pegOutFeeBitcoinAmount) }; }) ); return routes.filter(isNotNull); } export { getBRC20SupportedRoutes, getRunesSupportedRoutes }; //# sourceMappingURL=chunk-BNOOAGFD.mjs.map