Name | web3client JSON |
Version |
1.3.10
JSON |
| download |
home_page | |
Summary | Batteries-included client to interact with blockchains and smart contracts |
upload_time | 2024-02-29 18:14:51 |
maintainer | |
docs_url | None |
author | |
requires_python | >=3.9 |
license | MIT |
keywords |
web3
blockchain
ethereum
evm
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
Batteries-included client to interact with blockchains and smart contracts; used by [`web3cli`](https://github.com/coccoinomane/web3cli) and [crabada.py](https://github.com/coccoinomane/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
```bash
pip3 install -U web3client
```
# Examples
- Stream pending transactions on the zkSync Era network:
```python
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:
```python
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](./examples), and
- in the [tests folder](./tests).
# 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 contracts
- `web3test-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``:
```python
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...
1. Please check if your issue is listed in the [Issues tab](https://github.com/coccoinomane/web3client/issues).
2. If not, consider [writing a new issue](https://github.com/coccoinomane/web3client/issues/new) 🙂
# Contributing
All contributions are welcome! To start improving `web3client`, please refer to our [__contribution guide__](./CONTRIBUTING.md).
Raw data
{
"_id": null,
"home_page": "",
"name": "web3client",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": "",
"keywords": "web3,blockchain,ethereum,evm",
"author": "",
"author_email": "coccoinomane <coccoinomane@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/59/dd/ad74a83ff8af33e69769b8b0d3745f8638cff3c5175328628e5452746d59/web3client-1.3.10.tar.gz",
"platform": null,
"description": "Batteries-included client to interact with blockchains and smart contracts; used by [`web3cli`](https://github.com/coccoinomane/web3cli) and [crabada.py](https://github.com/coccoinomane/crabada.py).\n\n# Features\n\n- Easily create a client to interact with EVM-compatible chains\n- Works with Ethereum, Binance, Avalanche, Arbitrum One, zkSync Era, etc.\n- Subscribe to pending transactions in the mempool and new blocks\n- Flexible logging of RPC calls and transactions\n- Interact with tokens and ETH with the same dual interface\n- Includes a client for Compound V2 operations, and its clones\n- Save gas by setting an upper limit on the base fee\n- Need more flexibility? Use directly the underlying web3.py client\n\n\n# Install\n\n```bash\npip3 install -U web3client\n```\n\n# Examples\n\n- Stream pending transactions on the zkSync Era network:\n\n ```python\n from web3client.base_client import BaseClient\n \n client = BaseClient(\"wss://mainnet.era.zksync.io/ws\")\n client.subscribe(lambda tx, _, __: print(f\"Pending tx: {tx}\"))\n ```\n\n- Send 1 ETH and 100 USDC to Unicef, using a dual client:\n ```python\n from web3client.erc20_client import DualClient\n \n rpc = \"https://cloudflare-eth.com\"\n private_key = \"0x...\"\n unicef = \"0xA59B29d7dbC9794d1e7f45123C48b2b8d0a34636\"\n USDC = \"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48\"\n\n usdc_client = DualClient(rpc, private_key=private_key, contract_address=USDC)\n usdc_client.send_eth(unicef, 1)\n usdc_client.transfer(unicef, 100)\n ```\n\n# More examples\n\nPlease find more examples\n\n- in the [examples folder](./examples), and\n- in the [tests folder](./tests).\n\n\n# Test suite `web3test`\n\n`web3client` comes with several pytest plugins you can use to test your scripts:\n\n- `web3test-ape`: fixtures of accounts and smart contracts (erc20, compound, etc)\n- `web3test-web3client`: fixtures of clients for various smart contracts \n- `web3test-web3factory`: fixtures of clients for various chains\n\nTo use one or more plugins in your script, add the following lines at the top of your `conftest.py``:\n\n```python\npytest_plugins = [\n \"web3test-ape\", \"web3test-web3client\", \"web3test-web3factory\"\n]\n```\n\nThe order of the plugins in the aray is important.\n\n# It doesn't work \ud83d\ude21\n\nDon't panic! Instead...\n\n1. Please check if your issue is listed in the [Issues tab](https://github.com/coccoinomane/web3client/issues).\n2. If not, consider [writing a new issue](https://github.com/coccoinomane/web3client/issues/new) \ud83d\ude42\n\n# Contributing\n\nAll contributions are welcome! To start improving `web3client`, please refer to our [__contribution guide__](./CONTRIBUTING.md).\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Batteries-included client to interact with blockchains and smart contracts",
"version": "1.3.10",
"project_urls": {
"homepage": "https://github.com/coccoinomane/web3client",
"repository": "https://github.com/coccoinomane/web3client"
},
"split_keywords": [
"web3",
"blockchain",
"ethereum",
"evm"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "294ddc71fbf2c662f60871e712326910be18c398d0991ced599887b952cce646",
"md5": "cb90032e84bf785fb107f4a358956ba3",
"sha256": "4becef0eb6a957dbb8fba0647ac0be9ef2dd3769f6c5c59857363d3975e34816"
},
"downloads": -1,
"filename": "web3client-1.3.10-py3-none-any.whl",
"has_sig": false,
"md5_digest": "cb90032e84bf785fb107f4a358956ba3",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 2709536,
"upload_time": "2024-02-29T18:14:46",
"upload_time_iso_8601": "2024-02-29T18:14:46.721509Z",
"url": "https://files.pythonhosted.org/packages/29/4d/dc71fbf2c662f60871e712326910be18c398d0991ced599887b952cce646/web3client-1.3.10-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "59ddad74a83ff8af33e69769b8b0d3745f8638cff3c5175328628e5452746d59",
"md5": "c0195d84e1ffc7364e709572b2343dba",
"sha256": "007913f4d635d560ad9e169df752afdcdc90b451099786c819e01445e909df88"
},
"downloads": -1,
"filename": "web3client-1.3.10.tar.gz",
"has_sig": false,
"md5_digest": "c0195d84e1ffc7364e709572b2343dba",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 2203699,
"upload_time": "2024-02-29T18:14:51",
"upload_time_iso_8601": "2024-02-29T18:14:51.221681Z",
"url": "https://files.pythonhosted.org/packages/59/dd/ad74a83ff8af33e69769b8b0d3745f8638cff3c5175328628e5452746d59/web3client-1.3.10.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-02-29 18:14:51",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "coccoinomane",
"github_project": "web3client",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"tox": true,
"lcname": "web3client"
}