Add governance voter.
Notes:
fn add_voter(
env: soroban_sdk::Env,
voter: soroban_sdk::Address,
) -> Result<(), UpgradeError>
Cast vote on active proposal.
Notes:
fn cast_vote(
env: soroban_sdk::Env,
voter: soroban_sdk::Address,
wasm_hash: soroban_sdk::BytesN<32>,
) -> Result<(), UpgradeError>
fn get_admin(env: soroban_sdk::Env) -> Option
fn set_admin(
env: soroban_sdk::Env,
new_admin: soroban_sdk::Address,
) -> Result<(), ContractError>
fn get_base_fee(env: soroban_sdk::Env) -> Result
Remove governance voter.
Notes:
fn remove_voter(
env: soroban_sdk::Env,
voter: soroban_sdk::Address,
) -> Result<(), UpgradeError>
fn set_base_fee(env: soroban_sdk::Env, fee: i128) -> Result<(), ContractError>
fn __constructor(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
base_fee: i128,
max_deferred_fee: i128,
) -> Result<(), ContractError>
Execute approved upgrade.
Notes:
fn apply_upgrade(
env: soroban_sdk::Env,
) -> Result, UpgradeError>
Cancel active proposal.
Notes:
fn cancel_proposal(env: soroban_sdk::Env) -> Result<(), UpgradeError>
Create upgrade proposal.
Notes:
fn propose_upgrade(
env: soroban_sdk::Env,
proposal_type: soroban_sdk::String,
new_wasm_hash: soroban_sdk::BytesN<32>,
) -> Result<(), UpgradeError>
fn get_deferred_fee(
env: soroban_sdk::Env,
user: soroban_sdk::Address,
) -> Result
Settles a wallet's existing deferred protocol fee balance.
Security:
payer authorizes payment using the selected fee asset.Notes:
fn settle_wallet_fee(
env: soroban_sdk::Env,
payer: soroban_sdk::Address,
wallet: soroban_sdk::Address,
fee_pref: FeePreference,
) -> Result<(), ContractError>
fn get_fee_asset_rate(
env: soroban_sdk::Env,
asset: soroban_sdk::Address,
) -> Result
fn set_fee_asset_rate(
env: soroban_sdk::Env,
asset: soroban_sdk::Address,
rate: i128,
) -> Result<(), ContractError>
fn get_max_deferred_fee(env: soroban_sdk::Env) -> Result
fn set_max_deferred_fee(env: soroban_sdk::Env, fee: i128) -> Result<(), ContractError>
fn quote_transaction_fee(
env: soroban_sdk::Env,
wallet: soroban_sdk::Address,
fee_pref: Option,
) -> Result
Handles protocol fee processing for wallet transactions.
Flow:
quote_transaction_fee to determine how the fee should be handled.Notes:
fn handle_transaction_fee(
env: soroban_sdk::Env,
wallet: soroban_sdk::Address,
fee_pref: Option,
) -> Result<(), ContractError>
fn is_supported_fee_asset(env: soroban_sdk::Env, asset: soroban_sdk::Address) -> bool
fn add_supported_fee_asset(
env: soroban_sdk::Env,
asset: soroban_sdk::Address,
rate: i128,
) -> Result<(), ContractError>
Withdraw collected protocol fees from the fee manager.
Validation:
Emits:
fn withdraw_collected_fees(
env: soroban_sdk::Env,
asset: soroban_sdk::Address,
amount: i128,
to: soroban_sdk::Address,
) -> Result<(), ContractError>
fn get_supported_fee_assets(
env: soroban_sdk::Env,
) -> soroban_sdk::Vec
Returns the immediate fee amount that would be collected for a wallet
transaction if the current fee decision resolves to CollectNow.
Returns:
Some(amount) when the transaction fee would be collected immediately.None when the fee would instead be deferred or cannot proceed.Notes:
handle_transaction_fee.fn get_collect_now_fee_amount(
env: soroban_sdk::Env,
wallet: soroban_sdk::Address,
fee_pref: Option,
) -> Option
fn remove_supported_fee_asset(
env: soroban_sdk::Env,
asset: soroban_sdk::Address,
) -> Result<(), ContractError>