Merge pull request #2640
22b51e06
db_lmdb: include chain height when failing to find an output key (moneromooo-monero)5db433b3
blockchain: avoid exceptions in output verification (moneromooo-monero)
This commit is contained in:
commit
b293ad9a1a
@ -2933,7 +2933,7 @@ void BlockchainLMDB::get_output_key(const uint64_t &amount, const std::vector<ui
|
|||||||
MDEBUG("Partial result: " << outputs.size() << "/" << offsets.size());
|
MDEBUG("Partial result: " << outputs.size() << "/" << offsets.size());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
throw1(OUTPUT_DNE((std::string("Attempting to get output pubkey by global index (amount ") + boost::lexical_cast<std::string>(amount) + ", index " + boost::lexical_cast<std::string>(index) + ", count " + boost::lexical_cast<std::string>(get_num_outputs(amount)) + "), but key does not exist").c_str()));
|
throw1(OUTPUT_DNE((std::string("Attempting to get output pubkey by global index (amount ") + boost::lexical_cast<std::string>(amount) + ", index " + boost::lexical_cast<std::string>(index) + ", count " + boost::lexical_cast<std::string>(get_num_outputs(amount)) + "), but key does not exist (current height " + boost::lexical_cast<std::string>(height()) + ")").c_str()));
|
||||||
}
|
}
|
||||||
else if (get_result)
|
else if (get_result)
|
||||||
throw0(DB_ERROR(lmdb_error("Error attempting to retrieve an output pubkey from the db", get_result).c_str()));
|
throw0(DB_ERROR(lmdb_error("Error attempting to retrieve an output pubkey from the db", get_result).c_str()));
|
||||||
|
@ -188,7 +188,12 @@ bool Blockchain::scan_outputkeys_for_indexes(size_t tx_version, const txin_to_ke
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
m_db->get_output_key(tx_in_to_key.amount, absolute_offsets, outputs);
|
m_db->get_output_key(tx_in_to_key.amount, absolute_offsets, outputs, true);
|
||||||
|
if (absolute_offsets.size() != outputs.size())
|
||||||
|
{
|
||||||
|
MERROR_VER("Output does not exist! amount = " << tx_in_to_key.amount);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (...)
|
catch (...)
|
||||||
{
|
{
|
||||||
@ -208,7 +213,12 @@ bool Blockchain::scan_outputkeys_for_indexes(size_t tx_version, const txin_to_ke
|
|||||||
add_offsets.push_back(absolute_offsets[i]);
|
add_offsets.push_back(absolute_offsets[i]);
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
m_db->get_output_key(tx_in_to_key.amount, add_offsets, add_outputs);
|
m_db->get_output_key(tx_in_to_key.amount, add_offsets, add_outputs, true);
|
||||||
|
if (add_offsets.size() != add_outputs.size())
|
||||||
|
{
|
||||||
|
MERROR_VER("Output does not exist! amount = " << tx_in_to_key.amount);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (...)
|
catch (...)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user