Contract 567e85fd61a4be34bd1f5a1a5be43958c1649c662db0a6493de54ec389151346

← Back to Index 📥 Download WASM

Meta

cliver 23.4.0#fc6745f3d4e90d1ef68d14d0ae947404768fa5c0
rssdkver 26.1.0#175aa41306f383057a8cdfc84b68d931664fc34e
rsver 1.92.0

Instances

  • CAKXZBF7UQ3TV6KY2VXEL263UBZBTTLZZJKO42QK67MP6DZF3AUQ6LHW
  • CAVEHPWH55JHMC3YLYEV3SD4TCMKMVRUIOF45BNKCUFODZFCNHHFVSGF
  • CB2P57JDTVE7TWYWN422RJBAFTA37KNNKILOCD4XVTBRB3II2BW3INQI
  • CBSWBQGWFJZGOS63SA7PUTHCA5SLO37OPLKXFHYM3WYKTGT76QQ5UMUP
  • CC4ZQJQA7SVW7XPV5BB7MIJH47LAT75UXWI7YUANWHPHL3JX57ZBGELP

Interface

Buy shares (fixed-point) of side for trader. Charges quote_buy collateral, credits the shares, and moves the market quantities. Returns the amount charged.

fn buy(
    env: soroban_sdk::Env,
    trader: soroban_sdk::Address,
    side: Side,
    shares: i128,
) -> Result

Current LMSR cost function value (fixed-point, value * 2^32).

fn cost(env: soroban_sdk::Env) -> Result

Add collateral subsidy/liquidity to the pool. Fund at least b * ln 2 (the LMSR worst-case loss) so winning redemptions are always solvent.

fn fund(
    env: soroban_sdk::Env,
    from: soroban_sdk::Address,
    amount: i128,
) -> Result<(), soroban_sdk::Error>

Sell shares (fixed-point) of side held by trader. Debits the shares, moves the market quantities, and pays quote_sell collateral back. Returns the refund.

fn sell(
    env: soroban_sdk::Env,
    trader: soroban_sdk::Address,
    side: Side,
    shares: i128,
) -> Result
fn void(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
) -> Result<(), soroban_sdk::Error>
fn admin(env: soroban_sdk::Env) -> Result

Redeem trader's side shares after resolution. Winning shares pay 1 collateral each; losing shares pay 0. Shares are burned either way.

fn redeem(
    env: soroban_sdk::Env,
    trader: soroban_sdk::Address,
    side: Side,
) -> Result
fn status(env: soroban_sdk::Env) -> MarketStatus
fn batcher(env: soroban_sdk::Env) -> Option
fn outcome(env: soroban_sdk::Env) -> Option
fn resolve(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
    outcome: Outcome,
) -> Result<(), soroban_sdk::Error>
fn resolver(env: soroban_sdk::Env) -> Option
fn fee_state(env: soroban_sdk::Env) -> FeeState

(q_yes, q_no, b), the current market quantities in fixed-point form.

fn get_state(env: soroban_sdk::Env) -> Result<(i128, i128, i128), soroban_sdk::Error>

Current YES price (fixed-point in (0,1), value * 2^32).

fn price_yes(env: soroban_sdk::Env) -> Result

Collateral cost to buy shares (fixed-point) of side. Rounded UP by one unit (pool-favoring) so per-trade truncation never undercharges.

fn quote_buy(
    env: soroban_sdk::Env,
    side: Side,
    shares: i128,
) -> Result

Shares (fixed-point) held by trader on side.

fn shares_of(env: soroban_sdk::Env, trader: soroban_sdk::Address, side: Side) -> i128
fn collateral(
    env: soroban_sdk::Env,
) -> Result
fn extend_ttl(env: soroban_sdk::Env)

Collateral refunded to sell shares (fixed-point) of side. Rounded DOWN by one unit (pool-favoring). Errors if it would drive q negative.

fn quote_sell(
    env: soroban_sdk::Env,
    side: Side,
    shares: i128,
) -> Result
fn apply_batch(
    env: soroban_sdk::Env,
    batcher: soroban_sdk::Address,
    dqyes: i128,
    dqno: i128,
) -> Result

Resolution parameters (asset / threshold / expiry).

fn market_info(env: soroban_sdk::Env) -> Result
fn quote_batch(
    env: soroban_sdk::Env,
    dqyes: i128,
    dqno: i128,
) -> Result
fn set_batcher(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    batcher: soroban_sdk::Address,
) -> Result<(), soroban_sdk::Error>
fn set_resolver(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    resolver: soroban_sdk::Address,
) -> Result<(), soroban_sdk::Error>

Constructor (runs atomically at deploy and cannot be front-run). Sets the admin, collateral token (SEP-41), liquidity parameter b (fixed-point, value * 2^32), and resolution parameters (asset / threshold / expiry). Worst-case operator loss is b * ln 2.

fn __constructor(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    collateral: soroban_sdk::Address,
    b: i128,
    asset: soroban_sdk::Symbol,
    threshold: i128,
    expiry: u64,
    batch_grace: u64,
)
fn state_version(env: soroban_sdk::Env) -> u64
fn private_config(env: soroban_sdk::Env) -> Option
fn scenario_state(env: soroban_sdk::Env) -> Result
fn activate_private(
    env: soroban_sdk::Env,
    factory: soroban_sdk::Address,
    config: PrivateMarketConfig,
) -> Result<(), soroban_sdk::Error>
fn required_funding(env: soroban_sdk::Env) -> Result
fn settle_liquidity(env: soroban_sdk::Env) -> Result
fn record_vested_fees(
    env: soroban_sdk::Env,
    batcher: soroban_sdk::Address,
    lp_fee: i128,
    prior_unallocated_balance: i128,
    expected_version: u64,
) -> Result
fn apply_private_batch(
    env: soroban_sdk::Env,
    batcher: soroban_sdk::Address,
    expected_version: u64,
    yes_count: u32,
    no_count: u32,
) -> Result
fn quote_private_batch(
    env: soroban_sdk::Env,
    expected_version: u64,
    yes_count: u32,
    no_count: u32,
) -> Result
fn unallocated_balance(env: soroban_sdk::Env) -> Result
fn apply_private_batch_received(
    env: soroban_sdk::Env,
    batcher: soroban_sdk::Address,
    expected_version: u64,
    yes_count: u32,
    no_count: u32,
    prior_unallocated_balance: i128,
) -> Result

Imports

WebAssembly Text (WAT) ▶