Platform: Code4rena
Start Date: 11/11/2022
Pot Size: $90,500 USDC
Total HM: 52
Participants: 92
Period: 7 days
Judge: LSDan
Total Solo HM: 20
Id: 182
League: ETH
Rank: 60/92
Findings: 2
Award: $58.28
🌟 Selected for report: 0
🚀 Solo Findings: 0
6.2548 USDC - $6.25
In LiquidStakingManager.sol
at Line 280, the function updateNodeRunnerWhitelistStatus()
will always revert no matter what. Because of this, the whitelist status will never be updated.
File: LiquidStakingManager.sol
Line 280
require(isNodeRunnerWhitelisted[_nodeRunner] != isNodeRunnerWhitelisted[_nodeRunner], "Unnecessary update to same status");
Because the condition above is comparing that itself is not equal itself, it will always be false.
Consider replacing the affected line to:
require(isNodeRunnerWhitelisted[_nodeRunner] != isWhitelisted, "Unnecessary update to same status");
#0 - c4-judge
2022-11-21T12:05:14Z
dmvt marked the issue as duplicate of #74
#1 - c4-judge
2022-11-21T16:44:05Z
dmvt marked the issue as not a duplicate
#2 - c4-judge
2022-11-21T16:44:11Z
dmvt marked the issue as duplicate of #67
#3 - c4-judge
2022-11-30T11:45:36Z
dmvt marked the issue as satisfactory
#4 - C4-Staff
2022-12-21T00:11:17Z
JeeberC4 marked the issue as duplicate of #378
🌟 Selected for report: 0xSmartContract
Also found by: 0x4non, 0xNazgul, 0xRoxas, 0xdeadbeef0x, 0xmuxyz, 9svR6w, Awesome, Aymen0909, B2, Bnke0x0, CloudX, Deivitto, Diana, Franfran, IllIllI, Josiah, RaymondFam, ReyAdmirado, Rolezn, Sathish9098, Secureverse, SmartSek, Trust, Udsen, a12jmx, aphak5010, brgltd, bulej93, c3phas, ch0bu, chaduke, chrisdior4, clems4ever, cryptostellar5, datapunk, delfin454000, fs0c, gogo, gz627, hl_, immeas, joestakey, lukris02, martin, nogo, oyc_109, pashov, pavankv, peanuts, pedr02b2, rbserver, rotcivegaf, sahar, sakman, shark, tnevler, trustindistrust, zaskoh, zgo
52.0338 USDC - $52.03
immutable
variableState variables that have no setter functions and can only be assigned at the constructor can be declared immutable
.
Here is an example:
File: OptionalHouseGatekeeper.sol
Line 14-16
constructor(address _manager) { liquidStakingManager = ILiquidStakingManager(_manager); }
The variable above could be changed to immutable like so:
ILiquidStakingManager public immutable liquidStakingManager; constructor(address _manager) { liquidStakingManager = ILiquidStakingManager(_manager); }
Here are all the other instances of this issue:
File: SavETHVaultDeployer.sol
Line 13-16
File: StakingFundsVaultDeployer.sol
Line 13-16
File: LPTokenFactory.sol
Line 15-22
File: LPTokenFactory.sol
Line 15-22
File: SyndicateFactory.sol
Line 13-18
File: LSDNFactory.sol
Line 15-68
File: GiantLP.sol
Line 11-27
File: Syndicate.sol
Line 39
The following event is not emitting anything. Consider either refactoring to be of use or removing it.
event ContractDeployed();
e.g. pragma solidity ^0.8.13;
is very unspecific.
Locking the pragma helps ensure that contracts don't get deployed with unintended versions, for example, the latest compiler which could have higher risks of undiscovered bugs.
File: ETHPoolLPFactory.sol
Line 74, Line 118, Line 124, Line 150
/// @audit Instane 74: /// @param _newLPToken Instane of the new LP token (to be minted) // Replace "it's" to "its" 118: // KNOT and it's LP token is already registered ///@audit depoister 124: // mint LP tokens for the depoistor with 1:1 ratio of LP tokens and ETH supplied ///@audit depoister 150: // mint LP tokens for the depoistor with 1:1 ratio of LP tokens and ETH supplied
#0 - c4-judge
2022-12-01T23:16:21Z
dmvt marked the issue as grade-b