Commit Graph

205 Commits

Author SHA1 Message Date
ysq 2b8f42bc1e perf: remove unnecessary clones in EventParser 2025-10-12 23:44:19 +08:00
ysq d5fc686664 refactor: optimize EventParser with idiomatic Rust patterns 2025-10-12 23:01:13 +08:00
ysq f85581ec61 refactor: upgrade to v1.0.0 with enum-based event architecture 2025-10-12 22:38:50 +08:00
ysq f2802a5a59 Merge commit 'fd180935f8619362fb852918ac686e9b94fa03a4' 2025-10-12 22:12:21 +08:00
ysq fd180935f8 refactor: rename UnifiedEvent to DexEvent 2025-10-12 22:00:15 +08:00
ysq e21f2cfd17 refactor: convert EventParser to static methods and optimize caching
- 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
2025-10-12 17:20:50 +08:00
ysq 312a675a40 refactor: restructure event handling from trait objects to enum pattern
- 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
2025-10-10 18:19:44 +08:00
Wood 77caa39f0c fix warns 2025-10-04 08:44:07 +08:00
ysq bb927628b2 feat: upgrade to Solana SDK v3.0.0 and
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
2025-09-26 23:59:06 +08:00
ysq 938039adee feat: upgrade to v0.4.13 2025-09-20 00:22:44 +08:00
ysq 5acf69714d feat: add EventSource enum and optimize event processing threads
- 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
2025-09-19 23:17:50 +08:00
ysq 6af26232a0 docs: Update Readme 2025-09-17 00:44:50 +08:00
ysq 674465548b refactor(event_parser): optimize instruction parsing with better error handling
- Fix borrowing conflicts and boundary conditions
- Improve accounts array expansion logic
- Refactor inner instruction processing flow
2025-09-15 22:44:47 +08:00
ysq 4dd19d6ca1 feat: upgrade to v0.4.11 2025-09-15 00:01:07 +08:00
ysq 317e990ed2 feat: upgrade to v0.4.10 2025-09-14 23:26:21 +08:00
ysq 7aad371076 Merge commit 'b577d115d65b39993060c32e9c7eeda0c82137c7' 2025-09-14 01:13:32 +08:00
ysq a76563314f refactor: overhaul event parser architecture for better performance
- Centralize event parsing logic and remove factory pattern
- Add high-performance clock module to reduce latency
- Consolidate protocol parsers with unified interface
- Introduce account pubkey caching and streamline traits
- Remove deprecated macro-based and multi-protocol implementations
2025-09-14 01:13:11 +08:00
sgxiang b577d115d6 Update README.md 2025-09-13 21:10:29 +08:00
ysq 9c311f63c1 refactor: migrate from slot-based to signature-based global state
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
2025-09-13 17:10:58 +08:00
sgxiang cdb3f2aeed Merge pull request #32 from ioxde/fix/maintain-transaction-order
Maintain correct transaction event order
2025-09-13 15:17:25 +08:00
ysq 3cfc85ea9d feat: add Bonk Token2022 initialization support
Add support for Token2022 standard in Bonk protocol event parsing,
including new event type, discriminator, and instruction parser.
2025-09-13 00:13:17 +08:00
sgxiang dcbff09cca Merge pull request #31 from ioxde/fix/failed-pump-fun-migrations
Skip duplicate/failed PumpFun migration events
2025-09-12 22:33:43 +08:00
ysq 5e6976366b feat: optimize SIMD validation in event parser
- Use correct discriminator length in validation
- Replace slice comparison with SIMD-optimized discriminator matching
- Improve instruction data validation performance
2025-09-12 21:36:30 +08:00
sgxiang ee3f63746c Merge pull request #33 from ioxde/fix/pump-fun-migration-event-data
Add discriminator validation for inner instructions
2025-09-12 21:31:20 +08:00
ysq 26dc717cd7 docs: Update Readme 2025-09-10 23:39:16 +08:00
ysq 7de075d771 docs: Update Readme 2025-09-10 23:26:20 +08:00
ysq 5ea536bef6 feat: refactor subscription API with multi-filter support
- 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
2025-09-10 23:21:08 +08:00
ysq 304c943d79 docs: Update Readme 2025-09-10 17:35:48 +08:00
ysq 9a48c6cbfb docs: Update Readme 2025-09-10 17:17:03 +08:00
ysq d955cec83f feat: upgrade to v0.4.5 2025-09-10 11:54:59 +08:00
ysq e3b763f0ca feat: upgrade to v0.4.4 2025-09-10 10:50:33 +08:00
ysq 0c07c4d9ee refactor: enhance account event parser with more precise event classification
- 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
2025-09-09 23:42:35 +08:00
ysq 528003a688 feat(examples): add nonce and token balance monitoring capabilities
- 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
2025-09-09 21:24:21 +08:00
ysq 2e8c0a1ee5 refactor: separate examples and improve docs
- 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
2025-09-09 18:21:26 +08:00
ioxde 09645ac290 fix(event_parser): add discriminator validation for inner instruction parsing 2025-09-08 20:53:16 -07:00
ioxde 285c2ac966 fix(event_parser): process inner instructions immediately to maintain correct transaction event order 2025-09-08 20:31:18 -07:00
ioxde 8ec1457858 feat(event_parser): add requires_inner_instruction field to skip incomplete events
- 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)
2025-09-08 20:19:13 -07:00
ysq d219433466 Merge commit '4902c34bfabf081c614065f788b9bd4e649731b6' 2025-09-03 17:33:06 +08:00
ysq 4902c34bfa feat: add common account event parser with SPL token support 2025-09-03 17:19:35 +08:00
ysq 1060b04b12 refactor: simplify event API method names for better ergonomics
- Rename verbose method names to shorter, clearer alternatives
- program_received_time_us() → recv_us()
- program_handle_time_consuming_us() → handle_us()
- instruction_outer_index() → outer_index()
- instruction_inner_index() → inner_index()
- Update all implementations across event parsers and processors

Improves developer experience while maintaining semantic clarity.
2025-09-03 15:49:50 +08:00
ysq 7601eb370c perf: optimize event processing and add gRPC instruction parsing 2025-09-03 15:29:57 +08:00
ysq b71a83bf66 perf: add object pooling and enhanced metrics for streaming optimization
- Implement gRPC/shred connection pools for memory efficiency
- Add atomic processing time stats with auto-calibration clock
- Optimize event parsers and protocol handlers
- Refactor metrics system for advanced performance monitoring
2025-09-02 17:27:27 +08:00
ysq 07bb110dc0 feat: upgrade to v0.4.0 2025-08-31 22:26:35 +08:00
ysq ec70383d89 Merge commit '74781e5cbe6f48877ea564e4ae9da6ec51282b16' 2025-08-31 22:25:47 +08:00
ysq 74781e5cbe perf: implement SIMD-accelerated event processing and optimize streaming performance
- Add SIMD utilities for fast byte array comparison and discriminator matching
- Optimize event processor with batch processing and memory pool
- Refactor global state management with concurrent data structures
- Remove deprecated batch processing module
- Enhance metrics collection with reduced overhead
- Improve parser efficiency across all protocol implementations
- Add performance benchmarking dependencies (criterion, wide)
- Update documentation and examples for new architecture

Performance improvements:
- SIMD-accelerated byte operations for instruction parsing
- Concurrent HashMap (DashMap) for better multi-threading
- Optimized memory allocation patterns
- Reduced lock contention in event processing pipeline

Breaking changes: Removed batch.rs module, updated parser interfaces
2025-08-31 22:18:18 +08:00
ysq 52a489ae80 Merge commit 'ab0200c2ec7e7ed76afafc5cfa8440f61052d0fb' into perf/improve 2025-08-29 16:45:22 +08:00
sgxiang ab0200c2ec Merge pull request #29 from ioxde/feature/dynamic-subscriptions
feat: add dynamic subscription management with runtime filter updates
2025-08-29 15:23:00 +08:00
ysq b535bdf052 perf: Major event processing system refactor for improved performance 2025-08-29 14:59:16 +08:00
ysq 218abd3aa4 perf: Major event processing system refactor for improved performance 2025-08-28 14:49:56 +08:00
ysq 9ea4dab4df perf: Major event processing system refactor for improved performance 2025-08-27 21:31:31 +08:00