use crate::{
extensions::transparent as tze,
transaction::components::tze::{OutPoint, TzeOut, builder::TzeBuildInput},
};
use zcash_protocol::value::Zatoshis;
pub trait InputView {
fn outpoint(&self) -> &OutPoint;
fn coin(&self) -> &TzeOut;
}
impl InputView for TzeBuildInput {
fn outpoint(&self) -> &OutPoint {
self.outpoint()
}
fn coin(&self) -> &TzeOut {
self.coin()
}
}
pub trait OutputView {
fn value(&self) -> Zatoshis;
fn precondition(&self) -> &tze::Precondition;
}
impl OutputView for TzeOut {
fn value(&self) -> Zatoshis {
self.value
}
fn precondition(&self) -> &tze::Precondition {
&self.precondition
}
}