blockchain_db: remove unused get_output_key variant
It was actually incorrect, as it would not return commitment
This commit is contained in:
parent
0dddfeacc9
commit
43f71100bc
@ -303,7 +303,6 @@ public:
|
|||||||
virtual uint64_t get_indexing_base() const { return 1; }
|
virtual uint64_t get_indexing_base() const { return 1; }
|
||||||
|
|
||||||
virtual output_data_t get_output_key(const uint64_t& amount, const uint64_t& index);
|
virtual output_data_t get_output_key(const uint64_t& amount, const uint64_t& index);
|
||||||
virtual output_data_t get_output_key(const uint64_t& global_index) const;
|
|
||||||
virtual void get_output_key(const uint64_t &amount, const std::vector<uint64_t> &offsets, std::vector<output_data_t> &outputs);
|
virtual void get_output_key(const uint64_t &amount, const std::vector<uint64_t> &offsets, std::vector<output_data_t> &outputs);
|
||||||
|
|
||||||
virtual tx_out_index get_output_tx_and_index_from_global(const uint64_t& index) const;
|
virtual tx_out_index get_output_tx_and_index_from_global(const uint64_t& index) const;
|
||||||
@ -419,6 +418,7 @@ private:
|
|||||||
* @return the global index of the desired output
|
* @return the global index of the desired output
|
||||||
*/
|
*/
|
||||||
uint64_t get_output_global_index(const uint64_t& amount, const uint64_t& index);
|
uint64_t get_output_global_index(const uint64_t& amount, const uint64_t& index);
|
||||||
|
output_data_t get_output_key(const uint64_t& global_index) const;
|
||||||
void checkpoint_worker() const;
|
void checkpoint_worker() const;
|
||||||
void check_open() const;
|
void check_open() const;
|
||||||
|
|
||||||
|
@ -1261,23 +1261,6 @@ public:
|
|||||||
*/
|
*/
|
||||||
virtual output_data_t get_output_key(const uint64_t& amount, const uint64_t& index) = 0;
|
virtual output_data_t get_output_key(const uint64_t& amount, const uint64_t& index) = 0;
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief get some of an output's data
|
|
||||||
*
|
|
||||||
* The subclass should return the public key, unlock time, and block height
|
|
||||||
* for the output with the given global index, collected in a struct.
|
|
||||||
*
|
|
||||||
* If the output cannot be found, the subclass should throw OUTPUT_DNE.
|
|
||||||
*
|
|
||||||
* If any of these parts cannot be found, but some are, the subclass
|
|
||||||
* should throw DB_ERROR with a message stating as much.
|
|
||||||
*
|
|
||||||
* @param global_index the output's index (global)
|
|
||||||
*
|
|
||||||
* @return the requested output data
|
|
||||||
*/
|
|
||||||
virtual output_data_t get_output_key(const uint64_t& global_index) const = 0;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief gets an output's tx hash and index
|
* @brief gets an output's tx hash and index
|
||||||
*
|
*
|
||||||
|
@ -2454,55 +2454,6 @@ uint64_t BlockchainLMDB::get_num_outputs(const uint64_t& amount) const
|
|||||||
return num_elems;
|
return num_elems;
|
||||||
}
|
}
|
||||||
|
|
||||||
// This is a lot harder now that we've removed the output_keys index
|
|
||||||
output_data_t BlockchainLMDB::get_output_key(const uint64_t &global_index) const
|
|
||||||
{
|
|
||||||
LOG_PRINT_L3("BlockchainLMDB::" << __func__ << " (unused version - does nothing)");
|
|
||||||
check_open();
|
|
||||||
TXN_PREFIX_RDONLY();
|
|
||||||
RCURSOR(output_txs);
|
|
||||||
RCURSOR(tx_indices);
|
|
||||||
|
|
||||||
output_data_t od;
|
|
||||||
MDB_val_set(v, global_index);
|
|
||||||
auto get_result = mdb_cursor_get(m_cur_output_txs, (MDB_val *)&zerokval, &v, MDB_GET_BOTH);
|
|
||||||
if (get_result == MDB_NOTFOUND)
|
|
||||||
throw1(OUTPUT_DNE("output with given index not in db"));
|
|
||||||
else if (get_result)
|
|
||||||
throw0(DB_ERROR("DB error attempting to fetch output tx hash"));
|
|
||||||
|
|
||||||
outtx *ot = (outtx *)v.mv_data;
|
|
||||||
|
|
||||||
MDB_val_set(val_h, ot->tx_hash);
|
|
||||||
get_result = mdb_cursor_get(m_cur_tx_indices, (MDB_val *)&zerokval, &val_h, MDB_GET_BOTH);
|
|
||||||
if (get_result)
|
|
||||||
throw0(DB_ERROR(lmdb_error(std::string("DB error attempting to fetch transaction index from hash ") + epee::string_tools::pod_to_hex(ot->tx_hash) + ": ", get_result).c_str()));
|
|
||||||
|
|
||||||
txindex *tip = (txindex *)val_h.mv_data;
|
|
||||||
MDB_val_set(val_tx_id, tip->data.tx_id);
|
|
||||||
MDB_val result;
|
|
||||||
get_result = mdb_cursor_get(m_cur_txs_pruned, &val_tx_id, &result, MDB_SET);
|
|
||||||
if (get_result == MDB_NOTFOUND)
|
|
||||||
throw1(TX_DNE(std::string("tx with hash ").append(epee::string_tools::pod_to_hex(ot->tx_hash)).append(" not found in db").c_str()));
|
|
||||||
else if (get_result)
|
|
||||||
throw0(DB_ERROR(lmdb_error("DB error attempting to fetch tx from hash", get_result).c_str()));
|
|
||||||
|
|
||||||
blobdata bd;
|
|
||||||
bd.assign(reinterpret_cast<char*>(result.mv_data), result.mv_size);
|
|
||||||
|
|
||||||
transaction tx;
|
|
||||||
if (!parse_and_validate_tx_base_from_blob(bd, tx))
|
|
||||||
throw0(DB_ERROR("Failed to parse tx from blob retrieved from the db"));
|
|
||||||
|
|
||||||
const tx_out tx_output = tx.vout[ot->local_index];
|
|
||||||
od.unlock_time = tip->data.unlock_time;
|
|
||||||
od.height = tip->data.block_id;
|
|
||||||
od.pubkey = boost::get<txout_to_key>(tx_output.target).key;
|
|
||||||
|
|
||||||
TXN_POSTFIX_RDONLY();
|
|
||||||
return od;
|
|
||||||
}
|
|
||||||
|
|
||||||
output_data_t BlockchainLMDB::get_output_key(const uint64_t& amount, const uint64_t& index)
|
output_data_t BlockchainLMDB::get_output_key(const uint64_t& amount, const uint64_t& index)
|
||||||
{
|
{
|
||||||
LOG_PRINT_L3("BlockchainLMDB::" << __func__);
|
LOG_PRINT_L3("BlockchainLMDB::" << __func__);
|
||||||
|
@ -243,7 +243,6 @@ public:
|
|||||||
virtual uint64_t get_num_outputs(const uint64_t& amount) const;
|
virtual uint64_t get_num_outputs(const uint64_t& amount) const;
|
||||||
|
|
||||||
virtual output_data_t get_output_key(const uint64_t& amount, const uint64_t& index);
|
virtual output_data_t get_output_key(const uint64_t& amount, const uint64_t& index);
|
||||||
virtual output_data_t get_output_key(const uint64_t& global_index) const;
|
|
||||||
virtual void get_output_key(const uint64_t &amount, const std::vector<uint64_t> &offsets, std::vector<output_data_t> &outputs, bool allow_partial = false);
|
virtual void get_output_key(const uint64_t &amount, const std::vector<uint64_t> &offsets, std::vector<output_data_t> &outputs, bool allow_partial = false);
|
||||||
|
|
||||||
virtual tx_out_index get_output_tx_and_index_from_global(const uint64_t& index) const;
|
virtual tx_out_index get_output_tx_and_index_from_global(const uint64_t& index) const;
|
||||||
|
@ -93,7 +93,6 @@ public:
|
|||||||
virtual uint64_t get_num_outputs(const uint64_t& amount) const { return 1; }
|
virtual uint64_t get_num_outputs(const uint64_t& amount) const { return 1; }
|
||||||
virtual uint64_t get_indexing_base() const { return 0; }
|
virtual uint64_t get_indexing_base() const { return 0; }
|
||||||
virtual output_data_t get_output_key(const uint64_t& amount, const uint64_t& index) { return output_data_t(); }
|
virtual output_data_t get_output_key(const uint64_t& amount, const uint64_t& index) { return output_data_t(); }
|
||||||
virtual output_data_t get_output_key(const uint64_t& global_index) const { return output_data_t(); }
|
|
||||||
virtual tx_out_index get_output_tx_and_index_from_global(const uint64_t& index) const { return tx_out_index(); }
|
virtual tx_out_index get_output_tx_and_index_from_global(const uint64_t& index) const { return tx_out_index(); }
|
||||||
virtual tx_out_index get_output_tx_and_index(const uint64_t& amount, const uint64_t& index) const { return tx_out_index(); }
|
virtual tx_out_index get_output_tx_and_index(const uint64_t& amount, const uint64_t& index) const { return tx_out_index(); }
|
||||||
virtual void get_output_tx_and_index(const uint64_t& amount, const std::vector<uint64_t> &offsets, std::vector<tx_out_index> &indices) const {}
|
virtual void get_output_tx_and_index(const uint64_t& amount, const std::vector<uint64_t> &offsets, std::vector<tx_out_index> &indices) const {}
|
||||||
|
Loading…
Reference in New Issue
Block a user