fn get_config(env: soroban_sdk::Env) -> Result
Initialize governance contract with ICE token parameters
fn initialize(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
staking_contract: soroban_sdk::Address,
treasury_address: soroban_sdk::Address,
base_multiplier: i128,
max_time_multiplier: i128,
) -> Result<(), GovernanceError>
fn get_global_stats(env: soroban_sdk::Env) -> Option
fn get_voting_power(env: soroban_sdk::Env, user: soroban_sdk::Address) -> i128
Record automated POL voting with ICE tokens (admin-only)
fn record_pol_voting(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
total_ice_voting_power: i128,
aqua_blub_pair_votes: i128,
) -> Result<(), GovernanceError>
fn get_daily_snapshot(env: soroban_sdk::Env, day: u64) -> Option
fn update_multipliers(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
base_multiplier: Option,
max_time_multiplier: Option,
) -> Result<(), GovernanceError>
fn get_user_governance(
env: soroban_sdk::Env,
user: soroban_sdk::Address,
) -> Option
Record ICE token issuance when user locks AQUA (admin-only)
fn record_ice_issuance(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
user: soroban_sdk::Address,
aqua_locked: i128,
lock_duration_years: u32,
tx_hash: soroban_sdk::Bytes,
) -> Result
fn set_emergency_pause(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
paused: bool,
) -> Result<(), GovernanceError>
Update voting power when user's total stake changes (called by staking contract)
fn update_voting_power(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
user: soroban_sdk::Address,
new_total_ice: i128,
) -> Result<(), GovernanceError>
fn get_user_record_count(env: soroban_sdk::Env, user: soroban_sdk::Address) -> u32
fn get_total_voting_power(env: soroban_sdk::Env) -> i128
fn get_user_record_by_index(
env: soroban_sdk::Env,
user: soroban_sdk::Address,
index: u32,
) -> Option
Get current voting allocation for POL
fn get_pol_voting_allocation(env: soroban_sdk::Env) -> i128