MIMOAutoRebalance
Last updated
Last updated
The MIMOAutoRebalance
action contract handle the super vault empty vault logic described in Automated Rebalance.
setAutomation(uint256 vaultId, AutomatedVault calldata autoParams)
Sets a vault automation parameters.
Requirements :
Caller must be the MIMOProxy
owner the vault or the MIMOProxy
owner
Param Name | Type | Description |
---|---|---|
| uint256 | |
| struct | AutomatedVault struct containing all automation parameters |
AutomatedVault
Param Name | Type | Description |
---|---|---|
| bool |
|
| address | Collateral to rebalance to |
| uint256 | The maximum allowed slippage on rebalancing swaps |
| uint256 | Target ratio that must be reach upon each rebalance operation |
| uint256 | Minimum vault ratio that must be reached in order to perform a rebalance operation |
| uint256 | Rebalancing vault MCR buffer padding |
| uint256 | Fixed fee paid to the keeper |
| uint256 | Variable fee paid to the keeper |
rebalance(uint256 vaultId, IMIMOSwap.SwapData calldata swapData)
Performs a rebalance on a vault on behalf of a vault owner.
Requirements :
Contract must be unpaused
Vault must have been created through the user's MIMOProxy
Vault must be automated
Maximum daily operation must have not been reached
Rebalanced vault ratio must lower or equal then set triggerRatio
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 Name | Type | Description |
---|---|---|
| uint256 | Id of the vault to rebalance |
| struct |
|
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 Name | Type | Description |
---|---|---|
| address[] | Address array with one element corresponding to the address of the target vault asset |
| uint256[] | Uint array with one element corresponding to the amount of the target vault asset |
| uint256[] | Uint array with one element corresponding to the flashLoan fees |
| address | Initiator of the flashloan; can only be MIMOProxy owner |
| bytes | Bytes sent by this contract containing MIMOProxy owner, target vault id, SwapData struct |
getAmounts(uint256 vaultId, address toCollateral)
Returns the rebalance amounts for specific vault id.
Call Params
Name | Type | Description |
---|---|---|
| uint256 | Id of the vault to rebalance |
| address | Collateral to rebalance to |
Return Values
Name | Type | Description |
---|---|---|
| uint256 | Amount to rebalance |
| uint256 | Amount to mint on vault B |
| uint256 | Automation fee |
rebalanceAmount
calculation :
Where mcrB
is the rebalancing vault (e.g. vault with the less volatile collateral) MCR.
The rebalance value is then converted to a rebalance amount using the core protocol PriceFeed
contract.
mimoRebalance()
Returns the MIMORebalance
action contract address.