code-423n4 / 2022-01-trader-joe-findings

2 stars 0 forks source link

Gas Optimization: `> 0` is less efficient than `!= 0` for uint in require condition #283

Closed code423n4 closed 2 years ago

code423n4 commented 2 years ago

Handle

gzeon

Vulnerability details

Impact

> 0 is less gas efficient than != 0 for uint in require condition when optimizer is enabled Ref: https://twitter.com/GalloDaSballo/status/1485430908165443590

Proof of Concept

$ grep -R -n -i "> 0" ./contracts/ ./contracts/LaunchEvent.sol:314: msg.value > 0, ./contracts/LaunchEvent.sol:355: require(_amount > 0, "LaunchEvent: invalid withdraw amount"); ./contracts/LaunchEvent.sol:390: require(wavaxReserve > 0, "LaunchEvent: no wavax balance"); ./contracts/LaunchEvent.sol:486: require(amount > 0, "LaunchEvent: caller has no incentive to claim"); ./contracts/LaunchEvent.sol:498: user.balance > 0, ./contracts/RocketJoeFactory.sol:119: _tokenAmount > 0,

cryptofish7 commented 2 years ago

Duplicate of #240