@bsv/wallet-toolbox-client
Version:
Client only Wallet Storage
129 lines • 4.42 kB
TypeScript
import { HeightRange } from './HeightRange';
import { ChaintracksFsApi } from '../Api/ChaintracksFsApi';
import { ChaintracksFetchApi } from '../Api/ChaintracksFetchApi';
import { ChaintracksStorageBase } from '../Storage/ChaintracksStorageBase';
import { Chain } from '../../../../sdk/types';
/**
* Descriptive information about a single bulk header file.
*/
export interface BulkHeaderFileInfo {
/**
* filename and extension, no path
*/
fileName: string;
/**
* chain height of first header in file
*/
firstHeight: number;
/**
* count of how many headers the file contains. File size must be 80 * count.
*/
count: number;
/**
* prevChainWork is the cummulative chain work up to the first header in this file's data, as a hex string.
*/
prevChainWork: string;
/**
* lastChainWork is the cummulative chain work including the last header in this file's data, as a hex string.
*/
lastChainWork: string;
/**
* previousHash of first header in file in standard hex string block hash encoding
*/
prevHash: string;
/**
* block hash of last header in the file in standard hex string block hash encoding
*/
lastHash: string | null;
/**
* file contents single sha256 hash as base64 string
*/
fileHash: string | null;
/**
* Which chain: 'main' or 'test'
*/
chain?: Chain;
data?: Uint8Array;
/**
* true iff these properties should be considered pre-validated, including a valid required fileHash of data (when not undefined).
*/
validated?: boolean;
/**
* optional, used for database storage
*/
fileId?: number;
/**
* optional, if valid `${sourceUrl}/${fileName}` is the source of this data.
*/
sourceUrl?: string;
}
export declare abstract class BulkHeaderFile implements BulkHeaderFileInfo {
chain?: Chain | undefined;
count: number;
data?: Uint8Array<ArrayBufferLike> | undefined;
fileHash: string | null;
fileId?: number | undefined;
fileName: string;
firstHeight: number;
lastChainWork: string;
lastHash: string | null;
prevChainWork: string;
prevHash: string;
sourceUrl?: string | undefined;
validated?: boolean | undefined;
constructor(info: BulkHeaderFileInfo);
abstract readDataFromFile(length: number, offset: number): Promise<Uint8Array | undefined>;
get heightRange(): HeightRange;
ensureData(): Promise<Uint8Array>;
/**
* Whenever reloading data from a backing store, validated fileHash must be re-verified
* @returns the sha256 hash of the file's data as base64 string.
*/
computeFileHash(): Promise<string>;
releaseData(): Promise<void>;
toCdnInfo(): BulkHeaderFileInfo;
toStorageInfo(): BulkHeaderFileInfo;
}
export declare class BulkHeaderFileFs extends BulkHeaderFile {
fs: ChaintracksFsApi;
rootFolder: string;
constructor(info: BulkHeaderFileInfo, fs: ChaintracksFsApi, rootFolder: string);
readDataFromFile(length: number, offset: number): Promise<Uint8Array | undefined>;
ensureData(): Promise<Uint8Array>;
}
export declare class BulkHeaderFileStorage extends BulkHeaderFile {
storage: ChaintracksStorageBase;
fetch?: ChaintracksFetchApi | undefined;
constructor(info: BulkHeaderFileInfo, storage: ChaintracksStorageBase, fetch?: ChaintracksFetchApi | undefined);
readDataFromFile(length: number, offset: number): Promise<Uint8Array | undefined>;
ensureData(): Promise<Uint8Array>;
}
/**
* Describes a collection of bulk block header files.
*/
export interface BulkHeaderFilesInfo {
/**
* Where this file was fetched or read from.
*/
rootFolder: string;
/**
* Sub-path to this resource on rootFolder
*/
jsonFilename: string;
/**
* Array of information about each bulk block header file.
*/
files: BulkHeaderFileInfo[];
/**
* Maximum number of headers in a single file in this collection of files.
*/
headersPerFile: number;
}
export declare abstract class BulkHeaderFiles implements BulkHeaderFilesInfo {
rootFolder: string;
jsonFilename: string;
files: BulkHeaderFileInfo[];
headersPerFile: number;
constructor(rootFolder: string, jsonFilename: string, files: BulkHeaderFileInfo[], headersPerFile: number);
}
//# sourceMappingURL=BulkHeaderFile.d.ts.map