@bsv/wallet-toolbox 2.3.3 → 2.4.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.
@@ -4,7 +4,6 @@ exports.ChaintracksChainTracker = void 0;
4
4
  const ChaintracksServiceClient_1 = require("./chaintracks/ChaintracksServiceClient");
5
5
  const WalletError_1 = require("../../sdk/WalletError");
6
6
  const utilityHelpers_1 = require("../../utility/utilityHelpers");
7
- const WERR_errors_1 = require("../../sdk/WERR_errors");
8
7
  class ChaintracksChainTracker {
9
8
  chaintracks;
10
9
  cache;
@@ -25,26 +24,30 @@ class ChaintracksChainTracker {
25
24
  return cachedRoot === root;
26
25
  }
27
26
  let header;
28
- const retries = this.options.maxRetries || 3;
27
+ const retries = Math.max(1, this.options.maxRetries ?? 6);
28
+ const retryDelayMs = this.options.retryDelayMs ?? 250;
29
29
  let error;
30
30
  for (let tryCount = 1; tryCount <= retries; tryCount++) {
31
31
  try {
32
32
  header = await this.chaintracks.findHeaderForHeight(height);
33
33
  if (header == null) {
34
- return false;
34
+ if (tryCount >= retries)
35
+ return false;
36
+ await (0, utilityHelpers_1.wait)(retryDelayMs);
37
+ continue;
35
38
  }
36
39
  break;
37
40
  }
38
41
  catch (error_) {
39
42
  error = WalletError_1.WalletError.fromUnknown(error_);
40
- if (tryCount > retries) {
43
+ if (tryCount >= retries) {
41
44
  throw error;
42
45
  }
43
- await (0, utilityHelpers_1.wait)(1000);
46
+ await (0, utilityHelpers_1.wait)(retryDelayMs);
44
47
  }
45
48
  }
46
49
  if (header == null)
47
- throw new WERR_errors_1.WERR_INTERNAL('no header should have returned false or thrown an error.');
50
+ return false;
48
51
  this.cache[height] = header.merkleRoot;
49
52
  if (header.merkleRoot !== root) {
50
53
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"ChaintracksChainTracker.js","sourceRoot":"","sources":["../../../../src/services/chaintracker/ChaintracksChainTracker.ts"],"names":[],"mappings":";;;AACA,qFAAiF;AAEjF,uDAAmD;AACnD,iEAAmD;AACnD,uDAAqD;AAQrD,MAAa,uBAAuB;IAClC,WAAW,CAAsB;IACjC,KAAK,CAAwB;IAC7B,OAAO,CAAgC;IAEvC,YAAa,KAAa,EAAE,WAAkC,EAAE,OAAwC;QACtG,KAAK,KAAK,MAAM,CAAA;QAChB,IAAI,CAAC,WAAW;YACd,WAAW,IAAI,IAAI,mDAAwB,CAAC,KAAK,EAAE,WAAW,KAAK,iCAAiC,CAAC,CAAA;QACvG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAA;IAClD,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAE,IAAY,EAAE,MAAc;QACtD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACrC,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,UAAU,KAAK,IAAI,CAAA;QAC5B,CAAC;QAED,IAAI,MAA+B,CAAA;QAEnC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,CAAA;QAE5C,IAAI,KAA8B,CAAA;QAElC,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,IAAI,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC;YACvD,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAA;gBAE3D,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;oBACnB,OAAO,KAAK,CAAA;gBACd,CAAC;gBAED,MAAK;YACP,CAAC;YAAC,OAAO,MAAe,EAAE,CAAC;gBACzB,KAAK,GAAG,yBAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;gBACvC,IAAI,QAAQ,GAAG,OAAO,EAAE,CAAC;oBACvB,MAAM,KAAK,CAAA;gBACb,CAAC;gBACD,MAAM,IAAA,qBAAI,EAAC,IAAI,CAAC,CAAA;YAClB,CAAC;QACH,CAAC;QAED,IAAI,MAAM,IAAI,IAAI;YAAE,MAAM,IAAI,2BAAa,CAAC,0DAA0D,CAAC,CAAA;QAEvG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,UAAU,CAAA;QAEtC,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAA;QACd,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAzDD,0DAyDC"}
1
+ {"version":3,"file":"ChaintracksChainTracker.js","sourceRoot":"","sources":["../../../../src/services/chaintracker/ChaintracksChainTracker.ts"],"names":[],"mappings":";;;AACA,qFAAiF;AAEjF,uDAAmD;AACnD,iEAAmD;AASnD,MAAa,uBAAuB;IAClC,WAAW,CAAsB;IACjC,KAAK,CAAwB;IAC7B,OAAO,CAAgC;IAEvC,YAAa,KAAa,EAAE,WAAkC,EAAE,OAAwC;QACtG,KAAK,KAAK,MAAM,CAAA;QAChB,IAAI,CAAC,WAAW;YACd,WAAW,IAAI,IAAI,mDAAwB,CAAC,KAAK,EAAE,WAAW,KAAK,iCAAiC,CAAC,CAAA;QACvG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAA;IAClD,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAE,IAAY,EAAE,MAAc;QACtD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACrC,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,UAAU,KAAK,IAAI,CAAA;QAC5B,CAAC;QAED,IAAI,MAA+B,CAAA;QAEnC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC,CAAA;QACzD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,GAAG,CAAA;QAErD,IAAI,KAA8B,CAAA;QAElC,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,IAAI,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC;YACvD,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAA;gBAE3D,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;oBACnB,IAAI,QAAQ,IAAI,OAAO;wBAAE,OAAO,KAAK,CAAA;oBACrC,MAAM,IAAA,qBAAI,EAAC,YAAY,CAAC,CAAA;oBACxB,SAAQ;gBACV,CAAC;gBAED,MAAK;YACP,CAAC;YAAC,OAAO,MAAe,EAAE,CAAC;gBACzB,KAAK,GAAG,yBAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;gBACvC,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAC;oBACxB,MAAM,KAAK,CAAA;gBACb,CAAC;gBACD,MAAM,IAAA,qBAAI,EAAC,YAAY,CAAC,CAAA;YAC1B,CAAC;QACH,CAAC;QAED,IAAI,MAAM,IAAI,IAAI;YAAE,OAAO,KAAK,CAAA;QAEhC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,UAAU,CAAA;QAEtC,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAA;QACd,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AA5DD,0DA4DC"}
@@ -8,6 +8,60 @@ export declare function buildSignableTransaction(dctr: StorageCreateActionResult
8
8
  pdi: PendingStorageInput[];
9
9
  log: string;
10
10
  };
11
+ /**
12
+ * Verify that the outputs returned by storage for caller-specified outputs match
13
+ * exactly what the caller requested in `args.outputs`.
14
+ *
15
+ * The storage response (`StorageCreateActionResult.outputs`) is ordered, by
16
+ * contract, as: the caller's `args.outputs` in their original order, followed by
17
+ * the optional commission output, followed by storage-provided change outputs.
18
+ * Only the `vout` field is randomized when `randomizeOutputs` is set; the array
19
+ * order is stable. Therefore array index `i` (for `i < args.outputs.length`)
20
+ * corresponds to `args.outputs[i]`.
21
+ *
22
+ * Because the locking script that is ultimately signed is taken from the storage
23
+ * response, an untrusted storage provider must not be allowed to alter the
24
+ * recipient script (or amount) of a caller-specified output. Any mismatch is a
25
+ * hard error. (GHSA-36f9-7rg5-cpf8)
26
+ *
27
+ * @throws WERR_INVALID_PARAMETER if storage omitted, reclassified, or modified
28
+ * any caller-specified output.
29
+ */
30
+ export declare function verifyRequestedOutputsUnchanged(storageOutputs: StorageCreateTransactionSdkOutput[], args: Validation.ValidCreateActionArgs): void;
31
+ /**
32
+ * Default ceiling for a storage-provided commission (service-charge) output, in
33
+ * satoshis. The commission is the one output whose locking script is taken
34
+ * verbatim from storage and cannot be re-derived or verified client-side, so a
35
+ * malicious storage operator could point it at an attacker address. Capping it
36
+ * bounds the worst-case loss from that single output; honest commissions are far
37
+ * below this. (GHSA-36f9-7rg5-cpf8)
38
+ */
39
+ export declare const MAX_STORAGE_COMMISSION_SATOSHIS = 500000;
40
+ /**
41
+ * Verify that every storage output beyond the caller's requested outputs is
42
+ * either a change output or the (single, bounded) commission output.
43
+ *
44
+ * The storage response is ordered `[caller outputs][commission?][change...]`;
45
+ * `verifyRequestedOutputsUnchanged` already validates the caller region (indices
46
+ * `< args.outputs.length`). This checks the remainder.
47
+ *
48
+ * Change outputs (`providedBy: 'storage', purpose: 'change'`) are safe at any
49
+ * amount: `buildSignableTransaction` ignores the storage-supplied script and
50
+ * re-derives it client-side (`makeChangeLock` / BRC-29 under the client's own
51
+ * change key), so a change output can only ever pay the client. A change output
52
+ * mislabeled by storage is therefore harmless.
53
+ *
54
+ * The commission output's script, by contrast, is taken verbatim from storage
55
+ * and cannot be verified client-side. A malicious storage could inject an extra
56
+ * output — or relabel one as commission — to redirect funds to an attacker while
57
+ * the caller/UI only sees the requested recipients. To bound that, at most one
58
+ * commission output is allowed and its amount must not exceed `maxCommission`.
59
+ * Any other unrecognized output is rejected outright.
60
+ *
61
+ * @throws WERR_INVALID_PARAMETER if storage returned an unrecognized output, more
62
+ * than one commission output, or a commission exceeding `maxCommission`.
63
+ */
64
+ export declare function verifyUnrequestedOutputsAreChangeOrCommission(storageOutputs: StorageCreateTransactionSdkOutput[], args: Validation.ValidCreateActionArgs, maxCommission?: number): void;
11
65
  /**
12
66
  * Derive a change output locking script
13
67
  */
@@ -1 +1 @@
1
- {"version":3,"file":"buildSignableTransaction.d.ts","sourceRoot":"","sources":["../../../../src/signer/methods/buildSignableTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,MAAM,EAAE,WAAW,EAAuC,UAAU,EAAE,MAAM,UAAU,CAAA;AACrG,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAC1D,OAAO,EACL,yBAAyB,EAEzB,iCAAiC,EAClC,MAAM,oCAAoC,CAAA;AAG3C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAGzC,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,yBAAyB,EAC/B,IAAI,EAAE,UAAU,CAAC,qBAAqB,EACtC,MAAM,EAAE,MAAM,GACb;IACC,EAAE,EAAE,WAAW,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,mBAAmB,EAAE,CAAA;IAC1B,GAAG,EAAE,MAAM,CAAA;CACZ,CA8IF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,iCAAiC,EACtC,IAAI,EAAE,yBAAyB,EAC/B,IAAI,EAAE,UAAU,CAAC,qBAAqB,EACtC,UAAU,EAAE,OAAO,EACnB,MAAM,EAAE,MAAM,GACb,MAAM,CAUR"}
1
+ {"version":3,"file":"buildSignableTransaction.d.ts","sourceRoot":"","sources":["../../../../src/signer/methods/buildSignableTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,MAAM,EAAE,WAAW,EAAuC,UAAU,EAAE,MAAM,UAAU,CAAA;AACrG,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAC1D,OAAO,EACL,yBAAyB,EAEzB,iCAAiC,EAClC,MAAM,oCAAoC,CAAA;AAG3C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAGzC,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,yBAAyB,EAC/B,IAAI,EAAE,UAAU,CAAC,qBAAqB,EACtC,MAAM,EAAE,MAAM,GACb;IACC,EAAE,EAAE,WAAW,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,mBAAmB,EAAE,CAAA;IAC1B,GAAG,EAAE,MAAM,CAAA;CACZ,CA+JF;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,+BAA+B,CAC7C,cAAc,EAAE,iCAAiC,EAAE,EACnD,IAAI,EAAE,UAAU,CAAC,qBAAqB,GACrC,IAAI,CAsCN;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,+BAA+B,SAAS,CAAA;AAErD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,6CAA6C,CAC3D,cAAc,EAAE,iCAAiC,EAAE,EACnD,IAAI,EAAE,UAAU,CAAC,qBAAqB,EACtC,aAAa,GAAE,MAAwC,GACtD,IAAI,CAkCN;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,iCAAiC,EACtC,IAAI,EAAE,yBAAyB,EAC/B,IAAI,EAAE,UAAU,CAAC,qBAAqB,EACtC,UAAU,EAAE,OAAO,EACnB,MAAM,EAAE,MAAM,GACb,MAAM,CAUR"}
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MAX_STORAGE_COMMISSION_SATOSHIS = void 0;
3
4
  exports.buildSignableTransaction = buildSignableTransaction;
5
+ exports.verifyRequestedOutputsUnchanged = verifyRequestedOutputsUnchanged;
6
+ exports.verifyUnrequestedOutputsAreChangeOrCommission = verifyUnrequestedOutputsAreChangeOrCommission;
4
7
  exports.makeChangeLock = makeChangeLock;
5
8
  const sdk_1 = require("@bsv/sdk");
6
9
  const WERR_errors_1 = require("../../sdk/WERR_errors");
@@ -10,6 +13,21 @@ function buildSignableTransaction(dctr, args, wallet) {
10
13
  const changeKeys = wallet.getClientChangeKeyPair();
11
14
  const inputBeef = (args.inputBEEF != null) ? sdk_1.Beef.fromBinary(args.inputBEEF) : undefined;
12
15
  const { inputs: storageInputs, outputs: storageOutputs } = dctr;
16
+ // SECURITY (GHSA-36f9-7rg5-cpf8): The locking scripts used to build and sign
17
+ // the transaction are taken from the storage response. When storage is remote
18
+ // (StorageClient, the default configuration), a malicious or compromised
19
+ // storage operator could return a different recipient script than the caller
20
+ // requested; it would be signed and broadcast while the calling app/UI still
21
+ // shows the originally requested recipient. Verify that every caller-specified
22
+ // output is echoed back by storage unchanged before anything is signed.
23
+ verifyRequestedOutputsUnchanged(storageOutputs, args);
24
+ // SECURITY (GHSA-36f9-7rg5-cpf8): verifyRequestedOutputsUnchanged only protects
25
+ // the caller's own outputs. Storage could instead inject an ADDITIONAL output
26
+ // paying an attacker (funded by reducing change), which the loop below signs
27
+ // verbatim. Every output beyond the caller's must be either a change output
28
+ // (script re-derived client-side, so it can only pay the client) or the single
29
+ // bounded commission output. Anything else is rejected before signing.
30
+ verifyUnrequestedOutputsAreChangeOrCommission(storageOutputs, args);
13
31
  const tx = new sdk_1.Transaction(args.version, [], [], args.lockTime);
14
32
  // The order of outputs in storageOutputs is always:
15
33
  // CreateActionArgs.outputs in the original order
@@ -79,8 +97,7 @@ function buildSignableTransaction(dctr, args, wallet) {
79
97
  if (argsInput != null) {
80
98
  // Type 1: User supplied input, with or without an explicit unlockingScript.
81
99
  // If without, signAction must be used to provide the actual unlockScript.
82
- const hasUnlock = typeof argsInput.unlockingScript === 'string';
83
- const unlock = hasUnlock ? (0, utilityHelpers_1.asBsvSdkScript)(argsInput.unlockingScript) : new sdk_1.Script();
100
+ const unlock = typeof argsInput.unlockingScript === 'string' ? (0, utilityHelpers_1.asBsvSdkScript)(argsInput.unlockingScript) : new sdk_1.Script();
84
101
  const sourceTransaction = args.isSignAction ? inputBeef?.findTxid(argsInput.outpoint.txid)?.tx : undefined;
85
102
  const inputToAdd = {
86
103
  sourceTXID: argsInput.outpoint.txid,
@@ -132,6 +149,105 @@ function buildSignableTransaction(dctr, args, wallet) {
132
149
  log: ''
133
150
  };
134
151
  }
152
+ /**
153
+ * Verify that the outputs returned by storage for caller-specified outputs match
154
+ * exactly what the caller requested in `args.outputs`.
155
+ *
156
+ * The storage response (`StorageCreateActionResult.outputs`) is ordered, by
157
+ * contract, as: the caller's `args.outputs` in their original order, followed by
158
+ * the optional commission output, followed by storage-provided change outputs.
159
+ * Only the `vout` field is randomized when `randomizeOutputs` is set; the array
160
+ * order is stable. Therefore array index `i` (for `i < args.outputs.length`)
161
+ * corresponds to `args.outputs[i]`.
162
+ *
163
+ * Because the locking script that is ultimately signed is taken from the storage
164
+ * response, an untrusted storage provider must not be allowed to alter the
165
+ * recipient script (or amount) of a caller-specified output. Any mismatch is a
166
+ * hard error. (GHSA-36f9-7rg5-cpf8)
167
+ *
168
+ * @throws WERR_INVALID_PARAMETER if storage omitted, reclassified, or modified
169
+ * any caller-specified output.
170
+ */
171
+ function verifyRequestedOutputsUnchanged(storageOutputs, args) {
172
+ for (let i = 0; i < args.outputs.length; i++) {
173
+ const requested = args.outputs[i];
174
+ const provided = storageOutputs[i];
175
+ if (provided == null) {
176
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('storage outputs', `present for every requested output. Storage did not return an output for requested output index ${i}.`);
177
+ }
178
+ // A caller-specified output must never be reclassified by storage as change
179
+ // or as storage-provided; doing so would route it through makeChangeLock and
180
+ // bypass the script comparison below.
181
+ if (provided.purpose === 'change' || provided.providedBy === 'storage') {
182
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('output.providedBy', `consistent with the request. Storage reclassified requested output ${i} as providedBy='${provided.providedBy}' purpose='${provided.purpose ?? ''}'.`);
183
+ }
184
+ const requestedScript = (requested.lockingScript ?? '').toLowerCase();
185
+ const providedScript = (typeof provided.lockingScript === 'string' ? provided.lockingScript : '').toLowerCase();
186
+ if (requestedScript.length === 0 || requestedScript !== providedScript) {
187
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('output.lockingScript', `equal to the caller-requested locking script. Storage returned a different locking script for output index ${i}; the recipient may have been substituted.`);
188
+ }
189
+ if (provided.satoshis !== requested.satoshis) {
190
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('output.satoshis', `equal to the caller-requested satoshis. Storage returned ${provided.satoshis} for output index ${i}, caller requested ${requested.satoshis}.`);
191
+ }
192
+ }
193
+ }
194
+ /**
195
+ * Default ceiling for a storage-provided commission (service-charge) output, in
196
+ * satoshis. The commission is the one output whose locking script is taken
197
+ * verbatim from storage and cannot be re-derived or verified client-side, so a
198
+ * malicious storage operator could point it at an attacker address. Capping it
199
+ * bounds the worst-case loss from that single output; honest commissions are far
200
+ * below this. (GHSA-36f9-7rg5-cpf8)
201
+ */
202
+ exports.MAX_STORAGE_COMMISSION_SATOSHIS = 500000;
203
+ /**
204
+ * Verify that every storage output beyond the caller's requested outputs is
205
+ * either a change output or the (single, bounded) commission output.
206
+ *
207
+ * The storage response is ordered `[caller outputs][commission?][change...]`;
208
+ * `verifyRequestedOutputsUnchanged` already validates the caller region (indices
209
+ * `< args.outputs.length`). This checks the remainder.
210
+ *
211
+ * Change outputs (`providedBy: 'storage', purpose: 'change'`) are safe at any
212
+ * amount: `buildSignableTransaction` ignores the storage-supplied script and
213
+ * re-derives it client-side (`makeChangeLock` / BRC-29 under the client's own
214
+ * change key), so a change output can only ever pay the client. A change output
215
+ * mislabeled by storage is therefore harmless.
216
+ *
217
+ * The commission output's script, by contrast, is taken verbatim from storage
218
+ * and cannot be verified client-side. A malicious storage could inject an extra
219
+ * output — or relabel one as commission — to redirect funds to an attacker while
220
+ * the caller/UI only sees the requested recipients. To bound that, at most one
221
+ * commission output is allowed and its amount must not exceed `maxCommission`.
222
+ * Any other unrecognized output is rejected outright.
223
+ *
224
+ * @throws WERR_INVALID_PARAMETER if storage returned an unrecognized output, more
225
+ * than one commission output, or a commission exceeding `maxCommission`.
226
+ */
227
+ function verifyUnrequestedOutputsAreChangeOrCommission(storageOutputs, args, maxCommission = exports.MAX_STORAGE_COMMISSION_SATOSHIS) {
228
+ let commissionCount = 0;
229
+ for (let i = args.outputs.length; i < storageOutputs.length; i++) {
230
+ const out = storageOutputs[i];
231
+ const isChange = out.providedBy === 'storage' && out.purpose === 'change';
232
+ if (isChange)
233
+ continue;
234
+ // Honest storage remaps a service-charge to purpose 'storage-commission';
235
+ // accept the pre-remap label too so the check is robust across versions.
236
+ const isCommission = out.providedBy === 'storage' && (out.purpose === 'storage-commission' || out.purpose === 'service-charge');
237
+ if (isCommission) {
238
+ commissionCount++;
239
+ if (commissionCount > 1) {
240
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('storage outputs', `at most one commission output. Storage returned an extra commission output at index ${i}.`);
241
+ }
242
+ if (out.satoshis > maxCommission) {
243
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('output.satoshis', `a commission no greater than ${maxCommission}. Storage returned a commission of ${out.satoshis} at index ${i}; funds could be redirected to an attacker.`);
244
+ }
245
+ continue;
246
+ }
247
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('storage outputs', 'only change or commission beyond the requested outputs. Storage returned an unrecognized output ' +
248
+ `(providedBy='${out.providedBy}' purpose='${out.purpose ?? ''}') at index ${i}; funds could be redirected to an attacker.`);
249
+ }
250
+ }
135
251
  /**
136
252
  * Derive a change output locking script
137
253
  */
@@ -1 +1 @@
1
- {"version":3,"file":"buildSignableTransaction.js","sourceRoot":"","sources":["../../../../src/signer/methods/buildSignableTransaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buildSignableTransaction.js","sourceRoot":"","sources":["../../../../src/signer/methods/buildSignableTransaction.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"processAction.d.ts","sourceRoot":"","sources":["../../../../src/storage/methods/processAction.ts"],"names":[],"mappings":"AACA,OAAO,EACL,IAAI,EAEJ,cAAc,EAEd,qBAAqB,EACtB,MAAM,UAAU,CAAA;AAEjB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EACL,MAAM,EACN,kBAAkB,EAClB,wBAAwB,EACxB,2BAA2B,EAC5B,MAAM,oCAAoC,CAAA;AAU3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAExE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAQ9D,wBAAsB,aAAa,CACjC,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,2BAA2B,CAAC,CA0CtC;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,gBAAgB,CAAA;IACtB,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,MAAM,EAAE,aAAa,GAAG,aAAa,GAAG,OAAO,GAAG,SAAS,CAAA;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE,oBAAoB,EAAE,CAAA;CAChC;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAA;IAEZ;;OAEG;IACH,MAAM,EAAE,SAAS,GAAG,OAAO,CAAA;IAE3B;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IAEtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AA6CD,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EAAE,EACf,SAAS,EAAE,OAAO,EAClB,CAAC,CAAC,EAAE,oBAAoB,EACxB,MAAM,CAAC,EAAE,qBAAqB,GAC7B,OAAO,CAAC;IAAE,GAAG,EAAE,cAAc,EAAE,CAAC;IAAC,GAAG,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAA;CAAE,CAAC,CAuC3E;AAwLD,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,iBAAiB,CAAA;IACtB,GAAG,CAAC,EAAE,MAAM,CAAA;CACb"}
1
+ {"version":3,"file":"processAction.d.ts","sourceRoot":"","sources":["../../../../src/storage/methods/processAction.ts"],"names":[],"mappings":"AACA,OAAO,EACL,IAAI,EAEJ,cAAc,EAEd,qBAAqB,EACtB,MAAM,UAAU,CAAA;AAEjB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EACL,MAAM,EACN,kBAAkB,EAClB,wBAAwB,EACxB,2BAA2B,EAC5B,MAAM,oCAAoC,CAAA;AAU3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAExE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAU9D,wBAAsB,aAAa,CACjC,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,2BAA2B,CAAC,CA0CtC;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,gBAAgB,CAAA;IACtB,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,MAAM,EAAE,aAAa,GAAG,aAAa,GAAG,OAAO,GAAG,SAAS,CAAA;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE,oBAAoB,EAAE,CAAA;CAChC;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAA;IAEZ;;OAEG;IACH,MAAM,EAAE,SAAS,GAAG,OAAO,CAAA;IAE3B;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IAEtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAmFD,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EAAE,EACf,SAAS,EAAE,OAAO,EAClB,CAAC,CAAC,EAAE,oBAAoB,EACxB,MAAM,CAAC,EAAE,qBAAqB,GAC7B,OAAO,CAAC;IAAE,GAAG,EAAE,cAAc,EAAE,CAAC;IAAC,GAAG,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAA;CAAE,CAAC,CAyC3E;AAwLD,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,iBAAiB,CAAA;IACtB,GAAG,CAAC,EAAE,MAAM,CAAA;CACb"}
@@ -11,6 +11,8 @@ const EntityProvenTxReq_1 = require("../schema/entities/EntityProvenTxReq");
11
11
  const WERR_errors_1 = require("../../sdk/WERR_errors");
12
12
  const parseTxScriptOffsets_1 = require("../../utility/parseTxScriptOffsets");
13
13
  const utilityHelpers_noBuffer_1 = require("../../utility/utilityHelpers.noBuffer");
14
+ const WalletError_1 = require("../../sdk/WalletError");
15
+ const storageProviderHelpers_1 = require("../storageProviderHelpers");
14
16
  async function processAction(storage, auth, args) {
15
17
  const logger = args.logger;
16
18
  logger?.group('storage processAction');
@@ -76,12 +78,47 @@ async function verifyMergedBeef(storage, r, readyToSendReqs, logger) {
76
78
  }
77
79
  logger?.log('beef is valid');
78
80
  }
81
+ async function getReqDetailsForDelayedShare(storage, txids) {
82
+ const r = {
83
+ beef: new sdk_1.Beef(),
84
+ details: []
85
+ };
86
+ for (const txid of txids) {
87
+ const d = {
88
+ txid,
89
+ status: 'unknown'
90
+ };
91
+ r.details.push(d);
92
+ try {
93
+ d.proven = (0, utilityHelpers_1.verifyOneOrNone)(await storage.findProvenTxs({ partial: { txid } }));
94
+ if (d.proven != null) {
95
+ d.status = 'alreadySent';
96
+ continue;
97
+ }
98
+ d.req = (0, utilityHelpers_1.verifyOneOrNone)(await storage.findProvenTxReqs({ partial: { txid } }));
99
+ if (d.req == null) {
100
+ d.status = 'error';
101
+ d.error = `ERR_UNKNOWN_TXID: ${txid} was not found.`;
102
+ }
103
+ else {
104
+ (0, storageProviderHelpers_1.classifyReqStatus)(d, d.req);
105
+ }
106
+ }
107
+ catch (error_) {
108
+ const e = WalletError_1.WalletError.fromUnknown(error_);
109
+ d.error = `${e.name}: ${e.message}`;
110
+ }
111
+ }
112
+ return r;
113
+ }
79
114
  async function shareReqsWithWorld(storage, userId, txids, isDelayed, r, logger) {
80
115
  const swr = [];
81
116
  const ndr = undefined;
82
117
  if ((r == null) && txids.length < 1)
83
118
  return { swr, ndr };
84
- r ||= await storage.getReqsAndBeefToShareWithWorld(txids, []);
119
+ r ||= isDelayed
120
+ ? await getReqDetailsForDelayedShare(storage, txids)
121
+ : await storage.getReqsAndBeefToShareWithWorld(txids, []);
85
122
  const readyToSendReqs = [];
86
123
  classifyReqDetails(r.details, swr, readyToSendReqs);
87
124
  const readyToSendReqIds = readyToSendReqs.map(r => r.id);
@@ -1 +1 @@
1
- {"version":3,"file":"processAction.js","sourceRoot":"","sources":["../../../../src/storage/methods/processAction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processAction.js","sourceRoot":"","sources":["../../../../src/storage/methods/processAction.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bsv/wallet-toolbox",
3
- "version": "2.3.3",
3
+ "version": "2.4.0",
4
4
  "description": "BRC100 conforming wallet, wallet storage and wallet signer components",
5
5
  "main": "./out/src/index.js",
6
6
  "types": "./out/src/index.d.ts",
@@ -36,8 +36,8 @@
36
36
  "knex": "^3.2.10",
37
37
  "mysql2": "^3.22.5",
38
38
  "ws": "^8.21.0",
39
- "@bsv/auth-express-middleware": "^2.1.0",
40
- "@bsv/payment-express-middleware": "^2.1.0"
39
+ "@bsv/payment-express-middleware": "^2.1.0",
40
+ "@bsv/auth-express-middleware": "^2.1.0"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@jest/globals": "^30.4.1",