UNPKG

@airgap/coinlib-core

Version:

The @airgap/coinlib-core is a protocol agnostic library to prepare, sign and broadcast cryptocurrency transactions.

25 lines (24 loc) 727 B
export declare enum ActionState { READY = 0, EXECUTING = 1, COMPLETED = 2, CANCELLED = 3 } export declare abstract class Action<Result, Context> { get identifier(): string; readonly context: Context; result?: Result; error?: Error; onComplete?: (result: Result) => Promise<void>; onError?: (error: Error) => Promise<void>; onCancel?: () => Promise<void>; private readonly stateMachine; constructor(context: Context); getState(): ActionState; start(): Promise<void>; cancel(): void; protected abstract perform(): Promise<Result>; protected addValidTransition(from: ActionState, to: ActionState): void; private handleSuccess; private handleError; }