fn initialize(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
treasury: soroban_sdk::Address,
agvt_token: soroban_sdk::Address,
usdc_token: soroban_sdk::Address,
initial_rate: i128,
) -> Result<(), ExchangeError>
fn buy(
env: soroban_sdk::Env,
buyer: soroban_sdk::Address,
usdc_amount: i128,
) -> Result
fn redeem(
env: soroban_sdk::Env,
redeemer: soroban_sdk::Address,
agvt_amount: i128,
) -> Result
fn set_rate(env: soroban_sdk::Env, new_rate: i128) -> Result<(), ExchangeError>
fn set_treasury(env: soroban_sdk::Env, new_treasury: soroban_sdk::Address)
fn set_admin(env: soroban_sdk::Env, new_admin: soroban_sdk::Address)
fn upgrade(env: soroban_sdk::Env, new_wasm_hash: soroban_sdk::BytesN<32>)
fn get_rate(env: soroban_sdk::Env) -> i128
fn get_admin(env: soroban_sdk::Env) -> soroban_sdk::Address
fn get_treasury(env: soroban_sdk::Env) -> soroban_sdk::Address
fn get_agvt_token(env: soroban_sdk::Env) -> soroban_sdk::Address
fn get_usdc_token(env: soroban_sdk::Env) -> soroban_sdk::Address
fn version(env: soroban_sdk::Env) -> u32