web3client


Nameweb3client JSON
Version 1.3.10 PyPI version JSON
download
home_page
SummaryBatteries-included client to interact with blockchains and smart contracts
upload_time2024-02-29 18:14:51
maintainer
docs_urlNone
author
requires_python>=3.9
licenseMIT
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"
}
        
Elapsed time: 0.23602s