From 066e2a1403fe306787a2ce0c8571aa9de57386cf Mon Sep 17 00:00:00 2001 From: Cory Fields Date: Wed, 24 Sep 2014 22:24:46 -0400 Subject: script: move CScriptID to standard.h and add a ctor for creating them from CScripts This allows for a reversal of the current behavior. This: CScript foo; CScriptID bar(foo.GetID()); Becomes: CScript foo; CScriptID bar(foo); This way, CScript is no longer dependent on CScriptID or Hash(); --- src/script/standard.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/script/standard.cpp') diff --git a/src/script/standard.cpp b/src/script/standard.cpp index 53ae254d5..adbec01f2 100644 --- a/src/script/standard.cpp +++ b/src/script/standard.cpp @@ -14,6 +14,8 @@ using namespace std; typedef vector valtype; +CScriptID::CScriptID(const CScript& in) : uint160(in.size() ? Hash160(in.begin(), in.end()) : 0) {} + const char* GetTxnOutputType(txnouttype t) { switch (t) -- cgit v1.2.3 From e9ca4280f3abb8b2b6fa35a41e881996278ebfff Mon Sep 17 00:00:00 2001 From: Cory Fields Date: Wed, 24 Sep 2014 22:54:08 -0400 Subject: script: add ToByteVector() for converting anything with begin/end This should move to a util header once their dependencies are cleaned up. --- src/script/standard.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/script/standard.cpp') diff --git a/src/script/standard.cpp b/src/script/standard.cpp index adbec01f2..7e6b136a2 100644 --- a/src/script/standard.cpp +++ b/src/script/standard.cpp @@ -282,13 +282,13 @@ public: bool operator()(const CKeyID &keyID) const { script->clear(); - *script << OP_DUP << OP_HASH160 << keyID << OP_EQUALVERIFY << OP_CHECKSIG; + *script << OP_DUP << OP_HASH160 << ToByteVector(keyID) << OP_EQUALVERIFY << OP_CHECKSIG; return true; } bool operator()(const CScriptID &scriptID) const { script->clear(); - *script << OP_HASH160 << scriptID << OP_EQUAL; + *script << OP_HASH160 << ToByteVector(scriptID) << OP_EQUAL; return true; } }; @@ -308,7 +308,7 @@ CScript GetScriptForMultisig(int nRequired, const std::vector& keys) script << CScript::EncodeOP_N(nRequired); BOOST_FOREACH(const CPubKey& key, keys) - script << key; + script << ToByteVector(key); script << CScript::EncodeOP_N(keys.size()) << OP_CHECKMULTISIG; return script; } -- cgit v1.2.3 From 85c579e3a63cf505d6cedc454755265572e97d3e Mon Sep 17 00:00:00 2001 From: Cory Fields Date: Wed, 24 Sep 2014 23:32:36 -0400 Subject: script: add a slew of includes all around and drop includes from script.h Lots of files ended up with indirect includes from script.h. --- src/script/standard.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src/script/standard.cpp') diff --git a/src/script/standard.cpp b/src/script/standard.cpp index 7e6b136a2..05938961b 100644 --- a/src/script/standard.cpp +++ b/src/script/standard.cpp @@ -7,6 +7,7 @@ #include "script/script.h" #include "util.h" +#include "utilstrencodings.h" #include -- cgit v1.2.3