fix(multicall): resolve critical multicall parsing corruption issues
- Added comprehensive bounds checking to prevent buffer overruns in multicall parsing - Implemented graduated validation system (Strict/Moderate/Permissive) to reduce false positives - Added LRU caching system for address validation with 10-minute TTL - Enhanced ABI decoder with missing Universal Router and Arbitrum-specific DEX signatures - Fixed duplicate function declarations and import conflicts across multiple files - Added error recovery mechanisms with multiple fallback strategies - Updated tests to handle new validation behavior for suspicious addresses - Fixed parser test expectations for improved validation system - Applied gofmt formatting fixes to ensure code style compliance - Fixed mutex copying issues in monitoring package by introducing MetricsSnapshot - Resolved critical security vulnerabilities in heuristic address extraction - Progress: Updated TODO audit from 10% to 35% complete 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
102
docs/master-plan/05-curve-integration.md
Normal file
102
docs/master-plan/05-curve-integration.md
Normal file
@@ -0,0 +1,102 @@
|
||||
# Curve Integration Plan
|
||||
|
||||
## Overview
|
||||
|
||||
This document outlines the implementation plan for Curve exchange support in the MEV bot. Curve specializes in stablecoin and pegged-asset swaps with low slippage and low fees.
|
||||
|
||||
## Contract Architecture
|
||||
|
||||
### Core Contracts
|
||||
- Main Registry: `0x7D86446dDb609eD0F5f8684AcF3037Ffb6149cC6`
|
||||
- Factory Registry: `0xF1815bdCbcC67D79Cbb7B3C7b2E6d9992E6C1e86`
|
||||
- Router: `0x8474DdbE98F5aC77e0C38b3C97ad441436D69d2C`
|
||||
- Exchange Proxy: `0xD152CC3E6A9Ca3Cd5085767eD16a8921152B6867`
|
||||
|
||||
### Pool Types
|
||||
- StableSwap pools (3pool, 4pool, etc.)
|
||||
- CryptoSwap pools (tricrypto, etc.)
|
||||
- MetaStable pools
|
||||
- Lending pools
|
||||
- Factory pools
|
||||
|
||||
## Core Functions
|
||||
|
||||
### Swap Functions
|
||||
- `exchange` (basic swap)
|
||||
- `exchange_underlying` (swap underlying assets)
|
||||
- `get_dy` (calculate output without executing)
|
||||
- `get_dx` (calculate input without executing)
|
||||
- `exchange_extra` (swap with additional features)
|
||||
|
||||
### Pool Management
|
||||
- `add_liquidity`
|
||||
- `remove_liquidity`
|
||||
- `remove_liquidity_one_coin`
|
||||
- `calc_token_amount` (estimate LP token amount)
|
||||
- `calc_withdraw_one_coin` (estimate withdrawal amount)
|
||||
|
||||
### Pool-Specific Functions
|
||||
- Pool-specific swap functions for different curve types
|
||||
- Virtual price calculations
|
||||
- Fee distribution functions
|
||||
- Pool parameter modifications
|
||||
|
||||
## Implementation Steps
|
||||
|
||||
1. Create Curve struct implementing the Exchange interface
|
||||
2. Implement adapter for different pool types
|
||||
3. Handle curve's unique pricing mechanism (constant function AMM optimized for similar assets)
|
||||
4. Implement multi-hop swaps between different pool types
|
||||
5. Add support for underlying asset swaps
|
||||
6. Implement virtual price calculations
|
||||
7. Add support for factory-deployed pools
|
||||
8. Create pool discovery and indexing functions
|
||||
|
||||
## Pricing Mechanisms
|
||||
|
||||
### Curve-Specific Pricing
|
||||
- Use Curve's mathematical formula for stablecoin swaps
|
||||
- Account for amplification coefficient (A)
|
||||
- Consider fee structure (dynamic based on trade size)
|
||||
- Handle different pool types with varying parameters
|
||||
- Calculate virtual price for accurate pricing
|
||||
|
||||
### Multi-Asset Pools
|
||||
- Support for pools with 2, 3, 4+ assets
|
||||
- Handle asymmetric deposits/withdrawals
|
||||
- Calculate effective rates between different asset pairs
|
||||
|
||||
## Testing Plan
|
||||
|
||||
1. Unit tests for stablecoin swap functions
|
||||
2. Testing with different amplification coefficients
|
||||
3. Virtual price calculation verification
|
||||
4. Multi-asset pool testing
|
||||
5. Factory pool integration tests
|
||||
6. Edge case testing (extreme amounts, pool imbalance)
|
||||
7. Price accuracy verification across different pool types
|
||||
8. Gas optimization testing
|
||||
|
||||
## Performance Considerations
|
||||
|
||||
- Optimize for low slippage stablecoin swaps
|
||||
- Cache pool parameters to reduce external calls
|
||||
- Implement efficient multi-hop routing
|
||||
- Consider pool liquidity depth for trade execution
|
||||
- Batch operations where possible
|
||||
|
||||
## Security Considerations
|
||||
|
||||
- Validate curve pool addresses and parameters
|
||||
- Implement proper slippage protection despite low slippage
|
||||
- Handle emergency pause functions
|
||||
- Verify gauge contracts for liquidity mining
|
||||
- Sanitize data from external curve contracts
|
||||
|
||||
## Integration with MEV Bot
|
||||
|
||||
- Identify curve-specific arbitrage opportunities
|
||||
- Monitor stablecoin pools for profitable swaps
|
||||
- Track meta-stable pools for cross-chain opportunities
|
||||
- Include lending pools in yield farming strategies
|
||||
- Coordinate with other exchanges for maximum profit
|
||||
Reference in New Issue
Block a user