code-423n4 / 2023-12-autonolas-findings

3 stars 3 forks source link

Gas Optimizations #113

Open c4-bot-9 opened 11 months ago

c4-bot-9 commented 11 months ago

See the markdown file with the details of this report here.

c4-pre-sort commented 10 months ago

alex-ppg marked the issue as sufficient quality report

c4-judge commented 10 months ago

dmvt marked the issue as grade-b

sathishpic22 commented 10 months ago

Hi @dmvt

Thank you for your prompt evaluation.

I would like to express my concern regarding the assessment of my reports. I am confident in the validity and high quality of my findings, which, as demonstrated, contribute significantly to gas savings. Additionally, my reports consistently highlight low-impact findings more extensively than others.

However, I have noticed that reports receiving an 'A' grade seem to encompass fewer impactful findings and often overlook instances from bot races. It appears that there is a tendency to disregard certain findings in these evaluations.

I firmly believe that a more thorough review of my submissions will reveal their substantial value and alignment with our objectives. I appreciate your attention to this matter and look forward to any feedback that could further enhance the quality of my work.

[G-1] manager and _locked state variables can be packed within same slot : Saves 2000 GAS , 1 SLOT

[G-2] IVotingEscrow(ve).getVotes(donator) >= veOLASThreshold check is redundant

This finding will saves 1 external call for even iterations and saves 2100 GAS for each iterations.

[G-3] nextEpochLen , nextVeOLASThreshold storage variables should be cached - Saves 400 GAS and 4 SLOD

[G-4] lastPointNumber - 1 subtraction can be unchecked - Saves 100-200 GAS After unchecked

[G-5] Optimize the _verifyData() function for better gas efficiency

[G-6] Cache _timeLaunch + ONE_YEAR computation to optimize gas - Saves 2 redundant computations and saves 1000 GAS

[G-7] eBond -= amount subtraction can be unchecked

[G-8] Caching the Result of Typecasting uint32(_epochLen) to avoid repetitive typecasting

[G-9] Don't Cache state variables only used once

[G-10] owner storage variable should be cached with stack variable - Saves 500 GAS , 5 SLOD

[G-11] tokenomics storage variable should be cached with stack variable

[G-12] epsilonRate and timeLaunch storage variable should be cached with stack variable

[G-13] Don't cache external calls only used once

[G-14] Use assembly for back to back external calls

[G-15] Use efficient Compounded Inflation Calculations in getSupplyCapForYear() function could be more gas efficient

[G-16] Optimize getCurrentPriceLP for better gas efficiency

[G-17] !matured this check is redundant inside the for loop

I respectfully request a re-evaluation of my reports. Based on the depth and quality of my findings, I am confident that they merit a higher grade than currently assigned.

I appreciate the opportunity to present my perspective on this matter and am eager to engage in further discussions to clarify any aspects of my work. Your consideration of this request is greatly valued.

Thank you

dmvt commented 10 months ago

While I appreciate your effort, gas reports are graded on a curve. I start by disregarding any issue that doesn't state how much gas will be saved. Without this metric, it takes more trouble than it's worth for the sponsor to evaluate. Sometimes this can be overridden by extremely detailed descriptions, but very infrequently. Your report had 6 valid issue under this metric. On the curve of all valid reports, this makes yours a B in this contest.