@bsv/wallet-toolbox
Version:
BRC100 conforming wallet, wallet storage and wallet signer components
88 lines • 5.96 kB
TypeScript
import { Knex } from 'knex';
import { StorageReader, StorageReaderOptions } from '../StorageReader';
import { TableSettings } from '../schema/tables/TableSettings';
import { TableUser } from '../schema/tables/TableUser';
import { TableSyncState } from '../schema/tables/TableSyncState';
import { TableCertificateX } from '../schema/tables/TableCertificate';
import { TableOutputBasket } from '../schema/tables/TableOutputBasket';
import { TableOutput } from '../schema/tables/TableOutput';
import { TableProvenTxReq } from '../schema/tables/TableProvenTxReq';
import { Chain, EntityTimeStamp } from '../../sdk/types';
import { FindCertificateFieldsArgs, FindCommissionsArgs, FindForUserSincePagedArgs, FindMonitorEventsArgs, FindOutputTagsArgs, FindPartialSincePagedArgs, FindSyncStatesArgs, FindTransactionsArgs, FindTxLabelsArgs, FindUsersArgs, TrxToken, WalletStorageSyncReader } from '../../sdk/WalletStorage.interfaces';
import { FindCertificatesArgs, FindOutputBasketsArgs, FindOutputsArgs } from '../../sdk/WalletStorage.interfaces';
import { TableTxLabel } from '../schema/tables/TableTxLabel';
import { TableOutputTag } from '../schema/tables/TableOutputTag';
import { TableTransaction } from '../schema/tables/TableTransaction';
import { TableCommission } from '../schema/tables/TableCommission';
import { TableCertificateField } from '../schema/tables/TableCertificateField';
import { TableProvenTx } from '../schema/tables/TableProvenTx';
import { TableTxLabelMap } from '../schema/tables/TableTxLabelMap';
import { TableOutputTagMap } from '../schema/tables/TableOutputTagMap';
import { TableMonitorEvent } from '../schema/tables/TableMonitorEvent';
export interface StorageMySQLDojoReaderOptions extends StorageReaderOptions {
chain: Chain;
/**
* Knex database interface initialized with valid connection configuration.
*/
knex: Knex;
}
export declare class StorageMySQLDojoReader extends StorageReader implements WalletStorageSyncReader {
knex: Knex;
constructor(options: StorageMySQLDojoReaderOptions);
destroy(): Promise<void>;
transaction<T>(scope: (trx: TrxToken) => Promise<T>, trx?: TrxToken): Promise<T>;
toDb(trx?: TrxToken): Knex<any, any[]>;
readSettings(trx?: TrxToken): Promise<TableSettings>;
setupQuery<T extends object>(table: string, args: FindPartialSincePagedArgs<T>): Knex.QueryBuilder;
findOutputBasketsQuery(args: FindOutputBasketsArgs): Knex.QueryBuilder;
findOutputBaskets(args: FindOutputBasketsArgs): Promise<TableOutputBasket[]>;
findTxLabelsQuery(args: FindTxLabelsArgs): Knex.QueryBuilder;
findTxLabels(args: FindTxLabelsArgs): Promise<TableTxLabel[]>;
findOutputTagsQuery(args: FindOutputTagsArgs): Knex.QueryBuilder;
findOutputTags(args: FindOutputTagsArgs): Promise<TableOutputTag[]>;
findTransactionsQuery(args: FindTransactionsArgs, count?: boolean): Knex.QueryBuilder;
findTransactions(args: FindTransactionsArgs): Promise<TableTransaction[]>;
findCommissionsQuery(args: FindCommissionsArgs): Knex.QueryBuilder;
findCommissions(args: FindCommissionsArgs): Promise<TableCommission[]>;
limitString(s: string, maxLen: number): string;
findOutputsQuery(args: FindOutputsArgs, count?: boolean): Knex.QueryBuilder;
findOutputs(args: FindOutputsArgs): Promise<TableOutput[]>;
findCertificatesQuery(args: FindCertificatesArgs): Knex.QueryBuilder;
findCertificates(args: FindCertificatesArgs): Promise<TableCertificateX[]>;
findCertificateFieldsQuery(args: FindCertificateFieldsArgs): Knex.QueryBuilder;
findCertificateFields(args: FindCertificateFieldsArgs): Promise<TableCertificateField[]>;
findSyncStates(args: FindSyncStatesArgs): Promise<TableSyncState[]>;
findUsers(args: FindUsersArgs): Promise<TableUser[]>;
getProvenTxsForUserQuery(args: FindForUserSincePagedArgs): Knex.QueryBuilder;
getProvenTxsForUser(args: FindForUserSincePagedArgs): Promise<TableProvenTx[]>;
getProvenTxReqsForUserQuery(args: FindForUserSincePagedArgs): Knex.QueryBuilder;
getProvenTxReqsForUser(args: FindForUserSincePagedArgs): Promise<TableProvenTxReq[]>;
getTxLabelMapsForUserQuery(args: FindForUserSincePagedArgs): Knex.QueryBuilder;
getTxLabelMapsForUser(args: FindForUserSincePagedArgs): Promise<TableTxLabelMap[]>;
getOutputTagMapsForUserQuery(args: FindForUserSincePagedArgs): Knex.QueryBuilder;
getOutputTagMapsForUser(args: FindForUserSincePagedArgs): Promise<TableOutputTagMap[]>;
countCertificateFields(args: FindCertificateFieldsArgs): Promise<number>;
countCertificates(args: FindCertificatesArgs): Promise<number>;
countCommissions(args: FindCommissionsArgs): Promise<number>;
countOutputBaskets(args: FindOutputBasketsArgs): Promise<number>;
countOutputs(args: FindOutputsArgs): Promise<number>;
countOutputTags(args: FindOutputTagsArgs): Promise<number>;
countSyncStates(args: FindSyncStatesArgs): Promise<number>;
countTransactions(args: FindTransactionsArgs): Promise<number>;
countTxLabels(args: FindTxLabelsArgs): Promise<number>;
countUsers(args: FindUsersArgs): Promise<number>;
findMonitorEvents(args: FindMonitorEventsArgs): Promise<TableMonitorEvent[]>;
countMonitorEvents(args: FindMonitorEventsArgs): Promise<number>;
/**
* Helper to force uniform behavior across database engines.
* Use to process all individual records with time stamps retreived from database.
*/
validateEntity<T extends EntityTimeStamp>(entity: T, dateFields?: string[], booleanFields?: string[]): T;
/**
* Helper to force uniform behavior across database engines.
* Use to process all arrays of records with time stamps retreived from database.
* @returns input `entities` array with contained values validated.
*/
validateEntities<T extends EntityTimeStamp>(entities: T[], dateFields?: string[], booleanFields?: string[]): T[];
}
//# sourceMappingURL=StorageMySQLDojoReader.d.ts.map