UNPKG

wallet-storage-client

Version:
89 lines 3.17 kB
import { sdk, Services, WalletStorageManager } from "../index.client"; import { BlockHeader, ChaintracksServiceClient } from "../services/chaintracker"; import { TaskPurgeParams } from './tasks/TaskPurge'; import { WalletMonitorTask } from './tasks/WalletMonitorTask'; export type MonitorStorage = WalletStorageManager; export interface MonitorOptions { chain: sdk.Chain; services: Services; storage: MonitorStorage; chaintracks: ChaintracksServiceClient; /** * How many msecs to wait after each getMerkleProof service request. */ msecsWaitPerMerkleProofServiceReq: number; taskRunWaitMsecs: number; abandonedMsecs: number; unprovenAttemptsLimitTest: number; unprovenAttemptsLimitMain: number; } /** * Background task to make sure transactions are processed, transaction proofs are received and propagated, * and potentially that reorgs update proofs that were already received. */ export declare class Monitor { static createDefaultWalletMonitorOptions(chain: sdk.Chain, storage: MonitorStorage, services?: Services): MonitorOptions; options: MonitorOptions; services: Services; chain: sdk.Chain; storage: MonitorStorage; chaintracks: ChaintracksServiceClient; constructor(options: MonitorOptions); oneSecond: number; oneMinute: number; oneHour: number; oneDay: number; oneWeek: number; /** * _tasks are typically run by the scheduler but may also be run by runTask. */ _tasks: WalletMonitorTask[]; /** * _otherTasks can be run by runTask but not by scheduler. */ _otherTasks: WalletMonitorTask[]; _tasksRunning: boolean; defaultPurgeParams: TaskPurgeParams; addAllTasksToOther(): void; /** * Default tasks with settings appropriate for a single user storage * possibly with sync'ing enabled */ addDefaultTasks(): void; /** * Tasks appropriate for multi-user storage * without sync'ing enabled. */ addMultiUserTasks(): void; addTask(task: WalletMonitorTask): void; removeTask(name: string): void; setupChaintracksListeners(): Promise<void>; runTask(name: string): Promise<string>; runOnce(): Promise<void>; _runAsyncSetup: boolean; startTasks(): Promise<void>; logEvent(event: string, details?: string): Promise<void>; stopTasks(): void; lastNewHeader: BlockHeader | undefined; lastNewHeaderWhen: Date | undefined; /** * Process new chain header event received from Chaintracks * * Kicks processing 'unconfirmed' and 'unmined' request processing. * * @param reqs */ processNewBlockHeader(header: BlockHeader): void; /** * Process reorg event received from Chaintracks * * Reorgs can move recent transactions to new blocks at new index positions. * Affected transaction proofs become invalid and must be updated. * * It is possible for a transaction to become invalid. * * Coinbase transactions always become invalid. */ processReorg(depth: number, oldTip: BlockHeader, newTip: BlockHeader): void; } //# sourceMappingURL=Monitor.d.ts.map