UNPKG

@xlink-network/xlink-sdk

Version:
66 lines (64 loc) 1.81 kB
import { executeReadonlyCallXLINK, getStacksContractCallInfo } from "./chunk-JJNS722O.mjs"; import { KnownChainId } from "./chunk-GZDQGY7B.mjs"; import { checkNever } from "./chunk-E5Y3FGR6.mjs"; import { hasLength } from "./chunk-PRLWYSC3.mjs"; // src/stacksUtils/validateBridgeOrder.ts import { callReadOnlyFunction } from "@stacks/transactions"; async function validateBridgeOrder(info) { const contractCallInfo = getStacksContractCallInfo( info.chainId === KnownChainId.Bitcoin.Mainnet ? KnownChainId.Stacks.Mainnet : KnownChainId.Stacks.Testnet, "btc-peg-in-endpoint-v2-05" ); if (contractCallInfo == null) { throw new Error( "[validateBridgeOrder_BitcoinToEVM] stacks contract information not found" ); } const { commitTx, revealTx, swapRoute } = info; const executeOptions = { deployerAddress: contractCallInfo.deployerAddress, callReadOnlyFunction: (callOptions) => callReadOnlyFunction({ ...callOptions, network: contractCallInfo.network }) }; let resp; if (hasLength(swapRoute, 0)) { resp = await executeReadonlyCallXLINK( contractCallInfo.contractName, "validate-tx-cross", { "commit-tx": { tx: commitTx, "output-idx": 1n }, "reveal-tx": { tx: revealTx, "order-idx": 0n }, "token-out-trait": `${info.terminatingStacksToken.deployerAddress}.${info.terminatingStacksToken.contractName}` }, executeOptions ); } else { checkNever(swapRoute); throw new Error( `[validateBridgeOrder_BitcoinToEVM] unsupported swap route length: ${swapRoute.length}` ); } if (resp.type === "success") return; throw resp.error; } export { validateBridgeOrder }; //# sourceMappingURL=chunk-54FCXCUT.mjs.map