use crate::{
consensus::{self, BlockHeight},
transaction::components::{amount::U64Sum, transparent::fees as transparent},
};
pub mod fixed;
pub trait FeeRule {
type Error;
fn fee_required<P: consensus::Parameters>(
&self,
params: &P,
target_height: BlockHeight,
transparent_outputs: &[impl transparent::OutputView],
sapling_input_count: usize,
sapling_output_count: usize,
) -> Result<U64Sum, Self::Error>;
}