Contract f318736d450946c8d6f3c1aad7ed2559cb71128e74b7935b7b33f8d6774eda2f

← Back to Index 📥 Download WASM

Meta

cliver 25.2.0#28484880988199233a7e8e87c97cb12dac323cb3
rssdkver 26.1.0#175aa41306f383057a8cdfc84b68d931664fc34e
rsver 1.94.1

Instances

  • CCZQCQISEKU6KHXAIGO336MS6ROMMKZE6ONEHBLT33EADLWZUPSCPG27

Interface

Whether an email/proof carrying this nullifier has already been sealed.

fn is_sealed(env: soroban_sdk::Env, nullifier: soroban_sdk::BytesN<32>) -> bool

Verify a proof AND seal it as a public attestation.

This is the real entry point. Order matters:

  1. the proof must verify — that is what makes pub_signals trustworthy (a valid proof cryptographically binds them; they are not free input);
  2. the nullifier (pub_signals[0], bound by the circuit to the email's DKIM signature) must be unseen — otherwise the SAME email is being replayed;
  3. only then do we persist the attestation and emit an event.

Returns the attestation id (== the nullifier) used by the public /p/:id page.

fn submit_proof(
    env: soroban_sdk::Env,
    proof: Proof,
    pub_signals: soroban_sdk::Vec>,
) -> Result, soroban_sdk::Error>

Pure verification: is proof valid for pub_signals under the embedded VK? Read-only, changes no state. Useful for clients/tests; the real flow is submit_proof, which also seals the result.

fn verify_proof(
    env: soroban_sdk::Env,
    proof: Proof,
    pub_signals: soroban_sdk::Vec>,
) -> Result

Read a sealed attestation by id (== nullifier). Powers the public /p/:id page with REAL on-chain state. Returns None if nothing was sealed under that id.

fn get_attestation(
    env: soroban_sdk::Env,
    id: soroban_sdk::BytesN<32>,
) -> Option

Imports

WebAssembly Text (WAT) ▶