swiftness_proof_parser/
lib.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
pub mod annotations;
pub mod builtins;
pub mod json_parser;
pub mod layout;
pub mod stark_proof;

pub use stark_proof::*;

pub fn parse(input: String) -> anyhow::Result<stark_proof::StarkProof> {
    let proof_json = serde_json::from_str::<json_parser::StarkProof>(&input)?;
    stark_proof::StarkProof::try_from(proof_json)
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn test_parse_dex() {
        let input = include_str!("../../examples/proofs/dex/cairo0_stone5_example_proof.json");
        let proof_json = serde_json::from_str::<json_parser::StarkProof>(input).unwrap();
        stark_proof::StarkProof::try_from(proof_json).unwrap();
    }

    #[test]
    fn test_parse_dynamic() {
        let input = include_str!("../../examples/proofs/dynamic/cairo0_stone6_example_proof.json");
        let proof_json = serde_json::from_str::<json_parser::StarkProof>(input).unwrap();
        stark_proof::StarkProof::try_from(proof_json).unwrap();
    }

    #[test]
    fn test_parse_recursive() {
        let input =
            include_str!("../../examples/proofs/recursive/cairo0_stone5_example_proof.json");
        let proof_json = serde_json::from_str::<json_parser::StarkProof>(input).unwrap();
        stark_proof::StarkProof::try_from(proof_json).unwrap();
    }

    #[test]
    fn test_parse_recursive_with_poseidon() {
        let input = include_str!(
            "../../examples/proofs/recursive_with_poseidon/cairo0_stone5_example_proof.json"
        );
        let proof_json = serde_json::from_str::<json_parser::StarkProof>(input).unwrap();
        stark_proof::StarkProof::try_from(proof_json).unwrap();
    }

    #[test]
    fn test_parse_small() {
        let input = include_str!("../../examples/proofs/small/cairo0_stone5_example_proof.json");
        let proof_json = serde_json::from_str::<json_parser::StarkProof>(input).unwrap();
        stark_proof::StarkProof::try_from(proof_json).unwrap();
    }

    #[test]
    fn test_parse_starknet() {
        let input = include_str!("../../examples/proofs/starknet/cairo0_stone5_example_proof.json");
        let proof_json = serde_json::from_str::<json_parser::StarkProof>(input).unwrap();
        stark_proof::StarkProof::try_from(proof_json).unwrap();
    }

    #[test]
    fn test_parse_starknet_with_keccak() {
        let input = include_str!(
            "../../examples/proofs/starknet_with_keccak/cairo0_stone5_example_proof.json"
        );
        let proof_json = serde_json::from_str::<json_parser::StarkProof>(input).unwrap();
        stark_proof::StarkProof::try_from(proof_json).unwrap();
    }
}