-
**Severity:** more costly operation the more loops they are
**Context:** currently `gauges[idx]` is read multiple times in the loop. Lines such as: 145, 146, 162 and 174.
**Recommendation:** cac…
-
**Severity:** medium risk. Misaccounting of actual `balance` on each loop iteration.
**Context:** currently the value of `balance` is being cached in L142, but not updated on each loop iteration af…
-
**Severity:** unclear design intention
**Context:** if the intention indeed is to set the distrubutor into the owner, we could omit a parameter and simply hardcoded the `owner`
**Recommendation:…
-
**Severity:** informational / gas optimisation
**Context:** currently on every loop for every epoch/period while injecting there is a `forceApproval` for each gauge, while it could be only once whi…
-
**Severity:** informational. No leverage of existing methods in library `EnumerableSet.sol`.
**Context:** currently to read all active gauges the implementation is looping thru all the set, which i…
-
**Severity:** low risk. Ultimately, will leave to revert.
**Context:** in `manualDeposit` method the caller could point to any gauge given the flexibility of the parameters, but not necessarily bei…
-
**Severity:** potentially unexpected returned value in `getBalanceDelta` or miswording in test suite
**Context:** it seems that the test would like to signal that actually there is sufficient balan…
-
**Severity:** informational / best practices
**Context:** the code currently does not follow the standard style format at the smart contract level described in the official [guide](https://docs.sol…
-
**Severity:** low risk. Constrained into `performUpkeep` impact
**Context:** `setKeeperAddresses` will allow setting an array of addresses, and in the case of one of them being `address(0)` by an o…
-
**Severity:** downgrades coverage, unexpected behaviour for uncovered setters
**Context:** method `setMinWaitPeriodSeconds` (L568-L569) is not covered in tests, it has neither health-check into the…