Browse Source

More notarization hardening

pull/451/head
miketout 2 years ago
parent
commit
243b9fe715
  1. 2
      src/core_write.cpp
  2. 3
      src/pbaas/notarization.cpp

2
src/core_write.cpp

@ -839,8 +839,8 @@ UniValue CPBaaSNotarization::ToUniValue() const
obj.push_back(Pair("currencystate", currencyState.ToUniValue()));
obj.push_back(Pair("prevnotarizationtxid", prevNotarization.hash.GetHex()));
obj.push_back(Pair("prevnotarizationout", (int64_t)prevNotarization.n));
obj.push_back(Pair("hashprevcrossnotarization", hashPrevCrossNotarization.GetHex()));
obj.push_back(Pair("prevheight", (int64_t)prevHeight));
obj.push_back(Pair("hashprevcrossnotarization", hashPrevCrossNotarization.GetHex()));
// now get states and roots, of which there may be multiple
UniValue curStateArr(UniValue::VARR);

3
src/pbaas/notarization.cpp

@ -2872,9 +2872,12 @@ bool CPBaaSNotarization::CreateEarnedNotarization(const CRPCChainData &externalS
for (prevNotarizationIdx = crosschainCND.vtx.size() - 1; prevNotarizationIdx >= 0; prevNotarizationIdx--)
{
lastPBN = crosschainCND.vtx[prevNotarizationIdx].second;
// TODO: HARDENING check all currency states on this chain in last valid as well
std::map<uint160, CProofRoot>::iterator pIT = lastPBN.proofRoots.find(ASSETCHAINS_CHAINID);
if (pIT != lastPBN.proofRoots.end() &&
(!priorNotarization.proofRoots.count(ASSETCHAINS_CHAINID) ||
pIT->second.rootHeight <= priorNotarization.proofRoots.find(ASSETCHAINS_CHAINID)->second.rootHeight) &&
CProofRoot::GetProofRoot(pIT->second.rootHeight) == pIT->second)
{
break;

Loading…
Cancel
Save