Admin-only in-place code upgrade. new_wasm_hash must reference bytecode already uploaded to the network; the contract address and all stored state (config, latest price) are preserved.
fn upgrade(
env: soroban_sdk::Env,
new_wasm_hash: soroban_sdk::BytesN<32>,
) -> Result<(), soroban_sdk::Error>
SEP-40-style read. Consumers (the escrow) check timestamp freshness themselves.
fn lastprice(env: soroban_sdk::Env) -> Option
fn get_config(env: soroban_sdk::Env) -> Result
fn initialize(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
publisher: soroban_sdk::Address,
min_rate: i128,
max_rate: i128,
max_step: i128,
) -> Result<(), soroban_sdk::Error>
fn set_bounds(
env: soroban_sdk::Env,
min_rate: i128,
max_rate: i128,
max_step: i128,
) -> Result<(), soroban_sdk::Error>
fn set_paused(env: soroban_sdk::Env, paused: bool) -> Result<(), soroban_sdk::Error>
Publisher pushes the current ScopeX rate. Circuit breakers enforced.
fn publish_rate(env: soroban_sdk::Env, rate: i128) -> Result<(), soroban_sdk::Error>
fn set_publisher(
env: soroban_sdk::Env,
new: soroban_sdk::Address,
) -> Result<(), soroban_sdk::Error>