Platform: Code4rena
Start Date: 09/07/2021
Pot Size: $25,000 USDC
Total HM: 7
Participants: 10
Period: 3 days
Judge: ghoulsol
Total Solo HM: 2
Id: 19
League: ETH
Rank: 7/10
Findings: 2
Award: $656.64
🌟 Selected for report: 1
🚀 Solo Findings: 0
402.1396 USDC - $402.14
s1m0
In that block of code there are 2 external call inside a try/catch statements. In both the catch the toSend amount is transferred to the fallback receiver address effectively transferring twice if the 2 external call fail.
In the fulfill() function the fallback receiver address could get twice the toSend amount.
Manual analysis.
A possible mitigation would be to return in the 1 catch and revert in the 2 catch. Consider if make sense to emit a new Event in the catch.
#0 - LayneHaber
2021-07-12T19:41:51Z
#46
🌟 Selected for report: s1m0
224.978 USDC - $224.98
s1m0
The following variables are being assigned their default value so it's not needed.
Manual Analysis
Remove the assignments for saving a bit of gas when deploying.
#0 - LayneHaber
2021-07-13T17:39:35Z
We are taking out the loop in favor of the EnumerableSet
from OpenZeppelin
29.5216 USDC - $29.52
s1m0
Multiple require() are not needed because the constraints are implicitly checked when doing the mathematical operation in solidity > 0.8.0
Manual analysis
Consider removing those require() to save some gas unless you need to revert with specific messages.
#0 - LayneHaber
2021-07-13T17:35:26Z
#74