Remove more cc code
This commit is contained in:
@@ -233,64 +233,6 @@ public:
|
||||
DefaultCCChecker() { }
|
||||
virtual bool checkCC(uint256 txid, const std::vector<CTxOut> &vouts, int32_t nvout, uint8_t evalcode, std::string funcids, uint256 filtertxid)
|
||||
{
|
||||
CScript opret, dummy;
|
||||
std::vector< vscript_t > vParams;
|
||||
vscript_t vopret;
|
||||
|
||||
if (nvout < vouts.size())
|
||||
{
|
||||
// first check if it is cc vout
|
||||
if (vouts[nvout].scriptPubKey.IsPayToCryptoCondition(&dummy, vParams))
|
||||
{
|
||||
// try to find cc opret
|
||||
if (vParams.size() > 0)
|
||||
{
|
||||
COptCCParams p(vParams[0]); // parse vout data
|
||||
if (p.vData.size() > 0)
|
||||
{
|
||||
vopret = p.vData[0]; // get opret data
|
||||
}
|
||||
}
|
||||
// if no cc opret check last vout opret
|
||||
if (vopret.size() == 0)
|
||||
{
|
||||
GetOpReturnData(vouts.back().scriptPubKey, vopret);
|
||||
}
|
||||
if (vopret.size() > 2)
|
||||
{
|
||||
uint8_t opretEvalcode, opretFuncid;
|
||||
uint256 opretTxid;
|
||||
bool isEof = true;
|
||||
bool isCreateTx = false;
|
||||
|
||||
// parse opret first 3 fields:
|
||||
bool parseOk = E_UNMARSHAL(vopret,
|
||||
ss >> opretEvalcode;
|
||||
ss >> opretFuncid;
|
||||
if (funcids.size() > 0 && opretFuncid == funcids[0]) // this means that we check txid only for second+ funcid in array (considering that the first funcid is the creation txid itself like tokens)
|
||||
{
|
||||
isCreateTx = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
ss >> opretTxid;
|
||||
isCreateTx = false;
|
||||
}
|
||||
isEof = ss.eof(); );
|
||||
|
||||
opretTxid = revuint256(opretTxid);
|
||||
std::cerr << __func__ << " " << "opretEvalcode=" << opretEvalcode << " opretFuncid=" << (char)opretFuncid << " isCreateTx=" << isCreateTx << " opretTxid=" << opretTxid.GetHex() << std::endl;
|
||||
if( parseOk /*parseOk=true if eof reached*/|| !isEof /*more data means okay*/)
|
||||
{
|
||||
if (evalcode == opretEvalcode && std::find(funcids.begin(), funcids.end(), (char)opretFuncid) != funcids.end() &&
|
||||
(isCreateTx && filtertxid == txid || !isCreateTx && filtertxid == opretTxid))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user