Browse Source

Fixed keva op.

cn
Jianping Wu 6 years ago
parent
commit
afa40c41b6
  1. 10
      src/script/keva.cpp
  2. 25
      src/script/keva.h

10
src/script/keva.cpp

@ -11,8 +11,9 @@ CKevaScript::CKevaScript (const CScript& script) @@ -11,8 +11,9 @@ CKevaScript::CKevaScript (const CScript& script)
{
opcodetype nameOp;
CScript::const_iterator pc = script.begin();
if (!script.GetOp (pc, nameOp))
if (!script.GetOp(pc, nameOp)) {
return;
}
opcodetype opcode;
while (true) {
@ -33,9 +34,10 @@ CKevaScript::CKevaScript (const CScript& script) @@ -33,9 +34,10 @@ CKevaScript::CKevaScript (const CScript& script)
// Move the pc to after any DROP or NOP.
while (opcode == OP_DROP || opcode == OP_2DROP || opcode == OP_NOP) {
if (!script.GetOp (pc, opcode))
if (!script.GetOp(pc, opcode)) {
break;
}
}
pc--;
/* Now, we have the args and the operation. Check if we have indeed
@ -43,13 +45,13 @@ CKevaScript::CKevaScript (const CScript& script) @@ -43,13 +45,13 @@ CKevaScript::CKevaScript (const CScript& script)
op and address members, if everything is valid. */
switch (nameOp) {
case OP_KEVA_PUT:
if (args.size () != 1) {
if (args.size() != 3) {
return;
}
break;
case OP_KEVA_NAMESPACE:
if (args.size () != 1) {
if (args.size() != 3) {
return;
}
break;

25
src/script/keva.h

@ -7,8 +7,6 @@ @@ -7,8 +7,6 @@
#include <script/script.h>
typedef std::vector<unsigned char> valtype;
class uint160;
/**
@ -51,8 +49,7 @@ public: @@ -51,8 +49,7 @@ public:
* Return whether this is a (valid) name script.
* @return True iff this is a name operation.
*/
inline bool
isKevaOp () const
inline bool isKevaOp() const
{
switch (op) {
case OP_KEVA_PUT:
@ -136,16 +133,15 @@ public: @@ -136,16 +133,15 @@ public:
}
/**
* Return the name operation value. This call is only valid for
* OP_KEVA_PUT.
* @return The name operation's value.
* Return namespace's display name. This call is only valid for
* OP_KEVA_NAMESPACE.
* @return The namespace's display name.
*/
inline const valtype& getOpNamespaceValue() const
inline const valtype& getOpNamespaceDisplayName() const
{
switch (op) {
case OP_KEVA_PUT:
// args[1] is namespace
return args[2];
case OP_KEVA_NAMESPACE:
return args[1];
default:
assert (false);
@ -161,10 +157,7 @@ public: @@ -161,10 +157,7 @@ public:
{
switch (op) {
case OP_KEVA_PUT:
return args[0];
case OP_KEVA_NAMESPACE:
return args[0];
return args[1];
default:
assert(false);
@ -180,7 +173,7 @@ public: @@ -180,7 +173,7 @@ public:
{
switch (op) {
case OP_KEVA_PUT:
// args[1] is namespace
// args[0] is namespace, args[1] is key
return args[2];
default:

Loading…
Cancel
Save