Platform: Code4rena
Start Date: 28/09/2023
Pot Size: $36,500 USDC
Total HM: 5
Participants: 115
Period: 6 days
Judge: 0xDjango
Total Solo HM: 1
Id: 290
League: ETH
Rank: 52/115
Findings: 1
Award: $62.21
🌟 Selected for report: 0
🚀 Solo Findings: 0
🌟 Selected for report: Bauchibred
Also found by: 0x3b, 0xDetermination, 0xMosh, 0xScourgedev, 0xTheC0der, 0xTiwa, 0xWaitress, 0xdice91, 0xfusion, 0xpiken, 0xprinc, 0xweb3boy, ArmedGoose, Aymen0909, Breeje, Brenzee, Daniel526, DavidGiladi, DeFiHackLabs, Flora, Fulum, HChang26, Hama, IceBear, J4X, Krace, KrisApostolov, Maroutis, Mirror, MohammedRizwan, Norah, PwnStars, SPYBOY, TangYuanShen, Testerbot, ThreeSigma, Tricko, al88nsk, alexweb3, ast3ros, berlin-101, bin2chen, blutorque, btk, d3e4, deth, e0d1n, ether_sky, ge6a, gkrastenov, glcanvas, hals, imare, inzinko, jkoppel, jnforja, joaovwfreire, josephdara, kutugu, lotux, lsaudit, mahdirostami, merlin, n1punp, nadin, neumo, nisedo, nobody2018, oakcobalt, orion, peanuts, pep7siup, pina, ptsanev, rokinot, rvierdiiev, said, santipu_, sashik_eth, seerether, squeaky_cactus, terrancrypt, tonisives, twicek, vagrant, xAriextz, y4y
62.2092 USDC - $62.21
The function initializeTokens()
is used to initalize tokens y setting their lastAccruedBlock through the internal _initializeToken()
. However this is an issue because it does not set the distribution speed which is a necessity for each tokens being initialized.
In the _setTokenDistributionSpeed()
we see that it accrues the token using a distributionSpeed of zero up to that point, no matter the amount of blocks which have passed. Which is why in the initialize
function, it calls both _initializeToken()
and _setTokenDistributionSpeed()
at the same time .
/** * @notice Initialize the distribution of the token * @param tokens_ Array of addresses of the tokens to be intialized * @custom:access Only Governance */ //@audit initialize TOkens does not initialize the token distribution speed function initializeTokens(address[] calldata tokens_) external onlyOwner { for (uint256 i; i < tokens_.length; ) { _initializeToken(tokens_[i]); unchecked { ++i; } } }
Manual Review
Set the distribution speed in the initializeTokens()
function to avoid loss of accural blocks.
Other
#0 - 0xRobocop
2023-10-04T23:34:17Z
QA
#1 - c4-pre-sort
2023-10-04T23:34:24Z
0xRobocop marked the issue as low quality report
#2 - c4-pre-sort
2023-10-04T23:35:00Z
0xRobocop marked the issue as primary issue
#3 - c4-judge
2023-10-31T19:05:16Z
fatherGoose1 changed the severity to QA (Quality Assurance)
#4 - fatherGoose1
2023-10-31T19:06:47Z
Agree with QA. Unlikely, and the affected users APR would reflect 0%, raising suspicion to the issue.