guard cryptoconditions

This commit is contained in:
Scott Sadler
2018-02-18 20:40:24 -03:00
parent 28b946127b
commit 656fa68d13
3 changed files with 24 additions and 8 deletions

View File

@@ -1,8 +1,19 @@
#ifndef KOMODO_CRYPTOCONDITIONS_H
#define KOMODO_CRYPTOCONDITIONS_H
#include "cryptoconditions/include/cryptoconditions.h"
extern int32_t ASSETCHAINS_CC;
static bool IsCryptoConditionsEnabled() {
return 0 != ASSETCHAINS_CC;
}
/*
* Method stub for aux conditions. Unimplemented, thus fails if an aux condition is encountered.
*/
int komodoCCAux(CC *cond, void *context) {
static int komodoCCAux(CC *cond, void *context) {
return 0;
}
#endif /* KOMODO_CRYPTOCONDITIONS_H */

View File

@@ -13,7 +13,6 @@
#include "pubkey.h"
#include "script/script.h"
#include "uint256.h"
#include "cryptoconditions/include/cryptoconditions.h"
#include "komodo_cryptoconditions.h"
@@ -940,7 +939,9 @@ bool EvalScript(vector<vector<unsigned char> >& stack, const CScript& script, un
case OP_CHECKCRYPTOCONDITION:
case OP_CHECKCRYPTOCONDITIONVERIFY:
{
// (fulfillment condition -- bool)
if (!IsCryptoConditionsEnabled()) {
goto INTERPRETER_DEFAULT;
}
if (stack.size() < 2)
return set_error(serror, SCRIPT_ERR_INVALID_STACK_OPERATION);
@@ -982,6 +983,7 @@ bool EvalScript(vector<vector<unsigned char> >& stack, const CScript& script, un
}
break;
INTERPRETER_DEFAULT:
default:
return set_error(serror, SCRIPT_ERR_BAD_OPCODE);
}

View File

@@ -9,6 +9,7 @@
#include "script/script.h"
#include "util.h"
#include "utilstrencodings.h"
#include "komodo_cryptoconditions.h"
#include <boost/foreach.hpp>
@@ -68,11 +69,13 @@ bool Solver(const CScript& scriptPubKey, txnouttype& typeRet, vector<vector<unsi
return true;
}
// Shortcut for pay-to-crypto-condition
if (scriptPubKey.IsPayToCryptoCondition()) {
typeRet = TX_CRYPTOCONDITION;
// TODO: Extract solutions
return true;
if (IsCryptoConditionsEnabled()) {
// Shortcut for pay-to-crypto-condition
if (scriptPubKey.IsPayToCryptoCondition()) {
typeRet = TX_CRYPTOCONDITION;
// TODO: Extract solutions
return true;
}
}
// Scan templates