aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/script.cpp18
-rw-r--r--src/script.h18
2 files changed, 19 insertions, 17 deletions
diff --git a/src/script.cpp b/src/script.cpp
index 2b66bc73d6..b2d8a67f96 100644
--- a/src/script.cpp
+++ b/src/script.cpp
@@ -1863,6 +1863,24 @@ bool CScript::IsPayToScriptHash() const
this->at(22) == OP_EQUAL);
}
+bool CScript::IsPushOnly() const
+{
+ const_iterator pc = begin();
+ while (pc < end())
+ {
+ opcodetype opcode;
+ if (!GetOp(pc, opcode))
+ return false;
+ // Note that IsPushOnly() *does* consider OP_RESERVED to be a
+ // push-type opcode, however execution of OP_RESERVED fails, so
+ // it's not relevant to P2SH as the scriptSig would fail prior to
+ // the P2SH special validation code being executed.
+ if (opcode > OP_16)
+ return false;
+ }
+ return true;
+}
+
class CScriptVisitor : public boost::static_visitor<bool>
{
private:
diff --git a/src/script.h b/src/script.h
index bd120cc07d..a0a6cd1c44 100644
--- a/src/script.h
+++ b/src/script.h
@@ -542,23 +542,7 @@ public:
bool IsPayToScriptHash() const;
// Called by IsStandardTx
- bool IsPushOnly() const
- {
- const_iterator pc = begin();
- while (pc < end())
- {
- opcodetype opcode;
- if (!GetOp(pc, opcode))
- return false;
- // Note that IsPushOnly() *does* consider OP_RESERVED to be a
- // push-type opcode, however execution of OP_RESERVED fails, so
- // it's not relevant to P2SH as the scriptSig would fail prior to
- // the P2SH special validation code being executed.
- if (opcode > OP_16)
- return false;
- }
- return true;
- }
+ bool IsPushOnly() const;
// Returns whether the script is guaranteed to fail at execution,
// regardless of the initial stack. This allows outputs to be pruned