@1sat/wallet-node 0.0.38 → 0.0.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,17 +5,17 @@ export interface BunSqliteStorageConfig {
5
5
  provider: 'bun-sqlite';
6
6
  filename?: string;
7
7
  }
8
- export interface KnexPgStorageConfig {
9
- provider: 'knex-pg';
8
+ export interface PgStorageConfig {
9
+ provider: 'pg';
10
10
  /** Postgres connection URL — e.g. `postgres://user:pass@host/db`. */
11
11
  dbUrl: string;
12
- /** Optional knex pool override. */
12
+ /** Optional pool size override. */
13
13
  pool?: {
14
14
  min?: number;
15
15
  max?: number;
16
16
  };
17
17
  }
18
- export type NodeWalletStorageConfig = BunSqliteStorageConfig | KnexPgStorageConfig;
18
+ export type NodeWalletStorageConfig = BunSqliteStorageConfig | PgStorageConfig;
19
19
  export interface NodeWalletConfig {
20
20
  privateKey: PrivateKey | string;
21
21
  chain: 'main' | 'test';
@@ -1 +1 @@
1
- {"version":3,"file":"createNodeWallet.d.ts","sourceRoot":"","sources":["../src/createNodeWallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAElD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EACN,OAAO,EAEP,aAAa,EAEb,MAAM,EACN,oBAAoB,EACpB,KAAK,GAAG,EACR,MAAM,qBAAqB,CAAA;AAM5B,MAAM,WAAW,sBAAsB;IACtC,QAAQ,EAAE,YAAY,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,mBAAmB;IACnC,QAAQ,EAAE,SAAS,CAAA;IACnB,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAA;IACb,mCAAmC;IACnC,IAAI,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CACrC;AAED,MAAM,MAAM,uBAAuB,GAChC,sBAAsB,GACtB,mBAAmB,CAAA;AAEtB,MAAM,WAAW,gBAAgB;IAChC,UAAU,EAAE,UAAU,GAAG,MAAM,CAAA;IAC/B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,QAAQ,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;OAEG;IACH,OAAO,CAAC,EAAE,uBAAuB,CAAA;IACjC,wBAAwB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACjD,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAA;IACjE;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,cAAc,CAAA;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B,OAAO,EAAE,oBAAoB,CAAA;IAC7B,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,gBAAgB,EAAE,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7D,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACzC;;;;OAIG;IACH,gBAAgB,EAAE,MAAM,GAAG,CAAC,qBAAqB,CAAA;CACjD;AAED,wBAAsB,gBAAgB,CACrC,MAAM,EAAE,gBAAgB,GACtB,OAAO,CAAC,gBAAgB,CAAC,CAsD3B"}
1
+ {"version":3,"file":"createNodeWallet.d.ts","sourceRoot":"","sources":["../src/createNodeWallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAElD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EACN,OAAO,EAEP,aAAa,EAEb,MAAM,EACN,oBAAoB,EACpB,KAAK,GAAG,EACR,MAAM,qBAAqB,CAAA;AAM5B,MAAM,WAAW,sBAAsB;IACtC,QAAQ,EAAE,YAAY,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,eAAe;IAC/B,QAAQ,EAAE,IAAI,CAAA;IACd,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAA;IACb,mCAAmC;IACnC,IAAI,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CACrC;AAED,MAAM,MAAM,uBAAuB,GAChC,sBAAsB,GACtB,eAAe,CAAA;AAElB,MAAM,WAAW,gBAAgB;IAChC,UAAU,EAAE,UAAU,GAAG,MAAM,CAAA;IAC/B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,QAAQ,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;OAEG;IACH,OAAO,CAAC,EAAE,uBAAuB,CAAA;IACjC,wBAAwB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACjD,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAA;IACjE;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,cAAc,CAAA;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B,OAAO,EAAE,oBAAoB,CAAA;IAC7B,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,gBAAgB,EAAE,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7D,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACzC;;;;OAIG;IACH,gBAAgB,EAAE,MAAM,GAAG,CAAC,qBAAqB,CAAA;CACjD;AAED,wBAAsB,gBAAgB,CACrC,MAAM,EAAE,gBAAgB,GACtB,OAAO,CAAC,gBAAgB,CAAC,CAsD3B"}
@@ -59,19 +59,14 @@ async function buildLocalStorage(config, baseOptions) {
59
59
  filename: config.filename ?? DEFAULT_SQLITE_FILENAME,
60
60
  });
61
61
  }
62
- if (config.provider === 'knex-pg') {
63
- // Dynamic import — knex + pg are optional peer deps so bun-sqlite-only
64
- // consumers don't pay for them.
65
- const { default: knex } = await import('knex');
62
+ if (config.provider === 'pg') {
63
+ // Dynamic import — pg is an optional peer dep so bun-sqlite-only
64
+ // consumers don't pay for it.
66
65
  const { StoragePg } = await import('./storage-pg');
67
- const k = knex({
68
- client: 'pg',
69
- connection: config.dbUrl,
70
- pool: config.pool,
71
- });
72
66
  return new StoragePg({
73
67
  ...baseOptions,
74
- knex: k,
68
+ dbUrl: config.dbUrl,
69
+ poolConfig: config.pool,
75
70
  });
76
71
  }
77
72
  // Exhaustiveness check
@@ -1 +1 @@
1
- {"version":3,"file":"createNodeWallet.js","sourceRoot":"","sources":["../src/createNodeWallet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createNodeWallet.js","sourceRoot":"","sources":["../src/createNodeWallet.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export * from '@1sat/wallet';
2
2
  export { createNodeWallet } from './createNodeWallet';
3
- export type { BunSqliteStorageConfig, KnexPgStorageConfig, NodeWalletConfig, NodeWalletResult, NodeWalletStorageConfig, } from './createNodeWallet';
3
+ export type { BunSqliteStorageConfig, NodeWalletConfig, NodeWalletResult, NodeWalletStorageConfig, PgStorageConfig, } from './createNodeWallet';
4
4
  export { StorageBunSqlite } from './storage-bun-sqlite';
5
5
  export type { StorageBunSqliteOptions } from './storage-bun-sqlite';
6
6
  export { StoragePg } from './storage-pg';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAE5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,YAAY,EACX,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,GACvB,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAEpD,OAAO,EACN,OAAO,EACP,QAAQ,EACR,aAAa,EACb,eAAe,EACf,MAAM,EACN,wBAAwB,EACxB,oBAAoB,EACpB,KAAK,GAAG,IAAI,SAAS,GACrB,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAE5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,YAAY,EACX,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,eAAe,GACf,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAEpD,OAAO,EACN,OAAO,EACP,QAAQ,EACR,aAAa,EACb,eAAe,EACf,MAAM,EACN,wBAAwB,EACxB,oBAAoB,EACpB,KAAK,GAAG,IAAI,SAAS,GACrB,MAAM,qBAAqB,CAAA"}
@@ -1,27 +1,193 @@
1
1
  /**
2
- * StoragePg — production Postgres backend for `@1sat/wallet-node` wallets.
2
+ * StoragePg — native Postgres backend for `@1sat/wallet-node` wallets.
3
3
  *
4
- * Thin subclass of wallet-toolbox's `StorageKnex` (which already handles the
5
- * full schema, migrations, and every `WalletStorageProvider` method over
6
- * knex/pg). The only addition is `measureUsedBytes(userId)`, the accounts
7
- * metering helper that the `@1sat/wallet-server` gate middleware casts for
8
- * via `StorageWithFinders`.
4
+ * Drop-in replacement for StorageKnex that uses `pg` directly, eliminating
5
+ * the knex + wallet-toolbox StorageKnex dependency chain. Extends
6
+ * StorageProvider (same base as StorageBunSqlite) so it can be used anywhere
7
+ * a WalletStorageProvider is expected.
9
8
  *
10
- * Shape matches `StorageBunSqlite.measureUsedBytes` summing bytes across
11
- * `transactions`, `proven_txs`, `proven_tx_reqs`, and `outputs` for a single
12
- * userId. Pg's `OCTET_LENGTH(bytea)` replaces sqlite's `LENGTH(blob)`.
9
+ * Structure mirrors StorageBunSqlite method-for-method. Schema is the same
10
+ * wallet-toolbox layout translated to Postgres types. Booleans stay as
11
+ * SMALLINT 0/1 to match the validate-helpers' coercion pattern exactly.
13
12
  */
14
- import { StorageKnex, type StorageKnexOptions } from '@bsv/wallet-toolbox/out/src/storage/StorageKnex.js';
15
- export interface StoragePgOptions extends StorageKnexOptions {
13
+ import type { ListActionsResult, ListOutputsResult, Validation } from '@bsv/sdk';
14
+ import type { AuthId, FindCertificateFieldsArgs, FindCertificatesArgs, FindCommissionsArgs, FindForUserSincePagedArgs, FindMonitorEventsArgs, FindOutputBasketsArgs, FindOutputTagMapsArgs, FindOutputTagsArgs, FindOutputsArgs, FindProvenTxReqsArgs, FindProvenTxsArgs, FindSyncStatesArgs, FindTransactionsArgs, FindTxLabelMapsArgs, FindTxLabelsArgs, FindUsersArgs, ProvenOrRawTx, PurgeParams, PurgeResults, TrxToken } from '@bsv/wallet-toolbox/out/src/sdk/WalletStorage.interfaces.js';
15
+ import type { EntityTimeStamp } from '@bsv/wallet-toolbox/out/src/sdk/types.js';
16
+ import { StorageProvider, type StorageProviderOptions } from '@bsv/wallet-toolbox/out/src/storage/StorageProvider.js';
17
+ import type { AdminStatsResult } from '@bsv/wallet-toolbox/out/src/storage/StorageProvider.js';
18
+ import type { DBType } from '@bsv/wallet-toolbox/out/src/storage/StorageReader.js';
19
+ import type { TableCertificate, TableCertificateField, TableCertificateX, TableCommission, TableMonitorEvent, TableOutput, TableOutputBasket, TableOutputTag, TableOutputTagMap, TableProvenTx, TableProvenTxReq, TableSettings, TableSyncState, TableTransaction, TableTxLabel, TableTxLabelMap, TableUser } from '@bsv/wallet-toolbox/out/src/storage/schema/tables/index.js';
20
+ import type { Pool } from 'pg';
21
+ export interface StoragePgOptions extends StorageProviderOptions {
22
+ /** Postgres connection string, e.g. `postgres://user:pass@host:5432/db`. */
23
+ dbUrl?: string;
24
+ /** Alternatively, an already-constructed `pg.Pool`. */
25
+ pool?: Pool;
26
+ /** Pool size limits. Ignored when `pool` is supplied. */
27
+ poolConfig?: {
28
+ min?: number;
29
+ max?: number;
30
+ };
16
31
  }
17
- export declare class StoragePg extends StorageKnex {
32
+ export declare class StoragePg extends StorageProvider {
33
+ private pool;
34
+ private ownsPool;
35
+ private tableColumns;
36
+ private savepointCounter;
37
+ _verifiedReadyForDatabaseAccess: boolean;
18
38
  constructor(options: StoragePgOptions);
39
+ readSettings(trx?: TrxToken): Promise<TableSettings>;
40
+ destroy(): Promise<void>;
41
+ migrate(storageName: string, storageIdentityKey: string): Promise<string>;
42
+ /**
43
+ * Introspect the live schema and cache the column set for every user
44
+ * table. Used by `filterToSchema` to drop wire-format fields that don't
45
+ * correspond to real columns before building INSERT/UPDATE SQL.
46
+ */
47
+ private refreshTableColumns;
48
+ private filterToSchema;
49
+ private getMigrationDefinitions;
50
+ dropAllData(): Promise<void>;
51
+ transaction<T>(scope: (trx: TrxToken) => Promise<T>, trx?: TrxToken): Promise<T>;
52
+ private exec;
53
+ toDb(_trx?: TrxToken): Pool;
54
+ private runSql;
55
+ private allSql;
56
+ private getSql;
57
+ /**
58
+ * Build a WHERE clause from a partial object.
59
+ * Returns { clause: string, params: unknown[] } with `?` placeholders; the
60
+ * caller feeds into runSql/allSql/getSql which convert to `$n` form.
61
+ */
62
+ private buildWhere;
63
+ private quoteCol;
64
+ private orderByColumn;
65
+ /**
66
+ * Map table name to its primary-key column, used by `insertRow` to
67
+ * emit a `RETURNING` clause.
68
+ */
69
+ private pkColumn;
70
+ private selectQuery;
71
+ private countQuery;
72
+ /**
73
+ * INSERT a row and return the newly-assigned primary key via RETURNING.
74
+ */
75
+ private insertRow;
76
+ /**
77
+ * UPDATE rows, returning the number of affected rows.
78
+ */
79
+ private updateRows;
80
+ verifyReadyForDatabaseAccess(trx?: TrxToken): Promise<DBType>;
81
+ validateDate(date: Date | string | number): Date;
82
+ validateEntityDate(date: Date | string | number): Date | string;
83
+ validateOptionalEntityDate(date: Date | string | number | null | undefined, useNowAsDefault?: boolean): Date | string | undefined;
84
+ validateDateForWhere(date: Date | string | number): Date | string | number;
85
+ validatePartialForUpdate<T extends EntityTimeStamp>(update: Partial<T>, dateFields?: string[], booleanFields?: string[]): Partial<T>;
86
+ validateEntityForInsert<T extends EntityTimeStamp>(entity: T, trx?: TrxToken, dateFields?: string[], booleanFields?: string[]): Promise<Record<string, unknown>>;
87
+ validateEntity<T extends EntityTimeStamp>(entity: T, dateFields?: string[], booleanFields?: string[]): T;
88
+ validateEntities<T extends EntityTimeStamp>(entities: T[], dateFields?: string[], booleanFields?: string[]): T[];
19
89
  /**
20
90
  * Sum of stored bytes attributable to a single wallet-toolbox user.
21
91
  * Per-user tables (transactions, outputs) are summed directly. Shared
22
92
  * rows (proven_txs, proven_tx_reqs) are attributed to every user that
23
93
  * references them via `transactions.provenTxId` or `transactions.txid`.
94
+ * In multi-tenant deployments this over-counts aggregate disk usage
95
+ * but reflects each user's standalone storage cost fairly. Shape matches
96
+ * StorageBunSqlite.measureUsedBytes; OCTET_LENGTH replaces LENGTH.
24
97
  */
25
98
  measureUsedBytes(userId: number): Promise<number>;
99
+ getProvenOrRawTx(txid: string, trx?: TrxToken): Promise<ProvenOrRawTx>;
100
+ dbTypeSubstring(source: string, fromOffset: number, forLength?: number): string;
101
+ getRawTxOfKnownValidTransaction(txid?: string, offset?: number, length?: number, trx?: TrxToken): Promise<number[] | undefined>;
102
+ getProvenTxsForUser(args: FindForUserSincePagedArgs): Promise<TableProvenTx[]>;
103
+ getProvenTxReqsForUser(args: FindForUserSincePagedArgs): Promise<TableProvenTxReq[]>;
104
+ getTxLabelMapsForUser(args: FindForUserSincePagedArgs): Promise<TableTxLabelMap[]>;
105
+ getOutputTagMapsForUser(args: FindForUserSincePagedArgs): Promise<TableOutputTagMap[]>;
106
+ insertProvenTx(tx: TableProvenTx, trx?: TrxToken): Promise<number>;
107
+ insertProvenTxReq(tx: TableProvenTxReq, trx?: TrxToken): Promise<number>;
108
+ insertUser(user: TableUser, trx?: TrxToken): Promise<number>;
109
+ insertCertificateAuth(auth: AuthId, certificate: TableCertificateX): Promise<number>;
110
+ insertCertificate(certificate: TableCertificateX, trx?: TrxToken): Promise<number>;
111
+ insertCertificateField(certificateField: TableCertificateField, trx?: TrxToken): Promise<void>;
112
+ insertOutputBasket(basket: TableOutputBasket, trx?: TrxToken): Promise<number>;
113
+ insertTransaction(tx: TableTransaction, trx?: TrxToken): Promise<number>;
114
+ insertCommission(commission: TableCommission, trx?: TrxToken): Promise<number>;
115
+ insertOutput(output: TableOutput, trx?: TrxToken): Promise<number>;
116
+ insertOutputTag(tag: TableOutputTag, trx?: TrxToken): Promise<number>;
117
+ insertOutputTagMap(tagMap: TableOutputTagMap, trx?: TrxToken): Promise<void>;
118
+ insertTxLabel(label: TableTxLabel, trx?: TrxToken): Promise<number>;
119
+ insertTxLabelMap(labelMap: TableTxLabelMap, trx?: TrxToken): Promise<void>;
120
+ insertMonitorEvent(event: TableMonitorEvent, trx?: TrxToken): Promise<number>;
121
+ insertSyncState(syncState: TableSyncState, trx?: TrxToken): Promise<number>;
122
+ updateCertificateField(certificateId: number, fieldName: string, update: Partial<TableCertificateField>, trx?: TrxToken): Promise<number>;
123
+ updateCertificate(id: number, update: Partial<TableCertificate>, trx?: TrxToken): Promise<number>;
124
+ updateCommission(id: number, update: Partial<TableCommission>, trx?: TrxToken): Promise<number>;
125
+ updateOutputBasket(id: number, update: Partial<TableOutputBasket>, trx?: TrxToken): Promise<number>;
126
+ updateOutput(id: number, update: Partial<TableOutput>, trx?: TrxToken): Promise<number>;
127
+ updateOutputTagMap(outputId: number, tagId: number, update: Partial<TableOutputTagMap>, trx?: TrxToken): Promise<number>;
128
+ updateOutputTag(id: number, update: Partial<TableOutputTag>, trx?: TrxToken): Promise<number>;
129
+ updateProvenTxReq(id: number | number[], update: Partial<TableProvenTxReq>, trx?: TrxToken): Promise<number>;
130
+ updateProvenTx(id: number, update: Partial<TableProvenTx>, trx?: TrxToken): Promise<number>;
131
+ updateSyncState(id: number, update: Partial<TableSyncState>, trx?: TrxToken): Promise<number>;
132
+ updateTransaction(id: number | number[], update: Partial<TableTransaction>, trx?: TrxToken): Promise<number>;
133
+ updateTxLabelMap(transactionId: number, txLabelId: number, update: Partial<TableTxLabelMap>, trx?: TrxToken): Promise<number>;
134
+ updateTxLabel(id: number, update: Partial<TableTxLabel>, trx?: TrxToken): Promise<number>;
135
+ updateUser(id: number, update: Partial<TableUser>, trx?: TrxToken): Promise<number>;
136
+ updateMonitorEvent(id: number, update: Partial<TableMonitorEvent>, trx?: TrxToken): Promise<number>;
137
+ findCertificateFields(args: FindCertificateFieldsArgs): Promise<TableCertificateField[]>;
138
+ findCertificates(args: FindCertificatesArgs): Promise<TableCertificateX[]>;
139
+ findCommissions(args: FindCommissionsArgs): Promise<TableCommission[]>;
140
+ findOutputBaskets(args: FindOutputBasketsArgs): Promise<TableOutputBasket[]>;
141
+ findOutputs(args: FindOutputsArgs, tagIds?: number[], isQueryModeAll?: boolean): Promise<TableOutput[]>;
142
+ findOutputTagMaps(args: FindOutputTagMapsArgs): Promise<TableOutputTagMap[]>;
143
+ findOutputTags(args: FindOutputTagsArgs): Promise<TableOutputTag[]>;
144
+ findProvenTxReqs(args: FindProvenTxReqsArgs): Promise<TableProvenTxReq[]>;
145
+ findProvenTxs(args: FindProvenTxsArgs): Promise<TableProvenTx[]>;
146
+ findSyncStates(args: FindSyncStatesArgs): Promise<TableSyncState[]>;
147
+ findTransactions(args: FindTransactionsArgs, labelIds?: number[], isQueryModeAll?: boolean): Promise<TableTransaction[]>;
148
+ findTxLabelMaps(args: FindTxLabelMapsArgs): Promise<TableTxLabelMap[]>;
149
+ findTxLabels(args: FindTxLabelsArgs): Promise<TableTxLabel[]>;
150
+ findUsers(args: FindUsersArgs): Promise<TableUser[]>;
151
+ /**
152
+ * SQL-backed implementation replacing the base-class JS scan. Matches
153
+ * StorageBunSqlite.recentlyActiveUsers and Knex canon at
154
+ * StorageKnex.ts:796.
155
+ */
156
+ recentlyActiveUsers(limit?: number, trx?: TrxToken): Promise<TableUser[]>;
157
+ findMonitorEvents(args: FindMonitorEventsArgs): Promise<TableMonitorEvent[]>;
158
+ countCertificateFields(args: FindCertificateFieldsArgs): Promise<number>;
159
+ countCertificates(args: FindCertificatesArgs): Promise<number>;
160
+ countCommissions(args: FindCommissionsArgs): Promise<number>;
161
+ countOutputBaskets(args: FindOutputBasketsArgs): Promise<number>;
162
+ countOutputs(args: FindOutputsArgs, tagIds?: number[], isQueryModeAll?: boolean): Promise<number>;
163
+ countOutputTagMaps(args: FindOutputTagMapsArgs): Promise<number>;
164
+ countOutputTags(args: FindOutputTagsArgs): Promise<number>;
165
+ countProvenTxReqs(args: FindProvenTxReqsArgs): Promise<number>;
166
+ countProvenTxs(args: FindProvenTxsArgs): Promise<number>;
167
+ countSyncStates(args: FindSyncStatesArgs): Promise<number>;
168
+ countTransactions(args: FindTransactionsArgs, labelIds?: number[], isQueryModeAll?: boolean): Promise<number>;
169
+ countTxLabelMaps(args: FindTxLabelMapsArgs): Promise<number>;
170
+ countTxLabels(args: FindTxLabelsArgs): Promise<number>;
171
+ countUsers(args: FindUsersArgs): Promise<number>;
172
+ countMonitorEvents(args: FindMonitorEventsArgs): Promise<number>;
173
+ countChangeInputs(userId: number, basketId: number, excludeSending: boolean): Promise<number>;
174
+ findCertificatesAuth(auth: AuthId, args: FindCertificatesArgs): Promise<TableCertificateX[]>;
175
+ findOutputBasketsAuth(auth: AuthId, args: FindOutputBasketsArgs): Promise<TableOutputBasket[]>;
176
+ findOutputsAuth(auth: AuthId, args: FindOutputsArgs): Promise<TableOutput[]>;
177
+ getLabelsForTransactionId(transactionId?: number, trx?: TrxToken): Promise<TableTxLabel[]>;
178
+ getTagsForOutputId(outputId: number, trx?: TrxToken): Promise<TableOutputTag[]>;
179
+ allocateChangeInput(userId: number, basketId: number, targetSatoshis: number, exactSatoshis: number | undefined, excludeSending: boolean, transactionId: number): Promise<TableOutput | undefined>;
180
+ validateRawTransaction(t: TableTransaction, trx?: TrxToken): Promise<void>;
181
+ listActions(auth: AuthId, vargs: Validation.ValidListActionsArgs): Promise<ListActionsResult>;
182
+ listOutputs(auth: AuthId, vargs: Validation.ValidListOutputsArgs): Promise<ListOutputsResult>;
183
+ purgeData(params: PurgeParams, _trx?: TrxToken): Promise<PurgeResults>;
184
+ private deleteTransactions;
185
+ reviewStatus(_args: {
186
+ agedLimit: Date;
187
+ trx?: TrxToken;
188
+ }): Promise<{
189
+ log: string;
190
+ }>;
191
+ adminStats(_adminIdentityKey: string): Promise<AdminStatsResult>;
26
192
  }
27
193
  //# sourceMappingURL=storage-pg.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage-pg.d.ts","sourceRoot":"","sources":["../src/storage-pg.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EACN,WAAW,EACX,KAAK,kBAAkB,EACvB,MAAM,oDAAoD,CAAA;AAE3D,MAAM,WAAW,gBAAiB,SAAQ,kBAAkB;CAAG;AAE/D,qBAAa,SAAU,SAAQ,WAAW;gBAC7B,OAAO,EAAE,gBAAgB;IAIrC;;;;;OAKG;IACG,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CA4CvD"}
1
+ {"version":3,"file":"storage-pg.d.ts","sourceRoot":"","sources":["../src/storage-pg.ts"],"names":[],"mappings":"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"}