print_coinbase_tx_sum now breaks output into fee and emission components
This commit is contained in:
parent
dd6c44327b
commit
7db29d6903
|
@ -616,18 +616,32 @@ namespace cryptonote
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
//-----------------------------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------------------------
|
||||||
uint64_t core::get_coinbase_tx_sum(const uint64_t start_offset, const uint64_t count)
|
std::pair<uint64_t, uint64_t> core::get_coinbase_tx_sum(const uint64_t start_offset, const uint64_t count)
|
||||||
{
|
{
|
||||||
std::list<block> blocks;
|
std::list<block> blocks;
|
||||||
uint64_t coinbase_tx_sum = 0;
|
std::list<transaction> txs;
|
||||||
uint64_t current_index = start_offset;
|
std::list<crypto::hash> missed_txs;
|
||||||
|
uint64_t coinbase_amount = 0;
|
||||||
|
uint64_t emission_amount = 0;
|
||||||
|
uint64_t total_fee_amount = 0;
|
||||||
|
uint64_t tx_fee_amount = 0;
|
||||||
this->get_blocks(start_offset, count, blocks);
|
this->get_blocks(start_offset, count, blocks);
|
||||||
BOOST_FOREACH(auto& b, blocks)
|
BOOST_FOREACH(auto& b, blocks)
|
||||||
{
|
{
|
||||||
coinbase_tx_sum += get_outs_money_amount(b.miner_tx);
|
coinbase_amount = get_outs_money_amount(b.miner_tx);
|
||||||
|
this->get_transactions(b.tx_hashes, txs, missed_txs);
|
||||||
|
BOOST_FOREACH(const auto& tx, txs)
|
||||||
|
{
|
||||||
|
tx_fee_amount += get_tx_fee(tx);
|
||||||
|
}
|
||||||
|
|
||||||
|
emission_amount += coinbase_amount - tx_fee_amount;
|
||||||
|
total_fee_amount += tx_fee_amount;
|
||||||
|
coinbase_amount = 0;
|
||||||
|
tx_fee_amount = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return coinbase_tx_sum;
|
return std::pair<uint64_t, uint64_t>(emission_amount, total_fee_amount);
|
||||||
}
|
}
|
||||||
//-----------------------------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------------------------
|
||||||
bool core::check_tx_inputs_keyimages_diff(const transaction& tx) const
|
bool core::check_tx_inputs_keyimages_diff(const transaction& tx) const
|
||||||
|
|
|
@ -605,7 +605,7 @@ namespace cryptonote
|
||||||
*
|
*
|
||||||
* @return the number of blocks to sync in one go
|
* @return the number of blocks to sync in one go
|
||||||
*/
|
*/
|
||||||
uint64_t get_coinbase_tx_sum(const uint64_t start_offset, const uint64_t count);
|
std::pair<uint64_t, uint64_t> get_coinbase_tx_sum(const uint64_t start_offset, const uint64_t count);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
|
|
@ -1299,7 +1299,9 @@ bool t_rpc_command_executor::print_coinbase_tx_sum(uint64_t height, uint64_t cou
|
||||||
|
|
||||||
tools::msg_writer() << "Sum of coinbase transactions between block heights ["
|
tools::msg_writer() << "Sum of coinbase transactions between block heights ["
|
||||||
<< height << ", " << (height + count) << ") is "
|
<< height << ", " << (height + count) << ") is "
|
||||||
<< cryptonote::print_money(res.amount);
|
<< cryptonote::print_money(res.emission_amount + res.fee_amount) << " "
|
||||||
|
<< "consisting of " << cryptonote::print_money(res.emission_amount)
|
||||||
|
<< " in emissions, and " << cryptonote::print_money(res.fee_amount) << " in fees";
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1268,7 +1268,9 @@ namespace cryptonote
|
||||||
//------------------------------------------------------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------------------------------------------------------
|
||||||
bool core_rpc_server::on_get_coinbase_tx_sum(const COMMAND_RPC_GET_COINBASE_TX_SUM::request& req, COMMAND_RPC_GET_COINBASE_TX_SUM::response& res, epee::json_rpc::error& error_resp)
|
bool core_rpc_server::on_get_coinbase_tx_sum(const COMMAND_RPC_GET_COINBASE_TX_SUM::request& req, COMMAND_RPC_GET_COINBASE_TX_SUM::response& res, epee::json_rpc::error& error_resp)
|
||||||
{
|
{
|
||||||
res.amount = m_core.get_coinbase_tx_sum(req.height, req.count);
|
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;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
//------------------------------------------------------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -1243,11 +1243,13 @@ namespace cryptonote
|
||||||
struct response
|
struct response
|
||||||
{
|
{
|
||||||
std::string status;
|
std::string status;
|
||||||
uint64_t amount;
|
uint64_t emission_amount;
|
||||||
|
uint64_t fee_amount;
|
||||||
|
|
||||||
BEGIN_KV_SERIALIZE_MAP()
|
BEGIN_KV_SERIALIZE_MAP()
|
||||||
KV_SERIALIZE(status)
|
KV_SERIALIZE(status)
|
||||||
KV_SERIALIZE(amount)
|
KV_SERIALIZE(emission_amount)
|
||||||
|
KV_SERIALIZE(fee_amount)
|
||||||
END_KV_SERIALIZE_MAP()
|
END_KV_SERIALIZE_MAP()
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue