@nimiq/libswap
Version:
Typed Javascript library to handle atomic swaps.
26 lines (25 loc) • 1.67 kB
TypeScript
import { AssetAdapter, SwapAsset } from './IAssetAdapter';
export type TransactionDetails = import('@nimiq/core').PlainTransactionDetails;
export type ConsensusState = import('@nimiq/core').ConsensusState;
export interface NimiqClient {
addTransactionListener(listener: (tx: TransactionDetails) => any, addresses: string[]): number | Promise<number>;
getTransactionsByAddress(address: string, sinceBlockHeight?: number, knownTransactions?: TransactionDetails[]): Promise<TransactionDetails[]>;
removeListener(handle: number): Promise<void>;
sendTransaction(tx: TransactionDetails | string): Promise<TransactionDetails>;
addConsensusChangedListener(listener: (consensusState: ConsensusState) => any): Promise<number>;
}
export declare class NimiqAssetAdapter implements AssetAdapter<SwapAsset.NIM> {
client: NimiqClient;
private cancelCallback;
private stopped;
constructor(client: NimiqClient);
private findTransaction;
awaitHtlcFunding(address: string, value: number, data: string, confirmations?: number, onPending?: (tx: TransactionDetails) => any): Promise<TransactionDetails>;
fundHtlc(serializedTx: string, onPending?: (tx: TransactionDetails) => any, serializedProxyTx?: string): Promise<TransactionDetails>;
awaitHtlcSettlement(address: string): Promise<TransactionDetails>;
awaitSwapSecret(address: string): Promise<string>;
settleHtlc(serializedTx: string, secret: string, hash: string): Promise<TransactionDetails>;
awaitSettlementConfirmation(address: string, onUpdate?: (tx: TransactionDetails) => any): Promise<TransactionDetails>;
stop(reason: Error): void;
private sendTransaction;
}