Skip to content

Fix contract flaws (LP trap / msg.sender + oracle mismatch)#2

Open
0xJonHoldsCrypto wants to merge 1 commit intohemilabs:mainfrom
0xJonHoldsCrypto:pr/contracts-only
Open

Fix contract flaws (LP trap / msg.sender + oracle mismatch)#2
0xJonHoldsCrypto wants to merge 1 commit intohemilabs:mainfrom
0xJonHoldsCrypto:pr/contracts-only

Conversation

@0xJonHoldsCrypto
Copy link

Fixed issues with msg.sender implementation crediting the proxy contract with the LP deposit resulting in an LP trap. Also, the oracle was referencing the quote token in the improper order A/B - fixed for B/A to match Uniswap method.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes two critical contract flaws: (1) an LP trap issue where liquidity providers' shares were incorrectly credited to the router contract instead of the user, and (2) an oracle price calculation error where the token ratio was inverted (A/B instead of B/A) in the Uniswap V3 TWAP adapter.

Key changes:

  • Added receiver parameter to addLiquidity function to enable explicit control over LP share ownership
  • Refactored oracle price calculation logic to properly handle token ordering and price inversion
  • Updated interface definitions to maintain consistency across contracts

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

File Description
contracts/FpmmAMM.sol Added receiver parameter to addLiquidity function and updated LP share crediting logic to use receiver instead of msg.sender
contracts/SimpleRouter.sol Updated addLiquidity call to pass msg.sender as receiver parameter, ensuring LP shares go to the user instead of the router
contracts/UniV3EthUsdTwapOracleAdapter.sol Rewrote price calculation logic to correctly handle token0/token1 ordering and properly compute price ratios with decimal adjustments

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants