DittoETH

Ditto
DeFiFoundryOracle
55,000 USDC
View results
Submission Details
Severity: low
Invalid

`require()` should be used instead of `assert()`

Summary

require() should be used instead of assert()

Vulnerability Details

Prior to solidity version 0.8.0, hitting an assert consumes the ** remainder of the transaction's available gas** rather than returning it, as require() / revert() do. assert() should be avoided even past solidity version 0.8.0 as itsdocumentation states that "The assert function creates an error of type Panic(uint256). ... Properly functioning code should never create a Panic, not even on invalid external input. If this happens, then there is a bug in your contract which you should fix".

File: contracts/bridges/BridgeReth.sol
106: assert(sent);

Link to code

File: contracts/facets/MarginCallSecondaryFacet.sol
87: assert(tokenContract.balanceOf(msg.sender) < walletBalance);

Link to code

File: contracts/libraries/LibAsset.sol
16: assert(tokenContract.balanceOf(msg.sender) < walletBalance);

Link to code

Impact

Tools Used

Manual

Recommendations

require() should be used instead of assert()

Updates

Lead Judging Commences

0xnevi Lead Judge
over 1 year ago
0xnevi Lead Judge over 1 year ago
Submission Judgement Published
Invalidated
Reason: Gas optimizations

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.