Update admin
fn set_admin(
env: soroban_sdk::Env,
new_admin: soroban_sdk::Address,
) -> Result<(), soroban_sdk::Error>
Get config
fn get_config(env: soroban_sdk::Env) -> Result
Initialize the contract
fn initialize(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
aqua_token: soroban_sdk::Address,
ice_token: soroban_sdk::Address,
govern_ice_token: soroban_sdk::Address,
upvote_ice_token: soroban_sdk::Address,
downvote_ice_token: soroban_sdk::Address,
)
Get contract's AQUA balance (from SAC)
fn get_aqua_balance(env: soroban_sdk::Env) -> Result
Get global state
fn get_global_state(env: soroban_sdk::Env) -> Result
Set pending AQUA amount (simulates accumulation from user locks)
fn set_pending_aqua(
env: soroban_sdk::Env,
amount: i128,
) -> Result<(), soroban_sdk::Error>
Authorizes an ICE lock for a specific amount and duration. Returns lock_id
fn authorize_ice_lock(
env: soroban_sdk::Env,
aqua_amount: i128,
duration_years: u64,
) -> Result
Gets all 4 ICE token balances.
fn get_all_ice_balances(
env: soroban_sdk::Env,
) -> Result<(i128, i128, i128, i128), soroban_sdk::Error>
One-time setup to establish trustlines for all 4 ICE token types.
fn setup_ice_trustlines(env: soroban_sdk::Env) -> Result<(), soroban_sdk::Error>
Syncs all ICE token balances from SAC contracts.
fn sync_all_ice_balances(env: soroban_sdk::Env) -> Result<(), soroban_sdk::Error>
Gets upvoteICE balance for voting.
fn get_upvote_ice_balance(env: soroban_sdk::Env) -> Result
Gets pending AQUA available for ICE locking.
fn get_pending_aqua_for_ice(env: soroban_sdk::Env) -> Result
Transfers authorized AQUA from contract to admin for ICE locking.
fn transfer_authorized_aqua(
env: soroban_sdk::Env,
lock_id: u64,
) -> Result<(), soroban_sdk::Error>
Gets ICE lock authorization by ID.
fn get_ice_lock_authorization(
env: soroban_sdk::Env,
lock_id: u64,
) -> Result