@atomiqlabs/sdk
Version:
atomiq labs SDK for cross-chain swaps between smart chains and bitcoin
69 lines (68 loc) • 2.92 kB
TypeScript
import { IToBTCSwap, ToBTCSwapState } from "./IToBTCSwap";
import { ChainType, ClaimEvent, InitializeEvent, RefundEvent } from "@atomiqlabs/base";
import { ISwapWrapperOptions, SwapTypeDefinition } from "../../ISwapWrapper";
import { Intermediary, SingleChainReputationType } from "../../../intermediaries/Intermediary";
import { IEscrowSwapWrapper } from "../IEscrowSwapWrapper";
import { AmountData } from "../../../types/AmountData";
export type IToBTCDefinition<T extends ChainType, W extends IToBTCWrapper<T, any>, S extends IToBTCSwap<T>> = SwapTypeDefinition<T, W, S>;
/**
* Base class for wrappers of escrow-based Smart chain -> Bitcoin (on-chain & lightning) swaps
*
* @category Swaps/Smart chain → Bitcoin
*/
export declare abstract class IToBTCWrapper<T extends ChainType, D extends IToBTCDefinition<T, IToBTCWrapper<T, D>, IToBTCSwap<T, D>>, O extends ISwapWrapperOptions = ISwapWrapperOptions> extends IEscrowSwapWrapper<T, D, O> {
/**
* @internal
*/
protected readonly tickSwapState: ToBTCSwapState[];
/**
* @internal
*/
readonly _pendingSwapStates: ToBTCSwapState[];
/**
* @internal
*/
readonly _refundableSwapStates: ToBTCSwapState[];
/**
* Pre-fetches intermediary's reputation, doesn't throw, instead aborts via abortController and returns null
*
* @param amountData
* @param lp Intermediary
* @param abortController
* @param contractVersion
* @returns Intermediary's reputation or null if failed
* @throws {IntermediaryError} If the intermediary vault doesn't exist
*
* @internal
*/
protected preFetchIntermediaryReputation(amountData: Omit<AmountData, "amount">, lp: Intermediary, abortController: AbortController, contractVersion: string): Promise<SingleChainReputationType | undefined>;
/**
* Pre-fetches feeRate for a given swap
*
* @param signer Address of the swap initiator
* @param amountData
* @param claimHash optional hash of the swap or null
* @param abortController
* @param contractVersions
* @returns Fee rate
*
* @internal
*/
protected preFetchFeeRate(signer: string, amountData: Omit<AmountData, "amount">, claimHash: {
[contractVersion: string]: string;
} | undefined, abortController: AbortController, contractVersions: string[]): {
[contractVersion: string]: Promise<string | undefined>;
};
/**
* @internal
*/
protected processEventInitialize(swap: D["Swap"], event: InitializeEvent<T["Data"]>): Promise<boolean>;
/**
* @internal
*/
protected processEventClaim(swap: D["Swap"], event: ClaimEvent<T["Data"]>): Promise<boolean>;
/**
* @internal
*/
protected processEventRefund(swap: D["Swap"], event: RefundEvent<T["Data"]>): Promise<boolean>;
}