bitcoin/test/functional/test_framework
Sebastian Falbesoner d2c4904ef7 test: MiniWallet: more deterministic coin selection for coinbase UTXOs (oldest first)
The coin selection strategy for MiniWallet is quite straight-forward: simply
pick a single UTXO with the largest value:

self._utxos = sorted(self._utxos, key=lambda k: k['value'])
utxo_to_spend = utxo_to_spend or self._utxos.pop()

If there are several candidates with the same value, however, it is not clear
which one is taken.  This can be particularly problematic for coinbase outputs
with fixed block subsidy, since spending could lead to a
'bad-txns-premature-spend-of-coinbase' reject if an UTXO from a too-recent
block is picked.  Introduce block height as second criteria (saved in
self._utxos in the methods generate(...) and rescan_utxos(...)), in order to
avoid potential issues with coinbases that are not matured yet.
2021-10-27 17:49:53 +02:00
..
__init__.py Rename rpc-tests directory to functional 2017-03-20 10:40:31 -04:00
address.py test: refactor: remove hex_str_to_bytes helper 2021-08-01 19:26:51 +02:00
authproxy.py test: Remove Windows workaround in authproxy 2021-09-25 09:33:16 +02:00
bdb.py test: refactor: remove binascii from test_framework 2021-08-04 19:59:13 +01:00
bip340_test_vectors.csv tests: add BIP340 Schnorr signature support to test framework 2020-10-12 17:18:47 -07:00
blocktools.py test: add script_util helper for creating bare multisig scripts 2021-10-26 14:51:18 +02:00
coverage.py test: add type annotations to util.get_rpc_proxy 2021-07-27 11:26:14 +08:00
descriptors.py Output a descriptor in createmultisig and addmultisigaddress 2020-01-30 23:55:36 -05:00
key.py test: remove unused function xor_bytes 2021-02-09 17:58:21 +01:00
messages.py refactor: replace remaining binascii method calls 2021-08-16 19:30:56 +01:00
muhash.py test: Change MuHash Python implementation to match cpp version again 2020-12-22 01:48:34 +01:00
netutil.py test: refactor: remove binascii from test_framework 2021-08-04 19:59:13 +01:00
p2p.py test: use test_framework.p2p P2P_SERVICES in functional tests 2021-09-19 14:20:48 +02:00
script.py Correction for VerifyTaprootCommitment comments 2021-03-01 09:01:48 -05:00
script_util.py test: add script_util helper for creating bare multisig scripts 2021-10-26 14:51:18 +02:00
segwit_addr.py Use Bech32m encoding for v1+ segwit addresses 2021-03-16 10:48:36 -07:00
siphash.py Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
socks5.py scripted-diff: Update copyright in ./test 2019-03-02 10:58:35 -05:00
test_framework.py Make explicit the node param in init_wallet() 2021-10-20 00:30:28 -03:00
test_node.py test: Delete generate* calls from TestNode 2021-10-06 13:41:08 +02:00
test_shell.py TestShell: Return self from setup() 2019-11-05 12:55:52 +01:00
util.py Merge bitcoin/bitcoin#23136: test: update fee rate assertion helper in the functional test framework 2021-10-01 10:54:23 +02:00
wallet.py test: MiniWallet: more deterministic coin selection for coinbase UTXOs (oldest first) 2021-10-27 17:49:53 +02:00
wallet_util.py test: add script_util helper for creating bare multisig scripts 2021-10-26 14:51:18 +02:00