aboutsummaryrefslogtreecommitdiff
path: root/src/qt
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2018-01-24 15:22:24 +0100
committerWladimir J. van der Laan <laanwj@gmail.com>2018-01-24 15:22:42 +0100
commit95941396fff81f60d75fc8cca70716b26efe820e (patch)
tree1a1ed10eb683048f9b78f1b50adcabad8e0aa410 /src/qt
parent126000ba9e7ff16271be2f4eef3df99ade8d624f (diff)
parent596c44633fd03e76cc12f2fd37452e223ba43115 (diff)
downloadbitcoin-95941396fff81f60d75fc8cca70716b26efe820e.tar.xz
Merge #12119: [wallet] use P2WPKH change output if any destination is P2WPKH or P2WSH
596c446 [wallet] use P2WPKH change output if any destination is P2WPKH or P2WSH (Sjors Provoost) Pull request description: If `-changetype` is not explicitly set, then regardless of `-addresstype`, the wallet will use a ~`bech32` change address~ `P2WPKH` change output if any destination is `P2WPKH` or `P2WSH`. This seems more intuitive to me and more in line with the spirit of [BIP-69](https://github.com/bitcoin/bips/blob/master/bip-0069.mediawiki). When combined with #11991 a QT user could opt to use `bech32` exclusively without having to figure out how to launch with `-changetype=bech32`, although so would #11937. Tree-SHA512: 9238d3ccd1f3be8dfdd43444ccf45d6bdc6584ced3172a3045f3ecfec4a7cc8999db0cdb76ae49236492a84e6dbf3a1fdf18544d3eaf6d518e1f8bd241db33e7
Diffstat (limited to 'src/qt')
-rw-r--r--src/qt/paymentserver.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/qt/paymentserver.cpp b/src/qt/paymentserver.cpp
index dc729649b8..bc69d4f945 100644
--- a/src/qt/paymentserver.cpp
+++ b/src/qt/paymentserver.cpp
@@ -643,8 +643,9 @@ void PaymentServer::fetchPaymentACK(CWallet* wallet, const SendCoinsRecipient& r
// use for change. Despite an actual payment and not change, this is a close match:
// it's the output type we use subject to privacy issues, but not restricted by what
// other software supports.
- wallet->LearnRelatedScripts(newKey, g_change_type);
- CTxDestination dest = GetDestinationForKey(newKey, g_change_type);
+ const OutputType change_type = g_change_type != OUTPUT_TYPE_NONE ? g_change_type : g_address_type;
+ wallet->LearnRelatedScripts(newKey, change_type);
+ CTxDestination dest = GetDestinationForKey(newKey, change_type);
wallet->SetAddressBook(dest, strAccount, "refund");
CScript s = GetScriptForDestination(dest);