Skip to main content

Python implementation for PulseChain API

Project description

PulseChain Scanner API Client

Overview

This project is a Python client for interacting with the PulseChain Scanner API. It provides a main Client class along with several subclients that focus on specific areas of the PulseChain API, such as addresses, blocks, transactions, tokens, and more. This comprehensive client is designed to make it easy to perform various operations on the PulseChain blockchain, such as fetching block information, interacting with smart contracts, and retrieving token-related data.

Features

  • Unified API client for the PulseChain ecosystem.
  • Modular architecture with individual subclients for different API endpoints.
  • Supports paginated responses for large datasets.
  • Custom exception handling for better error management.
  • Easy configuration and usage.

Documentation

Full documentation is available at Read the Docs.

Installation

To use the PulseChain API client, you need Python 3.10 or higher. You can install the necessary dependencies by running:

pip install python-pulsechain

Usage

Initializing the Client

To begin interacting with the PulseChain API, you first need to instantiate the main Client class:

from pulsechain.client import Client
client = Client()

The Client class provides easy access to multiple subclients:

  • stats: For interacting with statistics endpoints.
  • addresses: For interacting with addresses and related data.
  • transactions: For handling transaction-related queries.
  • tokens: For working with tokens and NFTs.
  • blocks: For retrieving block details.
  • search: For performing search operations.
  • smart_contracts: For interacting with smart contracts.

Example Usage

Below are some examples of how to use the client to perform common tasks.

Fetch General Statistics

response = client.stats.get_stats()
print(response.items)

Get Information About an Address

response = client.addresses.get_info("0x123...")
print(response.items)

Search for Tokens by Name

response = client.tokens.get_tokens(name_query="PLS")
print(response.items)

Fetch Transactions for a Specific Block

response = client.blocks.get_block_txns("1234567")
print(response.items)

Paginated Responses

To support paginated responses, the response contains field next_page_params that can be used to fetch the next page of results. It needs to be passed as a named paramter to functions that fetch paginated responses.

Example:

response = client.blocks.get_block_txns("1234567")
print(response.items)
next_page = client.blocks.get_block_txns("1234567", next_page_params=response.next_page_params)

Custom Error Handling

This client raises custom exceptions defined in exceptions.py to make error handling more intuitive:

  • PulseChainAPIException: Generic API error.
  • PulseChainTimeoutException: Raised when a request to the API times out.
  • PulseChainServerError: Raised when the API returns an internal server error (500).
  • PulseChainBadRequestException: Raised when the client makes an invalid request (400).
  • PulseChainUnprocessableEntityException: Raised when the server cannot process the request (422).

Example:

try:
    stats = client.stats.get_stats()
except PulseChainAPIException as e:
    print(f"An error occurred: {e}")

License

This project is licensed under the GPL-3.0 License. See the LICENSE file for more details.

Contributing

Contributions are welcome! Please feel free to open issues or submit pull requests to enhance the client.

Contact

For questions or support, please open an issue on the repository or reach out to the maintainers.

Support

If you find this project helpful and would like to support its development, consider sending PLS to the following address:

0xaC6f36D3B4B8aEA37D0B1363d35cb8D024deF1BC

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

python_pulsechain-0.3.1.tar.gz (24.9 kB view details)

Uploaded Source

Built Distribution

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

python_pulsechain-0.3.1-py3-none-any.whl (43.9 kB view details)

Uploaded Python 3

File details

Details for the file python_pulsechain-0.3.1.tar.gz.

File metadata

  • Download URL: python_pulsechain-0.3.1.tar.gz
  • Upload date:
  • Size: 24.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.11.2 Windows/10

File hashes

Hashes for python_pulsechain-0.3.1.tar.gz
Algorithm Hash digest
SHA256 f8106fe2ccae30a1c9ea77b7607f0b45d9261fd4f942c750345866d11da00dc9
MD5 fadf2c4558ba3c97106510b9bc444a71
BLAKE2b-256 93a1ba1cb535784fa179edb269fb34c41de46c78548e6780bd86004785cfe348

See more details on using hashes here.

File details

Details for the file python_pulsechain-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: python_pulsechain-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 43.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.11.2 Windows/10

File hashes

Hashes for python_pulsechain-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7ece489497718ac6aef7197ab0c3ac1947427eb769e746b6b23402974df75f9f
MD5 871683cb0d46834312cc06d91a3278f8
BLAKE2b-256 f94fef2e1c7c819b9722027ec10e5139e8d0c138f63544c61358ea96cd378fe0

See more details on using hashes here.

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