Get a single feed's configuration.
fn get_feed(env: soroban_sdk::Env, token: soroban_sdk::Address) -> Option
Get TWAP price from Reflector.
fn get_twap(
env: soroban_sdk::Env,
token: soroban_sdk::Address,
records: u32,
) -> Result
Get the price of a token (single-hop via Reflector).
fn get_price(
env: soroban_sdk::Env,
token: soroban_sdk::Address,
) -> Result
Transfer admin to a new address. Admin only.
fn set_admin(
env: soroban_sdk::Env,
new_admin: soroban_sdk::Address,
) -> Result<(), OracleError>
Extend the contract's TTL. Anyone can call this.
fn extend_ttl(env: soroban_sdk::Env)
Get the oracle address.
fn get_oracle(env: soroban_sdk::Env) -> Result
Initialize the contract. Can only be called once.
fn initialize(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
oracle: soroban_sdk::Address,
max_staleness: u64,
) -> Result<(), OracleError>
Set the oracle (Reflector) address. Admin only.
fn set_oracle(
env: soroban_sdk::Env,
oracle: soroban_sdk::Address,
) -> Result<(), OracleError>
Remove a feed. Swaps with the last index entry to keep the index compact.
fn remove_feed(
env: soroban_sdk::Env,
token: soroban_sdk::Address,
) -> Result<(), OracleError>
Update an existing feed's asset mapping.
fn update_feed(
env: soroban_sdk::Env,
token: soroban_sdk::Address,
asset: Asset,
) -> Result<(), OracleError>
Get decimals from the oracle.
fn get_decimals(env: soroban_sdk::Env) -> Result
Get all feeds (returns Vec of (token, FeedConfig) pairs).
fn get_all_feeds(
env: soroban_sdk::Env,
) -> soroban_sdk::Vec<(soroban_sdk::Address, FeedConfig)>
Register a new price feed mapping: token address -> Reflector asset.
fn register_feed(
env: soroban_sdk::Env,
token: soroban_sdk::Address,
asset: Asset,
) -> Result<(), OracleError>
Get the cross-rate price of token_a denominated in token_b (2-hop). Formula: pair_price = (price_a * 10^decimals) / price_b Uses checked arithmetic to prevent overflow/division-by-zero.
fn get_price_pair(
env: soroban_sdk::Env,
token_a: soroban_sdk::Address,
token_b: soroban_sdk::Address,
) -> Result
Set the global max staleness threshold (seconds). Admin only.
fn set_max_staleness(
env: soroban_sdk::Env,
max_staleness: u64,
) -> Result<(), OracleError>
Set per-feed staleness override. 0 means use global default.
fn set_feed_staleness(
env: soroban_sdk::Env,
token: soroban_sdk::Address,
max_staleness: u64,
) -> Result<(), OracleError>
Get feeds with pagination.
fn get_feeds_paginated(
env: soroban_sdk::Env,
offset: u32,
limit: u32,
) -> soroban_sdk::Vec<(soroban_sdk::Address, FeedConfig)>