alt_chain_info can now give more info about a particular alt chain

This commit is contained in:
moneromooo-monero 2018-05-19 23:53:05 +01:00
parent 25e7a7d96f
commit 50af3579ee
No known key found for this signature in database
GPG key ID: 686F07454D6CEFC3
8 changed files with 57 additions and 19 deletions

View file

@ -4393,9 +4393,9 @@ std::map<uint64_t, std::tuple<uint64_t, uint64_t, uint64_t>> Blockchain:: get_ou
return m_db->get_output_histogram(amounts, unlocked, recent_cutoff, min_count);
}
std::list<std::pair<Blockchain::block_extended_info,uint64_t>> Blockchain::get_alternative_chains() const
std::list<std::pair<Blockchain::block_extended_info,std::vector<crypto::hash>>> Blockchain::get_alternative_chains() const
{
std::list<std::pair<Blockchain::block_extended_info,uint64_t>> chains;
std::list<std::pair<Blockchain::block_extended_info,std::vector<crypto::hash>>> chains;
for (const auto &i: m_alternative_chains)
{
@ -4411,15 +4411,16 @@ std::list<std::pair<Blockchain::block_extended_info,uint64_t>> Blockchain::get_a
}
if (!found)
{
uint64_t length = 1;
std::vector<crypto::hash> chain;
auto h = i.second.bl.prev_id;
chain.push_back(top);
blocks_ext_by_hash::const_iterator prev;
while ((prev = m_alternative_chains.find(h)) != m_alternative_chains.end())
{
chain.push_back(h);
h = prev->second.bl.prev_id;
++length;
}
chains.push_back(std::make_pair(i.second, length));
chains.push_back(std::make_pair(i.second, chain));
}
}
return chains;

View file

@ -939,7 +939,7 @@ namespace cryptonote
*
* @return a list of chains
*/
std::list<std::pair<block_extended_info,uint64_t>> get_alternative_chains() const;
std::list<std::pair<block_extended_info,std::vector<crypto::hash>>> get_alternative_chains() const;
void add_txpool_tx(transaction &tx, const txpool_tx_meta_t &meta);
void update_txpool_tx(const crypto::hash &txid, const txpool_tx_meta_t &meta);