THIS CHECKLIST IS NOT COMPLETE. Use --show-ignored-findings
to show all the results.
Summary
- divide-before-multiply (1 results) (Medium)
- events-access (2 results) (Low)
- events-maths (4 results) (Low)
- calls-loop (1 results) (Low)
- reentrancy-events (2 results) (Low)
- timestamp (4 results) (Low)
- costly-loop (3 results) (Informational)
- low-level-calls (1 results) (Informational)
- naming-convention (1 results) (Informational)
- redundant-statements (4 results) (Informational)
Impact: Medium Confidence: Medium
- ID-0 LDYStaking.earned(address,uint256) performs a multiplication on the result of a division:
contracts/src/LDYStaking.sol#L409-L416
Impact: Low Confidence: Medium
- ID-1 LToken.setWithdrawer(address) should emit an event for:
contracts/src/LToken.sol#L300-L306
- ID-2 LToken.setFund(address) should emit an event for:
contracts/src/LToken.sol#L312-L318
Impact: Low Confidence: Medium
- ID-3 LToken.setRetentionRate(uint32) should emit an event for:
contracts/src/LToken.sol#L283-L286
- ID-4 LDYStaking.setStakeAmountForPerks(uint256) should emit an event for:
contracts/src/LDYStaking.sol#L304-L306
- ID-5 LToken.setFeesRate(uint32) should emit an event for:
contracts/src/LToken.sol#L272-L275
- ID-6 LDYStaking.setStakeDurationForPerks(uint256) should emit an event for:
contracts/src/LDYStaking.sol#L295-L297
Impact: Low Confidence: Medium
- ID-7 LToken.getWithdrawnAmountAndFees(address,uint256) has external calls inside a loop: ldyStaking.tierOf(account) >= 2
contracts/src/LToken.sol#L603-L621
Impact: Low Confidence: Medium
- ID-8
Reentrancy in LDYStaking.notifyRewardAmount(uint256):
External calls:
- stakeRewardToken.safeTransferFrom(_msgSender(),address(this),amount) Event emitted after the call(s):
- NotifiedRewardAmount(amount,rewardRatePerSec)
contracts/src/LDYStaking.sol#L346-L374
- ID-9
Reentrancy in LToken.processQueuedRequests():
External calls:
- underlying().safeTransfer(request.account,withdrawnAmount) Event emitted after the call(s):
- ActivityEvent(int256(nextRequestId),_msgSender(),Action.Withdraw,request.amount,request.amount,Status.Moved,int256(withdrawalQueue.length))
- ActivityEvent(int256(nextRequestId),request.account,Action.Withdraw,request.amount,withdrawnAmount,Status.Success,NO_ID)
contracts/src/LToken.sol#L740-L851
Impact: Low Confidence: Medium
- ID-10 LDYStaking.unstake(uint256,uint256) uses timestamp for comparisons Dangerous comparisons:
contracts/src/LDYStaking.sol#L218-L263
- ID-11 LDYStaking.notifyRewardAmount(uint256) uses timestamp for comparisons Dangerous comparisons:
contracts/src/LDYStaking.sol#L346-L374
- ID-12 LDYStaking.setRewardsDuration(uint256) uses timestamp for comparisons Dangerous comparisons:
contracts/src/LDYStaking.sol#L285-L288
- ID-13 LDYStaking._min(uint256,uint256) uses timestamp for comparisons Dangerous comparisons:
contracts/src/LDYStaking.sol#L513-L515
Impact: Informational Confidence: Medium
- ID-14 LToken.processQueuedRequests() has costly operations inside a loop:
contracts/src/LToken.sol#L740-L851
- ID-15 LToken.processQueuedRequests() has costly operations inside a loop:
contracts/src/LToken.sol#L740-L851
- ID-16 LToken.processQueuedRequests() has costly operations inside a loop:
contracts/src/LToken.sol#L740-L851
Impact: Informational Confidence: High
- ID-17 Low level call in LToken.requestWithdrawal(uint256):
contracts/src/LToken.sol#L679-L733
Impact: Informational Confidence: High
- ID-18 Constant LToken.MAX_FEES_RATE_UD7x3 is not in UPPER_CASE_WITH_UNDERSCORES
contracts/src/LToken.sol#L89
Impact: Informational Confidence: High
contracts/src/LToken.sol#L553
contracts/src/LToken.sol#L563
contracts/src/LToken.sol#L552
contracts/src/LToken.sol#L564