elements/src/wallet/test
Andrew Chow 8e0cf4f90c
Merge bitcoin/bitcoin#27846: [coinselection] Increase SRD target by change_fee
1771daa815 [fuzz] Show that SRD budgets for non-dust change (Murch)
941b8c6539 [bug] Increase SRD target by change_fee (Murch)

Pull request description:

  I discovered via fuzzing of another coin selection approach that at extremely high feerates SRD may find input sets that lead to transactions without change outputs. This is an unintended outcome since SRD is meant to always produce a transaction with a change output—we use other algorithms to specifically search for changeless solutions.

  The issue occurs when the flat allowance of 50,000 ṩ for change is insufficient to pay for the creation of a change output with a non-dust amount, at and above 1,613 ṩ/vB. Increasing the change budget by `change_fee` makes SRD behave as expected at any feerates.

  Note: The intermittent failures of `test/functional/interface_usdt_mempool.py` are a known issue: https://github.com/bitcoin/bitcoin/issues/27380

ACKs for top commit:
  achow101:
    ACK 1771daa815
  S3RK:
    ACK 1771daa815

Tree-SHA512: 3f36a3e317ef0a711d0e409069c05032bff1d45403023f3728bf73dfd55ddd9e0dc2a9969d4d69fe0a426807ebb0bed1f54abfc05581409bfe42c327acf766d4
2023-06-23 16:57:11 -04:00
..
fuzz Merge bitcoin/bitcoin#27846: [coinselection] Increase SRD target by change_fee 2023-06-23 16:57:11 -04:00
coinselector_tests.cpp Merge bitcoin/bitcoin#27846: [coinselection] Increase SRD target by change_fee 2023-06-23 16:57:11 -04:00
db_tests.cpp test: Kill BOOST_ASSERT 2023-06-14 16:00:27 +01:00
feebumper_tests.cpp test: Remove unused txmempool include from tests 2022-10-18 14:02:09 +02:00
group_outputs_tests.cpp scripted-diff: Replace CreateMockWalletDB with CreateMockableWalletDB 2023-05-03 10:45:10 -04:00
init_test_fixture.cpp refactor: Replace string chain name constants with ChainTypes 2023-05-09 15:49:14 +02:00
init_test_fixture.h refactor: Replace string chain name constants with ChainTypes 2023-05-09 15:49:14 +02:00
init_tests.cpp move-only: Extract common/args and common/config.cpp from util/system 2023-04-19 10:48:30 +02:00
ismine_tests.cpp wallet, tests: Replace usage of dummy db with mockable db 2023-05-03 10:45:10 -04:00
psbt_wallet_tests.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
rpc_util_tests.cpp refactor: move Boost datetime usage to wallet 2022-10-01 11:41:53 +01:00
scriptpubkeyman_tests.cpp wallet, tests: Replace usage of dummy db with mockable db 2023-05-03 10:45:10 -04:00
spend_tests.cpp refactor: wallet, remove global 'ArgsManager' access 2023-02-15 15:49:45 -03:00
util.cpp wallet: Add GetPrefixCursor to DatabaseBatch 2023-06-01 13:09:08 -04:00
util.h wallet: Add GetPrefixCursor to DatabaseBatch 2023-06-01 13:09:08 -04:00
wallet_crypto_tests.cpp Move random test util code from setup_common to random 2023-02-06 12:26:04 -08:00
wallet_test_fixture.cpp Merge bitcoin/bitcoin#26715: Introduce MockableDatabase for wallet unit tests 2023-05-15 11:39:43 +01:00
wallet_test_fixture.h refactor: Replace string chain name constants with ChainTypes 2023-05-09 15:49:14 +02:00
wallet_tests.cpp test: Avoid BOOST_ASSERT macro 2023-05-31 15:42:40 +01:00
wallet_transaction_tests.cpp Add src/wallet/* code to wallet:: namespace 2022-01-06 22:14:16 -05:00
walletdb_tests.cpp test: Avoid BOOST_ASSERT macro 2023-05-31 15:42:40 +01:00
walletload_tests.cpp Merge bitcoin/bitcoin#27783: Add public Boost headers explicitly 2023-06-12 16:53:16 +01:00