wallet-storage-client
Version:
Client only Wallet Storage
76 lines • 4.55 kB
TypeScript
import { sdk, table } from "../index.client";
/**
* 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.StorageSyncReader {
chain: sdk.Chain;
_settings?: table.Settings;
whenLastAccess?: Date;
get dbtype(): DBType | undefined;
constructor(options: StorageReaderOptions);
isAvailable(): boolean;
makeAvailable(): Promise<table.Settings>;
getSettings(): table.Settings;
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<table.Settings>;
abstract findCertificateFields(args: sdk.FindCertificateFieldsArgs): Promise<table.CertificateField[]>;
abstract findCertificates(args: sdk.FindCertificatesArgs): Promise<table.Certificate[]>;
abstract findCommissions(args: sdk.FindCommissionsArgs): Promise<table.Commission[]>;
abstract findMonitorEvents(args: sdk.FindMonitorEventsArgs): Promise<table.MonitorEvent[]>;
abstract findOutputBaskets(args: sdk.FindOutputBasketsArgs): Promise<table.OutputBasket[]>;
abstract findOutputs(args: sdk.FindOutputsArgs): Promise<table.Output[]>;
abstract findOutputTags(args: sdk.FindOutputTagsArgs): Promise<table.OutputTag[]>;
abstract findSyncStates(args: sdk.FindSyncStatesArgs): Promise<table.SyncState[]>;
abstract findTransactions(args: sdk.FindTransactionsArgs): Promise<table.Transaction[]>;
abstract findTxLabels(args: sdk.FindTxLabelsArgs): Promise<table.TxLabel[]>;
abstract findUsers(args: sdk.FindUsersArgs): Promise<table.User[]>;
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<table.ProvenTx[]>;
abstract getProvenTxReqsForUser(args: sdk.FindForUserSincePagedArgs): Promise<table.ProvenTxReq[]>;
abstract getTxLabelMapsForUser(args: sdk.FindForUserSincePagedArgs): Promise<table.TxLabelMap[]>;
abstract getOutputTagMapsForUser(args: sdk.FindForUserSincePagedArgs): Promise<table.OutputTagMap[]>;
findUserByIdentityKey(key: string): Promise<table.User | 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';
//# sourceMappingURL=StorageReader.d.ts.map