@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.
package/CHANGELOG.md CHANGED
@@ -6,6 +6,8 @@ attention to changes that materially alter behavior or extend functionality.
6
6
 
7
7
  ## wallet-toolbox (unreleased)
8
8
 
9
+ - Release prep for `2.4.0`: security fix for `GHSA-36f9-7rg5-cpf8`. `buildSignableTransaction` now verifies that storage-returned outputs match the caller's requested `args.outputs` before signing (rejects substituted/altered/reclassified/missing outputs), and rejects any unrequested output that isn't client-derived change or a single commission output bounded by `MAX_STORAGE_COMMISSION_SATOSHIS`. `WalletPermissionsManager.createAction` independently verifies requested outputs are present in the signable transaction before authorizing, as defense-in-depth. Protects against a malicious or compromised `StorageClient` operator substituting or injecting outputs that would be signed and broadcast without the caller's knowledge.
10
+
9
11
  - Release prep for `2.3.3`: add Arcade-first wallet service wiring, go-chaintracks
10
12
  live client/SSE support, resilient ARC/Arcade status handling, monitor
11
13
  rebroadcast safeguards, and callback-token redaction for Arcade SSE logs.
package/docs/client.md CHANGED
@@ -1341,6 +1341,7 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
1341
1341
  ```ts
1342
1342
  export interface ChaintracksChainTrackerOptions {
1343
1343
  maxRetries?: number;
1344
+ retryDelayMs?: number;
1344
1345
  }
1345
1346
  ```
1346
1347
 
@@ -17239,15 +17240,15 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
17239
17240
  | [getBeefForTransaction](#function-getbeeffortransaction) | [processAction](#function-processaction) | [verifyOneOrNone](#function-verifyoneornone) |
17240
17241
  | [getBeefForTxid](#function-getbeeffortxid) | [proveCertificate](#function-provecertificate) | [verifyOptionalHexString](#function-verifyoptionalhexstring) |
17241
17242
  | [getExchangeRatesIo](#function-getexchangeratesio) | [purgeDataIdb](#function-purgedataidb) | [verifyP2PKHOwnership](#function-verifyp2pkhownership) |
17242
- | [getIdentityKey](#function-getidentitykey) | [randomBytes](#function-randombytes) | [verifyTruthy](#function-verifytruthy) |
17243
- | [getListOutputsSpecOp](#function-getlistoutputsspecop) | [randomBytesBase64](#function-randombytesbase64) | [verifyUnlockScripts](#function-verifyunlockscripts) |
17244
- | [getProofs](#function-getproofs) | [randomBytesHex](#function-randombyteshex) | [wait](#function-wait) |
17245
- | [getSyncChunk](#function-getsyncchunk) | [readUInt32BE](#function-readuint32be) | [wocGetHeadersHeaderToBlockHeader](#function-wocgetheadersheadertoblockheader) |
17246
- | [getWhatsOnChainBlockHeaderByHash](#function-getwhatsonchainblockheaderbyhash) | [readUInt32LE](#function-readuint32le) | [workBNtoBuffer](#function-workbntobuffer) |
17247
- | [handlePostRawTxErrorResponse](#function-handlepostrawtxerrorresponse) | [redeemServiceCharges](#function-redeemservicecharges) | [writeUInt32BE](#function-writeuint32be) |
17248
- | [handleScriptHashHistoryCatch](#function-handlescripthashhistorycatch) | [resolveAutoSigned](#function-resolveautosigned) | [writeUInt32LE](#function-writeuint32le) |
17249
- | [handleScriptHashHistoryResponse](#function-handlescripthashhistoryresponse) | [restoreInputsToSpendable](#function-restoreinputstospendable) | |
17250
- | [handleUtxoConnReset](#function-handleutxoconnreset) | [reviewStatusIdb](#function-reviewstatusidb) | |
17243
+ | [getIdentityKey](#function-getidentitykey) | [randomBytes](#function-randombytes) | [verifyRequestedOutputsUnchanged](#function-verifyrequestedoutputsunchanged) |
17244
+ | [getListOutputsSpecOp](#function-getlistoutputsspecop) | [randomBytesBase64](#function-randombytesbase64) | [verifyTruthy](#function-verifytruthy) |
17245
+ | [getProofs](#function-getproofs) | [randomBytesHex](#function-randombyteshex) | [verifyUnlockScripts](#function-verifyunlockscripts) |
17246
+ | [getSyncChunk](#function-getsyncchunk) | [readUInt32BE](#function-readuint32be) | [verifyUnrequestedOutputsAreChangeOrCommission](#function-verifyunrequestedoutputsarechangeorcommission) |
17247
+ | [getWhatsOnChainBlockHeaderByHash](#function-getwhatsonchainblockheaderbyhash) | [readUInt32LE](#function-readuint32le) | [wait](#function-wait) |
17248
+ | [handlePostRawTxErrorResponse](#function-handlepostrawtxerrorresponse) | [redeemServiceCharges](#function-redeemservicecharges) | [wocGetHeadersHeaderToBlockHeader](#function-wocgetheadersheadertoblockheader) |
17249
+ | [handleScriptHashHistoryCatch](#function-handlescripthashhistorycatch) | [resolveAutoSigned](#function-resolveautosigned) | [workBNtoBuffer](#function-workbntobuffer) |
17250
+ | [handleScriptHashHistoryResponse](#function-handlescripthashhistoryresponse) | [restoreInputsToSpendable](#function-restoreinputstospendable) | [writeUInt32BE](#function-writeuint32be) |
17251
+ | [handleUtxoConnReset](#function-handleutxoconnreset) | [reviewStatusIdb](#function-reviewstatusidb) | [writeUInt32LE](#function-writeuint32le) |
17251
17252
 
17252
17253
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
17253
17254
 
@@ -20500,6 +20501,37 @@ export function verifyP2PKHOwnership(lockingScript: LockingScript, publicKey: Pu
20500
20501
 
20501
20502
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
20502
20503
 
20504
+ ---
20505
+ ##### Function: verifyRequestedOutputsUnchanged
20506
+
20507
+ Verify that the outputs returned by storage for caller-specified outputs match
20508
+ exactly what the caller requested in `args.outputs`.
20509
+
20510
+ The storage response (`StorageCreateActionResult.outputs`) is ordered, by
20511
+ contract, as: the caller's `args.outputs` in their original order, followed by
20512
+ the optional commission output, followed by storage-provided change outputs.
20513
+ Only the `vout` field is randomized when `randomizeOutputs` is set; the array
20514
+ order is stable. Therefore array index `i` (for `i < args.outputs.length`)
20515
+ corresponds to `args.outputs[i]`.
20516
+
20517
+ Because the locking script that is ultimately signed is taken from the storage
20518
+ response, an untrusted storage provider must not be allowed to alter the
20519
+ recipient script (or amount) of a caller-specified output. Any mismatch is a
20520
+ hard error. (GHSA-36f9-7rg5-cpf8)
20521
+
20522
+ ```ts
20523
+ export function verifyRequestedOutputsUnchanged(storageOutputs: StorageCreateTransactionSdkOutput[], args: Validation.ValidCreateActionArgs): void
20524
+ ```
20525
+
20526
+ See also: [StorageCreateTransactionSdkOutput](./client.md#interface-storagecreatetransactionsdkoutput)
20527
+
20528
+ Throws
20529
+
20530
+ WERR_INVALID_PARAMETER if storage omitted, reclassified, or modified
20531
+ any caller-specified output.
20532
+
20533
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
20534
+
20503
20535
  ---
20504
20536
  ##### Function: verifyTruthy
20505
20537
 
@@ -20533,6 +20565,42 @@ WERR_INVALID_PARAMETER if any unlocking script is invalid, if sourceTXID is inva
20533
20565
 
20534
20566
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
20535
20567
 
20568
+ ---
20569
+ ##### Function: verifyUnrequestedOutputsAreChangeOrCommission
20570
+
20571
+ Verify that every storage output beyond the caller's requested outputs is
20572
+ either a change output or the (single, bounded) commission output.
20573
+
20574
+ The storage response is ordered `[caller outputs][commission?][change...]`;
20575
+ `verifyRequestedOutputsUnchanged` already validates the caller region (indices
20576
+ `< args.outputs.length`). This checks the remainder.
20577
+
20578
+ Change outputs (`providedBy: 'storage', purpose: 'change'`) are safe at any
20579
+ amount: `buildSignableTransaction` ignores the storage-supplied script and
20580
+ re-derives it client-side (`makeChangeLock` / BRC-29 under the client's own
20581
+ change key), so a change output can only ever pay the client. A change output
20582
+ mislabeled by storage is therefore harmless.
20583
+
20584
+ The commission output's script, by contrast, is taken verbatim from storage
20585
+ and cannot be verified client-side. A malicious storage could inject an extra
20586
+ output — or relabel one as commission — to redirect funds to an attacker while
20587
+ the caller/UI only sees the requested recipients. To bound that, at most one
20588
+ commission output is allowed and its amount must not exceed `maxCommission`.
20589
+ Any other unrecognized output is rejected outright.
20590
+
20591
+ ```ts
20592
+ export function verifyUnrequestedOutputsAreChangeOrCommission(storageOutputs: StorageCreateTransactionSdkOutput[], args: Validation.ValidCreateActionArgs, maxCommission: number = MAX_STORAGE_COMMISSION_SATOSHIS): void
20593
+ ```
20594
+
20595
+ See also: [MAX_STORAGE_COMMISSION_SATOSHIS](./client.md#variable-max_storage_commission_satoshis), [StorageCreateTransactionSdkOutput](./client.md#interface-storagecreatetransactionsdkoutput)
20596
+
20597
+ Throws
20598
+
20599
+ WERR_INVALID_PARAMETER if storage returned an unrecognized output, more
20600
+ than one commission output, or a commission exceeding `maxCommission`.
20601
+
20602
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
20603
+
20536
20604
  ---
20537
20605
  ##### Function: wait
20538
20606
 
@@ -21109,16 +21177,16 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
21109
21177
 
21110
21178
  | | | |
21111
21179
  | --- | --- | --- |
21112
- | [ARGON2ID_DEFAULT_HASH_LENGTH](#variable-argon2id_default_hash_length) | [aggregateActionResults](#variable-aggregateactionresults) | [specOpFailedActions](#variable-specopfailedactions) |
21113
- | [ARGON2ID_DEFAULT_ITERATIONS](#variable-argon2id_default_iterations) | [brc29ProtocolID](#variable-brc29protocolid) | [specOpInvalidChange](#variable-specopinvalidchange) |
21114
- | [ARGON2ID_DEFAULT_MEMORY_KIB](#variable-argon2id_default_memory_kib) | [dirtyHashes](#variable-dirtyhashes) | [specOpNoSendActions](#variable-specopnosendactions) |
21115
- | [ARGON2ID_DEFAULT_PARALLELISM](#variable-argon2id_default_parallelism) | [getLabelToSpecOp](#variable-getlabeltospecop) | [specOpSetWalletChangeParams](#variable-specopsetwalletchangeparams) |
21116
- | [DEFAULT_PROFILE_ID](#variable-default_profile_id) | [logger](#variable-logger) | [specOpThrowReviewActions](#variable-specopthrowreviewactions) |
21117
- | [DEFAULT_SETTINGS](#variable-default_settings) | [maxChangeOutputsPerTransaction](#variable-maxchangeoutputspertransaction) | [specOpWalletBalance](#variable-specopwalletbalance) |
21180
+ | [ARGON2ID_DEFAULT_HASH_LENGTH](#variable-argon2id_default_hash_length) | [TESTNET_DEFAULT_SETTINGS](#variable-testnet_default_settings) | [queryOverlay](#variable-queryoverlay) |
21181
+ | [ARGON2ID_DEFAULT_ITERATIONS](#variable-argon2id_default_iterations) | [aggregateActionResults](#variable-aggregateactionresults) | [specOpFailedActions](#variable-specopfailedactions) |
21182
+ | [ARGON2ID_DEFAULT_MEMORY_KIB](#variable-argon2id_default_memory_kib) | [brc29ProtocolID](#variable-brc29protocolid) | [specOpInvalidChange](#variable-specopinvalidchange) |
21183
+ | [ARGON2ID_DEFAULT_PARALLELISM](#variable-argon2id_default_parallelism) | [dirtyHashes](#variable-dirtyhashes) | [specOpNoSendActions](#variable-specopnosendactions) |
21184
+ | [DEFAULT_PROFILE_ID](#variable-default_profile_id) | [getLabelToSpecOp](#variable-getlabeltospecop) | [specOpSetWalletChangeParams](#variable-specopsetwalletchangeparams) |
21185
+ | [DEFAULT_SETTINGS](#variable-default_settings) | [logger](#variable-logger) | [specOpThrowReviewActions](#variable-specopthrowreviewactions) |
21186
+ | [MAX_STORAGE_COMMISSION_SATOSHIS](#variable-max_storage_commission_satoshis) | [maxChangeOutputsPerTransaction](#variable-maxchangeoutputspertransaction) | [specOpWalletBalance](#variable-specopwalletbalance) |
21118
21187
  | [PBKDF2_NUM_ROUNDS](#variable-pbkdf2_num_rounds) | [maxPossibleSatoshis](#variable-maxpossiblesatoshis) | [transactionColumnsWithoutRawTx](#variable-transactioncolumnswithoutrawtx) |
21119
21188
  | [ProvenTxReqNonTerminalStatus](#variable-proventxreqnonterminalstatus) | [outputColumnsWithoutLockingScript](#variable-outputcolumnswithoutlockingscript) | [transformVerifiableCertificatesWithTrust](#variable-transformverifiablecertificateswithtrust) |
21120
21189
  | [ProvenTxReqTerminalStatus](#variable-proventxreqterminalstatus) | [parseResults](#variable-parseresults) | [validBulkHeaderFiles](#variable-validbulkheaderfiles) |
21121
- | [TESTNET_DEFAULT_SETTINGS](#variable-testnet_default_settings) | [queryOverlay](#variable-queryoverlay) | |
21122
21190
 
21123
21191
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
21124
21192
 
@@ -21201,6 +21269,15 @@ See also: [WalletSettings](./client.md#interface-walletsettings)
21201
21269
 
21202
21270
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
21203
21271
 
21272
+ ---
21273
+ ##### Variable: MAX_STORAGE_COMMISSION_SATOSHIS
21274
+
21275
+ ```ts
21276
+ MAX_STORAGE_COMMISSION_SATOSHIS = 500000
21277
+ ```
21278
+
21279
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
21280
+
21204
21281
  ---
21205
21282
  ##### Variable: PBKDF2_NUM_ROUNDS
21206
21283
 
package/docs/services.md CHANGED
@@ -999,6 +999,7 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
999
999
  ```ts
1000
1000
  export interface ChaintracksChainTrackerOptions {
1001
1001
  maxRetries?: number;
1002
+ retryDelayMs?: number;
1002
1003
  }
1003
1004
  ```
1004
1005
 
package/docs/wallet.md CHANGED
@@ -783,6 +783,7 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
783
783
  ```ts
784
784
  export interface ChaintracksChainTrackerOptions {
785
785
  maxRetries?: number;
786
+ retryDelayMs?: number;
786
787
  }
787
788
  ```
788
789
 
@@ -11754,57 +11755,58 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
11754
11755
 
11755
11756
  | | | |
11756
11757
  | --- | --- | --- |
11757
- | [WalletErrorFromJson](#function-walleterrorfromjson) | [handlePostRawTxErrorResponse](#function-handlepostrawtxerrorresponse) | [serializeBaseBlockHeaders](#function-serializebaseblockheaders) |
11758
- | [acquireDirectCertificate](#function-acquiredirectcertificate) | [handleScriptHashHistoryCatch](#function-handlescripthashhistorycatch) | [setDisableDoubleSpendCheckForTest](#function-setdisabledoublespendcheckfortest) |
11759
- | [addWork](#function-addwork) | [handleScriptHashHistoryResponse](#function-handlescripthashhistoryresponse) | [sha256Hash](#function-sha256hash) |
11760
- | [arcDefaultUrl](#function-arcdefaulturl) | [handleUtxoConnReset](#function-handleutxoconnreset) | [sha256HashOfBinaryFile](#function-sha256hashofbinaryfile) |
11761
- | [arcGorillaPoolUrl](#function-arcgorillapoolurl) | [internalizeAction](#function-internalizeaction) | [shareReqsWithWorld](#function-sharereqswithworld) |
11762
- | [arcadeDefaultUrl](#function-arcadedefaulturl) | [internalizeAction](#function-internalizeaction) | [signAction](#function-signaction) |
11763
- | [arraysEqual](#function-arraysequal) | [isArcAcceptedTxStatus](#function-isarcacceptedtxstatus) | [stampLog](#function-stamplog) |
11764
- | [asArray](#function-asarray) | [isArcDoubleSpendTxStatus](#function-isarcdoublespendtxstatus) | [stampLogFormat](#function-stamplogformat) |
11765
- | [asBsvSdkPrivateKey](#function-asbsvsdkprivatekey) | [isArcInvalidTxStatus](#function-isarcinvalidtxstatus) | [subWork](#function-subwork) |
11766
- | [asBsvSdkPublickKey](#function-asbsvsdkpublickkey) | [isArcServiceErrorStatus](#function-isarcserviceerrorstatus) | [swapByteOrder](#function-swapbyteorder) |
11767
- | [asBsvSdkScript](#function-asbsvsdkscript) | [isBaseBlockHeader](#function-isbaseblockheader) | [throwDummyReviewActions](#function-throwdummyreviewactions) |
11768
- | [asBsvSdkTx](#function-asbsvsdktx) | [isBlockHeader](#function-isblockheader) | [toBinaryBaseBlockHeader](#function-tobinarybaseblockheader) |
11769
- | [asString](#function-asstring) | [isCreateActionSpecOp](#function-iscreateactionspecop) | [toLookupNetworkPreset](#function-tolookupnetworkpreset) |
11770
- | [asUint8Array](#function-asuint8array) | [isKnownValidBulkHeaderFile](#function-isknownvalidbulkheaderfile) | [toWalletNetwork](#function-towalletnetwork) |
11771
- | [attemptToPostReqsToNetwork](#function-attempttopostreqstonetwork) | [isListActionsSpecOp](#function-islistactionsspecop) | [transactionInputSize](#function-transactioninputsize) |
11772
- | [blockHash](#function-blockhash) | [isListOutputsSpecOp](#function-islistoutputsspecop) | [transactionOutputSize](#function-transactionoutputsize) |
11773
- | [buildSignableTransaction](#function-buildsignabletransaction) | [isLive](#function-islive) | [transactionSize](#function-transactionsize) |
11774
- | [classifyMerklePathResponse](#function-classifymerklepathresponse) | [isLiveBlockHeader](#function-isliveblockheader) | [updateChaintracksFiatExchangeRates](#function-updatechaintracksfiatexchangerates) |
11775
- | [classifyReqStatus](#function-classifyreqstatus) | [isMoreWork](#function-ismorework) | [updateExchangeratesapi](#function-updateexchangeratesapi) |
11776
- | [completeSignedTransaction](#function-completesignedtransaction) | [keyOffsetToHashedSecret](#function-keyoffsettohashedsecret) | [updateReqsFromAggregateResults](#function-updatereqsfromaggregateresults) |
11777
- | [computeMerklePath](#function-computemerklepath) | [listCertificates](#function-listcertificates) | [validBulkHeaderFilesByFileHash](#function-validbulkheaderfilesbyfilehash) |
11778
- | [computeMerkleRoot](#function-computemerkleroot) | [lockScriptWithKeyOffsetFromPubKey](#function-lockscriptwithkeyoffsetfrompubkey) | [validateAgainstDirtyHashes](#function-validateagainstdirtyhashes) |
11779
- | [convertBitsToTarget](#function-convertbitstotarget) | [logCreateActionArgs](#function-logcreateactionargs) | [validateBufferOfHeaders](#function-validatebufferofheaders) |
11780
- | [convertBitsToWork](#function-convertbitstowork) | [logWalletError](#function-logwalleterror) | [validateBulkFileData](#function-validatebulkfiledata) |
11781
- | [convertBufferToUint32](#function-convertbuffertouint32) | [makeAtomicBeef](#function-makeatomicbeef) | [validateDate](#function-validatedate) |
11782
- | [convertProofToMerklePath](#function-convertprooftomerklepath) | [makeChangeLock](#function-makechangelock) | [validateEntities](#function-validateentities) |
11783
- | [convertUint32ToBuffer](#function-convertuint32tobuffer) | [makeMerklePathNote](#function-makemerklepathnote) | [validateEntity](#function-validateentity) |
11784
- | [convertWocToBlockHeaderHex](#function-convertwoctoblockheaderhex) | [markStaleInputsAsSpent](#function-markstaleinputsasspent) | [validateGenerateChangeSdkParams](#function-validategeneratechangesdkparams) |
11785
- | [createAction](#function-createaction) | [markUserInputsSpent](#function-markuserinputsspent) | [validateGenerateChangeSdkResult](#function-validategeneratechangesdkresult) |
11786
- | [createAction](#function-createaction) | [maxDate](#function-maxdate) | [validateGenesisHeader](#function-validategenesisheader) |
11787
- | [createCoinbaseTransaction](#function-createcoinbasetransaction) | [mergeInputBeefs](#function-mergeinputbeefs) | [validateHeaderDifficulty](#function-validateheaderdifficulty) |
11788
- | [createDefaultWalletServicesOptions](#function-createdefaultwalletservicesoptions) | [mergeInputsIntoBeef](#function-mergeinputsintobeef) | [validateHeaderFormat](#function-validateheaderformat) |
11789
- | [createStorageServiceChargeScript](#function-createstorageservicechargescript) | [notifyTransactionsOfProof](#function-notifytransactionsofproof) | [validateScriptHash](#function-validatescripthash) |
11790
- | [createSyncMap](#function-createsyncmap) | [offsetPrivKey](#function-offsetprivkey) | [validateSecondsSinceEpoch](#function-validatesecondssinceepoch) |
11791
- | [deserializeBaseBlockHeader](#function-deserializebaseblockheader) | [offsetPubKey](#function-offsetpubkey) | [validateStorageFeeModel](#function-validatestoragefeemodel) |
11792
- | [deserializeBaseBlockHeaders](#function-deserializebaseblockheaders) | [optionalArraysEqual](#function-optionalarraysequal) | [validateSyncChunkEntities](#function-validatesyncchunkentities) |
11793
- | [deserializeBlockHeader](#function-deserializeblockheader) | [parseResults$](#function-parseresults$) | [varUintSize](#function-varuintsize) |
11794
- | [deserializeBlockHeaders](#function-deserializeblockheaders) | [parseTxScriptOffsets](#function-parsetxscriptoffsets) | [verifyHexString](#function-verifyhexstring) |
11795
- | [doubleSha256BE](#function-doublesha256be) | [populateUtxoDetails](#function-populateutxodetails) | [verifyId](#function-verifyid) |
11796
- | [doubleSha256LE](#function-doublesha256le) | [processAction](#function-processaction) | [verifyInteger](#function-verifyinteger) |
11797
- | [generateChangeSdk](#function-generatechangesdk) | [processAction](#function-processaction) | [verifyNumber](#function-verifynumber) |
11798
- | [generateChangeSdkMakeStorage](#function-generatechangesdkmakestorage) | [proveCertificate](#function-provecertificate) | [verifyOne](#function-verifyone) |
11799
- | [genesisBuffer](#function-genesisbuffer) | [randomBytes](#function-randombytes) | [verifyOneOrNone](#function-verifyoneornone) |
11800
- | [genesisHeader](#function-genesisheader) | [randomBytesBase64](#function-randombytesbase64) | [verifyOptionalHexString](#function-verifyoptionalhexstring) |
11801
- | [getBeefForTransaction](#function-getbeeffortransaction) | [randomBytesHex](#function-randombyteshex) | [verifyTruthy](#function-verifytruthy) |
11802
- | [getBeefForTxid](#function-getbeeffortxid) | [readUInt32BE](#function-readuint32be) | [verifyUnlockScripts](#function-verifyunlockscripts) |
11803
- | [getExchangeRatesIo](#function-getexchangeratesio) | [readUInt32LE](#function-readuint32le) | [wait](#function-wait) |
11804
- | [getIdentityKey](#function-getidentitykey) | [redeemServiceCharges](#function-redeemservicecharges) | [workBNtoBuffer](#function-workbntobuffer) |
11805
- | [getProofs](#function-getproofs) | [restoreInputsToSpendable](#function-restoreinputstospendable) | [writeUInt32BE](#function-writeuint32be) |
11806
- | [getSyncChunk](#function-getsyncchunk) | [selectBulkHeaderFiles](#function-selectbulkheaderfiles) | [writeUInt32LE](#function-writeuint32le) |
11807
- | [getWhatsOnChainBlockHeaderByHash](#function-getwhatsonchainblockheaderbyhash) | [serializeBaseBlockHeader](#function-serializebaseblockheader) | |
11758
+ | [WalletErrorFromJson](#function-walleterrorfromjson) | [handleScriptHashHistoryCatch](#function-handlescripthashhistorycatch) | [sha256Hash](#function-sha256hash) |
11759
+ | [acquireDirectCertificate](#function-acquiredirectcertificate) | [handleScriptHashHistoryResponse](#function-handlescripthashhistoryresponse) | [sha256HashOfBinaryFile](#function-sha256hashofbinaryfile) |
11760
+ | [addWork](#function-addwork) | [handleUtxoConnReset](#function-handleutxoconnreset) | [shareReqsWithWorld](#function-sharereqswithworld) |
11761
+ | [arcDefaultUrl](#function-arcdefaulturl) | [internalizeAction](#function-internalizeaction) | [signAction](#function-signaction) |
11762
+ | [arcGorillaPoolUrl](#function-arcgorillapoolurl) | [internalizeAction](#function-internalizeaction) | [stampLog](#function-stamplog) |
11763
+ | [arcadeDefaultUrl](#function-arcadedefaulturl) | [isArcAcceptedTxStatus](#function-isarcacceptedtxstatus) | [stampLogFormat](#function-stamplogformat) |
11764
+ | [arraysEqual](#function-arraysequal) | [isArcDoubleSpendTxStatus](#function-isarcdoublespendtxstatus) | [subWork](#function-subwork) |
11765
+ | [asArray](#function-asarray) | [isArcInvalidTxStatus](#function-isarcinvalidtxstatus) | [swapByteOrder](#function-swapbyteorder) |
11766
+ | [asBsvSdkPrivateKey](#function-asbsvsdkprivatekey) | [isArcServiceErrorStatus](#function-isarcserviceerrorstatus) | [throwDummyReviewActions](#function-throwdummyreviewactions) |
11767
+ | [asBsvSdkPublickKey](#function-asbsvsdkpublickkey) | [isBaseBlockHeader](#function-isbaseblockheader) | [toBinaryBaseBlockHeader](#function-tobinarybaseblockheader) |
11768
+ | [asBsvSdkScript](#function-asbsvsdkscript) | [isBlockHeader](#function-isblockheader) | [toLookupNetworkPreset](#function-tolookupnetworkpreset) |
11769
+ | [asBsvSdkTx](#function-asbsvsdktx) | [isCreateActionSpecOp](#function-iscreateactionspecop) | [toWalletNetwork](#function-towalletnetwork) |
11770
+ | [asString](#function-asstring) | [isKnownValidBulkHeaderFile](#function-isknownvalidbulkheaderfile) | [transactionInputSize](#function-transactioninputsize) |
11771
+ | [asUint8Array](#function-asuint8array) | [isListActionsSpecOp](#function-islistactionsspecop) | [transactionOutputSize](#function-transactionoutputsize) |
11772
+ | [attemptToPostReqsToNetwork](#function-attempttopostreqstonetwork) | [isListOutputsSpecOp](#function-islistoutputsspecop) | [transactionSize](#function-transactionsize) |
11773
+ | [blockHash](#function-blockhash) | [isLive](#function-islive) | [updateChaintracksFiatExchangeRates](#function-updatechaintracksfiatexchangerates) |
11774
+ | [buildSignableTransaction](#function-buildsignabletransaction) | [isLiveBlockHeader](#function-isliveblockheader) | [updateExchangeratesapi](#function-updateexchangeratesapi) |
11775
+ | [classifyMerklePathResponse](#function-classifymerklepathresponse) | [isMoreWork](#function-ismorework) | [updateReqsFromAggregateResults](#function-updatereqsfromaggregateresults) |
11776
+ | [classifyReqStatus](#function-classifyreqstatus) | [keyOffsetToHashedSecret](#function-keyoffsettohashedsecret) | [validBulkHeaderFilesByFileHash](#function-validbulkheaderfilesbyfilehash) |
11777
+ | [completeSignedTransaction](#function-completesignedtransaction) | [listCertificates](#function-listcertificates) | [validateAgainstDirtyHashes](#function-validateagainstdirtyhashes) |
11778
+ | [computeMerklePath](#function-computemerklepath) | [lockScriptWithKeyOffsetFromPubKey](#function-lockscriptwithkeyoffsetfrompubkey) | [validateBufferOfHeaders](#function-validatebufferofheaders) |
11779
+ | [computeMerkleRoot](#function-computemerkleroot) | [logCreateActionArgs](#function-logcreateactionargs) | [validateBulkFileData](#function-validatebulkfiledata) |
11780
+ | [convertBitsToTarget](#function-convertbitstotarget) | [logWalletError](#function-logwalleterror) | [validateDate](#function-validatedate) |
11781
+ | [convertBitsToWork](#function-convertbitstowork) | [makeAtomicBeef](#function-makeatomicbeef) | [validateEntities](#function-validateentities) |
11782
+ | [convertBufferToUint32](#function-convertbuffertouint32) | [makeChangeLock](#function-makechangelock) | [validateEntity](#function-validateentity) |
11783
+ | [convertProofToMerklePath](#function-convertprooftomerklepath) | [makeMerklePathNote](#function-makemerklepathnote) | [validateGenerateChangeSdkParams](#function-validategeneratechangesdkparams) |
11784
+ | [convertUint32ToBuffer](#function-convertuint32tobuffer) | [markStaleInputsAsSpent](#function-markstaleinputsasspent) | [validateGenerateChangeSdkResult](#function-validategeneratechangesdkresult) |
11785
+ | [convertWocToBlockHeaderHex](#function-convertwoctoblockheaderhex) | [markUserInputsSpent](#function-markuserinputsspent) | [validateGenesisHeader](#function-validategenesisheader) |
11786
+ | [createAction](#function-createaction) | [maxDate](#function-maxdate) | [validateHeaderDifficulty](#function-validateheaderdifficulty) |
11787
+ | [createAction](#function-createaction) | [mergeInputBeefs](#function-mergeinputbeefs) | [validateHeaderFormat](#function-validateheaderformat) |
11788
+ | [createCoinbaseTransaction](#function-createcoinbasetransaction) | [mergeInputsIntoBeef](#function-mergeinputsintobeef) | [validateScriptHash](#function-validatescripthash) |
11789
+ | [createDefaultWalletServicesOptions](#function-createdefaultwalletservicesoptions) | [notifyTransactionsOfProof](#function-notifytransactionsofproof) | [validateSecondsSinceEpoch](#function-validatesecondssinceepoch) |
11790
+ | [createStorageServiceChargeScript](#function-createstorageservicechargescript) | [offsetPrivKey](#function-offsetprivkey) | [validateStorageFeeModel](#function-validatestoragefeemodel) |
11791
+ | [createSyncMap](#function-createsyncmap) | [offsetPubKey](#function-offsetpubkey) | [validateSyncChunkEntities](#function-validatesyncchunkentities) |
11792
+ | [deserializeBaseBlockHeader](#function-deserializebaseblockheader) | [optionalArraysEqual](#function-optionalarraysequal) | [varUintSize](#function-varuintsize) |
11793
+ | [deserializeBaseBlockHeaders](#function-deserializebaseblockheaders) | [parseResults$](#function-parseresults$) | [verifyHexString](#function-verifyhexstring) |
11794
+ | [deserializeBlockHeader](#function-deserializeblockheader) | [parseTxScriptOffsets](#function-parsetxscriptoffsets) | [verifyId](#function-verifyid) |
11795
+ | [deserializeBlockHeaders](#function-deserializeblockheaders) | [populateUtxoDetails](#function-populateutxodetails) | [verifyInteger](#function-verifyinteger) |
11796
+ | [doubleSha256BE](#function-doublesha256be) | [processAction](#function-processaction) | [verifyNumber](#function-verifynumber) |
11797
+ | [doubleSha256LE](#function-doublesha256le) | [processAction](#function-processaction) | [verifyOne](#function-verifyone) |
11798
+ | [generateChangeSdk](#function-generatechangesdk) | [proveCertificate](#function-provecertificate) | [verifyOneOrNone](#function-verifyoneornone) |
11799
+ | [generateChangeSdkMakeStorage](#function-generatechangesdkmakestorage) | [randomBytes](#function-randombytes) | [verifyOptionalHexString](#function-verifyoptionalhexstring) |
11800
+ | [genesisBuffer](#function-genesisbuffer) | [randomBytesBase64](#function-randombytesbase64) | [verifyRequestedOutputsUnchanged](#function-verifyrequestedoutputsunchanged) |
11801
+ | [genesisHeader](#function-genesisheader) | [randomBytesHex](#function-randombyteshex) | [verifyTruthy](#function-verifytruthy) |
11802
+ | [getBeefForTransaction](#function-getbeeffortransaction) | [readUInt32BE](#function-readuint32be) | [verifyUnlockScripts](#function-verifyunlockscripts) |
11803
+ | [getBeefForTxid](#function-getbeeffortxid) | [readUInt32LE](#function-readuint32le) | [verifyUnrequestedOutputsAreChangeOrCommission](#function-verifyunrequestedoutputsarechangeorcommission) |
11804
+ | [getExchangeRatesIo](#function-getexchangeratesio) | [redeemServiceCharges](#function-redeemservicecharges) | [wait](#function-wait) |
11805
+ | [getIdentityKey](#function-getidentitykey) | [restoreInputsToSpendable](#function-restoreinputstospendable) | [workBNtoBuffer](#function-workbntobuffer) |
11806
+ | [getProofs](#function-getproofs) | [selectBulkHeaderFiles](#function-selectbulkheaderfiles) | [writeUInt32BE](#function-writeuint32be) |
11807
+ | [getSyncChunk](#function-getsyncchunk) | [serializeBaseBlockHeader](#function-serializebaseblockheader) | [writeUInt32LE](#function-writeuint32le) |
11808
+ | [getWhatsOnChainBlockHeaderByHash](#function-getwhatsonchainblockheaderbyhash) | [serializeBaseBlockHeaders](#function-serializebaseblockheaders) | |
11809
+ | [handlePostRawTxErrorResponse](#function-handlepostrawtxerrorresponse) | [setDisableDoubleSpendCheckForTest](#function-setdisabledoublespendcheckfortest) | |
11808
11810
 
11809
11811
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
11810
11812
 
@@ -14249,6 +14251,37 @@ export function verifyOptionalHexString(v?: string | null): string | undefined
14249
14251
 
14250
14252
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
14251
14253
 
14254
+ ---
14255
+ ##### Function: verifyRequestedOutputsUnchanged
14256
+
14257
+ Verify that the outputs returned by storage for caller-specified outputs match
14258
+ exactly what the caller requested in `args.outputs`.
14259
+
14260
+ The storage response (`StorageCreateActionResult.outputs`) is ordered, by
14261
+ contract, as: the caller's `args.outputs` in their original order, followed by
14262
+ the optional commission output, followed by storage-provided change outputs.
14263
+ Only the `vout` field is randomized when `randomizeOutputs` is set; the array
14264
+ order is stable. Therefore array index `i` (for `i < args.outputs.length`)
14265
+ corresponds to `args.outputs[i]`.
14266
+
14267
+ Because the locking script that is ultimately signed is taken from the storage
14268
+ response, an untrusted storage provider must not be allowed to alter the
14269
+ recipient script (or amount) of a caller-specified output. Any mismatch is a
14270
+ hard error. (GHSA-36f9-7rg5-cpf8)
14271
+
14272
+ ```ts
14273
+ export function verifyRequestedOutputsUnchanged(storageOutputs: StorageCreateTransactionSdkOutput[], args: Validation.ValidCreateActionArgs): void
14274
+ ```
14275
+
14276
+ See also: [StorageCreateTransactionSdkOutput](./client.md#interface-storagecreatetransactionsdkoutput)
14277
+
14278
+ Throws
14279
+
14280
+ WERR_INVALID_PARAMETER if storage omitted, reclassified, or modified
14281
+ any caller-specified output.
14282
+
14283
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
14284
+
14252
14285
  ---
14253
14286
  ##### Function: verifyTruthy
14254
14287
 
@@ -14282,6 +14315,42 @@ WERR_INVALID_PARAMETER if any unlocking script is invalid, if sourceTXID is inva
14282
14315
 
14283
14316
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
14284
14317
 
14318
+ ---
14319
+ ##### Function: verifyUnrequestedOutputsAreChangeOrCommission
14320
+
14321
+ Verify that every storage output beyond the caller's requested outputs is
14322
+ either a change output or the (single, bounded) commission output.
14323
+
14324
+ The storage response is ordered `[caller outputs][commission?][change...]`;
14325
+ `verifyRequestedOutputsUnchanged` already validates the caller region (indices
14326
+ `< args.outputs.length`). This checks the remainder.
14327
+
14328
+ Change outputs (`providedBy: 'storage', purpose: 'change'`) are safe at any
14329
+ amount: `buildSignableTransaction` ignores the storage-supplied script and
14330
+ re-derives it client-side (`makeChangeLock` / BRC-29 under the client's own
14331
+ change key), so a change output can only ever pay the client. A change output
14332
+ mislabeled by storage is therefore harmless.
14333
+
14334
+ The commission output's script, by contrast, is taken verbatim from storage
14335
+ and cannot be verified client-side. A malicious storage could inject an extra
14336
+ output — or relabel one as commission — to redirect funds to an attacker while
14337
+ the caller/UI only sees the requested recipients. To bound that, at most one
14338
+ commission output is allowed and its amount must not exceed `maxCommission`.
14339
+ Any other unrecognized output is rejected outright.
14340
+
14341
+ ```ts
14342
+ export function verifyUnrequestedOutputsAreChangeOrCommission(storageOutputs: StorageCreateTransactionSdkOutput[], args: Validation.ValidCreateActionArgs, maxCommission: number = MAX_STORAGE_COMMISSION_SATOSHIS): void
14343
+ ```
14344
+
14345
+ See also: [MAX_STORAGE_COMMISSION_SATOSHIS](./client.md#variable-max_storage_commission_satoshis), [StorageCreateTransactionSdkOutput](./client.md#interface-storagecreatetransactionsdkoutput)
14346
+
14347
+ Throws
14348
+
14349
+ WERR_INVALID_PARAMETER if storage returned an unrecognized output, more
14350
+ than one commission output, or a commission exceeding `maxCommission`.
14351
+
14352
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
14353
+
14285
14354
  ---
14286
14355
  ##### Function: wait
14287
14356
 
@@ -14763,16 +14832,17 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
14763
14832
  | | |
14764
14833
  | --- | --- |
14765
14834
  | [DEFAULT_SETTINGS](#variable-default_settings) | [parseResults](#variable-parseresults) |
14766
- | [ProvenTxReqNonTerminalStatus](#variable-proventxreqnonterminalstatus) | [queryOverlay](#variable-queryoverlay) |
14767
- | [ProvenTxReqTerminalStatus](#variable-proventxreqterminalstatus) | [specOpFailedActions](#variable-specopfailedactions) |
14768
- | [TESTNET_DEFAULT_SETTINGS](#variable-testnet_default_settings) | [specOpInvalidChange](#variable-specopinvalidchange) |
14769
- | [aggregateActionResults](#variable-aggregateactionresults) | [specOpNoSendActions](#variable-specopnosendactions) |
14770
- | [brc29ProtocolID](#variable-brc29protocolid) | [specOpSetWalletChangeParams](#variable-specopsetwalletchangeparams) |
14771
- | [dirtyHashes](#variable-dirtyhashes) | [specOpThrowReviewActions](#variable-specopthrowreviewactions) |
14772
- | [logger](#variable-logger) | [specOpWalletBalance](#variable-specopwalletbalance) |
14773
- | [maxChangeOutputsPerTransaction](#variable-maxchangeoutputspertransaction) | [transactionColumnsWithoutRawTx](#variable-transactioncolumnswithoutrawtx) |
14774
- | [maxPossibleSatoshis](#variable-maxpossiblesatoshis) | [transformVerifiableCertificatesWithTrust](#variable-transformverifiablecertificateswithtrust) |
14775
- | [outputColumnsWithoutLockingScript](#variable-outputcolumnswithoutlockingscript) | [validBulkHeaderFiles](#variable-validbulkheaderfiles) |
14835
+ | [MAX_STORAGE_COMMISSION_SATOSHIS](#variable-max_storage_commission_satoshis) | [queryOverlay](#variable-queryoverlay) |
14836
+ | [ProvenTxReqNonTerminalStatus](#variable-proventxreqnonterminalstatus) | [specOpFailedActions](#variable-specopfailedactions) |
14837
+ | [ProvenTxReqTerminalStatus](#variable-proventxreqterminalstatus) | [specOpInvalidChange](#variable-specopinvalidchange) |
14838
+ | [TESTNET_DEFAULT_SETTINGS](#variable-testnet_default_settings) | [specOpNoSendActions](#variable-specopnosendactions) |
14839
+ | [aggregateActionResults](#variable-aggregateactionresults) | [specOpSetWalletChangeParams](#variable-specopsetwalletchangeparams) |
14840
+ | [brc29ProtocolID](#variable-brc29protocolid) | [specOpThrowReviewActions](#variable-specopthrowreviewactions) |
14841
+ | [dirtyHashes](#variable-dirtyhashes) | [specOpWalletBalance](#variable-specopwalletbalance) |
14842
+ | [logger](#variable-logger) | [transactionColumnsWithoutRawTx](#variable-transactioncolumnswithoutrawtx) |
14843
+ | [maxChangeOutputsPerTransaction](#variable-maxchangeoutputspertransaction) | [transformVerifiableCertificatesWithTrust](#variable-transformverifiablecertificateswithtrust) |
14844
+ | [maxPossibleSatoshis](#variable-maxpossiblesatoshis) | [validBulkHeaderFiles](#variable-validbulkheaderfiles) |
14845
+ | [outputColumnsWithoutLockingScript](#variable-outputcolumnswithoutlockingscript) | |
14776
14846
 
14777
14847
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
14778
14848
 
@@ -14810,6 +14880,15 @@ See also: [WalletSettings](./client.md#interface-walletsettings)
14810
14880
 
14811
14881
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
14812
14882
 
14883
+ ---
14884
+ ##### Variable: MAX_STORAGE_COMMISSION_SATOSHIS
14885
+
14886
+ ```ts
14887
+ MAX_STORAGE_COMMISSION_SATOSHIS = 500000
14888
+ ```
14889
+
14890
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
14891
+
14813
14892
  ---
14814
14893
  ##### Variable: ProvenTxReqNonTerminalStatus
14815
14894
 
@@ -838,6 +838,25 @@ export declare class WalletPermissionsManager implements WalletInterface {
838
838
  * accounting for foreign (originator-provided) inputs and outputs plus the fee.
839
839
  * Also builds the line items list for the spending authorization request.
840
840
  */
841
+ /**
842
+ * Defense-in-depth verification that each caller-requested output (locking
843
+ * script + amount) is present in the transaction returned for signing.
844
+ *
845
+ * The scripts in the signable transaction originate from storage. A malicious
846
+ * or compromised remote storage provider could substitute a different
847
+ * recipient script for a caller-specified output. The signer
848
+ * (buildSignableTransaction) rejects this at the source; this is an
849
+ * independent check at the permissions layer so the substitution is caught
850
+ * regardless of how the signable transaction was produced.
851
+ *
852
+ * Outputs are matched as a multiset on (lockingScript, satoshis): the
853
+ * transaction also contains change/commission outputs and the output order is
854
+ * randomized by default, and a caller may legitimately request the same
855
+ * script+amount more than once.
856
+ *
857
+ * @throws Error if any caller-requested output is absent from the transaction.
858
+ */
859
+ private verifyRequestedOutputsPresent;
841
860
  private computeNetSpend;
842
861
  signAction(...args: Parameters<WalletInterface['signAction']>): ReturnType<WalletInterface['signAction']>;
843
862
  abortAction(...args: Parameters<WalletInterface['abortAction']>): ReturnType<WalletInterface['abortAction']>;
@@ -1 +1 @@
1
- {"version":3,"file":"WalletPermissionsManager.d.ts","sourceRoot":"","sources":["../../src/WalletPermissionsManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WalletPermissionsManager.d.ts","sourceRoot":"","sources":["../../src/WalletPermissionsManager.ts"],"names":[],"mappings":"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"}
@@ -2776,6 +2776,21 @@ class WalletPermissionsManager {
2776
2776
  // 7) Parse the signable tx to determine net spend, then gate on spending authorization.
2777
2777
  const tx = sdk_1.Transaction.fromAtomicBEEF(createResult.signableTransaction.tx);
2778
2778
  const reference = createResult.signableTransaction.reference;
2779
+ // 7a) SECURITY (GHSA-36f9-7rg5-cpf8) defense-in-depth: confirm every
2780
+ // caller-requested output actually appears in the transaction we are about to
2781
+ // authorize and sign. The locking scripts in the signable transaction
2782
+ // originate from storage; a malicious or compromised remote storage provider
2783
+ // could substitute a recipient script, which would then be signed and
2784
+ // broadcast while this manager's caller/UI still shows the requested
2785
+ // recipient. The signer (buildSignableTransaction) rejects this at the
2786
+ // source; this is an independent check at the permissions layer.
2787
+ try {
2788
+ this.verifyRequestedOutputsPresent(tx, args);
2789
+ }
2790
+ catch (err) {
2791
+ await this.underlying.abortAction({ reference });
2792
+ throw err;
2793
+ }
2779
2794
  const { netSpent, lineItems } = this.computeNetSpend(tx, args, originalInputDescriptions, originalOutputDescriptions);
2780
2795
  // 8) If netSpent > 0, require spending authorization. Abort if denied.
2781
2796
  if (netSpent > 0) {
@@ -2869,6 +2884,46 @@ class WalletPermissionsManager {
2869
2884
  * accounting for foreign (originator-provided) inputs and outputs plus the fee.
2870
2885
  * Also builds the line items list for the spending authorization request.
2871
2886
  */
2887
+ /**
2888
+ * Defense-in-depth verification that each caller-requested output (locking
2889
+ * script + amount) is present in the transaction returned for signing.
2890
+ *
2891
+ * The scripts in the signable transaction originate from storage. A malicious
2892
+ * or compromised remote storage provider could substitute a different
2893
+ * recipient script for a caller-specified output. The signer
2894
+ * (buildSignableTransaction) rejects this at the source; this is an
2895
+ * independent check at the permissions layer so the substitution is caught
2896
+ * regardless of how the signable transaction was produced.
2897
+ *
2898
+ * Outputs are matched as a multiset on (lockingScript, satoshis): the
2899
+ * transaction also contains change/commission outputs and the output order is
2900
+ * randomized by default, and a caller may legitimately request the same
2901
+ * script+amount more than once.
2902
+ *
2903
+ * @throws Error if any caller-requested output is absent from the transaction.
2904
+ */
2905
+ verifyRequestedOutputsPresent(tx, args) {
2906
+ const requested = args.outputs || [];
2907
+ if (requested.length === 0)
2908
+ return;
2909
+ // All transaction outputs as (script hex, satoshis); each may satisfy at
2910
+ // most one requested output.
2911
+ const available = tx.outputs.map(o => ({
2912
+ script: o.lockingScript.toHex().toLowerCase(),
2913
+ satoshis: o.satoshis,
2914
+ used: false
2915
+ }));
2916
+ for (let i = 0; i < requested.length; i++) {
2917
+ const wantScript = (requested[i].lockingScript ?? '').toLowerCase();
2918
+ const wantSats = requested[i].satoshis;
2919
+ const match = available.find(a => !a.used && a.script === wantScript && a.satoshis === wantSats);
2920
+ if (match == null) {
2921
+ throw new Error(`The transaction returned for signing does not contain caller-requested output ${i} ` +
2922
+ `(locking script and amount). The recipient may have been substituted by storage.`);
2923
+ }
2924
+ match.used = true;
2925
+ }
2926
+ }
2872
2927
  computeNetSpend(tx, args, originalInputDescriptions, originalOutputDescriptions) {
2873
2928
  const lineItems = [];
2874
2929
  // Sum originator-provided inputs: