sol-parser-sdk-python 0.5.12__tar.gz → 0.5.14__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.12/README.md → sol_parser_sdk_python-0.5.14/PKG-INFO +61 -16
- sol_parser_sdk_python-0.5.12/PKG-INFO → sol_parser_sdk_python-0.5.14/README.md +39 -35
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/README_CN.md +32 -16
- sol_parser_sdk_python-0.5.14/examples/fixtures/pump_curve_instruction.json +46 -0
- sol_parser_sdk_python-0.5.14/examples/fixtures/pump_shred_routes.json +314 -0
- sol_parser_sdk_python-0.5.14/examples/hot_path_benchmark.json +1 -0
- sol_parser_sdk_python-0.5.14/examples/hot_path_benchmark.py +44 -0
- sol_parser_sdk_python-0.5.14/examples/offline_bank/README.md +30 -0
- sol_parser_sdk_python-0.5.14/examples/offline_bank/config.json +5 -0
- sol_parser_sdk_python-0.5.14/examples/offline_bank/expected.json +132 -0
- sol_parser_sdk_python-0.5.14/examples/offline_bank/programs.json +8 -0
- sol_parser_sdk_python-0.5.14/examples/offline_bank/snapshot.json.gz +0 -0
- sol_parser_sdk_python-0.5.14/examples/pump_offline_bank.py +148 -0
- sol_parser_sdk_python-0.5.14/examples/pump_shred_routes.py +107 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/pyproject.toml +5 -1
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/__init__.py +5 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/event_type_parity.py +1 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/event_types.py +13 -1
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/grpc_types.py +3 -0
- sol_parser_sdk_python-0.5.14/sol_parser/pump_routes.py +96 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/pump_upgrade.py +4 -11
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/shredstream_client.py +93 -98
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/wire_transaction.py +25 -9
- sol_parser_sdk_python-0.5.14/tests/test_hot_path_wire_decoder.py +40 -0
- sol_parser_sdk_python-0.5.14/tests/test_pump_offline_bank.py +10 -0
- sol_parser_sdk_python-0.5.14/tests/test_pump_shred_routes.py +8 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_shred_wire_sanitize.py +4 -2
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/.env.example +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/.gitignore +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/docs/USAGE.md +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/examples/block_meta_stream.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/examples/fixtures/amm_v4_grpc_refresh_20261002.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/examples/fixtures/batch2_cpmm_simulations_20261003.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/examples/fixtures/block_meta_grpc_20261002.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/examples/fixtures/cached_damm_v2_mainnet_simulations_20261004.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/examples/fixtures/cached_tip_routes_20261002.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/examples/fixtures/cpmm_lp_simulations_20261006.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/examples/fixtures/damm_v2_mainnet_simulations_20261004.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/examples/fixtures/pumpfun_current_mainnet_simulations_20261004.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/examples/fixtures/pumpfun_funded_sell_mainnet_simulations_20261004.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/examples/fixtures/pumpfun_settlement_mainnet_simulations_20261004.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/examples/fixtures/pumpfun_usdc_multihop_mainnet_simulations_20261004.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/examples/fixtures/pumpswap_mainnet_simulations_20261004.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/examples/fixtures/simulation_ata_20261002.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/examples/fixtures/simulation_routes_live_20261002.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/examples/meteora_damm_grpc.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/examples/multi_protocol_grpc.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/examples/parse_tx_by_signature.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/examples/pumpfun_quick_test.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/examples/pumpfun_trade_filter.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/examples/pumpfun_with_metrics.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/examples/pumpswap_low_latency.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/examples/pumpswap_with_metrics.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/examples/rust_example_utils.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/examples/simulation_routes.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/examples/stonkfun_routes.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/examples/stonkfun_snapshot_refresh.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/scripts/bench_parser.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/scripts/gen_golden_rust.sh +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/account_dispatcher.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/account_fillers/__init__.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/account_fillers/meteora.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/account_fillers/orca.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/account_fillers/pumpfun.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/account_fillers/pumpswap.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/account_fillers/raydium.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/account_fillers/raydium_launchlab.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/accounts/__init__.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/accounts/raydium_orca.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/accounts/rpc_wallet.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/accounts/utils.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/block_meta.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/check_migration.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/clock.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/common/__init__.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/dex_parsers.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/entries_decode.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/env_config.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/geyser_pb2.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/geyser_pb2_grpc.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/grpc/__init__.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/grpc/geyser_connect.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/grpc/subscribe_builder.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/grpc/transaction_meta.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/grpc_client.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/grpc_instruction_parser.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/inner_instruction_parser.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/instr/__init__.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/instr_account_utils.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/instructions.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/json_util.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/liquidity_snapshot.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/log_instr_dedup.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/logs/__init__.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/market.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/merger.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/order_buffer.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/parser.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/pumpfun_fee_enrich.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/rpc_parser.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/rust_api_inventory.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/rust_event_json.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/shredstream_pb2.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/shredstream_pb2_grpc.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/shredstream_pumpfun.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/simulation_route.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/solana_storage_pb2.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/solana_storage_pb2_grpc.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/stonkfun_registry.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/transaction_route.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/u128_parity.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/sol_parser/verify_discriminators.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/account_lifecycle_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/cached_damm_v2_mainnet_simulations_20261004.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/cached_tip_routes_20261002.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/clmm_fee_rewards_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/clmm_liquidity_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/clmm_one_sided_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/cpmm_liquidity_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/cpmm_lp_simulations_20261006.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/damm_borrow_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/damm_cpi_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/damm_dual_claims_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/damm_reward_admin_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/damm_reward_renewal_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/damm_reward_withdraw_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/damm_upstream_hook_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/damm_v1_config2_instruction_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/damm_v1_live_simulations_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/damm_v2_authority_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/damm_v2_fees_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/damm_v2_liquidity_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/damm_v2_mainnet_simulations_20261004.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/damm_v2_rewards_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/damm_v2_vesting_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/dbc_boundary_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/dbc_live_simulations_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/dbc_migration_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/dbc_referral_live_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/dbc_swap2.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/dbc_v1_migration_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/dlmm_fees_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/dlmm_hook_rewards_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/dlmm_rewards_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/golden_parse_log.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/launchlab_migration_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/native_settlement_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/pump_compact_simulations_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/pump_depth2_20261014.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/pump_holder_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/pump_routes_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/pump_synthetic_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/pump_upgrade/account_context.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/pump_upgrade/boost_account_context.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/pump_upgrade/events.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/pump_upgrade/mainnet.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/pump_upgrade/pump_trade_account_context.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/pump_upgrade/simulation_events.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/pumpfun_concentrated_multihop_mainnet_simulations_20261005.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/pumpfun_create/2MfmZSU8mWEbskNHAxQGphAyB5x72SC2HYuAkLeSyH6MjttUHqUjm24wPMeH7zrCoQoYFwbLeiFE571mc8WvgZyL.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/pumpfun_create/2dabmQiykzC1tsNmgtRFbsRJjEKMfUySgScJc2J2uq8CQtoXWZ3YyT99p3nVuCXifEhLkyUe4Sf4nfe2UkFT8AJr.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/pumpfun_create/2eVpZNvQYPMBVNT5357Qt7HVAUSv9gdwqxKStvdwQ498rcJLLCHVcYPaGfFqVBz44ndYvkA1H4CwjBuDSviAj7jp.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/pumpfun_create/3GufGVVRrnrH1Yuto57jDeTKXeki6ooE9w6h4qYRvNm5FcCpxwDHNvzHXdpAMbxRmukWJpSPHUKHEjnFTCC979ka.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/pumpfun_create/3LQK2JHVbVSSfyCYwTwzoYTY9NEN4gZXzqw3TvAvMJHsvPsopCHtsa5ALhj4tFn8xWbmJ5DsYMMcnPukTBkSjtQf.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/pumpfun_create/3MRWKDUcD5CGn5Xz4qWyGA8Y9udw4SsSr4gcxCjTUqCFt6Zc6uiwHF1wLZXKoqBcGEM2kruBS85ymYxmYk8FLGBk.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/pumpfun_create/3NBSCgAXpNqg7JBUzp6RsfZYzf2QbbHi6r2wcoBF4Lpuzozae7ExUJUGoqpVCXXs8cbibr6aWySH1bsg86Enuhez.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/pumpfun_create/3QVpcUq64D4DUV9empFr3G98pCEa1Cp2fAcFJKyiJGsQ2ir2S4yBLhHYXPNmLfCE8KVDgLApfBYTFM7pf9JVPbsb.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/pumpfun_create/3REXMDkvZsWvgc8czYpfn24avz18APMuzbV2VgQBeymArdJvfQcfcpKr46f3j1H2bAiymFneaNocPH7KzPUPbR1S.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/pumpfun_create/3ejAydePsZTUfeZaU9eiAM37gV5AYPG9hhyMtUobJLQtSMgroDeiE8njXu2JiwMyX5YJLp3vrfNPy89S7EDdUCAy.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/pumpfun_create/3zC4bw1osyebZ77KagXYP3b5rEBHvJCgcwCriCLc5gAUp9Ev6Bx5ZMbqnYpkKE2VgZgMFcZN5FYKQfcKL45MWpyu.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/pumpfun_create/5PgkFgTLSEZPZhxgWNToPzTZct95SycuaH9H3g82YwcKXudtiynEZmiaoQrhGv2gdZLrvsVZ5Wn88KGirbFYpLrt.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/pumpfun_create/661yA5s6uxUsggTcT4cZ6yyMfNmF4mCZzxLnCb1zBrSY3YhAiouYXBitiPvkngBEKxaeGcpXiek6qXDajiRr9wuY.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/pumpfun_current_mainnet_simulations_20261004.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/pumpfun_funded_sell_mainnet_simulations_20261004.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/pumpfun_settlement_mainnet_simulations_20261004.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/pumpfun_usdc_multihop_mainnet_simulations_20261004.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/pumpswap_liquidity_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/pumpswap_mainnet_simulations_20261004.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/review10_compiled_bounds.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/review10_prefunded_ata.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/review10_wire_bounds.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/signed_alt_load_rejections_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/signed_clmm_boundaries_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/signed_cpmm_bank_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/signed_dex_replay_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/signed_identical_alt_bank_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/signed_multileg_bank_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/signed_nested_cpi_bank_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/signed_replay_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/signed_wire_boundaries_20261009.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/simulation_alt_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/simulation_ata_20261002.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/simulation_routes_live_20261002.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/stonkfun_routes_0_7_7.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/whirlpool_fees_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/whirlpool_hook_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/whirlpool_liquidity_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/fixtures/whirlpool_one_sided_20261008.json +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_amm_v4_v2.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_block_meta.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_clmm_fee_rewards_bank.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_clmm_liquidity_bank.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_clmm_one_sided_bank.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_cpmm_liquidity_bank.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_damm_borrow_bank.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_damm_cpi_bank.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_damm_dual_claims_bank.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_damm_reward_admin_bank.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_damm_reward_renewal_bank.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_damm_reward_withdraw_bank.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_damm_upstream_hook_bank.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_damm_v1_live_simulations.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_damm_v2_authority_bank.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_damm_v2_fees_bank.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_damm_v2_liquidity_bank.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_damm_v2_rewards_bank.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_damm_v2_vesting_bank.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_dbc_boundary_bank.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_dbc_migration_bank.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_dbc_upgrade.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_dbc_v1_migration_bank.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_dex_retry_delay.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_dlmm_fees_bank.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_dlmm_hook_bank.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_dlmm_rewards_bank.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_exact_metadata_json.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_filter_and_account_parity.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_golden.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_grpc_unary_methods.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_imports_and_inner.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_launchlab_invocation_anchor.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_launchlab_migration_bank.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_log_instr_dedup.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_market_helpers.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_native_grpc_server.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_native_plan_lifecycle.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_orca_whirlpool_instruction_parity.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_order_buffer.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_ordered_late_regression.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_prefix_prefilter.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_protocol_current_fields.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_pump_compact_simulation_routes.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_pump_depth2.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_pump_fees_instruction_parity.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_pump_holder_bank.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_pump_routes_bank.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_pump_synthetic_bank.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_pump_trade_account_context.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_pump_trade_merge_identity.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_pump_upgrade_events.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_pump_upgrade_mainnet.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_pumpfun_account_fill.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_pumpfun_create_regression.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_pumpfun_trade_tail.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_pumpfun_v2_parity.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_pumpswap_account_context.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_pumpswap_instruction.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_pumpswap_liquidity_bank.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_pumpswap_upgrade.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_raydium_clmm_instruction_parity.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_raydium_current_logs.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_review10.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_review_batch2.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_shredstream.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_signed_transaction_replay.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_simulation_route.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_snapshot_refresh_example.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_stonkfun_routes.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_whirlpool_fees_bank.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_whirlpool_hook_bank.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_whirlpool_liquidity_bank.py +0 -0
- {sol_parser_sdk_python-0.5.12 → sol_parser_sdk_python-0.5.14}/tests/test_whirlpool_one_sided_bank.py +0 -0
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: sol-parser-sdk-python
|
|
3
|
+
Version: 0.5.14
|
|
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 | `v0.7.
|
|
42
|
-
| Node.js | [sol-parser-sdk-nodejs](https://github.com/0xfnzero/sol-parser-sdk-nodejs) | TypeScript/JavaScript for Node.js | `v0.5.
|
|
43
|
-
| Python | [sol-parser-sdk-python](https://github.com/0xfnzero/sol-parser-sdk-python) | Async/await native support | `v0.5.
|
|
44
|
-
| Go | [sol-parser-sdk-golang](https://github.com/0xfnzero/sol-parser-sdk-golang) | Go transaction and account event parsing | `v0.5.
|
|
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.15` |
|
|
64
|
+
| Node.js | [sol-parser-sdk-nodejs](https://github.com/0xfnzero/sol-parser-sdk-nodejs) | TypeScript/JavaScript for Node.js | `v0.5.21` |
|
|
65
|
+
| Python | [sol-parser-sdk-python](https://github.com/0xfnzero/sol-parser-sdk-python) | Async/await native support | `v0.5.14` |
|
|
66
|
+
| Go | [sol-parser-sdk-golang](https://github.com/0xfnzero/sol-parser-sdk-golang) | Go transaction and account event parsing | `v0.5.14` |
|
|
67
|
+
| **Rust** | [sol-shred-sdk](https://github.com/0xfnzero/sol-shred-sdk) | Raw Solana shred decoding and ShredStream DEX event parsing | `v4.0.6` |
|
|
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.14 — Pump route direction and instruction names
|
|
73
|
+
|
|
74
|
+
Route intents now expose `is_buy` and `ix_name`, following existing trade field names and official IDL instruction names. RapidBuy reports a buy intent and `buy_exact_quote_in_v2`; BuyPumpDelta reports only a buy intent. Multi-hop direction and unknown methods remain null. Read currencies from `hops[].base_mint` / `quote_mint`. These hints do not confirm execution, and filters do not convert intents into trades.
|
|
75
|
+
|
|
76
|
+
Older JSON without the fields remains readable as unknown. Rust struct literals must supply the new fields; Go uses pointers and Node.js/Python use null/None for unknown values. Streamer now forwards `DexEvent::PumpRouteIntentEvent` with protocol and event filtering.
|
|
77
|
+
|
|
78
|
+
## v0.5.13 — Pump routes and offline replay
|
|
79
|
+
|
|
80
|
+
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.
|
|
81
|
+
|
|
82
|
+
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.
|
|
83
|
+
|
|
50
84
|
## v0.5.12 — Pump depth-2 compatibility
|
|
51
85
|
|
|
52
86
|
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 +156,7 @@ This is the Python implementation of the FnZero Solana DEX parser SDK for asynci
|
|
|
122
156
|
**From PyPI**
|
|
123
157
|
|
|
124
158
|
```bash
|
|
125
|
-
pip install sol-parser-sdk-python==0.5.
|
|
159
|
+
pip install sol-parser-sdk-python==0.5.14
|
|
126
160
|
```
|
|
127
161
|
|
|
128
162
|
**From source**
|
|
@@ -227,7 +261,7 @@ asyncio.run(main())
|
|
|
227
261
|
|
|
228
262
|
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
263
|
|
|
230
|
-
The Python ShredStream hot path uses static
|
|
264
|
+
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
265
|
|
|
232
266
|
---
|
|
233
267
|
|
|
@@ -238,18 +272,18 @@ From the **package root** after `pip install -e .`. Run with `python examples/<f
|
|
|
238
272
|
| Description | Run command | Source |
|
|
239
273
|
|-------------|-------------|--------|
|
|
240
274
|
| **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.
|
|
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.
|
|
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.
|
|
275
|
+
| 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.14` |
|
|
276
|
+
| 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.14` |
|
|
277
|
+
| 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.14` |
|
|
244
278
|
| **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.
|
|
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.
|
|
279
|
+
| 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.14` |
|
|
280
|
+
| 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.14` |
|
|
247
281
|
| **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.
|
|
282
|
+
| 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.14` |
|
|
249
283
|
| **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.
|
|
284
|
+
| 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.14` |
|
|
251
285
|
| **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.
|
|
286
|
+
| 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.14` |
|
|
253
287
|
|
|
254
288
|
**Env:** gRPC examples need **`GRPC_URL`** or **`GRPC_ENDPOINT`**, plus **`GRPC_AUTH_TOKEN`** or **`GRPC_TOKEN`** (or legacy `GEYSER_*`). See **`.env.example`**.
|
|
255
289
|
|
|
@@ -352,3 +386,14 @@ Full cross-language API parity is still in progress. See the [API migration guid
|
|
|
352
386
|
实时 parser → trade 接入使用 Yellowstone **gRPC**;见 [gRPC 缓存接入与三语言示例](docs/USAGE.md#grpc-cache)。此路径不使用 WebSocket,报价和构建热路径不调用 RPC。
|
|
353
387
|
|
|
354
388
|
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).
|
|
389
|
+
|
|
390
|
+
### Offline Pump ShredStream regressions
|
|
391
|
+
|
|
392
|
+
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.
|
|
393
|
+
|
|
394
|
+
Native offline CPU benchmark: `python -m examples.hot_path_benchmark`.
|
|
395
|
+
`examples/hot_path_benchmark.json` fixes warmup and measured iterations for six
|
|
396
|
+
signed wrapped-CPI/ALT transactions. Reported percentiles are per six-transaction
|
|
397
|
+
batch; fixture decoding and I/O occur before timing. Parsing performs no RPC.
|
|
398
|
+
Public wire-decoder dictionaries and resolver callbacks retain base58 strings;
|
|
399
|
+
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,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 | `v0.7.
|
|
61
|
-
| Node.js | [sol-parser-sdk-nodejs](https://github.com/0xfnzero/sol-parser-sdk-nodejs) | TypeScript/JavaScript for Node.js | `v0.5.
|
|
62
|
-
| Python | [sol-parser-sdk-python](https://github.com/0xfnzero/sol-parser-sdk-python) | Async/await native support | `v0.5.
|
|
63
|
-
| Go | [sol-parser-sdk-golang](https://github.com/0xfnzero/sol-parser-sdk-golang) | Go transaction and account event parsing | `v0.5.
|
|
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.15` |
|
|
42
|
+
| Node.js | [sol-parser-sdk-nodejs](https://github.com/0xfnzero/sol-parser-sdk-nodejs) | TypeScript/JavaScript for Node.js | `v0.5.21` |
|
|
43
|
+
| Python | [sol-parser-sdk-python](https://github.com/0xfnzero/sol-parser-sdk-python) | Async/await native support | `v0.5.14` |
|
|
44
|
+
| Go | [sol-parser-sdk-golang](https://github.com/0xfnzero/sol-parser-sdk-golang) | Go transaction and account event parsing | `v0.5.14` |
|
|
45
|
+
| **Rust** | [sol-shred-sdk](https://github.com/0xfnzero/sol-shred-sdk) | Raw Solana shred decoding and ShredStream DEX event parsing | `v4.0.6` |
|
|
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.14 — Pump route direction and instruction names
|
|
51
|
+
|
|
52
|
+
Route intents now expose `is_buy` and `ix_name`, following existing trade field names and official IDL instruction names. RapidBuy reports a buy intent and `buy_exact_quote_in_v2`; BuyPumpDelta reports only a buy intent. Multi-hop direction and unknown methods remain null. Read currencies from `hops[].base_mint` / `quote_mint`. These hints do not confirm execution, and filters do not convert intents into trades.
|
|
53
|
+
|
|
54
|
+
Older JSON without the fields remains readable as unknown. Rust struct literals must supply the new fields; Go uses pointers and Node.js/Python use null/None for unknown values. Streamer now forwards `DexEvent::PumpRouteIntentEvent` with protocol and event filtering.
|
|
55
|
+
|
|
56
|
+
## v0.5.13 — Pump routes and offline replay
|
|
57
|
+
|
|
58
|
+
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.
|
|
59
|
+
|
|
60
|
+
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.
|
|
61
|
+
|
|
69
62
|
## v0.5.12 — Pump depth-2 compatibility
|
|
70
63
|
|
|
71
64
|
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 +134,7 @@ This is the Python implementation of the FnZero Solana DEX parser SDK for asynci
|
|
|
141
134
|
**From PyPI**
|
|
142
135
|
|
|
143
136
|
```bash
|
|
144
|
-
pip install sol-parser-sdk-python==0.5.
|
|
137
|
+
pip install sol-parser-sdk-python==0.5.14
|
|
145
138
|
```
|
|
146
139
|
|
|
147
140
|
**From source**
|
|
@@ -246,7 +239,7 @@ asyncio.run(main())
|
|
|
246
239
|
|
|
247
240
|
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
241
|
|
|
249
|
-
The Python ShredStream hot path uses static
|
|
242
|
+
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
243
|
|
|
251
244
|
---
|
|
252
245
|
|
|
@@ -257,18 +250,18 @@ From the **package root** after `pip install -e .`. Run with `python examples/<f
|
|
|
257
250
|
| Description | Run command | Source |
|
|
258
251
|
|-------------|-------------|--------|
|
|
259
252
|
| **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.
|
|
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.
|
|
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.
|
|
253
|
+
| 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.14` |
|
|
254
|
+
| 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.14` |
|
|
255
|
+
| 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.14` |
|
|
263
256
|
| **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.
|
|
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.
|
|
257
|
+
| 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.14` |
|
|
258
|
+
| 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.14` |
|
|
266
259
|
| **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.
|
|
260
|
+
| 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.14` |
|
|
268
261
|
| **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.
|
|
262
|
+
| 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.14` |
|
|
270
263
|
| **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.
|
|
264
|
+
| 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.14` |
|
|
272
265
|
|
|
273
266
|
**Env:** gRPC examples need **`GRPC_URL`** or **`GRPC_ENDPOINT`**, plus **`GRPC_AUTH_TOKEN`** or **`GRPC_TOKEN`** (or legacy `GEYSER_*`). See **`.env.example`**.
|
|
274
267
|
|
|
@@ -371,3 +364,14 @@ Full cross-language API parity is still in progress. See the [API migration guid
|
|
|
371
364
|
实时 parser → trade 接入使用 Yellowstone **gRPC**;见 [gRPC 缓存接入与三语言示例](docs/USAGE.md#grpc-cache)。此路径不使用 WebSocket,报价和构建热路径不调用 RPC。
|
|
372
365
|
|
|
373
366
|
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).
|
|
367
|
+
|
|
368
|
+
### Offline Pump ShredStream regressions
|
|
369
|
+
|
|
370
|
+
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.
|
|
371
|
+
|
|
372
|
+
Native offline CPU benchmark: `python -m examples.hot_path_benchmark`.
|
|
373
|
+
`examples/hot_path_benchmark.json` fixes warmup and measured iterations for six
|
|
374
|
+
signed wrapped-CPI/ALT transactions. Reported percentiles are per six-transaction
|
|
375
|
+
batch; fixture decoding and I/O occur before timing. Parsing performs no RPC.
|
|
376
|
+
Public wire-decoder dictionaries and resolver callbacks retain base58 strings;
|
|
377
|
+
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.
|
|
42
|
-
| Node.js | [sol-parser-sdk-nodejs](https://github.com/0xfnzero/sol-parser-sdk-nodejs) | TypeScript/JavaScript,Node.js 支持 | `v0.5.
|
|
43
|
-
| Python | [sol-parser-sdk-python](https://github.com/0xfnzero/sol-parser-sdk-python) | 原生 async/await 支持 | `v0.5.
|
|
44
|
-
| Go | [sol-parser-sdk-golang](https://github.com/0xfnzero/sol-parser-sdk-golang) | Go 交易与账户事件解析 | `v0.5.
|
|
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.15` |
|
|
42
|
+
| Node.js | [sol-parser-sdk-nodejs](https://github.com/0xfnzero/sol-parser-sdk-nodejs) | TypeScript/JavaScript,Node.js 支持 | `v0.5.21` |
|
|
43
|
+
| Python | [sol-parser-sdk-python](https://github.com/0xfnzero/sol-parser-sdk-python) | 原生 async/await 支持 | `v0.5.14` |
|
|
44
|
+
| Go | [sol-parser-sdk-golang](https://github.com/0xfnzero/sol-parser-sdk-golang) | Go 交易与账户事件解析 | `v0.5.14` |
|
|
45
|
+
| **Rust** | [sol-shred-sdk](https://github.com/0xfnzero/sol-shred-sdk) | Solana 原始 shred 解码与 ShredStream DEX 事件解析 | `v4.0.6` |
|
|
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.14 — Pump 路由方向与指令名称
|
|
66
|
+
|
|
67
|
+
路由事件沿用 `is_buy`、`ix_name` 命名。RapidBuy 为买入意图,指令名为官方 IDL 的 `buy_exact_quote_in_v2`;BuyPumpDelta 仅确定买入方向。多跳路由方向和无法确定的方法保持为空。币种读取 `hops[].base_mint` / `quote_mint`。这些字段不代表已成交;过滤器不会把路由事件转换为交易事件。
|
|
68
|
+
|
|
69
|
+
旧 JSON 缺少新字段时保持未知。Rust 结构体字面量须补齐新字段;Go 新字段为指针,Node.js/Python 未知值为 null/None。Streamer 新增 `DexEvent::PumpRouteIntentEvent` 并保留路由字段,支持协议与事件过滤。
|
|
70
|
+
|
|
71
|
+
## v0.5.13 — Pump routes and offline replay
|
|
72
|
+
|
|
73
|
+
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.
|
|
74
|
+
|
|
75
|
+
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.
|
|
76
|
+
|
|
65
77
|
## v0.5.12 — Pump depth-2 compatibility
|
|
66
78
|
|
|
67
79
|
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 +134,7 @@ Validation includes local CPU benchmarks and offline signed-bank scenarios. Meas
|
|
|
122
134
|
**PyPI**
|
|
123
135
|
|
|
124
136
|
```bash
|
|
125
|
-
pip install sol-parser-sdk-python==0.5.
|
|
137
|
+
pip install sol-parser-sdk-python==0.5.14
|
|
126
138
|
```
|
|
127
139
|
|
|
128
140
|
**源码**
|
|
@@ -227,7 +239,7 @@ asyncio.run(main())
|
|
|
227
239
|
|
|
228
240
|
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
241
|
|
|
230
|
-
Python ShredStream
|
|
242
|
+
Python ShredStream 热路径默认严格解析静态账户;V0 ALT 指令需传入加载地址或读取预热缓存的 slot-aware resolver,未解析完整时跳过。旧占位行为需显式调用 `parse_shred_transaction_best_effort`。受支持的包装与官方路由输出 `PumpRouteIntent`,原始 shred 无法还原任意 CPI。Inner CPI / 仅日志事件仍需 Yellowstone/RPC 路径。
|
|
231
243
|
|
|
232
244
|
---
|
|
233
245
|
|
|
@@ -238,18 +250,18 @@ Python ShredStream 热路径只使用静态账户表。V0 ALT-loaded 指令账
|
|
|
238
250
|
| 描述 | 运行命令 | 源码 |
|
|
239
251
|
|------|----------|------|
|
|
240
252
|
| **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.
|
|
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.
|
|
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.
|
|
253
|
+
| 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.14` |
|
|
254
|
+
| 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.14` |
|
|
255
|
+
| 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.14` |
|
|
244
256
|
| **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.
|
|
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.
|
|
257
|
+
| 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.14` |
|
|
258
|
+
| 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.14` |
|
|
247
259
|
| **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.
|
|
260
|
+
| 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.14` |
|
|
249
261
|
| **多协议** | | |
|
|
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.
|
|
262
|
+
| 订阅 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.14` |
|
|
251
263
|
| **工具** | | |
|
|
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.
|
|
264
|
+
| 按签名解析交易(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.14` |
|
|
253
265
|
|
|
254
266
|
**环境变量:** gRPC 示例需要 **`GRPC_URL`** 或 **`GRPC_ENDPOINT`**,以及 **`GRPC_AUTH_TOKEN`** 或 **`GRPC_TOKEN`**(或旧名 `GEYSER_*`)。详见 **`.env.example`**。
|
|
255
267
|
|
|
@@ -321,3 +333,7 @@ MIT — https://github.com/0xfnzero/sol-parser-sdk-python
|
|
|
321
333
|
完整跨语言 API 对齐仍在进行;公开行为和支持边界见 [API 迁移说明](docs/USAGE.md#api-compatibility),使用方法见 examples 目录。
|
|
322
334
|
|
|
323
335
|
PumpFun create/create_v2 的共享主网样本、重放方法和验证边界见 [验证说明](https://github.com/0xfnzero/sol-parser-sdk-golang/tree/main/validation/pumpfun_create_20261007)。
|
|
336
|
+
|
|
337
|
+
### Pump ShredStream 离线回归
|
|
338
|
+
|
|
339
|
+
已同步路由意图事件、严格 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
|
+
}
|