Platform: Code4rena
Start Date: 12/12/2022
Pot Size: $36,500 USDC
Total HM: 8
Participants: 103
Period: 7 days
Judge: berndartmueller
Id: 193
League: ETH
Rank: 29/103
Findings: 1
Award: $184.33
🌟 Selected for report: 0
🚀 Solo Findings: 0
184.3311 USDC - $184.33
https://github.com/code-423n4/2022-12-caviar/blob/main/src/LpToken.sol#L13 https://github.com/code-423n4/2022-12-caviar/blob/main/src/Pair.sol#L46 https://github.com/code-423n4/2022-12-caviar/blob/main/src/Pair.sol#L20
Note: Though it is mentioned that Rebase/fee-on-transfer tokens are not expected, however there exist other ERC20 tokens having different decimals than 18
Contracts LpToken
and Pair
performs calculations by using hardcoded value of decimals 18
 (1e18) for ERC20 tokens. This could break the logic and would provide unexpected results throughout the contract on using ERC20 tokens with different decimals than 18
. Example of such a token is  Gemini USD only have 2 decimals, YAM-V2
 has 24 decimals.
Hardcoded decimal value of 18 being used:
https://github.com/code-423n4/2022-12-caviar/blob/main/src/Pair.sol
20: uint256 public constant ONEÂ = 1e18; 46: ERC20(string.concat(nftName, " fractional token"), string.concat("f", nftSymbol), 18)
https://github.com/code-423n4/2022-12-caviar/blob/main/src/LpToken.sol#L13
13: ERC20(string.concat(pairSymbol, " LP token"), string.concat("LP-", pairSymbol), 18)
It is recommended to add support for different number of decimals than 18
 by dynamically checking decimals()
 for the tokens that are part of the rewards calculations. Alternatively if such a support is not needed, new require statements should be added to addPool
 that will be checking that the number of decimals for all ERC20 tokens is 18
.
#0 - iFrostizz
2022-12-19T20:58:48Z
The 18 decimals token mentioned is the LP token. There is no evidence of issues regarding tokens using another amount of decimals, as the LP tokens value is arbitrary.
#1 - c4-judge
2022-12-28T09:35:18Z
berndartmueller marked the issue as duplicate of #53
#2 - c4-judge
2023-01-10T09:31:17Z
berndartmueller marked the issue as satisfactory
#3 - C4-Staff
2023-01-25T12:23:07Z
CloudEllie marked the issue as duplicate of #141