diff options
author | MarcoFalke <falke.marco@gmail.com> | 2020-11-20 09:30:08 +0100 |
---|---|---|
committer | MarcoFalke <falke.marco@gmail.com> | 2020-11-20 09:30:12 +0100 |
commit | 3d632c3f49300e1e0c573b36d1200f16f2729d38 (patch) | |
tree | 8efa37fd8b86dfe627680db686f2e232d68b09e7 /test | |
parent | fdd068507d2694137d72638d87ea961e6f16a753 (diff) | |
parent | 7ffac12545328cadd92a3caec4f1c6ca7c127493 (diff) | |
download | bitcoin-3d632c3f49300e1e0c573b36d1200f16f2729d38.tar.xz |
Merge #20428: tests: shrink feature_taproot transfer of funds tx
7ffac12545328cadd92a3caec4f1c6ca7c127493 tests: shrink feature_taproot transfer of funds tx (Anthony Towns)
Pull request description:
When moving funds from node 1 to node 0 for the pre-activation tests, there can be a large number of inputs, potentially resulting in a tx that is larger than standardness rules allow, or that takes a long time to sign. This just takes the top 500 outputs, which is plenty (~90% of the wallet balance).
ACKs for top commit:
luke-jr:
utACK 7ffac12545328cadd92a3caec4f1c6ca7c127493
MarcoFalke:
cr ACK 7ffac12545328cadd92a3caec4f1c6ca7c127493
Tree-SHA512: 68445b4827dddb9a8e8614d61a68f5bbd7152557bf940be0a75741cb49deeff1566198da1a777ac66cb3fed93e64a30bf895875d6cc6ae9e48275e3febb620a6
Diffstat (limited to 'test')
-rwxr-xr-x | test/functional/feature_taproot.py | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/test/functional/feature_taproot.py b/test/functional/feature_taproot.py index 6e28cfb265..0f0fe8a34a 100755 --- a/test/functional/feature_taproot.py +++ b/test/functional/feature_taproot.py @@ -1442,17 +1442,23 @@ class TaprootTest(BitcoinTestFramework): self.nodes[1].generate(101) self.test_spenders(self.nodes[1], spenders_taproot_active(), input_counts=[1, 2, 2, 2, 2, 3]) - # Transfer funds to pre-taproot node. + # Transfer value of the largest 500 coins to pre-taproot node. addr = self.nodes[0].getnewaddress() + + unsp = self.nodes[1].listunspent() + unsp = sorted(unsp, key=lambda i: i['amount'], reverse=True) + unsp = unsp[:500] + rawtx = self.nodes[1].createrawtransaction( inputs=[{ 'txid': i['txid'], 'vout': i['vout'] - } for i in self.nodes[1].listunspent()], - outputs={addr: self.nodes[1].getbalance()}, + } for i in unsp], + outputs={addr: sum(i['amount'] for i in unsp)} ) rawtx = self.nodes[1].signrawtransactionwithwallet(rawtx)['hex'] - # Transaction is too large to fit into the mempool, so put it into a block + + # Mine a block with the transaction block = create_block(tmpl=self.nodes[1].getblocktemplate(NORMAL_GBT_REQUEST_PARAMS), txlist=[rawtx]) add_witness_commitment(block) block.rehash() |