This is an abstract implementation of the IAssetManager interface that implements a liquidity strategy based on thresholds.

This strategy manages how much of the funds should remain liquid in the reserve (currency().balanceOf(reserve)) and how much is invested. For that, it has three liquidity thresholds: minimum, middle, and maximum. On the rebalance operations, if the liquid funds of the reserve are above the maximum, it invests funds, leaving liquidity at the middle level. If the liquid funds are below the minimum, it deinvests enough funds to leave the liquidity again at the middle level.


The contract does not implement the specific investment strategy, that must be implemented by descendant contracts. These contracts must overload at least the functions _invest(amount), _deinvest(amount), deinvestAll(), and getInvestmentValue().


External Methods


function setLiquidityThresholds(uint256 min, uint256 middle, uint256 max) external

Last updated