User commits to a hash and provides their BLS pubkey
fn commit(
env: soroban_sdk::Env,
user: soroban_sdk::Address,
commitment: soroban_sdk::BytesN<32>,
pubkey: soroban_sdk::BytesN<96>,
)
User reveals their seed, salt, and BLS signature. Contract verifies all.
fn reveal(
env: soroban_sdk::Env,
user: soroban_sdk::Address,
seed: soroban_sdk::Bytes,
salt: soroban_sdk::Bytes,
signature: soroban_sdk::BytesN<192>,
) -> Result, VRFError>
Deterministically derive a random u64 from the verified randomness and context.
fn derive_random(
env: soroban_sdk::Env,
randomness: soroban_sdk::BytesN<32>,
context: soroban_sdk::Bytes,
) -> u64
Utility: returns the stored commitment for a user
fn get_commitment(
env: soroban_sdk::Env,
user: soroban_sdk::Address,
) -> Option>
Utility: returns the stored pubkey for a user
fn get_pubkey(
env: soroban_sdk::Env,
user: soroban_sdk::Address,
) -> Option>