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;
}

View File

@ -318,13 +318,6 @@ private:
int64_t m_value;
};
inline std::string ValueString(const std::vector<unsigned char>& vch)
{
if (vch.size() <= 4)
return strprintf("%d", CScriptNum(vch).getint());
else
return HexStr(vch);
}
/** Serialized script, used inside transaction inputs and outputs */
class CScript : public std::vector<unsigned char>
@ -571,28 +564,7 @@ public:
return (size() > 0 && *begin() == OP_RETURN);
}
std::string 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;
}
std::string ToString() const;
void clear()
{
// The default std::vector::clear() does not release memory.