Contract 60e5f34c5dd71e677d86eab9d3bf2d2805b0f175ee44e342df0c7f3b8c0b6500

← Back to Index 📥 Download WASM

Meta

cliver 26.1.0#1228cff8022b804659750b94b315932b0e0f3f6a
rssdk_spec_shaking 2
rssdkver 25.3.1#e50d95af029c83196dd122f0154bac3f1302394b
rsver 1.96.0

Instances

  • CC2MVMWNUSEBJ5ITIKTKTLL3URUPYPGRQB6SWX2HAKEKKXDMYF4EYP5C

Interface

fn get_admin(env: soroban_sdk::Env) -> soroban_sdk::Address
fn set_admin(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    new_admin: soroban_sdk::Address,
)
fn initialize(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    peridottroller: soroban_sdk::Address,
    swap_adapter: soroban_sdk::Address,
    max_leverage: u128,
)
fn set_market(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    asset: soroban_sdk::Address,
    vault: soroban_sdk::Address,
)
fn set_params(env: soroban_sdk::Env, admin: soroban_sdk::Address, max_leverage: u128)
fn accept_admin(env: soroban_sdk::Env)
fn get_position(env: soroban_sdk::Env, position_id: u64) -> Option
fn upgrade_wasm(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    new_wasm_hash: soroban_sdk::BytesN<32>,
)
fn set_open_fee_bps(env: soroban_sdk::Env, admin: soroban_sdk::Address, fee_bps: u128)

Propose a swap-adapter replacement. Existing routed positions depend on this trust boundary, so replacement is timelocked like WASM upgrades.

fn set_swap_adapter(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    swap_adapter: soroban_sdk::Address,
)

Accrue any pending fees and transfer claimable pTokens into the caller's free margin balance. Returns the number of pTokens claimed.

fn claim_margin_fees(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    asset: soroban_sdk::Address,
) -> u128
fn close_position_v3(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    position_id: u64,
    amount_with_slippage: u128,
)
fn get_health_factor(env: soroban_sdk::Env, position_id: u64) -> u128
fn set_close_fee_bps(env: soroban_sdk::Env, admin: soroban_sdk::Address, fee_bps: u128)

Admin function: move orphaned fee pTokens (collected when pool was empty) into recipient's free margin balance. Returns the amount swept.

fn sweep_orphan_fees(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    asset: soroban_sdk::Address,
    recipient: soroban_sdk::Address,
) -> u128
fn deposit_collateral(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    asset: soroban_sdk::Address,
    amount: u128,
)
fn get_perps_position(
    env: soroban_sdk::Env,
    position_id: u64,
) -> Option
fn get_user_positions(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
) -> soroban_sdk::Vec

Propose a peridottroller replacement. The change is timelocked because this address controls prices, policy gates, and liquidation parameters.

fn set_peridottroller(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    peridottroller: soroban_sdk::Address,
)
fn swap_liquidation_v3(
    env: soroban_sdk::Env,
    liquidator: soroban_sdk::Address,
    position_id: u64,
    amount_with_slippage: u128,
)
fn withdraw_collateral(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    asset: soroban_sdk::Address,
    ptoken_amount: u128,
)
fn begin_liquidation_v3(
    env: soroban_sdk::Env,
    liquidator: soroban_sdk::Address,
    position_id: u64,
)
fn get_margin_fee_index(env: soroban_sdk::Env, asset: soroban_sdk::Address) -> u128
fn get_position_counter(env: soroban_sdk::Env) -> u64
fn preview_open_fees_v3(
    env: soroban_sdk::Env,
    margin_ptokens: u128,
    leverage: u128,
) -> PerpsOpenFeeQuote
fn propose_upgrade_wasm(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    new_wasm_hash: soroban_sdk::BytesN<32>,
)
fn finish_liquidation_v3(
    env: soroban_sdk::Env,
    liquidator: soroban_sdk::Address,
    position_id: u64,
)
fn get_perps_pair_config(
    env: soroban_sdk::Env,
    margin_asset: soroban_sdk::Address,
    base_asset: soroban_sdk::Address,
    side: PositionSide,
) -> Option
fn liquidate_position_v3(
    env: soroban_sdk::Env,
    liquidator: soroban_sdk::Address,
    position_id: u64,
)
fn set_perps_pair_config(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    margin_asset: soroban_sdk::Address,
    base_asset: soroban_sdk::Address,
    side: PositionSide,
    max_leverage: u128,
    maintenance_margin_scaled: u128,
    liquidation_incentive_scaled: u128,
)
fn swap_open_position_v3(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    position_id: u64,
)
fn begin_open_position_v3(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    margin_asset: soroban_sdk::Address,
    base_asset: soroban_sdk::Address,
    margin_ptokens: u128,
    leverage: u128,
    side: PositionSide,
    pool_tokens: soroban_sdk::Vec,
    pool_id: soroban_sdk::BytesN<32>,
    pool: soroban_sdk::Address,
    amount_with_slippage: u128,
) -> u64
fn cancel_pending_open_v3(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    position_id: u64,
)
fn compact_user_positions(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    limit: u32,
) -> u32

Permissionless, independent of position settlement. Recipients are the vault's free-margin providers when each fee was charged; no caller payout.

fn distribute_margin_fees(env: soroban_sdk::Env, vault: soroban_sdk::Address) -> u128
fn expire_pending_open_v3(env: soroban_sdk::Env, position_id: u64)
fn get_pending_perps_open(
    env: soroban_sdk::Env,
    position_id: u64,
) -> Option
fn get_position_fee_terms(
    env: soroban_sdk::Env,
    position_id: u64,
) -> Option
fn preview_liquidation_v3(
    env: soroban_sdk::Env,
    position_id: u64,
) -> PerpsLiquidationQuote
fn swap_close_position_v3(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    position_id: u64,
    amount_with_slippage: u128,
)
fn begin_close_position_v3(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    position_id: u64,
)
fn get_pending_liquidation(
    env: soroban_sdk::Env,
    position_id: u64,
) -> Option
fn get_pending_perps_close(
    env: soroban_sdk::Env,
    position_id: u64,
) -> Option
fn resolve_pending_open_v3(env: soroban_sdk::Env, position_id: u64)
fn set_max_slippage_scaled(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    max_slippage_scaled: u128,
)

Move pTokens from margin custody back to spot wallet.

fn transfer_margin_to_spot(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    asset: soroban_sdk::Address,
    ptoken_amount: u128,
)

Move spot pTokens into margin custody.

fn transfer_spot_to_margin(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    asset: soroban_sdk::Address,
    ptoken_amount: u128,
)
fn cancel_close_position_v3(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    position_id: u64,
)
fn execute_open_position_v3(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    position_id: u64,
)
fn expire_close_position_v3(env: soroban_sdk::Env, position_id: u64)
fn finish_close_position_v3(env: soroban_sdk::Env, position_id: u64)
fn locked_ptokens_in_market(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    market: soroban_sdk::Address,
) -> u128
fn repay_margin_position_v3(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    position_id: u64,
    amount: u128,
)

Replaces a disabled stored pool route for an existing V3 position.

This recovery path is intentionally unavailable while the old route is still enabled. Normal route changes must happen through a new position.

fn replace_position_pool_v3(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    position_id: u64,
    pool_tokens: soroban_sdk::Vec,
    pool_id: soroban_sdk::BytesN<32>,
    pool: soroban_sdk::Address,
)
fn activate_open_position_v3(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    position_id: u64,
)

Returns total pTokens claimable by user for market asset, including earnings not yet snapshotted.

fn get_claimable_margin_fees(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    asset: soroban_sdk::Address,
) -> u128
fn prepare_close_position_v3(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    position_id: u64,
)

Adds already-deposited position pTokens to a pending V3 open.

fn add_position_collateral_v3(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    position_id: u64,
    position_ptokens: u128,
)
fn get_margin_balance_ptokens(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    asset: soroban_sdk::Address,
) -> u128
fn get_perps_pair_exit_config(
    env: soroban_sdk::Env,
    margin_asset: soroban_sdk::Address,
    base_asset: soroban_sdk::Address,
    side: PositionSide,
) -> PerpsPairExitExecutionConfig
fn set_perps_pair_exit_config(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    margin_asset: soroban_sdk::Address,
    base_asset: soroban_sdk::Address,
    side: PositionSide,
    config: PerpsPairExitExecutionConfig,
)
fn withdraw_close_position_v3(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    position_id: u64,
)
fn execute_swap_adapter_update(env: soroban_sdk::Env, admin: soroban_sdk::Address)

Close a Short without converting the user's entire quote-asset margin.

swap_amount_in is the pool-quoted amount of position collateral needed to buy back the debt asset. min_debt_out must cover the current debt; any unspent position collateral is returned to free margin on settlement.

fn swap_close_short_position_v3(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    position_id: u64,
    swap_amount_in: u128,
    min_debt_out: u128,
)
fn execute_peridottroller_update(env: soroban_sdk::Env, admin: soroban_sdk::Address)
fn get_margin_balance_underlying(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    asset: soroban_sdk::Address,
) -> u128
fn get_undistributed_margin_fees(
    env: soroban_sdk::Env,
    vault: soroban_sdk::Address,
) -> PendingMarginFees
fn release_debt_free_position_v3(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    position_id: u64,
)
fn get_liquidation_takeover_after(
    env: soroban_sdk::Env,
    position_id: u64,
) -> Option
fn get_perps_pair_execution_config(
    env: soroban_sdk::Env,
    margin_asset: soroban_sdk::Address,
    base_asset: soroban_sdk::Address,
    side: PositionSide,
) -> PerpsPairExecutionConfig
fn set_perps_pair_execution_config(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    margin_asset: soroban_sdk::Address,
    base_asset: soroban_sdk::Address,
    side: PositionSide,
    config: PerpsPairExecutionConfig,
)
fn get_pending_perps_open_execution(
    env: soroban_sdk::Env,
    position_id: u64,
) -> Option

Imports

WebAssembly Text (WAT) ▶