UNPKG

@atomiqlabs/chain-starknet

Version:

Starknet specific base implementation

46 lines (45 loc) 2.15 kB
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; }