mirror of
https://github.com/monero-project/monero.git
synced 2026-07-28 22:51:07 -07:00
cryptonote_basic: pruned hash return bool
This commit is contained in:
@@ -1313,10 +1313,10 @@ namespace cryptonote
|
||||
return res;
|
||||
}
|
||||
//---------------------------------------------------------------
|
||||
crypto::hash get_pruned_transaction_hash(const transaction& t, const crypto::hash &pruned_data_hash)
|
||||
bool get_pruned_transaction_hash(const transaction& t, const crypto::hash &pruned_data_hash, crypto::hash &res)
|
||||
{
|
||||
// v1 transactions hash the entire blob
|
||||
CHECK_AND_ASSERT_THROW_MES(t.version > 1, "Hash for pruned v1 tx cannot be calculated");
|
||||
CHECK_AND_ASSERT_MES(t.version > 1, false, "Hash for pruned v1 tx cannot be calculated");
|
||||
|
||||
// v2 transactions hash different parts together, than hash the set of those hashes
|
||||
crypto::hash hashes[3];
|
||||
@@ -1333,7 +1333,7 @@ namespace cryptonote
|
||||
const size_t inputs = t.vin.size();
|
||||
const size_t outputs = t.vout.size();
|
||||
bool r = tt.rct_signatures.serialize_rctsig_base(ba, inputs, outputs);
|
||||
CHECK_AND_ASSERT_THROW_MES(r, "Failed to serialize rct signatures base");
|
||||
CHECK_AND_ASSERT_MES(r, false, "Failed to serialize rct signatures base");
|
||||
cryptonote::get_blob_hash(ss.str(), hashes[1]);
|
||||
}
|
||||
|
||||
@@ -1344,9 +1344,9 @@ namespace cryptonote
|
||||
hashes[2] = pruned_data_hash;
|
||||
|
||||
// the tx hash is the hash of the 3 hashes
|
||||
crypto::hash res = cn_fast_hash(hashes, sizeof(hashes));
|
||||
res = cn_fast_hash(hashes, sizeof(hashes));
|
||||
t.set_hash(res);
|
||||
return res;
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------
|
||||
bool calculate_transaction_hash(const transaction& t, crypto::hash& res, size_t* blob_size)
|
||||
|
||||
@@ -118,7 +118,7 @@ namespace cryptonote
|
||||
bool calculate_transaction_prunable_hash(const transaction& t, const cryptonote::blobdata_ref *blob, crypto::hash& res);
|
||||
crypto::hash get_transaction_prunable_hash(const transaction& t, const cryptonote::blobdata_ref *blob = NULL);
|
||||
bool calculate_transaction_hash(const transaction& t, crypto::hash& res, size_t* blob_size);
|
||||
crypto::hash get_pruned_transaction_hash(const transaction& t, const crypto::hash &pruned_data_hash);
|
||||
bool get_pruned_transaction_hash(const transaction& t, const crypto::hash &pruned_data_hash, crypto::hash& res);
|
||||
|
||||
blobdata get_block_hashing_blob(const block& b);
|
||||
bool calculate_block_hash(const block& b, crypto::hash& res, const blobdata_ref *blob = NULL);
|
||||
|
||||
@@ -119,7 +119,7 @@ namespace cryptonote
|
||||
if (is_pruned)
|
||||
{
|
||||
if ((parse_success = cryptonote::parse_and_validate_tx_base_from_blob(tx_entry.blob, tx)))
|
||||
tx_hash = cryptonote::get_pruned_transaction_hash(tx, tx_entry.prunable_hash);
|
||||
parse_success = cryptonote::get_pruned_transaction_hash(tx, tx_entry.prunable_hash, tx_hash);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -984,7 +984,7 @@ bool get_pruned_tx(const cryptonote::COMMAND_RPC_GET_TRANSACTIONS::entry &entry,
|
||||
// only v2 txes can calculate their txid after pruned
|
||||
if (bd[0] > 1)
|
||||
{
|
||||
tx_hash = cryptonote::get_pruned_transaction_hash(tx, ph);
|
||||
CHECK_AND_ASSERT_MES(cryptonote::get_pruned_transaction_hash(tx, ph, tx_hash), false, "Failed to get pruned tx hash");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user