- Replace instance-based EventParser with static method design
- Introduce ParserCache module for protocol config caching
- Simplify EventProcessor to pure functional handlers
- Optimize metrics: remove min/max tracking, keep last + avg only
- Reduce atomic operations in hot path for better performance
- 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
modernize dependencies
- Upgrade all Solana SDK dependencies
from v2.3.x to v3.0.0
- Update yellowstone-grpc dependencies
from v8.0.0 to v9.0.0
- Upgrade tonic from v0.12.3 to
v0.14.2 with transport features
- Update prost and prost-types to
v0.14.1
- Add solana-commitment-config and
tonic-prost dependencies
- Migrate from solana-sdk::instruction
to message::compiled_instruction
- Update imports for SPL token pack
compatibility
- Fix type compatibility issues with
new gRPC and protobuf versions
- Regenerate proto files with updated
codegen and server implementations
- Introduce EventSource enum (Grpc, Shred) for better event source management
- Refactor start_block_processing_thread to conditionally spawn threads based on source type
- Update callers to specify event source type
Replace slot-based storage with signature-based storage in GlobalState
for improved transaction-level precision and developer address tracking.
- Update GlobalState structure and APIs
- Modify event processors to use transaction signatures
- Maintain lock-free performance characteristics
- Support multiple transaction/account filters as vectors
- Add Token2022 extended state parsing
- Add pumpswap pool monitoring example
- Enhance AccountFilter with memcmp filters
BREAKING CHANGE: API signature changes for subscription methods
- Rename CommonAccountEvent to TokenAccountEvent for better semantic clarity
- Rename AccountNonce to NonceAccount for consistent naming convention
- Add MintInfoEvent type to support SPL Token Mint account parsing
- Enhance parse_token_account_event to automatically detect and parse Mint accounts
- Update all example code to use new event types and structures
- Improve event type semantics for better developer experience
- feat(examples): add nonce_listen_example for nonce account tracking
- feat(examples): add token_balance_listen_example for balance monitoring
- feat(parser): implement NonceAccountEvent with nonce state parsing
- feat(types): add AccountNonce event type to filtering system
- docs: update README with new monitoring examples
- chore: bump version to 0.4.2
- Split main.rs into focused grpc_example.rs and shred_example.rs
- Add example overview table and dynamic subscription docs
- Improve documentation structure and user experience
- Add requires_inner_instruction field to GenericEventParseConfig
- Skip events that require but lack inner instruction data during processing
- Set PumpFun migrate events to require inner instructions (prevents parsing failed migrations)