aboutsummaryrefslogtreecommitdiff
path: root/src/script
diff options
context:
space:
mode:
authorNicolasDorier <nicolas.dorier@gmail.com>2016-04-10 15:59:23 +0900
committerPieter Wuille <pieter.wuille@gmail.com>2016-06-22 15:43:01 +0200
commit745eb678ef5d52c74edcd9c322ebd1f3232a9310 (patch)
treefa08a8303b9f25efb19b5fa72cde264d276e2d48 /src/script
parentf4691ab3a9d4f3321afa024984c03fe6e10bfdbc (diff)
downloadbitcoin-745eb678ef5d52c74edcd9c322ebd1f3232a9310.tar.xz
[RPC] signrawtransaction can sign P2WSH
Diffstat (limited to 'src/script')
-rw-r--r--src/script/script.cpp8
-rw-r--r--src/script/script.h1
2 files changed, 9 insertions, 0 deletions
diff --git a/src/script/script.cpp b/src/script/script.cpp
index 73f5a61bf6..da551c23ee 100644
--- a/src/script/script.cpp
+++ b/src/script/script.cpp
@@ -210,6 +210,14 @@ bool CScript::IsPayToScriptHash() const
(*this)[22] == OP_EQUAL);
}
+bool CScript::IsPayToWitnessScriptHash() const
+{
+ // Extra-fast test for pay-to-witness-script-hash CScripts:
+ return (this->size() == 34 &&
+ (*this)[0] == OP_0 &&
+ (*this)[1] == 0x20);
+}
+
// A witness program is any valid CScript that consists of a 1-byte push opcode
// followed by a data push between 2 and 40 bytes.
bool CScript::IsWitnessProgram(int& version, std::vector<unsigned char>& program) const
diff --git a/src/script/script.h b/src/script/script.h
index b9b5be9013..71af3754bc 100644
--- a/src/script/script.h
+++ b/src/script/script.h
@@ -621,6 +621,7 @@ public:
unsigned int GetSigOpCount(const CScript& scriptSig) const;
bool IsPayToScriptHash() const;
+ bool IsPayToWitnessScriptHash() const;
bool IsWitnessProgram(int& version, std::vector<unsigned char>& program) const;
/** Called by IsStandardTx and P2SH/BIP62 VerifyScript (which makes it consensus-critical). */