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.
- sol_parser_sdk_python-0.5.11/README.md → sol_parser_sdk_python-0.5.13/PKG-INFO +61 -16
- sol_parser_sdk_python-0.5.11/PKG-INFO → sol_parser_sdk_python-0.5.13/README.md +39 -35
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/README_CN.md +32 -16
- sol_parser_sdk_python-0.5.13/examples/fixtures/pump_curve_instruction.json +46 -0
- sol_parser_sdk_python-0.5.13/examples/fixtures/pump_shred_routes.json +314 -0
- sol_parser_sdk_python-0.5.13/examples/hot_path_benchmark.json +1 -0
- sol_parser_sdk_python-0.5.13/examples/hot_path_benchmark.py +44 -0
- sol_parser_sdk_python-0.5.13/examples/offline_bank/README.md +30 -0
- sol_parser_sdk_python-0.5.13/examples/offline_bank/config.json +5 -0
- sol_parser_sdk_python-0.5.13/examples/offline_bank/expected.json +132 -0
- sol_parser_sdk_python-0.5.13/examples/offline_bank/programs.json +8 -0
- sol_parser_sdk_python-0.5.13/examples/offline_bank/snapshot.json.gz +0 -0
- sol_parser_sdk_python-0.5.13/examples/pump_offline_bank.py +148 -0
- sol_parser_sdk_python-0.5.13/examples/pump_shred_routes.py +100 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/pyproject.toml +5 -1
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/__init__.py +5 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/event_type_parity.py +1 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/event_types.py +12 -1
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/grpc_types.py +3 -0
- sol_parser_sdk_python-0.5.13/sol_parser/pump_routes.py +89 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/pump_upgrade.py +4 -11
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/shredstream_client.py +93 -98
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/wire_transaction.py +25 -9
- sol_parser_sdk_python-0.5.13/tests/fixtures/pump_depth2_20261014.json +5513 -0
- sol_parser_sdk_python-0.5.13/tests/test_hot_path_wire_decoder.py +40 -0
- sol_parser_sdk_python-0.5.13/tests/test_pump_depth2.py +16 -0
- sol_parser_sdk_python-0.5.13/tests/test_pump_offline_bank.py +10 -0
- sol_parser_sdk_python-0.5.13/tests/test_pump_shred_routes.py +8 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_shred_wire_sanitize.py +4 -2
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/.env.example +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/.gitignore +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/docs/USAGE.md +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/block_meta_stream.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/fixtures/amm_v4_grpc_refresh_20261002.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/fixtures/batch2_cpmm_simulations_20261003.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/fixtures/block_meta_grpc_20261002.json +0 -0
- {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
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/fixtures/cached_tip_routes_20261002.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/fixtures/cpmm_lp_simulations_20261006.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/fixtures/damm_v2_mainnet_simulations_20261004.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/fixtures/pumpfun_current_mainnet_simulations_20261004.json +0 -0
- {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
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/fixtures/pumpfun_settlement_mainnet_simulations_20261004.json +0 -0
- {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
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/fixtures/pumpswap_mainnet_simulations_20261004.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/fixtures/simulation_ata_20261002.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/fixtures/simulation_routes_live_20261002.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/meteora_damm_grpc.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/multi_protocol_grpc.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/parse_tx_by_signature.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/pumpfun_quick_test.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/pumpfun_trade_filter.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/pumpfun_with_metrics.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/pumpswap_low_latency.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/pumpswap_with_metrics.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/rust_example_utils.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/simulation_routes.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/stonkfun_routes.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/examples/stonkfun_snapshot_refresh.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/scripts/bench_parser.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/scripts/gen_golden_rust.sh +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/account_dispatcher.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/account_fillers/__init__.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/account_fillers/meteora.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/account_fillers/orca.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/account_fillers/pumpfun.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/account_fillers/pumpswap.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/account_fillers/raydium.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/account_fillers/raydium_launchlab.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/accounts/__init__.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/accounts/raydium_orca.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/accounts/rpc_wallet.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/accounts/utils.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/block_meta.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/check_migration.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/clock.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/common/__init__.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/dex_parsers.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/entries_decode.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/env_config.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/geyser_pb2.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/geyser_pb2_grpc.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/grpc/__init__.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/grpc/geyser_connect.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/grpc/subscribe_builder.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/grpc/transaction_meta.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/grpc_client.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/grpc_instruction_parser.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/inner_instruction_parser.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/instr/__init__.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/instr_account_utils.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/instructions.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/json_util.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/liquidity_snapshot.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/log_instr_dedup.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/logs/__init__.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/market.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/merger.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/order_buffer.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/parser.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/pumpfun_fee_enrich.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/rpc_parser.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/rust_api_inventory.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/rust_event_json.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/shredstream_pb2.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/shredstream_pb2_grpc.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/shredstream_pumpfun.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/simulation_route.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/solana_storage_pb2.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/solana_storage_pb2_grpc.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/stonkfun_registry.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/transaction_route.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/u128_parity.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/sol_parser/verify_discriminators.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/account_lifecycle_20261008.json +0 -0
- {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
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/cached_tip_routes_20261002.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/clmm_fee_rewards_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/clmm_liquidity_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/clmm_one_sided_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/cpmm_liquidity_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/cpmm_lp_simulations_20261006.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_borrow_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_cpi_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_dual_claims_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_reward_admin_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_reward_renewal_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_reward_withdraw_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_upstream_hook_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_v1_config2_instruction_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_v1_live_simulations_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_v2_authority_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_v2_fees_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_v2_liquidity_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_v2_mainnet_simulations_20261004.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_v2_rewards_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/damm_v2_vesting_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/dbc_boundary_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/dbc_live_simulations_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/dbc_migration_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/dbc_referral_live_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/dbc_swap2.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/dbc_v1_migration_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/dlmm_fees_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/dlmm_hook_rewards_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/dlmm_rewards_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/golden_parse_log.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/launchlab_migration_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/native_settlement_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pump_compact_simulations_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pump_holder_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pump_routes_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pump_synthetic_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pump_upgrade/account_context.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pump_upgrade/boost_account_context.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pump_upgrade/events.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pump_upgrade/mainnet.json +0 -0
- {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
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pump_upgrade/simulation_events.json +0 -0
- {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
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/2MfmZSU8mWEbskNHAxQGphAyB5x72SC2HYuAkLeSyH6MjttUHqUjm24wPMeH7zrCoQoYFwbLeiFE571mc8WvgZyL.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/2dabmQiykzC1tsNmgtRFbsRJjEKMfUySgScJc2J2uq8CQtoXWZ3YyT99p3nVuCXifEhLkyUe4Sf4nfe2UkFT8AJr.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/2eVpZNvQYPMBVNT5357Qt7HVAUSv9gdwqxKStvdwQ498rcJLLCHVcYPaGfFqVBz44ndYvkA1H4CwjBuDSviAj7jp.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/3GufGVVRrnrH1Yuto57jDeTKXeki6ooE9w6h4qYRvNm5FcCpxwDHNvzHXdpAMbxRmukWJpSPHUKHEjnFTCC979ka.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/3LQK2JHVbVSSfyCYwTwzoYTY9NEN4gZXzqw3TvAvMJHsvPsopCHtsa5ALhj4tFn8xWbmJ5DsYMMcnPukTBkSjtQf.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/3MRWKDUcD5CGn5Xz4qWyGA8Y9udw4SsSr4gcxCjTUqCFt6Zc6uiwHF1wLZXKoqBcGEM2kruBS85ymYxmYk8FLGBk.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/3NBSCgAXpNqg7JBUzp6RsfZYzf2QbbHi6r2wcoBF4Lpuzozae7ExUJUGoqpVCXXs8cbibr6aWySH1bsg86Enuhez.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/3QVpcUq64D4DUV9empFr3G98pCEa1Cp2fAcFJKyiJGsQ2ir2S4yBLhHYXPNmLfCE8KVDgLApfBYTFM7pf9JVPbsb.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/3REXMDkvZsWvgc8czYpfn24avz18APMuzbV2VgQBeymArdJvfQcfcpKr46f3j1H2bAiymFneaNocPH7KzPUPbR1S.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/3ejAydePsZTUfeZaU9eiAM37gV5AYPG9hhyMtUobJLQtSMgroDeiE8njXu2JiwMyX5YJLp3vrfNPy89S7EDdUCAy.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/3zC4bw1osyebZ77KagXYP3b5rEBHvJCgcwCriCLc5gAUp9Ev6Bx5ZMbqnYpkKE2VgZgMFcZN5FYKQfcKL45MWpyu.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/5PgkFgTLSEZPZhxgWNToPzTZct95SycuaH9H3g82YwcKXudtiynEZmiaoQrhGv2gdZLrvsVZ5Wn88KGirbFYpLrt.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_create/661yA5s6uxUsggTcT4cZ6yyMfNmF4mCZzxLnCb1zBrSY3YhAiouYXBitiPvkngBEKxaeGcpXiek6qXDajiRr9wuY.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_current_mainnet_simulations_20261004.json +0 -0
- {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
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpfun_settlement_mainnet_simulations_20261004.json +0 -0
- {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
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpswap_liquidity_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/pumpswap_mainnet_simulations_20261004.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/review10_compiled_bounds.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/review10_prefunded_ata.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/review10_wire_bounds.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/signed_alt_load_rejections_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/signed_clmm_boundaries_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/signed_cpmm_bank_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/signed_dex_replay_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/signed_identical_alt_bank_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/signed_multileg_bank_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/signed_nested_cpi_bank_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/signed_replay_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/signed_wire_boundaries_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/simulation_alt_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/simulation_ata_20261002.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/simulation_routes_live_20261002.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/stonkfun_routes_0_7_7.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/whirlpool_fees_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/whirlpool_hook_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/whirlpool_liquidity_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/fixtures/whirlpool_one_sided_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_amm_v4_v2.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_block_meta.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_clmm_fee_rewards_bank.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_clmm_liquidity_bank.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_clmm_one_sided_bank.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_cpmm_liquidity_bank.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_damm_borrow_bank.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_damm_cpi_bank.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_damm_dual_claims_bank.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_damm_reward_admin_bank.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_damm_reward_renewal_bank.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_damm_reward_withdraw_bank.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_damm_upstream_hook_bank.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_damm_v1_live_simulations.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_damm_v2_authority_bank.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_damm_v2_fees_bank.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_damm_v2_liquidity_bank.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_damm_v2_rewards_bank.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_damm_v2_vesting_bank.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_dbc_boundary_bank.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_dbc_migration_bank.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_dbc_upgrade.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_dbc_v1_migration_bank.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_dex_retry_delay.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_dlmm_fees_bank.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_dlmm_hook_bank.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_dlmm_rewards_bank.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_exact_metadata_json.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_filter_and_account_parity.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_golden.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_grpc_unary_methods.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_imports_and_inner.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_launchlab_invocation_anchor.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_launchlab_migration_bank.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_log_instr_dedup.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_market_helpers.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_native_grpc_server.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_native_plan_lifecycle.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_orca_whirlpool_instruction_parity.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_order_buffer.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_ordered_late_regression.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_prefix_prefilter.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_protocol_current_fields.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_pump_compact_simulation_routes.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_pump_fees_instruction_parity.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_pump_holder_bank.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_pump_routes_bank.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_pump_synthetic_bank.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_pump_trade_account_context.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_pump_trade_merge_identity.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_pump_upgrade_events.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_pump_upgrade_mainnet.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_pumpfun_account_fill.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_pumpfun_create_regression.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_pumpfun_trade_tail.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_pumpfun_v2_parity.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_pumpswap_account_context.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_pumpswap_instruction.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_pumpswap_liquidity_bank.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_pumpswap_upgrade.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_raydium_clmm_instruction_parity.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_raydium_current_logs.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_review10.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_review_batch2.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_shredstream.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_signed_transaction_replay.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_simulation_route.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_snapshot_refresh_example.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_stonkfun_routes.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_whirlpool_fees_bank.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_whirlpool_hook_bank.py +0 -0
- {sol_parser_sdk_python-0.5.11 → sol_parser_sdk_python-0.5.13}/tests/test_whirlpool_liquidity_bank.py +0 -0
- {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.
|
|
46
|
-
| **Rust** | [sol-trade-sdk](https://github.com/0xfnzero/sol-trade-sdk) | Solana DEX trade construction and transaction execution | `v6.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.
|
|
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
|
|
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.
|
|
65
|
-
| **Rust** | [sol-trade-sdk](https://github.com/0xfnzero/sol-trade-sdk) | Solana DEX trade construction and transaction execution | `v6.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.
|
|
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
|
|
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.
|
|
46
|
-
| **Rust** | [sol-trade-sdk](https://github.com/0xfnzero/sol-trade-sdk) | Solana DEX 交易构建与交易执行 | `v6.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.
|
|
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
|
|
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
|
+
}
|