cryptonote_basic: pruned hash return bool

This commit is contained in:
j-berman
2026-04-21 12:04:31 -07:00
parent 230de37949
commit 94089a8788
4 changed files with 8 additions and 8 deletions
@@ -1313,10 +1313,10 @@ namespace cryptonote
return res; 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 // 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 // v2 transactions hash different parts together, than hash the set of those hashes
crypto::hash hashes[3]; crypto::hash hashes[3];
@@ -1333,7 +1333,7 @@ namespace cryptonote
const size_t inputs = t.vin.size(); const size_t inputs = t.vin.size();
const size_t outputs = t.vout.size(); const size_t outputs = t.vout.size();
bool r = tt.rct_signatures.serialize_rctsig_base(ba, inputs, outputs); 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]); cryptonote::get_blob_hash(ss.str(), hashes[1]);
} }
@@ -1344,9 +1344,9 @@ namespace cryptonote
hashes[2] = pruned_data_hash; hashes[2] = pruned_data_hash;
// the tx hash is the hash of the 3 hashes // 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); t.set_hash(res);
return res; return true;
} }
//--------------------------------------------------------------- //---------------------------------------------------------------
bool calculate_transaction_hash(const transaction& t, crypto::hash& res, size_t* blob_size) 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); 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); 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); 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); blobdata get_block_hashing_blob(const block& b);
bool calculate_block_hash(const block& b, crypto::hash& res, const blobdata_ref *blob = NULL); 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 (is_pruned)
{ {
if ((parse_success = cryptonote::parse_and_validate_tx_base_from_blob(tx_entry.blob, tx))) 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 else
{ {
+1 -1
View File
@@ -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 // only v2 txes can calculate their txid after pruned
if (bd[0] > 1) 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 else
{ {