Vote on a proposal. Vote weight = sXLM balance at time of vote.
fn vote(
env: soroban_sdk::Env,
voter: soroban_sdk::Address,
proposal_id: u64,
support: bool,
)
Upgrade the contract WASM. Only callable by admin.
fn upgrade(env: soroban_sdk::Env, new_wasm_hash: soroban_sdk::BytesN<32>)
Read an approved governance parameter value.
fn get_param(env: soroban_sdk::Env, key: soroban_sdk::String) -> soroban_sdk::String
Initialize the governance contract.
fn initialize(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
sxlm_token: soroban_sdk::Address,
voting_period_ledgers: u32,
quorum_bps: u32,
)
fn get_proposal(env: soroban_sdk::Env, id: u64) -> Proposal
Bump instance TTL — can be called by anyone to keep contract alive.
fn bump_instance(env: soroban_sdk::Env)
fn get_vote_count(env: soroban_sdk::Env, id: u64) -> (i128, i128)
fn proposal_count(env: soroban_sdk::Env) -> u64
Create a new governance proposal. Proposer must hold minimum sXLM balance.
fn create_proposal(
env: soroban_sdk::Env,
proposer: soroban_sdk::Address,
param_key: soroban_sdk::String,
new_value: soroban_sdk::String,
) -> u64
Execute a proposal if quorum met and passed. Stores the new parameter value on-chain for the admin/backend to read and propagate.
fn execute_proposal(env: soroban_sdk::Env, proposal_id: u64)
Set the reference total supply for quorum calculation. Only callable by admin.
fn set_reference_supply(env: soroban_sdk::Env, supply: i128)