1use serde::{Deserialize, Serialize};
2
3use crate::{user_command_verify::SnarkUserCommandVerifyState, SnarkConfig};
4
5use super::{block_verify::SnarkBlockVerifyState, work_verify::SnarkWorkVerifyState};
6
7#[derive(Serialize, Deserialize, Debug, Clone)]
8pub struct SnarkState {
9 pub block_verify: SnarkBlockVerifyState,
10 pub work_verify: SnarkWorkVerifyState,
11 pub user_command_verify: SnarkUserCommandVerifyState,
12}
13
14impl SnarkState {
15 pub fn new(config: SnarkConfig) -> Self {
16 Self {
17 block_verify: SnarkBlockVerifyState::new(
18 config.block_verifier_index,
19 config.block_verifier_srs,
20 ),
21 work_verify: SnarkWorkVerifyState::new(
22 config.work_verifier_index.clone(),
23 config.work_verifier_srs.clone(),
24 ),
25 user_command_verify: SnarkUserCommandVerifyState::new(
26 config.work_verifier_index,
27 config.work_verifier_srs,
28 ),
29 }
30 }
31}