From d67ca1779af0e5446cab6ca978d126b4f793e1c5 Mon Sep 17 00:00:00 2001 From: dimxy Date: Thu, 10 Jan 2019 21:28:13 +0500 Subject: [PATCH] MakeTokensCCcond1of2 corrrected and simplified --- src/cc/CCtokens.cpp | 2 +- src/cc/CCutils.cpp | 16 +++------------- src/cc/heir.cpp | 2 +- 3 files changed, 5 insertions(+), 15 deletions(-) diff --git a/src/cc/CCtokens.cpp b/src/cc/CCtokens.cpp index 644e9d414..0829623e6 100644 --- a/src/cc/CCtokens.cpp +++ b/src/cc/CCtokens.cpp @@ -173,7 +173,7 @@ bool TokensValidate(struct CCcontract_info *cp, Eval* eval, const CTransaction & if ((funcid = DecodeTokenOpRet(tx.vout[numvouts - 1].scriptPubKey, evalCodeInOpret, tokenid, voutTokenPubkeys, vopretExtra)) == 0) return eval->Invalid("TokenValidate: invalid opreturn payload"); - fprintf(stderr, "TokensValidate (%c)\n", funcid); + fprintf(stderr, "TokensValidate (%c) evalcode=0x%0x\n", funcid, cp->evalcode); if (eval->GetTxUnconfirmed(tokenid, createTx, hashBlock) == 0) return eval->Invalid("cant find token create txid"); diff --git a/src/cc/CCutils.cpp b/src/cc/CCutils.cpp index f677127a6..93c82945e 100644 --- a/src/cc/CCutils.cpp +++ b/src/cc/CCutils.cpp @@ -83,21 +83,11 @@ CC *MakeTokensCCcond1of2(uint8_t evalcode, CPubKey pk1, CPubKey pk2) pks.push_back(CCNewSecp256k1(pk1)); pks.push_back(CCNewSecp256k1(pk2)); CC *condEvalCC = CCNewEval(E_MARSHAL(ss << evalcode)); // this is eval cc + CC *condEvalTokensCC = CCNewEval(E_MARSHAL(ss << (uint8_t)EVAL_TOKENS)); // this is eval token cc CC *cond1of2Sig = CCNewThreshold(1, pks); // this is 1 of 2 sigs cc - CC *cond1of2Threshold = CCNewThreshold(2, { condEvalCC, cond1of2Sig }); + CC *cond1of2Threshold = CCNewThreshold(3, { condEvalCC, condEvalTokensCC, cond1of2Sig }); - // make token cond - struct CCcontract_info *cpTokens, tokensC; - cpTokens = CCinit(&tokensC, EVAL_TOKENS); - CPubKey unspendableTokensPk = GetUnspendable(cpTokens, NULL); - - std::vector pksTokens; - pks.push_back(CCNewSecp256k1(unspendableTokensPk)); - CC *condEvalTokensCC = CCNewEval(E_MARSHAL(ss << (uint8_t)EVAL_TOKENS)); // this is eval cc - CC *condUnspendableSig = CCNewThreshold(1, pksTokens); // this is 1 of 2 sigs cc - CC *condTopThreshold = CCNewThreshold(2, { condEvalTokensCC, condUnspendableSig }); - - return CCNewThreshold(2, { cond1of2Threshold, condTopThreshold }); + return cond1of2Threshold; } CTxOut MakeTokensCC1of2vout(uint8_t evalcode, CAmount nValue, CPubKey pk1, CPubKey pk2) diff --git a/src/cc/heir.cpp b/src/cc/heir.cpp index 57d7c6a79..9bb3f7f93 100644 --- a/src/cc/heir.cpp +++ b/src/cc/heir.cpp @@ -158,7 +158,7 @@ bool HeirValidate(struct CCcontract_info* cpHeir, Eval* eval, const CTransaction fundingTxOpRetScript = tx.vout[numvouts - 1].scriptPubKey; } - std::cerr << "HeirValidate funcid=" << (char)funcId << std::endl; + std::cerr << "HeirValidate funcid=" << (char)funcId << " evalcode=" << cpHeir->evalcode << std::endl; //////////////// temp //////////////////////// return true;