Commit Graph
42 Commits
Author SHA1 Message Date
Estereg 0c369e23a8 refactor: modernize dependency stack and minimize footprint
- Migrate to native 'std::sync' primitives (LazyLock, OnceLock, RwLock).
- Replace 'parking_lot' with std library synchronization types.
- Switch from 'chrono' to 'std::time::SystemTime' for lightweight timestamps.
- Bump core dependencies: tokio (1.50.0) and rustls (0.23.37).
- Decouple 'solana-program' by utilizing 'solana-sdk' re-exports.
- Prune redundant crates: lazy_static, once_cell, chrono, maplit, and parking_lot.
- Remove unused dev-dependencies (criterion) and example-only utils (env_logger).
- Improve compile times and reduce supply chain attack surface.
2026-03-07 06:44:42 +00:00
Wood 7270372604 feat(shred): tx_index, Migrate without CPI, merge fix, doc limits
- Add tx_index to TransactionWithSlot (entry index), pass to parser
- Emit PumpFun Migrate even when no CPI (shred gets instruction-only)
- Merge: only overwrite Create/CreateV2 with CPI when value non-default
- Rename transaction_index -> tx_index across codebase
- Add docs/SHREDSTREAM_LIMITATIONS.md (ALT/CPI limits, field completeness)
- Comment shred path: static_account_keys only, no inner_instructions

Made-with: Cursor
2026-03-07 12:35:57 +08:00
EsteregandGitHub 8659d5eb96 Revert "Feat/dlmm account" 2025-12-09 21:22:21 -03:00
zhaoguojie2010 66e7977897 fix raydium clmm bitmap extension account disc & support whirlpool account event 2025-11-30 21:32:51 +08:00
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
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
ysq ad3a54625c feat: add Meteora DAMM v2 protocol support 2025-11-10 00:38:23 +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 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
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 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
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 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 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
vnxfsc c3d599acd5 feat: 添加交易索引功能支持
- 为 TransactionPretty 添加 transaction_index 字段
- 从 Yellowstone gRPC 的 SubscribeUpdateTransaction.transaction.index 提取交易索引
- 为 EventMetadata 添加 transaction_index 字段用于存储交易在 slot 中的索引
- 为 UnifiedEvent trait 添加 transaction_index() 和 set_transaction_index() 方法
- 更新事件处理器以传递交易索引到事件元数据
- 更新主程序日志以显示交易索引信息

交易事件现在包含它们在 slot 中的索引位置,账户事件由于 gRPC 协议限制保持为 None
2025-08-25 00:37:31 +08:00
ysq 372bb765af feat: enhance protocol event parsers and bump to v0.3.5
- Add creator_fee support to Bonk events
- Improve PumpFun/PumpSwap event parsing
- Update documentation and common types
2025-08-19 21:13:22 +08:00
ysq ea7ecd1d0c feat: enhance event filtering and monitoring system
- Add EventTypeFilter for precise event type filtering
- Refactor metrics to track events by type (tx/account/block)
- Add parser caching for improved performance
- Enhance gRPC subscription management
- Update examples and type definitions
2025-08-16 14:48:51 +08:00
ysq aee8921ad5 feat: Add account event parser and protocol type definitions
- 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
2025-08-13 23:30:59 +08:00
ysq 8e3d64a09c feat: Add Raydium AMM V4 support and enhance protocol parsers
- Add complete Raydium AMM V4 protocol integration
- Enhance PumpFun, CLMM, CPMM event parsing
- Refactor parser architecture for better extensibility
- Update documentation and examples
2025-08-11 22:02:09 +08:00
ysq 97faba9406 feat: Major refactor with batch processing and performance optimization
- Refactor streaming architecture with modular grpc components
- Add batch processing system with backpressure strategies
- Implement performance monitoring and metrics collection
- Add multi-protocol parser with block metadata support
- Enhance configuration system with preset profiles
- Add parse_tx_events example and update documentation
- Optimize yellowstone_grpc client complexity
2025-08-11 01:04:16 +08:00
ysq f700481f1f chore: release v0.1.10 with event ID generation and cache fixes 2025-08-05 14:40:07 +08:00
ysq 109c50cf06 feat: add Bonk migration events and bump to v0.1.9
- Add BonkMigrateToAmmEvent and BonkMigrateToCpswapEvent
- Update parsers and event handlers
- Add rustfmt.toml configuration
- Update documentation and examples
2025-08-03 21:59:08 +08:00
wood 4c90931e28 events optimization 2025-08-03 05:37:04 +08:00
ysq 0a4be48b99 feat: add event processing time tracking (v0.1.6)
- Add processing duration monitoring
- Update all protocol parser interfaces
- Improve PumpFun dev address detection
- Bump version to 0.1.6
2025-07-29 14:48:43 +08:00
ysq 2e864dd14e feat(api): Upgrade to v0.1.5 with improved event subscription API
This update includes the following improvements:
- Version upgraded to 0.1.5
- Added subscribe_events_v2 API with more granular account filtering
- Marked original subscribe_events API as deprecated
- Fixed bug
2025-07-26 17:11:28 +08:00
wood 3b89ca381c add block_time and block_time_ms 2025-07-25 15:32:05 +08:00
ysq a4987b9a3e feat: Add block metadata event support
- Implement BlockMetaEvent and SDKSystemEventParser
- Support block metadata subscription and processing
- Optimize event handling with separate tokio tasks
- Add commitment parameter support
- Upgrade version to 0.1.3
2025-07-24 19:37:34 +08:00
ysq 7615102fd6 feat: enhance event parser with transfer data processing capabilities
- Bump version to 0.1.2
- Add TransferData struct for transaction data parsing
- Implement parse_transfer_datas_from_next_instructions function to extract transfer data from subsequent instructions
- Enhance UnifiedEvent trait with set_transfer_datas method
- Optimize transfer data extraction when parsing inner instructions
- Support transfer data parsing for multiple protocols (PumpFun, PumpSwap, Bonk, Raydium, etc.)
- Improve support for Token Program, Token 2022 Program, and System Program transfer instructions
2025-07-21 23:55:13 +08:00
ysq 9e34a01874 feat: refactor to multi-protocol event streaming system
Major architectural refactor, upgrading from simple logging system to comprehensive multi-protocol Solana DEX event streaming system:

 New Features:
- Support for 5 DEX protocols: PumpFun, PumpSwap, Bonk, Raydium CPMM, Raydium CLMM
- Implement unified event interface (UnifiedEvent trait) and event factory pattern
- Add dual streaming support: Yellowstone gRPC and ShredStream
- Add Chinese documentation (README_CN.md)

🏗️ Architectural Improvements:
- Refactor event parsing system with modular design
- Implement protocol-specific parsers and event types
- Optimize dependency management, update Cargo.toml
- Remove legacy logging modules, clean up redundant code

📊 Statistics:
- Added 46 files, 4511 lines of code
- Removed 1381 lines of legacy code
- Net addition of 3130 lines of code

Tech Stack:
- Rust async/await for asynchronous processing
- Protocol Buffers support
- Multi-protocol event parsing
- High-performance event stream subscription
2025-07-19 23:46:42 +08:00