@bsv/wallet-toolbox 1.3.23 → 1.3.24

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 (184) hide show
  1. package/docs/client.md +99 -59
  2. package/docs/storage.md +55 -75
  3. package/docs/wallet.md +99 -59
  4. package/mobile/out/src/Wallet.d.ts +1 -1
  5. package/mobile/out/src/Wallet.d.ts.map +1 -1
  6. package/mobile/out/src/Wallet.js +16 -6
  7. package/mobile/out/src/Wallet.js.map +1 -1
  8. package/mobile/out/src/monitor/Monitor.d.ts.map +1 -1
  9. package/mobile/out/src/monitor/Monitor.js +2 -4
  10. package/mobile/out/src/monitor/Monitor.js.map +1 -1
  11. package/mobile/out/src/monitor/tasks/TaskNewHeader.d.ts +1 -1
  12. package/mobile/out/src/monitor/tasks/TaskNewHeader.d.ts.map +1 -1
  13. package/mobile/out/src/sdk/WalletStorage.interfaces.d.ts +14 -1
  14. package/mobile/out/src/sdk/WalletStorage.interfaces.d.ts.map +1 -1
  15. package/mobile/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.d.ts.map +1 -0
  16. package/mobile/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.js.map +1 -0
  17. package/mobile/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts +1 -1
  18. package/mobile/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts.map +1 -1
  19. package/mobile/out/src/services/chaintracker/chaintracks/index.d.ts +1 -1
  20. package/mobile/out/src/services/chaintracker/chaintracks/index.d.ts.map +1 -1
  21. package/mobile/out/src/services/chaintracker/chaintracks/index.js +1 -1
  22. package/mobile/out/src/services/chaintracker/chaintracks/index.js.map +1 -1
  23. package/mobile/out/src/signer/methods/internalizeAction.d.ts +2 -2
  24. package/mobile/out/src/signer/methods/internalizeAction.d.ts.map +1 -1
  25. package/mobile/out/src/signer/methods/internalizeAction.js.map +1 -1
  26. package/mobile/out/src/storage/StorageProvider.d.ts +5 -6
  27. package/mobile/out/src/storage/StorageProvider.d.ts.map +1 -1
  28. package/mobile/out/src/storage/StorageProvider.js +75 -101
  29. package/mobile/out/src/storage/StorageProvider.js.map +1 -1
  30. package/mobile/out/src/storage/WalletStorageManager.d.ts +2 -2
  31. package/mobile/out/src/storage/WalletStorageManager.d.ts.map +1 -1
  32. package/mobile/out/src/storage/methods/generateChange.d.ts +0 -24
  33. package/mobile/out/src/storage/methods/generateChange.d.ts.map +1 -1
  34. package/mobile/out/src/storage/methods/generateChange.js +2 -50
  35. package/mobile/out/src/storage/methods/generateChange.js.map +1 -1
  36. package/mobile/out/src/storage/methods/getBeefForTransaction.js +3 -2
  37. package/mobile/out/src/storage/methods/getBeefForTransaction.js.map +1 -1
  38. package/mobile/out/src/storage/methods/internalizeAction.d.ts +2 -10
  39. package/mobile/out/src/storage/methods/internalizeAction.d.ts.map +1 -1
  40. package/mobile/out/src/storage/methods/internalizeAction.js +16 -1
  41. package/mobile/out/src/storage/methods/internalizeAction.js.map +1 -1
  42. package/mobile/out/src/storage/methods/processAction.d.ts +16 -1
  43. package/mobile/out/src/storage/methods/processAction.d.ts.map +1 -1
  44. package/mobile/out/src/storage/methods/processAction.js +4 -1
  45. package/mobile/out/src/storage/methods/processAction.js.map +1 -1
  46. package/mobile/out/src/storage/methods/utils.d.ts +25 -0
  47. package/mobile/out/src/storage/methods/utils.d.ts.map +1 -0
  48. package/mobile/out/src/storage/methods/utils.js +53 -0
  49. package/mobile/out/src/storage/methods/utils.js.map +1 -0
  50. package/mobile/out/src/storage/remoting/StorageClient.d.ts +2 -2
  51. package/mobile/out/src/storage/remoting/StorageClient.d.ts.map +1 -1
  52. package/mobile/out/src/storage/remoting/StorageClient.js.map +1 -1
  53. package/mobile/out/src/storage/remoting/StorageMobile.d.ts +2 -2
  54. package/mobile/out/src/storage/remoting/StorageMobile.d.ts.map +1 -1
  55. package/mobile/out/src/storage/remoting/StorageMobile.js.map +1 -1
  56. package/mobile/out/src/utility/utilityHelpers.d.ts +1 -1
  57. package/mobile/out/src/utility/utilityHelpers.d.ts.map +1 -1
  58. package/mobile/out/src/utility/utilityHelpers.js +3 -3
  59. package/mobile/out/src/utility/utilityHelpers.js.map +1 -1
  60. package/mobile/package-lock.json +2 -2
  61. package/mobile/package.json +1 -1
  62. package/out/src/Wallet.d.ts +1 -1
  63. package/out/src/Wallet.d.ts.map +1 -1
  64. package/out/src/Wallet.js +16 -6
  65. package/out/src/Wallet.js.map +1 -1
  66. package/out/src/monitor/Monitor.d.ts.map +1 -1
  67. package/out/src/monitor/Monitor.js +2 -4
  68. package/out/src/monitor/Monitor.js.map +1 -1
  69. package/out/src/monitor/tasks/TaskNewHeader.d.ts +1 -1
  70. package/out/src/monitor/tasks/TaskNewHeader.d.ts.map +1 -1
  71. package/out/src/sdk/WalletStorage.interfaces.d.ts +14 -1
  72. package/out/src/sdk/WalletStorage.interfaces.d.ts.map +1 -1
  73. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.d.ts.map +1 -0
  74. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.js.map +1 -0
  75. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts +1 -1
  76. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts.map +1 -1
  77. package/out/src/services/chaintracker/chaintracks/index.d.ts +1 -1
  78. package/out/src/services/chaintracker/chaintracks/index.d.ts.map +1 -1
  79. package/out/src/services/chaintracker/chaintracks/index.js +1 -1
  80. package/out/src/services/chaintracker/chaintracks/index.js.map +1 -1
  81. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts +144 -0
  82. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts.map +1 -0
  83. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js +463 -0
  84. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js.map +1 -0
  85. package/out/src/services/chaintracker/chaintracks/util/dirtyHashes.d.ts +20 -0
  86. package/out/src/services/chaintracker/chaintracks/util/dirtyHashes.d.ts.map +1 -0
  87. package/out/src/services/chaintracker/chaintracks/util/dirtyHashes.js +31 -0
  88. package/out/src/services/chaintracker/chaintracks/util/dirtyHashes.js.map +1 -0
  89. package/out/src/signer/methods/internalizeAction.d.ts +2 -2
  90. package/out/src/signer/methods/internalizeAction.d.ts.map +1 -1
  91. package/out/src/signer/methods/internalizeAction.js.map +1 -1
  92. package/out/src/storage/StorageProvider.d.ts +5 -6
  93. package/out/src/storage/StorageProvider.d.ts.map +1 -1
  94. package/out/src/storage/StorageProvider.js +75 -101
  95. package/out/src/storage/StorageProvider.js.map +1 -1
  96. package/out/src/storage/WalletStorageManager.d.ts +2 -2
  97. package/out/src/storage/WalletStorageManager.d.ts.map +1 -1
  98. package/out/src/storage/__test/StorageIdb.test.js +1 -0
  99. package/out/src/storage/__test/StorageIdb.test.js.map +1 -1
  100. package/out/src/storage/__test/adminStats.man.test.js +2 -0
  101. package/out/src/storage/__test/adminStats.man.test.js.map +1 -1
  102. package/out/src/storage/methods/generateChange.d.ts +0 -24
  103. package/out/src/storage/methods/generateChange.d.ts.map +1 -1
  104. package/out/src/storage/methods/generateChange.js +2 -50
  105. package/out/src/storage/methods/generateChange.js.map +1 -1
  106. package/out/src/storage/methods/getBeefForTransaction.js +3 -2
  107. package/out/src/storage/methods/getBeefForTransaction.js.map +1 -1
  108. package/out/src/storage/methods/internalizeAction.d.ts +2 -10
  109. package/out/src/storage/methods/internalizeAction.d.ts.map +1 -1
  110. package/out/src/storage/methods/internalizeAction.js +16 -1
  111. package/out/src/storage/methods/internalizeAction.js.map +1 -1
  112. package/out/src/storage/methods/processAction.d.ts +16 -1
  113. package/out/src/storage/methods/processAction.d.ts.map +1 -1
  114. package/out/src/storage/methods/processAction.js +4 -1
  115. package/out/src/storage/methods/processAction.js.map +1 -1
  116. package/out/src/storage/methods/utils.Buffer.d.ts +21 -0
  117. package/out/src/storage/methods/utils.Buffer.d.ts.map +1 -0
  118. package/out/src/storage/methods/utils.Buffer.js +37 -0
  119. package/out/src/storage/methods/utils.Buffer.js.map +1 -0
  120. package/out/src/storage/methods/utils.d.ts +25 -0
  121. package/out/src/storage/methods/utils.d.ts.map +1 -0
  122. package/out/src/storage/methods/utils.js +53 -0
  123. package/out/src/storage/methods/utils.js.map +1 -0
  124. package/out/src/storage/remoting/StorageClient.d.ts +2 -2
  125. package/out/src/storage/remoting/StorageClient.d.ts.map +1 -1
  126. package/out/src/storage/remoting/StorageClient.js.map +1 -1
  127. package/out/src/storage/remoting/StorageMobile.d.ts +2 -2
  128. package/out/src/storage/remoting/StorageMobile.d.ts.map +1 -1
  129. package/out/src/storage/remoting/StorageMobile.js.map +1 -1
  130. package/out/src/utility/Format.d.ts +14 -0
  131. package/out/src/utility/Format.d.ts.map +1 -0
  132. package/out/src/utility/Format.js +167 -0
  133. package/out/src/utility/Format.js.map +1 -0
  134. package/out/src/utility/utilityHelpers.d.ts +1 -1
  135. package/out/src/utility/utilityHelpers.d.ts.map +1 -1
  136. package/out/src/utility/utilityHelpers.js +3 -3
  137. package/out/src/utility/utilityHelpers.js.map +1 -1
  138. package/out/test/Wallet/support/operations.man.test.js +18 -138
  139. package/out/test/Wallet/support/operations.man.test.js.map +1 -1
  140. package/out/test/Wallet/support/reqErrorReview.2025.05.06.man.test.d.ts +2 -0
  141. package/out/test/Wallet/support/reqErrorReview.2025.05.06.man.test.d.ts.map +1 -0
  142. package/out/test/Wallet/support/reqErrorReview.2025.05.06.man.test.js +385 -0
  143. package/out/test/Wallet/support/reqErrorReview.2025.05.06.man.test.js.map +1 -0
  144. package/out/test/utils/TestUtilsWalletStorage.d.ts +5 -0
  145. package/out/test/utils/TestUtilsWalletStorage.d.ts.map +1 -1
  146. package/out/test/utils/TestUtilsWalletStorage.js +20 -0
  147. package/out/test/utils/TestUtilsWalletStorage.js.map +1 -1
  148. package/out/tsconfig.all.tsbuildinfo +1 -1
  149. package/package.json +1 -1
  150. package/src/Wallet.ts +25 -10
  151. package/src/monitor/Monitor.ts +2 -4
  152. package/src/monitor/tasks/TaskNewHeader.ts +1 -1
  153. package/src/sdk/WalletStorage.interfaces.ts +16 -1
  154. package/src/services/chaintracker/chaintracks/ChaintracksServiceClient.ts +1 -1
  155. package/src/services/chaintracker/chaintracks/index.ts +1 -1
  156. package/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.ts +490 -0
  157. package/src/services/chaintracker/chaintracks/util/dirtyHashes.ts +29 -0
  158. package/src/signer/methods/internalizeAction.ts +2 -2
  159. package/src/storage/StorageProvider.ts +43 -31
  160. package/src/storage/WalletStorageManager.ts +1 -1
  161. package/src/storage/__test/StorageIdb.test.ts +1 -0
  162. package/src/storage/__test/adminStats.man.test.ts +2 -0
  163. package/src/storage/methods/generateChange.ts +1 -54
  164. package/src/storage/methods/getBeefForTransaction.ts +10 -2
  165. package/src/storage/methods/internalizeAction.ts +22 -14
  166. package/src/storage/methods/processAction.ts +5 -2
  167. package/src/storage/methods/utils.Buffer.ts +33 -0
  168. package/src/storage/methods/utils.ts +56 -0
  169. package/src/storage/remoting/StorageClient.ts +2 -2
  170. package/src/storage/remoting/StorageMobile.ts +2 -2
  171. package/src/utility/Format.ts +133 -0
  172. package/src/utility/utilityHelpers.ts +2 -2
  173. package/test/Wallet/support/operations.man.test.ts +20 -125
  174. package/test/Wallet/support/reqErrorReview.2025.05.06.man.test.ts +359 -0
  175. package/test/utils/TestUtilsWalletStorage.ts +23 -0
  176. package/mobile/out/src/services/chaintracker/chaintracks/BlockHeaderApi.d.ts.map +0 -1
  177. package/mobile/out/src/services/chaintracker/chaintracks/BlockHeaderApi.js.map +0 -1
  178. package/out/src/services/chaintracker/chaintracks/BlockHeaderApi.d.ts.map +0 -1
  179. package/out/src/services/chaintracker/chaintracks/BlockHeaderApi.js.map +0 -1
  180. /package/mobile/out/src/services/chaintracker/chaintracks/{BlockHeaderApi.d.ts → Api/BlockHeaderApi.d.ts} +0 -0
  181. /package/mobile/out/src/services/chaintracker/chaintracks/{BlockHeaderApi.js → Api/BlockHeaderApi.js} +0 -0
  182. /package/out/src/services/chaintracker/chaintracks/{BlockHeaderApi.d.ts → Api/BlockHeaderApi.d.ts} +0 -0
  183. /package/out/src/services/chaintracker/chaintracks/{BlockHeaderApi.js → Api/BlockHeaderApi.js} +0 -0
  184. /package/src/services/chaintracker/chaintracks/{BlockHeaderApi.ts → Api/BlockHeaderApi.ts} +0 -0
@@ -1,59 +1,17 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  Object.defineProperty(exports, "__esModule", { value: true });
36
- const sdk_1 = require("@bsv/sdk");
37
3
  const src_1 = require("../../../src");
38
4
  const TestUtilsWalletStorage_1 = require("../../utils/TestUtilsWalletStorage");
39
- const sdk_2 = require("../../../src/sdk");
40
- const dotenv = __importStar(require("dotenv"));
41
- dotenv.config();
42
- const chain = 'main';
43
- const options = {
44
- setActiveClient: true,
45
- useMySQLConnectionForClient: true,
46
- useTestIdentityKey: false,
47
- useIdentityKey2: false
48
- };
5
+ const sdk_1 = require("../../../src/sdk");
6
+ const Format_1 = require("../../../src/utility/Format");
49
7
  describe('operations.man tests', () => {
50
8
  jest.setTimeout(99999999);
51
9
  test('0 review and release all production invalid change utxos', async () => {
52
- const { env, storage } = await createMainReviewSetup();
10
+ const { env, storage } = await TestUtilsWalletStorage_1._tu.createMainReviewSetup();
53
11
  const users = await storage.findUsers({ partial: {} });
54
12
  const withInvalid = {};
55
13
  const vargs = {
56
- basket: sdk_2.specOpInvalidChange,
14
+ basket: sdk_1.specOpInvalidChange,
57
15
  tags: ['release'],
58
16
  tagQueryMode: 'all',
59
17
  includeLockingScripts: false,
@@ -85,44 +43,9 @@ describe('operations.man tests', () => {
85
43
  console.log(log || 'Found zero invalid change outputs.');
86
44
  await storage.destroy();
87
45
  });
88
- test.skip('0a review all spendable outputs for userId', async () => {
89
- const { env, storage } = await createMainReviewSetup();
90
- const users = await storage.findUsers({ partial: {} });
91
- const withInvalid = {};
92
- const vargs = {
93
- basket: sdk_2.specOpInvalidChange,
94
- tags: ['release', 'all'],
95
- tagQueryMode: 'all',
96
- includeLockingScripts: false,
97
- includeTransactions: false,
98
- includeCustomInstructions: false,
99
- includeTags: false,
100
- includeLabels: false,
101
- limit: 0,
102
- offset: 0,
103
- seekPermission: false,
104
- knownTxids: []
105
- };
106
- let log = '';
107
- for (const user of users) {
108
- const { userId } = user;
109
- const auth = { userId, identityKey: '' };
110
- let r = await storage.listOutputs(auth, vargs);
111
- if (r.totalOutputs > 0) {
112
- const total = r.outputs.reduce((s, o) => (s += o.satoshis), 0);
113
- log += `userId ${userId}: ${r.totalOutputs} unspendable utxos, total ${total}, ${user.identityKey}\n`;
114
- for (const o of r.outputs) {
115
- log += ` ${o.outpoint} ${o.satoshis}\n`;
116
- }
117
- withInvalid[userId] = { user, outputs: r.outputs, total };
118
- }
119
- }
120
- console.log(log || 'Found zero invalid change outputs.');
121
- await storage.destroy();
122
- });
123
46
  test('1 review and unfail false doubleSpends', async () => {
124
- const { env, storage, services } = await createMainReviewSetup();
125
- let offset = 2400;
47
+ const { env, storage, services } = await TestUtilsWalletStorage_1._tu.createMainReviewSetup();
48
+ let offset = 2700;
126
49
  const limit = 100;
127
50
  let allUnfails = [];
128
51
  for (;;) {
@@ -148,8 +71,8 @@ describe('operations.man tests', () => {
148
71
  await storage.destroy();
149
72
  });
150
73
  test('2 review and unfail false invalids', async () => {
151
- const { env, storage, services } = await createMainReviewSetup();
152
- let offset = 700;
74
+ const { env, storage, services } = await TestUtilsWalletStorage_1._tu.createMainReviewSetup();
75
+ let offset = 800;
153
76
  const limit = 100;
154
77
  let allUnfails = [];
155
78
  for (;;) {
@@ -176,9 +99,11 @@ describe('operations.man tests', () => {
176
99
  }
177
100
  await storage.destroy();
178
101
  });
179
- test.skip('8 re-internalize failed WUI exports', async () => {
180
- const { env, storage, services } = await createMainReviewSetup();
102
+ test.skip('10 re-internalize failed WUI exports', async () => {
103
+ const { env, storage, services } = await TestUtilsWalletStorage_1._tu.createMainReviewSetup();
104
+ // From this user
181
105
  const user0 = (0, src_1.verifyOne)(await storage.findUsers({ partial: { userId: 2 } }));
106
+ // To these users
182
107
  const users = await storage.findUsers({ partial: { userId: 141 } }); // 111, 141
183
108
  for (const user of users) {
184
109
  const { userId, identityKey } = user;
@@ -218,19 +143,20 @@ describe('operations.man tests', () => {
218
143
  */
219
144
  await storage.destroy();
220
145
  });
221
- test('9 review recent transaction change use', async () => {
222
- const { env, storage, services } = await createMainReviewSetup();
146
+ test.skip('11 review recent transaction change use for specific userId', async () => {
147
+ const userId = 311;
148
+ const { env, storage, services } = await TestUtilsWalletStorage_1._tu.createMainReviewSetup();
223
149
  const countTxs = await storage.countTransactions({
224
- partial: { userId: 311 },
150
+ partial: { userId },
225
151
  status: ['completed', 'unproven', 'failed']
226
152
  });
227
153
  const txs = await storage.findTransactions({
228
- partial: { userId: 311 },
154
+ partial: { userId },
229
155
  status: ['unproven', 'completed', 'failed'],
230
156
  paged: { limit: 100, offset: Math.max(0, countTxs - 100) }
231
157
  });
232
158
  for (const tx of txs) {
233
- const ls = await toLogString(tx, storage);
159
+ const ls = await Format_1.Format.toLogStringTableTransaction(tx, storage);
234
160
  console.log(ls);
235
161
  }
236
162
  const countReqs = await storage.countProvenTxReqs({ partial: {}, status: ['completed', 'unmined'] });
@@ -242,50 +168,4 @@ describe('operations.man tests', () => {
242
168
  await storage.destroy();
243
169
  });
244
170
  });
245
- async function createMainReviewSetup() {
246
- const env = TestUtilsWalletStorage_1._tu.getEnv('main');
247
- const knex = src_1.Setup.createMySQLKnex(process.env.MAIN_CLOUD_MYSQL_CONNECTION);
248
- const storage = new src_1.StorageKnex({
249
- chain: env.chain,
250
- knex: knex,
251
- commissionSatoshis: 0,
252
- commissionPubKeyHex: undefined,
253
- feeModel: { model: 'sat/kb', value: 1 }
254
- });
255
- const servicesOptions = src_1.Services.createDefaultOptions(env.chain);
256
- if (env.whatsonchainApiKey)
257
- servicesOptions.whatsOnChainApiKey = env.whatsonchainApiKey;
258
- const services = new src_1.Services(servicesOptions);
259
- storage.setServices(services);
260
- await storage.makeAvailable();
261
- return { env, storage, services };
262
- }
263
- async function toLogString(tx, storage) {
264
- const rawTx = await storage.getRawTxOfKnownValidTransaction(tx.txid);
265
- const btx = sdk_1.Transaction.fromBinary(rawTx);
266
- let log = `tx ${tx.txid} ${tx.status} s:${tx.satoshis} uid:${tx.userId} tid:${tx.transactionId}\n`;
267
- for (let i = 0; i < Math.max(btx.inputs.length, btx.outputs.length); i++) {
268
- let ilog = '';
269
- let olog = '';
270
- if (i < btx.inputs.length) {
271
- const input = btx.inputs[i];
272
- ilog = `${logTxid(input.sourceTXID)}.${input.sourceOutputIndex}`;
273
- }
274
- if (i < btx.outputs.length) {
275
- const output = btx.outputs[i];
276
- olog = `${ar('' + output.satoshis, 9)} ${output.lockingScript.toHex().length / 2}`;
277
- }
278
- log += `${ar('' + i, 5)} ${al(ilog, 20)} ${olog}\n`;
279
- }
280
- return log;
281
- function logTxid(txid) {
282
- return `${txid.slice(0, 6)}..${txid.slice(-6)}`;
283
- }
284
- function al(v, w) {
285
- return v.toString().padEnd(w);
286
- }
287
- function ar(v, w) {
288
- return v.toString().padStart(w);
289
- }
290
- }
291
171
  //# sourceMappingURL=operations.man.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"operations.man.test.js","sourceRoot":"","sources":["../../../../test/Wallet/support/operations.man.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operations.man.test.js","sourceRoot":"","sources":["../../../../test/Wallet/support/operations.man.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=reqErrorReview.2025.05.06.man.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reqErrorReview.2025.05.06.man.test.d.ts","sourceRoot":"","sources":["../../../../test/Wallet/support/reqErrorReview.2025.05.06.man.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,385 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const sdk_1 = require("@bsv/sdk");
37
+ const src_1 = require("../../../src");
38
+ const TestUtilsWalletStorage_1 = require("../../utils/TestUtilsWalletStorage");
39
+ const Format_1 = require("../../../src/utility/Format");
40
+ const dotenv = __importStar(require("dotenv"));
41
+ dotenv.config();
42
+ const chain = 'main';
43
+ const options = {
44
+ setActiveClient: true,
45
+ useMySQLConnectionForClient: true,
46
+ useTestIdentityKey: false,
47
+ useIdentityKey2: false
48
+ };
49
+ describe('reqErrorReview.2025.05.06.man tests', () => {
50
+ jest.setTimeout(99999999);
51
+ // OVERWRITES EXISTING FILE CONTENTS!!!!
52
+ test.skip('0 grab reqs history as local sqlite file', async () => {
53
+ const { env, storage, services } = await TestUtilsWalletStorage_1._tu.createMainReviewSetup();
54
+ const { activeStorage: s2 } = await TestUtilsWalletStorage_1._tu.createSQLiteTestWallet({
55
+ filePath: `${__dirname}/reqhistory.sqlite`,
56
+ databaseName: 'reqhistory',
57
+ chain: 'main',
58
+ rootKeyHex: '1'.repeat(64),
59
+ dropAll: true
60
+ });
61
+ await s2.makeAvailable();
62
+ const limit = 100;
63
+ let offset = 0;
64
+ for (;;) {
65
+ const r = await storage.knex.raw(`
66
+ select provenTxReqId as id, txid, status, history
67
+ from proven_tx_reqs
68
+ where history is not null
69
+ limit ${limit} offset ${offset}
70
+ `);
71
+ const reqs = r[0];
72
+ for (const req of reqs) {
73
+ const { id, history, status, txid } = req;
74
+ await s2.insertProvenTxReq({
75
+ created_at: new Date(),
76
+ updated_at: new Date(),
77
+ provenTxReqId: id,
78
+ status,
79
+ attempts: 0,
80
+ notified: false,
81
+ txid,
82
+ history,
83
+ notify: '',
84
+ rawTx: []
85
+ });
86
+ }
87
+ if (reqs.length < limit)
88
+ break;
89
+ offset += limit;
90
+ }
91
+ await s2.destroy();
92
+ await storage.destroy();
93
+ });
94
+ test('1 review reqs history and final outcome', async () => {
95
+ let undouble = [];
96
+ let uninvalid = [];
97
+ let uncompleted = [];
98
+ let deunmined = [];
99
+ let noSuccessCompleted = [];
100
+ let successDouble = [];
101
+ let internalizeDouble = [];
102
+ let successInvalid = [];
103
+ const { activeStorage: storage } = await TestUtilsWalletStorage_1._tu.createSQLiteTestWallet({
104
+ filePath: `${__dirname}/reqhistory.sqlite`,
105
+ databaseName: 'reqhistory',
106
+ chain: 'main',
107
+ rootKeyHex: '1'.repeat(64),
108
+ dropAll: false
109
+ });
110
+ //const { env, storage, services } = await _tu.createMainReviewSetup()
111
+ let limit = 100;
112
+ let offset = 0;
113
+ let aggSum = -1;
114
+ const partial = {};
115
+ let log = '';
116
+ for (;;) {
117
+ const reqs = await storage.findProvenTxReqs({ partial, status: undefined, paged: { limit, offset } });
118
+ for (const reqApi of reqs) {
119
+ if (reqApi.provenTxReqId < 11312)
120
+ continue;
121
+ const r = reviewHistoryNotes(reqApi);
122
+ if (!r)
123
+ continue;
124
+ if (r.isCompleted && r.wasDoubleSpend) {
125
+ undouble.push(reqApi.provenTxReqId);
126
+ let review = '';
127
+ if (r.doubleReview) {
128
+ const rr = r.doubleReview;
129
+ review = `0:${rr.status0},1:${rr.status1},2:${rr.status2},Txs:${rr.competingTxs}`;
130
+ }
131
+ //log += `undouble ${reqApi.provenTxReqId} arc:${r.brArc} woc:${r.brWoC} bit:${r.brBitails} ${review}\n`
132
+ }
133
+ if (r.isCompleted && r.wasInvalid) {
134
+ uninvalid.push(reqApi.provenTxReqId);
135
+ //log += `uninvalid ${reqApi.provenTxReqId} arc:${r.brArc} woc:${r.brWoC} bit:${r.brBitails}\n`
136
+ }
137
+ if ((r.isDoubleSpend || r.isInvalid) && r.wasCompleted) {
138
+ uncompleted.push(reqApi.provenTxReqId);
139
+ }
140
+ if ((r.isDoubleSpend || r.isInvalid) && r.wasUnmined) {
141
+ if (r.wasInternalize)
142
+ internalizeDouble.push(reqApi.provenTxReqId);
143
+ else {
144
+ deunmined.push(reqApi.provenTxReqId);
145
+ log += `deunmined ${reqApi.provenTxReqId} arc:${r.brArc} woc:${r.brWoC} bit:${r.brBitails}\n`;
146
+ }
147
+ }
148
+ if (r.aggregate && r.aggregate.successCount === 0 && r.isCompleted) {
149
+ noSuccessCompleted.push(reqApi.provenTxReqId);
150
+ }
151
+ if (r.aggregate && r.aggregate.successCount > 0 && r.isDoubleSpend) {
152
+ successDouble.push(reqApi.provenTxReqId);
153
+ }
154
+ if (r.aggregate && r.aggregate.successCount > 0 && r.isInvalid) {
155
+ successInvalid.push(reqApi.provenTxReqId);
156
+ }
157
+ if (r.aggregate && r.aggSum !== aggSum) {
158
+ log += `aggSum changed ${aggSum} to ${r.aggSum} reqId=${reqApi.provenTxReqId}\n`;
159
+ aggSum = r.aggSum;
160
+ }
161
+ }
162
+ if (reqs.length < limit)
163
+ break;
164
+ offset += limit;
165
+ }
166
+ if (undouble.length > 0)
167
+ log += `undouble: ${JSON.stringify(undouble)}\n`;
168
+ if (uninvalid.length > 0)
169
+ log += `uninvalid: ${JSON.stringify(uninvalid)}\n`;
170
+ if (uncompleted.length > 0)
171
+ log += `uncompleted: ${JSON.stringify(uncompleted)}\n`;
172
+ if (deunmined.length > 0)
173
+ log += `deunmined: ${JSON.stringify(deunmined)}\n`;
174
+ if (internalizeDouble.length > 0)
175
+ log += `internalizeDouble: ${JSON.stringify(internalizeDouble)}\n`;
176
+ if (noSuccessCompleted.length > 0)
177
+ log += `noSuccessCompleted: ${JSON.stringify(noSuccessCompleted)}\n`;
178
+ if (successDouble.length > 0)
179
+ log += `successDouble: ${JSON.stringify(successDouble)}\n`;
180
+ if (successInvalid.length > 0)
181
+ log += `successInvalid: ${JSON.stringify(successInvalid)}\n`;
182
+ console.log(log);
183
+ await storage.destroy();
184
+ });
185
+ const uninvalid = [
186
+ 10822, 12228, 14884, 14948, 1654, 1649, 2654, 2655, 2656, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666,
187
+ 2667, 2669, 2707, 2719, 2723, 2724, 2726
188
+ ];
189
+ const undouble = [
190
+ 10732, 12303, 12476, 14084, 14111, 14956, 14972, 14874, 14789, 14810, 14813, 14817, 14588, 14640, 14641, 14531,
191
+ 2753, 2653, 2657, 2670, 2671, 2681, 2684, 2691, 2732, 4343, 4222, 4124, 4148, 3873, 3735, 3514, 3537, 5074, 5125,
192
+ 4958, 4977, 4730, 4365
193
+ ];
194
+ const deunmined = [
195
+ 12304, 12305, 12306, 12307, 12480, 12483, 12484, 12488, 12489, 12490, 12497, 14085, 14086, 14087, 14814, 14816,
196
+ 14821, 14953, 15170
197
+ ];
198
+ test('2 review deunmined reqs', async () => {
199
+ const { env, storage, services } = await TestUtilsWalletStorage_1._tu.createMainReviewSetup();
200
+ const chaintracker = await services.getChainTracker();
201
+ let log = '';
202
+ for (const id of deunmined) {
203
+ const reqApi = await storage.findProvenTxReqById(id);
204
+ if (!reqApi)
205
+ continue;
206
+ const beef = new sdk_1.Beef();
207
+ beef.mergeRawTx(reqApi.rawTx);
208
+ if (reqApi.inputBEEF)
209
+ beef.mergeBeef(reqApi.inputBEEF);
210
+ let tx = beef.findTxid(reqApi.txid).tx;
211
+ let allInputsFound = true;
212
+ let ilog = '';
213
+ for (const input of tx.inputs) {
214
+ if (beef.findTxid(input.sourceTXID))
215
+ continue;
216
+ try {
217
+ const ib = await storage.getBeefForTransaction(input.sourceTXID, {});
218
+ if (ib)
219
+ beef.mergeBeef(ib);
220
+ }
221
+ catch (e) {
222
+ if (input.sourceTXID) {
223
+ const r2 = (0, src_1.verifyOneOrNone)(await storage.findProvenTxReqs({ partial: { txid: input.sourceTXID } }));
224
+ if (r2 && r2.rawTx) {
225
+ const itx = sdk_1.Transaction.fromBinary(r2.rawTx);
226
+ ilog += 'missing input ' + Format_1.Format.toLogStringTransaction(itx);
227
+ }
228
+ }
229
+ allInputsFound = false;
230
+ }
231
+ }
232
+ if (allInputsFound) {
233
+ tx = beef.findAtomicTransaction(reqApi.txid);
234
+ try {
235
+ const ok = await tx.verify('scripts only');
236
+ log += `${reqApi.provenTxReqId} ${reqApi.txid} ${ok ? 'OK' : 'FAIL'}\n`;
237
+ }
238
+ catch (e) {
239
+ log += `${reqApi.provenTxReqId} ${reqApi.txid} ${src_1.sdk.WalletError.fromUnknown(e).message}\n`;
240
+ }
241
+ }
242
+ else {
243
+ log += `${reqApi.provenTxReqId} FAILED `;
244
+ log += Format_1.Format.toLogStringBeefTxid(beef, reqApi.txid);
245
+ log += ilog;
246
+ }
247
+ }
248
+ console.log(log);
249
+ await storage.destroy();
250
+ });
251
+ });
252
+ function reviewHistoryNotes(reqApi) {
253
+ var _a;
254
+ const r = {
255
+ req: new src_1.EntityProvenTxReq(reqApi),
256
+ wasDoubleSpend: false,
257
+ wasInvalid: false,
258
+ wasCompleted: false,
259
+ wasUnmined: false,
260
+ wasInternalize: false,
261
+ isDoubleSpend: false,
262
+ isInvalid: false,
263
+ isCompleted: false,
264
+ aggSum: 0,
265
+ aggregate: undefined
266
+ };
267
+ if (!((_a = r.req.history) === null || _a === void 0 ? void 0 : _a.notes))
268
+ return undefined;
269
+ for (const note of r.req.history.notes) {
270
+ if (note.what === 'status') {
271
+ const statusWas = note.status_was;
272
+ const statusNow = note.status_now;
273
+ if (statusNow === 'doubleSpend') {
274
+ r.isDoubleSpend = r.wasDoubleSpend = true;
275
+ r.isInvalid = false;
276
+ r.isCompleted = false;
277
+ }
278
+ else if (statusNow === 'invalid') {
279
+ r.isDoubleSpend = false;
280
+ r.isInvalid = r.wasInvalid = true;
281
+ r.isCompleted = false;
282
+ }
283
+ else if (statusNow === 'completed') {
284
+ r.isDoubleSpend = false;
285
+ r.isInvalid = false;
286
+ r.isCompleted = r.wasCompleted = true;
287
+ }
288
+ else if (statusNow === 'unmined') {
289
+ r.isDoubleSpend = false;
290
+ r.isInvalid = false;
291
+ r.wasUnmined = true;
292
+ }
293
+ }
294
+ else if (note.what === 'aggregateResults') {
295
+ r.aggregate = {
296
+ successCount: note.successCount,
297
+ doubleSpendCount: note.doubleSpendCount,
298
+ statusErrorCount: note.statusErrorCount,
299
+ serviceErrorCount: note.serviceErrorCount,
300
+ newReqStatus: note.newReqStatus
301
+ };
302
+ const a = r.aggregate;
303
+ r.aggSum = a.doubleSpendCount + a.statusErrorCount + a.serviceErrorCount + a.successCount;
304
+ }
305
+ else if (note.what === 'confirmDoubleSpend') {
306
+ r.doubleReview = {
307
+ status0: note.getStatus0,
308
+ status1: note.getStatus1,
309
+ status2: note.getStatus2,
310
+ competingTxs: note.competingTxs
311
+ };
312
+ }
313
+ else if (note.what === 'internalizeAction') {
314
+ r.wasInternalize = true;
315
+ }
316
+ if (note.name === 'WoCpostRawTx') {
317
+ if (note.what === 'postRawTxErrorMissingInputs') {
318
+ r.brWoC = 'missingInputs';
319
+ }
320
+ else if (note.what === 'postRawTxError') {
321
+ if (note.status === 504) {
322
+ r.brWoC = 'serviceError';
323
+ }
324
+ }
325
+ }
326
+ else if (note.name === 'WoCpostBeef') {
327
+ if (note.what === 'postBeefSuccess') {
328
+ r.brWoC = 'success';
329
+ }
330
+ else if (note.what === 'postBeefError' && r.brWoC === undefined) {
331
+ r.brWoC = 'invalidTx';
332
+ }
333
+ }
334
+ else if (note.name === 'ARCpostBeef') {
335
+ if (note.what === 'postBeefGetTxDataSuccess') {
336
+ if (note.txStatus === 'STORED')
337
+ r.brArc = 'success';
338
+ }
339
+ }
340
+ else if (note.name === 'ARCv1tx') {
341
+ if (note.what === 'postRawTxDoubleSpend') {
342
+ if (note.txStatus === 'DOUBLE_SPEND_ATTEMPTED')
343
+ r.brArc = 'doubleSpend';
344
+ }
345
+ else if (note.what === 'postRawTxError') {
346
+ if (note.status === 469)
347
+ r.brArc = 'badRoots';
348
+ else if (note.status === 463)
349
+ r.brArc = 'badBump';
350
+ }
351
+ else if (note.what === 'postRawTxSuccess') {
352
+ if (note.txStatus === 'ANNOUNCED_TO_NETWORK')
353
+ r.brArc = 'success';
354
+ else if (note.txStatus === 'SEEN_ON_NETWORK')
355
+ r.brArc = 'success';
356
+ else if (note.txStatus === 'REQUESTED_BY_NETWORK')
357
+ r.brArc = 'success';
358
+ }
359
+ }
360
+ else if (note.name === 'BitailsPostRawTx') {
361
+ if (note.what === 'postRawsSuccess') {
362
+ r.brBitails = 'success';
363
+ }
364
+ else if (note.what === 'postRawsSuccessAlreadyInMempool') {
365
+ r.brBitails = 'success';
366
+ }
367
+ else if (note.what === 'postRawsErrorMissingInputs') {
368
+ r.brBitails = 'invalidTx';
369
+ }
370
+ else if (note.what === 'postRawsError') {
371
+ if (note.code === -26) {
372
+ r.brBitails = 'invalidTx';
373
+ }
374
+ else if (note.code === -1) {
375
+ r.brBitails = 'serviceError';
376
+ }
377
+ else if (note.code === 'ESOCKETTIMEDOUT') {
378
+ r.brBitails = 'serviceError';
379
+ }
380
+ }
381
+ }
382
+ }
383
+ return r;
384
+ }
385
+ //# sourceMappingURL=reqErrorReview.2025.05.06.man.test.js.map