Commit Graph

80 Commits

Author SHA1 Message Date
zhaoguojie2010 47a390a8bf support ray clmm bitmap extension account event 2025-11-29 17:27:49 +08:00
zhaoguojie2010 511fea0499 add meteora dlmm account event 2025-11-27 23:22:06 +08:00
sgxiang 1770758597 Merge pull request #50 from VariantConst/patch-1
Increase minimum accounts check from 11 to 13
2025-11-19 21:10:37 +08:00
ysq c841e1d10e Merge commit '9d415cf9500f11d48596768e37cbb9334c298633' 2025-11-19 21:07:31 +08:00
VariantConst e62c337f44 Increase minimum accounts check from 11 to 13
Fixed out-of-bounds array access in PumpSwap buy/sell parser.
2025-11-19 11:07:53 +08:00
ysq 4b019e5e01 feat: add Compute Budget Program instruction parsing support
Add support for parsing SetComputeUnitLimit and SetComputeUnitPrice instructions from Solana's Compute Budget Program. Update event parser to handle compute budget instructions and bump version to 1.1.3.
2025-11-16 22:49:37 +08:00
zhaoguojie2010 2638b9bb91 bugfix: fix discriminator length for raydium amm 2025-11-16 15:01:12 +08:00
ysq ad3a54625c feat: add Meteora DAMM v2 protocol support 2025-11-10 00:38:23 +08:00
ysq 6e3d2c23d1 feat: support Pump.fun V2 (Mayhem Mode) and update protocol structures for Nov 11 breaking changes 2025-11-09 23:59:56 +08:00
ysq 9e4f71dbb2 feat: support Pump.fun V2 (Mayhem Mode) and update protocol structures for Nov 11 breaking changes 2025-11-09 23:30:48 +08:00
ysq 89986e1b36 refactor: remove unused dispatcher methods and optimize imports 2025-11-06 23:18:47 +08:00
ysq 819b71ce1f refactor: unify event parsing API with callback ownership transfer 2025-11-04 22:49:40 +08:00
ysq 4c0e29865f refactor: replace static CONFIGS with dynamic event dispatcher 2025-11-03 23:58:19 +08:00
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 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 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 317e990ed2 feat: upgrade to v0.4.10 2025-09-14 23:26:21 +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
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 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 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
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 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 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
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
ioxde 1e6841149d feat: add dynamic subscription management with runtime filter updates
- Add update_subscription() for runtime filter updates without reconnection
  - BREAKING: Return subscription request from subscribe_with_request()
  - Implement Default trait for EventTypeFilter
  - Add comprehensive dynamic_subscription example
2025-08-26 19:07:13 -07:00
ysq e673b0aab8 Merge commit '86b6591b369a220f1a39078ef2a71939d7a2b812' into perf/improve 2025-08-26 23:04:37 +08:00
ysq dee683396d perf: Refactor event processing system for better performance 2025-08-26 17:57:39 +08:00