Skip to main content

aprender_contracts_cli/commands/
invariants.rs

1use std::path::Path;
2
3use provable_contracts::invariant_gen::generate_invariants;
4use provable_contracts::schema::parse_contract;
5
6pub fn run(path: &Path) -> Result<(), Box<dyn std::error::Error>> {
7    let contract = parse_contract(path)?;
8    let output = generate_invariants(&contract);
9
10    if output.is_empty() {
11        println!("No type_invariants defined in this contract.");
12    } else {
13        print!("{output}");
14    }
15
16    Ok(())
17}