addressed comments

This commit is contained in:
jonesmarvin8 2026-04-30 11:14:09 -04:00
parent 8dd0919aa2
commit f4982a896d
6 changed files with 19 additions and 23 deletions

View File

@ -114,11 +114,6 @@ impl HashableBlockData {
bedrock_parent_id, bedrock_parent_id,
} }
} }
#[must_use]
pub fn block_hash(&self) -> BlockHash {
OwnHasher::hash(&borsh::to_vec(&self).unwrap())
}
} }
impl From<Block> for HashableBlockData { impl From<Block> for HashableBlockData {

View File

@ -122,15 +122,16 @@ impl Message {
} }
#[must_use] #[must_use]
pub fn hash_message(&self) -> [u8; 32] { pub fn hash(&self) -> [u8; 32] {
let msg = self.to_bytes();
let mut bytes = Vec::with_capacity( let mut bytes = Vec::with_capacity(
PREFIX PREFIX
.len() .len()
.checked_add(self.to_bytes().len()) .checked_add(msg.len())
.expect("length overflow"), .expect("length overflow"),
); );
bytes.extend_from_slice(PREFIX); bytes.extend_from_slice(PREFIX);
bytes.extend_from_slice(&self.to_bytes()); bytes.extend_from_slice(&msg);
Sha256::digest(bytes).into() Sha256::digest(bytes).into()
} }
@ -188,7 +189,7 @@ pub mod tests {
} }
#[test] #[test]
fn hash_message_privacy_pinned() { fn hash_privacy_pinned() {
let msg = Message { let msg = Message {
public_account_ids: vec![AccountId::new([42_u8; 32])], public_account_ids: vec![AccountId::new([42_u8; 32])],
nonces: vec![Nonce(5)], nonces: vec![Nonce(5)],
@ -224,7 +225,7 @@ pub mod tests {
assert_eq!( assert_eq!(
borsh::to_vec(&msg).unwrap(), borsh::to_vec(&msg).unwrap(),
expected_borsh, expected_borsh,
"`privacy_preserving_transaction::hash_message()`: expected borsh order has changed" "`privacy_preserving_transaction::hash()`: expected borsh order has changed"
); );
let mut preimage = Vec::with_capacity(PREFIX.len() + expected_borsh.len()); let mut preimage = Vec::with_capacity(PREFIX.len() + expected_borsh.len());
@ -233,9 +234,9 @@ pub mod tests {
let expected_hash: [u8; 32] = Sha256::digest(&preimage).into(); let expected_hash: [u8; 32] = Sha256::digest(&preimage).into();
assert_eq!( assert_eq!(
msg.hash_message(), msg.hash(),
expected_hash, expected_hash,
"`privacy_preserving_transaction::hash_message()`: serialization has changed" "`privacy_preserving_transaction::hash()`: serialization has changed"
); );
} }

View File

@ -14,7 +14,7 @@ pub struct WitnessSet {
impl WitnessSet { impl WitnessSet {
#[must_use] #[must_use]
pub fn for_message(message: &Message, proof: Proof, private_keys: &[&PrivateKey]) -> Self { pub fn for_message(message: &Message, proof: Proof, private_keys: &[&PrivateKey]) -> Self {
let message_hash = message.hash_message(); let message_hash = message.hash();
let signatures_and_public_keys = private_keys let signatures_and_public_keys = private_keys
.iter() .iter()
.map(|&key| { .map(|&key| {
@ -32,7 +32,7 @@ impl WitnessSet {
#[must_use] #[must_use]
pub fn signatures_are_valid_for(&self, message: &Message) -> bool { pub fn signatures_are_valid_for(&self, message: &Message) -> bool {
let message_hash = message.hash_message(); let message_hash = message.hash();
for (signature, public_key) in self.signatures_and_public_keys() { for (signature, public_key) in self.signatures_and_public_keys() {
if !signature.is_valid_for(&message_hash, public_key) { if !signature.is_valid_for(&message_hash, public_key) {
return false; return false;

View File

@ -68,7 +68,7 @@ impl Message {
} }
#[must_use] #[must_use]
pub fn hash_message(&self) -> [u8; 32] { pub fn hash(&self) -> [u8; 32] {
let mut bytes = Vec::with_capacity( let mut bytes = Vec::with_capacity(
PREFIX PREFIX
.len() .len()
@ -90,7 +90,7 @@ mod tests {
use super::{Message, PREFIX}; use super::{Message, PREFIX};
#[test] #[test]
fn hash_message_public_pinned() { fn hash_public_pinned() {
let msg = Message::new_preserialized( let msg = Message::new_preserialized(
[1_u32; 8], [1_u32; 8],
vec![AccountId::new([42_u8; 32])], vec![AccountId::new([42_u8; 32])],
@ -122,7 +122,7 @@ mod tests {
assert_eq!( assert_eq!(
borsh::to_vec(&msg).unwrap(), borsh::to_vec(&msg).unwrap(),
expected_borsh, expected_borsh,
"`public_transaction::hash_message()`: expected borsh order has changed" "`public_transaction::hash()`: expected borsh order has changed"
); );
let mut preimage = Vec::with_capacity(PREFIX.len() + expected_borsh.len()); let mut preimage = Vec::with_capacity(PREFIX.len() + expected_borsh.len());
@ -131,9 +131,9 @@ mod tests {
let expected_hash: [u8; 32] = Sha256::digest(&preimage).into(); let expected_hash: [u8; 32] = Sha256::digest(&preimage).into();
assert_eq!( assert_eq!(
msg.hash_message(), msg.hash(),
expected_hash, expected_hash,
"`public_transaction::hash_message()`: serialization has changed" "`public_transaction::hash()`: serialization has changed"
); );
} }
} }

View File

@ -10,7 +10,7 @@ pub struct WitnessSet {
impl WitnessSet { impl WitnessSet {
#[must_use] #[must_use]
pub fn for_message(message: &Message, private_keys: &[&PrivateKey]) -> Self { pub fn for_message(message: &Message, private_keys: &[&PrivateKey]) -> Self {
let message_hash = message.hash_message(); let message_hash = message.hash();
let signatures_and_public_keys = private_keys let signatures_and_public_keys = private_keys
.iter() .iter()
.map(|&key| { .map(|&key| {
@ -27,7 +27,7 @@ impl WitnessSet {
#[must_use] #[must_use]
pub fn is_valid_for(&self, message: &Message) -> bool { pub fn is_valid_for(&self, message: &Message) -> bool {
let message_hash = message.hash_message(); let message_hash = message.hash();
for (signature, public_key) in self.signatures_and_public_keys() { for (signature, public_key) in self.signatures_and_public_keys() {
if !signature.is_valid_for(&message_hash, public_key) { if !signature.is_valid_for(&message_hash, public_key) {
return false; return false;
@ -75,7 +75,7 @@ mod tests {
assert_eq!(witness_set.signatures_and_public_keys.len(), 2); assert_eq!(witness_set.signatures_and_public_keys.len(), 2);
let message_bytes = message.hash_message(); let message_bytes = message.hash();
for ((signature, public_key), expected_public_key) in witness_set for ((signature, public_key), expected_public_key) in witness_set
.signatures_and_public_keys .signatures_and_public_keys
.into_iter() .into_iter()

View File

@ -36,9 +36,9 @@ impl FromStr for Signature {
} }
impl Signature { impl Signature {
#[must_use]
/// This function expects the incoming message to be prehashed to be pre-2022 BIP-340/Keycard /// This function expects the incoming message to be prehashed to be pre-2022 BIP-340/Keycard
/// compatible. /// compatible.
#[must_use]
pub fn new(key: &PrivateKey, message: &[u8; 32]) -> Self { pub fn new(key: &PrivateKey, message: &[u8; 32]) -> Self {
let mut aux_random = [0_u8; 32]; let mut aux_random = [0_u8; 32];
OsRng.fill_bytes(&mut aux_random); OsRng.fill_bytes(&mut aux_random);