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 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
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 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 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