From a328dc510bf5fc92b091d890918132cbff295bb7 Mon Sep 17 00:00:00 2001 From: garykocsis Date: Wed, 10 Jun 2026 11:37:14 -0400 Subject: [PATCH] docs: add fee currency reconciliation to mainnet roadmap Documents the ETH/USDC fee-currency mismatch as a known mainnet hardening item: the buffer is USDC-denominated, but swap fees accrue in ETH or USDC by direction. MVP seeds real USDC via seedBuffer(); mainnet needs native fee collection + ETH->USDC conversion so bufferBalanceStable reflects actual payable reserves. Co-Authored-By: Claude Opus 4.8 (1M context) --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index a8d269dd..8487700a 100644 --- a/README.md +++ b/README.md @@ -399,6 +399,16 @@ Both pitfalls were diagnosed from on-chain state and are now documented as manda - [ ] **`DemoLPRouter.sol` hardening:** Add ERC20 transfer return-value checks (currently unchecked — acceptable for MockUSDC testnet demo, not production-ready). +- [ ] **Fee currency reconciliation:** The coverage buffer is denominated + in USDC (token1) but swap fees in an ETH/USDC pool are generated + in either USDC or ETH depending on swap direction. The MVP handles + this by seeding the buffer with real USDC via `seedBuffer()` and + accounting for fee contributions in USDC terms — but ETH-denominated + fees do not automatically create spendable USDC. A mainnet + implementation requires native fee collection plus ETH→USDC + conversion (e.g. via a Uniswap swap or Chainlink price feed) so + that `bufferBalanceStable` always reflects actual payable USDC + reserves rather than notional value. ### Phase 3 — Production