Initialize the contract with the trading pair and dependencies
Arguments:
fn initialize(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
pool: soroban_sdk::Address,
margin_manager: soroban_sdk::Address,
base_token: soroban_sdk::Address,
quote_token: soroban_sdk::Address,
) -> Result<(), EntrypointError>
Update the margin manager contract address
fn set_margin_manager(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
margin_manager: soroban_sdk::Address,
) -> Result<(), EntrypointError>
Get the pool address
fn get_pool(env: soroban_sdk::Env) -> soroban_sdk::Address
Get the admin address
fn get_admin(env: soroban_sdk::Env) -> soroban_sdk::Address
Get the margin manager contract address
fn get_margin_manager(env: soroban_sdk::Env) -> soroban_sdk::Address
Get the base token address
fn get_base_token(env: soroban_sdk::Env) -> soroban_sdk::Address
Get the quote token address
fn get_quote_token(env: soroban_sdk::Env) -> soroban_sdk::Address
Open a LONG position on Base token
LONG Base = betting Base will appreciate vs Quote Flow: Flash loan Quote → Swap Quote→Base → Supply Base as collateral → Borrow Quote → Repay flash loan Result: Collateral=Base, Debt=Quote
Arguments:
fn open_long(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
flash_amount: i128,
initial_margin: i128,
min_swap_output: i128,
margin_from_quote: bool,
swap_chain: soroban_sdk::Vec,
) -> Result<(), EntrypointError>
Open a SHORT position on Base token
SHORT Base = betting Base will depreciate vs Quote Flow: Flash loan Base → Swap Base→Quote → Supply Quote as collateral → Borrow Base → Repay flash loan Result: Collateral=Quote, Debt=Base
Arguments:
fn open_short(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
flash_amount: i128,
initial_margin: i128,
min_swap_output: i128,
margin_from_quote: bool,
swap_chain: soroban_sdk::Vec,
) -> Result<(), EntrypointError>
Reduce or close a LONG position on Base token
To reduce/close long (Collateral=Base, Debt=Quote): Flow: Flash loan Base → Swap Base→Quote → Repay Quote debt → Withdraw Base collateral → Repay Base flash loan
Arguments:
fn close_long(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
flash_amount: i128,
repay_amount: i128,
withdraw_amount: i128,
swap_chain: soroban_sdk::Vec,
) -> Result<(), EntrypointError>
Reduce or close a SHORT position on Base token
To reduce/close short (Collateral=Quote, Debt=Base): Flow: Flash loan Quote → Swap Quote→Base → Repay Base debt → Withdraw Quote collateral → Repay Quote flash loan
Arguments:
fn close_short(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
flash_amount: i128,
repay_amount: i128,
withdraw_amount: i128,
swap_chain: soroban_sdk::Vec,
) -> Result<(), EntrypointError>
Create a supply collateral request
fn make_supply_collateral_request(
env: soroban_sdk::Env,
asset: soroban_sdk::Address,
amount: i128,
) -> Request
Create a borrow request
fn make_borrow_request(
env: soroban_sdk::Env,
asset: soroban_sdk::Address,
amount: i128,
) -> Request
Create a repay request
fn make_repay_request(
env: soroban_sdk::Env,
asset: soroban_sdk::Address,
amount: i128,
) -> Request
Create a withdraw collateral request
fn make_withdraw_collateral_request(
env: soroban_sdk::Env,
asset: soroban_sdk::Address,
amount: i128,
) -> Request