struct RebaseHelperParams {
address helper; // wrap helper address if address(0) then not wrap
address tokenIn; // token to use in rebase helper
}
// NOTE: there is 3 types of deposit
// 1. deposit native token use msg.value for native token
// if amt > 0 mean user want to use wNative too
// 2. wrap rebase token to non-rebase token and deposit (using rebase helper)
// 3. deposit normal erc20 token
struct DepositParams {
address pool; // lending pool to deposit
uint amt; // token amount to deposit
RebaseHelperParams rebaseHelperParams; // wrap params
}
struct WithdrawParams {
address pool; // lending pool to withdraw
uint shares; // shares to withdraw
RebaseHelperParams rebaseHelperParams; // wrap params
address to; // receiver to receive withdraw tokens
}
struct RepayParams {
address pool; // lending pool to repay
uint shares; // shares to repay
}
struct BorrowParams {
address pool; // lending pool to borrow
uint amt; // token amount to borrow
address to; // receiver to receive borrow tokens
}
struct OperationParams {
uint posId; // position id to execute (0 to create new position)
address viewer; // address to view position
uint16 mode; // position mode to be used
DepositParams[] depositParams; // deposit parameters
WithdrawParams[] withdrawParams; // withdraw parameters
BorrowParams[] borrowParams; // borrow parameters
RepayParams[] repayParams; // repay parameters
uint minHealth_e18; // minimum health to maintain after execute
bool returnNative; // return native token or not (using balanceOf(address(this)))
}
Parameters:
Name
Type
Description
_params
OperationParams
parameters to execute the fucntion
Returns:
Name
Type
Description
posId
uint256
running position id (per each user) on money market hook