Skip to main content

Batteries-included client to interact with blockchains and smart contracts

Project description

Batteries-included client to interact with blockchains and smart contracts; used by web3cli and crabada.py.

Features

  • Easily create a client to interact with EVM-compatible chains
  • Perform ERC20 operations, using the token name (e.g. USDC) instead of address.
  • Interact with the most popular chains: Ethereum, Binance, Avalanche and more to come!
  • Save gas by setting an upper limit on the base fee.
  • Need more flexibility? Use directly the underlying web3.py client.

Examples

Get the latest block on both Ethereum, BNB Chain and Avalanche:

from web3factory.factory import make_client

eth_block = make_client('ethereum').getLatestBlock()
bnb_block = make_client('binance').getLatestBlock()
avax_block = make_client('avalanche').getLatestBlock()

Get the ETH and USDC balances of the Ethereum foundation:

from web3factory.factory import make_client, make_erc20_client

address = "0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae"
eth = make_client("ethereum").getBalanceInEth(address)
usdc = make_erc20_client("USDC", "ethereum").balanceOf(address) / 10**6

Get the BNB and BUSD balances of Binance's hot wallet:

from web3factory.factory import make_client, make_erc20_client

address = "0x8894e0a0c962cb723c1976a4421c95949be2d4e3"
bnb = make_client("binance").getBalanceInEth(address)
busd = make_erc20_client("BUSD", "binance").balanceOf(address) / 10**18

More examples

Please have a look at the examples folder 🙂

Install

pip3 install -U web3client

It doesn't work 😡

Don't panic! Instead...

  1. Please check if your issue is listed in the Issues tab.
  2. If not, consider writing a new issue 🙂

Contribute ❤️

Pull requests are welcome!

  1. Install and configure PDM:
    curl -sSL https://raw.githubusercontent.com/pdm-project/pdm/main/install-pdm.py | python3 -
    
  2. Install dependencies:
    pdm install
    
  3. To run the CLI against your changes:
    pdm web3client
    
  4. To run tests:
    pdm test
    

TO DO

  • Test ERC20 read functions
  • Automatically convert addresses to checksum
  • Harmonize between camel case and snake case
  • Easy accessors for token and network props
  • Add write examples and tests
  • Add Uniswap V2 LP contracts

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

web3client-0.5.1.tar.gz (15.2 kB view hashes)

Uploaded Source

Built Distribution

web3client-0.5.1-py3-none-any.whl (16.4 kB view hashes)

Uploaded Python 3

Supported by

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