use super::*;
use crate::internal_prelude::*;
#[derive(Debug, Clone, Eq, PartialEq, ManifestSbor, ScryptoDescribe)]
pub struct SignedTransactionIntentV2 {
pub transaction_intent: TransactionIntentV2,
pub transaction_intent_signatures: IntentSignaturesV2,
pub non_root_subintent_signatures: NonRootSubintentSignaturesV2,
}
define_transaction_payload!(
SignedTransactionIntentV2,
RawSignedTransactionIntent,
PreparedSignedTransactionIntentV2 {
transaction_intent: PreparedTransactionIntentV2,
transaction_intent_signatures: PreparedIntentSignaturesV2,
non_root_subintent_signatures: PreparedNonRootSubintentSignaturesV2,
},
TransactionDiscriminator::V2SignedTransactionIntent,
);
impl HasTransactionIntentHash for PreparedSignedTransactionIntentV2 {
fn transaction_intent_hash(&self) -> TransactionIntentHash {
self.transaction_intent.transaction_intent_hash()
}
}
impl HasSignedTransactionIntentHash for PreparedSignedTransactionIntentV2 {
fn signed_transaction_intent_hash(&self) -> SignedTransactionIntentHash {
SignedTransactionIntentHash::from_hash(self.summary.hash)
}
}
impl HasNonRootSubintentHashes for PreparedSignedTransactionIntentV2 {
fn non_root_subintent_hashes(&self) -> Vec<SubintentHash> {
self.transaction_intent.non_root_subintent_hashes()
}
}