@bsv/wallet-toolbox 1.6.2 → 1.6.3

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 (59) hide show
  1. package/CHANGELOG.md +4 -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/util/BulkFileDataManager.d.ts.map +1 -1
  9. package/mobile/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js +2 -3
  10. package/mobile/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js.map +1 -1
  11. package/mobile/package-lock.json +2 -2
  12. package/mobile/package.json +1 -1
  13. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.d.ts.map +1 -1
  14. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js +1 -2
  15. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js.map +1 -1
  16. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts.map +1 -1
  17. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js +2 -3
  18. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js.map +1 -1
  19. package/out/src/storage/__test/getBeefForTransaction.test.js.map +1 -1
  20. package/out/test/storage/idb/update.test.js +1 -1
  21. package/out/test/storage/idb/update.test.js.map +1 -1
  22. package/out/tsconfig.all.tsbuildinfo +1 -1
  23. package/package.json +1 -1
  24. package/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.ts +1 -2
  25. package/src/services/chaintracker/chaintracks/util/BulkFileDataManager.ts +2 -3
  26. package/src/storage/__test/getBeefForTransaction.test.ts +2 -5
  27. package/test/storage/idb/update.test.ts +1 -1
  28. package/mobile/out/src/Setup.d.ts +0 -267
  29. package/mobile/out/src/Setup.d.ts.map +0 -1
  30. package/mobile/out/src/Setup.js +0 -408
  31. package/mobile/out/src/Setup.js.map +0 -1
  32. package/mobile/out/src/storage/StorageKnex.d.ts +0 -179
  33. package/mobile/out/src/storage/StorageKnex.d.ts.map +0 -1
  34. package/mobile/out/src/storage/StorageKnex.js +0 -1215
  35. package/mobile/out/src/storage/StorageKnex.js.map +0 -1
  36. package/mobile/out/src/storage/methods/listActionsKnex.d.ts +0 -6
  37. package/mobile/out/src/storage/methods/listActionsKnex.d.ts.map +0 -1
  38. package/mobile/out/src/storage/methods/listActionsKnex.js +0 -198
  39. package/mobile/out/src/storage/methods/listActionsKnex.js.map +0 -1
  40. package/mobile/out/src/storage/methods/listOutputsKnex.d.ts +0 -6
  41. package/mobile/out/src/storage/methods/listOutputsKnex.d.ts.map +0 -1
  42. package/mobile/out/src/storage/methods/listOutputsKnex.js +0 -241
  43. package/mobile/out/src/storage/methods/listOutputsKnex.js.map +0 -1
  44. package/mobile/out/src/storage/methods/purgeData.d.ts +0 -4
  45. package/mobile/out/src/storage/methods/purgeData.d.ts.map +0 -1
  46. package/mobile/out/src/storage/methods/purgeData.js +0 -207
  47. package/mobile/out/src/storage/methods/purgeData.js.map +0 -1
  48. package/mobile/out/src/storage/methods/reviewStatus.d.ts +0 -20
  49. package/mobile/out/src/storage/methods/reviewStatus.d.ts.map +0 -1
  50. package/mobile/out/src/storage/methods/reviewStatus.js +0 -84
  51. package/mobile/out/src/storage/methods/reviewStatus.js.map +0 -1
  52. package/mobile/out/src/storage/schema/KnexMigrations.d.ts +0 -39
  53. package/mobile/out/src/storage/schema/KnexMigrations.d.ts.map +0 -1
  54. package/mobile/out/src/storage/schema/KnexMigrations.js +0 -410
  55. package/mobile/out/src/storage/schema/KnexMigrations.js.map +0 -1
  56. package/mobile/out/test/utils/TestUtilsWalletStorage.d.ts +0 -522
  57. package/mobile/out/test/utils/TestUtilsWalletStorage.d.ts.map +0 -1
  58. package/mobile/out/test/utils/TestUtilsWalletStorage.js +0 -1956
  59. package/mobile/out/test/utils/TestUtilsWalletStorage.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bsv/wallet-toolbox",
3
- "version": "1.6.2",
3
+ "version": "1.6.3",
4
4
  "description": "BRC100 conforming wallet, wallet storage and wallet signer components",
5
5
  "main": "./out/src/index.js",
6
6
  "types": "./out/src/index.d.ts",
@@ -6,7 +6,6 @@ import { BulkHeaderFileInfo } from '../util/BulkHeaderFile'
6
6
  import { BulkHeaderFilesInfo } from '../util/BulkHeaderFile'
7
7
  import { HeightRange, HeightRanges } from '../util/HeightRange'
8
8
  import { ChaintracksFetchApi } from '../Api/ChaintracksFetchApi'
9
- import { logger } from '../../../../../test/utils/TestUtilsWalletStorage'
10
9
  import { WalletError, WERR_INVALID_PARAMETER } from '../../../../sdk'
11
10
  import { validateBulkFileData } from '../util/blockHeaderUtilities'
12
11
  import { selectBulkHeaderFiles } from '../util/BulkFileDataManager'
@@ -168,7 +167,7 @@ export class BulkIngestorCDN extends BulkIngestorBase {
168
167
  for (const u of r.updated) {
169
168
  log += ` updated: ${u.fileName}, fileId=${u.fileId}\n`
170
169
  }
171
- logger(log)
170
+ console.log(log)
172
171
 
173
172
  return priorLiveHeaders
174
173
  }
@@ -16,7 +16,6 @@ import {
16
16
  } from './blockHeaderUtilities'
17
17
  import { ChaintracksStorageBulkFileApi } from '../Api/ChaintracksStorageApi'
18
18
  import { ChaintracksFetch } from './ChaintracksFetch'
19
- import { logger } from '../../../../../test/utils/TestUtilsWalletStorage'
20
19
  import { ChaintracksFsApi } from '../Api/ChaintracksFsApi'
21
20
  import { SingleWriterMultiReaderLock } from './SingleWriterMultiReaderLock'
22
21
 
@@ -110,7 +109,7 @@ export class BulkFileDataManager {
110
109
  log += ` url: ${url}\n`
111
110
  log += ` bulk range before: ${rangeBefore}\n`
112
111
  log += ` bulk range after: ${rangeAfter}\n`
113
- logger(log)
112
+ console.log(log)
114
113
  }
115
114
 
116
115
  async setStorage(storage: ChaintracksStorageBulkFileApi): Promise<void> {
@@ -188,7 +187,7 @@ export class BulkFileDataManager {
188
187
  }
189
188
  }
190
189
  }
191
- logger(`BulkFileDataManager.merge:\n${this.toLogString(r)}\n`)
190
+ console.log(`BulkFileDataManager.merge:\n${this.toLogString(r)}\n`)
192
191
  return r
193
192
  }
194
193
 
@@ -44,12 +44,9 @@ import {
44
44
  PurgeParams,
45
45
  PurgeResults,
46
46
  StorageGetBeefOptions,
47
- TrxToken,
47
+ TrxToken
48
48
  } from '../../sdk/WalletStorage.interfaces'
49
- import {
50
- ValidListActionsArgs,
51
- ValidListOutputsArgs
52
- } from '../../sdk/validationHelpers'
49
+ import { ValidListActionsArgs, ValidListOutputsArgs } from '../../sdk/validationHelpers'
53
50
 
54
51
  describe('getBeefForTransaction tests', () => {
55
52
  jest.setTimeout(99999999)
@@ -501,7 +501,7 @@ describe('idb update tests', () => {
501
501
  })
502
502
 
503
503
  test('7a updateTransactionStatus', async () => {
504
- const { activeStorage: storage } = await _tu.createLegacyWalletSQLiteCopy('updateTransactionStatus7a')
504
+ const { activeStorage: storage } = await _tu.createLegacyWalletSQLiteCopy('idb_updateTransactionStatus7a')
505
505
 
506
506
  let tx = verifyOne(
507
507
  await storage.findTransactions({
@@ -1,267 +0,0 @@
1
- import { Knex } from 'knex';
2
- import { KeyPairAddress, SetupWallet, SetupWalletClient } from './SetupWallet';
3
- import { BEEF, CreateActionOptions, CreateActionOutput, CreateActionResult, KeyDeriverApi, LockingScript, PrivateKey, ScriptTemplateUnlock, WalletInterface } from '@bsv/sdk';
4
- import { Chain } from './sdk/types';
5
- import { WalletStorageManager } from './storage/WalletStorageManager';
6
- import { Services } from './services/Services';
7
- import { Monitor } from './monitor/Monitor';
8
- import { Wallet } from './Wallet';
9
- import { StorageKnex } from './storage/StorageKnex';
10
- import { WalletStorageProvider } from './sdk/WalletStorage.interfaces';
11
- /**
12
- * The 'Setup` class provides static setup functions to construct BRC-100 compatible
13
- * wallets in a variety of configurations.
14
- *
15
- * It serves as a starting point for experimentation and customization.
16
- */
17
- export declare abstract class Setup {
18
- /**
19
- * @param chain
20
- * @returns true if .env is not valid for chain
21
- */
22
- static noEnv(chain: Chain): boolean;
23
- /**
24
- * Creates content for .env file with some private keys, identity keys, sample API keys, and sample MySQL connection string.
25
- *
26
- * Two new, random private keys are generated each time, with their associated public identity keys.
27
- *
28
- * Loading secrets from a .env file is intended only for experimentation and getting started.
29
- * Private keys should never be included directly in your source code.
30
- *
31
- * @publicbody
32
- */
33
- static makeEnv(): string;
34
- /**
35
- * Reads a .env file of the format created by `makeEnv`.
36
- *
37
- * Returns values for designated `chain`.
38
- *
39
- * Access private keys through the `devKeys` object: `devKeys[identityKey]`
40
- *
41
- * @param chain Which chain to use: 'test' or 'main'
42
- * @returns {SetupEnv} with configuration environment secrets used by `Setup` functions.
43
- *
44
- * @publicbody
45
- */
46
- static getEnv(chain: Chain): SetupEnv;
47
- /**
48
- * Create a `Wallet`. Storage can optionally be provided or configured later.
49
- *
50
- * The following components are configured: KeyDeriver, WalletStorageManager, WalletService, WalletStorage.
51
- * Optionally, PrivilegedKeyManager is also configured.
52
- *
53
- * @publicbody
54
- */
55
- static createWallet(args: SetupWalletArgs): Promise<SetupWallet>;
56
- /**
57
- * Setup a new `Wallet` without requiring a .env file.
58
- *
59
- * @param args.chain - 'main' or 'test'
60
- * @param args.rootKeyHex - Root private key for wallet's key deriver.
61
- * @param args.storageUrl - Optional. `StorageClient` and `chain` compatible endpoint URL.
62
- * @param args.privilegedKeyGetter - Optional. Method that will return the privileged `PrivateKey`, on demand.
63
- */
64
- static createWalletClientNoEnv(args: {
65
- chain: Chain;
66
- rootKeyHex: string;
67
- storageUrl?: string;
68
- privilegedKeyGetter?: () => Promise<PrivateKey>;
69
- }): Promise<Wallet>;
70
- /**
71
- * @publicbody
72
- */
73
- static createWalletClient(args: SetupWalletClientArgs): Promise<SetupWalletClient>;
74
- /**
75
- * @publicbody
76
- */
77
- static getKeyPair(priv?: string | PrivateKey): KeyPairAddress;
78
- /**
79
- * @publicbody
80
- */
81
- static getLockP2PKH(address: string): LockingScript;
82
- /**
83
- * @publicbody
84
- */
85
- static getUnlockP2PKH(priv: PrivateKey, satoshis: number): ScriptTemplateUnlock;
86
- /**
87
- * @publicbody
88
- */
89
- static createP2PKHOutputs(outputs: {
90
- address: string;
91
- satoshis: number;
92
- outputDescription?: string;
93
- basket?: string;
94
- tags?: string[];
95
- }[]): CreateActionOutput[];
96
- /**
97
- * @publicbody
98
- */
99
- static createP2PKHOutputsAction(wallet: WalletInterface, outputs: {
100
- address: string;
101
- satoshis: number;
102
- outputDescription?: string;
103
- basket?: string;
104
- tags?: string[];
105
- }[], options?: CreateActionOptions): Promise<{
106
- cr: CreateActionResult;
107
- outpoints: string[] | undefined;
108
- }>;
109
- /**
110
- * @publicbody
111
- */
112
- static fundWalletFromP2PKHOutpoints(wallet: WalletInterface, outpoints: string[], p2pkhKey: KeyPairAddress, inputBEEF?: BEEF): Promise<void>;
113
- /**
114
- * Adds `Knex` based storage to a `Wallet` configured by `Setup.createWalletOnly`
115
- *
116
- * @param args.knex `Knex` object configured for either MySQL or SQLite database access.
117
- * Schema will be created and migrated as needed.
118
- * For MySQL, a schema corresponding to databaseName must exist with full access permissions.
119
- * @param args.databaseName Name for this storage. For MySQL, the schema name within the MySQL instance.
120
- * @param args.chain Which chain this wallet is on: 'main' or 'test'. Defaults to 'test'.
121
- * @param args.rootKeyHex
122
- *
123
- * @publicbody
124
- */
125
- static createWalletKnex(args: SetupWalletKnexArgs): Promise<SetupWalletKnex>;
126
- /**
127
- * @returns {StorageKnex} - `Knex` based storage provider for a wallet. May be used for either active storage or backup storage.
128
- */
129
- static createStorageKnex(args: SetupWalletKnexArgs): Promise<StorageKnex>;
130
- /**
131
- * @publicbody
132
- */
133
- static createSQLiteKnex(filename: string): Knex;
134
- /**
135
- * @publicbody
136
- */
137
- static createMySQLKnex(connection: string, database?: string): Knex;
138
- /**
139
- * @publicbody
140
- */
141
- static createWalletMySQL(args: SetupWalletMySQLArgs): Promise<SetupWalletKnex>;
142
- /**
143
- * @publicbody
144
- */
145
- static createWalletSQLite(args: SetupWalletSQLiteArgs): Promise<SetupWalletKnex>;
146
- }
147
- /**
148
- * Arguments used by `createWallet` to construct a `SetupWallet`.
149
- *
150
- * Extension `SetupWalletClientArgs` used by `createWalletClient` to construct a `SetupWalletClient`.
151
- *
152
- * Extension `SetupWalletKnexArgs` used by `createWalletKnex` to construct a `SetupWalletKnex`.
153
- *
154
- * Extension `SetupWalletMySQLArgs` used by `createWalletMySQL` to construct a `SetupWalletKnex`.
155
- *
156
- * Extension `SetupWalletSQLiteArgs` used by `createWalletSQLite` to construct a `SetupWalletKnex`.
157
- */
158
- export interface SetupWalletArgs {
159
- /**
160
- * Configuration "secrets" typically obtained by `Setup.makeEnv` and `Setup.getEnv` functions.
161
- */
162
- env: SetupEnv;
163
- /**
164
- * Optional. The non-privileged private key used to initialize the `KeyDeriver` and determine the `identityKey`.
165
- * Defaults to `env.devKeys[env.identityKey]
166
- */
167
- rootKeyHex?: string;
168
- /**
169
- * Optional. The privileged private key getter used to initialize the `PrivilegedKeyManager`.
170
- * Defaults to undefined.
171
- */
172
- privilegedKeyGetter?: () => Promise<PrivateKey>;
173
- /**
174
- * Optional. Active wallet storage. Can be added later.
175
- */
176
- active?: WalletStorageProvider;
177
- /**
178
- * Optional. One or more storage providers managed as backup destinations. Can be added later.
179
- */
180
- backups?: WalletStorageProvider[];
181
- }
182
- /**
183
- *
184
- */
185
- export interface SetupWalletKnexArgs extends SetupWalletArgs {
186
- knex: Knex<any, any[]>;
187
- databaseName: string;
188
- }
189
- /**
190
- *
191
- */
192
- export interface SetupWalletMySQLArgs extends SetupWalletArgs {
193
- databaseName: string;
194
- }
195
- /**
196
- *
197
- */
198
- export interface SetupWalletSQLiteArgs extends SetupWalletArgs {
199
- filePath: string;
200
- databaseName: string;
201
- }
202
- /**
203
- *
204
- */
205
- export interface SetupWalletKnex extends SetupWallet {
206
- activeStorage: StorageKnex;
207
- userId: number;
208
- rootKey: PrivateKey;
209
- identityKey: string;
210
- keyDeriver: KeyDeriverApi;
211
- chain: Chain;
212
- storage: WalletStorageManager;
213
- services: Services;
214
- monitor: Monitor;
215
- wallet: Wallet;
216
- }
217
- /**
218
- * `SetupEnv` provides a starting point for managing secrets that
219
- * must not appear in source code.
220
- *
221
- * The `makeEnv` and `getEnv` functions of the `Setup` and `SetupClient` classes
222
- * provide an easy way to create and import these secrets and related properties.
223
- */
224
- export interface SetupEnv {
225
- /**
226
- * The chan being accessed: 'main' for mainnet, 'test' for 'testnet'.
227
- */
228
- chain: Chain;
229
- /**
230
- * The user's primary identity key (public key).
231
- */
232
- identityKey: string;
233
- /**
234
- * A secondary identity key (public key), used to test exchanges with other users.
235
- */
236
- identityKey2: string;
237
- /**
238
- * Filepath to sqlite file to be used for identityKey wallet.
239
- */
240
- filePath: string | undefined;
241
- /**
242
- * A vaild TAAL API key for use by `Services`
243
- */
244
- taalApiKey: string;
245
- /**
246
- * A map of public keys (identity keys, hex strings) to private keys (hex strings).
247
- */
248
- devKeys: Record<string, string>;
249
- /**
250
- * A MySQL connection string including user and password properties.
251
- * Must be valid to make use of MySQL `Setup` class support.
252
- */
253
- mySQLConnection: string;
254
- }
255
- /**
256
- * Extension `SetupWalletClientArgs` of `SetupWalletArgs` is used by `createWalletClient`
257
- * to construct a `SetupWalletClient`.
258
- */
259
- export interface SetupWalletClientArgs extends SetupWalletArgs {
260
- /**
261
- * The endpoint URL of a service hosting the `StorageServer` JSON-RPC service to
262
- * which a `StorageClient` instance should connect to function as
263
- * the active storage provider of the newly created wallet.
264
- */
265
- endpointUrl?: string;
266
- }
267
- //# sourceMappingURL=Setup.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Setup.d.ts","sourceRoot":"","sources":["../../../src/Setup.ts"],"names":[],"mappings":"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"}