wallet-storage-client
Version:
Client only Wallet Storage
89 lines • 3.17 kB
TypeScript
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