script: move ToString and ValueString out of the header

This commit is contained in:
Cory Fields
2014-09-30 19:45:20 -04:00
parent e9ca4280f3
commit db8eb54bd7
2 changed files with 34 additions and 29 deletions

View File

@@ -7,6 +7,16 @@
#include <boost/foreach.hpp>
namespace {
inline std::string ValueString(const std::vector<unsigned char>& vch)
{
if (vch.size() <= 4)
return strprintf("%d", CScriptNum(vch).getint());
else
return HexStr(vch);
}
} // anon namespace
using namespace std;
const char* GetOpName(opcodetype opcode)
@@ -253,3 +263,26 @@ bool CScript::HasCanonicalPushes() const
}
return true;
}
std::string CScript::ToString() const
{
std::string str;
opcodetype opcode;
std::vector<unsigned char> vch;
const_iterator pc = begin();
while (pc < end())
{
if (!str.empty())
str += " ";
if (!GetOp(pc, opcode, vch))
{
str += "[error]";
return str;
}
if (0 <= opcode && opcode <= OP_PUSHDATA4)
str += ValueString(vch);
else
str += GetOpName(opcode);
}
return str;
}