@bsv/wallet-toolbox 1.6.2 → 1.6.4

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 (85) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/docs/client.md +315 -2500
  3. package/docs/services.md +15 -4
  4. package/docs/wallet.md +315 -2500
  5. package/mobile/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.d.ts.map +1 -1
  6. package/mobile/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js +1 -2
  7. package/mobile/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js.map +1 -1
  8. package/mobile/out/src/services/chaintracker/chaintracks/index.client.d.ts +0 -3
  9. package/mobile/out/src/services/chaintracker/chaintracks/index.client.d.ts.map +1 -1
  10. package/mobile/out/src/services/chaintracker/chaintracks/index.client.js +0 -3
  11. package/mobile/out/src/services/chaintracker/chaintracks/index.client.js.map +1 -1
  12. package/mobile/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts.map +1 -1
  13. package/mobile/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js +2 -3
  14. package/mobile/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js.map +1 -1
  15. package/mobile/package-lock.json +2 -2
  16. package/mobile/package.json +1 -1
  17. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.d.ts.map +1 -1
  18. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js +1 -2
  19. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js.map +1 -1
  20. package/out/src/services/chaintracker/chaintracks/index.all.d.ts +3 -0
  21. package/out/src/services/chaintracker/chaintracks/index.all.d.ts.map +1 -1
  22. package/out/src/services/chaintracker/chaintracks/index.all.js +3 -0
  23. package/out/src/services/chaintracker/chaintracks/index.all.js.map +1 -1
  24. package/out/src/services/chaintracker/chaintracks/index.client.d.ts +0 -3
  25. package/out/src/services/chaintracker/chaintracks/index.client.d.ts.map +1 -1
  26. package/out/src/services/chaintracker/chaintracks/index.client.js +0 -3
  27. package/out/src/services/chaintracker/chaintracks/index.client.js.map +1 -1
  28. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts.map +1 -1
  29. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js +2 -3
  30. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js.map +1 -1
  31. package/out/src/storage/__test/getBeefForTransaction.test.js.map +1 -1
  32. package/out/test/storage/idb/update.test.js +1 -1
  33. package/out/test/storage/idb/update.test.js.map +1 -1
  34. package/out/tsconfig.all.tsbuildinfo +1 -1
  35. package/package.json +1 -1
  36. package/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.ts +1 -2
  37. package/src/services/chaintracker/chaintracks/index.all.ts +4 -0
  38. package/src/services/chaintracker/chaintracks/index.client.ts +0 -3
  39. package/src/services/chaintracker/chaintracks/util/BulkFileDataManager.ts +2 -3
  40. package/src/storage/__test/getBeefForTransaction.test.ts +2 -5
  41. package/test/storage/idb/update.test.ts +1 -1
  42. package/mobile/out/src/Setup.d.ts +0 -267
  43. package/mobile/out/src/Setup.d.ts.map +0 -1
  44. package/mobile/out/src/Setup.js +0 -408
  45. package/mobile/out/src/Setup.js.map +0 -1
  46. package/mobile/out/src/services/chaintracker/chaintracks/ChaintracksService.d.ts +0 -30
  47. package/mobile/out/src/services/chaintracker/chaintracks/ChaintracksService.d.ts.map +0 -1
  48. package/mobile/out/src/services/chaintracker/chaintracks/ChaintracksService.js +0 -149
  49. package/mobile/out/src/services/chaintracker/chaintracks/ChaintracksService.js.map +0 -1
  50. package/mobile/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.d.ts +0 -23
  51. package/mobile/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.d.ts.map +0 -1
  52. package/mobile/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.js +0 -57
  53. package/mobile/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.js.map +0 -1
  54. package/mobile/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.d.ts +0 -16
  55. package/mobile/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.d.ts.map +0 -1
  56. package/mobile/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.js +0 -53
  57. package/mobile/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.js.map +0 -1
  58. package/mobile/out/src/storage/StorageKnex.d.ts +0 -179
  59. package/mobile/out/src/storage/StorageKnex.d.ts.map +0 -1
  60. package/mobile/out/src/storage/StorageKnex.js +0 -1215
  61. package/mobile/out/src/storage/StorageKnex.js.map +0 -1
  62. package/mobile/out/src/storage/methods/listActionsKnex.d.ts +0 -6
  63. package/mobile/out/src/storage/methods/listActionsKnex.d.ts.map +0 -1
  64. package/mobile/out/src/storage/methods/listActionsKnex.js +0 -198
  65. package/mobile/out/src/storage/methods/listActionsKnex.js.map +0 -1
  66. package/mobile/out/src/storage/methods/listOutputsKnex.d.ts +0 -6
  67. package/mobile/out/src/storage/methods/listOutputsKnex.d.ts.map +0 -1
  68. package/mobile/out/src/storage/methods/listOutputsKnex.js +0 -241
  69. package/mobile/out/src/storage/methods/listOutputsKnex.js.map +0 -1
  70. package/mobile/out/src/storage/methods/purgeData.d.ts +0 -4
  71. package/mobile/out/src/storage/methods/purgeData.d.ts.map +0 -1
  72. package/mobile/out/src/storage/methods/purgeData.js +0 -207
  73. package/mobile/out/src/storage/methods/purgeData.js.map +0 -1
  74. package/mobile/out/src/storage/methods/reviewStatus.d.ts +0 -20
  75. package/mobile/out/src/storage/methods/reviewStatus.d.ts.map +0 -1
  76. package/mobile/out/src/storage/methods/reviewStatus.js +0 -84
  77. package/mobile/out/src/storage/methods/reviewStatus.js.map +0 -1
  78. package/mobile/out/src/storage/schema/KnexMigrations.d.ts +0 -39
  79. package/mobile/out/src/storage/schema/KnexMigrations.d.ts.map +0 -1
  80. package/mobile/out/src/storage/schema/KnexMigrations.js +0 -410
  81. package/mobile/out/src/storage/schema/KnexMigrations.js.map +0 -1
  82. package/mobile/out/test/utils/TestUtilsWalletStorage.d.ts +0 -522
  83. package/mobile/out/test/utils/TestUtilsWalletStorage.d.ts.map +0 -1
  84. package/mobile/out/test/utils/TestUtilsWalletStorage.js +0 -1956
  85. package/mobile/out/test/utils/TestUtilsWalletStorage.js.map +0 -1
@@ -1,522 +0,0 @@
1
- import { Knex } from 'knex';
2
- import { Beef, CreateActionResult, HexString, KeyDeriverApi, PrivateKey, PublicKey, SignActionResult, Transaction, WalletAction, WalletActionInput, WalletActionOutput, WalletCertificate, WalletInterface } from '@bsv/sdk';
3
- import { Chain } from '../../src/sdk/types';
4
- import { StorageKnex } from '../../src/storage/StorageKnex';
5
- import { Services } from '../../src/services/Services';
6
- import { TrxToken, WalletStorageProvider } from '../../src/sdk/WalletStorage.interfaces';
7
- import { WalletStorageManager } from '../../src/storage/WalletStorageManager';
8
- import { GetMerklePathResult } from '../../src/sdk/WalletServices.interfaces';
9
- import { Monitor } from '../../src/monitor/Monitor';
10
- import { Wallet } from '../../src/Wallet';
11
- import { StorageProvider } from '../../src/storage/StorageProvider';
12
- import { TableProvenTx } from '../../src/storage/schema/tables/TableProvenTx';
13
- import { TableProvenTxReq } from '../../src/storage/schema/tables/TableProvenTxReq';
14
- import { TableUser } from '../../src/storage/schema/tables/TableUser';
15
- import { TableCertificate } from '../../src/storage/schema/tables/TableCertificate';
16
- import { TableCertificateField } from '../../src/storage/schema/tables/TableCertificateField';
17
- import { TableOutputBasket } from '../../src/storage/schema/tables/TableOutputBasket';
18
- import { TableTransaction } from '../../src/storage/schema/tables/TableTransaction';
19
- import { TableOutput } from '../../src/storage/schema/tables/TableOutput';
20
- import { TableOutputTag } from '../../src/storage/schema/tables/TableOutputTag';
21
- import { TableOutputTagMap } from '../../src/storage/schema/tables/TableOutputTagMap';
22
- import { TableTxLabel } from '../../src/storage/schema/tables/TableTxLabel';
23
- import { TableTxLabelMap } from '../../src/storage/schema/tables/TableTxLabelMap';
24
- import { TableSyncState } from '../../src/storage/schema/tables/TableSyncState';
25
- import { TableMonitorEvent } from '../../src/storage/schema/tables/TableMonitorEvent';
26
- import { TableCommission } from '../../src/storage/schema/tables/TableCommission';
27
- export interface TuEnvFlags {
28
- chain: Chain;
29
- runMySQL: boolean;
30
- runSlowTests: boolean;
31
- logTests: boolean;
32
- }
33
- export interface TuEnv extends TuEnvFlags {
34
- chain: Chain;
35
- identityKey: string;
36
- identityKey2: string;
37
- taalApiKey: string;
38
- bitailsApiKey: string;
39
- whatsonchainApiKey: string;
40
- devKeys: Record<string, string>;
41
- /**
42
- * file path to local sqlite file for identityKey
43
- */
44
- filePath?: string;
45
- /**
46
- * identityKey for automated test wallet on this chain
47
- */
48
- testIdentityKey?: string;
49
- /**
50
- * file path to local sqlite file for testIdentityKey
51
- */
52
- testFilePath?: string;
53
- cloudMySQLConnection?: string;
54
- }
55
- export declare abstract class TestUtilsWalletStorage {
56
- /**
57
- * @param chain
58
- * @returns true if .env has truthy idenityKey, idenityKey2 values for chain
59
- */
60
- static noEnv(chain: Chain): boolean;
61
- /**
62
- * @param chain
63
- * @returns true if .env is not valid for chain or testIdentityKey or testFilePath are undefined or empty.
64
- */
65
- static noTestEnv(chain: Chain): boolean;
66
- static getEnvFlags(chain: Chain): TuEnvFlags;
67
- static getEnv(chain: Chain): TuEnv;
68
- static createMainReviewSetup(): Promise<{
69
- env: TuEnv;
70
- storage: StorageKnex;
71
- services: Services;
72
- }>;
73
- static createNoSendP2PKHTestOutpoint(address: string, satoshis: number, noSendChange: string[] | undefined, wallet: WalletInterface): Promise<{
74
- noSendChange: string[];
75
- txid: string;
76
- cr: CreateActionResult;
77
- sr: SignActionResult;
78
- }>;
79
- static createNoSendP2PKHTestOutpoints(count: number, address: string, satoshis: number, noSendChange: string[] | undefined, wallet: WalletInterface): Promise<{
80
- noSendChange: string[];
81
- txid: string;
82
- cr: CreateActionResult;
83
- sr: SignActionResult;
84
- }>;
85
- static getKeyPair(priv?: string | PrivateKey): TestKeyPair;
86
- static getLockP2PKH(address: string): import("@bsv/sdk").LockingScript;
87
- static getUnlockP2PKH(priv: PrivateKey, satoshis: number): {
88
- sign: (tx: Transaction, inputIndex: number) => Promise<import("@bsv/sdk").UnlockingScript>;
89
- estimateLength: () => Promise<108>;
90
- };
91
- static createWalletOnly(args: {
92
- chain?: Chain;
93
- rootKeyHex?: string;
94
- active?: WalletStorageProvider;
95
- backups?: WalletStorageProvider[];
96
- privKeyHex?: string;
97
- }): Promise<TestWalletOnly>;
98
- /**
99
- * Creates a wallet with both local sqlite and cloud stores, the local store is left active.
100
- *
101
- * Requires a valid .env file with chain matching testIdentityKey and testFilePath properties valid.
102
- * Or `args` with those properties.
103
- *
104
- * Verifies wallet has at least 1000 satoshis in at least 10 change utxos.
105
- *
106
- * @param chain
107
- *
108
- * @returns {TestWalletNoSetup}
109
- */
110
- static createTestWallet(args: Chain | CreateTestWalletArgs): Promise<TestWalletNoSetup>;
111
- static createTestWalletWithStorageClient(args: {
112
- rootKeyHex?: string;
113
- endpointUrl?: string;
114
- chain?: Chain;
115
- }): Promise<TestWalletOnly>;
116
- static createKnexTestWalletWithSetup<T>(args: {
117
- knex: Knex<any, any[]>;
118
- databaseName: string;
119
- chain?: Chain;
120
- rootKeyHex?: string;
121
- dropAll?: boolean;
122
- privKeyHex?: string;
123
- insertSetup: (storage: StorageKnex, identityKey: string) => Promise<T>;
124
- }): Promise<TestWallet<T>>;
125
- /**
126
- * Returns path to temporary file in project's './test/data/tmp/' folder.
127
- *
128
- * Creates any missing folders.
129
- *
130
- * Optionally tries to delete any existing file. This may fail if the file file is locked
131
- * by another process.
132
- *
133
- * Optionally copies filename (or if filename has no dir component, a file of the same filename from the project's './test/data' folder) to initialize file's contents.
134
- *
135
- * CAUTION: returned file path will include four random hex digits unless tryToDelete is true. Files must be purged periodically.
136
- *
137
- * @param filename target filename without path, optionally just extension in which case random name is used
138
- * @param tryToDelete true to attempt to delete an existing file at the returned file path.
139
- * @param copyToTmp true to copy file of same filename from './test/data' (or elsewhere if filename has path) to tmp folder
140
- * @param reuseExisting true to use existing file if found, otherwise a random string is added to filename.
141
- * @returns path in './test/data/tmp' folder.
142
- */
143
- static newTmpFile(filename?: string, tryToDelete?: boolean, copyToTmp?: boolean, reuseExisting?: boolean): Promise<string>;
144
- static copyFile(srcPath: string, dstPath: string): Promise<void>;
145
- static existingDataFile(filename: string): Promise<string>;
146
- static createLocalSQLite(filename: string): Knex;
147
- static createMySQLFromConnection(connection: object): Knex;
148
- static createLocalMySQL(database: string): Knex;
149
- static createMySQLTestWallet(args: {
150
- databaseName: string;
151
- chain?: Chain;
152
- rootKeyHex?: string;
153
- dropAll?: boolean;
154
- }): Promise<TestWallet<{}>>;
155
- static createMySQLTestSetup1Wallet(args: {
156
- databaseName: string;
157
- chain?: Chain;
158
- rootKeyHex?: string;
159
- }): Promise<TestWallet<TestSetup1>>;
160
- static createMySQLTestSetup2Wallet(args: {
161
- databaseName: string;
162
- mockData: MockData;
163
- chain?: Chain;
164
- rootKeyHex?: string;
165
- }): Promise<TestWallet<TestSetup2>>;
166
- static createSQLiteTestWallet(args: {
167
- filePath?: string;
168
- databaseName: string;
169
- chain?: Chain;
170
- rootKeyHex?: string;
171
- dropAll?: boolean;
172
- privKeyHex?: string;
173
- }): Promise<TestWalletNoSetup>;
174
- static createSQLiteTestSetup1Wallet(args: {
175
- databaseName: string;
176
- chain?: Chain;
177
- rootKeyHex?: string;
178
- }): Promise<TestWallet<TestSetup1>>;
179
- static createSQLiteTestSetup2Wallet(args: {
180
- databaseName: string;
181
- mockData: MockData;
182
- chain?: Chain;
183
- rootKeyHex?: string;
184
- }): Promise<TestWallet<TestSetup2>>;
185
- static createKnexTestWallet(args: {
186
- knex: Knex<any, any[]>;
187
- databaseName: string;
188
- chain?: Chain;
189
- rootKeyHex?: string;
190
- dropAll?: boolean;
191
- privKeyHex?: string;
192
- }): Promise<TestWalletNoSetup>;
193
- static createKnexTestSetup1Wallet(args: {
194
- knex: Knex<any, any[]>;
195
- databaseName: string;
196
- chain?: Chain;
197
- rootKeyHex?: string;
198
- dropAll?: boolean;
199
- }): Promise<TestWallet<TestSetup1>>;
200
- static createKnexTestSetup2Wallet(args: {
201
- knex: Knex<any, any[]>;
202
- databaseName: string;
203
- mockData: MockData;
204
- chain?: Chain;
205
- rootKeyHex?: string;
206
- dropAll?: boolean;
207
- }): Promise<TestWallet<TestSetup2>>;
208
- static fileExists(file: string): Promise<boolean>;
209
- static createLegacyWalletSQLiteCopy(databaseName: string): Promise<TestWalletNoSetup>;
210
- static createLegacyWalletMySQLCopy(databaseName: string): Promise<TestWalletNoSetup>;
211
- static createLiveWalletSQLiteWARNING(databaseFullPath?: string): Promise<TestWalletNoSetup>;
212
- static createWalletSQLite(databaseFullPath?: string, databaseName?: string): Promise<TestWalletNoSetup>;
213
- static legacyRootKeyHex: string;
214
- static createLegacyWalletCopy(databaseName: string, walletKnex: Knex<any, any[]>, tryCopyToPath?: string): Promise<TestWalletNoSetup>;
215
- static wrapProfiling(o: Object, name: string): Record<string, {
216
- count: number;
217
- totalMsecs: number;
218
- }>;
219
- static createIdbLegacyWalletCopy(databaseName: string): Promise<TestWalletProviderNoSetup>;
220
- static makeSampleCert(subject?: string): {
221
- cert: WalletCertificate;
222
- subject: string;
223
- certifier: PrivateKey;
224
- };
225
- static insertTestProvenTx(storage: StorageProvider, txid?: string, trx?: TrxToken): Promise<TableProvenTx>;
226
- static insertTestProvenTxReq(storage: StorageProvider, txid?: string, provenTxId?: number, onlyRequired?: boolean): Promise<TableProvenTxReq>;
227
- static insertTestUser(storage: StorageProvider, identityKey?: string): Promise<TableUser>;
228
- static insertTestCertificate(storage: StorageProvider, u?: TableUser): Promise<TableCertificate>;
229
- static insertTestCertificateField(storage: StorageProvider, c: TableCertificate, name: string, value: string): Promise<TableCertificateField>;
230
- static insertTestOutputBasket(storage: StorageProvider, u?: TableUser | number, partial?: Partial<TableOutputBasket>): Promise<TableOutputBasket>;
231
- static insertTestTransaction(storage: StorageProvider, u?: TableUser, onlyRequired?: boolean, partial?: Partial<TableTransaction>): Promise<{
232
- tx: TableTransaction;
233
- user: TableUser;
234
- }>;
235
- static insertTestOutput(storage: StorageProvider, t: TableTransaction, vout: number, satoshis: number, basket?: TableOutputBasket, requiredOnly?: boolean, partial?: Partial<TableOutput>): Promise<TableOutput>;
236
- static insertTestOutputTag(storage: StorageProvider, u: TableUser, partial?: Partial<TableOutputTag>): Promise<TableOutputTag>;
237
- static insertTestOutputTagMap(storage: StorageProvider, o: TableOutput, tag: TableOutputTag): Promise<TableOutputTagMap>;
238
- static insertTestTxLabel(storage: StorageProvider, u: TableUser, partial?: Partial<TableTxLabel>): Promise<TableTxLabel>;
239
- static insertTestTxLabelMap(storage: StorageProvider, tx: TableTransaction, label: TableTxLabel, partial?: Partial<TableTxLabelMap>): Promise<TableTxLabelMap>;
240
- static insertTestSyncState(storage: StorageProvider, u: TableUser): Promise<TableSyncState>;
241
- static insertTestMonitorEvent(storage: StorageProvider): Promise<TableMonitorEvent>;
242
- static insertTestCommission(storage: StorageProvider, t: TableTransaction): Promise<TableCommission>;
243
- static createTestSetup1(storage: StorageProvider, u1IdentityKey?: string): Promise<TestSetup1>;
244
- static createTestSetup2(storage: StorageProvider, identityKey: string, mockData?: MockData): Promise<TestSetup2>;
245
- static mockPostServicesAsSuccess(ctxs: TestWalletOnly[]): void;
246
- static mockPostServicesAsError(ctxs: TestWalletOnly[]): void;
247
- static mockPostServicesAsCallback(ctxs: TestWalletOnly[], callback: (beef: Beef, txids: string[]) => 'success' | 'error'): void;
248
- static mockMerklePathServicesAsCallback(ctxs: TestWalletOnly[], callback: (txid: string) => Promise<GetMerklePathResult>): void;
249
- static createWalletSetupEnv(chain: Chain): Promise<TestWalletOnly>;
250
- /**
251
- * Create a pair of transacitons that cancel out, other than the transaciton fees.
252
- * Both created transactions are left with status 'noSend'.
253
- * This allows the transactions to either be broadcast by an external party,
254
- * or they may be aborted.
255
- *
256
- * `doubleSpendTx` should only be used for double spend testing.
257
- * It attempts to forward the txidDo input, which should already have been reclaimed by txidUndo, to a random private key output.
258
- *
259
- * @param wallet the wallet that will create both transactions, or Chain and createWalletEnv is used to create a wallet.
260
- * @param satoshis amount of new output created and consumed. Defaults to 41.
261
- * @returns { txidDo: string, txidUndo: string, beef: Beef, doubleSpendTx: transaction }
262
- */
263
- static createNoSendTxPair(wallet: Wallet | Chain, satoshis?: number): Promise<{
264
- txidDo: string;
265
- txidUndo: string;
266
- beef: Beef;
267
- doubleSpendTx: Transaction;
268
- }>;
269
- }
270
- export declare abstract class _tu extends TestUtilsWalletStorage {
271
- }
272
- export interface TestSetup1 {
273
- u1: TableUser;
274
- u1basket1: TableOutputBasket;
275
- u1basket2: TableOutputBasket;
276
- u1label1: TableTxLabel;
277
- u1label2: TableTxLabel;
278
- u1tag1: TableOutputTag;
279
- u1tag2: TableOutputTag;
280
- u1tx1: TableTransaction;
281
- u1comm1: TableCommission;
282
- u1tx1label1: TableTxLabelMap;
283
- u1tx1label2: TableTxLabelMap;
284
- u1tx1o0: TableOutput;
285
- u1o0tag1: TableOutputTagMap;
286
- u1o0tag2: TableOutputTagMap;
287
- u1tx1o1: TableOutput;
288
- u1o1tag1: TableOutputTagMap;
289
- u1cert1: TableCertificate;
290
- u1cert1field1: TableCertificateField;
291
- u1cert1field2: TableCertificateField;
292
- u1cert2: TableCertificate;
293
- u1cert2field1: TableCertificateField;
294
- u1cert3: TableCertificate;
295
- u1sync1: TableSyncState;
296
- u2: TableUser;
297
- u2basket1: TableOutputBasket;
298
- u2label1: TableTxLabel;
299
- u2tx1: TableTransaction;
300
- u2comm1: TableCommission;
301
- u2tx1label1: TableTxLabelMap;
302
- u2tx1o0: TableOutput;
303
- u2tx2: TableTransaction;
304
- u2comm2: TableCommission;
305
- proven1: TableProvenTx;
306
- req1: TableProvenTxReq;
307
- req2: TableProvenTxReq;
308
- we1: TableMonitorEvent;
309
- }
310
- export interface MockData {
311
- inputs?: WalletActionInput[];
312
- outputs?: WalletActionOutput[];
313
- actions: WalletAction[];
314
- }
315
- export interface TestSetup2 extends MockData {
316
- }
317
- export interface TestWalletProvider<T> extends TestWalletOnly {
318
- activeStorage: StorageProvider;
319
- setup?: T;
320
- userId: number;
321
- rootKey: PrivateKey;
322
- identityKey: string;
323
- keyDeriver: KeyDeriverApi;
324
- chain: Chain;
325
- storage: WalletStorageManager;
326
- services: Services;
327
- monitor: Monitor;
328
- wallet: Wallet;
329
- localStorageIdentityKey?: string;
330
- clientStorageIdentityKey?: string;
331
- localBackupStorageIdentityKey?: string;
332
- }
333
- export interface TestWallet<T> extends TestWalletOnly {
334
- activeStorage: StorageKnex;
335
- setup?: T;
336
- userId: number;
337
- rootKey: PrivateKey;
338
- identityKey: string;
339
- keyDeriver: KeyDeriverApi;
340
- chain: Chain;
341
- storage: WalletStorageManager;
342
- services: Services;
343
- monitor: Monitor;
344
- wallet: Wallet;
345
- localStorageIdentityKey?: string;
346
- clientStorageIdentityKey?: string;
347
- localBackupStorageIdentityKey?: string;
348
- }
349
- export interface TestWalletOnly {
350
- rootKey: PrivateKey;
351
- identityKey: string;
352
- keyDeriver: KeyDeriverApi;
353
- chain: Chain;
354
- storage: WalletStorageManager;
355
- services: Services;
356
- monitor: Monitor;
357
- wallet: Wallet;
358
- }
359
- export type TestSetup2Wallet = TestWallet<TestSetup2>;
360
- export type TestSetup1Wallet = TestWallet<TestSetup1>;
361
- export type TestWalletNoSetup = TestWallet<{}>;
362
- export type TestWalletProviderNoSetup = TestWalletProvider<{}>;
363
- export declare function expectToThrowWERR<R>(expectedClass: new (...args: any[]) => any, fn: () => Promise<R>): Promise<void>;
364
- export type TestKeyPair = {
365
- privateKey: PrivateKey;
366
- publicKey: PublicKey;
367
- address: string;
368
- };
369
- /**
370
- * Centralized logging function to handle logging based on running in jest "single test" mode,
371
- * or when `logEnabled` is true.
372
- *
373
- * @param {string} message - The main message to log.
374
- * @param {...any} optionalParams - Additional parameters to log (optional).
375
- * @returns {void} This function does not return any value.
376
- *
377
- * @example
378
- * log('Test message', someVariable);
379
- * log('Another message with multiple params', param1, param2);
380
- */
381
- export declare const logger: (message: string, ...optionalParams: any[]) => void;
382
- /**
383
- * Updates a table dynamically based on key-value pairs in testValues.
384
- * @param {Function} updateFunction - The specific update function from storage.
385
- * @param {string | number} id - The ID or unique identifier of the record to update.
386
- * @param {Object} testValues - An object containing key-value pairs to update.
387
- */
388
- export declare const updateTable: (updateFunction: any, id: any, testValues: any) => Promise<void>;
389
- /**
390
- * Verifies that all key-value pairs in `testValues` match the corresponding keys in `targetObject`.
391
- * If a value is a Date, it validates the time using the `validateUpdateTime` function to ensure
392
- * it matches the expected time or is greater than a reference time.
393
- *
394
- * @param {Record<string, any>} targetObject - The object to verify values against.
395
- * @param {Record<string, any>} testValues - An object containing the expected key-value pairs.
396
- * @param {Date} referenceTime - A timestamp captured just before the updates, used for validating dates.
397
- *
398
- * @example
399
- * const targetObject = { key1: 'value1', created_at: new Date('2024-12-30T23:00:00Z') }
400
- * const testValues = { key1: 'value1', created_at: new Date('2024-12-30T23:00:00Z') }
401
- * const referenceTime = new Date()
402
- * verifyValues(targetObject, testValues, referenceTime)
403
- */
404
- export declare const verifyValues: (targetObject: Record<string, any>, testValues: Record<string, any>, referenceTime: Date) => void;
405
- /**
406
- * Comparison function to validate update time.
407
- * Allows the time to match the expected update time or be greater than a reference time.
408
- * Validates across multiple formats with a tolerance for minor discrepancies.
409
- * @param {Date} actualTime - The `updated_at` time returned from the storage.
410
- * @param {Date} expectedTime - The time you tried to set.
411
- * @param {Date} referenceTime - A timestamp captured just before the update attempt.
412
- * @param {number} toleranceMs - Optional tolerance in milliseconds for discrepancies (default: 10ms).
413
- * @param {boolean} [ logEnabled=false ] - A flag to enable or disable logging for this error.
414
-
415
- * @returns {boolean} - Returns `true` if the validation passes; `false` otherwise.
416
- * Logs human-readable details if the validation fails.
417
- */
418
- export declare const validateUpdateTime: (actualTime: Date, expectedTime: Date, referenceTime: Date, toleranceMs?: number, logEnabled?: boolean) => boolean;
419
- /**
420
- * Set whether logging should be enabled or disabled globally.
421
- *
422
- * @param {boolean} enabled - A flag to enable or disable logging.
423
- * `true` enables logging, `false` disables logging.
424
- *
425
- * @returns {void} This function does not return any value.
426
- *
427
- * @example
428
- * setLogging(true); // Enable logging
429
- * setLogging(false); // Disable logging
430
- */
431
- export declare const setLogging: (enabled: boolean) => void;
432
- /**
433
- * Logs the unique constraint error for multiple fields.
434
- *
435
- * @param {any} error - The error object that contains the error message.
436
- * @param {string} tableName - The name of the table where the constraint was violated.
437
- * @param {string[]} columnNames - An array of column names for which to check the unique constraint.
438
- * @param {boolean} logEnabled - A flag to enable or disable logging.
439
- */
440
- export declare const logUniqueConstraintError: (error: any, tableName: string, columnNames: string[], logEnabled?: boolean) => void;
441
- /**
442
- * Triggers a unique constraint error by attempting to update a row with a value that violates a unique constraint.
443
- *
444
- * @param {any} storage - The storage object, typically containing the database methods for performing CRUD operations.
445
- * @param {string} findMethod - The method name for finding rows in the table (e.g., `findProvenTxReqs`).
446
- * @param {string} updateMethod - The method name for updating rows in the table (e.g., `updateProvenTxReq`).
447
- * @param {string} tableName - The name of the table being updated.
448
- * @param {string} columnName - The column name for which the unique constraint is being tested.
449
- * @param {any} invalidValue - The value to assign to the column that should trigger the unique constraint error. This should be an object with the column name(s) as the key(s).
450
- * @param {number} [id=1] - The id used to set the column value during the test (default is 1).
451
- * @param {boolean} [ logEnabled=false ] - A flag to enable or disable logging during the test. Default is `true` (logging enabled).
452
- *
453
- * @returns {Promise<boolean>} This function returns true if error thrown otherwise false, it performs an async operation to test the unique constraint error.
454
- *
455
- * @throws {Error} Throws an error if the unique constraint error is not triggered or if the table has insufficient rows.
456
- *
457
- * @example await triggerUniqueConstraintError(storage, 'ProvenTxReq', 'proven_tx_reqs', 'provenTxReqId', { provenTxReqId: 42 }, 1, true)
458
- */
459
- export declare const triggerUniqueConstraintError: (storage: any, findMethod: string, updateMethod: string, tableName: string, columnName: string, invalidValue: any, // This remains an object passed in by the caller
460
- id?: number, logEnabled?: boolean) => Promise<boolean>;
461
- /**
462
- * Tests that the foreign key constraint error is triggered for any table and column.
463
- *
464
- * @param {any} storage - The storage object with the database methods for performing CRUD operations.
465
- * @param {string} findMethod - The method name for finding rows in the table (e.g., `findProvenTxReqs`).
466
- * @param {string} updateMethod - The method name for updating rows in the table (e.g., `updateProvenTxReq`).
467
- * @param {string} tableName - The name of the table being updated.
468
- * @param {string} columnName - The column name being tested for the foreign key constraint.
469
- * @param {any} invalidValue - The value to assign to the column that should trigger the foreign key constraint error. This should be an object with the column name as the key.
470
- * @param {number} [id=1] - The id used to set the column value during the test (default is 1).
471
- * @param {boolean} [ logEnabled=false ] - A flag to enable or disable logging during the test. Default is `true` (logging enabled).
472
- *
473
- * @returns {Promise<boolean>} This function returns true if error thrown otherwise false, it performs an async operation to test the foreign key constraint error.
474
- *
475
- * @throws {Error} Throws an error if the foreign key constraint error is not triggered.
476
- *
477
- * @example await triggerForeignKeyConstraintError(storage, 'findProvenTxReqs', 'updateProvenTxReq', 'proven_tx_reqs', 'provenTxId', { provenTxId: 42 })
478
- */
479
- export declare const triggerForeignKeyConstraintError: (storage: any, findMethod: string, updateMethod: string, tableName: string, columnName: string, invalidValue: any, id?: number, logEnabled?: boolean) => Promise<boolean>;
480
- /**
481
- * Aborts all transactions with the status `'nosend'` in the storage and verifies success.
482
- *
483
- * @param {Wallet} wallet - The wallet instance used to abort actions.
484
- * @param {StorageKnex} storage - The storage instance to query transactions from.
485
- * @returns {Promise<boolean>} - Resolves to `true` if all `'nosend'` transactions were successfully aborted.
486
- */
487
- export declare function cleanUnsentTransactionsUsingAbort(wallet: Wallet, storage: StorageKnex): Promise<boolean>;
488
- /**
489
- * Aborts all transactions with the status `'unsigned'` in the storage and verifies success.
490
- *
491
- * @param {Wallet} wallet - The wallet instance used to abort actions.
492
- * @param {StorageKnex} storage - The storage instance to query transactions from.
493
- * @returns {Promise<boolean>} - Resolves to `true` if all `'unsigned'` transactions were successfully aborted.
494
- */
495
- export declare function cleanUnsignedTransactionsUsingAbort(wallet: Wallet, storage: StorageKnex): Promise<boolean>;
496
- /**
497
- * Aborts all transactions with the status `'unprocessed'` in the storage and verifies success.
498
- *
499
- * @param {Wallet} wallet - The wallet instance used to abort actions.
500
- * @param {StorageKnex} storage - The storage instance to query transactions from.
501
- * @returns {Promise<boolean>} - Resolves to `true` if all `'unprocessed'` transactions were successfully aborted.
502
- */
503
- export declare function cleanUnprocessedTransactionsUsingAbort(wallet: Wallet, storage: StorageKnex): Promise<boolean>;
504
- /**
505
- * Normalize a date or ISO string to a consistent ISO string format.
506
- * @param value - The value to normalize (Date object or ISO string).
507
- * @returns ISO string or null if not a date-like value.
508
- */
509
- export declare const normalizeDate: (value: any) => string | null;
510
- export declare function logTransaction(storage: StorageKnex, txid: HexString): Promise<string>;
511
- export declare function logOutput(storage: StorageKnex, output: TableOutput): Promise<string>;
512
- export declare function logInput(storage: StorageKnex, prevOutputTxid: HexString, prevOutputVout: number, indentLevel?: number): Promise<string>;
513
- export declare function logBasket(basket: TableOutputBasket): string;
514
- export interface CreateTestWalletArgs {
515
- chain: Chain;
516
- rootKeyHex: string;
517
- filePath: string;
518
- addLocalBackup?: boolean;
519
- setActiveClient?: boolean;
520
- useMySQLConnectionForClient?: boolean;
521
- }
522
- //# sourceMappingURL=TestUtilsWalletStorage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TestUtilsWalletStorage.d.ts","sourceRoot":"","sources":["../../../../test/utils/TestUtilsWalletStorage.ts"],"names":[],"mappings":"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"}