use miden_protocol::Word;
use miden_protocol::account::{AccountDelta, AccountId};
use miden_protocol::asset::FungibleAsset;
use miden_protocol::block::BlockNumber;
use miden_protocol::transaction::{
ExecutedTransaction,
InputNote,
InputNotes,
RawOutputNotes,
TransactionId,
};
pub struct ValidatedTransaction(ExecutedTransaction);
impl ValidatedTransaction {
pub fn new(tx: ExecutedTransaction) -> Self {
Self(tx)
}
pub fn tx_id(&self) -> TransactionId {
self.0.id()
}
pub fn block_num(&self) -> BlockNumber {
self.0.block_header().block_num()
}
pub fn account_id(&self) -> AccountId {
self.0.account_id()
}
pub fn account_delta(&self) -> &AccountDelta {
self.0.account_delta()
}
pub fn input_notes(&self) -> &InputNotes<InputNote> {
self.0.input_notes()
}
pub fn output_notes(&self) -> &RawOutputNotes {
self.0.output_notes()
}
pub fn initial_account_hash(&self) -> Word {
self.0.initial_account().initial_commitment()
}
pub fn final_account_hash(&self) -> Word {
self.0.final_account().to_commitment()
}
pub fn fee(&self) -> FungibleAsset {
self.0.fee()
}
}