diff --git a/src/dummywallet.cpp b/src/dummywallet.cpp index 9160ec19e6..930f3bdfb7 100644 --- a/src/dummywallet.cpp +++ b/src/dummywallet.cpp @@ -45,6 +45,7 @@ void DummyWalletInit::AddWalletOptions(ArgsManager& argsman) const "-wallet=", "-walletbroadcast", "-walletdir=", + "-walletimplicitsegwit", "-walletnotify=", "-walletrbf", "-dblogsize=", diff --git a/src/outputtype.cpp b/src/outputtype.cpp index 566e5ec55a..18ac3e2f24 100644 --- a/src/outputtype.cpp +++ b/src/outputtype.cpp @@ -72,7 +72,7 @@ std::vector GetAllDestinationsForKey(const CPubKey& key) { PKHash keyid(key); CTxDestination p2pkh{keyid}; - if (key.IsCompressed()) { + if (key.IsCompressed() && g_implicit_segwit) { CTxDestination segwit = WitnessV0KeyHash(keyid); CTxDestination p2sh = ScriptHash(GetScriptForDestination(segwit)); return Vector(std::move(p2pkh), std::move(p2sh), std::move(segwit)); diff --git a/src/script/signingprovider.cpp b/src/script/signingprovider.cpp index 86d35f565c..92eade7b70 100644 --- a/src/script/signingprovider.cpp +++ b/src/script/signingprovider.cpp @@ -9,6 +9,8 @@ #include +bool g_implicit_segwit = true; + const SigningProvider& DUMMY_SIGNING_PROVIDER = SigningProvider(); template @@ -112,7 +114,7 @@ void FillableSigningProvider::ImplicitlyLearnRelatedKeyScripts(const CPubKey& pu // "Implicitly" refers to fact that scripts are derived automatically from // existing keys, and are present in memory, even without being explicitly // loaded (e.g. from a file). - if (pubkey.IsCompressed()) { + if (pubkey.IsCompressed() && g_implicit_segwit) { CScript script = GetScriptForDestination(WitnessV0KeyHash(key_id)); // This does not use AddCScript, as it may be overridden. CScriptID id(script); diff --git a/src/script/signingprovider.h b/src/script/signingprovider.h index 7a7e8adc88..fed0902f38 100644 --- a/src/script/signingprovider.h +++ b/src/script/signingprovider.h @@ -14,6 +14,10 @@ #include