fn latest(env: soroban_sdk::Env, asset: soroban_sdk::Symbol) -> Option
fn quorum(env: soroban_sdk::Env) -> (u32, u32)
Required by StellarHandlerInterface — project-root uses this to
recognise the contract as a handler.
fn payload(
env: soroban_sdk::Env,
event_id: soroban_sdk::BytesN<20>,
) -> Option
fn request(env: soroban_sdk::Env, request_id: u64) -> Option
fn final_twap(env: soroban_sdk::Env, request_id: u64) -> Option
StellarHandlerInterface::verify_xlm — the single entry the
warpdrive node's submission manager invokes for every
aggregated submission against this handler. The envelope payload
is a tagged SubmissionPayload whose variant decides whether
this is a Round 2 single-Vectr attestation or a Round 3
quorum-signed final.
Both variants go through the same try_verify call (the
quorum is global to the security contract; with a single
operator at 1/1, one sig satisfies it; with N at 4/5, Round 2
payloads need their event_id_salt to be unique per Vectr so
the host doesn't try to quorum-collapse different-value
attestations).
fn verify_xlm(
env: soroban_sdk::Env,
envelope_bytes: soroban_sdk::Bytes,
sig_data: Ed25519SignatureData,
) -> Result<(), OracleError>
User-facing entry: ask the Vectr swarm for a TWAP on asset over
range_secs. Returns the request id (clients store it to poll
for the final result via final_twap(id)).
fn request_twap(
env: soroban_sdk::Env,
asset: soroban_sdk::Symbol,
range_secs: u32,
) -> u64
Wires the contract to the project's ed25519 verification module and sets the initial quorum fraction (defaults to 4/5 = 80%, the figure the demo spec calls out).
fn __constructor(
env: soroban_sdk::Env,
verification_contract: soroban_sdk::Address,
quorum_numerator: u32,
quorum_denominator: u32,
) -> Result<(), OracleError>
fn round2_bundle(env: soroban_sdk::Env, request_id: u64) -> Round2Bundle
fn verification_contract(env: soroban_sdk::Env) -> soroban_sdk::Address