pub use starknet_core::{
codec::{Decode, Encode},
types::Felt,
};
use starknet_core::types::Call;
pub mod bindings;
pub use bindings::{
StarkProofWithSerde, VerifierConfiguration, VerifyProofFinalAndRegisterFactCall,
VerifyProofInitialCall, VerifyProofStepCall,
};
mod split;
pub use split::{split_proof, SplitProof, VerifyProofStepParamIter};
#[derive(Debug, Clone)]
pub struct IntegrityCalls {
pub initial: VerifyProofInitialCall,
pub intermediate_steps: Vec<VerifyProofStepCall>,
pub final_step: VerifyProofFinalAndRegisterFactCall,
}
impl IntegrityCalls {
pub fn collect_calls(self, contract_address: Felt) -> Vec<Call> {
let mut calls = vec![self.initial.call(contract_address)];
calls.extend(
self.intermediate_steps
.into_iter()
.map(|step| step.call(contract_address)),
);
calls.push(self.final_step.call(contract_address));
calls
}
}