diff options
author | Gregory Sanders <gsanders87@gmail.com> | 2018-10-03 14:41:03 +0900 |
---|---|---|
committer | Gregory Sanders <gsanders87@gmail.com> | 2018-11-30 11:08:41 -0500 |
commit | 2a5cc40dc428e9024142ebebeaa97a3a3a4a1fa6 (patch) | |
tree | 1cfbfb58fae07c7e98770e426da469873bd79906 /src/wallet/wallet.cpp | |
parent | 53dcf2b407f8a2b4ebe372a8f28b7ba073b9eda7 (diff) | |
download | bitcoin-2a5cc40dc428e9024142ebebeaa97a3a3a4a1fa6.tar.xz |
CreateTransaction: Assume minimum p2sh-p2wpkh spend size for unknown change
Diffstat (limited to 'src/wallet/wallet.cpp')
-rw-r--r-- | src/wallet/wallet.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp index 2ad82b2e07..060325921f 100644 --- a/src/wallet/wallet.cpp +++ b/src/wallet/wallet.cpp @@ -2830,7 +2830,14 @@ bool CWallet::CreateTransaction(const std::vector<CRecipient>& vecSend, CTransac if (pick_new_inputs) { nValueIn = 0; setCoins.clear(); - coin_selection_params.change_spend_size = CalculateMaximumSignedInputSize(change_prototype_txout, this); + int change_spend_size = CalculateMaximumSignedInputSize(change_prototype_txout, this); + // If the wallet doesn't know how to sign change output, assume p2sh-p2wpkh + // as lower-bound to allow BnB to do it's thing + if (change_spend_size == -1) { + coin_selection_params.change_spend_size = DUMMY_NESTED_P2WPKH_INPUT_SIZE; + } else { + coin_selection_params.change_spend_size = (size_t)change_spend_size; + } coin_selection_params.effective_fee = nFeeRateNeeded; if (!SelectCoins(vAvailableCoins, nValueToSelect, setCoins, nValueIn, coin_control, coin_selection_params, bnb_used)) { |