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.10-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4becef0eb6a957dbb8fba0647ac0be9ef2dd3769f6c5c59857363d3975e34816 |
|
MD5 | cb90032e84bf785fb107f4a358956ba3 |
|
BLAKE2b-256 | 294ddc71fbf2c662f60871e712326910be18c398d0991ced599887b952cce646 |