@xlink-network/xlink-sdk
Version:
66 lines (64 loc) • 1.81 kB
JavaScript
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