Port missing mainnet hotfixes to develop (!738, !645/!628 leftovers)

Summary

Several production hotfixes were applied directly to mainnet and never fully ported back to develop. This MR brings develop into parity with mainnet for the affected files, closing the entire develop..mainnet net diff except for one stray binary (see Not included below).

The gap was identified by reconciling git diff develop mainnet (the net, code-level difference) against the mainnet-only commits — most direct-to-mainnet fixes had already been re-applied to develop via separate MRs, leaving only the changes below.

Each change is a separate commit so it can be reviewed (or cherry-picked) per originating MR.

What's ported

!738 (merged) — [v1.128.2] Add signature count validation in TSS keysign (was entirely missing)

  • bifrost/tss/go-tss/keysign/notifier.go: reject keysign results where len(data) != len(n.messages) before sorting/verifying signatures, avoiding an out-of-bounds access. Itself a port of THORChain !4603.

!645 (merged) — Add Nu6.1 support (leftovers; bulk landed on develop via !643 (merged))

  • chain/zec/go/e2e_go_example.go, test/simulation/actors/zec_shielded_send.go: zec.BranchIdNu5 → zec.BranchIdNu61.
  • tools/recover-keyshare-backup/main.go: guard nil PubKeyEddsa and skip EdDSA recovery instead of dereferencing a nil pointer.

!628 (merged) — Fix ZEC pending UTXO reservations (leftovers; bulk already on develop)

  • .gitlab-ci.yml: copy ci/zcash-params/sapling-*.params into ~/.zcash-params in the test-simulation job (the params binaries are already on develop).
  • bifrost/pkg/chainclients/zcash/signer.go: comment quote normalization.

Not included

  • logs.tar.xz — an accidental 157 KB binary committed to mainnet in !631 (merged) ("Resolve UTXO Ordering Double spend vulnerability"). The actual fix is already on develop; the binary should be removed from mainnet rather than copied here. This is the only remaining develop..mainnet difference after this MR.

Already on develop (no action needed)

The remaining mainnet-only commits are already fully present on develop (zero net diff) and need no port:

  • Solvency checks + ZEC solvency runner (def8c6799)
  • [v1.127.1] retry failed radix txs (b2279bf01)
  • [v1.128.1] querier return empty memo (3602a7fbd)
  • Version bumps — both branches are at 1.129.4

Verification

  • The 6 ported files now match mainnet byte-for-byte (git diff mainnet -- <files> is empty).
  • go build ./bifrost/tss/go-tss/keysign/ passes.
  • zec.BranchIdNu61 is defined on develop (chain/zec/go/zec/zec.go); the zerolog log import used by the new nil-guard exists in the keyshare tool.

Merge request reports

Loading
Loading