@bsv/wallet-toolbox-client 1.2.4 → 1.2.6

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.
Files changed (76) hide show
  1. package/out/src/Setup.d.ts +329 -0
  2. package/out/src/Setup.d.ts.map +1 -0
  3. package/out/src/Setup.js +394 -0
  4. package/out/src/Setup.js.map +1 -0
  5. package/out/src/index.all.d.ts +19 -0
  6. package/out/src/index.all.d.ts.map +1 -0
  7. package/out/src/index.all.js +58 -0
  8. package/out/src/index.all.js.map +1 -0
  9. package/out/src/monitor/Monitor.d.ts.map +1 -1
  10. package/out/src/monitor/Monitor.js +3 -0
  11. package/out/src/monitor/Monitor.js.map +1 -1
  12. package/out/src/monitor/MonitorDaemon.d.ts +30 -0
  13. package/out/src/monitor/MonitorDaemon.d.ts.map +1 -0
  14. package/out/src/monitor/MonitorDaemon.js +134 -0
  15. package/out/src/monitor/MonitorDaemon.js.map +1 -0
  16. package/out/src/monitor/tasks/TaskUnFail.d.ts +40 -0
  17. package/out/src/monitor/tasks/TaskUnFail.d.ts.map +1 -0
  18. package/out/src/monitor/tasks/TaskUnFail.js +145 -0
  19. package/out/src/monitor/tasks/TaskUnFail.js.map +1 -0
  20. package/out/src/sdk/types.d.ts +3 -1
  21. package/out/src/sdk/types.d.ts.map +1 -1
  22. package/out/src/sdk/types.js.map +1 -1
  23. package/out/src/services/providers/echangeRates.d.ts.map +1 -1
  24. package/out/src/services/providers/echangeRates.js +6 -6
  25. package/out/src/services/providers/echangeRates.js.map +1 -1
  26. package/out/src/storage/StorageKnex.d.ts +176 -0
  27. package/out/src/storage/StorageKnex.d.ts.map +1 -0
  28. package/out/src/storage/StorageKnex.js +1017 -0
  29. package/out/src/storage/StorageKnex.js.map +1 -0
  30. package/out/src/storage/StorageProvider.js +2 -2
  31. package/out/src/storage/StorageProvider.js.map +1 -1
  32. package/out/src/storage/index.all.d.ts +11 -0
  33. package/out/src/storage/index.all.d.ts.map +1 -0
  34. package/out/src/storage/index.all.js +50 -0
  35. package/out/src/storage/index.all.js.map +1 -0
  36. package/out/src/storage/methods/listActions.d.ts +5 -0
  37. package/out/src/storage/methods/listActions.d.ts.map +1 -0
  38. package/out/src/storage/methods/listActions.js +162 -0
  39. package/out/src/storage/methods/listActions.js.map +1 -0
  40. package/out/src/storage/methods/listOutputs.d.ts +5 -0
  41. package/out/src/storage/methods/listOutputs.d.ts.map +1 -0
  42. package/out/src/storage/methods/listOutputs.js +300 -0
  43. package/out/src/storage/methods/listOutputs.js.map +1 -0
  44. package/out/src/storage/methods/purgeData.d.ts +4 -0
  45. package/out/src/storage/methods/purgeData.d.ts.map +1 -0
  46. package/out/src/storage/methods/purgeData.js +207 -0
  47. package/out/src/storage/methods/purgeData.js.map +1 -0
  48. package/out/src/storage/methods/reviewStatus.d.ts +9 -0
  49. package/out/src/storage/methods/reviewStatus.d.ts.map +1 -0
  50. package/out/src/storage/methods/reviewStatus.js +73 -0
  51. package/out/src/storage/methods/reviewStatus.js.map +1 -0
  52. package/out/src/storage/remoting/StorageServer.d.ts +39 -0
  53. package/out/src/storage/remoting/StorageServer.d.ts.map +1 -0
  54. package/out/src/storage/remoting/StorageServer.js +220 -0
  55. package/out/src/storage/remoting/StorageServer.js.map +1 -0
  56. package/out/src/storage/schema/KnexMigrations.d.ts +39 -0
  57. package/out/src/storage/schema/KnexMigrations.d.ts.map +1 -0
  58. package/out/src/storage/schema/KnexMigrations.js +395 -0
  59. package/out/src/storage/schema/KnexMigrations.js.map +1 -0
  60. package/out/src/storage/sync/StorageMySQLDojoReader.d.ts +71 -0
  61. package/out/src/storage/sync/StorageMySQLDojoReader.d.ts.map +1 -0
  62. package/out/src/storage/sync/StorageMySQLDojoReader.js +609 -0
  63. package/out/src/storage/sync/StorageMySQLDojoReader.js.map +1 -0
  64. package/out/src/storage/sync/index.d.ts +2 -0
  65. package/out/src/storage/sync/index.d.ts.map +1 -0
  66. package/out/src/storage/sync/index.js +18 -0
  67. package/out/src/storage/sync/index.js.map +1 -0
  68. package/out/src/utility/index.all.d.ts +7 -0
  69. package/out/src/utility/index.all.d.ts.map +1 -0
  70. package/out/src/utility/index.all.js +23 -0
  71. package/out/src/utility/index.all.js.map +1 -0
  72. package/out/src/utility/utilityHelpers.buffer.d.ts +18 -0
  73. package/out/src/utility/utilityHelpers.buffer.d.ts.map +1 -0
  74. package/out/src/utility/utilityHelpers.buffer.js +45 -0
  75. package/out/src/utility/utilityHelpers.buffer.js.map +1 -0
  76. package/package.json +2 -3
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MonitorDaemon = void 0;
7
+ const index_all_1 = require("../index.all");
8
+ const knex_1 = require("knex");
9
+ const dotenv_1 = __importDefault(require("dotenv"));
10
+ dotenv_1.default.config();
11
+ const mainDojoConnection = process.env.MAIN_DOJO_CONNECTION || '';
12
+ const testDojoConnection = process.env.TEST_DOJO_CONNECTION || '';
13
+ class MonitorDaemon {
14
+ constructor(args, noRunTasks) {
15
+ this.args = args;
16
+ this.noRunTasks = noRunTasks;
17
+ this.stopDaemon = false;
18
+ /* */
19
+ }
20
+ async createSetup() {
21
+ this.setup = { ...this.args };
22
+ const a = this.setup;
23
+ if (!a.monitor) {
24
+ a.chain || (a.chain = 'test');
25
+ if (a.sqliteFilename) {
26
+ a.knexConfig = {
27
+ client: 'sqlite3',
28
+ connection: { filename: a.sqliteFilename },
29
+ useNullAsDefault: true
30
+ };
31
+ }
32
+ if (a.mySQLConnection) {
33
+ a.knexConfig = {
34
+ client: 'mysql2',
35
+ connection: JSON.parse(a.mySQLConnection),
36
+ useNullAsDefault: true,
37
+ pool: { min: 0, max: 7, idleTimeoutMillis: 15000 }
38
+ };
39
+ }
40
+ if (a.knexConfig) {
41
+ a.knex = (0, knex_1.knex)(a.knexConfig);
42
+ }
43
+ if (a.knex) {
44
+ a.storageKnexOptions = {
45
+ knex: a.knex,
46
+ chain: a.chain,
47
+ feeModel: { model: 'sat/kb', value: 1 },
48
+ commissionSatoshis: 0
49
+ };
50
+ }
51
+ if (a.storageKnexOptions) {
52
+ a.storageProvider = new index_all_1.StorageKnex(a.storageKnexOptions);
53
+ }
54
+ if (a.storageProvider) {
55
+ await a.storageProvider.makeAvailable();
56
+ const settings = await a.storageProvider.getSettings();
57
+ a.storageManager = new index_all_1.WalletStorageManager(settings.storageIdentityKey, a.storageProvider);
58
+ await a.storageManager.makeAvailable();
59
+ }
60
+ else if (!a.storageManager) {
61
+ throw new index_all_1.sdk.WERR_INVALID_PARAMETER('storageManager', 'valid or one of mySQLConnection, knexConfig, knex, storageKnexOptions, or storageProvider');
62
+ }
63
+ if (a.servicesOptions) {
64
+ if (a.servicesOptions.chain != a.chain)
65
+ throw new index_all_1.sdk.WERR_INVALID_PARAMETER('serviceOptions.chain', 'same as args.chain');
66
+ a.services = new index_all_1.Services(a.servicesOptions);
67
+ }
68
+ if (!a.services) {
69
+ a.services = new index_all_1.Services(a.chain);
70
+ }
71
+ a.storageManager.setServices(a.services);
72
+ const monitorOptions = index_all_1.Monitor.createDefaultWalletMonitorOptions(a.chain, a.storageManager, a.services);
73
+ a.monitor = new index_all_1.Monitor(monitorOptions);
74
+ }
75
+ if (a.monitor._tasks.length === 0) {
76
+ a.monitor.addMultiUserTasks();
77
+ }
78
+ }
79
+ async start() {
80
+ var _a;
81
+ if (!this.setup)
82
+ await this.createSetup();
83
+ if (!((_a = this.setup) === null || _a === void 0 ? void 0 : _a.monitor))
84
+ throw new index_all_1.sdk.WERR_INTERNAL('createSetup failed to initialize setup');
85
+ const { monitor } = this.setup;
86
+ if (!this.noRunTasks) {
87
+ console.log('\n\nRunning startTasks\n\n');
88
+ this.doneTasks = monitor.startTasks();
89
+ }
90
+ }
91
+ async stop() {
92
+ console.log('start of stop');
93
+ if (!this.setup || (!this.doneTasks && !this.noRunTasks) || !this.doneListening)
94
+ throw new index_all_1.sdk.WERR_INTERNAL('call start or createSetup first');
95
+ const { monitor } = this.setup;
96
+ monitor.stopTasks();
97
+ if (this.doneTasks)
98
+ await this.doneTasks;
99
+ this.doneTasks = undefined;
100
+ await this.doneListening;
101
+ this.doneListening = undefined;
102
+ }
103
+ async destroy() {
104
+ if (!this.setup)
105
+ return;
106
+ if (this.doneTasks || this.doneListening)
107
+ await this.stop();
108
+ if (this.setup.storageProvider)
109
+ this.setup.storageProvider.destroy();
110
+ this.setup = undefined;
111
+ }
112
+ async runDaemon() {
113
+ this.stopDaemon = false;
114
+ for (;;) {
115
+ try {
116
+ await this.start();
117
+ while (!this.stopDaemon) {
118
+ await (0, index_all_1.wait)(10 * 1000);
119
+ }
120
+ console.log('stopping');
121
+ await this.stop();
122
+ console.log('cleanup');
123
+ await this.destroy();
124
+ console.log('done');
125
+ }
126
+ catch (eu) {
127
+ const e = index_all_1.sdk.WalletError.fromUnknown(eu);
128
+ console.log(`\n\nrunWatchman Main Error Handler\n\ncode: ${e.code}\nDescription: ${e.description}\n\n\n`);
129
+ }
130
+ }
131
+ }
132
+ }
133
+ exports.MonitorDaemon = MonitorDaemon;
134
+ //# sourceMappingURL=MonitorDaemon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MonitorDaemon.js","sourceRoot":"","sources":["../../../../src/monitor/MonitorDaemon.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { EntityProvenTxReq, TableProvenTxReq } from '../../index.client';
2
+ import { Monitor } from '../Monitor';
3
+ import { WalletMonitorTask } from './WalletMonitorTask';
4
+ /**
5
+ * Setting provenTxReq status to 'unfail' when 'invalid' will attempt to find a merklePath, and if successful:
6
+ *
7
+ * 1. set the req status to 'unmined'
8
+ * 2. set the referenced txs to 'unproven'
9
+ * 3. determine if any inputs match user's existing outputs and if so update spentBy and spendable of those outputs.
10
+ * 4. set the txs outputs to spendable
11
+ *
12
+ * If it fails (to find a merklePath), returns the req status to 'invalid'.
13
+ */
14
+ export declare class TaskUnFail extends WalletMonitorTask {
15
+ triggerMsecs: number;
16
+ static taskName: string;
17
+ /**
18
+ * Set to true to trigger running this task
19
+ */
20
+ static checkNow: boolean;
21
+ constructor(monitor: Monitor, triggerMsecs?: number);
22
+ trigger(nowMsecsSinceEpoch: number): {
23
+ run: boolean;
24
+ };
25
+ runTask(): Promise<string>;
26
+ unfail(reqs: TableProvenTxReq[], indent?: number): Promise<{
27
+ log: string;
28
+ }>;
29
+ /**
30
+ * 2. set the referenced txs to 'unproven'
31
+ * 3. determine if any inputs match user's existing outputs and if so update spentBy and spendable of those outputs.
32
+ * 4. set the txs outputs to spendable
33
+ *
34
+ * @param req
35
+ * @param indent
36
+ * @returns
37
+ */
38
+ unfailReq(req: EntityProvenTxReq, indent: number): Promise<string>;
39
+ }
40
+ //# sourceMappingURL=TaskUnFail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaskUnFail.d.ts","sourceRoot":"","sources":["../../../../../src/monitor/tasks/TaskUnFail.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAO,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAGvD;;;;;;;;;GASG;AACH,qBAAa,UAAW,SAAQ,iBAAiB;IAUtC,YAAY;IATrB,MAAM,CAAC,QAAQ,SAAW;IAE1B;;OAEG;IACH,MAAM,CAAC,QAAQ,UAAQ;gBAGrB,OAAO,EAAE,OAAO,EACT,YAAY,SAAyB;IAK9C,OAAO,CAAC,kBAAkB,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,OAAO,CAAA;KAAE;IAQ/C,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAwB1B,MAAM,CAAC,IAAI,EAAE,gBAAgB,EAAE,EAAE,MAAM,SAAI,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAsB5E;;;;;;;;OAQG;IACG,SAAS,CAAC,GAAG,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAwDzE"}
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TaskUnFail = void 0;
4
+ const sdk_1 = require("@bsv/sdk");
5
+ const index_client_1 = require("../../index.client");
6
+ const WalletMonitorTask_1 = require("./WalletMonitorTask");
7
+ /**
8
+ * Setting provenTxReq status to 'unfail' when 'invalid' will attempt to find a merklePath, and if successful:
9
+ *
10
+ * 1. set the req status to 'unmined'
11
+ * 2. set the referenced txs to 'unproven'
12
+ * 3. determine if any inputs match user's existing outputs and if so update spentBy and spendable of those outputs.
13
+ * 4. set the txs outputs to spendable
14
+ *
15
+ * If it fails (to find a merklePath), returns the req status to 'invalid'.
16
+ */
17
+ class TaskUnFail extends WalletMonitorTask_1.WalletMonitorTask {
18
+ constructor(monitor, triggerMsecs = monitor.oneMinute * 10) {
19
+ super(monitor, TaskUnFail.taskName);
20
+ this.triggerMsecs = triggerMsecs;
21
+ }
22
+ trigger(nowMsecsSinceEpoch) {
23
+ return {
24
+ run: TaskUnFail.checkNow ||
25
+ (this.triggerMsecs > 0 && nowMsecsSinceEpoch - this.lastRunMsecsSinceEpoch > this.triggerMsecs)
26
+ };
27
+ }
28
+ async runTask() {
29
+ let log = '';
30
+ TaskUnFail.checkNow = false;
31
+ const limit = 100;
32
+ let offset = 0;
33
+ for (;;) {
34
+ const reqs = await this.storage.findProvenTxReqs({
35
+ partial: {},
36
+ status: ['unfail'],
37
+ paged: { limit, offset }
38
+ });
39
+ if (reqs.length === 0)
40
+ break;
41
+ log += `${reqs.length} reqs with status 'unfail'\n`;
42
+ const r = await this.unfail(reqs, 2);
43
+ log += `${r.log}\n`;
44
+ //console.log(log);
45
+ if (reqs.length < limit)
46
+ break;
47
+ offset += limit;
48
+ }
49
+ return log;
50
+ }
51
+ async unfail(reqs, indent = 0) {
52
+ let log = '';
53
+ for (const reqApi of reqs) {
54
+ const req = new index_client_1.EntityProvenTxReq(reqApi);
55
+ log += ' '.repeat(indent);
56
+ log += `reqId ${reqApi.provenTxReqId} txid ${reqApi.txid}: `;
57
+ const r = await this.monitor.services.getMerklePath(req.txid);
58
+ if (r.merklePath) {
59
+ // 1. set the req status to 'unmined'
60
+ req.status = 'unmined';
61
+ req.attempts = 0;
62
+ log += `unfailed. status is now 'unmined'\n`;
63
+ log += await this.unfailReq(req, indent + 2);
64
+ }
65
+ else {
66
+ req.status = 'invalid';
67
+ log += `returned to status 'invalid'\n`;
68
+ }
69
+ await req.updateStorageDynamicProperties(this.storage);
70
+ }
71
+ return { log };
72
+ }
73
+ /**
74
+ * 2. set the referenced txs to 'unproven'
75
+ * 3. determine if any inputs match user's existing outputs and if so update spentBy and spendable of those outputs.
76
+ * 4. set the txs outputs to spendable
77
+ *
78
+ * @param req
79
+ * @param indent
80
+ * @returns
81
+ */
82
+ async unfailReq(req, indent) {
83
+ let log = '';
84
+ const storage = this.storage;
85
+ const services = this.monitor.services;
86
+ const txIds = req.notify.transactionIds || [];
87
+ for (const id of txIds) {
88
+ const bsvtx = sdk_1.Transaction.fromBinary(req.rawTx);
89
+ await this.storage.runAsStorageProvider(async (sp) => {
90
+ const spk = sp;
91
+ const tx = await sp.findTransactionById(id, undefined, true);
92
+ if (!tx) {
93
+ log += ' '.repeat(indent) + `transaction ${id} was not found\n`;
94
+ return;
95
+ }
96
+ await sp.updateTransaction(tx.transactionId, { status: 'unproven' });
97
+ tx.status = 'unproven';
98
+ log += ' '.repeat(indent) + `transaction ${id} status is now 'unproven'\n`;
99
+ let vin = -1;
100
+ for (const bi of bsvtx.inputs) {
101
+ vin++;
102
+ const is = await sp.findOutputs({
103
+ partial: { userId: tx.userId, txid: bi.sourceTXID, vout: bi.sourceOutputIndex }
104
+ });
105
+ if (is.length !== 1) {
106
+ log += ' '.repeat(indent + 2) + `input ${vin} not matched to user's outputs\n`;
107
+ }
108
+ else {
109
+ const oi = is[0];
110
+ log +=
111
+ ' '.repeat(indent + 2) +
112
+ `input ${vin} matched to output ${oi.outputId} updated spentBy ${tx.transactionId}\n`;
113
+ await sp.updateOutput(oi.outputId, { spendable: false, spentBy: tx.transactionId });
114
+ }
115
+ }
116
+ const outputs = await sp.findOutputs({ partial: { userId: tx.userId, transactionId: tx.transactionId } });
117
+ for (const o of outputs) {
118
+ await spk.validateOutputScript(o);
119
+ if (!o.lockingScript) {
120
+ log += ' '.repeat(indent + 2) + `output ${o.outputId} does not have a valid locking script\n`;
121
+ }
122
+ else {
123
+ const or = await services.getUtxoStatus(sdk_1.Utils.toHex(o.lockingScript));
124
+ const isUtxo = or.isUtxo === true;
125
+ if (isUtxo !== o.spendable) {
126
+ log += ' '.repeat(indent + 2) + `output ${o.outputId} set to ${isUtxo ? 'spendable' : 'spent'}\n`;
127
+ await sp.updateOutput(o.outputId, { spendable: isUtxo });
128
+ }
129
+ else {
130
+ log += ' '.repeat(indent + 2) + `output ${o.outputId} unchanged\n`;
131
+ }
132
+ }
133
+ }
134
+ });
135
+ }
136
+ return log;
137
+ }
138
+ }
139
+ exports.TaskUnFail = TaskUnFail;
140
+ TaskUnFail.taskName = 'UnFail';
141
+ /**
142
+ * Set to true to trigger running this task
143
+ */
144
+ TaskUnFail.checkNow = false;
145
+ //# sourceMappingURL=TaskUnFail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaskUnFail.js","sourceRoot":"","sources":["../../../../../src/monitor/tasks/TaskUnFail.ts"],"names":[],"mappings":"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"}
@@ -45,8 +45,10 @@ export type Chain = 'main' | 'test';
45
45
  * invalid: rawTx is structuraly invalid or was rejected by the network. Will never be re-attempted or completed.
46
46
  *
47
47
  * completed: proven_txs record added, and notifications are complete.
48
+ *
49
+ * unfail: asigned to force review of a currently invalid ProvenTxReq.
48
50
  */
49
- export type ProvenTxReqStatus = 'sending' | 'unsent' | 'nosend' | 'unknown' | 'nonfinal' | 'unprocessed' | 'unmined' | 'callback' | 'unconfirmed' | 'completed' | 'invalid' | 'doubleSpend';
51
+ export type ProvenTxReqStatus = 'sending' | 'unsent' | 'nosend' | 'unknown' | 'nonfinal' | 'unprocessed' | 'unmined' | 'callback' | 'unconfirmed' | 'completed' | 'invalid' | 'doubleSpend' | 'unfail';
50
52
  export declare const ProvenTxReqTerminalStatus: ProvenTxReqStatus[];
51
53
  export declare const ProvenTxReqNonTerminalStatus: ProvenTxReqStatus[];
52
54
  export type TransactionStatus = 'completed' | 'failed' | 'unprocessed' | 'sending' | 'unproven' | 'unsigned' | 'nosend';
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/sdk/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAEvD;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,MAAM,CAAA;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,MAAM,iBAAiB,GACzB,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,UAAU,GACV,aAAa,GACb,SAAS,GACT,UAAU,GACV,aAAa,GACb,WAAW,GACX,SAAS,GACT,aAAa,CAAA;AAEjB,eAAO,MAAM,yBAAyB,EAAE,iBAAiB,EAA4C,CAAA;AAErG,eAAO,MAAM,4BAA4B,EAAE,iBAAiB,EAU3D,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,QAAQ,GAAG,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAA;AAEvH,MAAM,WAAW,KAAK;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,OAAO;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,kBAAkB,EAAE,MAAM,CAAA;IAC1B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,IAAI,CAAA;IAChB,UAAU,EAAE,IAAI,CAAA;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAA;IACvE,cAAc,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CACzE;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAChD;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CAC3C,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,qEAAqE,CAAA;AAErG;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,qEAAqE,CAAA;AAErG;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,qEAAqE,CAAA;AAE7G;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEhD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/sdk/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAEvD;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,MAAM,CAAA;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,MAAM,iBAAiB,GACzB,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,UAAU,GACV,aAAa,GACb,SAAS,GACT,UAAU,GACV,aAAa,GACb,WAAW,GACX,SAAS,GACT,aAAa,GACb,QAAQ,CAAA;AAEZ,eAAO,MAAM,yBAAyB,EAAE,iBAAiB,EAA4C,CAAA;AAErG,eAAO,MAAM,4BAA4B,EAAE,iBAAiB,EAU3D,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,QAAQ,GAAG,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAA;AAEvH,MAAM,WAAW,KAAK;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,OAAO;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,kBAAkB,EAAE,MAAM,CAAA;IAC1B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,IAAI,CAAA;IAChB,UAAU,EAAE,IAAI,CAAA;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAA;IACvE,cAAc,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CACzE;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAChD;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CAC3C,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,qEAAqE,CAAA;AAErG;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,qEAAqE,CAAA;AAErG;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,qEAAqE,CAAA;AAE7G;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEhD"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/sdk/types.ts"],"names":[],"mappings":";;;AA2JA,4BAEC;AA5FY,QAAA,yBAAyB,GAAwB,CAAC,WAAW,EAAE,SAAS,EAAE,aAAa,CAAC,CAAA;AAExF,QAAA,4BAA4B,GAAwB;IAC/D,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,UAAU;IACV,aAAa;IACb,SAAS;IACT,UAAU;IACV,aAAa;CACd,CAAA;AA8CD;;;;;GAKG;AACU,QAAA,mBAAmB,GAAG,kEAAkE,CAAA;AAErG;;;;;;GAMG;AACU,QAAA,mBAAmB,GAAG,kEAAkE,CAAA;AAErG;;;;;;;;GAQG;AACU,QAAA,2BAA2B,GAAG,kEAAkE,CAAA;AAE7G;;;GAGG;AACH,SAAgB,QAAQ,CAAC,MAAc;IACrC,OAAO,CAAC,2BAAmB,EAAE,2BAAmB,EAAE,mCAA2B,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;AACrG,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/sdk/types.ts"],"names":[],"mappings":";;;AA8JA,4BAEC;AA5FY,QAAA,yBAAyB,GAAwB,CAAC,WAAW,EAAE,SAAS,EAAE,aAAa,CAAC,CAAA;AAExF,QAAA,4BAA4B,GAAwB;IAC/D,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,UAAU;IACV,aAAa;IACb,SAAS;IACT,UAAU;IACV,aAAa;CACd,CAAA;AA8CD;;;;;GAKG;AACU,QAAA,mBAAmB,GAAG,kEAAkE,CAAA;AAErG;;;;;;GAMG;AACU,QAAA,mBAAmB,GAAG,kEAAkE,CAAA;AAErG;;;;;;;;GAQG;AACU,QAAA,2BAA2B,GAAG,kEAAkE,CAAA;AAE7G;;;GAGG;AACH,SAAgB,QAAQ,CAAC,MAAc;IACrC,OAAO,CAAC,2BAAmB,EAAE,2BAAmB,EAAE,mCAA2B,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;AACrG,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"echangeRates.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/echangeRates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAA;AAGxC,wBAAsB,kCAAkC,CACtD,gBAAgB,EAAE,MAAM,EAAE,EAC1B,OAAO,EAAE,GAAG,CAAC,qBAAqB,GACjC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAehC;AAED,wBAAsB,sBAAsB,CAC1C,gBAAgB,EAAE,MAAM,EAAE,EAC1B,OAAO,EAAE,GAAG,CAAC,qBAAqB,GACjC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAgChC;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,KAAK,GAAG,KAAK,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC9B;AAED,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAYjF"}
1
+ {"version":3,"file":"echangeRates.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/echangeRates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAA;AAExC,wBAAsB,kCAAkC,CACtD,gBAAgB,EAAE,MAAM,EAAE,EAC1B,OAAO,EAAE,GAAG,CAAC,qBAAqB,GACjC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAiBhC;AAED,wBAAsB,sBAAsB,CAC1C,gBAAgB,EAAE,MAAM,EAAE,EAC1B,OAAO,EAAE,GAAG,CAAC,qBAAqB,GACjC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAgChC;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,KAAK,GAAG,KAAK,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC9B;AAED,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAcjF"}
@@ -1,18 +1,16 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.updateChaintracksFiatExchangeRates = updateChaintracksFiatExchangeRates;
7
4
  exports.updateExchangeratesapi = updateExchangeratesapi;
8
5
  exports.getExchangeRatesIo = getExchangeRatesIo;
9
6
  const index_client_1 = require("../../index.client");
10
- const axios_1 = __importDefault(require("axios"));
11
7
  async function updateChaintracksFiatExchangeRates(targetCurrencies, options) {
12
8
  const url = options.chaintracksFiatExchangeRatesUrl;
13
9
  if (!url)
14
10
  throw new index_client_1.sdk.WERR_MISSING_PARAMETER('options.chaintracksFiatExchangeRatesUrl');
15
- const r = await axios_1.default.get(url);
11
+ const response = await fetch(url);
12
+ const data = await response.json();
13
+ const r = { status: response.status, data };
16
14
  if (r.status !== 200 || !r.data || r.data.status != 'success') {
17
15
  throw new index_client_1.sdk.WERR_BAD_REQUEST(`${url} returned status ${r.status}`);
18
16
  }
@@ -48,7 +46,9 @@ async function updateExchangeratesapi(targetCurrencies, options) {
48
46
  }
49
47
  async function getExchangeRatesIo(key) {
50
48
  const url = `http://api.exchangeratesapi.io/v1/latest?access_key=${key}`;
51
- const r = await axios_1.default.get(url);
49
+ const response = await fetch(url);
50
+ const data = await response.json();
51
+ const r = { status: response.status, data };
52
52
  if (r.status !== 200 || !r.data) {
53
53
  throw new index_client_1.sdk.WERR_BAD_REQUEST(`getExchangeRatesIo returned status ${r.status}`);
54
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"echangeRates.js","sourceRoot":"","sources":["../../../../../src/services/providers/echangeRates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"echangeRates.js","sourceRoot":"","sources":["../../../../../src/services/providers/echangeRates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,176 @@
1
+ import { ListActionsResult, ListOutputsResult } from '@bsv/sdk';
2
+ import { sdk } from '../index.all';
3
+ import { TableCertificate, TableCertificateField, TableCertificateX, TableCommission, TableMonitorEvent, TableOutput, TableOutputBasket, TableOutputTag, TableOutputTagMap, TableOutputX, TableProvenTx, TableProvenTxReq, TableSettings, TableSyncState, TableTransaction, TableTxLabel, TableTxLabelMap, TableUser } from './index.all';
4
+ import { Knex } from 'knex';
5
+ import { StorageProvider, StorageProviderOptions } from './StorageProvider';
6
+ import { DBType } from './StorageReader';
7
+ export interface StorageKnexOptions extends StorageProviderOptions {
8
+ /**
9
+ * Knex database interface initialized with valid connection configuration.
10
+ */
11
+ knex: Knex;
12
+ }
13
+ export declare class StorageKnex extends StorageProvider implements sdk.WalletStorageProvider {
14
+ knex: Knex;
15
+ constructor(options: StorageKnexOptions);
16
+ readSettings(): Promise<TableSettings>;
17
+ getProvenOrRawTx(txid: string, trx?: sdk.TrxToken): Promise<sdk.ProvenOrRawTx>;
18
+ dbTypeSubstring(source: string, fromOffset: number, forLength?: number): string;
19
+ getRawTxOfKnownValidTransaction(txid?: string, offset?: number, length?: number, trx?: sdk.TrxToken): Promise<number[] | undefined>;
20
+ getProvenTxsForUserQuery(args: sdk.FindForUserSincePagedArgs): Knex.QueryBuilder;
21
+ getProvenTxsForUser(args: sdk.FindForUserSincePagedArgs): Promise<TableProvenTx[]>;
22
+ getProvenTxReqsForUserQuery(args: sdk.FindForUserSincePagedArgs): Knex.QueryBuilder;
23
+ getProvenTxReqsForUser(args: sdk.FindForUserSincePagedArgs): Promise<TableProvenTxReq[]>;
24
+ getTxLabelMapsForUserQuery(args: sdk.FindForUserSincePagedArgs): Knex.QueryBuilder;
25
+ getTxLabelMapsForUser(args: sdk.FindForUserSincePagedArgs): Promise<TableTxLabelMap[]>;
26
+ getOutputTagMapsForUserQuery(args: sdk.FindForUserSincePagedArgs): Knex.QueryBuilder;
27
+ getOutputTagMapsForUser(args: sdk.FindForUserSincePagedArgs): Promise<TableOutputTagMap[]>;
28
+ listActions(auth: sdk.AuthId, vargs: sdk.ValidListActionsArgs): Promise<ListActionsResult>;
29
+ listOutputs(auth: sdk.AuthId, vargs: sdk.ValidListOutputsArgs): Promise<ListOutputsResult>;
30
+ insertProvenTx(tx: TableProvenTx, trx?: sdk.TrxToken): Promise<number>;
31
+ insertProvenTxReq(tx: TableProvenTxReq, trx?: sdk.TrxToken): Promise<number>;
32
+ insertUser(user: TableUser, trx?: sdk.TrxToken): Promise<number>;
33
+ insertCertificateAuth(auth: sdk.AuthId, certificate: TableCertificateX): Promise<number>;
34
+ insertCertificate(certificate: TableCertificateX, trx?: sdk.TrxToken): Promise<number>;
35
+ insertCertificateField(certificateField: TableCertificateField, trx?: sdk.TrxToken): Promise<void>;
36
+ insertOutputBasket(basket: TableOutputBasket, trx?: sdk.TrxToken): Promise<number>;
37
+ insertTransaction(tx: TableTransaction, trx?: sdk.TrxToken): Promise<number>;
38
+ insertCommission(commission: TableCommission, trx?: sdk.TrxToken): Promise<number>;
39
+ insertOutput(output: TableOutput, trx?: sdk.TrxToken): Promise<number>;
40
+ insertOutputTag(tag: TableOutputTag, trx?: sdk.TrxToken): Promise<number>;
41
+ insertOutputTagMap(tagMap: TableOutputTagMap, trx?: sdk.TrxToken): Promise<void>;
42
+ insertTxLabel(label: TableTxLabel, trx?: sdk.TrxToken): Promise<number>;
43
+ insertTxLabelMap(labelMap: TableTxLabelMap, trx?: sdk.TrxToken): Promise<void>;
44
+ insertMonitorEvent(event: TableMonitorEvent, trx?: sdk.TrxToken): Promise<number>;
45
+ insertSyncState(syncState: TableSyncState, trx?: sdk.TrxToken): Promise<number>;
46
+ updateCertificateField(certificateId: number, fieldName: string, update: Partial<TableCertificateField>, trx?: sdk.TrxToken): Promise<number>;
47
+ updateCertificate(id: number, update: Partial<TableCertificate>, trx?: sdk.TrxToken): Promise<number>;
48
+ updateCommission(id: number, update: Partial<TableCommission>, trx?: sdk.TrxToken): Promise<number>;
49
+ updateOutputBasket(id: number, update: Partial<TableOutputBasket>, trx?: sdk.TrxToken): Promise<number>;
50
+ updateOutput(id: number, update: Partial<TableOutput>, trx?: sdk.TrxToken): Promise<number>;
51
+ updateOutputTagMap(outputId: number, tagId: number, update: Partial<TableOutputTagMap>, trx?: sdk.TrxToken): Promise<number>;
52
+ updateOutputTag(id: number, update: Partial<TableOutputTag>, trx?: sdk.TrxToken): Promise<number>;
53
+ updateProvenTxReq(id: number | number[], update: Partial<TableProvenTxReq>, trx?: sdk.TrxToken): Promise<number>;
54
+ updateProvenTx(id: number, update: Partial<TableProvenTx>, trx?: sdk.TrxToken): Promise<number>;
55
+ updateSyncState(id: number, update: Partial<TableSyncState>, trx?: sdk.TrxToken): Promise<number>;
56
+ updateTransaction(id: number | number[], update: Partial<TableTransaction>, trx?: sdk.TrxToken): Promise<number>;
57
+ updateTxLabelMap(transactionId: number, txLabelId: number, update: Partial<TableTxLabelMap>, trx?: sdk.TrxToken): Promise<number>;
58
+ updateTxLabel(id: number, update: Partial<TableTxLabel>, trx?: sdk.TrxToken): Promise<number>;
59
+ updateUser(id: number, update: Partial<TableUser>, trx?: sdk.TrxToken): Promise<number>;
60
+ updateMonitorEvent(id: number, update: Partial<TableMonitorEvent>, trx?: sdk.TrxToken): Promise<number>;
61
+ setupQuery<T extends object>(table: string, args: sdk.FindPartialSincePagedArgs<T>): Knex.QueryBuilder;
62
+ findCertificateFieldsQuery(args: sdk.FindCertificateFieldsArgs): Knex.QueryBuilder;
63
+ findCertificatesQuery(args: sdk.FindCertificatesArgs): Knex.QueryBuilder;
64
+ findCommissionsQuery(args: sdk.FindCommissionsArgs): Knex.QueryBuilder;
65
+ findOutputBasketsQuery(args: sdk.FindOutputBasketsArgs): Knex.QueryBuilder;
66
+ findOutputsQuery(args: sdk.FindOutputsArgs, count?: boolean): Knex.QueryBuilder;
67
+ findOutputTagMapsQuery(args: sdk.FindOutputTagMapsArgs): Knex.QueryBuilder;
68
+ findOutputTagsQuery(args: sdk.FindOutputTagsArgs): Knex.QueryBuilder;
69
+ findProvenTxReqsQuery(args: sdk.FindProvenTxReqsArgs): Knex.QueryBuilder;
70
+ findProvenTxsQuery(args: sdk.FindProvenTxsArgs): Knex.QueryBuilder;
71
+ findSyncStatesQuery(args: sdk.FindSyncStatesArgs): Knex.QueryBuilder;
72
+ findTransactionsQuery(args: sdk.FindTransactionsArgs, count?: boolean): Knex.QueryBuilder;
73
+ findTxLabelMapsQuery(args: sdk.FindTxLabelMapsArgs): Knex.QueryBuilder;
74
+ findTxLabelsQuery(args: sdk.FindTxLabelsArgs): Knex.QueryBuilder;
75
+ findUsersQuery(args: sdk.FindUsersArgs): Knex.QueryBuilder;
76
+ findMonitorEventsQuery(args: sdk.FindMonitorEventsArgs): Knex.QueryBuilder;
77
+ findCertificatesAuth(auth: sdk.AuthId, args: sdk.FindCertificatesArgs): Promise<TableCertificateX[]>;
78
+ findOutputBasketsAuth(auth: sdk.AuthId, args: sdk.FindOutputBasketsArgs): Promise<TableOutputBasket[]>;
79
+ findOutputsAuth(auth: sdk.AuthId, args: sdk.FindOutputsArgs): Promise<TableOutput[]>;
80
+ findCertificateFields(args: sdk.FindCertificateFieldsArgs): Promise<TableCertificateField[]>;
81
+ findCertificates(args: sdk.FindCertificatesArgs): Promise<TableCertificateX[]>;
82
+ findCommissions(args: sdk.FindCommissionsArgs): Promise<TableCommission[]>;
83
+ findOutputBaskets(args: sdk.FindOutputBasketsArgs): Promise<TableOutputBasket[]>;
84
+ findOutputs(args: sdk.FindOutputsArgs): Promise<TableOutput[]>;
85
+ findOutputTagMaps(args: sdk.FindOutputTagMapsArgs): Promise<TableOutputTagMap[]>;
86
+ findOutputTags(args: sdk.FindOutputTagsArgs): Promise<TableOutputTag[]>;
87
+ findProvenTxReqs(args: sdk.FindProvenTxReqsArgs): Promise<TableProvenTxReq[]>;
88
+ findProvenTxs(args: sdk.FindProvenTxsArgs): Promise<TableProvenTx[]>;
89
+ findSyncStates(args: sdk.FindSyncStatesArgs): Promise<TableSyncState[]>;
90
+ findTransactions(args: sdk.FindTransactionsArgs): Promise<TableTransaction[]>;
91
+ findTxLabelMaps(args: sdk.FindTxLabelMapsArgs): Promise<TableTxLabelMap[]>;
92
+ findTxLabels(args: sdk.FindTxLabelsArgs): Promise<TableTxLabel[]>;
93
+ findUsers(args: sdk.FindUsersArgs): Promise<TableUser[]>;
94
+ findMonitorEvents(args: sdk.FindMonitorEventsArgs): Promise<TableMonitorEvent[]>;
95
+ getCount<T extends object>(q: Knex.QueryBuilder<T, T[]>): Promise<number>;
96
+ countCertificateFields(args: sdk.FindCertificateFieldsArgs): Promise<number>;
97
+ countCertificates(args: sdk.FindCertificatesArgs): Promise<number>;
98
+ countCommissions(args: sdk.FindCommissionsArgs): Promise<number>;
99
+ countOutputBaskets(args: sdk.FindOutputBasketsArgs): Promise<number>;
100
+ countOutputs(args: sdk.FindOutputsArgs): Promise<number>;
101
+ countOutputTagMaps(args: sdk.FindOutputTagMapsArgs): Promise<number>;
102
+ countOutputTags(args: sdk.FindOutputTagsArgs): Promise<number>;
103
+ countProvenTxReqs(args: sdk.FindProvenTxReqsArgs): Promise<number>;
104
+ countProvenTxs(args: sdk.FindProvenTxsArgs): Promise<number>;
105
+ countSyncStates(args: sdk.FindSyncStatesArgs): Promise<number>;
106
+ countTransactions(args: sdk.FindTransactionsArgs): Promise<number>;
107
+ countTxLabelMaps(args: sdk.FindTxLabelMapsArgs): Promise<number>;
108
+ countTxLabels(args: sdk.FindTxLabelsArgs): Promise<number>;
109
+ countUsers(args: sdk.FindUsersArgs): Promise<number>;
110
+ countMonitorEvents(args: sdk.FindMonitorEventsArgs): Promise<number>;
111
+ destroy(): Promise<void>;
112
+ migrate(storageName: string, storageIdentityKey: string): Promise<string>;
113
+ dropAllData(): Promise<void>;
114
+ transaction<T>(scope: (trx: sdk.TrxToken) => Promise<T>, trx?: sdk.TrxToken): Promise<T>;
115
+ /**
116
+ * Convert the standard optional `TrxToken` parameter into either a direct knex database instance,
117
+ * or a Knex.Transaction as appropriate.
118
+ */
119
+ toDb(trx?: sdk.TrxToken): Knex<any, any[]>;
120
+ validateRawTransaction(t: TableTransaction, trx?: sdk.TrxToken): Promise<void>;
121
+ validateOutputScript(o: TableOutput, trx?: sdk.TrxToken): Promise<void>;
122
+ _verifiedReadyForDatabaseAccess: boolean;
123
+ /**
124
+ * Make sure database is ready for access:
125
+ *
126
+ * - dateScheme is known
127
+ * - foreign key constraints are enabled
128
+ *
129
+ * @param trx
130
+ */
131
+ verifyReadyForDatabaseAccess(trx?: sdk.TrxToken): Promise<DBType>;
132
+ /**
133
+ * Helper to force uniform behavior across database engines.
134
+ * Use to process the update template for entities being updated.
135
+ */
136
+ validatePartialForUpdate<T extends sdk.EntityTimeStamp>(update: Partial<T>, dateFields?: string[], booleanFields?: string[]): Partial<T>;
137
+ /**
138
+ * Helper to force uniform behavior across database engines.
139
+ * Use to process new entities being inserted into the database.
140
+ */
141
+ validateEntityForInsert<T extends sdk.EntityTimeStamp>(entity: T, trx?: sdk.TrxToken, dateFields?: string[], booleanFields?: string[]): Promise<any>;
142
+ getLabelsForTransactionId(transactionId?: number, trx?: sdk.TrxToken): Promise<TableTxLabel[]>;
143
+ extendOutput(o: TableOutput, includeBasket?: boolean, includeTags?: boolean, trx?: sdk.TrxToken): Promise<TableOutputX>;
144
+ getTagsForOutputId(outputId: number, trx?: sdk.TrxToken): Promise<TableOutputTag[]>;
145
+ purgeData(params: sdk.PurgeParams, trx?: sdk.TrxToken): Promise<sdk.PurgeResults>;
146
+ reviewStatus(args: {
147
+ agedLimit: Date;
148
+ trx?: sdk.TrxToken;
149
+ }): Promise<{
150
+ log: string;
151
+ }>;
152
+ /**
153
+ * Finds closest matching available change output to use as input for new transaction.
154
+ *
155
+ * Transactionally allocate the output such that
156
+ */
157
+ countChangeInputs(userId: number, basketId: number, excludeSending: boolean): Promise<number>;
158
+ /**
159
+ * Finds closest matching available change output to use as input for new transaction.
160
+ *
161
+ * Transactionally allocate the output such that
162
+ */
163
+ allocateChangeInput(userId: number, basketId: number, targetSatoshis: number, exactSatoshis: number | undefined, excludeSending: boolean, transactionId: number): Promise<TableOutput | undefined>;
164
+ /**
165
+ * Helper to force uniform behavior across database engines.
166
+ * Use to process all individual records with time stamps retreived from database.
167
+ */
168
+ validateEntity<T extends sdk.EntityTimeStamp>(entity: T, dateFields?: string[], booleanFields?: string[]): T;
169
+ /**
170
+ * Helper to force uniform behavior across database engines.
171
+ * Use to process all arrays of records with time stamps retreived from database.
172
+ * @returns input `entities` array with contained values validated.
173
+ */
174
+ validateEntities<T extends sdk.EntityTimeStamp>(entities: T[], dateFields?: string[], booleanFields?: string[]): T[];
175
+ }
176
+ //# sourceMappingURL=StorageKnex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StorageKnex.d.ts","sourceRoot":"","sources":["../../../../src/storage/StorageKnex.ts"],"names":[],"mappings":"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"}