@atomiqlabs/chain-starknet
Version:
Starknet specific base implementation
46 lines (45 loc) • 2.15 kB
TypeScript
import { IClaimHandler } from "../ClaimHandlers";
import { StarknetSwapData } from "../../../StarknetSwapData";
import { StarknetGas } from "../../../../chain/StarknetAction";
import { ChainSwapType, RelaySynchronizer } from "@atomiqlabs/base";
import { BigNumberish } from "starknet";
import { StarknetBtcStoredHeader } from "../../../../btcrelay/headers/StarknetBtcStoredHeader";
import { StarknetTx } from "../../../../chain/modules/StarknetTransactions";
import { StarknetBtcRelay } from "../../../../btcrelay/StarknetBtcRelay";
export type BitcoinCommitmentData = {
btcRelay: StarknetBtcRelay<any>;
confirmations: number;
};
export type BitcoinWitnessData = {
tx: {
blockhash: string;
confirmations: number;
txid: string;
hex: string;
height: number;
};
requiredConfirmations: number;
commitedHeader?: StarknetBtcStoredHeader;
btcRelay?: StarknetBtcRelay<any>;
synchronizer?: RelaySynchronizer<StarknetBtcStoredHeader, StarknetTx, any>;
};
export declare abstract class IBitcoinClaimHandler<C, W extends BitcoinWitnessData> implements IClaimHandler<C & BitcoinCommitmentData, W> {
readonly address: string;
constructor(address: string);
static readonly address = "";
static readonly type: ChainSwapType;
static readonly gas: StarknetGas;
protected serializeCommitment(data: BitcoinCommitmentData): BigNumberish[];
getCommitment(data: C & BitcoinCommitmentData): BigNumberish;
protected _getWitness(signer: string, swapData: StarknetSwapData, { tx, btcRelay, commitedHeader, synchronizer, requiredConfirmations }: BitcoinWitnessData, commitment: C, feeRate?: string): Promise<{
initialTxns: StarknetTx[];
witness: BigNumberish[];
}>;
abstract getWitness(signer: string, data: StarknetSwapData, witnessData: W, feeRate?: string): Promise<{
initialTxns: StarknetTx[];
witness: BigNumberish[];
}>;
abstract getGas(data: StarknetSwapData): StarknetGas;
abstract getType(): ChainSwapType;
parseWitnessResult(result: BigNumberish[]): string;
}