added MakeTokensCCcond1 and MakeTokensCCvout1

This commit is contained in:
dimxy
2019-01-11 14:34:56 +05:00
parent 805b3da050
commit 6d509d5293
4 changed files with 81 additions and 44 deletions

View File

@@ -90,6 +90,16 @@ CC *MakeTokensCCcond1of2(uint8_t evalcode, CPubKey pk1, CPubKey pk2)
return cond1of2Threshold;
}
CC *MakeTokensCCcond1(uint8_t evalcode, CPubKey pk)
{
std::vector<CC*> pks;
pks.push_back(CCNewSecp256k1(pk));
CC *condEvalCC = CCNewEval(E_MARSHAL(ss << evalcode));
CC *condEvalTokensCC = CCNewEval(E_MARSHAL(ss << (uint8_t)EVAL_TOKENS)); // this is eval token cc
CC *Sig = CCNewThreshold(1, pks);
return CCNewThreshold(3, { condEvalCC, condEvalTokensCC, Sig });
}
CTxOut MakeTokensCC1of2vout(uint8_t evalcode, CAmount nValue, CPubKey pk1, CPubKey pk2)
{
CTxOut vout;
@@ -99,6 +109,15 @@ CTxOut MakeTokensCC1of2vout(uint8_t evalcode, CAmount nValue, CPubKey pk1, CPubK
return(vout);
}
CTxOut MakeTokensCC1vout(uint8_t evalcode, CAmount nValue, CPubKey pk)
{
CTxOut vout;
CC *payoutCond = MakeTokensCCcond1(evalcode, pk);
vout = CTxOut(nValue, CCPubKey(payoutCond));
cc_free(payoutCond);
return(vout);
}
CC* GetCryptoCondition(CScript const& scriptSig)
{
auto pc = scriptSig.begin();