@bsv/wallet-toolbox-client
Version:
Client only Wallet Storage
68 lines • 3.67 kB
TypeScript
import { Chain } from '../../../../sdk';
import { InsertHeaderResult, ChaintracksStorageBaseOptions, ChaintracksStorageIngestApi, ChaintracksStorageQueryApi } from '../Api/ChaintracksStorageApi';
import { BlockHeader, LiveBlockHeader } from '../Api/BlockHeaderApi';
import { HeightRange } from '../util/HeightRange';
import { BulkFileDataManager } from '../util/BulkFileDataManager';
/**
* Required interface methods of a Chaintracks Storage Engine implementation.
*/
export declare abstract class ChaintracksStorageBase implements ChaintracksStorageQueryApi, ChaintracksStorageIngestApi {
static createStorageBaseOptions(chain: Chain): ChaintracksStorageBaseOptions;
chain: Chain;
liveHeightThreshold: number;
reorgHeightThreshold: number;
bulkMigrationChunkSize: number;
batchInsertLimit: number;
isAvailable: boolean;
hasMigrated: boolean;
bulkManager: BulkFileDataManager;
constructor(options: ChaintracksStorageBaseOptions);
shutdown(): Promise<void>;
makeAvailable(): Promise<void>;
migrateLatest(): Promise<void>;
dropAllData(): Promise<void>;
abstract deleteLiveBlockHeaders(): Promise<void>;
abstract deleteOlderLiveBlockHeaders(maxHeight: number): Promise<number>;
abstract findChainTipHeader(): Promise<LiveBlockHeader>;
abstract findChainTipHeaderOrUndefined(): Promise<LiveBlockHeader | undefined>;
abstract findLiveHeaderForBlockHash(hash: string): Promise<LiveBlockHeader | null>;
abstract findLiveHeaderForHeaderId(headerId: number): Promise<LiveBlockHeader>;
abstract findLiveHeaderForHeight(height: number): Promise<LiveBlockHeader | null>;
abstract findLiveHeaderForMerkleRoot(merkleRoot: string): Promise<LiveBlockHeader | null>;
abstract findLiveHeightRange(): Promise<{
minHeight: number;
maxHeight: number;
}>;
abstract findMaxHeaderId(): Promise<number>;
abstract getLiveHeightRange(): Promise<HeightRange>;
abstract liveHeadersForBulk(count: number): Promise<LiveBlockHeader[]>;
abstract getHeaders(height: number, count: number): Promise<number[]>;
/**
* @param header Header to attempt to add to live storage.
* @returns details of conditions found attempting to insert header
*/
abstract insertHeader(header: BlockHeader): Promise<InsertHeaderResult>;
abstract destroy(): Promise<void>;
deleteBulkBlockHeaders(): Promise<void>;
getAvailableHeightRanges(): Promise<{
bulk: HeightRange;
live: HeightRange;
}>;
private lastActiveMinHeight;
pruneLiveBlockHeaders(activeTipHeight: number): Promise<void>;
findChainTipHash(): Promise<string>;
findChainTipWork(): Promise<string>;
findChainWorkForBlockHash(hash: string): Promise<string>;
findBulkFilesHeaderForHeightOrUndefined(height: number): Promise<BlockHeader | undefined>;
findHeaderForHeightOrUndefined(height: number): Promise<LiveBlockHeader | BlockHeader | undefined>;
findHeaderForHeight(height: number): Promise<LiveBlockHeader | BlockHeader>;
isMerkleRootActive(merkleRoot: string): Promise<boolean>;
findCommonAncestor(header1: LiveBlockHeader, header2: LiveBlockHeader): Promise<LiveBlockHeader>;
findReorgDepth(header1: LiveBlockHeader, header2: LiveBlockHeader): Promise<number>;
private nowMigratingLiveToBulk;
migrateLiveToBulk(count: number, ignoreLimits?: boolean): Promise<void>;
addBulkHeaders(headers: BlockHeader[], bulkRange: HeightRange, priorLiveHeaders: BlockHeader[]): Promise<BlockHeader[]>;
private addBulkHeadersFromBestChain;
private addLiveHeadersToBulk;
}
//# sourceMappingURL=ChaintracksStorageBase.d.ts.map