Skip to content

Commit

Permalink
Merge bitcoin/bitcoin#29399: test: Fix utxo set hash serialisation si…
Browse files Browse the repository at this point in the history
…gnedness

fa0ceae test: Fix utxo set hash serialisation signedness (MarcoFalke)

Pull request description:

  It is unsigned in Bitcoin Core, so the tests should match it:

  https://github.com/bitcoin/bitcoin/blob/5b8990a1f3c49b0b02b7383c69e95320acbda13e/src/kernel/coinstats.cpp#L54

  Large positive values for the block height are too difficult to hit in tests, but it still seems fine to fix this.

  The bug was introduced when the code was written in 6ccc8fc.

  (Lowercase `i` means signed, see https://docs.python.org/3/library/struct.html#format-characters)

ACKs for top commit:
  epiccurious:
    Tested ACK fa0ceae.
  fjahr:
    utACK fa0ceae

Tree-SHA512: ab4405c74fb191fff8520b456d3a800cd084d616bb9ddca27d56b8e5c8969bd537490f6e204c1870dbb09a3e130b03b22a27b6644252a024059c200bbd9004e7
  • Loading branch information
fanquake committed Feb 12, 2024
2 parents 6868474 + fa0ceae commit 7d837b5
Showing 1 changed file with 1 addition and 3 deletions.
4 changes: 1 addition & 3 deletions test/functional/feature_utxo_set_hash.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
"""Test UTXO set hash value calculation in gettxoutsetinfo."""

import struct

from test_framework.messages import (
CBlock,
COutPoint,
Expand Down Expand Up @@ -58,7 +56,7 @@ def test_muhash_implementation(self):
continue

data = COutPoint(int(tx.rehash(), 16), n).serialize()
data += struct.pack("<i", height * 2 + coinbase)
data += (height * 2 + coinbase).to_bytes(4, "little")
data += tx_out.serialize()

muhash.insert(data)
Expand Down

0 comments on commit 7d837b5

Please sign in to comment.