PumpFun and PumpSwap have additional buy instruction variants that were not being parsed:
- PumpFun: `buy_exact_sol_in` (discriminator: [56, 252, 116, 8, 158, 223, 205, 95])
- PumpSwap: `buy_exact_quote_in` (discriminator: [198, 46, 21, 82, 180, 217, 232, 112])
These discriminators are from the official PumpFun IDL:
https://github.com/pump-fun/pump-public-docs/tree/main/idl
Without this fix, approximately 4-5% of trades were being missed.
- Convert UnifiedEvent from trait object (Box<dyn UnifiedEvent>) to concrete enum type
- Remove match_event! macro in favor of native match expressions
- Simplify event metadata access: event.event_type() -> event.metadata().event_type
- Unify event callback signatures: Fn(Box<dyn UnifiedEvent>) -> Fn(UnifiedEvent)
- Update all example code to use the new enum-based event system
- Optimize type system to reduce runtime overhead and improve type safety
Affected scope:
- Core event parser and processor
- All protocol event definitions (PumpFun, PumpSwap, Bonk, Raydium series, etc.)
- gRPC and Shred streaming modules
- All example code
- Add account event parser (account_event_parser.rs) for account-level event handling
- Introduce type definitions for pumpfun, pumpswap, raydium_amm_v4, raydium_clmm, raydium_cpmm protocols
- Enhance event processor to support account event processing alongside transactions
- Improve subscription system with separate transaction and account filters
- Optimize parser configuration using Option types for cleaner code structure
- Update examples and documentation to reflect new capabilities
Changes include:
- 6 new types.rs files for protocol-specific data structures
- Updated event processor for account, transaction, and block meta events
- Refactored subscription manager with account filtering support
- Enhanced metrics and batch processing logic
- Bump version from 0.1.7 to 0.1.8
- Update version references in README.md and README_CN.md
- Add global_volume_accumulator and user_volume_accumulator fields to PumpFunTradeEvent
- Fix account index mapping in trade parser (creator_vault index adjusted from 8 to 9)
This update introduces volume accumulator support for PumpFun protocol event parsing,
aligning with the latest protocol account structure changes.