Skip to main content

Alternatives to some of the web3's classes

Project description

Web3.py collections

This module providing alternatives to some of the web3's classes

Installation

Install the package using the following command:

pip install -U web3-collections

Alternatives

Class name Alternative to
MultiEndpointHTTPProvider HTTPProvider

MultiEndpointHTTPProvider

The constructor gives a list of endpoint URIs. In each http request, it tries to use the current_endpoint to fetch data and if it fails, updates the current endpoint and tries again.

import web3
from web3_collections import MultiEndpointHTTPProvider

endpoint_uris = ['https://rpc.ankr.com/eth', 'https://1rpc.io/eth', 'https://eth.drpc.org', ...]
w3 = web3.Web3(MultiEndpointHTTPProvider(endpoint_uris))

By default auto_update=True and you don't need to use update_endpoint method. But, you can disable auto update and handle it manually:

w3 = web3.Web3(MultiEndpointHTTPProvider(endpoint_uris, auto_update=False))
try:
    w3.eth.get_block('latest')
except Exception as e:
    print(f'{w3.provider.current_endpoint} got error: {e}')
    w3.provider.update_endpoint()
    print(f'Endpoint updated to {w3.provider.current_endpoint}')

Method MultiEndpointHTTPProvider.sort_endpoints sorts the endpoints by their latest block number (most updated will choose as current_endpoint):

>>> endpoint_uris = [
...  'https://arbitrum.meowrpc.com',
...  'https://1rpc.io/arb',
...  'https://arbitrum-one-rpc.publicnode.com',
...  'https://arb-pokt.nodies.app'
... ]
>>> w3 = web3.Web3(MultiEndpointHTTPProvider(endpoint_uris))
>>> w3.provider.current_endpoint  # before sorting
'https://arbitrum.meowrpc.com'
>>> w3.provider.sort_endpoints()  # sorting by latest block number
>>> w3.provider.current_endpoint  # after sorting
'https://arbitrum-one-rpc.publicnode.com'

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

web3-collections-0.1.0.tar.gz (4.4 kB view details)

Uploaded Source

Built Distribution

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

web3_collections-0.1.0-py3-none-any.whl (4.9 kB view details)

Uploaded Python 3

File details

Details for the file web3-collections-0.1.0.tar.gz.

File metadata

  • Download URL: web3-collections-0.1.0.tar.gz
  • Upload date:
  • Size: 4.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.5

File hashes

Hashes for web3-collections-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e37b203d872f6f19c5c87191222212510206423b97ab10bfab5a5ffe78385888
MD5 abf5021b961ce5ce433e3f1aa0d4aca5
BLAKE2b-256 f21f294b50aaf58a8f88d648f0cb66acf5869667a3440ddbba698384da78fe8c

See more details on using hashes here.

File details

Details for the file web3_collections-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for web3_collections-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7aaa01a834c7d2bdd83a4a2604e5bd6ab16806d86c106e7b6684712491d22eaa
MD5 4c458d2c078d60278a4bb4aa2d1fa3c5
BLAKE2b-256 5ba60182316ca366d4fb1de6f7095ad92ac601a46b8f57d50c582b83ebd30da8

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