feat: unify SignedPod and MainPod traits (#64)
* feat: unify SignedPod and MainPod traits * fix: test * feat: enable workflows after draft
This commit is contained in:
parent
452bda8087
commit
1b6e0c9395
7 changed files with 73 additions and 92 deletions
|
|
@ -1,7 +1,6 @@
|
|||
use crate::middleware::{
|
||||
self, hash_str, AnchoredKey, Hash, MainPod, MainPodInputs, NativeOperation, NativeStatement,
|
||||
NoneMainPod, NoneSignedPod, Params, PodId, PodProver, SignedPod, Statement, StatementArg,
|
||||
ToFields, KEY_TYPE, SELF,
|
||||
self, hash_str, AnchoredKey, Hash, MainPodInputs, NativeOperation, NativeStatement, NonePod,
|
||||
Params, Pod, PodId, PodProver, Statement, StatementArg, ToFields, KEY_TYPE, SELF,
|
||||
};
|
||||
use anyhow::Result;
|
||||
use itertools::Itertools;
|
||||
|
|
@ -14,7 +13,7 @@ use std::fmt;
|
|||
pub struct MockProver {}
|
||||
|
||||
impl PodProver for MockProver {
|
||||
fn prove(&mut self, params: &Params, inputs: MainPodInputs) -> Result<Box<dyn MainPod>> {
|
||||
fn prove(&mut self, params: &Params, inputs: MainPodInputs) -> Result<Box<dyn Pod>> {
|
||||
Ok(Box::new(MockMainPod::new(params, inputs)?))
|
||||
}
|
||||
}
|
||||
|
|
@ -89,8 +88,8 @@ impl fmt::Display for Operation {
|
|||
pub struct MockMainPod {
|
||||
params: Params,
|
||||
id: PodId,
|
||||
input_signed_pods: Vec<Box<dyn SignedPod>>,
|
||||
input_main_pods: Vec<Box<dyn MainPod>>,
|
||||
input_signed_pods: Vec<Box<dyn Pod>>,
|
||||
input_main_pods: Vec<Box<dyn Pod>>,
|
||||
// New statements introduced by this pod
|
||||
input_statements: Vec<Statement>,
|
||||
public_statements: Vec<Statement>,
|
||||
|
|
@ -196,7 +195,7 @@ impl MockMainPod {
|
|||
let st_none = Self::statement_none(params);
|
||||
|
||||
// Input signed pods region
|
||||
let none_sig_pod: Box<dyn SignedPod> = Box::new(NoneSignedPod {});
|
||||
let none_sig_pod: Box<dyn Pod> = Box::new(NonePod {});
|
||||
assert!(inputs.signed_pods.len() <= params.max_input_signed_pods);
|
||||
for i in 0..params.max_input_signed_pods {
|
||||
let pod = inputs
|
||||
|
|
@ -214,7 +213,7 @@ impl MockMainPod {
|
|||
}
|
||||
|
||||
// Input main pods region
|
||||
let none_main_pod: Box<dyn MainPod> = Box::new(NoneMainPod {});
|
||||
let none_main_pod: Box<dyn Pod> = Box::new(NonePod {});
|
||||
assert!(inputs.main_pods.len() <= params.max_input_main_pods);
|
||||
for i in 0..params.max_input_main_pods {
|
||||
let pod = inputs
|
||||
|
|
@ -404,7 +403,7 @@ pub fn hash_statements(statements: &[middleware::Statement]) -> Result<middlewar
|
|||
Ok(Hash(PoseidonHash::hash_no_pad(&field_elems).elements))
|
||||
}
|
||||
|
||||
impl MainPod for MockMainPod {
|
||||
impl Pod for MockMainPod {
|
||||
fn verify(&self) -> bool {
|
||||
let input_statement_offset = self.offset_input_statements();
|
||||
// get the input_statements from the self.statements
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue