Biconomy Hyphen 2.0 contest - 0v3rf10w's results

Next-Gen Multichain Relayer Protocol.

General Information

Platform: Code4rena

Start Date: 10/03/2022

Pot Size: $75,000 USDT

Total HM: 25

Participants: 54

Period: 7 days

Judge: pauliax

Total Solo HM: 10

Id: 97

League: ETH

Biconomy

Findings Distribution

Researcher Performance

Rank: 44/54

Findings: 2

Award: $178.67

🌟 Selected for report: 0

🚀 Solo Findings: 0

Awards

118.9444 USDT - $118.94

Labels

bug
QA (Quality Assurance)

External Links

L-01:

missing zero checks in initialize for liquidityFarming.sol but present in initialize for LiquidityPool.sol missing zero checks in for baseToken in function _sendRewardsForNft in LiquidityFarming.sol

NA-01:

spelling error in calculate below

whiteListPeriodManager.beforeLiquidityRemoval(_msgSender(), _tokenAddress, _amount) // Claculate how much shares represent input amount uint256 lpSharesForInputAmount = _amount * getTokenPriceInLPShares(_tokenAddress);

LiqduidityProviders.sol #L357

Awards

59.7296 USDT - $59.73

Labels

bug
G (Gas Optimization)

External Links

G-01:

change solidity version to a better version 0.8.10 to get various improvements available in the compiler

G-02:

declare functions external to save gas

G-03:

use custom strings or errors, instead of long revert strings

G-04:

instead of conditional statements && in single require() in liquiditpool.sol L#156, using double require check can save more gas

G-05:

replace > with != for unsigned integers e.g. LiquidityFarming.sol #L322, LiquidityProviders.sol #L182,#L239, #L283, #L410

G-06:

prefer uint256 for gas savings instead of uint8, uint128 below LiquidityPool.sol #L32 and #L119

G-07:

use of unchecked similar to ( Liquidityfarming.sol ,LiquidityProviders.sol #L217 ) in LiquidityPool.sol and others It not only checks for potential overflow but also saves gas.

G-08:

Booleans are more expensive than uint256 or any type that takes up a full word because each write operation emits an extra SLOAD to first read the slot's contents, replace the bits taken up by the boolean, and then write back. This is the compiler's defense against contract upgrades and pointer aliasing, and it cannot be disabled

#0 - pauliax

2022-05-09T08:37:24Z

Very abstract recommendations, no exact improvements mentioned.

AuditHub

A portfolio for auditors, a security profile for protocols, a hub for web3 security.

Built bymalatrax © 2024

Auditors

Browse

Contests

Browse

Get in touch

ContactTwitter