sol-parser-sdk-python 0.5.12__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.12/README.md → sol_parser_sdk_python-0.5.13/PKG-INFO +55 -16
  2. sol_parser_sdk_python-0.5.12/PKG-INFO → sol_parser_sdk_python-0.5.13/README.md +33 -35
  3. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/README_CN.md +26 -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.12 → sol_parser_sdk_python-0.5.13}/pyproject.toml +5 -1
  16. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/__init__.py +5 -0
  17. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/event_type_parity.py +1 -0
  18. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/event_types.py +12 -1
  19. {sol_parser_sdk_python-0.5.12 → 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.12 → sol_parser_sdk_python-0.5.13}/sol_parser/pump_upgrade.py +4 -11
  22. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/shredstream_client.py +93 -98
  23. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/wire_transaction.py +25 -9
  24. sol_parser_sdk_python-0.5.13/tests/test_hot_path_wire_decoder.py +40 -0
  25. sol_parser_sdk_python-0.5.13/tests/test_pump_offline_bank.py +10 -0
  26. sol_parser_sdk_python-0.5.13/tests/test_pump_shred_routes.py +8 -0
  27. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_shred_wire_sanitize.py +4 -2
  28. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/.env.example +0 -0
  29. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/.gitignore +0 -0
  30. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/docs/USAGE.md +0 -0
  31. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/examples/block_meta_stream.py +0 -0
  32. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/examples/fixtures/amm_v4_grpc_refresh_20261002.json +0 -0
  33. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/examples/fixtures/batch2_cpmm_simulations_20261003.json +0 -0
  34. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/examples/fixtures/block_meta_grpc_20261002.json +0 -0
  35. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/examples/fixtures/cached_damm_v2_mainnet_simulations_20261004.json +0 -0
  36. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/examples/fixtures/cached_tip_routes_20261002.json +0 -0
  37. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/examples/fixtures/cpmm_lp_simulations_20261006.json +0 -0
  38. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/examples/fixtures/damm_v2_mainnet_simulations_20261004.json +0 -0
  39. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/examples/fixtures/pumpfun_current_mainnet_simulations_20261004.json +0 -0
  40. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/examples/fixtures/pumpfun_funded_sell_mainnet_simulations_20261004.json +0 -0
  41. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/examples/fixtures/pumpfun_settlement_mainnet_simulations_20261004.json +0 -0
  42. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/examples/fixtures/pumpfun_usdc_multihop_mainnet_simulations_20261004.json +0 -0
  43. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/examples/fixtures/pumpswap_mainnet_simulations_20261004.json +0 -0
  44. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/examples/fixtures/simulation_ata_20261002.json +0 -0
  45. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/examples/fixtures/simulation_routes_live_20261002.json +0 -0
  46. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/examples/meteora_damm_grpc.py +0 -0
  47. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/examples/multi_protocol_grpc.py +0 -0
  48. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/examples/parse_tx_by_signature.py +0 -0
  49. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/examples/pumpfun_quick_test.py +0 -0
  50. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/examples/pumpfun_trade_filter.py +0 -0
  51. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/examples/pumpfun_with_metrics.py +0 -0
  52. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/examples/pumpswap_low_latency.py +0 -0
  53. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/examples/pumpswap_with_metrics.py +0 -0
  54. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/examples/rust_example_utils.py +0 -0
  55. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/examples/simulation_routes.py +0 -0
  56. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/examples/stonkfun_routes.py +0 -0
  57. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/examples/stonkfun_snapshot_refresh.py +0 -0
  58. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/scripts/bench_parser.py +0 -0
  59. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/scripts/gen_golden_rust.sh +0 -0
  60. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/account_dispatcher.py +0 -0
  61. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/account_fillers/__init__.py +0 -0
  62. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/account_fillers/meteora.py +0 -0
  63. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/account_fillers/orca.py +0 -0
  64. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/account_fillers/pumpfun.py +0 -0
  65. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/account_fillers/pumpswap.py +0 -0
  66. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/account_fillers/raydium.py +0 -0
  67. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/account_fillers/raydium_launchlab.py +0 -0
  68. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/accounts/__init__.py +0 -0
  69. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/accounts/raydium_orca.py +0 -0
  70. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/accounts/rpc_wallet.py +0 -0
  71. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/accounts/utils.py +0 -0
  72. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/block_meta.py +0 -0
  73. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/check_migration.py +0 -0
  74. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/clock.py +0 -0
  75. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/common/__init__.py +0 -0
  76. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/dex_parsers.py +0 -0
  77. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/entries_decode.py +0 -0
  78. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/env_config.py +0 -0
  79. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/geyser_pb2.py +0 -0
  80. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/geyser_pb2_grpc.py +0 -0
  81. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/grpc/__init__.py +0 -0
  82. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/grpc/geyser_connect.py +0 -0
  83. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/grpc/subscribe_builder.py +0 -0
  84. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/grpc/transaction_meta.py +0 -0
  85. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/grpc_client.py +0 -0
  86. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/grpc_instruction_parser.py +0 -0
  87. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/inner_instruction_parser.py +0 -0
  88. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/instr/__init__.py +0 -0
  89. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/instr_account_utils.py +0 -0
  90. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/instructions.py +0 -0
  91. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/json_util.py +0 -0
  92. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/liquidity_snapshot.py +0 -0
  93. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/log_instr_dedup.py +0 -0
  94. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/logs/__init__.py +0 -0
  95. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/market.py +0 -0
  96. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/merger.py +0 -0
  97. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/order_buffer.py +0 -0
  98. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/parser.py +0 -0
  99. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/pumpfun_fee_enrich.py +0 -0
  100. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/rpc_parser.py +0 -0
  101. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/rust_api_inventory.py +0 -0
  102. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/rust_event_json.py +0 -0
  103. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/shredstream_pb2.py +0 -0
  104. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/shredstream_pb2_grpc.py +0 -0
  105. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/shredstream_pumpfun.py +0 -0
  106. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/simulation_route.py +0 -0
  107. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/solana_storage_pb2.py +0 -0
  108. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/solana_storage_pb2_grpc.py +0 -0
  109. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/stonkfun_registry.py +0 -0
  110. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/transaction_route.py +0 -0
  111. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/u128_parity.py +0 -0
  112. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/sol_parser/verify_discriminators.py +0 -0
  113. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/account_lifecycle_20261008.json +0 -0
  114. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/cached_damm_v2_mainnet_simulations_20261004.json +0 -0
  115. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/cached_tip_routes_20261002.json +0 -0
  116. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/clmm_fee_rewards_20261008.json +0 -0
  117. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/clmm_liquidity_20261008.json +0 -0
  118. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/clmm_one_sided_20261008.json +0 -0
  119. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/cpmm_liquidity_20261008.json +0 -0
  120. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/cpmm_lp_simulations_20261006.json +0 -0
  121. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_borrow_20261009.json +0 -0
  122. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_cpi_20261009.json +0 -0
  123. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_dual_claims_20261009.json +0 -0
  124. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_reward_admin_20261009.json +0 -0
  125. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_reward_renewal_20261009.json +0 -0
  126. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_reward_withdraw_20261009.json +0 -0
  127. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_upstream_hook_20261009.json +0 -0
  128. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_v1_config2_instruction_20261008.json +0 -0
  129. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_v1_live_simulations_20261008.json +0 -0
  130. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_v2_authority_20261008.json +0 -0
  131. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_v2_fees_20261008.json +0 -0
  132. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_v2_liquidity_20261008.json +0 -0
  133. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_v2_mainnet_simulations_20261004.json +0 -0
  134. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_v2_rewards_20261008.json +0 -0
  135. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_v2_vesting_20261008.json +0 -0
  136. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/dbc_boundary_20261008.json +0 -0
  137. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/dbc_live_simulations_20261008.json +0 -0
  138. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/dbc_migration_20261008.json +0 -0
  139. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/dbc_referral_live_20261008.json +0 -0
  140. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/dbc_swap2.json +0 -0
  141. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/dbc_v1_migration_20261008.json +0 -0
  142. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/dlmm_fees_20261008.json +0 -0
  143. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/dlmm_hook_rewards_20261009.json +0 -0
  144. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/dlmm_rewards_20261008.json +0 -0
  145. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/golden_parse_log.json +0 -0
  146. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/launchlab_migration_20261009.json +0 -0
  147. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/native_settlement_20261008.json +0 -0
  148. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pump_compact_simulations_20261008.json +0 -0
  149. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pump_depth2_20261014.json +0 -0
  150. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pump_holder_20261009.json +0 -0
  151. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pump_routes_20261009.json +0 -0
  152. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pump_synthetic_20261009.json +0 -0
  153. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pump_upgrade/account_context.json +0 -0
  154. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pump_upgrade/boost_account_context.json +0 -0
  155. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pump_upgrade/events.json +0 -0
  156. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pump_upgrade/mainnet.json +0 -0
  157. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pump_upgrade/pump_trade_account_context.json +0 -0
  158. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pump_upgrade/simulation_events.json +0 -0
  159. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_concentrated_multihop_mainnet_simulations_20261005.json +0 -0
  160. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/2MfmZSU8mWEbskNHAxQGphAyB5x72SC2HYuAkLeSyH6MjttUHqUjm24wPMeH7zrCoQoYFwbLeiFE571mc8WvgZyL.json +0 -0
  161. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/2dabmQiykzC1tsNmgtRFbsRJjEKMfUySgScJc2J2uq8CQtoXWZ3YyT99p3nVuCXifEhLkyUe4Sf4nfe2UkFT8AJr.json +0 -0
  162. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/2eVpZNvQYPMBVNT5357Qt7HVAUSv9gdwqxKStvdwQ498rcJLLCHVcYPaGfFqVBz44ndYvkA1H4CwjBuDSviAj7jp.json +0 -0
  163. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/3GufGVVRrnrH1Yuto57jDeTKXeki6ooE9w6h4qYRvNm5FcCpxwDHNvzHXdpAMbxRmukWJpSPHUKHEjnFTCC979ka.json +0 -0
  164. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/3LQK2JHVbVSSfyCYwTwzoYTY9NEN4gZXzqw3TvAvMJHsvPsopCHtsa5ALhj4tFn8xWbmJ5DsYMMcnPukTBkSjtQf.json +0 -0
  165. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/3MRWKDUcD5CGn5Xz4qWyGA8Y9udw4SsSr4gcxCjTUqCFt6Zc6uiwHF1wLZXKoqBcGEM2kruBS85ymYxmYk8FLGBk.json +0 -0
  166. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/3NBSCgAXpNqg7JBUzp6RsfZYzf2QbbHi6r2wcoBF4Lpuzozae7ExUJUGoqpVCXXs8cbibr6aWySH1bsg86Enuhez.json +0 -0
  167. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/3QVpcUq64D4DUV9empFr3G98pCEa1Cp2fAcFJKyiJGsQ2ir2S4yBLhHYXPNmLfCE8KVDgLApfBYTFM7pf9JVPbsb.json +0 -0
  168. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/3REXMDkvZsWvgc8czYpfn24avz18APMuzbV2VgQBeymArdJvfQcfcpKr46f3j1H2bAiymFneaNocPH7KzPUPbR1S.json +0 -0
  169. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/3ejAydePsZTUfeZaU9eiAM37gV5AYPG9hhyMtUobJLQtSMgroDeiE8njXu2JiwMyX5YJLp3vrfNPy89S7EDdUCAy.json +0 -0
  170. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/3zC4bw1osyebZ77KagXYP3b5rEBHvJCgcwCriCLc5gAUp9Ev6Bx5ZMbqnYpkKE2VgZgMFcZN5FYKQfcKL45MWpyu.json +0 -0
  171. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/5PgkFgTLSEZPZhxgWNToPzTZct95SycuaH9H3g82YwcKXudtiynEZmiaoQrhGv2gdZLrvsVZ5Wn88KGirbFYpLrt.json +0 -0
  172. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/661yA5s6uxUsggTcT4cZ6yyMfNmF4mCZzxLnCb1zBrSY3YhAiouYXBitiPvkngBEKxaeGcpXiek6qXDajiRr9wuY.json +0 -0
  173. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_current_mainnet_simulations_20261004.json +0 -0
  174. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_funded_sell_mainnet_simulations_20261004.json +0 -0
  175. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_settlement_mainnet_simulations_20261004.json +0 -0
  176. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_usdc_multihop_mainnet_simulations_20261004.json +0 -0
  177. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpswap_liquidity_20261008.json +0 -0
  178. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpswap_mainnet_simulations_20261004.json +0 -0
  179. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/review10_compiled_bounds.json +0 -0
  180. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/review10_prefunded_ata.json +0 -0
  181. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/review10_wire_bounds.json +0 -0
  182. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/signed_alt_load_rejections_20261009.json +0 -0
  183. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/signed_clmm_boundaries_20261009.json +0 -0
  184. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/signed_cpmm_bank_20261009.json +0 -0
  185. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/signed_dex_replay_20261009.json +0 -0
  186. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/signed_identical_alt_bank_20261009.json +0 -0
  187. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/signed_multileg_bank_20261009.json +0 -0
  188. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/signed_nested_cpi_bank_20261009.json +0 -0
  189. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/signed_replay_20261009.json +0 -0
  190. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/signed_wire_boundaries_20261009.json +0 -0
  191. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/simulation_alt_20261008.json +0 -0
  192. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/simulation_ata_20261002.json +0 -0
  193. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/simulation_routes_live_20261002.json +0 -0
  194. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/stonkfun_routes_0_7_7.json +0 -0
  195. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/whirlpool_fees_20261008.json +0 -0
  196. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/whirlpool_hook_20261008.json +0 -0
  197. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/whirlpool_liquidity_20261008.json +0 -0
  198. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/fixtures/whirlpool_one_sided_20261008.json +0 -0
  199. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_amm_v4_v2.py +0 -0
  200. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_block_meta.py +0 -0
  201. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_clmm_fee_rewards_bank.py +0 -0
  202. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_clmm_liquidity_bank.py +0 -0
  203. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_clmm_one_sided_bank.py +0 -0
  204. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_cpmm_liquidity_bank.py +0 -0
  205. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_damm_borrow_bank.py +0 -0
  206. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_damm_cpi_bank.py +0 -0
  207. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_damm_dual_claims_bank.py +0 -0
  208. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_damm_reward_admin_bank.py +0 -0
  209. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_damm_reward_renewal_bank.py +0 -0
  210. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_damm_reward_withdraw_bank.py +0 -0
  211. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_damm_upstream_hook_bank.py +0 -0
  212. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_damm_v1_live_simulations.py +0 -0
  213. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_damm_v2_authority_bank.py +0 -0
  214. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_damm_v2_fees_bank.py +0 -0
  215. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_damm_v2_liquidity_bank.py +0 -0
  216. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_damm_v2_rewards_bank.py +0 -0
  217. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_damm_v2_vesting_bank.py +0 -0
  218. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_dbc_boundary_bank.py +0 -0
  219. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_dbc_migration_bank.py +0 -0
  220. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_dbc_upgrade.py +0 -0
  221. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_dbc_v1_migration_bank.py +0 -0
  222. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_dex_retry_delay.py +0 -0
  223. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_dlmm_fees_bank.py +0 -0
  224. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_dlmm_hook_bank.py +0 -0
  225. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_dlmm_rewards_bank.py +0 -0
  226. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_exact_metadata_json.py +0 -0
  227. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_filter_and_account_parity.py +0 -0
  228. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_golden.py +0 -0
  229. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_grpc_unary_methods.py +0 -0
  230. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_imports_and_inner.py +0 -0
  231. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_launchlab_invocation_anchor.py +0 -0
  232. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_launchlab_migration_bank.py +0 -0
  233. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_log_instr_dedup.py +0 -0
  234. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_market_helpers.py +0 -0
  235. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_native_grpc_server.py +0 -0
  236. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_native_plan_lifecycle.py +0 -0
  237. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_orca_whirlpool_instruction_parity.py +0 -0
  238. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_order_buffer.py +0 -0
  239. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_ordered_late_regression.py +0 -0
  240. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_prefix_prefilter.py +0 -0
  241. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_protocol_current_fields.py +0 -0
  242. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_pump_compact_simulation_routes.py +0 -0
  243. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_pump_depth2.py +0 -0
  244. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_pump_fees_instruction_parity.py +0 -0
  245. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_pump_holder_bank.py +0 -0
  246. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_pump_routes_bank.py +0 -0
  247. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_pump_synthetic_bank.py +0 -0
  248. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_pump_trade_account_context.py +0 -0
  249. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_pump_trade_merge_identity.py +0 -0
  250. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_pump_upgrade_events.py +0 -0
  251. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_pump_upgrade_mainnet.py +0 -0
  252. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_pumpfun_account_fill.py +0 -0
  253. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_pumpfun_create_regression.py +0 -0
  254. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_pumpfun_trade_tail.py +0 -0
  255. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_pumpfun_v2_parity.py +0 -0
  256. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_pumpswap_account_context.py +0 -0
  257. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_pumpswap_instruction.py +0 -0
  258. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_pumpswap_liquidity_bank.py +0 -0
  259. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_pumpswap_upgrade.py +0 -0
  260. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_raydium_clmm_instruction_parity.py +0 -0
  261. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_raydium_current_logs.py +0 -0
  262. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_review10.py +0 -0
  263. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_review_batch2.py +0 -0
  264. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_shredstream.py +0 -0
  265. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_signed_transaction_replay.py +0 -0
  266. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_simulation_route.py +0 -0
  267. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_snapshot_refresh_example.py +0 -0
  268. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_stonkfun_routes.py +0 -0
  269. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_whirlpool_fees_bank.py +0 -0
  270. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_whirlpool_hook_bank.py +0 -0
  271. {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.13}/tests/test_whirlpool_liquidity_bank.py +0 -0
  272. {sol_parser_sdk_python-0.5.12 → 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,21 @@ 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 | `v0.7.13` |
42
- | Node.js | [sol-parser-sdk-nodejs](https://github.com/0xfnzero/sol-parser-sdk-nodejs) | TypeScript/JavaScript for Node.js | `v0.5.19` |
43
- | Python | [sol-parser-sdk-python](https://github.com/0xfnzero/sol-parser-sdk-python) | Async/await native support | `v0.5.12` |
44
- | Go | [sol-parser-sdk-golang](https://github.com/0xfnzero/sol-parser-sdk-golang) | Go transaction and account event parsing | `v0.5.12` |
45
- | **Rust** | [sol-shred-sdk](https://github.com/0xfnzero/sol-shred-sdk) | Raw Solana shred decoding and ShredStream DEX event parsing | `v4.0.4` |
46
- | **Rust** | [sol-trade-sdk](https://github.com/0xfnzero/sol-trade-sdk) | Solana DEX trade construction and transaction execution | `v6.0.1` |
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
+
50
78
  ## v0.5.12 — Pump depth-2 compatibility
51
79
 
52
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.
@@ -122,7 +150,7 @@ This is the Python implementation of the FnZero Solana DEX parser SDK for asynci
122
150
  **From PyPI**
123
151
 
124
152
  ```bash
125
- pip install sol-parser-sdk-python==0.5.12
153
+ pip install sol-parser-sdk-python==0.5.13
126
154
  ```
127
155
 
128
156
  **From source**
@@ -227,7 +255,7 @@ asyncio.run(main())
227
255
 
228
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`.
229
257
 
230
- 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.
231
259
 
232
260
  ---
233
261
 
@@ -238,18 +266,18 @@ From the **package root** after `pip install -e .`. Run with `python examples/<f
238
266
  | Description | Run command | Source |
239
267
  |-------------|-------------|--------|
240
268
  | **PumpFun** | | |
241
- | 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.12` |
242
- | 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.12` |
243
- | 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.12` |
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` |
244
272
  | **PumpSwap** | | |
245
- | 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.12` |
246
- | 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.12` |
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` |
247
275
  | **Meteora DAMM** | | |
248
- | 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.12` |
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` |
249
277
  | **Multi-protocol** | | |
250
- | 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.12` |
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` |
251
279
  | **Utility** | | |
252
- | 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.12` |
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` |
253
281
 
254
282
  **Env:** gRPC examples need **`GRPC_URL`** or **`GRPC_ENDPOINT`**, plus **`GRPC_AUTH_TOKEN`** or **`GRPC_TOKEN`** (or legacy `GEYSER_*`). See **`.env.example`**.
255
283
 
@@ -352,3 +380,14 @@ Full cross-language API parity is still in progress. See the [API migration guid
352
380
  实时 parser → trade 接入使用 Yellowstone **gRPC**;见 [gRPC 缓存接入与三语言示例](docs/USAGE.md#grpc-cache)。此路径不使用 WebSocket,报价和构建热路径不调用 RPC。
353
381
 
354
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.4
2
- Name: sol-parser-sdk-python
3
- Version: 0.5.12
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,21 @@ 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 | `v0.7.13` |
61
- | Node.js | [sol-parser-sdk-nodejs](https://github.com/0xfnzero/sol-parser-sdk-nodejs) | TypeScript/JavaScript for Node.js | `v0.5.19` |
62
- | Python | [sol-parser-sdk-python](https://github.com/0xfnzero/sol-parser-sdk-python) | Async/await native support | `v0.5.12` |
63
- | Go | [sol-parser-sdk-golang](https://github.com/0xfnzero/sol-parser-sdk-golang) | Go transaction and account event parsing | `v0.5.12` |
64
- | **Rust** | [sol-shred-sdk](https://github.com/0xfnzero/sol-shred-sdk) | Raw Solana shred decoding and ShredStream DEX event parsing | `v4.0.4` |
65
- | **Rust** | [sol-trade-sdk](https://github.com/0xfnzero/sol-trade-sdk) | Solana DEX trade construction and transaction execution | `v6.0.1` |
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
+
69
56
  ## v0.5.12 — Pump depth-2 compatibility
70
57
 
71
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.
@@ -141,7 +128,7 @@ This is the Python implementation of the FnZero Solana DEX parser SDK for asynci
141
128
  **From PyPI**
142
129
 
143
130
  ```bash
144
- pip install sol-parser-sdk-python==0.5.12
131
+ pip install sol-parser-sdk-python==0.5.13
145
132
  ```
146
133
 
147
134
  **From source**
@@ -246,7 +233,7 @@ asyncio.run(main())
246
233
 
247
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`.
248
235
 
249
- 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.
250
237
 
251
238
  ---
252
239
 
@@ -257,18 +244,18 @@ From the **package root** after `pip install -e .`. Run with `python examples/<f
257
244
  | Description | Run command | Source |
258
245
  |-------------|-------------|--------|
259
246
  | **PumpFun** | | |
260
- | 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.12` |
261
- | 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.12` |
262
- | 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.12` |
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` |
263
250
  | **PumpSwap** | | |
264
- | 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.12` |
265
- | 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.12` |
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` |
266
253
  | **Meteora DAMM** | | |
267
- | 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.12` |
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` |
268
255
  | **Multi-protocol** | | |
269
- | 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.12` |
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` |
270
257
  | **Utility** | | |
271
- | 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.12` |
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` |
272
259
 
273
260
  **Env:** gRPC examples need **`GRPC_URL`** or **`GRPC_ENDPOINT`**, plus **`GRPC_AUTH_TOKEN`** or **`GRPC_TOKEN`** (or legacy `GEYSER_*`). See **`.env.example`**.
274
261
 
@@ -371,3 +358,14 @@ Full cross-language API parity is still in progress. See the [API migration guid
371
358
  实时 parser → trade 接入使用 Yellowstone **gRPC**;见 [gRPC 缓存接入与三语言示例](docs/USAGE.md#grpc-cache)。此路径不使用 WebSocket,报价和构建热路径不调用 RPC。
372
359
 
373
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 交易与账户事件解析 | `v0.7.13` |
42
- | Node.js | [sol-parser-sdk-nodejs](https://github.com/0xfnzero/sol-parser-sdk-nodejs) | TypeScript/JavaScript,Node.js 支持 | `v0.5.19` |
43
- | Python | [sol-parser-sdk-python](https://github.com/0xfnzero/sol-parser-sdk-python) | 原生 async/await 支持 | `v0.5.12` |
44
- | Go | [sol-parser-sdk-golang](https://github.com/0xfnzero/sol-parser-sdk-golang) | Go 交易与账户事件解析 | `v0.5.12` |
45
- | **Rust** | [sol-shred-sdk](https://github.com/0xfnzero/sol-shred-sdk) | Solana 原始 shred 解码与 ShredStream DEX 事件解析 | `v4.0.4` |
46
- | **Rust** | [sol-trade-sdk](https://github.com/0xfnzero/sol-trade-sdk) | Solana DEX 交易构建与交易执行 | `v6.0.1` |
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,12 @@
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
+
65
71
  ## v0.5.12 — Pump depth-2 compatibility
66
72
 
67
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.
@@ -122,7 +128,7 @@ Validation includes local CPU benchmarks and offline signed-bank scenarios. Meas
122
128
  **PyPI**
123
129
 
124
130
  ```bash
125
- pip install sol-parser-sdk-python==0.5.12
131
+ pip install sol-parser-sdk-python==0.5.13
126
132
  ```
127
133
 
128
134
  **源码**
@@ -227,7 +233,7 @@ asyncio.run(main())
227
233
 
228
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`。
229
235
 
230
- 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 路径。
231
237
 
232
238
  ---
233
239
 
@@ -238,18 +244,18 @@ Python ShredStream 热路径只使用静态账户表。V0 ALT-loaded 指令账
238
244
  | 描述 | 运行命令 | 源码 |
239
245
  |------|----------|------|
240
246
  | **PumpFun** | | |
241
- | 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.12` |
242
- | 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.12` |
243
- | 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.12` |
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` |
244
250
  | **PumpSwap** | | |
245
- | 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.12` |
246
- | 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.12` |
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` |
247
253
  | **Meteora DAMM** | | |
248
- | 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.12` |
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` |
249
255
  | **多协议** | | |
250
- | 订阅 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.12` |
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` |
251
257
  | **工具** | | |
252
- | 按签名解析交易(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.12` |
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` |
253
259
 
254
260
  **环境变量:** gRPC 示例需要 **`GRPC_URL`** 或 **`GRPC_ENDPOINT`**,以及 **`GRPC_AUTH_TOKEN`** 或 **`GRPC_TOKEN`**(或旧名 `GEYSER_*`)。详见 **`.env.example`**。
255
261
 
@@ -321,3 +327,7 @@ MIT — https://github.com/0xfnzero/sol-parser-sdk-python
321
327
  完整跨语言 API 对齐仍在进行;公开行为和支持边界见 [API 迁移说明](docs/USAGE.md#api-compatibility),使用方法见 examples 目录。
322
328
 
323
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
+ }