fn burn(env: soroban_sdk::Env, from: soroban_sdk::Address, amount: i128)
fn mint(env: soroban_sdk::Env, to: soroban_sdk::Address, amount: i128)
fn name(env: soroban_sdk::Env) -> soroban_sdk::String
fn pause(env: soroban_sdk::Env, caller: soroban_sdk::Address)
fn oracle(env: soroban_sdk::Env) -> soroban_sdk::Address
fn symbol(env: soroban_sdk::Env) -> soroban_sdk::String
fn approve(
env: soroban_sdk::Env,
from: soroban_sdk::Address,
spender: soroban_sdk::Address,
amount: i128,
expiration_ledger: u32,
)
fn balance(env: soroban_sdk::Env, id: soroban_sdk::Address) -> i128
fn unpause(env: soroban_sdk::Env, caller: soroban_sdk::Address)
Owner upgrades the contract WASM. Requires owner auth.
fn upgrade(env: soroban_sdk::Env, wasm_hash: soroban_sdk::BytesN<32>)
fn decimals(env: soroban_sdk::Env) -> u32
Read current mint cap.
fn mint_cap(env: soroban_sdk::Env) -> i128
fn transfer(
env: soroban_sdk::Env,
from: soroban_sdk::Address,
to: soroban_sdk::MuxedAddress,
amount: i128,
)
fn allowance(
env: soroban_sdk::Env,
from: soroban_sdk::Address,
spender: soroban_sdk::Address,
) -> i128
fn burn_from(
env: soroban_sdk::Env,
spender: soroban_sdk::Address,
from: soroban_sdk::Address,
amount: i128,
)
Returns (price_scaled, last_updated_ledger). Panics if no price set.
fn get_price(env: soroban_sdk::Env) -> (i128, u32)
Oracle posts JOULE_USD price. Validates nonce, bounds, circuit breaker.
fn set_price(
env: soroban_sdk::Env,
price_scaled: i128,
nonce: u64,
) -> Result<(), JouleError>
fn initialize(
env: soroban_sdk::Env,
owner: soroban_sdk::Address,
oracle: soroban_sdk::Address,
)
fn set_oracle(env: soroban_sdk::Env, oracle: soroban_sdk::Address)
Oracle mints JOULE up to mint_cap. Respects pause.
fn oracle_mint(
env: soroban_sdk::Env,
to: soroban_sdk::Address,
amount: i128,
) -> Result<(), JouleError>
Read price floor and ceiling.
fn price_bounds(env: soroban_sdk::Env) -> (i128, i128)
Owner sets max JOULE per oracle_mint call.
fn set_mint_cap(env: soroban_sdk::Env, cap: i128)
fn total_burned(env: soroban_sdk::Env) -> i128
fn total_minted(env: soroban_sdk::Env) -> i128
Total token supply (not part of TokenInterface but commonly expected).
fn total_supply(env: soroban_sdk::Env) -> i128
fn transfer_from(
env: soroban_sdk::Env,
spender: soroban_sdk::Address,
from: soroban_sdk::Address,
to: soroban_sdk::Address,
amount: i128,
)
Owner emergency price override — skips circuit breaker.
fn owner_set_price(
env: soroban_sdk::Env,
price_scaled: i128,
nonce: u64,
) -> Result<(), JouleError>
fn burn_for_compute(env: soroban_sdk::Env, from: soroban_sdk::Address, amount: i128)
Owner sets price floor and ceiling.
fn set_price_bounds(env: soroban_sdk::Env, floor: i128, ceiling: i128)
fn circulating_supply(env: soroban_sdk::Env) -> i128