bool transaction::read_from_disk( db_tx & tx_db, const point_out & previous_out, transaction_index & tx_index ) { set_null(); if ( tx_db.read_transaction_index( previous_out.get_hash(), tx_index) == false ) { log_debug( "Transaction failed to read from disk, read transaction index " "failed, previous out = " << previous_out.get_hash().to_string().substr(0, 20) << "." ); return false; } if (read_from_disk(tx_index.get_transaction_position()) == false) { log_debug( "Transaction failed to read from disk, read from disk failed." ); return false; } if (previous_out.n() >= m_transactions_out.size()) { log_debug( "Transaction failed to read from disk, n is greater than outputs." ); set_null(); return false; } return true; }
bool db_tx::read_disk_transaction(const point_out & outpoint, transaction & tx) { transaction_index index; return read_disk_transaction(outpoint.get_hash(), tx, index); }