@xlink-network/xlink-sdk
Version:
70 lines (67 loc) • 2.68 kB
text/typescript
import { GetSupportedRoutesFn, CheckRouteValidFn, KnownRoute_FromBitcoin } from '../utils/buildSupportedRoutes.mjs';
import * as btc from '@scure/btc-signer';
import { ReselectSpendableUTXOsFn, BitcoinTransactionPrepareResult } from '../bitcoinUtils/prepareTransaction.mjs';
import { ChainId, TokenId, SDKNumber } from './types.mjs';
import { S as SDKGlobalContext } from '../types.internal-8d3OI2Qm.mjs';
import '../utils/types/knownIds.mjs';
import '../utils/BigNumber.mjs';
import 'big.js';
import '../utils/typeHelpers.mjs';
import 'viem';
import '../evmUtils/evmContractAddresses.mjs';
import '../bitcoinUtils/bitcoinHelpers.mjs';
import '@c4/btc-utils';
import '../bitcoinUtils/createTransaction.mjs';
declare const supportedRoutes: {
getSupportedRoutes: GetSupportedRoutesFn;
checkRouteValid: CheckRouteValidFn;
};
type BridgeFromBitcoinInput_signPsbtFn = (tx: {
psbt: Uint8Array;
signInputs: number[];
}) => Promise<{
psbt: Uint8Array;
}>;
interface BridgeFromBitcoinInput {
fromChain: ChainId;
toChain: ChainId;
fromToken: TokenId;
toToken: TokenId;
fromAddress: string;
fromAddressScriptPubKey: Uint8Array;
toAddress: string;
amount: SDKNumber;
networkFeeRate: bigint;
reselectSpendableUTXOs: ReselectSpendableUTXOsFn;
signPsbt: BridgeFromBitcoinInput_signPsbtFn;
sendTransaction: (tx: {
hex: string;
}) => Promise<{
txid: string;
}>;
}
interface BridgeFromBitcoinOutput {
txid: string;
}
declare function bridgeFromBitcoin(ctx: SDKGlobalContext, info: BridgeFromBitcoinInput): Promise<BridgeFromBitcoinOutput>;
type PrepareBitcoinTransactionInput = KnownRoute_FromBitcoin & {
fromAddressScriptPubKey: BridgeFromBitcoinInput["fromAddressScriptPubKey"];
fromAddress: BridgeFromBitcoinInput["fromAddress"];
toAddress: BridgeFromBitcoinInput["toAddress"];
amount: BridgeFromBitcoinInput["amount"];
networkFeeRate: BridgeFromBitcoinInput["networkFeeRate"];
reselectSpendableUTXOs: BridgeFromBitcoinInput["reselectSpendableUTXOs"];
orderData: Uint8Array;
pegInAddress: {
address: string;
scriptPubKey: Uint8Array;
};
};
declare function prepareBitcoinTransaction(sdkContext: Pick<SDKGlobalContext, "backendAPI">, info: PrepareBitcoinTransactionInput): Promise<BitcoinTransactionPrepareResult & {
bitcoinNetwork: typeof btc.NETWORK;
revealOutput?: {
index: number;
satsAmount: bigint;
};
}>;
export { type BridgeFromBitcoinInput, type BridgeFromBitcoinInput_signPsbtFn, type BridgeFromBitcoinOutput, type PrepareBitcoinTransactionInput, bridgeFromBitcoin, prepareBitcoinTransaction, supportedRoutes };