Show all Monero block rewards in log
This commit is contained in:
@@ -219,42 +219,61 @@ void ZMQReader::parse(char* data, size_t size)
|
||||
auto arr = doc.GetArray();
|
||||
for (Value* i = arr.begin(); i != arr.end(); ++i) {
|
||||
if (!PARSE(*i, m_chainmainData, timestamp)) {
|
||||
LOGWARN(1, "json-full-chain_main array element failed to parse, skipping it");
|
||||
LOGWARN(1, "json-full-chain_main timestamp failed to parse, skipping it");
|
||||
continue;
|
||||
}
|
||||
|
||||
auto it = i->FindMember("miner_tx");
|
||||
if ((it == i->MemberEnd()) || !it->value.IsObject()) {
|
||||
LOGWARN(1, "json-full-chain_main array element failed to parse, skipping it");
|
||||
LOGWARN(1, "json-full-chain_main miner_tx not found, skipping it");
|
||||
continue;
|
||||
}
|
||||
|
||||
auto extra_it = it->value.FindMember("extra");
|
||||
if ((extra_it == it->value.MemberEnd()) || !extra_it->value.IsString()) {
|
||||
LOGWARN(1, "json-full-chain_main array element failed to parse, skipping it");
|
||||
LOGWARN(1, "json-full-chain_main extra not found, skipping it");
|
||||
continue;
|
||||
}
|
||||
|
||||
auto inputs_it = it->value.FindMember("inputs");
|
||||
if ((inputs_it == it->value.MemberEnd()) || !inputs_it->value.IsArray()) {
|
||||
LOGWARN(1, "json-full-chain_main array element failed to parse, skipping it");
|
||||
LOGWARN(1, "json-full-chain_main inputs not found, skipping it");
|
||||
continue;
|
||||
}
|
||||
|
||||
// Get block reward from miner_tx outputs
|
||||
m_chainmainData.reward = 0;
|
||||
|
||||
auto outputs_it = it->value.FindMember("outputs");
|
||||
if ((outputs_it != it->value.MemberEnd()) && outputs_it->value.IsArray()) {
|
||||
auto outputs = outputs_it->value.GetArray();
|
||||
for (SizeType j = 0, n = outputs.Size(); j < n; ++j) {
|
||||
if (outputs[j].IsObject()) {
|
||||
auto amount_it = outputs[j].FindMember("amount");
|
||||
if (amount_it != outputs[j].MemberEnd() && amount_it->value.IsUint64()) {
|
||||
m_chainmainData.reward += amount_it->value.GetUint64();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
LOGWARN(4, "json-full-chain_main outputs not found");
|
||||
}
|
||||
|
||||
auto inputs = inputs_it->value.GetArray();
|
||||
if ((inputs.Size() == 0) || !inputs[0].IsObject()) {
|
||||
LOGWARN(1, "json-full-chain_main array element failed to parse, skipping it");
|
||||
LOGWARN(1, "json-full-chain_main inputs is not an array, skipping it");
|
||||
continue;
|
||||
}
|
||||
|
||||
it = inputs[0].FindMember("gen");
|
||||
if ((it == inputs[0].MemberEnd()) || !it->value.IsObject()) {
|
||||
LOGWARN(1, "json-full-chain_main array element failed to parse, skipping it");
|
||||
LOGWARN(1, "json-full-chain_main gen not found, skipping it");
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!PARSE(it->value, m_chainmainData, height)) {
|
||||
LOGWARN(1, "json-full-chain_main array element failed to parse, skipping it");
|
||||
LOGWARN(1, "json-full-chain_main height not found, skipping it");
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user