0
0
Fork 0
mirror of https://github.com/bitcoin/bitcoin.git synced 2025-02-05 10:17:30 -05:00
bitcoin-bitcoin-core/src/wallet
Samuel Dobson 6b254814c0
Merge bitcoin/bitcoin#17331: Use effective values throughout coin selection
51a3ac242c Have OutputGroup determine the value to use (Andrew Chow)
6d6d278475 Change SelectCoins_test to actually test SelectCoins (Andrew Chow)
9d3bd74ab4 Remove CreateTransaction while loop and some related variables (Andrew Chow)
6f0d5189af Remove use_bnb and bnb_used (Andrew Chow)
de26eb0e1f Do both BnB and Knapsack coin selection in SelectCoinsMinConf (Andrew Chow)
01dc8ebda5 Have KnapsackSolver actually use effective values (Andrew Chow)
bf26e018de Roll static tx fees into nValueToSelect instead of having it be separate (Andrew Chow)
cc3f14b27c Move output reductions for fee to after coin selection (Andrew Chow)
d97d25d950 Make cost_of_change part of CoinSelectionParams (Andrew Chow)
af5867c896 Move some calculations to common code in SelectCoinsMinConf (Andrew Chow)
1bf4a62cb6 scripted-diff: rename some variables (Andrew Chow)

Pull request description:

  Changes `KnapsackSolver` to use effective values instead of just the nominal txout value. Since fees are taken into account during the selection itself, we finally get rid of the `CreateTransaction` loop as well as a few other things that only were only necessary because of that loop.

  This should not change coin selection behavior at all (except maybe remove weird edge cases that were caused by the loop). In order to keep behavior the same, `KnapsackSolver` will select outputs with a negative effective value (as it did before).

ACKs for top commit:
  ryanofsky:
    Code review ACK 51a3ac242c. Looks good to go!
  instagibbs:
    review ACK 51a3ac242c
  meshcollider:
    re-light-utACK 51a3ac242c

Tree-SHA512: 372c27e00edcd5dbf85177421ba88f20bfdaf1791b6e3dc022c44876ecc379403e2375ed69e71c512c49e6af87641001ff385c4b25ab93684b3a08a53bf3824e
2021-05-26 01:35:43 +12:00
..
test Merge bitcoin/bitcoin#17331: Use effective values throughout coin selection 2021-05-26 01:35:43 +12:00
bdb.cpp scripted-diff: remove MakeUnique<T>() 2021-03-11 13:45:14 +08:00
bdb.h wallet: Add BerkeleyDB version sanity check at init time 2021-01-17 18:10:20 +01:00
coincontrol.cpp refactor: Drop CCoinControl::SetNull 2021-04-18 21:10:47 +01:00
coincontrol.h rpc: include_unsafe option for fundrawtransaction 2021-04-30 18:53:47 +02:00
coinselection.cpp Have OutputGroup determine the value to use 2021-05-19 15:35:11 -04:00
coinselection.h Have OutputGroup determine the value to use 2021-05-19 15:35:11 -04:00
context.cpp Remove g_rpc_chain global 2020-05-28 02:13:19 -04:00
context.h wallet: Pass unused args to StartWallets 2020-07-09 13:07:37 +02:00
crypter.cpp refactor: Replace &foo[0] with foo.data() 2021-05-04 06:55:31 +02:00
crypter.h scripted-diff: Bump copyright headers 2020-12-31 09:45:41 +01:00
db.cpp wallet: Do not iterate a directory if having an error while accessing it 2021-05-12 12:11:47 +03:00
db.h refactor: post Optional<> removal cleanups 2021-03-17 14:56:20 +08:00
dump.cpp refactor: move first run detection to client code 2021-05-19 08:50:16 +02:00
dump.h wallettool: Add createfromdump command 2020-12-16 12:33:06 -05:00
external_signer_scriptpubkeyman.cpp refactor: add missing includes to external signer code 2021-04-13 20:09:33 +08:00
external_signer_scriptpubkeyman.h refactor: add missing includes to external signer code 2021-04-13 20:09:33 +08:00
feebumper.cpp Merge #20536: wallet: Error with "Transaction too large" if the funded tx will end up being too large after signing 2021-03-09 10:42:21 +13:00
feebumper.h wallet: Avoid translating RPC errors when creating txs 2020-05-01 07:39:06 -04:00
fees.cpp scripted-diff: Bump copyright headers 2020-12-31 09:45:41 +01:00
fees.h
init.cpp doc: Clarify that feerates are per virtual size 2021-05-01 18:21:05 +02:00
interfaces.cpp Move external signer out of wallet module 2021-04-08 17:56:00 +02:00
ismine.h doc: Add developer documentation to isminetype 2021-01-19 19:04:45 +08:00
load.cpp wallet: make chain optional for CWallet::Create 2021-05-19 08:50:20 +02:00
load.h scripted-diff: Bump copyright headers 2020-12-31 09:45:41 +01:00
rpcdump.cpp Merge bitcoin/bitcoin#21836: scripted-diff: Replace three dots with ellipsis in the UI strings 2021-05-10 14:02:46 +02:00
rpcwallet.cpp rpc: fix code comment for bumpfee/psbtbumpfee output 2021-05-22 09:30:26 +02:00
rpcwallet.h refactor: replace util::Ref by std::any (C++17) 2021-03-29 23:29:42 +02:00
salvage.cpp refactor: Replace &foo[0] with foo.data() 2021-05-04 06:55:31 +02:00
salvage.h wallettool: Have RecoverDatabaseFile return errors and warnings 2020-07-26 20:22:45 -04:00
scriptpubkeyman.cpp refactor: Replace &foo[0] with foo.data() 2021-05-04 06:55:31 +02:00
scriptpubkeyman.h wallet: ExternalSigner: add GetDescriptors method 2021-02-23 14:34:31 +01:00
sqlite.cpp wallet: refactor: dedup sqlite PRAGMA assignments 2021-05-17 17:22:36 +02:00
sqlite.h doc: fix various typos 2021-01-04 12:31:31 +08:00
wallet.cpp Merge bitcoin/bitcoin#17331: Use effective values throughout coin selection 2021-05-26 01:35:43 +12:00
wallet.h Merge bitcoin/bitcoin#17331: Use effective values throughout coin selection 2021-05-26 01:35:43 +12:00
walletdb.cpp refactor: post Optional<> removal cleanups 2021-03-17 14:56:20 +08:00
walletdb.h Include wallet/bdb.h where it is actually being used 2020-11-18 11:55:43 -05:00
wallettool.cpp refactor: move first run detection to client code 2021-05-19 08:50:16 +02:00
wallettool.h refactor: Move all command dependend checks to ExecuteWalletToolFunc 2021-01-21 19:30:34 +01:00
walletutil.cpp scripted-diff: Replace GetDataDir() calls with gArgs.GetDataDirNet() calls 2021-05-24 10:29:58 +02:00
walletutil.h wallet: add external_signer flag 2021-02-23 14:34:30 +01:00