Merge pull request #6225

987c3139 print_coinbase_tx_sum now supports 128 bits sums (moneromooo-monero)
This commit is contained in:
Alexander Blair
2020-02-28 19:48:10 -08:00
8 changed files with 50 additions and 16 deletions

View File

@@ -125,11 +125,16 @@ namespace
return (value + quantum - 1) / quantum * quantum;
}
void store_128(boost::multiprecision::uint128_t value, uint64_t &slow64, std::string &swide, uint64_t &stop64)
{
slow64 = (value & 0xffffffffffffffff).convert_to<uint64_t>();
swide = cryptonote::hex(value);
stop64 = ((value >> 64) & 0xffffffffffffffff).convert_to<uint64_t>();
}
void store_difficulty(cryptonote::difficulty_type difficulty, uint64_t &sdiff, std::string &swdiff, uint64_t &stop64)
{
sdiff = (difficulty & 0xffffffffffffffff).convert_to<uint64_t>();
swdiff = cryptonote::hex(difficulty);
stop64 = ((difficulty >> 64) & 0xffffffffffffffff).convert_to<uint64_t>();
store_128(difficulty, sdiff, swdiff, stop64);
}
}
@@ -2499,9 +2504,9 @@ namespace cryptonote
return true;
}
CHECK_PAYMENT_MIN1(req, res, COST_PER_COINBASE_TX_SUM_BLOCK * req.count, false);
std::pair<uint64_t, uint64_t> amounts = m_core.get_coinbase_tx_sum(req.height, req.count);
res.emission_amount = amounts.first;
res.fee_amount = amounts.second;
std::pair<boost::multiprecision::uint128_t, boost::multiprecision::uint128_t> amounts = m_core.get_coinbase_tx_sum(req.height, req.count);
store_128(amounts.first, res.emission_amount, res.wide_emission_amount, res.emission_amount_top64);
store_128(amounts.second, res.fee_amount, res.wide_fee_amount, res.fee_amount_top64);
res.status = CORE_RPC_STATUS_OK;
return true;
}