Cast a vote on an active proposal.
fn vote(
env: soroban_sdk::Env,
voter: soroban_sdk::Address,
proposal_id: u32,
choice: VoteChoice,
) -> Result<(), ContractError>
Deposit tokens into the treasury. Only whitelisted members can deposit.
fn deposit(
env: soroban_sdk::Env,
from: soroban_sdk::Address,
amount: i128,
) -> Result<(), ContractError>
Admin adds a new member to the whitelist.
fn add_member(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
new_member: soroban_sdk::Address,
) -> Result<(), ContractError>
fn get_config(env: soroban_sdk::Env) -> Option
Initialize the contract with core configuration and whitelist.
fn initialize(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
treasurer: soroban_sdk::Address,
token_address: soroban_sdk::Address,
time_lock_seconds: u64,
budget_threshold_usdc: i128,
member_whitelist: soroban_sdk::Vec,
) -> Result<(), ContractError>
fn get_proposal(env: soroban_sdk::Env, proposal_id: u32) -> Option
fn get_whitelist(env: soroban_sdk::Env) -> soroban_sdk::Vec
Admin removes a member from the whitelist.
fn remove_member(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
member: soroban_sdk::Address,
) -> Result<(), ContractError>
Create a new spending proposal. Only whitelisted members can propose.
fn create_proposal(
env: soroban_sdk::Env,
proposer: soroban_sdk::Address,
amount: i128,
title: soroban_sdk::String,
description: soroban_sdk::String,
receipt_url: soroban_sdk::String,
voting_deadline: u64,
) -> Result
Finalize the voting process after the deadline has passed.
fn finalize_voting(
env: soroban_sdk::Env,
proposal_id: u32,
) -> Result<(), ContractError>
fn get_all_proposals(env: soroban_sdk::Env) -> soroban_sdk::Vec
Admin confirms completion of a task to award reputation.
fn confirm_completion(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
proposal_id: u32,
sub_category_index: Option,
) -> Result<(), ContractError>
Execute a withdrawal for an approved proposal.
fn execute_withdrawal(
env: soroban_sdk::Env,
treasurer: soroban_sdk::Address,
proposal_id: u32,
sub_category_index: u32,
) -> Result<(), ContractError>
fn get_sub_categories(
env: soroban_sdk::Env,
proposal_id: u32,
) -> soroban_sdk::Vec
Admin submits sub-categories for a high-budget proposal.
fn set_sub_categories(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
proposal_id: u32,
categories: soroban_sdk::Vec,
) -> Result<(), ContractError>
fn get_treasury_balance(env: soroban_sdk::Env) -> i128
fn get_member_reputation(env: soroban_sdk::Env, member: soroban_sdk::Address) -> u32