use super::*;
use crate::internal_prelude::*;
#[derive(Debug, Clone, Eq, PartialEq, ManifestSbor, ScryptoDescribe)]
pub struct TransactionIntentV2 {
pub transaction_header: TransactionHeaderV2,
pub root_intent_core: IntentCoreV2,
pub non_root_subintents: NonRootSubintentsV2,
}
define_transaction_payload!(
TransactionIntentV2,
RawTransactionIntent,
PreparedTransactionIntentV2 {
transaction_header: PreparedTransactionHeaderV2,
root_intent_core: PreparedIntentCoreV2,
non_root_subintents: PreparedNonRootSubintentsV2,
},
TransactionDiscriminator::V2TransactionIntent,
);
impl HasTransactionIntentHash for PreparedTransactionIntentV2 {
fn transaction_intent_hash(&self) -> TransactionIntentHash {
TransactionIntentHash::from_hash(self.summary.hash)
}
}
impl HasNonRootSubintentHashes for PreparedTransactionIntentV2 {
fn non_root_subintent_hashes(&self) -> Vec<SubintentHash> {
self.non_root_subintents.non_root_subintent_hashes()
}
}