MIMOManagedRebalance

The MIMOManagedRebalance action contract handle the super vault empty vault logic described in Managed Rebalance.

Process Flow

Write Methods

setManagement(uint256 vaultId, ManagedVault calldata mgtParams)

Sets a vault management parameters.

Requirements :

  • Caller must be the MIMOProxy owner the vault or the MIMOProxy owner

  • Selected manager must be whitelisted

Param NameTypeDescription

vaultId

uint256

mgtParams

struct

ManagedVault struct containing all management parameters

ManagedVault

Param NameTypeDescription

isManaged

bool

true if vault is under management false if not

manager

address

Selected manager address

allowedVariation

uint256

The maximum allowed slippage on rebalancing swaps

minRatio

uint256

Minimum vault ratio above which the starting vault be at the end of a rebalance operation

fixedFee

uint256

Fixed fee paid to the manager

varFee

uint256

Variable fee paid to the manager

mcrBuffer

uint256

Rebalancing vault MCR buffer padding

rebalance(uint256 vaultId, IMIMORebalance.RebalanceData calldata rbData,IMIMOSwap.SwapData calldata swapData)

Performs a rebalance on a vault by an appointed whitelisted manager on behalf of the vault owner.

Requirements :

  • Contract must be unpaused

  • Vault must have been created through the user's MIMOProxy

  • Vault must be under management

  • Caller must be the appointed manager

  • Rebalance amount cannot be set to zero

  • Maximum daily operation must have not been reached

  • Set mint amount cannot be greater than vault debt

  • The change in vault value due to the rebalance operation must be lower or equal then the allowedVariation set by the owner

  • The final vault ratio must be greater or equal then the minRatio set by the owner

Param NameTypeDescription

flData

struct

FlashLoanData struct containing flash loan parameters

rbData

struct

RebalanceData struct containing rebalance operation parameters

swapData

struct

SwapData struct containing aggregator swap parameters

executeOperation(address[] calldata assets, uint256[] calldata amounts, uint256[] calldata premiums, address initiator, bytes calldata params

AAVE Pool contract flash loan callback function.

Requirements :

  • Contract must be unpaused

  • Can only be called by the AAVE Pool contract

  • Flash loan initiator must be the MIMOProxy

Param NameTypeDescription

assets

address[]

Address array with one element corresponding to the address of the target vault asset

amounts

uint256[]

Uint array with one element corresponding to the amount of the target vault asset

premiums

uint256[]

Uint array with one element corresponding to the flashLoan fees

initiator

address

Initiator of the flashloan; can only be MIMOProxy owner

params

bytes

Bytes sent by this contract containing MIMOProxy owner, target vault id, SwapData struct

View Methods

mimoRebalance()

Returns the MIMORebalance action contract address.

Last updated