Remove more cc code
This commit is contained in:
@@ -233,64 +233,6 @@ public:
|
|||||||
DefaultCCChecker() { }
|
DefaultCCChecker() { }
|
||||||
virtual bool checkCC(uint256 txid, const std::vector<CTxOut> &vouts, int32_t nvout, uint8_t evalcode, std::string funcids, uint256 filtertxid)
|
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;
|
return false;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -242,7 +242,7 @@ UniValue blockToDeltasJSON(const CBlock& block, const CBlockIndex* blockindex)
|
|||||||
vector<unsigned char> hashBytes(out.scriptPubKey.begin()+3, out.scriptPubKey.begin()+23);
|
vector<unsigned char> hashBytes(out.scriptPubKey.begin()+3, out.scriptPubKey.begin()+23);
|
||||||
delta.push_back(Pair("address", CBitcoinAddress(CKeyID(uint160(hashBytes))).ToString()));
|
delta.push_back(Pair("address", CBitcoinAddress(CKeyID(uint160(hashBytes))).ToString()));
|
||||||
}
|
}
|
||||||
else if (out.scriptPubKey.IsPayToPublicKey() || out.scriptPubKey.IsPayToCryptoCondition()) {
|
else if (out.scriptPubKey.IsPayToPublicKey()) {
|
||||||
CTxDestination address;
|
CTxDestination address;
|
||||||
if (ExtractDestination(out.scriptPubKey, address))
|
if (ExtractDestination(out.scriptPubKey, address))
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user