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
- Works with Ethereum, Binance, Avalanche, Arbitrum One, zkSync Era, etc.
- Subscribe to pending transactions in the mempool and new blocks
- Flexible logging of RPC calls and transactions
- Interact with tokens and ETH with the same dual interface
- Includes a client for Compound V2 operations, and its clones
- Save gas by setting an upper limit on the base fee
- Need more flexibility? Use directly the underlying web3.py client
Install
pip3 install -U web3client
Examples
-
Stream pending transactions on the zkSync Era network:
from web3client.base_client import BaseClient client = BaseClient("wss://mainnet.era.zksync.io/ws") client.subscribe(lambda tx, _, __: print(f"Pending tx: {tx}"))
-
Send 1 ETH and 100 USDC to Unicef, using a dual client:
from web3client.erc20_client import DualClient rpc = "https://cloudflare-eth.com" private_key = "0x..." unicef = "0xA59B29d7dbC9794d1e7f45123C48b2b8d0a34636" USDC = "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" usdc_client = DualClient(rpc, private_key=private_key, contract_address=USDC) usdc_client.send_eth(unicef, 1) usdc_client.transfer(unicef, 100)
More examples
Please find more examples
- in the examples folder, and
- in the tests folder.
Test suite web3test
web3client
comes with several pytest plugins you can use to test your scripts:
web3test-ape
: fixtures of accounts and smart contracts (erc20, compound, etc)web3test-web3client
: fixtures of clients for various smart contractsweb3test-web3factory
: fixtures of clients for various chains
To use one or more plugins in your script, add the following lines at the top of your `conftest.py``:
pytest_plugins = [
"web3test-ape", "web3test-web3client", "web3test-web3factory"
]
The order of the plugins in the aray is important.
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.3.11-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e3ffc9b1519832c64557ee69fc21716d98020cae24cf620b2bcbac5e4f934cfd |
|
MD5 | dbd44ec168502cb2b1379d8d35de3c63 |
|
BLAKE2b-256 | e27ca484043563a0031fa151bc9c105b6599fb5a860e79f7349888a239e70c63 |