sol-parser-sdk-python 0.5.11__tar.gz → 0.5.13__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (272) hide show
  1. sol_parser_sdk_python-0.5.11/README.md → sol_parser_sdk_python-0.5.13/PKG-INFO +61 -16
  2. sol_parser_sdk_python-0.5.11/PKG-INFO → sol_parser_sdk_python-0.5.13/README.md +39 -35
  3. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/README_CN.md +32 -16
  4. sol_parser_sdk_python-0.5.13/examples/fixtures/pump_curve_instruction.json +46 -0
  5. sol_parser_sdk_python-0.5.13/examples/fixtures/pump_shred_routes.json +314 -0
  6. sol_parser_sdk_python-0.5.13/examples/hot_path_benchmark.json +1 -0
  7. sol_parser_sdk_python-0.5.13/examples/hot_path_benchmark.py +44 -0
  8. sol_parser_sdk_python-0.5.13/examples/offline_bank/README.md +30 -0
  9. sol_parser_sdk_python-0.5.13/examples/offline_bank/config.json +5 -0
  10. sol_parser_sdk_python-0.5.13/examples/offline_bank/expected.json +132 -0
  11. sol_parser_sdk_python-0.5.13/examples/offline_bank/programs.json +8 -0
  12. sol_parser_sdk_python-0.5.13/examples/offline_bank/snapshot.json.gz +0 -0
  13. sol_parser_sdk_python-0.5.13/examples/pump_offline_bank.py +148 -0
  14. sol_parser_sdk_python-0.5.13/examples/pump_shred_routes.py +100 -0
  15. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/pyproject.toml +5 -1
  16. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/__init__.py +5 -0
  17. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/event_type_parity.py +1 -0
  18. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/event_types.py +12 -1
  19. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/grpc_types.py +3 -0
  20. sol_parser_sdk_python-0.5.13/sol_parser/pump_routes.py +89 -0
  21. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/pump_upgrade.py +4 -11
  22. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/shredstream_client.py +93 -98
  23. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/wire_transaction.py +25 -9
  24. sol_parser_sdk_python-0.5.13/tests/fixtures/pump_depth2_20261014.json +5513 -0
  25. sol_parser_sdk_python-0.5.13/tests/test_hot_path_wire_decoder.py +40 -0
  26. sol_parser_sdk_python-0.5.13/tests/test_pump_depth2.py +16 -0
  27. sol_parser_sdk_python-0.5.13/tests/test_pump_offline_bank.py +10 -0
  28. sol_parser_sdk_python-0.5.13/tests/test_pump_shred_routes.py +8 -0
  29. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_shred_wire_sanitize.py +4 -2
  30. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/.env.example +0 -0
  31. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/.gitignore +0 -0
  32. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/docs/USAGE.md +0 -0
  33. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/block_meta_stream.py +0 -0
  34. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/fixtures/amm_v4_grpc_refresh_20261002.json +0 -0
  35. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/fixtures/batch2_cpmm_simulations_20261003.json +0 -0
  36. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/fixtures/block_meta_grpc_20261002.json +0 -0
  37. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/fixtures/cached_damm_v2_mainnet_simulations_20261004.json +0 -0
  38. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/fixtures/cached_tip_routes_20261002.json +0 -0
  39. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/fixtures/cpmm_lp_simulations_20261006.json +0 -0
  40. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/fixtures/damm_v2_mainnet_simulations_20261004.json +0 -0
  41. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/fixtures/pumpfun_current_mainnet_simulations_20261004.json +0 -0
  42. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/fixtures/pumpfun_funded_sell_mainnet_simulations_20261004.json +0 -0
  43. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/fixtures/pumpfun_settlement_mainnet_simulations_20261004.json +0 -0
  44. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/fixtures/pumpfun_usdc_multihop_mainnet_simulations_20261004.json +0 -0
  45. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/fixtures/pumpswap_mainnet_simulations_20261004.json +0 -0
  46. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/fixtures/simulation_ata_20261002.json +0 -0
  47. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/fixtures/simulation_routes_live_20261002.json +0 -0
  48. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/meteora_damm_grpc.py +0 -0
  49. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/multi_protocol_grpc.py +0 -0
  50. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/parse_tx_by_signature.py +0 -0
  51. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/pumpfun_quick_test.py +0 -0
  52. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/pumpfun_trade_filter.py +0 -0
  53. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/pumpfun_with_metrics.py +0 -0
  54. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/pumpswap_low_latency.py +0 -0
  55. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/pumpswap_with_metrics.py +0 -0
  56. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/rust_example_utils.py +0 -0
  57. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/simulation_routes.py +0 -0
  58. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/stonkfun_routes.py +0 -0
  59. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/stonkfun_snapshot_refresh.py +0 -0
  60. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/scripts/bench_parser.py +0 -0
  61. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/scripts/gen_golden_rust.sh +0 -0
  62. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/account_dispatcher.py +0 -0
  63. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/account_fillers/__init__.py +0 -0
  64. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/account_fillers/meteora.py +0 -0
  65. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/account_fillers/orca.py +0 -0
  66. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/account_fillers/pumpfun.py +0 -0
  67. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/account_fillers/pumpswap.py +0 -0
  68. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/account_fillers/raydium.py +0 -0
  69. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/account_fillers/raydium_launchlab.py +0 -0
  70. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/accounts/__init__.py +0 -0
  71. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/accounts/raydium_orca.py +0 -0
  72. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/accounts/rpc_wallet.py +0 -0
  73. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/accounts/utils.py +0 -0
  74. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/block_meta.py +0 -0
  75. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/check_migration.py +0 -0
  76. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/clock.py +0 -0
  77. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/common/__init__.py +0 -0
  78. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/dex_parsers.py +0 -0
  79. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/entries_decode.py +0 -0
  80. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/env_config.py +0 -0
  81. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/geyser_pb2.py +0 -0
  82. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/geyser_pb2_grpc.py +0 -0
  83. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/grpc/__init__.py +0 -0
  84. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/grpc/geyser_connect.py +0 -0
  85. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/grpc/subscribe_builder.py +0 -0
  86. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/grpc/transaction_meta.py +0 -0
  87. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/grpc_client.py +0 -0
  88. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/grpc_instruction_parser.py +0 -0
  89. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/inner_instruction_parser.py +0 -0
  90. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/instr/__init__.py +0 -0
  91. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/instr_account_utils.py +0 -0
  92. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/instructions.py +0 -0
  93. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/json_util.py +0 -0
  94. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/liquidity_snapshot.py +0 -0
  95. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/log_instr_dedup.py +0 -0
  96. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/logs/__init__.py +0 -0
  97. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/market.py +0 -0
  98. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/merger.py +0 -0
  99. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/order_buffer.py +0 -0
  100. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/parser.py +0 -0
  101. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/pumpfun_fee_enrich.py +0 -0
  102. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/rpc_parser.py +0 -0
  103. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/rust_api_inventory.py +0 -0
  104. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/rust_event_json.py +0 -0
  105. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/shredstream_pb2.py +0 -0
  106. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/shredstream_pb2_grpc.py +0 -0
  107. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/shredstream_pumpfun.py +0 -0
  108. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/simulation_route.py +0 -0
  109. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/solana_storage_pb2.py +0 -0
  110. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/solana_storage_pb2_grpc.py +0 -0
  111. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/stonkfun_registry.py +0 -0
  112. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/transaction_route.py +0 -0
  113. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/u128_parity.py +0 -0
  114. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/verify_discriminators.py +0 -0
  115. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/account_lifecycle_20261008.json +0 -0
  116. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/cached_damm_v2_mainnet_simulations_20261004.json +0 -0
  117. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/cached_tip_routes_20261002.json +0 -0
  118. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/clmm_fee_rewards_20261008.json +0 -0
  119. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/clmm_liquidity_20261008.json +0 -0
  120. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/clmm_one_sided_20261008.json +0 -0
  121. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/cpmm_liquidity_20261008.json +0 -0
  122. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/cpmm_lp_simulations_20261006.json +0 -0
  123. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_borrow_20261009.json +0 -0
  124. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_cpi_20261009.json +0 -0
  125. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_dual_claims_20261009.json +0 -0
  126. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_reward_admin_20261009.json +0 -0
  127. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_reward_renewal_20261009.json +0 -0
  128. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_reward_withdraw_20261009.json +0 -0
  129. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_upstream_hook_20261009.json +0 -0
  130. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_v1_config2_instruction_20261008.json +0 -0
  131. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_v1_live_simulations_20261008.json +0 -0
  132. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_v2_authority_20261008.json +0 -0
  133. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_v2_fees_20261008.json +0 -0
  134. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_v2_liquidity_20261008.json +0 -0
  135. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_v2_mainnet_simulations_20261004.json +0 -0
  136. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_v2_rewards_20261008.json +0 -0
  137. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_v2_vesting_20261008.json +0 -0
  138. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/dbc_boundary_20261008.json +0 -0
  139. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/dbc_live_simulations_20261008.json +0 -0
  140. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/dbc_migration_20261008.json +0 -0
  141. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/dbc_referral_live_20261008.json +0 -0
  142. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/dbc_swap2.json +0 -0
  143. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/dbc_v1_migration_20261008.json +0 -0
  144. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/dlmm_fees_20261008.json +0 -0
  145. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/dlmm_hook_rewards_20261009.json +0 -0
  146. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/dlmm_rewards_20261008.json +0 -0
  147. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/golden_parse_log.json +0 -0
  148. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/launchlab_migration_20261009.json +0 -0
  149. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/native_settlement_20261008.json +0 -0
  150. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pump_compact_simulations_20261008.json +0 -0
  151. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pump_holder_20261009.json +0 -0
  152. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pump_routes_20261009.json +0 -0
  153. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pump_synthetic_20261009.json +0 -0
  154. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pump_upgrade/account_context.json +0 -0
  155. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pump_upgrade/boost_account_context.json +0 -0
  156. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pump_upgrade/events.json +0 -0
  157. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pump_upgrade/mainnet.json +0 -0
  158. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pump_upgrade/pump_trade_account_context.json +0 -0
  159. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pump_upgrade/simulation_events.json +0 -0
  160. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_concentrated_multihop_mainnet_simulations_20261005.json +0 -0
  161. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/2MfmZSU8mWEbskNHAxQGphAyB5x72SC2HYuAkLeSyH6MjttUHqUjm24wPMeH7zrCoQoYFwbLeiFE571mc8WvgZyL.json +0 -0
  162. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/2dabmQiykzC1tsNmgtRFbsRJjEKMfUySgScJc2J2uq8CQtoXWZ3YyT99p3nVuCXifEhLkyUe4Sf4nfe2UkFT8AJr.json +0 -0
  163. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/2eVpZNvQYPMBVNT5357Qt7HVAUSv9gdwqxKStvdwQ498rcJLLCHVcYPaGfFqVBz44ndYvkA1H4CwjBuDSviAj7jp.json +0 -0
  164. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/3GufGVVRrnrH1Yuto57jDeTKXeki6ooE9w6h4qYRvNm5FcCpxwDHNvzHXdpAMbxRmukWJpSPHUKHEjnFTCC979ka.json +0 -0
  165. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/3LQK2JHVbVSSfyCYwTwzoYTY9NEN4gZXzqw3TvAvMJHsvPsopCHtsa5ALhj4tFn8xWbmJ5DsYMMcnPukTBkSjtQf.json +0 -0
  166. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/3MRWKDUcD5CGn5Xz4qWyGA8Y9udw4SsSr4gcxCjTUqCFt6Zc6uiwHF1wLZXKoqBcGEM2kruBS85ymYxmYk8FLGBk.json +0 -0
  167. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/3NBSCgAXpNqg7JBUzp6RsfZYzf2QbbHi6r2wcoBF4Lpuzozae7ExUJUGoqpVCXXs8cbibr6aWySH1bsg86Enuhez.json +0 -0
  168. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/3QVpcUq64D4DUV9empFr3G98pCEa1Cp2fAcFJKyiJGsQ2ir2S4yBLhHYXPNmLfCE8KVDgLApfBYTFM7pf9JVPbsb.json +0 -0
  169. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/3REXMDkvZsWvgc8czYpfn24avz18APMuzbV2VgQBeymArdJvfQcfcpKr46f3j1H2bAiymFneaNocPH7KzPUPbR1S.json +0 -0
  170. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/3ejAydePsZTUfeZaU9eiAM37gV5AYPG9hhyMtUobJLQtSMgroDeiE8njXu2JiwMyX5YJLp3vrfNPy89S7EDdUCAy.json +0 -0
  171. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/3zC4bw1osyebZ77KagXYP3b5rEBHvJCgcwCriCLc5gAUp9Ev6Bx5ZMbqnYpkKE2VgZgMFcZN5FYKQfcKL45MWpyu.json +0 -0
  172. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/5PgkFgTLSEZPZhxgWNToPzTZct95SycuaH9H3g82YwcKXudtiynEZmiaoQrhGv2gdZLrvsVZ5Wn88KGirbFYpLrt.json +0 -0
  173. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/661yA5s6uxUsggTcT4cZ6yyMfNmF4mCZzxLnCb1zBrSY3YhAiouYXBitiPvkngBEKxaeGcpXiek6qXDajiRr9wuY.json +0 -0
  174. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_current_mainnet_simulations_20261004.json +0 -0
  175. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_funded_sell_mainnet_simulations_20261004.json +0 -0
  176. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_settlement_mainnet_simulations_20261004.json +0 -0
  177. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_usdc_multihop_mainnet_simulations_20261004.json +0 -0
  178. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpswap_liquidity_20261008.json +0 -0
  179. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpswap_mainnet_simulations_20261004.json +0 -0
  180. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/review10_compiled_bounds.json +0 -0
  181. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/review10_prefunded_ata.json +0 -0
  182. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/review10_wire_bounds.json +0 -0
  183. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/signed_alt_load_rejections_20261009.json +0 -0
  184. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/signed_clmm_boundaries_20261009.json +0 -0
  185. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/signed_cpmm_bank_20261009.json +0 -0
  186. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/signed_dex_replay_20261009.json +0 -0
  187. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/signed_identical_alt_bank_20261009.json +0 -0
  188. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/signed_multileg_bank_20261009.json +0 -0
  189. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/signed_nested_cpi_bank_20261009.json +0 -0
  190. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/signed_replay_20261009.json +0 -0
  191. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/signed_wire_boundaries_20261009.json +0 -0
  192. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/simulation_alt_20261008.json +0 -0
  193. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/simulation_ata_20261002.json +0 -0
  194. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/simulation_routes_live_20261002.json +0 -0
  195. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/stonkfun_routes_0_7_7.json +0 -0
  196. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/whirlpool_fees_20261008.json +0 -0
  197. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/whirlpool_hook_20261008.json +0 -0
  198. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/whirlpool_liquidity_20261008.json +0 -0
  199. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/whirlpool_one_sided_20261008.json +0 -0
  200. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_amm_v4_v2.py +0 -0
  201. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_block_meta.py +0 -0
  202. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_clmm_fee_rewards_bank.py +0 -0
  203. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_clmm_liquidity_bank.py +0 -0
  204. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_clmm_one_sided_bank.py +0 -0
  205. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_cpmm_liquidity_bank.py +0 -0
  206. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_damm_borrow_bank.py +0 -0
  207. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_damm_cpi_bank.py +0 -0
  208. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_damm_dual_claims_bank.py +0 -0
  209. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_damm_reward_admin_bank.py +0 -0
  210. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_damm_reward_renewal_bank.py +0 -0
  211. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_damm_reward_withdraw_bank.py +0 -0
  212. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_damm_upstream_hook_bank.py +0 -0
  213. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_damm_v1_live_simulations.py +0 -0
  214. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_damm_v2_authority_bank.py +0 -0
  215. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_damm_v2_fees_bank.py +0 -0
  216. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_damm_v2_liquidity_bank.py +0 -0
  217. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_damm_v2_rewards_bank.py +0 -0
  218. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_damm_v2_vesting_bank.py +0 -0
  219. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_dbc_boundary_bank.py +0 -0
  220. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_dbc_migration_bank.py +0 -0
  221. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_dbc_upgrade.py +0 -0
  222. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_dbc_v1_migration_bank.py +0 -0
  223. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_dex_retry_delay.py +0 -0
  224. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_dlmm_fees_bank.py +0 -0
  225. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_dlmm_hook_bank.py +0 -0
  226. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_dlmm_rewards_bank.py +0 -0
  227. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_exact_metadata_json.py +0 -0
  228. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_filter_and_account_parity.py +0 -0
  229. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_golden.py +0 -0
  230. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_grpc_unary_methods.py +0 -0
  231. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_imports_and_inner.py +0 -0
  232. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_launchlab_invocation_anchor.py +0 -0
  233. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_launchlab_migration_bank.py +0 -0
  234. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_log_instr_dedup.py +0 -0
  235. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_market_helpers.py +0 -0
  236. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_native_grpc_server.py +0 -0
  237. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_native_plan_lifecycle.py +0 -0
  238. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_orca_whirlpool_instruction_parity.py +0 -0
  239. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_order_buffer.py +0 -0
  240. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_ordered_late_regression.py +0 -0
  241. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_prefix_prefilter.py +0 -0
  242. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_protocol_current_fields.py +0 -0
  243. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_pump_compact_simulation_routes.py +0 -0
  244. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_pump_fees_instruction_parity.py +0 -0
  245. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_pump_holder_bank.py +0 -0
  246. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_pump_routes_bank.py +0 -0
  247. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_pump_synthetic_bank.py +0 -0
  248. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_pump_trade_account_context.py +0 -0
  249. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_pump_trade_merge_identity.py +0 -0
  250. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_pump_upgrade_events.py +0 -0
  251. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_pump_upgrade_mainnet.py +0 -0
  252. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_pumpfun_account_fill.py +0 -0
  253. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_pumpfun_create_regression.py +0 -0
  254. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_pumpfun_trade_tail.py +0 -0
  255. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_pumpfun_v2_parity.py +0 -0
  256. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_pumpswap_account_context.py +0 -0
  257. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_pumpswap_instruction.py +0 -0
  258. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_pumpswap_liquidity_bank.py +0 -0
  259. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_pumpswap_upgrade.py +0 -0
  260. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_raydium_clmm_instruction_parity.py +0 -0
  261. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_raydium_current_logs.py +0 -0
  262. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_review10.py +0 -0
  263. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_review_batch2.py +0 -0
  264. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_shredstream.py +0 -0
  265. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_signed_transaction_replay.py +0 -0
  266. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_simulation_route.py +0 -0
  267. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_snapshot_refresh_example.py +0 -0
  268. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_stonkfun_routes.py +0 -0
  269. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_whirlpool_fees_bank.py +0 -0
  270. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_whirlpool_hook_bank.py +0 -0
  271. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_whirlpool_liquidity_bank.py +0 -0
  272. {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_whirlpool_one_sided_bank.py +0 -0
@@ -1,3 +1,25 @@
1
+ Metadata-Version: 2.4
2
+ Name: sol-parser-sdk-python
3
+ Version: 0.5.13
4
+ Summary: Solana DEX program log parsing (pure Python, API aligned with sol-parser-sdk)
5
+ Requires-Python: >=3.10
6
+ Requires-Dist: base58>=2.0
7
+ Requires-Dist: grpcio-tools>=1.64.0
8
+ Requires-Dist: grpcio>=1.64.0
9
+ Requires-Dist: python-dotenv>=1.0.0
10
+ Provides-Extra: dev
11
+ Requires-Dist: cryptography>=44.0; extra == 'dev'
12
+ Requires-Dist: pytest-asyncio>=0.21; extra == 'dev'
13
+ Requires-Dist: pytest-benchmark>=4.0; extra == 'dev'
14
+ Requires-Dist: pytest>=8.0; extra == 'dev'
15
+ Requires-Dist: requests>=2.31; extra == 'dev'
16
+ Requires-Dist: solders==0.26.0; extra == 'dev'
17
+ Provides-Extra: shredstream
18
+ Requires-Dist: solders>=0.21.0; extra == 'shredstream'
19
+ Provides-Extra: simulation
20
+ Requires-Dist: solders==0.26.0; extra == 'simulation'
21
+ Description-Content-Type: text/markdown
22
+
1
23
  <div align="center">
2
24
  <h1>⚡ Sol Parser SDK - Python</h1>
3
25
  <h3><em>High-performance Solana DEX event parser for Python</em></h3>
@@ -38,15 +60,27 @@ Parser SDK language versions and related Rust SDKs:
38
60
 
39
61
  | Language | Repository | Description | Version |
40
62
  |----------|------------|-------------|---------|
41
- | Rust | [sol-parser-sdk](https://github.com/0xfnzero/sol-parser-sdk) | Solana DEX transaction and account event parsing |
42
- | Node.js | [sol-parser-sdk-nodejs](https://github.com/0xfnzero/sol-parser-sdk-nodejs) | TypeScript/JavaScript for Node.js |
43
- | Python | [sol-parser-sdk-python](https://github.com/0xfnzero/sol-parser-sdk-python) | Async/await native support |
44
- | Go | [sol-parser-sdk-golang](https://github.com/0xfnzero/sol-parser-sdk-golang) | Go transaction and account event parsing |
45
- | **Rust** | [sol-shred-sdk](https://github.com/0xfnzero/sol-shred-sdk) | Raw Solana shred decoding and ShredStream DEX event parsing | `v4.0.3` |
46
- | **Rust** | [sol-trade-sdk](https://github.com/0xfnzero/sol-trade-sdk) | Solana DEX trade construction and transaction execution | `v6.0.0` |
63
+ | Rust | [sol-parser-sdk](https://github.com/0xfnzero/sol-parser-sdk) | Solana DEX transaction and account event parsing | `v0.7.14` |
64
+ | Node.js | [sol-parser-sdk-nodejs](https://github.com/0xfnzero/sol-parser-sdk-nodejs) | TypeScript/JavaScript for Node.js | `v0.5.20` |
65
+ | Python | [sol-parser-sdk-python](https://github.com/0xfnzero/sol-parser-sdk-python) | Async/await native support | `v0.5.13` |
66
+ | Go | [sol-parser-sdk-golang](https://github.com/0xfnzero/sol-parser-sdk-golang) | Go transaction and account event parsing | `v0.5.13` |
67
+ | **Rust** | [sol-shred-sdk](https://github.com/0xfnzero/sol-shred-sdk) | Raw Solana shred decoding and ShredStream DEX event parsing | `v4.0.5` |
68
+ | **Rust** | [sol-trade-sdk](https://github.com/0xfnzero/sol-trade-sdk) | Solana DEX trade construction and transaction execution | `v6.0.2` |
47
69
 
48
70
  ---
49
71
 
72
+ ## v0.5.13 — Pump routes and offline replay
73
+
74
+ Adds native Pump route-intent parsing for official multi-hop instructions and the exact RapidBuy/BuyPumpDelta wrapper layouts captured in reported transactions. Adds locally cached ALT resolution and rejects unresolved account identities by default, with explicit best-effort compatibility APIs where supported. Route intents expose instruction constraints and hop identities; confirmed execution amounts require execution metadata.
75
+
76
+ Includes the latest complete implementation, signed transaction fixtures, native offline-bank regression examples and reproducible local hot-path benchmarks. Unknown wrapper layouts are not inferred from embedded bytes. Local tests do not measure production network latency.
77
+
78
+ ## v0.5.12 — Pump depth-2 compatibility
79
+
80
+ Adds signed Pump depth-2 create-event replay coverage, including ALT-loaded accounts and executed logs. Existing event layouts and public parsing interfaces remain unchanged.
81
+
82
+ Validation includes official Pump SDK 4.1.0 instruction comparisons, signed local LiteSVM simulations and SDK regressions. Local simulation state/config is synthetic; no funded transactions were broadcast and production latency was not measured.
83
+
50
84
  ## v0.5.11 — Signed transaction and hot-path hardening
51
85
 
52
86
  Hardens signed transaction sanitization, loaded-address boundaries, ordered stream filtering and parser lifecycle. Aligns CLMM and DEX instruction/event layouts, nested CPI route attribution and liquidity/reward accounting. Adds independently signed wire fixtures, ALT failure cases and offline bank regressions.
@@ -116,7 +150,7 @@ This is the Python implementation of the FnZero Solana DEX parser SDK for asynci
116
150
  **From PyPI**
117
151
 
118
152
  ```bash
119
- pip install sol-parser-sdk-python==0.5.11
153
+ pip install sol-parser-sdk-python==0.5.13
120
154
  ```
121
155
 
122
156
  **From source**
@@ -221,7 +255,7 @@ asyncio.run(main())
221
255
 
222
256
  Python includes a native ShredStream client (`ShredStreamClient`, `ShredStreamConfig`) plus the same env/CLI helpers as Node (`parse_shredstream_url`: `SHREDSTREAM_URL` / `SHRED_URL`, `--url` / `-u` / `--endpoint=`). Install the optional extra with `pip install 'sol-parser-sdk-python[shredstream]'`. ShredStream uses its own endpoint, **not** `GRPC_URL`.
223
257
 
224
- The Python ShredStream hot path uses static account keys only. V0 ALT-loaded instruction accounts are represented with default pubkey placeholders, and ALT-loaded outer program ids are parsed best-effort by discriminator. Inner CPI/log-only events still require the Yellowstone/RPC paths.
258
+ The Python ShredStream hot path uses strict static-account parsing by default. Supply loaded addresses or a slot-aware prewarmed-cache resolver for V0 ALT instructions; unresolved instructions are skipped. Legacy placeholders require the explicit `parse_shred_transaction_best_effort` API. Recognized wrapper/official routes emit `PumpRouteIntent`; raw shreds cannot reconstruct arbitrary CPI. Inner CPI/log-only events still require the Yellowstone/RPC paths.
225
259
 
226
260
  ---
227
261
 
@@ -232,18 +266,18 @@ From the **package root** after `pip install -e .`. Run with `python examples/<f
232
266
  | Description | Run command | Source |
233
267
  |-------------|-------------|--------|
234
268
  | **PumpFun** | | |
235
- | PumpFun trade filtering | `python examples/pumpfun_trade_filter.py` | [pumpfun_trade_filter.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/pumpfun_trade_filter.py) |
236
- | PumpFun events + metrics | `python examples/pumpfun_with_metrics.py` | [pumpfun_with_metrics.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/pumpfun_with_metrics.py) |
237
- | Quick PumpFun connection test | `python examples/pumpfun_quick_test.py` | [pumpfun_quick_test.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/pumpfun_quick_test.py) |
269
+ | PumpFun trade filtering | `python examples/pumpfun_trade_filter.py` | [pumpfun_trade_filter.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/pumpfun_trade_filter.py) | `v0.5.13` |
270
+ | PumpFun events + metrics | `python examples/pumpfun_with_metrics.py` | [pumpfun_with_metrics.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/pumpfun_with_metrics.py) | `v0.5.13` |
271
+ | Quick PumpFun connection test | `python examples/pumpfun_quick_test.py` | [pumpfun_quick_test.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/pumpfun_quick_test.py) | `v0.5.13` |
238
272
  | **PumpSwap** | | |
239
- | PumpSwap ultra-low latency | `python examples/pumpswap_low_latency.py` | [pumpswap_low_latency.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/pumpswap_low_latency.py) |
240
- | PumpSwap events + metrics | `python examples/pumpswap_with_metrics.py` | [pumpswap_with_metrics.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/pumpswap_with_metrics.py) |
273
+ | PumpSwap ultra-low latency | `python examples/pumpswap_low_latency.py` | [pumpswap_low_latency.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/pumpswap_low_latency.py) | `v0.5.13` |
274
+ | PumpSwap events + metrics | `python examples/pumpswap_with_metrics.py` | [pumpswap_with_metrics.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/pumpswap_with_metrics.py) | `v0.5.13` |
241
275
  | **Meteora DAMM** | | |
242
- | Meteora DAMM V2 events | `python examples/meteora_damm_grpc.py` | [meteora_damm_grpc.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/meteora_damm_grpc.py) |
276
+ | Meteora DAMM V2 events | `python examples/meteora_damm_grpc.py` | [meteora_damm_grpc.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/meteora_damm_grpc.py) | `v0.5.13` |
243
277
  | **Multi-protocol** | | |
244
- | Subscribe to every program in Rust `Protocol` / `program_ids` | `python examples/multi_protocol_grpc.py` | [multi_protocol_grpc.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/multi_protocol_grpc.py) |
278
+ | Subscribe to every program in Rust `Protocol` / `program_ids` | `python examples/multi_protocol_grpc.py` | [multi_protocol_grpc.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/multi_protocol_grpc.py) | `v0.5.13` |
245
279
  | **Utility** | | |
246
- | Parse tx by signature (HTTP RPC; not gRPC). `TX_SIGNATURE` / `RPC_URL` or `SOLANA_RPC_URL` in `.env` or `--sig` / `--rpc`. | `python examples/parse_tx_by_signature.py` | [parse_tx_by_signature.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/parse_tx_by_signature.py) |
280
+ | Parse tx by signature (HTTP RPC; not gRPC). `TX_SIGNATURE` / `RPC_URL` or `SOLANA_RPC_URL` in `.env` or `--sig` / `--rpc`. | `python examples/parse_tx_by_signature.py` | [parse_tx_by_signature.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/parse_tx_by_signature.py) | `v0.5.13` |
247
281
 
248
282
  **Env:** gRPC examples need **`GRPC_URL`** or **`GRPC_ENDPOINT`**, plus **`GRPC_AUTH_TOKEN`** or **`GRPC_TOKEN`** (or legacy `GEYSER_*`). See **`.env.example`**.
249
283
 
@@ -346,3 +380,14 @@ Full cross-language API parity is still in progress. See the [API migration guid
346
380
  实时 parser → trade 接入使用 Yellowstone **gRPC**;见 [gRPC 缓存接入与三语言示例](docs/USAGE.md#grpc-cache)。此路径不使用 WebSocket,报价和构建热路径不调用 RPC。
347
381
 
348
382
  Shared PumpFun create/create_v2 mainnet fixtures, replay instructions and verification limits are documented in the [validation guide](https://github.com/0xfnzero/sol-parser-sdk-golang/tree/main/validation/pumpfun_create_20261007).
383
+
384
+ ### Offline Pump ShredStream regressions
385
+
386
+ Pump route intents, strict cached ALT resolution and native signed replay/SBF simulation examples are documented in [examples/offline_bank/README.md](examples/offline_bank/README.md). Run the language-native examples and tests from this repository; no other-language test driver or RPC endpoint is needed. Unresolved instructions now skip by default; use the explicit best-effort API only for legacy behavior. Route intents must not be treated as confirmed fills.
387
+
388
+ Native offline CPU benchmark: `python -m examples.hot_path_benchmark`.
389
+ `examples/hot_path_benchmark.json` fixes warmup and measured iterations for six
390
+ signed wrapped-CPI/ALT transactions. Reported percentiles are per six-transaction
391
+ batch; fixture decoding and I/O occur before timing. Parsing performs no RPC.
392
+ Public wire-decoder dictionaries and resolver callbacks retain base58 strings;
393
+ the internal ShredStream path avoids an instruction-data base58 round trip.
@@ -1,22 +1,3 @@
1
- Metadata-Version: 2.5
2
- Name: sol-parser-sdk-python
3
- Version: 0.5.11
4
- Summary: Solana DEX program log parsing (pure Python, API aligned with sol-parser-sdk)
5
- Requires-Python: >=3.10
6
- Requires-Dist: base58>=2.0
7
- Requires-Dist: grpcio-tools>=1.64.0
8
- Requires-Dist: grpcio>=1.64.0
9
- Requires-Dist: python-dotenv>=1.0.0
10
- Provides-Extra: dev
11
- Requires-Dist: cryptography>=44.0; extra == 'dev'
12
- Requires-Dist: pytest-asyncio>=0.21; extra == 'dev'
13
- Requires-Dist: pytest-benchmark>=4.0; extra == 'dev'
14
- Requires-Dist: pytest>=8.0; extra == 'dev'
15
- Requires-Dist: requests>=2.31; extra == 'dev'
16
- Provides-Extra: shredstream
17
- Requires-Dist: solders>=0.21.0; extra == 'shredstream'
18
- Description-Content-Type: text/markdown
19
-
20
1
  <div align="center">
21
2
  <h1>⚡ Sol Parser SDK - Python</h1>
22
3
  <h3><em>High-performance Solana DEX event parser for Python</em></h3>
@@ -57,15 +38,27 @@ Parser SDK language versions and related Rust SDKs:
57
38
 
58
39
  | Language | Repository | Description | Version |
59
40
  |----------|------------|-------------|---------|
60
- | Rust | [sol-parser-sdk](https://github.com/0xfnzero/sol-parser-sdk) | Solana DEX transaction and account event parsing |
61
- | Node.js | [sol-parser-sdk-nodejs](https://github.com/0xfnzero/sol-parser-sdk-nodejs) | TypeScript/JavaScript for Node.js |
62
- | Python | [sol-parser-sdk-python](https://github.com/0xfnzero/sol-parser-sdk-python) | Async/await native support |
63
- | Go | [sol-parser-sdk-golang](https://github.com/0xfnzero/sol-parser-sdk-golang) | Go transaction and account event parsing |
64
- | **Rust** | [sol-shred-sdk](https://github.com/0xfnzero/sol-shred-sdk) | Raw Solana shred decoding and ShredStream DEX event parsing | `v4.0.3` |
65
- | **Rust** | [sol-trade-sdk](https://github.com/0xfnzero/sol-trade-sdk) | Solana DEX trade construction and transaction execution | `v6.0.0` |
41
+ | Rust | [sol-parser-sdk](https://github.com/0xfnzero/sol-parser-sdk) | Solana DEX transaction and account event parsing | `v0.7.14` |
42
+ | Node.js | [sol-parser-sdk-nodejs](https://github.com/0xfnzero/sol-parser-sdk-nodejs) | TypeScript/JavaScript for Node.js | `v0.5.20` |
43
+ | Python | [sol-parser-sdk-python](https://github.com/0xfnzero/sol-parser-sdk-python) | Async/await native support | `v0.5.13` |
44
+ | Go | [sol-parser-sdk-golang](https://github.com/0xfnzero/sol-parser-sdk-golang) | Go transaction and account event parsing | `v0.5.13` |
45
+ | **Rust** | [sol-shred-sdk](https://github.com/0xfnzero/sol-shred-sdk) | Raw Solana shred decoding and ShredStream DEX event parsing | `v4.0.5` |
46
+ | **Rust** | [sol-trade-sdk](https://github.com/0xfnzero/sol-trade-sdk) | Solana DEX trade construction and transaction execution | `v6.0.2` |
66
47
 
67
48
  ---
68
49
 
50
+ ## v0.5.13 — Pump routes and offline replay
51
+
52
+ Adds native Pump route-intent parsing for official multi-hop instructions and the exact RapidBuy/BuyPumpDelta wrapper layouts captured in reported transactions. Adds locally cached ALT resolution and rejects unresolved account identities by default, with explicit best-effort compatibility APIs where supported. Route intents expose instruction constraints and hop identities; confirmed execution amounts require execution metadata.
53
+
54
+ Includes the latest complete implementation, signed transaction fixtures, native offline-bank regression examples and reproducible local hot-path benchmarks. Unknown wrapper layouts are not inferred from embedded bytes. Local tests do not measure production network latency.
55
+
56
+ ## v0.5.12 — Pump depth-2 compatibility
57
+
58
+ Adds signed Pump depth-2 create-event replay coverage, including ALT-loaded accounts and executed logs. Existing event layouts and public parsing interfaces remain unchanged.
59
+
60
+ Validation includes official Pump SDK 4.1.0 instruction comparisons, signed local LiteSVM simulations and SDK regressions. Local simulation state/config is synthetic; no funded transactions were broadcast and production latency was not measured.
61
+
69
62
  ## v0.5.11 — Signed transaction and hot-path hardening
70
63
 
71
64
  Hardens signed transaction sanitization, loaded-address boundaries, ordered stream filtering and parser lifecycle. Aligns CLMM and DEX instruction/event layouts, nested CPI route attribution and liquidity/reward accounting. Adds independently signed wire fixtures, ALT failure cases and offline bank regressions.
@@ -135,7 +128,7 @@ This is the Python implementation of the FnZero Solana DEX parser SDK for asynci
135
128
  **From PyPI**
136
129
 
137
130
  ```bash
138
- pip install sol-parser-sdk-python==0.5.11
131
+ pip install sol-parser-sdk-python==0.5.13
139
132
  ```
140
133
 
141
134
  **From source**
@@ -240,7 +233,7 @@ asyncio.run(main())
240
233
 
241
234
  Python includes a native ShredStream client (`ShredStreamClient`, `ShredStreamConfig`) plus the same env/CLI helpers as Node (`parse_shredstream_url`: `SHREDSTREAM_URL` / `SHRED_URL`, `--url` / `-u` / `--endpoint=`). Install the optional extra with `pip install 'sol-parser-sdk-python[shredstream]'`. ShredStream uses its own endpoint, **not** `GRPC_URL`.
242
235
 
243
- The Python ShredStream hot path uses static account keys only. V0 ALT-loaded instruction accounts are represented with default pubkey placeholders, and ALT-loaded outer program ids are parsed best-effort by discriminator. Inner CPI/log-only events still require the Yellowstone/RPC paths.
236
+ The Python ShredStream hot path uses strict static-account parsing by default. Supply loaded addresses or a slot-aware prewarmed-cache resolver for V0 ALT instructions; unresolved instructions are skipped. Legacy placeholders require the explicit `parse_shred_transaction_best_effort` API. Recognized wrapper/official routes emit `PumpRouteIntent`; raw shreds cannot reconstruct arbitrary CPI. Inner CPI/log-only events still require the Yellowstone/RPC paths.
244
237
 
245
238
  ---
246
239
 
@@ -251,18 +244,18 @@ From the **package root** after `pip install -e .`. Run with `python examples/<f
251
244
  | Description | Run command | Source |
252
245
  |-------------|-------------|--------|
253
246
  | **PumpFun** | | |
254
- | PumpFun trade filtering | `python examples/pumpfun_trade_filter.py` | [pumpfun_trade_filter.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/pumpfun_trade_filter.py) |
255
- | PumpFun events + metrics | `python examples/pumpfun_with_metrics.py` | [pumpfun_with_metrics.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/pumpfun_with_metrics.py) |
256
- | Quick PumpFun connection test | `python examples/pumpfun_quick_test.py` | [pumpfun_quick_test.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/pumpfun_quick_test.py) |
247
+ | PumpFun trade filtering | `python examples/pumpfun_trade_filter.py` | [pumpfun_trade_filter.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/pumpfun_trade_filter.py) | `v0.5.13` |
248
+ | PumpFun events + metrics | `python examples/pumpfun_with_metrics.py` | [pumpfun_with_metrics.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/pumpfun_with_metrics.py) | `v0.5.13` |
249
+ | Quick PumpFun connection test | `python examples/pumpfun_quick_test.py` | [pumpfun_quick_test.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/pumpfun_quick_test.py) | `v0.5.13` |
257
250
  | **PumpSwap** | | |
258
- | PumpSwap ultra-low latency | `python examples/pumpswap_low_latency.py` | [pumpswap_low_latency.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/pumpswap_low_latency.py) |
259
- | PumpSwap events + metrics | `python examples/pumpswap_with_metrics.py` | [pumpswap_with_metrics.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/pumpswap_with_metrics.py) |
251
+ | PumpSwap ultra-low latency | `python examples/pumpswap_low_latency.py` | [pumpswap_low_latency.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/pumpswap_low_latency.py) | `v0.5.13` |
252
+ | PumpSwap events + metrics | `python examples/pumpswap_with_metrics.py` | [pumpswap_with_metrics.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/pumpswap_with_metrics.py) | `v0.5.13` |
260
253
  | **Meteora DAMM** | | |
261
- | Meteora DAMM V2 events | `python examples/meteora_damm_grpc.py` | [meteora_damm_grpc.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/meteora_damm_grpc.py) |
254
+ | Meteora DAMM V2 events | `python examples/meteora_damm_grpc.py` | [meteora_damm_grpc.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/meteora_damm_grpc.py) | `v0.5.13` |
262
255
  | **Multi-protocol** | | |
263
- | Subscribe to every program in Rust `Protocol` / `program_ids` | `python examples/multi_protocol_grpc.py` | [multi_protocol_grpc.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/multi_protocol_grpc.py) |
256
+ | Subscribe to every program in Rust `Protocol` / `program_ids` | `python examples/multi_protocol_grpc.py` | [multi_protocol_grpc.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/multi_protocol_grpc.py) | `v0.5.13` |
264
257
  | **Utility** | | |
265
- | Parse tx by signature (HTTP RPC; not gRPC). `TX_SIGNATURE` / `RPC_URL` or `SOLANA_RPC_URL` in `.env` or `--sig` / `--rpc`. | `python examples/parse_tx_by_signature.py` | [parse_tx_by_signature.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/parse_tx_by_signature.py) |
258
+ | Parse tx by signature (HTTP RPC; not gRPC). `TX_SIGNATURE` / `RPC_URL` or `SOLANA_RPC_URL` in `.env` or `--sig` / `--rpc`. | `python examples/parse_tx_by_signature.py` | [parse_tx_by_signature.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/parse_tx_by_signature.py) | `v0.5.13` |
266
259
 
267
260
  **Env:** gRPC examples need **`GRPC_URL`** or **`GRPC_ENDPOINT`**, plus **`GRPC_AUTH_TOKEN`** or **`GRPC_TOKEN`** (or legacy `GEYSER_*`). See **`.env.example`**.
268
261
 
@@ -365,3 +358,14 @@ Full cross-language API parity is still in progress. See the [API migration guid
365
358
  实时 parser → trade 接入使用 Yellowstone **gRPC**;见 [gRPC 缓存接入与三语言示例](docs/USAGE.md#grpc-cache)。此路径不使用 WebSocket,报价和构建热路径不调用 RPC。
366
359
 
367
360
  Shared PumpFun create/create_v2 mainnet fixtures, replay instructions and verification limits are documented in the [validation guide](https://github.com/0xfnzero/sol-parser-sdk-golang/tree/main/validation/pumpfun_create_20261007).
361
+
362
+ ### Offline Pump ShredStream regressions
363
+
364
+ Pump route intents, strict cached ALT resolution and native signed replay/SBF simulation examples are documented in [examples/offline_bank/README.md](examples/offline_bank/README.md). Run the language-native examples and tests from this repository; no other-language test driver or RPC endpoint is needed. Unresolved instructions now skip by default; use the explicit best-effort API only for legacy behavior. Route intents must not be treated as confirmed fills.
365
+
366
+ Native offline CPU benchmark: `python -m examples.hot_path_benchmark`.
367
+ `examples/hot_path_benchmark.json` fixes warmup and measured iterations for six
368
+ signed wrapped-CPI/ALT transactions. Reported percentiles are per six-transaction
369
+ batch; fixture decoding and I/O occur before timing. Parsing performs no RPC.
370
+ Public wire-decoder dictionaries and resolver callbacks retain base58 strings;
371
+ the internal ShredStream path avoids an instruction-data base58 round trip.
@@ -38,12 +38,12 @@
38
38
 
39
39
  | 语言 | 仓库 | 描述 | 版本 |
40
40
  |------|------|------|
41
- | Rust | [sol-parser-sdk](https://github.com/0xfnzero/sol-parser-sdk) | Solana DEX 交易与账户事件解析 |
42
- | Node.js | [sol-parser-sdk-nodejs](https://github.com/0xfnzero/sol-parser-sdk-nodejs) | TypeScript/JavaScript,Node.js 支持 |
43
- | Python | [sol-parser-sdk-python](https://github.com/0xfnzero/sol-parser-sdk-python) | 原生 async/await 支持 |
44
- | Go | [sol-parser-sdk-golang](https://github.com/0xfnzero/sol-parser-sdk-golang) | Go 交易与账户事件解析 |
45
- | **Rust** | [sol-shred-sdk](https://github.com/0xfnzero/sol-shred-sdk) | Solana 原始 shred 解码与 ShredStream DEX 事件解析 | `v4.0.3` |
46
- | **Rust** | [sol-trade-sdk](https://github.com/0xfnzero/sol-trade-sdk) | Solana DEX 交易构建与交易执行 | `v6.0.0` |
41
+ | Rust | [sol-parser-sdk](https://github.com/0xfnzero/sol-parser-sdk) | Solana DEX 交易与账户事件解析 | `v0.7.14` |
42
+ | Node.js | [sol-parser-sdk-nodejs](https://github.com/0xfnzero/sol-parser-sdk-nodejs) | TypeScript/JavaScript,Node.js 支持 | `v0.5.20` |
43
+ | Python | [sol-parser-sdk-python](https://github.com/0xfnzero/sol-parser-sdk-python) | 原生 async/await 支持 | `v0.5.13` |
44
+ | Go | [sol-parser-sdk-golang](https://github.com/0xfnzero/sol-parser-sdk-golang) | Go 交易与账户事件解析 | `v0.5.13` |
45
+ | **Rust** | [sol-shred-sdk](https://github.com/0xfnzero/sol-shred-sdk) | Solana 原始 shred 解码与 ShredStream DEX 事件解析 | `v4.0.5` |
46
+ | **Rust** | [sol-trade-sdk](https://github.com/0xfnzero/sol-trade-sdk) | Solana DEX 交易构建与交易执行 | `v6.0.2` |
47
47
 
48
48
  ---
49
49
 
@@ -62,6 +62,18 @@
62
62
 
63
63
  ## 发布说明
64
64
 
65
+ ## v0.5.13 — Pump routes and offline replay
66
+
67
+ Adds native Pump route-intent parsing for official multi-hop instructions and the exact RapidBuy/BuyPumpDelta wrapper layouts captured in reported transactions. Adds locally cached ALT resolution and rejects unresolved account identities by default, with explicit best-effort compatibility APIs where supported. Route intents expose instruction constraints and hop identities; confirmed execution amounts require execution metadata.
68
+
69
+ Includes the latest complete implementation, signed transaction fixtures, native offline-bank regression examples and reproducible local hot-path benchmarks. Unknown wrapper layouts are not inferred from embedded bytes. Local tests do not measure production network latency.
70
+
71
+ ## v0.5.12 — Pump depth-2 compatibility
72
+
73
+ Adds signed Pump depth-2 create-event replay coverage, including ALT-loaded accounts and executed logs. Existing event layouts and public parsing interfaces remain unchanged.
74
+
75
+ Validation includes official Pump SDK 4.1.0 instruction comparisons, signed local LiteSVM simulations and SDK regressions. Local simulation state/config is synthetic; no funded transactions were broadcast and production latency was not measured.
76
+
65
77
  ## v0.5.11 — Signed transaction and hot-path hardening
66
78
 
67
79
  Hardens signed transaction sanitization, loaded-address boundaries, ordered stream filtering and parser lifecycle. Aligns CLMM and DEX instruction/event layouts, nested CPI route attribution and liquidity/reward accounting. Adds independently signed wire fixtures, ALT failure cases and offline bank regressions.
@@ -116,7 +128,7 @@ Validation includes local CPU benchmarks and offline signed-bank scenarios. Meas
116
128
  **PyPI**
117
129
 
118
130
  ```bash
119
- pip install sol-parser-sdk-python==0.5.11
131
+ pip install sol-parser-sdk-python==0.5.13
120
132
  ```
121
133
 
122
134
  **源码**
@@ -221,7 +233,7 @@ asyncio.run(main())
221
233
 
222
234
  Python 已提供原生 ShredStream 客户端(`ShredStreamClient`、`ShredStreamConfig`),并保留与 Node 相同的配置方式(`parse_shredstream_url`:`SHREDSTREAM_URL` / `SHRED_URL`,`--url` / `-u` / `--endpoint=`)。安装可选依赖:`pip install 'sol-parser-sdk-python[shredstream]'`。ShredStream 使用独立端点,**不要**用 `GRPC_URL`。
223
235
 
224
- Python ShredStream 热路径只使用静态账户表。V0 ALT-loaded 指令账户会用默认 pubkey 占位,外层 program id 若来自 ALT 会按 discriminator best-effort 解析。Inner CPI / 仅日志事件仍需 Yellowstone/RPC 路径。
236
+ Python ShredStream 热路径默认严格解析静态账户;V0 ALT 指令需传入加载地址或读取预热缓存的 slot-aware resolver,未解析完整时跳过。旧占位行为需显式调用 `parse_shred_transaction_best_effort`。受支持的包装与官方路由输出 `PumpRouteIntent`,原始 shred 无法还原任意 CPI。Inner CPI / 仅日志事件仍需 Yellowstone/RPC 路径。
225
237
 
226
238
  ---
227
239
 
@@ -232,18 +244,18 @@ Python ShredStream 热路径只使用静态账户表。V0 ALT-loaded 指令账
232
244
  | 描述 | 运行命令 | 源码 |
233
245
  |------|----------|------|
234
246
  | **PumpFun** | | |
235
- | PumpFun 交易过滤 | `python examples/pumpfun_trade_filter.py` | [pumpfun_trade_filter.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/pumpfun_trade_filter.py) |
236
- | PumpFun 事件 + 性能指标 | `python examples/pumpfun_with_metrics.py` | [pumpfun_with_metrics.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/pumpfun_with_metrics.py) |
237
- | PumpFun 快速连接测试 | `python examples/pumpfun_quick_test.py` | [pumpfun_quick_test.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/pumpfun_quick_test.py) |
247
+ | PumpFun 交易过滤 | `python examples/pumpfun_trade_filter.py` | [pumpfun_trade_filter.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/pumpfun_trade_filter.py) | `v0.5.13` |
248
+ | PumpFun 事件 + 性能指标 | `python examples/pumpfun_with_metrics.py` | [pumpfun_with_metrics.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/pumpfun_with_metrics.py) | `v0.5.13` |
249
+ | PumpFun 快速连接测试 | `python examples/pumpfun_quick_test.py` | [pumpfun_quick_test.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/pumpfun_quick_test.py) | `v0.5.13` |
238
250
  | **PumpSwap** | | |
239
- | PumpSwap 超低延迟 | `python examples/pumpswap_low_latency.py` | [pumpswap_low_latency.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/pumpswap_low_latency.py) |
240
- | PumpSwap 事件 + 性能指标 | `python examples/pumpswap_with_metrics.py` | [pumpswap_with_metrics.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/pumpswap_with_metrics.py) |
251
+ | PumpSwap 超低延迟 | `python examples/pumpswap_low_latency.py` | [pumpswap_low_latency.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/pumpswap_low_latency.py) | `v0.5.13` |
252
+ | PumpSwap 事件 + 性能指标 | `python examples/pumpswap_with_metrics.py` | [pumpswap_with_metrics.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/pumpswap_with_metrics.py) | `v0.5.13` |
241
253
  | **Meteora DAMM** | | |
242
- | Meteora DAMM V2 事件 | `python examples/meteora_damm_grpc.py` | [meteora_damm_grpc.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/meteora_damm_grpc.py) |
254
+ | Meteora DAMM V2 事件 | `python examples/meteora_damm_grpc.py` | [meteora_damm_grpc.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/meteora_damm_grpc.py) | `v0.5.13` |
243
255
  | **多协议** | | |
244
- | 订阅 Rust `Protocol` / `program_ids` 中的全部程序 | `python examples/multi_protocol_grpc.py` | [multi_protocol_grpc.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/multi_protocol_grpc.py) |
256
+ | 订阅 Rust `Protocol` / `program_ids` 中的全部程序 | `python examples/multi_protocol_grpc.py` | [multi_protocol_grpc.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/multi_protocol_grpc.py) | `v0.5.13` |
245
257
  | **工具** | | |
246
- | 按签名解析交易(HTTP RPC,非 gRPC)。`.env` 或环境中 `TX_SIGNATURE` / `RPC_URL` 或 `SOLANA_RPC_URL`,或 `--sig` / `--rpc`。 | `python examples/parse_tx_by_signature.py` | [parse_tx_by_signature.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/parse_tx_by_signature.py) |
258
+ | 按签名解析交易(HTTP RPC,非 gRPC)。`.env` 或环境中 `TX_SIGNATURE` / `RPC_URL` 或 `SOLANA_RPC_URL`,或 `--sig` / `--rpc`。 | `python examples/parse_tx_by_signature.py` | [parse_tx_by_signature.py](https://github.com/0xfnzero/sol-parser-sdk-python/blob/main/examples/parse_tx_by_signature.py) | `v0.5.13` |
247
259
 
248
260
  **环境变量:** gRPC 示例需要 **`GRPC_URL`** 或 **`GRPC_ENDPOINT`**,以及 **`GRPC_AUTH_TOKEN`** 或 **`GRPC_TOKEN`**(或旧名 `GEYSER_*`)。详见 **`.env.example`**。
249
261
 
@@ -315,3 +327,7 @@ MIT — https://github.com/0xfnzero/sol-parser-sdk-python
315
327
  完整跨语言 API 对齐仍在进行;公开行为和支持边界见 [API 迁移说明](docs/USAGE.md#api-compatibility),使用方法见 examples 目录。
316
328
 
317
329
  PumpFun create/create_v2 的共享主网样本、重放方法和验证边界见 [验证说明](https://github.com/0xfnzero/sol-parser-sdk-golang/tree/main/validation/pumpfun_create_20261007)。
330
+
331
+ ### Pump ShredStream 离线回归
332
+
333
+ 已同步路由意图事件、严格 ALT 缓存解析和本语言原生签名回放/SBF 模拟示例。运行命令、缓存 API、冻结数据来源与测试范围见 [examples/offline_bank/README.md](examples/offline_bank/README.md)。默认跳过账户未解析完整的指令;旧行为需显式使用 best-effort 入口。路由意图不等于已成交事件,解析热路径不调用 RPC。
@@ -0,0 +1,46 @@
1
+ {
2
+ "program": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P",
3
+ "accounts": [
4
+ "4wTV1YmiEkRvAtNtsSGPtUrqRYQMe5SKy2uB4Jjaxnjf",
5
+ "8Wf5TiAheLUqBrKXeYg2JtAFFMWtKdG2BSFgqUcPVwTt",
6
+ "ADyA8hdefvWN2dbGGWFotbzWxrAvLW83WG6QCVXvJKqw",
7
+ "3tNPvytXB9yTZLgh5RGdjrXVxHp89vGeCiwx9juqgp7q",
8
+ "GLN7Dr7AsP9GRxAjxiVBk9Rnwyn74ar2R3BuGk8ZxQn1",
9
+ "61dpJFJMibmcTPt1wHZqqnpHJVLAm8ucoyC8SbnJPakL",
10
+ "AWyT2NXBXazaAAcTBUaXxudhyayarJvUYeTF2CoS5QSc",
11
+ "CA7v8gHfbquYXyDnDx6QxWW8hmL1H7X6Y2RYDrGLnuck",
12
+ "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
13
+ "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb",
14
+ "11111111111111111111111111111111",
15
+ "Ce6TQqeHC9p8KetsN6JsjHK7UTZk7nasjjnr7XxXp9F1",
16
+ "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P",
17
+ "EyD7ScKBR3y6YG3HGRXpqdoHqnh5ffREGM6tYCz3pump",
18
+ "6x4Z2dr5DgHUBCKvta8T8GNsFTxJhsBZxNrycWQ8pump",
19
+ "7Uq8BaY6MdgjdhTu6qKrVJeqanGnHsK84tgspC5Tm2jR",
20
+ "DtwaGDGMdsxj3nqrqncvBZXMndBCwPgng8QFKHC82pGK",
21
+ "2NWtpykajU62mQyK7TpdLNDrndqiBcqH1rZQ6SFUqrcS"
22
+ ],
23
+ "data": [
24
+ 225,
25
+ 154,
26
+ 117,
27
+ 22,
28
+ 215,
29
+ 86,
30
+ 246,
31
+ 103,
32
+ 254,
33
+ 184,
34
+ 223,
35
+ 240,
36
+ 66,
37
+ 0,
38
+ 0,
39
+ 0,
40
+ 1,
41
+ 0,
42
+ 0,
43
+ 0,
44
+ 2
45
+ ]
46
+ }