Payouts
2nd Places
Top 10
Top 25
All
Code4rena
CodeHawks
Apr '24
Mar '24
Feb '24
Jan '24
Oct '23
Sep '23
Aug '23
Jul '23
high
Fee on transfer tokens will cause users to lose funds
medium
Single-step process for critical ownership transfer is risky
medium
Pragma non-specification can lead to non-functional / corrupted contract when deployed on Arbitrum
medium
Some ERC20 tokens would revert on zero value fee transfers.
low
Zero address leads to transaction reverts
low
Missing Events Emitting
low
Rounding error risk in borrow() function in Lender.sol
gas
`Staked` struct is created but never used
gas
Multiple accesses of a mapping/array should use a local variable cache.
gas
+= and -= are more expensive
gas
Uncheck Arithmetic where overflow/underflow impossible
gas
Using Private Rather Than Public For Constants,Saves Gas
gas
Use of magic numbers
gas
Named parameter mappings
gas
For the borrow(), repay() & startAuction() functions in Lender.sol the public visibility modifiers should be changed to external, to help optimize gas usage
gas
Use assembly to check for `address(0)`
gas
caching variable of struct in one slot
gas
NatSpec documentation for function is missing
gas
Large multiples of ten should use scientific notation
gas
Constants in comparisons should appear on the left side
gas
Floating pragma in all contracts
gas
Use if + custom errors instead of using require + string
gas
Don't initialize `uint/int` variables with default value
gas
Unbounded loop in Lender.sol functions may revert.
gas
Function ordering does not follow the Solidity style guide
gas
abi.encode(..) is less efficient
gas
All interfaces must be in one folder
gas
Using delete statement can save gas
gas
Long functions should be refactored into multiple, smaller, functions
gas
Interfaces should be indicated with an `I` prefix in the contract name
gas
Use assembly to emit an event
gas
Use do while loops instead of for loops.
16.14 USDC • 5 total findings • CodeHawks • Rolezn
#67
medium
[H-01] Lack of emergency withdraw function when no arbiter is set
low
Constructor of `Escrow` should make sure that `buyer`, `seller`, `arbiter` are different from each other.
gas
The `nonReentrant` `modifier` should occur before all other modifiers
gas
NatSpec `@param` is missing
gas
NatSpec `@return` argument is missing
Jun '23
May '23
Apr '23
Mar '23
Feb '23
Jan '23
Dec '22
high
Inflation of ggAVAX share price by first depositor
medium
Users may not be able to redeem their shares due to underflow
medium
wrong reward distribution between early and late depositors because of the late syncRewards() call in the cycle, syncReward() logic should be executed in each withdraw or deposits (without reverting)
Nov '22
medium
Front-running admin setPrice call allows a single compromised oracle to set any price, allowing the oracle manipulator to drain all protocol funds
medium
During oracle outages or feeder outages/disagreement, the `ParaSpaceFallbackOracle` is not used
medium
Centralization risk: admin can with rug the project by removing asset and price manipulation on oracle.
Oct '22
Sep '22
Aug '22
Jul '22
May '22