Skip to content

Commit

Permalink
*TxBody.hash() for multi-era rework
Browse files Browse the repository at this point in the history
Use `TransactionBody` instead of of [u8; 32] to be consistent with
`hash_transaction()`.

Moves all the functions that were added directly to `mod.rs` in #298 files to
`utils.rs` files where they should be since they aren't auto-generated.
  • Loading branch information
rooooooooob committed Mar 11, 2024
1 parent 7d55113 commit 7f1249e
Show file tree
Hide file tree
Showing 13 changed files with 66 additions and 41 deletions.
7 changes: 1 addition & 6 deletions multi-era/rust/src/allegra/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,8 @@ use cml_chain::transaction::{NativeScript, TransactionInput};
use cml_chain::Withdrawals;
use cml_chain::{DeltaCoin, LenEncoding, TransactionIndex};
use cml_core::ordered_hash_map::OrderedHashMap;
use cml_core::serialization::Serialize;
use cml_core::Epoch;
use cml_crypto::{blake2b256, Ed25519KeyHash, GenesisDelegateHash, GenesisHash, VRFKeyHash};
use cml_crypto::{Ed25519KeyHash, GenesisDelegateHash, GenesisHash, VRFKeyHash};
use std::collections::BTreeMap;

use self::cbor_encodings::{MoveInstantaneousRewardEncoding, MoveInstantaneousRewardsCertEncoding};
Expand Down Expand Up @@ -188,10 +187,6 @@ impl AllegraTransactionBody {
encodings: None,
}
}

pub fn hash(&self) -> [u8; 32] {
blake2b256(&self.to_cbor_bytes())
}
}

#[derive(Clone, Debug, serde::Deserialize, serde::Serialize, schemars::JsonSchema)]
Expand Down
11 changes: 10 additions & 1 deletion multi-era/rust/src/allegra/utils.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,15 @@
use cml_chain::{auxdata::AuxiliaryData, transaction::TransactionWitnessSet};

use super::{AllegraAuxiliaryData, AllegraTransactionWitnessSet};
use super::{AllegraAuxiliaryData, AllegraTransactionBody, AllegraTransactionWitnessSet};

use cml_core::serialization::Serialize;
use cml_crypto::{blake2b256, TransactionHash};

impl AllegraTransactionBody {
pub fn hash(&self) -> TransactionHash {
blake2b256(&self.to_cbor_bytes()).into()
}
}

impl From<AllegraAuxiliaryData> for AuxiliaryData {
fn from(aux: AllegraAuxiliaryData) -> Self {
Expand Down
6 changes: 0 additions & 6 deletions multi-era/rust/src/alonzo/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,6 @@ use cml_chain::transaction::{AlonzoFormatTxOut, NativeScript, RequiredSigners, T
use cml_chain::TransactionIndex;
use cml_chain::{Epoch, NetworkId, Rational, UnitInterval, Withdrawals};
use cml_core::ordered_hash_map::OrderedHashMap;
use cml_core::serialization::Serialize;
use cml_crypto::blake2b256;
use std::collections::BTreeMap;

#[derive(Clone, Debug, serde::Deserialize, serde::Serialize, schemars::JsonSchema)]
Expand Down Expand Up @@ -259,10 +257,6 @@ impl AlonzoTransactionBody {
encodings: None,
}
}

pub fn hash(&self) -> [u8; 32] {
blake2b256(&self.to_cbor_bytes())
}
}

#[derive(Clone, Debug, serde::Deserialize, serde::Serialize, schemars::JsonSchema)]
Expand Down
11 changes: 10 additions & 1 deletion multi-era/rust/src/alonzo/utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,16 @@ use cml_chain::{
transaction::TransactionWitnessSet,
};

use super::{AlonzoAuxiliaryData, AlonzoTransactionWitnessSet};
use super::{AlonzoAuxiliaryData, AlonzoTransactionBody, AlonzoTransactionWitnessSet};

use cml_core::serialization::Serialize;
use cml_crypto::{blake2b256, TransactionHash};

impl AlonzoTransactionBody {
pub fn hash(&self) -> TransactionHash {
blake2b256(&self.to_cbor_bytes()).into()
}
}

impl From<AlonzoAuxiliaryData> for AuxiliaryData {
fn from(aux: AlonzoAuxiliaryData) -> Self {
Expand Down
7 changes: 1 addition & 6 deletions multi-era/rust/src/babbage/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,9 @@ use cml_chain::transaction::{
use cml_chain::{Epoch, NetworkId, Rational, UnitInterval, Withdrawals};

use cml_core::ordered_hash_map::OrderedHashMap;
use cml_core::serialization::{LenEncoding, Serialize};
use cml_core::serialization::LenEncoding;
use cml_core::{Int, TransactionIndex};

use cml_crypto::blake2b256;
use std::collections::BTreeMap;

#[derive(Clone, Debug, serde::Deserialize, serde::Serialize, schemars::JsonSchema)]
Expand Down Expand Up @@ -356,10 +355,6 @@ impl BabbageTransactionBody {
encodings: None,
}
}

pub fn hash(&self) -> [u8; 32] {
blake2b256(&self.to_cbor_bytes())
}
}

#[derive(Clone, Debug, serde::Deserialize, serde::Serialize, schemars::JsonSchema)]
Expand Down
13 changes: 12 additions & 1 deletion multi-era/rust/src/babbage/utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,18 @@ use cml_chain::{
Script,
};

use super::{BabbageAuxiliaryData, BabbageScript, BabbageTransactionWitnessSet};
use super::{
BabbageAuxiliaryData, BabbageScript, BabbageTransactionBody, BabbageTransactionWitnessSet,
};

use cml_core::serialization::Serialize;
use cml_crypto::{blake2b256, TransactionHash};

impl BabbageTransactionBody {
pub fn hash(&self) -> TransactionHash {
blake2b256(&self.to_cbor_bytes()).into()
}
}

impl From<BabbageScript> for Script {
fn from(script: BabbageScript) -> Script {
Expand Down
7 changes: 1 addition & 6 deletions multi-era/rust/src/byron/transaction/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,11 @@
// https://github.com/dcSpark/cddl-codegen

pub mod serialization;
pub mod utils;

use crate::byron::{Blake2b256, ByronPubKey, ByronSignature, ByronTxId};

use cml_chain::byron::ByronTxOut;
use cml_core::serialization::ToBytes;
use cml_crypto::blake2b256;
use std::collections::BTreeMap;

use super::ByronAny;
Expand Down Expand Up @@ -122,10 +121,6 @@ impl ByronTx {
attrs,
}
}

pub fn hash(&self) -> [u8; 32] {
blake2b256(&self.to_bytes())
}
}

#[derive(Clone, Debug, serde::Deserialize, serde::Serialize, schemars::JsonSchema)]
Expand Down
9 changes: 9 additions & 0 deletions multi-era/rust/src/byron/transaction/utils.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
use super::ByronTx;
use cml_core::serialization::ToBytes;
use cml_crypto::{blake2b256, TransactionHash};

impl ByronTx {
pub fn hash(&self) -> TransactionHash {
blake2b256(&self.to_bytes()).into()
}
}
7 changes: 1 addition & 6 deletions multi-era/rust/src/mary/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

pub mod cbor_encodings;
pub mod serialization;
pub mod utils;

use crate::allegra::{AllegraAuxiliaryData, AllegraCertificate, AllegraTransactionWitnessSet};
use crate::shelley::{ShelleyHeader, ShelleyUpdate};
Expand All @@ -15,8 +16,6 @@ use cml_chain::transaction::TransactionInput;
use cml_chain::TransactionIndex;
use cml_chain::Withdrawals;
use cml_core::ordered_hash_map::OrderedHashMap;
use cml_core::serialization::Serialize;
use cml_crypto::blake2b256;
use std::collections::BTreeMap;

use self::cbor_encodings::MaryTransactionOutputEncoding;
Expand Down Expand Up @@ -108,10 +107,6 @@ impl MaryTransactionBody {
encodings: None,
}
}

pub fn hash(&self) -> [u8; 32] {
blake2b256(&self.to_cbor_bytes())
}
}

#[derive(Clone, Debug, serde::Deserialize, serde::Serialize, schemars::JsonSchema)]
Expand Down
9 changes: 9 additions & 0 deletions multi-era/rust/src/mary/utils.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
use super::MaryTransactionBody;
use cml_core::serialization::Serialize;
use cml_crypto::{blake2b256, TransactionHash};

impl MaryTransactionBody {
pub fn hash(&self) -> TransactionHash {
blake2b256(&self.to_cbor_bytes()).into()
}
}
7 changes: 1 addition & 6 deletions multi-era/rust/src/shelley/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,8 @@ use cml_chain::crypto::{
use cml_chain::transaction::TransactionInput;
use cml_chain::{Epoch, LenEncoding, Rational, UnitInterval, Withdrawals};
use cml_core::ordered_hash_map::OrderedHashMap;
use cml_core::serialization::Serialize;
use cml_core::TransactionIndex;
use cml_crypto::{blake2b256, GenesisDelegateHash, VRFKeyHash};
use cml_crypto::{GenesisDelegateHash, VRFKeyHash};
use std::collections::BTreeMap;

use crate::allegra::MIRPot;
Expand Down Expand Up @@ -472,10 +471,6 @@ impl ShelleyTransactionBody {
encodings: None,
}
}

pub fn hash(&self) -> [u8; 32] {
blake2b256(&self.to_cbor_bytes())
}
}

pub type ShelleyTransactionIndex = u16;
Expand Down
11 changes: 10 additions & 1 deletion multi-era/rust/src/shelley/utils.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,15 @@
use cml_chain::transaction::{NativeScript, TransactionWitnessSet};

use super::{MultisigScript, ShelleyTransactionWitnessSet};
use super::{MultisigScript, ShelleyTransactionBody, ShelleyTransactionWitnessSet};

use cml_core::serialization::Serialize;
use cml_crypto::{blake2b256, TransactionHash};

impl ShelleyTransactionBody {
pub fn hash(&self) -> TransactionHash {
blake2b256(&self.to_cbor_bytes()).into()
}
}

impl From<ShelleyTransactionWitnessSet> for TransactionWitnessSet {
fn from(wits: ShelleyTransactionWitnessSet) -> Self {
Expand Down
2 changes: 1 addition & 1 deletion multi-era/rust/src/utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -782,7 +782,7 @@ impl MultiEraTransactionBody {
}
}

pub fn hash(&self) -> [u8; 32] {
pub fn hash(&self) -> TransactionHash {
match self {
MultiEraTransactionBody::Byron(tx) => tx.hash(),
MultiEraTransactionBody::Shelley(tx) => tx.hash(),
Expand Down

0 comments on commit 7f1249e

Please sign in to comment.