diff options
author | MarcoFalke <falke.marco@gmail.com> | 2019-08-20 13:50:38 -0400 |
---|---|---|
committer | MarcoFalke <falke.marco@gmail.com> | 2019-08-20 13:54:42 -0400 |
commit | 70b12af87eb036623f5dd1f3a519efe6c156570d (patch) | |
tree | 58e8e9aa34c31cfd4c891549d803846f3bb9c280 /test/functional | |
parent | e00ecb3d7aaee463643e486ca03c318e192b8058 (diff) | |
parent | 17d178fb9463c195c822614eb0245188e52f8371 (diff) | |
download | bitcoin-70b12af87eb036623f5dd1f3a519efe6c156570d.tar.xz |
Merge #16647: rpc: add weight to getmempoolentry output
17d178fb9463c195c822614eb0245188e52f8371 doc: add release-notes for getmempoolentry weight field addition (fanquake)
9c9cc2bd201afc7d519778cfcdeba5c81faa49f4 qa: Add RPC tests for weight in mempool entry (Daniel Edgecumbe)
54aaa7883cb61d414627248e5e410180bfd8fa67 RPC: add weight to mempool entry output (Daniel Edgecumbe)
Pull request description:
Rebase of #14649 (which itself was a rebase of #11256).
Squash the two test related commits, and swapped out `size` usage for `vsize`.
Added a commit with release notes.
ACKs for top commit:
emilengler:
Concept ACK 17d178f
instagibbs:
utACK https://github.com/bitcoin/bitcoin/pull/16647/commits/17d178fb9463c195c822614eb0245188e52f8371
meshcollider:
utACK 17d178fb9463c195c822614eb0245188e52f8371
Tree-SHA512: 1d354c9837e0ad0afa40325de9329b9e62688d5eab4d9e1cf9b46d8ae29d08f42d903ab37a41751c2ea8f9034231b21095881b1f5d911cb542b8b06bc85dc7cd
Diffstat (limited to 'test/functional')
-rwxr-xr-x | test/functional/feature_segwit.py | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/test/functional/feature_segwit.py b/test/functional/feature_segwit.py index d47065d1cb..b9db618575 100755 --- a/test/functional/feature_segwit.py +++ b/test/functional/feature_segwit.py @@ -226,6 +226,16 @@ class SegWitTest(BitcoinTestFramework): assert tx.wit.is_null() # This should not be a segwit input assert txid1 in self.nodes[0].getrawmempool() + tx1_hex = self.nodes[0].gettransaction(txid1)['hex'] + tx1 = FromHex(CTransaction(), tx1_hex) + + # Check that wtxid is properly reported in mempool entry (txid1) + assert_equal(int(self.nodes[0].getmempoolentry(txid1)["wtxid"], 16), tx1.calc_sha256(True)) + + # Check that weight and vsize are properly reported in mempool entry (txid1) + assert_equal(self.nodes[0].getmempoolentry(txid1)["vsize"], (self.nodes[0].getmempoolentry(txid1)["weight"] + 3) // 4) + assert_equal(self.nodes[0].getmempoolentry(txid1)["weight"], len(tx1.serialize_without_witness())*3 + len(tx1.serialize_with_witness())) + # Now create tx2, which will spend from txid1. tx = CTransaction() tx.vin.append(CTxIn(COutPoint(int(txid1, 16), 0), b'')) @@ -235,6 +245,13 @@ class SegWitTest(BitcoinTestFramework): tx = FromHex(CTransaction(), tx2_hex) assert not tx.wit.is_null() + # Check that wtxid is properly reported in mempool entry (txid2) + assert_equal(int(self.nodes[0].getmempoolentry(txid2)["wtxid"], 16), tx.calc_sha256(True)) + + # Check that weight and vsize are properly reported in mempool entry (txid2) + assert_equal(self.nodes[0].getmempoolentry(txid2)["vsize"], (self.nodes[0].getmempoolentry(txid2)["weight"] + 3) // 4) + assert_equal(self.nodes[0].getmempoolentry(txid2)["weight"], len(tx.serialize_without_witness())*3 + len(tx.serialize_with_witness())) + # Now create tx3, which will spend from txid2 tx = CTransaction() tx.vin.append(CTxIn(COutPoint(int(txid2, 16), 0), b"")) @@ -251,9 +268,13 @@ class SegWitTest(BitcoinTestFramework): assert txid2 in template_txids assert txid3 in template_txids - # Check that wtxid is properly reported in mempool entry + # Check that wtxid is properly reported in mempool entry (txid3) assert_equal(int(self.nodes[0].getmempoolentry(txid3)["wtxid"], 16), tx.calc_sha256(True)) + # Check that weight and vsize are properly reported in mempool entry (txid3) + assert_equal(self.nodes[0].getmempoolentry(txid3)["vsize"], (self.nodes[0].getmempoolentry(txid3)["weight"] + 3) // 4) + assert_equal(self.nodes[0].getmempoolentry(txid3)["weight"], len(tx.serialize_without_witness())*3 + len(tx.serialize_with_witness())) + # Mine a block to clear the gbt cache again. self.nodes[0].generate(1) |