Initialize the contract with admin and pool addresses
fn initialize(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
pool: soroban_sdk::Address,
) -> Result<(), MarginManagerError>
Set the Aquarius AMM router address
fn set_aqua_router(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
router: soroban_sdk::Address,
) -> Result<(), MarginManagerError>
Set the swap configuration for the next operation This should be called before initiating a flash loan
fn set_swap_config(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
token_out: soroban_sdk::Address,
min_amount_out: i128,
)
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 Aquarius router address
fn get_aqua_router(env: soroban_sdk::Env) -> Option
exec_op - The callback function called by Blend Pool during flash loan
This is the Modified ERC-3156 interface that Blend uses. The pool calls this function after transferring the flash loan tokens.
Behavior:
Arguments:
fn exec_op(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
token: soroban_sdk::Address,
amount: i128,
fee: i128,
)
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
Create a supply request
fn make_supply_request(
env: soroban_sdk::Env,
asset: soroban_sdk::Address,
amount: i128,
) -> Request
Create a withdraw request
fn make_withdraw_request(
env: soroban_sdk::Env,
asset: soroban_sdk::Address,
amount: i128,
) -> Request