bitcoin/src/wallet
glozow 381593c906
Merge bitcoin/bitcoin#24845: wallet: return error msg for "too-long-mempool-chain"
f3221d373a test: add wallet too-long-mempool-chain error coverage (furszy)
acf0119d24 wallet: return error msg for too-long-mempool-chain failure (furszy)

Pull request description:

  Fixes #23144.

  We currently return a general "Insufficient funds" from Coin
  Selection when we actually skipped unconfirmed UTXOs that
  surpassed the mempool ancestors limit.

  This PR make the error clearer by returning:
  "Unconfirmed UTXOs are available, but spending them creates
  a chain of transactions that will be rejected by the mempool"

  Also, added an early return from Coin Selection if the sum of
  the discarded coins decreases the available balance below the
  target amount.

ACKs for top commit:
  achow101:
    ACK f3221d373a
  S3RK:
    Code review ACK f3221d373a
  Xekyo:
    ACK f3221d373a

Tree-SHA512: 13e5824b75ac302280ff894560a4ebf32a74f32fe49ef8281f2bc99c0104b92cef33d3b143c6e131f3a07eafe64533af7fc60abff585142c134b9d6e531a6a66
2023-03-23 15:53:56 +00:00
..
rpc Merge bitcoin/bitcoin#26194: rpc, wallet: use the same next_index key in listdescriptors and importdescriptors 2023-03-08 12:15:31 -05:00
test wallet: single output groups filtering and grouping process 2023-03-06 09:45:40 -03:00
bdb.cpp clang-tidy: Fix modernize-use-default-member-init in headers 2023-01-31 11:50:10 +00:00
bdb.h clang-tidy: Fix modernize-use-default-member-init in headers 2023-01-31 11:50:10 +00:00
coincontrol.cpp Add src/wallet/* code to wallet:: namespace 2022-01-06 22:14:16 -05:00
coincontrol.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
coinselection.cpp wallet: remove unused methods 2023-03-08 10:32:30 -03:00
coinselection.h wallet: remove coin control arg from AutomaticCoinSelection 2023-03-08 19:03:40 -03:00
context.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
context.h Add src/wallet/* code to wallet:: namespace 2022-01-06 22:14:16 -05:00
crypter.cpp Add src/wallet/* code to wallet:: namespace 2022-01-06 22:14:16 -05:00
crypter.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
db.cpp Replace use of ArgsManager with DatabaseOptions 2022-03-16 08:26:28 +01:00
db.h clang-tidy: Fix modernize-use-default-member-init in headers 2023-01-31 11:50:10 +00:00
dump.cpp refactor: remove <util/system.h> include from wallet.h 2023-02-15 15:49:45 -03:00
dump.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
external_signer_scriptpubkeyman.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
external_signer_scriptpubkeyman.h wallet: set keypool_size instead of access global args manager 2023-02-15 15:49:44 -03:00
feebumper.cpp wallet: add outputs arguments to bumpfee and psbtbumpfee 2023-01-17 13:28:53 +02:00
feebumper.h wallet: add outputs arguments to bumpfee and psbtbumpfee 2023-01-17 13:28:53 +02:00
fees.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
fees.h Add src/wallet/* code to wallet:: namespace 2022-01-06 22:14:16 -05:00
init.cpp Remove -sysperms option 2023-02-05 08:09:16 +00:00
interfaces.cpp wallet: add outputs arguments to bumpfee and psbtbumpfee 2023-01-17 13:28:53 +02:00
ismine.h Add src/wallet/* code to wallet:: namespace 2022-01-06 22:14:16 -05:00
load.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
load.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
receive.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
receive.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
salvage.cpp refactor: wallet, remove global 'ArgsManager' access 2023-02-15 15:49:45 -03:00
salvage.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
scriptpubkeyman.cpp wallet: annotate bools in descriptor SPKM FillPSBT() 2023-02-23 11:46:29 +01:00
scriptpubkeyman.h wallet: set keypool_size instead of access global args manager 2023-02-15 15:49:44 -03:00
spend.cpp Merge bitcoin/bitcoin#24845: wallet: return error msg for "too-long-mempool-chain" 2023-03-23 15:53:56 +00:00
spend.h wallet: remove coin control arg from AutomaticCoinSelection 2023-03-08 19:03:40 -03:00
sqlite.cpp Merge bitcoin/bitcoin#25491: wallet: use Mutex for g_sqlite_mutex instead of GlobalMutex 2023-03-06 10:50:10 -05:00
sqlite.h Merge bitcoin/bitcoin#25491: wallet: use Mutex for g_sqlite_mutex instead of GlobalMutex 2023-03-06 10:50:10 -05:00
transaction.cpp Add src/wallet/* code to wallet:: namespace 2022-01-06 22:14:16 -05:00
transaction.h Merge bitcoin/bitcoin#26499: wallet: Abandon descendants of orphaned coinbases 2023-01-30 10:09:41 +00:00
wallet.cpp Merge bitcoin/bitcoin#25666: refactor: wallet, do not translate init options names 2023-03-19 12:24:21 +00:00
wallet.h wallet: remove unused methods 2023-03-08 10:32:30 -03:00
walletdb.cpp Use DataStream where possible 2023-01-26 10:44:05 +01:00
walletdb.h Use DataStream where possible 2023-01-26 10:44:05 +01:00
wallettool.cpp refactor: wallet, remove global 'ArgsManager' access 2023-02-15 15:49:45 -03:00
wallettool.h Add src/wallet/* code to wallet:: namespace 2022-01-06 22:14:16 -05:00
walletutil.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
walletutil.h Implement LegacyScriptPubKeyMan::MigrateToDescriptor 2022-08-25 16:25:53 -04:00