Contract 7cff09b348bc2f69ae213f94874289da8ab777ab4761eee2c5d472dd0d2fa64d

← Back to Index 📥 Download WASM

Meta

home_domain lumenbro.com
rssdkver 23.5.1#59fcef437260ed4da42d1efb357137a5c166c02e
rsver 1.93.1
source_repo github:lumenbro/joule-contracts

Interface

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

Imports

WebAssembly Text (WAT) ▶