Contract f05dcc19d56fe7458574b2f6fadf1fc84beb1ee16290281aa9bf037bb8c1ac1d

← Back to Index 📥 Download WASM

Meta

rssdkver 22.0.11#34f7f53ae31e0fd02aab436a9872e79fa671ca02
rsver 1.94.0

Instances

  • CD7CH3RJZVMVZWK5AUWUHUARRIRD6DQVKANPPPXQRWUGGJZVOPDD5LAI

Interface

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)>

Imports

WebAssembly Text (WAT) ▶