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
- Interact with the most popular chains: Ethereum, Binance, Avalanche, Arbitrum One, zkSync Era, and more to come!
- Subscribe to pending transactions in the mempool and new blocks.
- Save gas by setting an upper limit on the base fee.
- Need more flexibility? Use directly the underlying web3.py client.
- Perform ERC20 operations, using the token name (e.g. USDC) instead of address.
Install
pip3 install -U web3client
Examples
Get the latest block on supported blockchains:
from web3factory.factory import make_client
eth_block = make_client("eth").get_latest_block() # Ethereum
bnb_block = make_client("bnb").get_latest_block() # BNB chain
avax_block = make_client("avax").get_latest_block() # Avalanche
arb_block = make_client("arb").get_latest_block() # Arbitrum
era_block = make_client("era").get_latest_block() # zkSync Era
Get the ETH and USDC balances of the Ethereum foundation:
from web3factory.factory import make_client, make_erc20_client
address = "0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae"
eth = make_client("eth").get_balance_in_eth(address)
usdc = make_erc20_client("USDC", "eth").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("bnb").get_balance_in_eth(address)
busd = make_erc20_client("BUSD", "bnb").balanceOf(address) / 10**18
More examples
Please have a look at the tests folder or at the examples folder 🙂
Custom chains & contracts
The factory module only allows to interact with a small list of chains and contracts.
To interact with an arbitrary EVM chain or smart contract, instantiate a custom
client using the BaseClient
class.
For a more structured approach, use web3core
, a sub-package
of web3cli
that comes with many preloaded chains, and allows
to import chains and smart contracts dynamically.
It doesn't work 😡
Don't panic! Instead...
- Please check if your issue is listed in the Issues tab.
- If not, consider writing a new issue 🙂
Contributing
All contributions are welcome! To start improving web3client
, please refer to our contribution guide.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for web3client-1.1.9-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 038a24ed07b5b2c91db29fc521e6dacc53d15022b8a7b9a8941e54e8211894a1 |
|
MD5 | d1d1cea09bc38b3b143c9985021372a6 |
|
BLAKE2b-256 | 386c3687cbaf318e05cfb4a422e1c62a95bfc1dafe77c06f1416240eb386bd11 |