use crate::{Network, Record};
use snarkvm_algorithms::traits::EncryptionScheme;
use anyhow::Result;
#[derive(Clone)]
pub struct OutputPrivateVariables<N: Network> {
pub(super) output_record: Record<N>,
pub(super) encryption_randomness: <N::AccountEncryptionScheme as EncryptionScheme>::ScalarRandomness,
pub(super) output_value_commitment_randomness: N::ProgramScalarField,
}
impl<N: Network> OutputPrivateVariables<N> {
pub(crate) fn blank() -> Self {
Self {
output_record: Record::default(),
encryption_randomness: Default::default(),
output_value_commitment_randomness: Default::default(),
}
}
pub(crate) fn new(
output_record: Record<N>,
encryption_randomness: <N::AccountEncryptionScheme as EncryptionScheme>::ScalarRandomness,
output_value_commitment_randomness: N::ProgramScalarField,
) -> Result<Self> {
Ok(Self { output_record, encryption_randomness, output_value_commitment_randomness })
}
}