Skip to main content

Solana transaction normalizer, parser, and resolver.

Project description

Solana Transactions (soltxs)

Solana transaction normalizer, parser, and resolver.

Installing

pip install soltxs

Overview

This library breaks down Solana transaction introspection and analysis into three steps:

  1. Normalize: Converts a raw JSON RPC payload into a Transaction object.
  2. Parse: Routes each instruction in the Transaction to the correct program-level parser. Produces objects describing each recognized instruction.
  3. Resolve: Takes the parsed instructions and converts them into a more human-readable format.

Support

  • Normalizers
    • Standard RPC Response
    • Modified YellowStone Geyser Response
  • Parsers
    • Compute Budget
    • System Program
    • Token Program
    • PumpFun Program
    • Raydium AMM Program
  • Resolvers
    • PumpFun Swap
    • Raydium Swap

Usage

import soltxs

tx = {"jsonrpc": ..., "result": ..., "id": ...}

# All three steps below can be combined into a single call.
# Equivalent to: resolve(parse(normalize(tx)))
result = soltxs.process(tx)

norm_tx = soltxs.normalize(tx)
# Transaction(
#     slot=...,
#     blockTime=...,
#     signatures=[...],
#     message=...,
#     meta=...,
#     loadedAddresses=...,
# )

parsed_data = soltxs.parse(norm_tx)
# {
#     "signatures": [...],
#     "instructions": [
#         <ComputeBudget.SetComputeUnitLimit(...)>,
#         <ComputeBudget.SetComputeUnitPrice(...)>,
#         <SystemProgram.CreateAccount(...)>,
#         <TokenProgram.InitAccount(...)>,
#         <RaydiumAMM.Swap(...)>,
#         <TokenProgram.Unknown(...)>,
#         <SystemProgram.Transfer(...)>,
#         <UnknownProgram.Unknown(...)>,
#     ],
#     "addons": {
#         {"compute_units": <ComputeUnitsAddon(...)>},
#         {"instruction_count": <InstructionCount(...)>},
#         {"loaded_addresses": <LoadedAddresses(...)>},
#         {"platform_identifier": <PlatformIdentifier(...)>},
#         {"token_transfer_summary": <TokenTransfer(...)>}
#     }
# }

resolved_tx = soltxs.resolve(parsed_data)
# For example, a Raydium resolved output might be:
# Raydium(
#     type=...,
#     who=...,
#     from_token=...,
#     from_amount=...,
#     to_token=...,
#     to_amount=...,
#     minimum_amount_out=...
# )

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

soltxs-1.0.6.tar.gz (22.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

soltxs-1.0.6-py3-none-any.whl (33.2 kB view details)

Uploaded Python 3

File details

Details for the file soltxs-1.0.6.tar.gz.

File metadata

  • Download URL: soltxs-1.0.6.tar.gz
  • Upload date:
  • Size: 22.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for soltxs-1.0.6.tar.gz
Algorithm Hash digest
SHA256 b4c821c5d3a022a658503d181f726f9c5deed2462dbd660fd364143141106f14
MD5 32e0b3ccfd2c21f4e5b752fedec1d012
BLAKE2b-256 16bfd7433dcfc4d93ce9ac64de41b887cbfe5b818d422dfe10ac75bbfa6e5324

See more details on using hashes here.

Provenance

The following attestation bundles were made for soltxs-1.0.6.tar.gz:

Publisher: release.yaml on qvecs/soltxs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file soltxs-1.0.6-py3-none-any.whl.

File metadata

  • Download URL: soltxs-1.0.6-py3-none-any.whl
  • Upload date:
  • Size: 33.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for soltxs-1.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 c3de62167513923a4f1c5f8d94604d3bcf2542b5475362fa44e295f6580a5fd3
MD5 697610e1d9f577adf5f8024cc55a294f
BLAKE2b-256 2dec688210bc95a751c8c7c1ca4657dc70b5306e7d72b38e563e5e2b4c0af7a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for soltxs-1.0.6-py3-none-any.whl:

Publisher: release.yaml on qvecs/soltxs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page