# Contract Monitoring Requirements Univ3 ## Range Management Monitor (RMM) ### Description Monitors the strategies to verify they are in range and earning fees. ### Requirements: - RMM shall monitor all strategies listed in the`keeperAddress` via the`keeper.strategyArray` public array. - The RMM shall trigger a High alert if the `currentTick` for the strategy is outside the range of `strategy.tick_lower` and `strategy.tick_upper` - The RMM shall include `strategyAddress` in the metadata. ### Notes - `keeperAddress = 0xCd2e473DD506DfaDeeA81371053c307a24C05e6D` - pool current tick logic is `( ,int24 currentTick,...) = strategy.pool.slot0` ## Keeper Topup Monitor (KTM) ### Description Monitors the keeper to verify enough funds available to continue operations. ### Requirements - The KTM shall monitor the balance of the keeper, and trigger alerts based on the below conditions: -- An Info Alert if the Keeper's balance will reach minimum balance in a week. -- A high Alert if the Keeper's balance will reach the miminum balance in a day. ### Notes - `keeperIndex = 28` - `keeperRegistryAddress = 0x7b3EC232b08BD7b4b3305BE0C044D907B2DF960B` - To get current Balance: `(,,,uint96 balance,...) = keeperRegistry.getUpkeep(keeperIndex)` - To get minimum balance: `keeperRegistry.getMinBalanceForUpkeep(keeperIndex)` ## Idle Funds ### Description Monitors the strategies for idle funds in them. ### Requirements - Idle funds will be the same as idle funds from yearn https://connect.forta.network/developer/0xaaa8334B378A8B6D8D37cFfEF6A755394B4C89DF - Idle fund strategy list is `keeper.strategyArray` ### Notes - `keeperAddress = 0xCd2e473DD506DfaDeeA81371053c307a24C05e6D` ## Volatility Monitor (VM) ### Desription Monitors how often the strategies are rebalancing and determines if range changes need to occur. ### Requirements - VM shall monitor the `keeperRegistry` for `performUpkeep` calls with `id = keeperID`. - VM shall trigger a medium alert if the following occurs: -- PerformData is `strategyAddress` 5 times in 1 week. -- PerformData does not containt `strategyAddress` for 4 weeks. - VM shall trigger a high alert if the following occurs: -- PerformData is `strategyAddress` 5 times in 1 day. - VM shall include `strategyAddress`, `timeSinceLastUpkeep`, and `numberOfUpkeepsToday` in metadata ### Notes - `keeperId = 28` - `keeperRegistryAddress = 0x7b3EC232b08BD7b4b3305BE0C044D907B2DF960B` - Entire list of strategies to listen for is `keeper.strategyArray` mentioned in RMM. - Strategies will be added and removed over time. - Before sending alert for not being called in 4 weeks, verify time since strategy has been added to `keeper` is greater than 4 weeks. This can be done by looking at the keeper contract for `addStrategy` calls. - `keeperAddress = 0xCd2e473DD506DfaDeeA81371053c307a24C05e6D`