@bsv/wallet-toolbox-client
Version:
Client only Wallet Storage
77 lines • 4.85 kB
TypeScript
import { TableCertificateField, TableCertificateX, TableCommission, TableMonitorEvent, TableOutput, TableOutputBasket, TableOutputTag, TableOutputTagMap, TableProvenTx, TableProvenTxReq, TableSettings, TableSyncState, TableTransaction, TableTxLabel, TableTxLabelMap, TableUser } from './schema/tables';
import * as sdk from '../sdk/index';
/**
* The `StorageReader` abstract class is the base of the concrete wallet storage provider classes.
*
* It is the minimal interface required to read all wallet state records and is the base class for sync readers.
*
* The next class in the heirarchy is the `StorageReaderWriter` which supports sync readers and writers.
*
* The last class in the heirarchy is the `Storage` class which supports all active wallet operations.
*
* The ability to construct a properly configured instance of this class implies authentication.
* As such there are no user specific authenticated access checks implied in the implementation of any of these methods.
*/
export declare abstract class StorageReader implements sdk.WalletStorageSyncReader {
chain: sdk.Chain;
_settings?: TableSettings;
whenLastAccess?: Date;
get dbtype(): DBType | undefined;
constructor(options: StorageReaderOptions);
isAvailable(): boolean;
makeAvailable(): Promise<TableSettings>;
getSettings(): TableSettings;
isStorageProvider(): boolean;
abstract destroy(): Promise<void>;
abstract transaction<T>(scope: (trx: sdk.TrxToken) => Promise<T>, trx?: sdk.TrxToken): Promise<T>;
abstract readSettings(trx?: sdk.TrxToken): Promise<TableSettings>;
abstract findCertificateFields(args: sdk.FindCertificateFieldsArgs): Promise<TableCertificateField[]>;
abstract findCertificates(args: sdk.FindCertificatesArgs): Promise<TableCertificateX[]>;
abstract findCommissions(args: sdk.FindCommissionsArgs): Promise<TableCommission[]>;
abstract findMonitorEvents(args: sdk.FindMonitorEventsArgs): Promise<TableMonitorEvent[]>;
abstract findOutputBaskets(args: sdk.FindOutputBasketsArgs): Promise<TableOutputBasket[]>;
abstract findOutputs(args: sdk.FindOutputsArgs): Promise<TableOutput[]>;
abstract findOutputTags(args: sdk.FindOutputTagsArgs): Promise<TableOutputTag[]>;
abstract findSyncStates(args: sdk.FindSyncStatesArgs): Promise<TableSyncState[]>;
abstract findTransactions(args: sdk.FindTransactionsArgs): Promise<TableTransaction[]>;
abstract findTxLabels(args: sdk.FindTxLabelsArgs): Promise<TableTxLabel[]>;
abstract findUsers(args: sdk.FindUsersArgs): Promise<TableUser[]>;
abstract countCertificateFields(args: sdk.FindCertificateFieldsArgs): Promise<number>;
abstract countCertificates(args: sdk.FindCertificatesArgs): Promise<number>;
abstract countCommissions(args: sdk.FindCommissionsArgs): Promise<number>;
abstract countMonitorEvents(args: sdk.FindMonitorEventsArgs): Promise<number>;
abstract countOutputBaskets(args: sdk.FindOutputBasketsArgs): Promise<number>;
abstract countOutputs(args: sdk.FindOutputsArgs): Promise<number>;
abstract countOutputTags(args: sdk.FindOutputTagsArgs): Promise<number>;
abstract countSyncStates(args: sdk.FindSyncStatesArgs): Promise<number>;
abstract countTransactions(args: sdk.FindTransactionsArgs): Promise<number>;
abstract countTxLabels(args: sdk.FindTxLabelsArgs): Promise<number>;
abstract countUsers(args: sdk.FindUsersArgs): Promise<number>;
abstract getProvenTxsForUser(args: sdk.FindForUserSincePagedArgs): Promise<TableProvenTx[]>;
abstract getProvenTxReqsForUser(args: sdk.FindForUserSincePagedArgs): Promise<TableProvenTxReq[]>;
abstract getTxLabelMapsForUser(args: sdk.FindForUserSincePagedArgs): Promise<TableTxLabelMap[]>;
abstract getOutputTagMapsForUser(args: sdk.FindForUserSincePagedArgs): Promise<TableOutputTagMap[]>;
findUserByIdentityKey(key: string): Promise<TableUser | undefined>;
getSyncChunk(args: sdk.RequestSyncChunkArgs): Promise<sdk.SyncChunk>;
/**
* Force dates to strings on SQLite and Date objects on MySQL
* @param date
* @returns
*/
validateEntityDate(date: Date | string | number): Date | string;
/**
*
* @param date
* @param useNowAsDefault if true and date is null or undefiend, set to current time.
* @returns
*/
validateOptionalEntityDate(date: Date | string | number | null | undefined, useNowAsDefault?: boolean): Date | string | undefined;
validateDate(date: Date | string | number): Date;
validateOptionalDate(date: Date | string | number | null | undefined): Date | undefined;
validateDateForWhere(date: Date | string | number): Date | string | number;
}
export interface StorageReaderOptions {
chain: sdk.Chain;
}
export type DBType = 'SQLite' | 'MySQL' | 'IndexedDB';
//# sourceMappingURL=StorageReader.d.ts.map