The Early Adopter Pool calculates TVL by aggregating all the LSD , including native token through getContractTVL(). This is quite inaccurate because each LSD is not of equal value to each other. Some are rebasing tokens and some are non-rebasing, which means that the value of some LSD will grow.
For example, 1 rETH is about 1.09 ETH, so if a user has 1 rETH and 1 ETH in the pool, he actually has 2.09 ETH in value in the pool, and not 2 ETH as per the protocol calculations.
Attachments
The contract simply aggregates all the balances into one TVL, which is pretty inaccurate.
Github username: -- Submission hash (on-chain): 0xedbf2333fae3446e2e19f2fd3d0492058e48f639b4685c16400e2d25fd5322cd Severity: low
Description: Description\
The Early Adopter Pool calculates TVL by aggregating all the LSD , including native token through getContractTVL(). This is quite inaccurate because each LSD is not of equal value to each other. Some are rebasing tokens and some are non-rebasing, which means that the value of some LSD will grow.
For example, 1 rETH is about 1.09 ETH, so if a user has 1 rETH and 1 ETH in the pool, he actually has 2.09 ETH in value in the pool, and not 2 ETH as per the protocol calculations.
Attachments
The contract simply aggregates all the balances into one TVL, which is pretty inaccurate.
https://github.com/hats-finance/ether-fi-0x36c3b77853dec9c4a237a692623293223d4b9bc4/blob/180c708dc7cb3214d68ea9726f1999f67c3551c9/src/EarlyAdopterPool.sol#L282
Recommendation
Recommend using an oracle to count the ETH Value of each derivative before aggregating them.