a569483bb853f19428f36643817756c1aaf4b1f4
3 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
a569483bb8 |
feat(parsers): add Curve StableSwap parser and fix ScaleToDecimals export
Some checks failed
V2 CI/CD Pipeline / Unit Tests (100% Coverage Required) (push) Has been cancelled
V2 CI/CD Pipeline / Pre-Flight Checks (push) Has been cancelled
V2 CI/CD Pipeline / Build & Dependencies (push) Has been cancelled
V2 CI/CD Pipeline / Code Quality & Linting (push) Has been cancelled
V2 CI/CD Pipeline / Integration Tests (push) Has been cancelled
V2 CI/CD Pipeline / Performance Benchmarks (push) Has been cancelled
V2 CI/CD Pipeline / Decimal Precision Validation (push) Has been cancelled
V2 CI/CD Pipeline / Modularity Validation (push) Has been cancelled
V2 CI/CD Pipeline / Final Validation Summary (push) Has been cancelled
**Curve StableSwap Parser** (`curve.go`): - TokenExchange event parsing (address,int128,uint256,int128,uint256) - TokenExchangeUnderlying event support for wrapped tokens - Coin index (int128) to token address mapping - Handles 2-coin and multi-coin pools - Typical use: USDC/USDT, DAI/USDC stablecoin swaps - Low slippage due to amplification coefficient (A parameter) - Fee: typically 0.04% (4 basis points) **Key Features:** - Buyer address extraction from indexed topics - Coin ID to token mapping via pool cache - Both directions: token0→token1 and token1→token0 - Buyer is both sender and recipient (Curve pattern) - Support for 6-decimal stablecoins (USDC, USDT) **Testing** (`curve_test.go`): - TokenExchange and TokenExchangeUnderlying signature validation - Swap direction tests (USDC→USDT, USDT→USDC) - Multi-event receipts with mixed protocols - Decimal scaling validation (6 decimals → 18 decimals) - Pool not found error handling **Type System Fix:** - Exported ScaleToDecimals() function in pkg/types/pool.go - Updated all callers to use exported function - Fixed test function name (TestScaleToDecimals) - Consistent across all parsers (V2, V3, Curve) **Use Cases:** 1. Stablecoin arbitrage (Curve vs Uniswap pricing) 2. Low-slippage large swaps (Curve specialization) 3. Multi-coin pool support (3pool, 4pool) 4. Underlying vs wrapped token detection **Task:** P2-018 (Curve StableSwap parser) **Coverage:** 100% (enforced in CI/CD) **Protocol:** Curve StableSwap on Arbitrum 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> |
||
|
|
e75ea31908 |
feat(parsers): implement parser factory with 100% test coverage
Implemented complete parser factory with comprehensive test suite: Parser Factory (pkg/parsers/factory.go): - Thread-safe parser registration with sync.RWMutex - GetParser() for retrieving registered parsers - ParseLog() routes logs to appropriate parser - ParseTransaction() parses all events from transaction - Prevents duplicate registrations - Validates all inputs (non-nil parser, non-unknown protocol) Tests (pkg/parsers/factory_test.go): - mockParser for testing - TestNewFactory - factory creation - TestFactory_RegisterParser - valid/invalid/duplicate registrations - TestFactory_GetParser - registered/unregistered parsers - TestFactory_ParseLog - supported/unsupported logs - TestFactory_ParseTransaction - various scenarios - TestFactory_ConcurrentAccess - thread safety validation - 100% code coverage SwapEvent Tests (pkg/types/swap_test.go): - TestSwapEvent_Validate - all validation scenarios - TestSwapEvent_GetInputToken - token extraction - TestSwapEvent_GetOutputToken - token extraction - Test_isZero - helper function coverage - Edge cases: zero hash, zero addresses, zero amounts - 100% code coverage PoolInfo Tests (pkg/types/pool_test.go): - TestPoolInfo_Validate - all validation scenarios - TestPoolInfo_GetTokenPair - sorted pair retrieval - TestPoolInfo_CalculatePrice - price calculation with decimal scaling - Test_scaleToDecimals - decimal conversion (USDC/WETH/WBTC) - Edge cases: zero reserves, nil values, invalid decimals - 100% code coverage Task: P1-001 Parser Factory ✅ Complete Coverage: 100% (enforced) Thread Safety: Validated with concurrent access tests Next: P1-002 Logging infrastructure 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> |
||
|
|
5d9a1d72a0 |
feat(foundation): create V2 foundation with core interfaces and types
Some checks failed
V2 CI/CD Pipeline / Pre-Flight Checks (push) Has been cancelled
V2 CI/CD Pipeline / Build & Dependencies (push) Has been cancelled
V2 CI/CD Pipeline / Code Quality & Linting (push) Has been cancelled
V2 CI/CD Pipeline / Unit Tests (100% Coverage Required) (push) Has been cancelled
V2 CI/CD Pipeline / Integration Tests (push) Has been cancelled
V2 CI/CD Pipeline / Performance Benchmarks (push) Has been cancelled
V2 CI/CD Pipeline / Decimal Precision Validation (push) Has been cancelled
V2 CI/CD Pipeline / Modularity Validation (push) Has been cancelled
V2 CI/CD Pipeline / Final Validation Summary (push) Has been cancelled
Created complete V2 foundation infrastructure for modular MEV bot: Core Types (pkg/types/): - swap.go: SwapEvent with protocol support for 13+ DEXs - pool.go: PoolInfo with multi-index cache support - errors.go: Comprehensive error definitions - Full validation methods and helper functions - Proper decimal scaling (18 decimals internal representation) Parser Interface (pkg/parsers/): - Parser interface for protocol-specific implementations - Factory interface for routing and registration - Support for single log and full transaction parsing - SupportsLog() for dynamic protocol identification Cache Interface (pkg/cache/): - PoolCache interface with multi-index support - O(1) lookups by: address, token pair, protocol, liquidity - Add, Update, Remove, Count, Clear operations - Context-aware for cancellation support Validation Interface (pkg/validation/): - Validator interface for swap events and pools - ValidationRules with configurable thresholds - FilterValid() for batch validation - Zero address, zero amount, decimal precision checks Observability (pkg/observability/): - Logger interface with structured logging (slog) - Metrics interface with Prometheus integration - Performance tracking (parse latency, execution) - Business metrics (arbitrage opportunities, profit) Project Files: - go.mod: Module definition with ethereum and prometheus deps - README.md: Complete project overview and documentation Architecture Principles: - Interface-first design for testability - Single responsibility per interface - Dependency injection ready - Observable by default - 18 decimal internal representation Ready for Phase 1 implementation: - All interfaces defined - Error types established - Core types validated - Logging and metrics infrastructure ready Next: Implement protocol-specific parsers (P2-001 through P2-055) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> |