Description
MultiSigEscrowClient._validateInitParams (src/escrow/multisig.ts) implements seven distinct validation rules for initMultiSigOperation — missing escrowId, empty signers, threshold < 1, threshold > signers.length, missing unsignedXdr, missing networkPassphrase, a networkPassphrase mismatch against this.config.networkPassphrase, and duplicate signer addresses — each returning a distinct { ok: false, error } message. tests/multisig.test.ts exists, but it's worth confirming (and, per this audit, several of these specific negative branches — particularly the networkPassphrase mismatch and the duplicate-signers check — don't appear to have a dedicated assertion) that every one of these seven validation branches has its own explicit test case, since a regression in any single one would silently let an invalid multi-sig operation through.
Component
SDK
Difficulty
🟡 Medium
Tasks
Acceptance Criteria
Estimated Time
1-2 days
Description
MultiSigEscrowClient._validateInitParams(src/escrow/multisig.ts) implements seven distinct validation rules forinitMultiSigOperation— missingescrowId, emptysigners,threshold < 1,threshold > signers.length, missingunsignedXdr, missingnetworkPassphrase, anetworkPassphrasemismatch againstthis.config.networkPassphrase, and duplicate signer addresses — each returning a distinct{ ok: false, error }message.tests/multisig.test.tsexists, but it's worth confirming (and, per this audit, several of these specific negative branches — particularly thenetworkPassphrasemismatch and the duplicate-signers check — don't appear to have a dedicated assertion) that every one of these seven validation branches has its own explicit test case, since a regression in any single one would silently let an invalid multi-sig operation through.Component
SDK
Difficulty
🟡 Medium
Tasks
tests/multisig.test.tsagainst all seven branches in_validateInitParamsand add any missing negative test cases (especially thenetworkPassphrasemismatch and duplicate-signers checks)threshold === signers.length(the boundary, valid case) andthreshold > signers.length(invalid) to confirm the boundary is handled correctlyaddSignaturecorrectly rejects a signer not inparams.signerswith the exact "not an authorised signer" messageAcceptance Criteria
_validateInitParamshas a corresponding explicit negative test caseEstimated Time
1-2 days