use brk_error::Result;
use brk_indexer::Indexer;
use brk_types::BasisPointsSigned32;
use vecdb::Exit;
use super::super::activity;
use super::Vecs;
use crate::supply;
impl Vecs {
pub(crate) fn compute(
&mut self,
indexer: &Indexer,
supply: &supply::Vecs,
activity: &activity::Vecs,
exit: &Exit,
) -> Result<()> {
let starting_height = indexer.safe_lengths().height;
self.inflation_rate.bps.height.compute_transform2(
starting_height,
&activity.ratio.height,
&supply.inflation_rate.bps.height,
|(h, a2vr, inflation, ..)| {
(
h,
BasisPointsSigned32::from(f64::from(a2vr) * f64::from(inflation)),
)
},
exit,
)?;
self.tx_velocity_native.height.compute_multiply(
starting_height,
&activity.ratio.height,
&supply.velocity.native.height,
exit,
)?;
self.tx_velocity_fiat.height.compute_multiply(
starting_height,
&activity.ratio.height,
&supply.velocity.fiat.height,
exit,
)?;
Ok(())
}
}