fn admin(env: soroban_sdk::Env) -> Result
fn stake(
env: soroban_sdk::Env,
user: soroban_sdk::Address,
amount: i128,
) -> Result<(), ContractError>
fn token(env: soroban_sdk::Env) -> Result
fn version(env: soroban_sdk::Env) -> Result
fn withdraw(
env: soroban_sdk::Env,
user: soroban_sdk::Address,
) -> Result
fn set_admin(
env: soroban_sdk::Env,
current_admin: soroban_sdk::Address,
new_admin: soroban_sdk::Address,
) -> Result<(), ContractError>
fn unlock_at(
env: soroban_sdk::Env,
user: soroban_sdk::Address,
) -> Result
fn active_stake(
env: soroban_sdk::Env,
user: soroban_sdk::Address,
) -> Result
fn get_position(
env: soroban_sdk::Env,
user: soroban_sdk::Address,
) -> Result
Atomic deployment constructor. Soroban runs this in the same operation that creates the contract, so there is no uninitialized address for an attacker to front-run.
fn __constructor(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
bfire_token: soroban_sdk::Address,
unstake_cooldown_seconds: u64,
) -> Result<(), ContractError>
fn pause_staking(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
) -> Result<(), ContractError>
fn cancel_unstake(
env: soroban_sdk::Env,
user: soroban_sdk::Address,
) -> Result<(), ContractError>
fn staking_paused(env: soroban_sdk::Env) -> Result
fn pending_unstake(
env: soroban_sdk::Env,
user: soroban_sdk::Address,
) -> Result
fn request_unstake(
env: soroban_sdk::Env,
user: soroban_sdk::Address,
amount: i128,
) -> Result<(), ContractError>
fn unpause_staking(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
) -> Result<(), ContractError>
fn unstake_cooldown(env: soroban_sdk::Env) -> Result
fn total_active_stake(env: soroban_sdk::Env) -> Result
fn total_pending_unstake(env: soroban_sdk::Env) -> Result