| Crates.io | qp-wormhole-prover |
| lib.rs | qp-wormhole-prover |
| version | 0.1.2 |
| created_at | 2025-09-10 11:19:57.522234+00 |
| updated_at | 2025-09-10 11:58:51.128098+00 |
| description | Quantus-Network - Wormhole circuit implementation using Plonky2 |
| homepage | |
| repository | |
| max_upload_size | |
| id | 1832412 |
| size | 35,341 |
Prover logic for the Wormhole circuit.
This module provides the WormholeProver type, which allows committing inputs to the circuit
and generating a zero-knowledge proof using those inputs.
The typical usage flow involves:
WormholeProver::default or WormholeProver::new).CircuitInputs.WormholeProver::commit.WormholeProver::prove.use wormhole_circuit::inputs::{CircuitInputs, PrivateCircuitInputs, PublicCircuitInputs};
use wormhole_circuit::nullifier::Nullifier;
use wormhole_circuit::substrate_account::SubstrateAccount;
use wormhole_circuit::unspendable_account::UnspendableAccount;
use wormhole_prover::WormholeProver;
use plonky2::plonk::circuit_data::CircuitConfig;
fn main() -> anyhow::Result<()> {
// Create inputs
let inputs = CircuitInputs {
private: PrivateCircuitInputs {
secret: vec![1u8; 32],
funding_nonce: 0,
funding_account: SubstrateAccount::new(&[2u8; 32])?,
storage_proof: vec![],
unspendable_account: UnspendableAccount::new(&[1u8; 32]),
},
public: PublicCircuitInputs {
funding_amount: 1000,
nullifier: Nullifier::new(&[1u8; 32], 0, &[2u8; 32]),
root_hash: [0u8; 32],
exit_account: SubstrateAccount::new(&[2u8; 32])?,
},
};
let config = CircuitConfig::standard_recursion_config();
let prover = WormholeProver::new(config);
let proof = prover.commit(&inputs)?.prove()?;
Ok(())
}