rings_node/extension/types/
snark.rs1use rings_snark::prelude::nova::provider::Bn256EngineKZG;
4use rings_snark::prelude::nova::provider::GrumpkinEngine;
5use rings_snark::prelude::nova::provider::PallasEngine;
6use rings_snark::prelude::nova::provider::VestaEngine;
7use serde::Deserialize;
8use serde::Serialize;
9
10use crate::extension::snark::SNARKGenerator;
11
12#[derive(Debug, Clone, Deserialize, Serialize)]
14pub struct SNARKTaskMessage {
15 pub task_id: uuid::Uuid,
17 #[serde(
19 serialize_with = "crate::util::serialize_gzip",
20 deserialize_with = "crate::util::deserialize_gzip"
21 )]
22 pub task: SNARKTask,
23}
24
25#[cfg(feature = "snark")]
29#[derive(Debug, Clone, Deserialize, Serialize)]
31pub enum SNARKTask {
32 SNARKProof(Box<SNARKProofTask>),
34 SNARKVerify(SNARKVerifyTask),
36}
37
38#[derive(Debug, Clone, Deserialize, Serialize)]
40pub enum SNARKProofTask {
41 PallasVasta(SNARKGenerator<PallasEngine, VestaEngine>),
43 VastaPallas(SNARKGenerator<VestaEngine, PallasEngine>),
45 Bn256KZGGrumpkin(SNARKGenerator<Bn256EngineKZG, GrumpkinEngine>),
47}
48
49#[derive(Debug, Clone, Deserialize, Serialize)]
51pub enum SNARKVerifyTask {
52 PallasVasta(String),
54 VastaPallas(String),
56 Bn256KZGGrumpkin(String),
58}