use super::*;
impl<N: Network> Process<N> {
#[inline]
pub fn deploy<A: circuit::Aleo<Network = N>, R: Rng + CryptoRng>(
&self,
program: &Program<N>,
rng: &mut R,
) -> Result<Deployment<N>> {
let timer = timer!("Process::deploy");
let stack = Stack::new(self, program)?;
lap!(timer, "Compute the stack");
let deployment = stack.deploy::<A, R>(rng);
lap!(timer, "Construct the deployment");
finish!(timer);
deployment
}
#[inline]
pub fn load_deployment(&mut self, deployment: &Deployment<N>) -> Result<()> {
let timer = timer!("Process::load_deployment");
let stack = Stack::new(self, deployment.program())?;
lap!(timer, "Compute the stack");
for (function_name, (verifying_key, _)) in deployment.verifying_keys() {
stack.insert_verifying_key(function_name, verifying_key.clone())?;
}
lap!(timer, "Insert the verifying keys");
self.add_stack(stack);
finish!(timer);
Ok(())
}
}