db: throw when given a non txout_to_key output to add
The check was explicit in the original version, so it seems safer to make it explicit here, especially as it is now done implicitely in a different place, away from the original check.
This commit is contained in:
parent
d0e434f0d8
commit
5eef64578b
3 changed files with 13 additions and 0 deletions
|
@ -391,6 +391,10 @@ void BlockchainBDB::add_output(const crypto::hash& tx_hash, const tx_out& tx_out
|
|||
if (m_output_keys->put(DB_DEFAULT_TX, &k, &data, 0))
|
||||
throw0(DB_ERROR("Failed to add output pubkey to db transaction"));
|
||||
}
|
||||
else
|
||||
{
|
||||
throw0(DB_ERROR("Wrong output type: expected txout_to_key"));
|
||||
}
|
||||
|
||||
m_num_outputs++;
|
||||
}
|
||||
|
|
|
@ -695,6 +695,10 @@ void BlockchainLMDB::add_output(const crypto::hash& tx_hash, const tx_out& tx_ou
|
|||
if (mdb_put(*m_write_txn, m_output_keys, &k, &data, 0))
|
||||
throw0(DB_ERROR("Failed to add output pubkey to db transaction"));
|
||||
}
|
||||
else
|
||||
{
|
||||
throw0(DB_ERROR("Wrong output type: expected txout_to_key"));
|
||||
}
|
||||
|
||||
m_num_outputs++;
|
||||
}
|
||||
|
|
|
@ -2246,6 +2246,11 @@ bool Blockchain::check_tx_input(const txin_to_key& txin, const crypto::hash& tx_
|
|||
return false;
|
||||
}
|
||||
|
||||
// The original code includes a check for the output corresponding to this input
|
||||
// to be a txout_to_key. This is removed, as the database does not store this info,
|
||||
// but only txout_to_key outputs are stored in the DB in the first place, done in
|
||||
// Blockchain*::add_output
|
||||
|
||||
m_output_keys.push_back(pubkey);
|
||||
return true;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue