@bsv/wallet-toolbox 1.6.32 → 1.6.34

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 (126) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/docs/client.md +340 -93
  3. package/docs/monitor.md +34 -12
  4. package/docs/storage.md +49 -1
  5. package/docs/wallet.md +340 -93
  6. package/mobile/out/src/monitor/Monitor.d.ts +8 -0
  7. package/mobile/out/src/monitor/Monitor.d.ts.map +1 -1
  8. package/mobile/out/src/monitor/Monitor.js +8 -0
  9. package/mobile/out/src/monitor/Monitor.js.map +1 -1
  10. package/mobile/out/src/monitor/tasks/TaskReorg.d.ts +8 -12
  11. package/mobile/out/src/monitor/tasks/TaskReorg.d.ts.map +1 -1
  12. package/mobile/out/src/monitor/tasks/TaskReorg.js +20 -73
  13. package/mobile/out/src/monitor/tasks/TaskReorg.js.map +1 -1
  14. package/mobile/out/src/sdk/WERR_errors.d.ts +8 -0
  15. package/mobile/out/src/sdk/WERR_errors.d.ts.map +1 -1
  16. package/mobile/out/src/sdk/WERR_errors.js +33 -0
  17. package/mobile/out/src/sdk/WERR_errors.js.map +1 -1
  18. package/mobile/out/src/sdk/WalletError.d.ts +19 -0
  19. package/mobile/out/src/sdk/WalletError.d.ts.map +1 -1
  20. package/mobile/out/src/sdk/WalletError.js +42 -1
  21. package/mobile/out/src/sdk/WalletError.js.map +1 -1
  22. package/mobile/out/src/sdk/WalletErrorFromJson.d.ts +12 -0
  23. package/mobile/out/src/sdk/WalletErrorFromJson.d.ts.map +1 -0
  24. package/mobile/out/src/sdk/WalletErrorFromJson.js +69 -0
  25. package/mobile/out/src/sdk/WalletErrorFromJson.js.map +1 -0
  26. package/mobile/out/src/sdk/WalletStorage.interfaces.d.ts +49 -0
  27. package/mobile/out/src/sdk/WalletStorage.interfaces.d.ts.map +1 -1
  28. package/mobile/out/src/sdk/index.d.ts +1 -0
  29. package/mobile/out/src/sdk/index.d.ts.map +1 -1
  30. package/mobile/out/src/sdk/index.js +1 -0
  31. package/mobile/out/src/sdk/index.js.map +1 -1
  32. package/mobile/out/src/services/chaintracker/ChaintracksChainTracker.js +1 -1
  33. package/mobile/out/src/services/chaintracker/ChaintracksChainTracker.js.map +1 -1
  34. package/mobile/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts.map +1 -1
  35. package/mobile/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js +16 -9
  36. package/mobile/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js.map +1 -1
  37. package/mobile/out/src/storage/StorageProvider.d.ts.map +1 -1
  38. package/mobile/out/src/storage/StorageProvider.js +4 -0
  39. package/mobile/out/src/storage/StorageProvider.js.map +1 -1
  40. package/mobile/out/src/storage/WalletStorageManager.d.ts +34 -2
  41. package/mobile/out/src/storage/WalletStorageManager.d.ts.map +1 -1
  42. package/mobile/out/src/storage/WalletStorageManager.js +146 -0
  43. package/mobile/out/src/storage/WalletStorageManager.js.map +1 -1
  44. package/mobile/out/src/storage/remoting/StorageClient.d.ts.map +1 -1
  45. package/mobile/out/src/storage/remoting/StorageClient.js +3 -5
  46. package/mobile/out/src/storage/remoting/StorageClient.js.map +1 -1
  47. package/mobile/package-lock.json +2 -2
  48. package/mobile/package.json +1 -1
  49. package/out/src/monitor/Monitor.d.ts +8 -0
  50. package/out/src/monitor/Monitor.d.ts.map +1 -1
  51. package/out/src/monitor/Monitor.js +8 -0
  52. package/out/src/monitor/Monitor.js.map +1 -1
  53. package/out/src/monitor/tasks/TaskReorg.d.ts +8 -12
  54. package/out/src/monitor/tasks/TaskReorg.d.ts.map +1 -1
  55. package/out/src/monitor/tasks/TaskReorg.js +20 -73
  56. package/out/src/monitor/tasks/TaskReorg.js.map +1 -1
  57. package/out/src/sdk/WERR_errors.d.ts +8 -0
  58. package/out/src/sdk/WERR_errors.d.ts.map +1 -1
  59. package/out/src/sdk/WERR_errors.js +33 -0
  60. package/out/src/sdk/WERR_errors.js.map +1 -1
  61. package/out/src/sdk/WalletError.d.ts +19 -0
  62. package/out/src/sdk/WalletError.d.ts.map +1 -1
  63. package/out/src/sdk/WalletError.js +42 -1
  64. package/out/src/sdk/WalletError.js.map +1 -1
  65. package/out/src/sdk/WalletErrorFromJson.d.ts +12 -0
  66. package/out/src/sdk/WalletErrorFromJson.d.ts.map +1 -0
  67. package/out/src/sdk/WalletErrorFromJson.js +69 -0
  68. package/out/src/sdk/WalletErrorFromJson.js.map +1 -0
  69. package/out/src/sdk/WalletStorage.interfaces.d.ts +49 -0
  70. package/out/src/sdk/WalletStorage.interfaces.d.ts.map +1 -1
  71. package/out/src/sdk/__test/WalletError.test.d.ts +2 -0
  72. package/out/src/sdk/__test/WalletError.test.d.ts.map +1 -0
  73. package/out/src/sdk/__test/WalletError.test.js +255 -0
  74. package/out/src/sdk/__test/WalletError.test.js.map +1 -0
  75. package/out/src/sdk/index.d.ts +1 -0
  76. package/out/src/sdk/index.d.ts.map +1 -1
  77. package/out/src/sdk/index.js +1 -0
  78. package/out/src/sdk/index.js.map +1 -1
  79. package/out/src/services/__tests/verifyBeef.test.js +7 -0
  80. package/out/src/services/__tests/verifyBeef.test.js.map +1 -1
  81. package/out/src/services/chaintracker/ChaintracksChainTracker.js +1 -1
  82. package/out/src/services/chaintracker/ChaintracksChainTracker.js.map +1 -1
  83. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts.map +1 -1
  84. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js +16 -9
  85. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js.map +1 -1
  86. package/out/src/storage/StorageProvider.d.ts.map +1 -1
  87. package/out/src/storage/StorageProvider.js +4 -0
  88. package/out/src/storage/StorageProvider.js.map +1 -1
  89. package/out/src/storage/WalletStorageManager.d.ts +34 -2
  90. package/out/src/storage/WalletStorageManager.d.ts.map +1 -1
  91. package/out/src/storage/WalletStorageManager.js +146 -0
  92. package/out/src/storage/WalletStorageManager.js.map +1 -1
  93. package/out/src/storage/__test/getBeefForTransaction.test.js +10 -0
  94. package/out/src/storage/__test/getBeefForTransaction.test.js.map +1 -1
  95. package/out/src/storage/remoting/StorageClient.d.ts.map +1 -1
  96. package/out/src/storage/remoting/StorageClient.js +3 -5
  97. package/out/src/storage/remoting/StorageClient.js.map +1 -1
  98. package/out/src/storage/remoting/StorageServer.d.ts.map +1 -1
  99. package/out/src/storage/remoting/StorageServer.js +12 -10
  100. package/out/src/storage/remoting/StorageServer.js.map +1 -1
  101. package/out/src/storage/schema/KnexMigrations.d.ts.map +1 -1
  102. package/out/src/storage/schema/KnexMigrations.js +12 -0
  103. package/out/src/storage/schema/KnexMigrations.js.map +1 -1
  104. package/out/test/Wallet/specOps/specOps.man.test.js +8 -6
  105. package/out/test/Wallet/specOps/specOps.man.test.js.map +1 -1
  106. package/out/tsconfig.all.tsbuildinfo +1 -1
  107. package/package.json +1 -1
  108. package/src/monitor/Monitor.ts +8 -0
  109. package/src/monitor/tasks/TaskReorg.ts +20 -70
  110. package/src/sdk/WERR_errors.ts +34 -0
  111. package/src/sdk/WalletError.ts +42 -1
  112. package/src/sdk/WalletErrorFromJson.ts +80 -0
  113. package/src/sdk/WalletStorage.interfaces.ts +44 -0
  114. package/src/sdk/__test/WalletError.test.ts +318 -0
  115. package/src/sdk/index.ts +1 -0
  116. package/src/services/__tests/verifyBeef.test.ts +10 -1
  117. package/src/services/chaintracker/ChaintracksChainTracker.ts +1 -1
  118. package/src/services/chaintracker/chaintracks/util/ChaintracksFetch.ts +18 -11
  119. package/src/storage/StorageProvider.ts +4 -0
  120. package/src/storage/WalletStorageManager.ts +158 -0
  121. package/src/storage/__test/getBeefForTransaction.test.ts +11 -2
  122. package/src/storage/methods/internalizeAction.ts +1 -1
  123. package/src/storage/remoting/StorageClient.ts +4 -6
  124. package/src/storage/remoting/StorageServer.ts +13 -11
  125. package/src/storage/schema/KnexMigrations.ts +13 -0
  126. package/test/Wallet/specOps/specOps.man.test.ts +6 -4
@@ -14,6 +14,7 @@ import { StorageProvider } from '../StorageProvider'
14
14
  import { WERR_UNAUTHORIZED } from '../../sdk/WERR_errors'
15
15
  import { SyncChunk } from '../../sdk/WalletStorage.interfaces'
16
16
  import { EntityTimeStamp } from '../../sdk/types'
17
+ import { WalletError } from '../../sdk/WalletError'
17
18
 
18
19
  export interface WalletStorageServerOptions {
19
20
  port: number
@@ -165,19 +166,20 @@ export class StorageServer {
165
166
  id
166
167
  })
167
168
  }
168
- } catch (error) {
169
- // Catch any thrown errors from the local walletStorage method
170
- const err = error as Error
169
+ } catch (error: unknown) {
170
+ /**
171
+ * Catch any thrown errors from the local walletStorage method.
172
+ *
173
+ * Convert errors to standard JSON object format that can be converted
174
+ * back to WalletError derived objects on the client side and re-thrown.
175
+ *
176
+ * Uses WalletError.fromJson(<error object>) on the client side to re-create
177
+ * an error object of the right class and properties.
178
+ */
179
+ const json = WalletError.unknownToJson(error)
171
180
  return res.status(200).json({
172
181
  jsonrpc: '2.0',
173
- error: {
174
- code: -32000,
175
- message: err.message,
176
- data: {
177
- name: err.name,
178
- stack: err.stack
179
- }
180
- },
182
+ error: JSON.parse(json),
181
183
  id
182
184
  })
183
185
  }
@@ -73,6 +73,19 @@ export class KnexMigrations implements MigrationSource<string> {
73
73
  }
74
74
  }
75
75
 
76
+ migrations['2025-10-13-001 add outputs spendable index'] = {
77
+ async up(knex) {
78
+ await knex.schema.alterTable('outputs', table => {
79
+ table.index('spendable')
80
+ })
81
+ },
82
+ async down(knex) {
83
+ await knex.schema.alterTable('outputs', table => {
84
+ table.dropIndex('spendable')
85
+ })
86
+ }
87
+ }
88
+
76
89
  migrations['2025-10-18-002 add proven_tx_reqs txid index'] = {
77
90
  async up(knex) {
78
91
  await knex.schema.alterTable('proven_tx_reqs', table => {
@@ -200,13 +200,15 @@ describe('specOps tests', () => {
200
200
 
201
201
  async function createSetup(chain: sdk.Chain): Promise<TestWalletNoSetup> {
202
202
  const env = _tu.getEnv(chain)
203
- if (!env.testIdentityKey) throw new sdk.WERR_INVALID_PARAMETER('env.testIdentityKey', 'valid')
204
- if (!env.testFilePath) throw new sdk.WERR_INVALID_PARAMETER('env.testFilePath', 'valid')
203
+ const identityKey = chain === 'test' ? env.testIdentityKey : env.identityKey
204
+ const filePath = chain === 'test' ? env.testFilePath : env.filePath
205
+ if (!identityKey) throw new sdk.WERR_INVALID_PARAMETER('identityKey', 'valid for chain ' + chain)
206
+ if (!filePath) throw new sdk.WERR_INVALID_PARAMETER('filePath', 'valid for chain ' + chain)
205
207
 
206
208
  const setup = await _tu.createTestWallet({
207
209
  chain,
208
- rootKeyHex: env.devKeys[env.testIdentityKey],
209
- filePath: env.testFilePath,
210
+ rootKeyHex: env.devKeys[identityKey],
211
+ filePath,
210
212
  setActiveClient: false,
211
213
  addLocalBackup: false,
212
214
  useMySQLConnectionForClient: false