Aggregator contract is responsible for holding the liquidity and rebalancing it to get maximum yeilds from Uniswap V3. Users can pick the strategy of their choice and add liquidity. The strategy owner manages the liquidity of the users,in return the strategy owner can charge fee.
A strategy can be deployed by using standard strategy interface as described in /interfaces/IStrategy.sol
As users deposits the liquidity, they get share representing their liquidity in the pool.
A strategy owner can perform following actions to manage user's liquidity.
- Only Range Order: Place only the range order between two ranges. The remaning liquidity after deploying to ranges will be stored as unused amounts
- Range Order and Limit Order: Places range order and the remaninng liquidity is deployed to limit order.
- Hold: Strategy owner can hold the liquidity in the aggregator contract.
- Swap and Range Order: User can perform a swap and then put all the liquidity in range order to use 100% of the liquidity.
-
Add Liquidity: When users add liquidity they get shares based on the liquidity added
-
Remove Liquidity: Users can burn their shares to get back added amounts as well as the fees earned.
- Add liquidity to multiple ranges.
- Swap X amount and deploy remaining liquidity.
- Hold all the funds in the aggregator contract.