UNPKG

wallet-storage

Version:

BRC100 conforming wallet, wallet storage and wallet signer components

176 lines 12.2 kB
import { ListActionsResult, ListOutputsResult } from '@bsv/sdk'; import { sdk } from '../index.all'; import { table } from './index.all'; import { Knex } from 'knex'; import { StorageProvider, StorageProviderOptions } from './StorageProvider'; import { DBType } from './StorageReader'; export interface StorageKnexOptions extends StorageProviderOptions { /** * Knex database interface initialized with valid connection configuration. */ knex: Knex; } export declare class StorageKnex extends StorageProvider implements sdk.WalletStorageProvider { knex: Knex; constructor(options: StorageKnexOptions); readSettings(): Promise<table.Settings>; getProvenOrRawTx(txid: string, trx?: sdk.TrxToken): Promise<sdk.ProvenOrRawTx>; dbTypeSubstring(source: string, fromOffset: number, forLength?: number): string; getRawTxOfKnownValidTransaction(txid?: string, offset?: number, length?: number, trx?: sdk.TrxToken): Promise<number[] | undefined>; getProvenTxsForUserQuery(args: sdk.FindForUserSincePagedArgs): Knex.QueryBuilder; getProvenTxsForUser(args: sdk.FindForUserSincePagedArgs): Promise<table.ProvenTx[]>; getProvenTxReqsForUserQuery(args: sdk.FindForUserSincePagedArgs): Knex.QueryBuilder; getProvenTxReqsForUser(args: sdk.FindForUserSincePagedArgs): Promise<table.ProvenTxReq[]>; getTxLabelMapsForUserQuery(args: sdk.FindForUserSincePagedArgs): Knex.QueryBuilder; getTxLabelMapsForUser(args: sdk.FindForUserSincePagedArgs): Promise<table.TxLabelMap[]>; getOutputTagMapsForUserQuery(args: sdk.FindForUserSincePagedArgs): Knex.QueryBuilder; getOutputTagMapsForUser(args: sdk.FindForUserSincePagedArgs): Promise<table.OutputTagMap[]>; listActions(auth: sdk.AuthId, vargs: sdk.ValidListActionsArgs): Promise<ListActionsResult>; listOutputs(auth: sdk.AuthId, vargs: sdk.ValidListOutputsArgs): Promise<ListOutputsResult>; insertProvenTx(tx: table.ProvenTx, trx?: sdk.TrxToken): Promise<number>; insertProvenTxReq(tx: table.ProvenTxReq, trx?: sdk.TrxToken): Promise<number>; insertUser(user: table.User, trx?: sdk.TrxToken): Promise<number>; insertCertificateAuth(auth: sdk.AuthId, certificate: table.CertificateX): Promise<number>; insertCertificate(certificate: table.CertificateX, trx?: sdk.TrxToken): Promise<number>; insertCertificateField(certificateField: table.CertificateField, trx?: sdk.TrxToken): Promise<void>; insertOutputBasket(basket: table.OutputBasket, trx?: sdk.TrxToken): Promise<number>; insertTransaction(tx: table.Transaction, trx?: sdk.TrxToken): Promise<number>; insertCommission(commission: table.Commission, trx?: sdk.TrxToken): Promise<number>; insertOutput(output: table.Output, trx?: sdk.TrxToken): Promise<number>; insertOutputTag(tag: table.OutputTag, trx?: sdk.TrxToken): Promise<number>; insertOutputTagMap(tagMap: table.OutputTagMap, trx?: sdk.TrxToken): Promise<void>; insertTxLabel(label: table.TxLabel, trx?: sdk.TrxToken): Promise<number>; insertTxLabelMap(labelMap: table.TxLabelMap, trx?: sdk.TrxToken): Promise<void>; insertMonitorEvent(event: table.MonitorEvent, trx?: sdk.TrxToken): Promise<number>; insertSyncState(syncState: table.SyncState, trx?: sdk.TrxToken): Promise<number>; updateCertificateField(certificateId: number, fieldName: string, update: Partial<table.CertificateField>, trx?: sdk.TrxToken): Promise<number>; updateCertificate(id: number, update: Partial<table.Certificate>, trx?: sdk.TrxToken): Promise<number>; updateCommission(id: number, update: Partial<table.Commission>, trx?: sdk.TrxToken): Promise<number>; updateOutputBasket(id: number, update: Partial<table.OutputBasket>, trx?: sdk.TrxToken): Promise<number>; updateOutput(id: number, update: Partial<table.Output>, trx?: sdk.TrxToken): Promise<number>; updateOutputTagMap(outputId: number, tagId: number, update: Partial<table.OutputTagMap>, trx?: sdk.TrxToken): Promise<number>; updateOutputTag(id: number, update: Partial<table.OutputTag>, trx?: sdk.TrxToken): Promise<number>; updateProvenTxReq(id: number | number[], update: Partial<table.ProvenTxReq>, trx?: sdk.TrxToken): Promise<number>; updateProvenTx(id: number, update: Partial<table.ProvenTx>, trx?: sdk.TrxToken): Promise<number>; updateSyncState(id: number, update: Partial<table.SyncState>, trx?: sdk.TrxToken): Promise<number>; updateTransaction(id: number | number[], update: Partial<table.Transaction>, trx?: sdk.TrxToken): Promise<number>; updateTxLabelMap(transactionId: number, txLabelId: number, update: Partial<table.TxLabelMap>, trx?: sdk.TrxToken): Promise<number>; updateTxLabel(id: number, update: Partial<table.TxLabel>, trx?: sdk.TrxToken): Promise<number>; updateUser(id: number, update: Partial<table.User>, trx?: sdk.TrxToken): Promise<number>; updateMonitorEvent(id: number, update: Partial<table.MonitorEvent>, trx?: sdk.TrxToken): Promise<number>; setupQuery<T extends object>(table: string, args: sdk.FindPartialSincePagedArgs<T>): Knex.QueryBuilder; findCertificateFieldsQuery(args: sdk.FindCertificateFieldsArgs): Knex.QueryBuilder; findCertificatesQuery(args: sdk.FindCertificatesArgs): Knex.QueryBuilder; findCommissionsQuery(args: sdk.FindCommissionsArgs): Knex.QueryBuilder; findOutputBasketsQuery(args: sdk.FindOutputBasketsArgs): Knex.QueryBuilder; findOutputsQuery(args: sdk.FindOutputsArgs, count?: boolean): Knex.QueryBuilder; findOutputTagMapsQuery(args: sdk.FindOutputTagMapsArgs): Knex.QueryBuilder; findOutputTagsQuery(args: sdk.FindOutputTagsArgs): Knex.QueryBuilder; findProvenTxReqsQuery(args: sdk.FindProvenTxReqsArgs): Knex.QueryBuilder; findProvenTxsQuery(args: sdk.FindProvenTxsArgs): Knex.QueryBuilder; findSyncStatesQuery(args: sdk.FindSyncStatesArgs): Knex.QueryBuilder; findTransactionsQuery(args: sdk.FindTransactionsArgs, count?: boolean): Knex.QueryBuilder; findTxLabelMapsQuery(args: sdk.FindTxLabelMapsArgs): Knex.QueryBuilder; findTxLabelsQuery(args: sdk.FindTxLabelsArgs): Knex.QueryBuilder; findUsersQuery(args: sdk.FindUsersArgs): Knex.QueryBuilder; findMonitorEventsQuery(args: sdk.FindMonitorEventsArgs): Knex.QueryBuilder; findCertificatesAuth(auth: sdk.AuthId, args: sdk.FindCertificatesArgs): Promise<table.Certificate[]>; findOutputBasketsAuth(auth: sdk.AuthId, args: sdk.FindOutputBasketsArgs): Promise<table.OutputBasket[]>; findOutputsAuth(auth: sdk.AuthId, args: sdk.FindOutputsArgs): Promise<table.Output[]>; findCertificateFields(args: sdk.FindCertificateFieldsArgs): Promise<table.CertificateField[]>; findCertificates(args: sdk.FindCertificatesArgs): Promise<table.Certificate[]>; findCommissions(args: sdk.FindCommissionsArgs): Promise<table.Commission[]>; findOutputBaskets(args: sdk.FindOutputBasketsArgs): Promise<table.OutputBasket[]>; findOutputs(args: sdk.FindOutputsArgs): Promise<table.Output[]>; findOutputTagMaps(args: sdk.FindOutputTagMapsArgs): Promise<table.OutputTagMap[]>; findOutputTags(args: sdk.FindOutputTagsArgs): Promise<table.OutputTag[]>; findProvenTxReqs(args: sdk.FindProvenTxReqsArgs): Promise<table.ProvenTxReq[]>; findProvenTxs(args: sdk.FindProvenTxsArgs): Promise<table.ProvenTx[]>; findSyncStates(args: sdk.FindSyncStatesArgs): Promise<table.SyncState[]>; findTransactions(args: sdk.FindTransactionsArgs): Promise<table.Transaction[]>; findTxLabelMaps(args: sdk.FindTxLabelMapsArgs): Promise<table.TxLabelMap[]>; findTxLabels(args: sdk.FindTxLabelsArgs): Promise<table.TxLabel[]>; findUsers(args: sdk.FindUsersArgs): Promise<table.User[]>; findMonitorEvents(args: sdk.FindMonitorEventsArgs): Promise<table.MonitorEvent[]>; getCount<T extends object>(q: Knex.QueryBuilder<T, T[]>): Promise<number>; countCertificateFields(args: sdk.FindCertificateFieldsArgs): Promise<number>; countCertificates(args: sdk.FindCertificatesArgs): Promise<number>; countCommissions(args: sdk.FindCommissionsArgs): Promise<number>; countOutputBaskets(args: sdk.FindOutputBasketsArgs): Promise<number>; countOutputs(args: sdk.FindOutputsArgs): Promise<number>; countOutputTagMaps(args: sdk.FindOutputTagMapsArgs): Promise<number>; countOutputTags(args: sdk.FindOutputTagsArgs): Promise<number>; countProvenTxReqs(args: sdk.FindProvenTxReqsArgs): Promise<number>; countProvenTxs(args: sdk.FindProvenTxsArgs): Promise<number>; countSyncStates(args: sdk.FindSyncStatesArgs): Promise<number>; countTransactions(args: sdk.FindTransactionsArgs): Promise<number>; countTxLabelMaps(args: sdk.FindTxLabelMapsArgs): Promise<number>; countTxLabels(args: sdk.FindTxLabelsArgs): Promise<number>; countUsers(args: sdk.FindUsersArgs): Promise<number>; countMonitorEvents(args: sdk.FindMonitorEventsArgs): Promise<number>; destroy(): Promise<void>; migrate(storageName: string, storageIdentityKey: string): Promise<string>; dropAllData(): Promise<void>; transaction<T>(scope: (trx: sdk.TrxToken) => Promise<T>, trx?: sdk.TrxToken): Promise<T>; /** * Convert the standard optional `TrxToken` parameter into either a direct knex database instance, * or a Knex.Transaction as appropriate. */ toDb(trx?: sdk.TrxToken): Knex<any, any[]>; validateRawTransaction(t: table.Transaction, trx?: sdk.TrxToken): Promise<void>; validateOutputScript(o: table.Output, trx?: sdk.TrxToken): Promise<void>; _verifiedReadyForDatabaseAccess: boolean; /** * Make sure database is ready for access: * * - dateScheme is known * - foreign key constraints are enabled * * @param trx */ verifyReadyForDatabaseAccess(trx?: sdk.TrxToken): Promise<DBType>; /** * Helper to force uniform behavior across database engines. * Use to process the update template for entities being updated. */ validatePartialForUpdate<T extends sdk.EntityTimeStamp>(update: Partial<T>, dateFields?: string[], booleanFields?: string[]): Partial<T>; /** * Helper to force uniform behavior across database engines. * Use to process new entities being inserted into the database. */ validateEntityForInsert<T extends sdk.EntityTimeStamp>(entity: T, trx?: sdk.TrxToken, dateFields?: string[], booleanFields?: string[]): Promise<any>; getLabelsForTransactionId(transactionId?: number, trx?: sdk.TrxToken): Promise<table.TxLabel[]>; extendOutput(o: table.Output, includeBasket?: boolean, includeTags?: boolean, trx?: sdk.TrxToken): Promise<table.OutputX>; getTagsForOutputId(outputId: number, trx?: sdk.TrxToken): Promise<table.OutputTag[]>; purgeData(params: sdk.PurgeParams, trx?: sdk.TrxToken): Promise<sdk.PurgeResults>; reviewStatus(args: { agedLimit: Date; trx?: sdk.TrxToken; }): Promise<{ log: string; }>; /** * Finds closest matching available change output to use as input for new transaction. * * Transactionally allocate the output such that */ countChangeInputs(userId: number, basketId: number, excludeSending: boolean): Promise<number>; /** * Finds closest matching available change output to use as input for new transaction. * * Transactionally allocate the output such that */ allocateChangeInput(userId: number, basketId: number, targetSatoshis: number, exactSatoshis: number | undefined, excludeSending: boolean, transactionId: number): Promise<table.Output | undefined>; /** * Helper to force uniform behavior across database engines. * Use to process all individual records with time stamps retreived from database. */ validateEntity<T extends sdk.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 sdk.EntityTimeStamp>(entities: T[], dateFields?: string[], booleanFields?: string[]): T[]; } //# sourceMappingURL=StorageKnex.d.ts.map