fn get_admin(env: soroban_sdk::Env) -> soroban_sdk::Address
fn initialize(env: soroban_sdk::Env, admin: soroban_sdk::Address)
Verifica prova Groth16 BN254 on-chain via pairing_check (Protocol 22 X-Ray).
Equação: e(-A, B) * e(alpha, beta) * e(vk_x, gamma) * e(C, delta) = 1
Encoding (big-endian affine, Ethereum-compatible): G1 = BytesN<64>: be32(X) || be32(Y) G2 = BytesN<128>: be32(X_c1) || be32(X_c0) || be32(Y_c1) || be32(Y_c0) Fr = BytesN<32>: be32(scalar)
neg_a é proof_a com Y negado — calculado off-chain pelo ZkEncoderService. Limite Soroban: 10 parâmetros (verifier_id gerenciado off-chain pela API).
fn verify_proof(
env: soroban_sdk::Env,
neg_a: soroban_sdk::BytesN<64>,
proof_b: soroban_sdk::BytesN<128>,
proof_c: soroban_sdk::BytesN<64>,
vk_alpha: soroban_sdk::BytesN<64>,
vk_beta: soroban_sdk::BytesN<128>,
vk_gamma: soroban_sdk::BytesN<128>,
vk_delta: soroban_sdk::BytesN<128>,
vk_ic: soroban_sdk::Vec>,
pub_signals: soroban_sdk::Vec>,
vc_hash: soroban_sdk::String,
) -> bool
fn get_attestation(env: soroban_sdk::Env, vc_hash: soroban_sdk::String) -> Attestation
fn attestation_count(env: soroban_sdk::Env) -> u64