script: move ToString and ValueString out of the header
This commit is contained in:
parent
e9ca4280f3
commit
db8eb54bd7
2 changed files with 34 additions and 29 deletions
|
@ -7,6 +7,16 @@
|
||||||
|
|
||||||
#include <boost/foreach.hpp>
|
#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;
|
using namespace std;
|
||||||
|
|
||||||
const char* GetOpName(opcodetype opcode)
|
const char* GetOpName(opcodetype opcode)
|
||||||
|
@ -253,3 +263,26 @@ bool CScript::HasCanonicalPushes() const
|
||||||
}
|
}
|
||||||
return true;
|
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;
|
||||||
|
}
|
||||||
|
|
|
@ -318,13 +318,6 @@ private:
|
||||||
int64_t m_value;
|
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 */
|
/** Serialized script, used inside transaction inputs and outputs */
|
||||||
class CScript : public std::vector<unsigned char>
|
class CScript : public std::vector<unsigned char>
|
||||||
|
@ -571,28 +564,7 @@ public:
|
||||||
return (size() > 0 && *begin() == OP_RETURN);
|
return (size() > 0 && *begin() == OP_RETURN);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string ToString() const
|
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;
|
|
||||||
}
|
|
||||||
void clear()
|
void clear()
|
||||||
{
|
{
|
||||||
// The default std::vector::clear() does not release memory.
|
// The default std::vector::clear() does not release memory.
|
||||||
|
|
Loading…
Add table
Reference in a new issue