@bsv/wallet-toolbox 2.6.4 → 2.7.0

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 (215) hide show
  1. package/CHANGELOG.md +68 -3
  2. package/README.md +68 -12
  3. package/docs/action-batch-planning.md +80 -37
  4. package/docs/managed-change-liquidity.md +251 -0
  5. package/out/src/Setup.d.ts +9 -0
  6. package/out/src/Setup.d.ts.map +1 -1
  7. package/out/src/Setup.js +2 -0
  8. package/out/src/Setup.js.map +1 -1
  9. package/out/src/SetupClient.d.ts +3 -0
  10. package/out/src/SetupClient.d.ts.map +1 -1
  11. package/out/src/SetupClient.js +1 -0
  12. package/out/src/SetupClient.js.map +1 -1
  13. package/out/src/SetupWallet.d.ts +3 -0
  14. package/out/src/SetupWallet.d.ts.map +1 -1
  15. package/out/src/Wallet.d.ts +4 -3
  16. package/out/src/Wallet.d.ts.map +1 -1
  17. package/out/src/Wallet.js +4 -3
  18. package/out/src/Wallet.js.map +1 -1
  19. package/out/src/WalletPermissionsManager.d.ts.map +1 -1
  20. package/out/src/WalletPermissionsManager.js +5 -8
  21. package/out/src/WalletPermissionsManager.js.map +1 -1
  22. package/out/src/mockchain/MockServices.d.ts.map +1 -1
  23. package/out/src/mockchain/MockServices.js +2 -6
  24. package/out/src/mockchain/MockServices.js.map +1 -1
  25. package/out/src/monitor/Monitor.d.ts.map +1 -1
  26. package/out/src/monitor/Monitor.js +5 -4
  27. package/out/src/monitor/Monitor.js.map +1 -1
  28. package/out/src/monitor/tasks/TaskArcSSE.d.ts +4 -1
  29. package/out/src/monitor/tasks/TaskArcSSE.d.ts.map +1 -1
  30. package/out/src/monitor/tasks/TaskArcSSE.js +92 -65
  31. package/out/src/monitor/tasks/TaskArcSSE.js.map +1 -1
  32. package/out/src/monitor/tasks/TaskReconcilePendingTransactions.d.ts +25 -0
  33. package/out/src/monitor/tasks/TaskReconcilePendingTransactions.d.ts.map +1 -0
  34. package/out/src/monitor/tasks/TaskReconcilePendingTransactions.js +181 -0
  35. package/out/src/monitor/tasks/TaskReconcilePendingTransactions.js.map +1 -0
  36. package/out/src/monitor/tasks/TaskReviewDoubleSpends.d.ts.map +1 -1
  37. package/out/src/monitor/tasks/TaskReviewDoubleSpends.js +15 -3
  38. package/out/src/monitor/tasks/TaskReviewDoubleSpends.js.map +1 -1
  39. package/out/src/monitor/tasks/TaskReviewUtxos.d.ts +29 -2
  40. package/out/src/monitor/tasks/TaskReviewUtxos.d.ts.map +1 -1
  41. package/out/src/monitor/tasks/TaskReviewUtxos.js +155 -7
  42. package/out/src/monitor/tasks/TaskReviewUtxos.js.map +1 -1
  43. package/out/src/monitor/tasks/index.all.d.ts +1 -0
  44. package/out/src/monitor/tasks/index.all.d.ts.map +1 -1
  45. package/out/src/monitor/tasks/index.all.js +1 -0
  46. package/out/src/monitor/tasks/index.all.js.map +1 -1
  47. package/out/src/sdk/ActionBatch.interfaces.d.ts +19 -0
  48. package/out/src/sdk/ActionBatch.interfaces.d.ts.map +1 -1
  49. package/out/src/sdk/WERR_errors.d.ts +23 -0
  50. package/out/src/sdk/WERR_errors.d.ts.map +1 -1
  51. package/out/src/sdk/WERR_errors.js +44 -1
  52. package/out/src/sdk/WERR_errors.js.map +1 -1
  53. package/out/src/sdk/WalletError.d.ts.map +1 -1
  54. package/out/src/sdk/WalletError.js +7 -21
  55. package/out/src/sdk/WalletError.js.map +1 -1
  56. package/out/src/sdk/WalletErrorFromJson.d.ts.map +1 -1
  57. package/out/src/sdk/WalletErrorFromJson.js +9 -1
  58. package/out/src/sdk/WalletErrorFromJson.js.map +1 -1
  59. package/out/src/sdk/WalletServices.interfaces.d.ts +14 -1
  60. package/out/src/sdk/WalletServices.interfaces.d.ts.map +1 -1
  61. package/out/src/sdk/WalletStorage.interfaces.d.ts +3 -1
  62. package/out/src/sdk/WalletStorage.interfaces.d.ts.map +1 -1
  63. package/out/src/sdk/types.d.ts +3 -2
  64. package/out/src/sdk/types.d.ts.map +1 -1
  65. package/out/src/sdk/types.js +3 -2
  66. package/out/src/sdk/types.js.map +1 -1
  67. package/out/src/services/Services.d.ts.map +1 -1
  68. package/out/src/services/Services.js +73 -15
  69. package/out/src/services/Services.js.map +1 -1
  70. package/out/src/services/classifyOutputUtxo.d.ts +25 -0
  71. package/out/src/services/classifyOutputUtxo.d.ts.map +1 -0
  72. package/out/src/services/classifyOutputUtxo.js +87 -0
  73. package/out/src/services/classifyOutputUtxo.js.map +1 -0
  74. package/out/src/services/createDefaultWalletServicesOptions.d.ts +16 -3
  75. package/out/src/services/createDefaultWalletServicesOptions.d.ts.map +1 -1
  76. package/out/src/services/createDefaultWalletServicesOptions.js +38 -8
  77. package/out/src/services/createDefaultWalletServicesOptions.js.map +1 -1
  78. package/out/src/services/providers/ArcSSEClient.d.ts +13 -4
  79. package/out/src/services/providers/ArcSSEClient.d.ts.map +1 -1
  80. package/out/src/services/providers/ArcSSEClient.js +30 -7
  81. package/out/src/services/providers/ArcSSEClient.js.map +1 -1
  82. package/out/src/services/providers/Arcade.d.ts +10 -1
  83. package/out/src/services/providers/Arcade.d.ts.map +1 -1
  84. package/out/src/services/providers/Arcade.js +63 -0
  85. package/out/src/services/providers/Arcade.js.map +1 -1
  86. package/out/src/services/providers/arcadeStatus.d.ts +18 -0
  87. package/out/src/services/providers/arcadeStatus.d.ts.map +1 -0
  88. package/out/src/services/providers/arcadeStatus.js +56 -0
  89. package/out/src/services/providers/arcadeStatus.js.map +1 -0
  90. package/out/src/signer/actionBatch/ActionBatchPlanner.d.ts.map +1 -1
  91. package/out/src/signer/actionBatch/ActionBatchPlanner.js +25 -3
  92. package/out/src/signer/actionBatch/ActionBatchPlanner.js.map +1 -1
  93. package/out/src/signer/actionBatch/ActionBatchWorkspace.d.ts +2 -0
  94. package/out/src/signer/actionBatch/ActionBatchWorkspace.d.ts.map +1 -1
  95. package/out/src/signer/actionBatch/ActionBatchWorkspace.js +135 -16
  96. package/out/src/signer/actionBatch/ActionBatchWorkspace.js.map +1 -1
  97. package/out/src/storage/StorageIdb.d.ts +2 -0
  98. package/out/src/storage/StorageIdb.d.ts.map +1 -1
  99. package/out/src/storage/StorageIdb.js +24 -1
  100. package/out/src/storage/StorageIdb.js.map +1 -1
  101. package/out/src/storage/StorageKnex.d.ts +1 -1
  102. package/out/src/storage/StorageKnex.d.ts.map +1 -1
  103. package/out/src/storage/StorageKnex.js +4 -4
  104. package/out/src/storage/StorageKnex.js.map +1 -1
  105. package/out/src/storage/StorageProvider.d.ts +18 -2
  106. package/out/src/storage/StorageProvider.d.ts.map +1 -1
  107. package/out/src/storage/StorageProvider.js +45 -14
  108. package/out/src/storage/StorageProvider.js.map +1 -1
  109. package/out/src/storage/StorageReaderWriter.d.ts.map +1 -1
  110. package/out/src/storage/StorageReaderWriter.js +3 -2
  111. package/out/src/storage/StorageReaderWriter.js.map +1 -1
  112. package/out/src/storage/WalletStorageManager.d.ts +12 -0
  113. package/out/src/storage/WalletStorageManager.d.ts.map +1 -1
  114. package/out/src/storage/WalletStorageManager.js +22 -2
  115. package/out/src/storage/WalletStorageManager.js.map +1 -1
  116. package/out/src/storage/adminServer/adminServer.d.ts +2 -0
  117. package/out/src/storage/adminServer/adminServer.d.ts.map +1 -1
  118. package/out/src/storage/adminServer/adminServer.js +25 -8
  119. package/out/src/storage/adminServer/adminServer.js.map +1 -1
  120. package/out/src/storage/adminServer/adminUi.d.ts.map +1 -1
  121. package/out/src/storage/adminServer/adminUi.js +32 -9
  122. package/out/src/storage/adminServer/adminUi.js.map +1 -1
  123. package/out/src/storage/adminServer/reviewUtxos.d.ts +27 -0
  124. package/out/src/storage/adminServer/reviewUtxos.d.ts.map +1 -0
  125. package/out/src/storage/adminServer/reviewUtxos.js +62 -0
  126. package/out/src/storage/adminServer/reviewUtxos.js.map +1 -0
  127. package/out/src/storage/index.all.d.ts +1 -0
  128. package/out/src/storage/index.all.d.ts.map +1 -1
  129. package/out/src/storage/index.all.js +1 -0
  130. package/out/src/storage/index.all.js.map +1 -1
  131. package/out/src/storage/index.client.d.ts +1 -0
  132. package/out/src/storage/index.client.d.ts.map +1 -1
  133. package/out/src/storage/index.client.js +1 -0
  134. package/out/src/storage/index.client.js.map +1 -1
  135. package/out/src/storage/index.mobile.d.ts +1 -0
  136. package/out/src/storage/index.mobile.d.ts.map +1 -1
  137. package/out/src/storage/index.mobile.js +1 -0
  138. package/out/src/storage/index.mobile.js.map +1 -1
  139. package/out/src/storage/methods/ListOutputsSpecOp.d.ts.map +1 -1
  140. package/out/src/storage/methods/ListOutputsSpecOp.js +4 -44
  141. package/out/src/storage/methods/ListOutputsSpecOp.js.map +1 -1
  142. package/out/src/storage/methods/actionBatch.d.ts +9 -2
  143. package/out/src/storage/methods/actionBatch.d.ts.map +1 -1
  144. package/out/src/storage/methods/actionBatch.js +258 -66
  145. package/out/src/storage/methods/actionBatch.js.map +1 -1
  146. package/out/src/storage/methods/actionBatchBlobs.js +7 -4
  147. package/out/src/storage/methods/actionBatchBlobs.js.map +1 -1
  148. package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts.map +1 -1
  149. package/out/src/storage/methods/attemptToPostReqsToNetwork.js +2 -66
  150. package/out/src/storage/methods/attemptToPostReqsToNetwork.js.map +1 -1
  151. package/out/src/storage/methods/availableManagedChange.d.ts +8 -1
  152. package/out/src/storage/methods/availableManagedChange.d.ts.map +1 -1
  153. package/out/src/storage/methods/availableManagedChange.js.map +1 -1
  154. package/out/src/storage/methods/createAction.d.ts.map +1 -1
  155. package/out/src/storage/methods/createAction.js +183 -51
  156. package/out/src/storage/methods/createAction.js.map +1 -1
  157. package/out/src/storage/methods/generateChange.d.ts +13 -1
  158. package/out/src/storage/methods/generateChange.d.ts.map +1 -1
  159. package/out/src/storage/methods/generateChange.js +169 -12
  160. package/out/src/storage/methods/generateChange.js.map +1 -1
  161. package/out/src/storage/methods/listActionsIdb.d.ts.map +1 -1
  162. package/out/src/storage/methods/listActionsIdb.js +4 -0
  163. package/out/src/storage/methods/listActionsIdb.js.map +1 -1
  164. package/out/src/storage/methods/listActionsKnex.d.ts.map +1 -1
  165. package/out/src/storage/methods/listActionsKnex.js +4 -0
  166. package/out/src/storage/methods/listActionsKnex.js.map +1 -1
  167. package/out/src/storage/methods/listOutputsIdb.d.ts.map +1 -1
  168. package/out/src/storage/methods/listOutputsIdb.js +2 -1
  169. package/out/src/storage/methods/listOutputsIdb.js.map +1 -1
  170. package/out/src/storage/methods/managedChangePolicy.d.ts +44 -0
  171. package/out/src/storage/methods/managedChangePolicy.d.ts.map +1 -0
  172. package/out/src/storage/methods/managedChangePolicy.js +58 -0
  173. package/out/src/storage/methods/managedChangePolicy.js.map +1 -0
  174. package/out/src/storage/methods/reconcileFailedTransactionInputs.d.ts +26 -0
  175. package/out/src/storage/methods/reconcileFailedTransactionInputs.d.ts.map +1 -0
  176. package/out/src/storage/methods/reconcileFailedTransactionInputs.js +124 -0
  177. package/out/src/storage/methods/reconcileFailedTransactionInputs.js.map +1 -0
  178. package/out/src/storage/methods/reviewUtxoOutputs.d.ts +37 -0
  179. package/out/src/storage/methods/reviewUtxoOutputs.d.ts.map +1 -0
  180. package/out/src/storage/methods/reviewUtxoOutputs.js +150 -0
  181. package/out/src/storage/methods/reviewUtxoOutputs.js.map +1 -0
  182. package/out/src/storage/portable/index.d.ts.map +1 -1
  183. package/out/src/storage/portable/index.js +4 -2
  184. package/out/src/storage/portable/index.js.map +1 -1
  185. package/out/src/storage/remoting/StorageClientBase.d.ts +2 -1
  186. package/out/src/storage/remoting/StorageClientBase.d.ts.map +1 -1
  187. package/out/src/storage/remoting/StorageClientBase.js +3 -0
  188. package/out/src/storage/remoting/StorageClientBase.js.map +1 -1
  189. package/out/src/storage/remoting/StorageServer.d.ts.map +1 -1
  190. package/out/src/storage/remoting/StorageServer.js +4 -1
  191. package/out/src/storage/remoting/StorageServer.js.map +1 -1
  192. package/out/src/storage/schema/KnexMigrations.d.ts +1 -0
  193. package/out/src/storage/schema/KnexMigrations.d.ts.map +1 -1
  194. package/out/src/storage/schema/KnexMigrations.js +29 -3
  195. package/out/src/storage/schema/KnexMigrations.js.map +1 -1
  196. package/out/src/storage/schema/entities/EntityOutputBasket.d.ts.map +1 -1
  197. package/out/src/storage/schema/entities/EntityOutputBasket.js +5 -2
  198. package/out/src/storage/schema/entities/EntityOutputBasket.js.map +1 -1
  199. package/out/src/utility/brc153ReferenceLabels.d.ts +21 -0
  200. package/out/src/utility/brc153ReferenceLabels.d.ts.map +1 -0
  201. package/out/src/utility/brc153ReferenceLabels.js +45 -0
  202. package/out/src/utility/brc153ReferenceLabels.js.map +1 -0
  203. package/out/src/utility/index.all.d.ts +1 -0
  204. package/out/src/utility/index.all.d.ts.map +1 -1
  205. package/out/src/utility/index.all.js +1 -0
  206. package/out/src/utility/index.all.js.map +1 -1
  207. package/out/src/utility/index.client.d.ts +1 -0
  208. package/out/src/utility/index.client.d.ts.map +1 -1
  209. package/out/src/utility/index.client.js +1 -0
  210. package/out/src/utility/index.client.js.map +1 -1
  211. package/out/src/utility/utilityHelpers.d.ts +1 -1
  212. package/out/src/utility/utilityHelpers.d.ts.map +1 -1
  213. package/out/src/utility/utilityHelpers.js +2 -1
  214. package/out/src/utility/utilityHelpers.js.map +1 -1
  215. package/package.json +3 -3
@@ -0,0 +1,181 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TaskReconcilePendingTransactions = void 0;
4
+ const entities_1 = require("../../storage/schema/entities");
5
+ const reconcileFailedTransactionInputs_1 = require("../../storage/methods/reconcileFailedTransactionInputs");
6
+ const Monitor_1 = require("../Monitor");
7
+ const WalletMonitorTask_1 = require("./WalletMonitorTask");
8
+ const REVIEW_STATUSES = ['callback', 'unmined', 'sending', 'unknown', 'unconfirmed'];
9
+ /**
10
+ * Poll durable transaction lifecycle state for aged, non-terminal requests.
11
+ * This closes the gap where an Arcade rejection event was missed before the
12
+ * monitor subscribed or while it was offline. Unknown/provider-error results
13
+ * never mutate storage; only a provider's explicit terminal verdict does.
14
+ */
15
+ class TaskReconcilePendingTransactions extends WalletMonitorTask_1.WalletMonitorTask {
16
+ triggerMsecs;
17
+ reviewLimit;
18
+ minAgeMinutes;
19
+ triggerQuickMsecs;
20
+ static taskName = 'ReconcilePendingTransactions';
21
+ triggerNextMsecs;
22
+ constructor(monitor, triggerMsecs = Monitor_1.Monitor.oneMinute * 12, reviewLimit = 100, minAgeMinutes = 60, triggerQuickMsecs = Monitor_1.Monitor.oneMinute) {
23
+ super(monitor, TaskReconcilePendingTransactions.taskName);
24
+ this.triggerMsecs = triggerMsecs;
25
+ this.reviewLimit = reviewLimit;
26
+ this.minAgeMinutes = minAgeMinutes;
27
+ this.triggerQuickMsecs = triggerQuickMsecs;
28
+ this.triggerNextMsecs = this.triggerQuickMsecs;
29
+ }
30
+ trigger(nowMsecsSinceEpoch) {
31
+ return {
32
+ run: this.triggerNextMsecs > 0 && nowMsecsSinceEpoch - this.lastRunMsecsSinceEpoch > this.triggerNextMsecs
33
+ };
34
+ }
35
+ async getCheckpoint() {
36
+ let events = [];
37
+ await this.storage.runAsStorageProvider(async (sp) => {
38
+ events = await sp.findMonitorEvents({
39
+ partial: { event: TaskReconcilePendingTransactions.taskName },
40
+ orderDescending: true,
41
+ paged: { limit: 5 }
42
+ });
43
+ });
44
+ for (const event of events) {
45
+ if (!event.details)
46
+ continue;
47
+ try {
48
+ const parsed = JSON.parse(event.details);
49
+ if (parsed.cycleComplete === true)
50
+ return undefined;
51
+ if (typeof parsed.resumeOffset === 'number') {
52
+ return {
53
+ resumeOffset: parsed.resumeOffset,
54
+ expectedProvenTxReqId: parsed.expectedProvenTxReqId
55
+ };
56
+ }
57
+ }
58
+ catch {
59
+ continue;
60
+ }
61
+ }
62
+ return undefined;
63
+ }
64
+ async runTask() {
65
+ const checkpoint = await this.getCheckpoint();
66
+ const updatedBefore = new Date(Date.now() - this.minAgeMinutes * 60 * 1000);
67
+ const reqs = await this.findReqsToReview(checkpoint);
68
+ const eligible = reqs.filter(req => req.updated_at <= updatedBefore);
69
+ const provider = eligible.length === 0 ? undefined : await this.monitor.services.getStatusForTxids(eligible.map(req => req.txid));
70
+ const results = new Map(provider?.results.map(result => [result.txid, result]) ?? []);
71
+ let reconciled = 0;
72
+ let inputConflicts = 0;
73
+ let reviewLog = '';
74
+ const retained = [];
75
+ for (const req of reqs) {
76
+ const result = results.get(req.txid);
77
+ if (req.updated_at > updatedBefore || provider?.status !== 'success' || result?.terminal !== true) {
78
+ retained.push(req);
79
+ continue;
80
+ }
81
+ const applied = await this.applyTerminalVerdict(req, result, provider.name);
82
+ if (!applied) {
83
+ retained.push(req);
84
+ continue;
85
+ }
86
+ reconciled++;
87
+ if (result.inputConflict === true)
88
+ inputConflicts++;
89
+ reviewLog +=
90
+ `reconciled ${req.provenTxReqId} ${req.txid} ${result.providerStatus ?? 'terminal'} ` +
91
+ `=> ${result.inputConflict === true ? 'doubleSpend' : 'invalid'}\n`;
92
+ }
93
+ const fullPage = reqs.length >= this.reviewLimit;
94
+ this.triggerNextMsecs = fullPage ? this.triggerQuickMsecs : this.triggerMsecs;
95
+ let resumeOffset;
96
+ let expectedProvenTxReqId;
97
+ if (fullPage) {
98
+ if (retained.length === 0) {
99
+ resumeOffset = reqs.sourceOffset ?? 0;
100
+ }
101
+ else {
102
+ resumeOffset = (reqs.sourceOffset ?? 0) + retained.length - 1;
103
+ expectedProvenTxReqId = retained.at(-1)?.provenTxReqId;
104
+ }
105
+ }
106
+ return JSON.stringify({
107
+ reviewed: eligible.length,
108
+ reconciled,
109
+ inputConflicts,
110
+ retained: retained.length,
111
+ reviewLimit: this.reviewLimit,
112
+ minAgeMinutes: this.minAgeMinutes,
113
+ cycleComplete: !fullPage,
114
+ ...(resumeOffset != null ? { resumeOffset } : {}),
115
+ ...(expectedProvenTxReqId != null ? { expectedProvenTxReqId } : {}),
116
+ reviewLog
117
+ });
118
+ }
119
+ async findReqsToReview(checkpoint) {
120
+ let offset = checkpoint?.resumeOffset ?? 0;
121
+ if (checkpoint?.expectedProvenTxReqId != null) {
122
+ const verify = await this.storage.findProvenTxReqs({
123
+ partial: {},
124
+ status: [...REVIEW_STATUSES],
125
+ paged: { limit: 1, offset }
126
+ });
127
+ offset = verify[0]?.provenTxReqId === checkpoint.expectedProvenTxReqId ? offset + 1 : 0;
128
+ }
129
+ const reqs = (await this.storage.findProvenTxReqs({
130
+ partial: {},
131
+ status: [...REVIEW_STATUSES],
132
+ paged: { limit: this.reviewLimit, offset }
133
+ }));
134
+ reqs.sourceOffset = offset;
135
+ return reqs;
136
+ }
137
+ async applyTerminalVerdict(reqApi, result, provider) {
138
+ let applied = false;
139
+ await this.storage.runAsStorageProvider(async (sp) => {
140
+ await sp.transaction(async (trx) => {
141
+ const req = new entities_1.EntityProvenTxReq(reqApi);
142
+ await req.refreshFromStorage(sp, trx);
143
+ if (!REVIEW_STATUSES.includes(req.status))
144
+ return;
145
+ req.status = result.inputConflict === true ? 'doubleSpend' : 'invalid';
146
+ req.addHistoryNote({
147
+ when: new Date().toISOString(),
148
+ what: 'proactiveTerminalReconciliation',
149
+ provider,
150
+ providerStatus: result.providerStatus,
151
+ statusCode: result.statusCode,
152
+ description: result.description,
153
+ inputConflict: result.inputConflict === true,
154
+ competingTxs: result.competingTxs?.join(',')
155
+ });
156
+ await req.updateStorageDynamicProperties(sp, trx);
157
+ if (req.notify.transactionIds != null) {
158
+ await sp.updateTransactionsStatus(req.notify.transactionIds, 'failed', trx);
159
+ }
160
+ if (result.inputConflict === true) {
161
+ const quarantined = await (0, reconcileFailedTransactionInputs_1.quarantineReqInputs)(req, sp, trx);
162
+ req.addHistoryNote({
163
+ when: new Date().toISOString(),
164
+ what: 'proactiveInputQuarantine',
165
+ checked: quarantined.checked,
166
+ confirmed: quarantined.staleConfirmed,
167
+ ...(quarantined.staleOutpoints.length > 0 ? { outpoints: quarantined.staleOutpoints.join(',') } : {})
168
+ });
169
+ await req.updateStorageDynamicProperties(sp, trx);
170
+ }
171
+ applied = true;
172
+ });
173
+ });
174
+ if (applied) {
175
+ this.monitor.callOnTransactionStatusChanged(reqApi.txid, result.providerStatus ?? 'REJECTED');
176
+ }
177
+ return applied;
178
+ }
179
+ }
180
+ exports.TaskReconcilePendingTransactions = TaskReconcilePendingTransactions;
181
+ //# sourceMappingURL=TaskReconcilePendingTransactions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaskReconcilePendingTransactions.js","sourceRoot":"","sources":["../../../../src/monitor/tasks/TaskReconcilePendingTransactions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TaskReviewDoubleSpends.d.ts","sourceRoot":"","sources":["../../../../src/monitor/tasks/TaskReviewDoubleSpends.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAavD;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,iBAAiB;IAWlD,YAAY;IACZ,WAAW;IACX,aAAa;IACb,iBAAiB;IAb1B,MAAM,CAAC,QAAQ,CAAC,QAAQ,wBAAuB;IAE/C,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAQ;IACxC,MAAM,KAAK,QAAQ,IAAK,OAAO,CAAkC;IACjE,MAAM,KAAK,QAAQ,CAAE,KAAK,EAAE,OAAO,EAAoC;IAEvE,gBAAgB,EAAE,MAAM,CAAA;IAExB,YACE,OAAO,EAAE,OAAO,EACT,YAAY,SAAyB,EACrC,WAAW,SAAM,EACjB,aAAa,SAAK,EAClB,iBAAiB,SAAwB,EAIjD;IAED,OAAO,CAAE,kBAAkB,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,OAAO,CAAA;KAAE,CAMrD;IAEK,yBAAyB,IAAK,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,qBAAqB,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC,CA0BhH;IAEK,OAAO,IAAK,OAAO,CAAC,MAAM,CAAC,CAiDhC;YAEa,gBAAgB;CA0B/B"}
1
+ {"version":3,"file":"TaskReviewDoubleSpends.d.ts","sourceRoot":"","sources":["../../../../src/monitor/tasks/TaskReviewDoubleSpends.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAyBvD;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,iBAAiB;IAWlD,YAAY;IACZ,WAAW;IACX,aAAa;IACb,iBAAiB;IAb1B,MAAM,CAAC,QAAQ,CAAC,QAAQ,wBAAuB;IAE/C,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAQ;IACxC,MAAM,KAAK,QAAQ,IAAK,OAAO,CAAkC;IACjE,MAAM,KAAK,QAAQ,CAAE,KAAK,EAAE,OAAO,EAAoC;IAEvE,gBAAgB,EAAE,MAAM,CAAA;IAExB,YACE,OAAO,EAAE,OAAO,EACT,YAAY,SAAyB,EACrC,WAAW,SAAM,EACjB,aAAa,SAAK,EAClB,iBAAiB,SAAwB,EAIjD;IAED,OAAO,CAAE,kBAAkB,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,OAAO,CAAA;KAAE,CAMrD;IAEK,yBAAyB,IAAK,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,qBAAqB,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC,CA0BhH;IAEK,OAAO,IAAK,OAAO,CAAC,MAAM,CAAC,CAmDhC;YAEa,gBAAgB;CA0B/B"}
@@ -3,6 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TaskReviewDoubleSpends = void 0;
4
4
  const Monitor_1 = require("../Monitor");
5
5
  const WalletMonitorTask_1 = require("./WalletMonitorTask");
6
+ function hasDurableInputConflict(req) {
7
+ try {
8
+ const history = JSON.parse(req.history);
9
+ return history.notes?.some(note => note.inputConflict === true || note.what === 'arcSSEInputQuarantine') === true;
10
+ }
11
+ catch {
12
+ // Malformed legacy history must never weaken a terminal decision.
13
+ return true;
14
+ }
15
+ }
6
16
  /**
7
17
  * Review recent reqs in terminal 'doubleSpend' state and move any false positives
8
18
  * back to 'unfail' so existing recovery handling can re-process them.
@@ -75,15 +85,17 @@ class TaskReviewDoubleSpends extends WalletMonitorTask_1.WalletMonitorTask {
75
85
  let retainedDoubleSpendCount = 0;
76
86
  for (const req of reqs) {
77
87
  const gsr = await this.monitor.services.getStatusForTxids([req.txid]);
78
- const status = gsr.results[0]?.status;
88
+ const status = gsr.status === 'success' ? gsr.results[0]?.status : undefined;
89
+ const durableInputConflict = hasDurableInputConflict(req);
79
90
  reviewed.push(req);
80
- if (status === 'unknown') {
91
+ const canUnfail = status === 'mined' || (status === 'known' && !durableInputConflict);
92
+ if (!canUnfail) {
81
93
  lastRetainedDoubleSpendIndex = reviewed.length - 1;
82
94
  retainedDoubleSpendCount += 1;
83
95
  }
84
96
  else {
85
97
  unfails.push(req.provenTxReqId);
86
- log += `unfail ${req.provenTxReqId} ${req.txid} status:${status}\n`;
98
+ log += `unfail ${req.provenTxReqId} ${req.txid} status:${status} durableInputConflict:${String(durableInputConflict)}\n`;
87
99
  }
88
100
  }
89
101
  if (unfails.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"TaskReviewDoubleSpends.js","sourceRoot":"","sources":["../../../../src/monitor/tasks/TaskReviewDoubleSpends.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TaskReviewDoubleSpends.js","sourceRoot":"","sources":["../../../../src/monitor/tasks/TaskReviewDoubleSpends.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,26 @@
1
+ import { UtxoReviewDiagnostics } from '../../storage/methods/reviewUtxoOutputs';
1
2
  import { Monitor } from '../Monitor';
2
3
  import { WalletMonitorTask } from './WalletMonitorTask';
4
+ export interface TaskReviewUtxosPageResult extends UtxoReviewDiagnostics {
5
+ found: boolean;
6
+ userId?: number;
7
+ identityKey: string;
8
+ mode: 'all' | 'change';
9
+ release: boolean;
10
+ offset: number;
11
+ pageLimit: number;
12
+ sourceScanned: number;
13
+ complete: boolean;
14
+ nextOffset?: number;
15
+ log: string;
16
+ }
3
17
  /**
4
- * Use the reviewByIdentityKey method to review the utxos of a specific user by their identityKey.
18
+ * Use the reviewByIdentityKey method to scan the UTXOs of a specific user by
19
+ * identity key. The scan is read-only unless the caller explicitly requests
20
+ * release, and release remains blocked if any provider result is inconclusive.
21
+ * Operator UIs should use reviewPageByIdentityKey: it bounds each provider
22
+ * round-trip and may explicitly release only the conclusive spent subset while
23
+ * reporting unknowns.
5
24
  *
6
25
  * The task itself is disabled and will not run on a schedule; review must be triggered manually by calling reviewByIdentityKey.
7
26
  */
@@ -19,7 +38,15 @@ export declare class TaskReviewUtxos extends WalletMonitorTask {
19
38
  run: boolean;
20
39
  };
21
40
  runTask(): Promise<string>;
22
- reviewByIdentityKey(identityKey: string, mode?: 'all' | 'change'): Promise<string>;
41
+ reviewByIdentityKey(identityKey: string, mode?: 'all' | 'change', release?: boolean): Promise<string>;
42
+ reviewPageByIdentityKey(identityKey: string, mode?: 'all' | 'change', release?: boolean, pageLimit?: number, offset?: number): Promise<TaskReviewUtxosPageResult>;
43
+ private emptyPage;
44
+ /**
45
+ * Report managed-change liquidity without changing it. Monitor deliberately
46
+ * has no signing authority; progressive migration occurs only during a
47
+ * caller-authorized createAction.
48
+ */
49
+ reviewManagedChangeByIdentityKey(identityKey: string): Promise<string>;
23
50
  private toUserLog;
24
51
  }
25
52
  //# sourceMappingURL=TaskReviewUtxos.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TaskReviewUtxos.d.ts","sourceRoot":"","sources":["../../../../src/monitor/tasks/TaskReviewUtxos.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,iBAAiB;IAS3C,YAAY;IACZ,SAAS;IACT,UAAU;IACV,IAAI,EAAE,MAAM,EAAE;IAXvB,MAAM,CAAC,QAAQ,CAAC,QAAQ,iBAAgB;IAExC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAQ;IACxC,MAAM,KAAK,QAAQ,IAAK,OAAO,CAAkC;IACjE,MAAM,KAAK,QAAQ,CAAE,KAAK,EAAE,OAAO,EAAoC;IAEvE,YACE,OAAO,EAAE,OAAO,EACT,YAAY,SAAI,EAChB,SAAS,SAAK,EACd,UAAU,SAAI,EACd,IAAI,GAAE,MAAM,EAAuB,EAG3C;IAED,OAAO,CAAE,mBAAmB,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,OAAO,CAAA;KAAE,CAItD;IAEK,OAAO,IAAK,OAAO,CAAC,MAAM,CAAC,CAGhC;IAEK,mBAAmB,CAAE,WAAW,EAAE,MAAM,EAAE,IAAI,GAAE,KAAK,GAAG,QAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAgC/F;IAED,OAAO,CAAC,SAAS;CAelB"}
1
+ {"version":3,"file":"TaskReviewUtxos.d.ts","sourceRoot":"","sources":["../../../../src/monitor/tasks/TaskReviewUtxos.ts"],"names":[],"mappings":"AAIA,OAAO,EAAqB,qBAAqB,EAAE,MAAM,yCAAyC,CAAA;AAElG,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAKvD,MAAM,WAAW,yBAA0B,SAAQ,qBAAqB;IACtE,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,KAAK,GAAG,QAAQ,CAAA;IACtB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE,MAAM,CAAA;CACZ;AAED;;;;;;;;;GASG;AACH,qBAAa,eAAgB,SAAQ,iBAAiB;IAa3C,YAAY;IACZ,SAAS;IACT,UAAU;IACV,IAAI,EAAE,MAAM,EAAE;IAfvB,MAAM,CAAC,QAAQ,CAAC,QAAQ,iBAAgB;IAExC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAQ;IACxC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAE7B;IACD,MAAM,KAAK,QAAQ,CAAC,KAAK,EAAE,OAAO,EAEjC;IAED,YACE,OAAO,EAAE,OAAO,EACT,YAAY,SAAI,EAChB,SAAS,SAAK,EACd,UAAU,SAAI,EACd,IAAI,GAAE,MAAM,EAAY,EAGhC;IAED,OAAO,CAAC,mBAAmB,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,OAAO,CAAA;KAAE,CAIrD;IAEK,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAG/B;IAEK,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,GAAE,KAAK,GAAG,QAAgB,EAAE,OAAO,UAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAgC/G;IAEK,uBAAuB,CAC3B,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,KAAK,GAAG,QAAgB,EAC9B,OAAO,UAAQ,EACf,SAAS,SAA4B,EACrC,MAAM,SAAI,GACT,OAAO,CAAC,yBAAyB,CAAC,CAsFpC;IAED,OAAO,CAAC,SAAS;IA+BjB;;;;OAIG;IACG,gCAAgC,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA8B3E;IAED,OAAO,CAAC,SAAS;CAelB"}
@@ -2,9 +2,19 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TaskReviewUtxos = void 0;
4
4
  const sdk_1 = require("../../sdk");
5
+ const managedChange_1 = require("../../storage/methods/managedChange");
6
+ const reviewUtxoOutputs_1 = require("../../storage/methods/reviewUtxoOutputs");
7
+ const utilityHelpers_1 = require("../../utility/utilityHelpers");
5
8
  const WalletMonitorTask_1 = require("./WalletMonitorTask");
9
+ const REVIEW_PAGE_DEFAULT_LIMIT = 20;
10
+ const REVIEW_PAGE_MAX_LIMIT = 250;
6
11
  /**
7
- * Use the reviewByIdentityKey method to review the utxos of a specific user by their identityKey.
12
+ * Use the reviewByIdentityKey method to scan the UTXOs of a specific user by
13
+ * identity key. The scan is read-only unless the caller explicitly requests
14
+ * release, and release remains blocked if any provider result is inconclusive.
15
+ * Operator UIs should use reviewPageByIdentityKey: it bounds each provider
16
+ * round-trip and may explicitly release only the conclusive spent subset while
17
+ * reporting unknowns.
8
18
  *
9
19
  * The task itself is disabled and will not run on a schedule; review must be triggered manually by calling reviewByIdentityKey.
10
20
  */
@@ -15,9 +25,13 @@ class TaskReviewUtxos extends WalletMonitorTask_1.WalletMonitorTask {
15
25
  tags;
16
26
  static taskName = 'ReviewUtxos';
17
27
  static checkNowRequested = false;
18
- static get checkNow() { return this.checkNowRequested; }
19
- static set checkNow(value) { this.checkNowRequested = value; }
20
- constructor(monitor, triggerMsecs = 0, userLimit = 10, userOffset = 0, tags = ['release', 'all']) {
28
+ static get checkNow() {
29
+ return this.checkNowRequested;
30
+ }
31
+ static set checkNow(value) {
32
+ this.checkNowRequested = value;
33
+ }
34
+ constructor(monitor, triggerMsecs = 0, userLimit = 10, userOffset = 0, tags = ['all']) {
21
35
  super(monitor, TaskReviewUtxos.taskName);
22
36
  this.triggerMsecs = triggerMsecs;
23
37
  this.userLimit = userLimit;
@@ -33,8 +47,8 @@ class TaskReviewUtxos extends WalletMonitorTask_1.WalletMonitorTask {
33
47
  TaskReviewUtxos.checkNow = false;
34
48
  return 'TaskReviewUtxos is disabled; use reviewByIdentityKey instead.\n';
35
49
  }
36
- async reviewByIdentityKey(identityKey, mode = 'all') {
37
- const tags = ['release', ...(mode === 'all' ? ['all'] : [])];
50
+ async reviewByIdentityKey(identityKey, mode = 'all', release = false) {
51
+ const tags = [...(release ? ['release'] : []), ...(mode === 'all' ? ['all'] : [])];
38
52
  const vargs = {
39
53
  basket: sdk_1.specOpInvalidChange,
40
54
  tags,
@@ -63,8 +77,142 @@ class TaskReviewUtxos extends WalletMonitorTask_1.WalletMonitorTask {
63
77
  return this.toUserLog(user, result.outputs, result.totalOutputs, total, tags);
64
78
  });
65
79
  }
80
+ async reviewPageByIdentityKey(identityKey, mode = 'all', release = false, pageLimit = REVIEW_PAGE_DEFAULT_LIMIT, offset = 0) {
81
+ pageLimit = Math.min(Math.max(Math.trunc(pageLimit), 1), REVIEW_PAGE_MAX_LIMIT);
82
+ offset = Math.max(Math.trunc(offset), 0);
83
+ return await this.storage.runAsStorageProvider(async (sp) => {
84
+ const user = (await sp.findUsers({ partial: { identityKey } }))[0];
85
+ if (!user) {
86
+ return {
87
+ found: false,
88
+ identityKey,
89
+ mode,
90
+ release,
91
+ offset,
92
+ pageLimit,
93
+ sourceScanned: 0,
94
+ complete: true,
95
+ checked: 0,
96
+ confirmedUnspent: 0,
97
+ confirmedSpent: 0,
98
+ unknown: 0,
99
+ confirmedSpentSatoshis: 0,
100
+ released: 0,
101
+ releasedSatoshis: 0,
102
+ providers: [],
103
+ providerCount: 0,
104
+ providersTruncated: false,
105
+ log: `identityKey ${identityKey} was not found\n`
106
+ };
107
+ }
108
+ let basketId;
109
+ if (mode === 'change') {
110
+ basketId = (await sp.findOutputBaskets({
111
+ partial: { userId: user.userId, name: 'default' }
112
+ }))[0]?.basketId;
113
+ if (basketId == null) {
114
+ return this.emptyPage(user, mode, release, pageLimit, offset);
115
+ }
116
+ }
117
+ const sourceOutputs = await sp.findOutputs({
118
+ partial: {
119
+ userId: user.userId,
120
+ spendable: true,
121
+ ...(basketId != null ? { basketId } : {})
122
+ },
123
+ txStatus: ['completed', 'unproven', 'nosend', 'sending'],
124
+ noScript: true,
125
+ paged: { limit: pageLimit, offset }
126
+ });
127
+ const candidates = sourceOutputs.filter(output => output.basketId != null);
128
+ const auth = { userId: user.userId, identityKey: user.identityKey };
129
+ const review = await (0, reviewUtxoOutputs_1.reviewUtxoOutputs)(sp, auth, candidates, release ? 'conclusive' : 'none');
130
+ const complete = sourceOutputs.length < pageLimit;
131
+ const nextOffset = complete ? undefined : offset + sourceOutputs.length - review.diagnostics.released;
132
+ const target = mode === 'all' ? 'spendable utxos' : 'spendable change utxos';
133
+ const action = release ? 'released' : 'found';
134
+ let log = `userId ${user.userId}: page checked ${review.diagnostics.checked} ${target}; ` +
135
+ `${review.diagnostics.confirmedSpent} confirmed spent, ${review.diagnostics.confirmedUnspent} confirmed unspent, ` +
136
+ `${review.diagnostics.unknown} unknown; ${action} ${review.diagnostics.released}, ${user.identityKey}\n`;
137
+ for (const output of review.confirmedSpentOutputs) {
138
+ log += ` ${output.txid}.${output.vout} ${output.satoshis} now ${output.spendable ? 'spendable' : 'spent'}\n`;
139
+ }
140
+ if (review.unknownOutputs.length > 0) {
141
+ log += ` ${review.unknownOutputs.length} output(s) quarantined from release pending a conclusive provider result\n`;
142
+ }
143
+ if (nextOffset != null)
144
+ log += ` continue at offset ${nextOffset}\n`;
145
+ return {
146
+ found: true,
147
+ userId: user.userId,
148
+ identityKey: user.identityKey,
149
+ mode,
150
+ release,
151
+ offset,
152
+ pageLimit,
153
+ sourceScanned: sourceOutputs.length,
154
+ complete,
155
+ ...(nextOffset != null ? { nextOffset } : {}),
156
+ ...review.diagnostics,
157
+ log
158
+ };
159
+ });
160
+ }
161
+ emptyPage(user, mode, release, pageLimit, offset) {
162
+ return {
163
+ found: true,
164
+ userId: user.userId,
165
+ identityKey: user.identityKey,
166
+ mode,
167
+ release,
168
+ offset,
169
+ pageLimit,
170
+ sourceScanned: 0,
171
+ complete: true,
172
+ checked: 0,
173
+ confirmedUnspent: 0,
174
+ confirmedSpent: 0,
175
+ unknown: 0,
176
+ confirmedSpentSatoshis: 0,
177
+ released: 0,
178
+ releasedSatoshis: 0,
179
+ providers: [],
180
+ providerCount: 0,
181
+ providersTruncated: false,
182
+ log: `userId ${user.userId}: no invalid utxos found, ${user.identityKey}\n`
183
+ };
184
+ }
185
+ /**
186
+ * Report managed-change liquidity without changing it. Monitor deliberately
187
+ * has no signing authority; progressive migration occurs only during a
188
+ * caller-authorized createAction.
189
+ */
190
+ async reviewManagedChangeByIdentityKey(identityKey) {
191
+ return await this.storage.runAsStorageProvider(async (sp) => {
192
+ const user = (await sp.findUsers({ partial: { identityKey } }))[0];
193
+ if (user == null)
194
+ return `identityKey ${identityKey} was not found\n`;
195
+ const basket = (0, utilityHelpers_1.verifyOne)(await sp.findOutputBaskets({ partial: { userId: user.userId, name: 'default' } }));
196
+ const outputs = (await sp.findOutputs({
197
+ partial: { userId: user.userId, basketId: basket.basketId, spendable: true, ...managedChange_1.managedChangeOutputFields },
198
+ txStatus: ['completed', 'unproven', 'sending'],
199
+ noScript: true
200
+ })).filter(managedChange_1.isAutoSpendableChangeOutput);
201
+ const reserved = new Set(await sp.findReservedActionBatchOutputIds(outputs.map(output => output.outputId)));
202
+ const statuses = await sp.findTransactionStatusesByIds(user.userId, outputs.map(output => output.transactionId));
203
+ const preferred = Math.max(1, basket.minimumDesiredUTXOValue);
204
+ const healthy = outputs.filter(output => output.satoshis >= preferred);
205
+ const undersized = outputs.filter(output => output.satoshis < preferred);
206
+ const countStatus = (status) => outputs.filter(output => statuses.get(output.transactionId) === status).length;
207
+ const satoshis = outputs.reduce((sum, output) => sum + output.satoshis, 0);
208
+ return (`userId ${user.userId}: managed change ${outputs.length}/${basket.numberOfDesiredUTXOs}, ` +
209
+ `healthy ${healthy.length}, undersized ${undersized.length}, reserved ${reserved.size}, ` +
210
+ `completed ${countStatus('completed')}, unproven ${countStatus('unproven')}, ` +
211
+ `sending ${countStatus('sending')}, satoshis ${satoshis}, preferred minimum ${preferred}\n`);
212
+ });
213
+ }
66
214
  toUserLog(user, outputs, totalOutputs, total, tags) {
67
- const action = tags.includes('release') ? 'updated to unspendable' : 'found';
215
+ const action = tags.includes('release') ? 'confirmed spent and updated to unspendable' : 'confirmed spent';
68
216
  const target = tags.includes('all') ? 'spendable utxos' : 'spendable change utxos';
69
217
  let log = `userId ${user.userId}: ${totalOutputs} ${target} ${action}, total ${total}, ${user.identityKey}\n`;
70
218
  for (const output of outputs) {
@@ -1 +1 @@
1
- {"version":3,"file":"TaskReviewUtxos.js","sourceRoot":"","sources":["../../../../src/monitor/tasks/TaskReviewUtxos.ts"],"names":[],"mappings":";;;AACA,mCAA+C;AAG/C,2DAAuD;AAEvD;;;;GAIG;AACH,qBAA6B,SAAQ,qCAAiB;IAS3C,YAAY;IACZ,SAAS;IACT,UAAU;IACV,IAAI;IAXb,MAAM,CAAU,QAAQ,GAAG,aAAa,CAAA;IAEhC,MAAM,CAAC,iBAAiB,GAAG,KAAK,CAAA;IACxC,MAAM,KAAK,QAAQ,KAAe,OAAO,IAAI,CAAC,iBAAiB,CAAA,CAAC,CAAC;IACjE,MAAM,KAAK,QAAQ,CAAE,KAAc,IAAI,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAA,CAAC,CAAC;IAEvE,YACE,OAAgB,EACT,YAAY,GAAG,CAAC,EAChB,SAAS,GAAG,EAAE,EACd,UAAU,GAAG,CAAC,EACd,IAAI,GAAa,CAAC,SAAS,EAAE,KAAK,CAAC;QAE1C,KAAK,CAAC,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAA;4BALjC,YAAY;yBACZ,SAAS;0BACT,UAAU;oBACV,IAAI;IAGb,CAAC;IAED,OAAO,CAAE,mBAA2B;QAClC,OAAO;YACL,GAAG,EAAE,KAAK;SACX,CAAA;IACH,CAAC;IAED,KAAK,CAAC,OAAO;QACX,eAAe,CAAC,QAAQ,GAAG,KAAK,CAAA;QAChC,OAAO,iEAAiE,CAAA;IAC1E,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAE,WAAmB,EAAE,IAAI,GAAqB,KAAK;QAC5E,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC5D,MAAM,KAAK,GAAoC;YAC7C,MAAM,EAAE,yBAAmB;YAC3B,IAAI;YACJ,YAAY,EAAE,KAAK;YACnB,qBAAqB,EAAE,KAAK;YAC5B,mBAAmB,EAAE,KAAK;YAC1B,yBAAyB,EAAE,KAAK;YAChC,WAAW,EAAE,KAAK;YAClB,aAAa,EAAE,KAAK;YACpB,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,cAAc,EAAE,KAAK;YACrB,UAAU,EAAE,EAAE;SACf,CAAA;QAED,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;YACxD,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAClE,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,eAAe,WAAW,kBAAkB,CAAA;YACrD,CAAC;YAED,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAA;YACnE,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YAChD,IAAI,MAAM,CAAC,YAAY,KAAK,CAAC,EAAE,CAAC;gBAC9B,OAAO,UAAU,IAAI,CAAC,MAAM,6BAA6B,IAAI,CAAC,WAAW,IAAI,CAAA;YAC/E,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;YAC9E,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;QAC/E,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,SAAS,CACf,IAAe,EACf,OAAuB,EACvB,YAAoB,EACpB,KAAa,EACb,IAAc;QAEd,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,OAAO,CAAA;QAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,wBAAwB,CAAA;QAClF,IAAI,GAAG,GAAG,UAAU,IAAI,CAAC,MAAM,KAAK,YAAY,IAAI,MAAM,IAAI,MAAM,WAAW,KAAK,KAAK,IAAI,CAAC,WAAW,IAAI,CAAA;QAC7G,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,GAAG,IAAI,KAAK,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,QAAQ,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,IAAI,CAAA;QACpG,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;CACF"}
1
+ {"version":3,"file":"TaskReviewUtxos.js","sourceRoot":"","sources":["../../../../src/monitor/tasks/TaskReviewUtxos.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ export * from './TaskNewHeader';
11
11
  export * from './TaskPurge';
12
12
  export * from './TaskReorg';
13
13
  export * from './TaskReviewDoubleSpends';
14
+ export * from './TaskReconcilePendingTransactions';
14
15
  export * from './TaskReviewProvenTxs';
15
16
  export * from './TaskReviewStatus';
16
17
  export * from './TaskReviewUtxos';
@@ -1 +1 @@
1
- {"version":3,"file":"index.all.d.ts","sourceRoot":"","sources":["../../../../src/monitor/tasks/index.all.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,aAAa,CAAA;AAC3B,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,0BAA0B,CAAA;AACxC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA"}
1
+ {"version":3,"file":"index.all.d.ts","sourceRoot":"","sources":["../../../../src/monitor/tasks/index.all.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,aAAa,CAAA;AAC3B,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,0BAA0B,CAAA;AACxC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,0BAA0B,CAAA;AACxC,cAAc,oCAAoC,CAAA;AAClD,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA"}
@@ -27,6 +27,7 @@ __exportStar(require("./TaskNewHeader"), exports);
27
27
  __exportStar(require("./TaskPurge"), exports);
28
28
  __exportStar(require("./TaskReorg"), exports);
29
29
  __exportStar(require("./TaskReviewDoubleSpends"), exports);
30
+ __exportStar(require("./TaskReconcilePendingTransactions"), exports);
30
31
  __exportStar(require("./TaskReviewProvenTxs"), exports);
31
32
  __exportStar(require("./TaskReviewStatus"), exports);
32
33
  __exportStar(require("./TaskReviewUtxos"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.all.js","sourceRoot":"","sources":["../../../../src/monitor/tasks/index.all.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAmC;AACnC,+CAA4B;AAC5B,uDAAoC;AACpC,qDAAkC;AAClC,6DAA0C;AAC1C,8CAA2B;AAC3B,sDAAmC;AACnC,kDAA+B;AAC/B,2DAAwC;AACxC,kDAA+B;AAC/B,8CAA2B;AAC3B,8CAA2B;AAC3B,2DAAwC;AACxC,wDAAqC;AACrC,qDAAkC;AAClC,oDAAiC;AACjC,oDAAiC;AACjC,qDAAkC;AAClC,+CAA4B"}
1
+ {"version":3,"file":"index.all.js","sourceRoot":"","sources":["../../../../src/monitor/tasks/index.all.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAmC;AACnC,+CAA4B;AAC5B,uDAAoC;AACpC,qDAAkC;AAClC,6DAA0C;AAC1C,8CAA2B;AAC3B,sDAAmC;AACnC,kDAA+B;AAC/B,2DAAwC;AACxC,kDAA+B;AAC/B,8CAA2B;AAC3B,8CAA2B;AAC3B,2DAAwC;AACxC,qEAAkD;AAClD,wDAAqC;AACrC,qDAAkC;AAClC,oDAAiC;AACjC,oDAAiC;AACjC,qDAAkC;AAClC,+CAA4B"}
@@ -20,6 +20,10 @@ export interface StorageCapabilities {
20
20
  manifestVersion?: 2;
21
21
  /** A prepared compact manifest may be committed by its semantic digest. */
22
22
  commitByDigest?: boolean;
23
+ /** Expired workspaces can atomically reacquire their exact external inputs. */
24
+ resume?: boolean;
25
+ /** Maximum number of persisted outputs one workspace may reserve at once. */
26
+ maxReservedOutputs?: number;
23
27
  /** Multiple logical blobs may share one authenticated binary request. */
24
28
  packedUploads?: {
25
29
  version: 1;
@@ -53,6 +57,11 @@ export interface BeginActionBatchResult {
53
57
  commissionSatoshis: number;
54
58
  commissionPubKeyHex?: string;
55
59
  availableChangeCount: number;
60
+ /** Internal planner policy; absent on older providers, which use defaults. */
61
+ managedChangePolicy?: {
62
+ maxOutputsPerAction: number;
63
+ migrationInputsPerAction: number;
64
+ };
56
65
  reservedOutputs: ActionBatchFundingOutput[];
57
66
  explicitOutputs: ActionBatchFundingOutput[];
58
67
  inputBeef?: number[] | Uint8Array;
@@ -76,6 +85,16 @@ export interface ExtendActionBatchResult {
76
85
  export interface RenewActionBatchResult {
77
86
  expiresAt: string;
78
87
  }
88
+ export interface ResumeActionBatchArgs {
89
+ batchId: string;
90
+ /** Exact persisted outputs still held by the client workspace. */
91
+ outpoints: Array<{
92
+ txid: string;
93
+ vout: number;
94
+ }>;
95
+ }
96
+ export interface ResumeActionBatchResult extends RenewActionBatchResult {
97
+ }
79
98
  export interface ActionBatchCommitMetadata {
80
99
  description: string;
81
100
  labels: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"ActionBatch.interfaces.d.ts","sourceRoot":"","sources":["../../../src/sdk/ActionBatch.interfaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ActionBatch.interfaces.d.ts","sourceRoot":"","sources":["../../../src/sdk/ActionBatch.interfaces.ts"],"names":[],"mappings":"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"}