aboutsummaryrefslogtreecommitdiff
path: root/src/script
diff options
context:
space:
mode:
authorPieter Wuille <pieter.wuille@gmail.com>2018-04-16 16:36:17 -0700
committerPieter Wuille <pieter.wuille@gmail.com>2018-04-19 21:05:14 -0700
commit08f322865429c307ea620a1e349855f9eee3af7e (patch)
tree58e013f2397d4e8857f96d934c97abaf08886ddb /src/script
parent3619735b09c0cb1383d437527bfbd4dc023d9f76 (diff)
Optimization: only test for witness scripts at top level
Inside P2SH scripts we already know that the P2SH script version of witness keys/scripts are acceptable, so there is no need to test for it again.
Diffstat (limited to 'src/script')
-rw-r--r--src/script/ismine.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/script/ismine.cpp b/src/script/ismine.cpp
index 0ef4a59f13..eb3847d8e2 100644
--- a/src/script/ismine.cpp
+++ b/src/script/ismine.cpp
@@ -70,7 +70,7 @@ static isminetype IsMineInner(const CKeyStore& keystore, const CScript& scriptPu
break;
case TX_WITNESS_V0_KEYHASH:
{
- if (!keystore.HaveCScript(CScriptID(CScript() << OP_0 << vSolutions[0]))) {
+ if (sigversion == IsMineSigVersion::TOP && !keystore.HaveCScript(CScriptID(CScript() << OP_0 << vSolutions[0]))) {
// We do not support bare witness outputs unless the P2SH version of it would be
// acceptable as well. This protects against matching before segwit activates.
// This also applies to the P2WSH case.
@@ -106,7 +106,7 @@ static isminetype IsMineInner(const CKeyStore& keystore, const CScript& scriptPu
}
case TX_WITNESS_V0_SCRIPTHASH:
{
- if (!keystore.HaveCScript(CScriptID(CScript() << OP_0 << vSolutions[0]))) {
+ if (sigversion == IsMineSigVersion::TOP && !keystore.HaveCScript(CScriptID(CScript() << OP_0 << vSolutions[0]))) {
break;
}
uint160 hash;