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