use crate::{LedgerProof, Network, Record};
use snarkvm_algorithms::traits::SignatureScheme;
use anyhow::Result;
#[derive(Clone)]
pub struct InputPrivateVariables<N: Network> {
pub(super) input_record: Record<N>,
pub(super) ledger_proof: LedgerProof<N>,
pub(super) signature: N::AccountSignature,
pub(super) input_value_commitment_randomness: N::ProgramScalarField,
}
impl<N: Network> InputPrivateVariables<N> {
pub(crate) fn blank() -> Self {
Self {
input_record: Record::default(),
ledger_proof: Default::default(),
signature: <N::AccountSignatureScheme as SignatureScheme>::Signature::default().into(),
input_value_commitment_randomness: Default::default(),
}
}
pub(crate) fn new(
input_record: Record<N>,
ledger_proof: LedgerProof<N>,
signature: N::AccountSignature,
input_value_commitment_randomness: N::ProgramScalarField,
) -> Result<Self> {
Ok(Self { input_record, ledger_proof, signature, input_value_commitment_randomness })
}
}