use ironfish_primitives::{
constants::VALUE_COMMITMENT_VALUE_GENERATOR, transaction::components::Amount,
};
mod prover;
mod verifier;
pub use self::prover::SaplingProvingContext;
pub use self::verifier::{SaplingVerificationContext};
fn compute_value_balance(value: Amount) -> Option<ironfish_jubjub::ExtendedPoint> {
let abs = match i64::from(value).checked_abs() {
Some(a) => a as u64,
None => return None,
};
let is_negative = value.is_negative();
let mut value_balance = *VALUE_COMMITMENT_VALUE_GENERATOR * ironfish_jubjub::Fr::from(abs);
if is_negative {
value_balance = -value_balance;
}
Some(value_balance.into())
}