eth-event


Nameeth-event JSON
Version 1.4.0 PyPI version JSON
download
home_pagehttps://github.com/iamdefinitelyahuman/eth-event
SummaryEthereum event decoder and topic generator
upload_time2025-08-08 21:56:05
maintainerNone
docs_urlNone
authorBenjamin Hauser
requires_python<4,>=3.8
licenseMIT
keywords ethereum
VCS
bugtrack_url
requirements cchecksum eth-hash faster-eth-abi hexbytes
Travis-CI No Travis.
coveralls test coverage
            # eth-event

[![Pypi Status](https://img.shields.io/pypi/v/eth-event.svg)](https://pypi.org/project/eth-event/) [![Build Status](https://img.shields.io/github/actions/workflow/status/iamdefinitelyahuman/eth-event/main.yaml?branch=master)](https://github.com/iamdefinitelyahuman/eth-event/actions) [![Coverage Status](https://img.shields.io/codecov/c/github/iamdefinitelyahuman/eth-event)](https://codecov.io/gh/iamdefinitelyahuman/eth-event)

Tools for Ethereum event decoding and topic generation.

## Installation

You can install the latest release via `pip`:

```bash
pip install eth-event
```

Or clone the repository and use `setuptools` for the most up-to-date version:

```bash
git clone https://github.com/iamdefinitelyahuman/eth-event.git
cd eth-event
python3 setup.py install
```

## Usage

The public API is well documented within the docstrings. The following example may also help:

```python
>>> from eth_event import get_topic_map

# generating a topic map
>>> abi = open('abi.json').read()
>>> topic_map = get_topic_map(abi)
>>> topic_map
{
    '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef': {
        'name': 'Transfer',
        'inputs': [
            {'name': 'from', 'type': 'address', 'indexed': True},
            {'name': 'to', 'type': 'address', 'indexed': True},
            {'name': 'value', 'type': 'uint256', 'indexed': False}
        ]
    }
}

# decoding event logs from a transaction receipt
>>> tx = token.transfer(account[1], 100, {'from': account[0]})
<Transaction object '0x615a157e84715d5f960a38fe2a3ddb566c8393cfc71f15b06170a0eff74dfdde'>
>>> eth_event.decode_logs(tx.logs, topic_map)
[{
    'name': 'Transfer',
    'address': "0x3194cBDC3dbcd3E11a07892e7bA5c3394048Cc87",
    'data': [
        {'name': 'from', 'type': 'address', 'value': '0xbd4940951bfa463f8fb6db762e55686f6cfdb73a', 'decoded': True},
        {'name': 'to', 'type': 'address', 'value': '0xbd4940951bfa463f8fb6db762e55686f6cfdb73a', 'decoded': True},
        {'name': 'tokens', 'type': 'uint256', 'value': 100, 'decoded': True}
    ],
    'logIndex': 0,
    'blockNumber': 0,
    'transactionIndex': 0
}]

# decoding a structLog from Geth's debug_traceTransaction endpoint
>>> trace = web3.provider.make_request(
    "debug_traceTransaction",
    ['0x615a157e84715d5f960a38fe2a3ddb566c8393cfc71f15b06170a0eff74dfdde', {}]
)
>>> struct_log = trace['result']['structLogs']

>>> eth_event.decode_trace(struct_log, topic_map, initial_address="0x3194cBDC3dbcd3E11a07892e7bA5c3394048Cc87")
[{
    'name': 'Transfer',
    'address': "0x3194cBDC3dbcd3E11a07892e7bA5c3394048Cc87",
    'data': [
        {'name': 'from', 'type': 'address', 'value': '0xbd4940951bfa463f8fb6db762e55686f6cfdb73a', 'decoded': True},
        {'name': 'to', 'type': 'address', 'value': '0xbd4940951bfa463f8fb6db762e55686f6cfdb73a', 'decoded': True},
        {'name': 'tokens', 'type': 'uint256', 'value': 100, 'decoded': True}
    ],
}]
```

## Limitations

* If an array is indexed in an event, the topic is generated as a sha3 hash and so cannot be decoded. In this case, the undecoded topic is returned and `decoded` is set to `False`.

* Anonymous events cannot be decoded. Use the `allow_undecoded` kwarg when calling `decode_logs` and `decode_trace` to receive the undecoded log without raising an exception.

* When decoding a trace, the initial address for the call cannot be determined. To include addresses where decoded events were emitted you must supply the initial address with the `initial_address` keyword argument.

## Tests

To run the test suite:

```bash
$ tox
```

## Development

This project is still in development. Comments, questions, criticisms and pull requests are welcomed.

## License

This project is licensed under the [MIT license](LICENSE).

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/iamdefinitelyahuman/eth-event",
    "name": "eth-event",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4,>=3.8",
    "maintainer_email": null,
    "keywords": "ethereum",
    "author": "Benjamin Hauser",
    "author_email": "ben@hauser.id",
    "download_url": "https://files.pythonhosted.org/packages/f0/4c/fc38c0bf7eef53f0ed7077140338e9c07db587fc1e823e1fea89565aa3f6/eth-event-1.4.0.tar.gz",
    "platform": null,
    "description": "# eth-event\n\n[![Pypi Status](https://img.shields.io/pypi/v/eth-event.svg)](https://pypi.org/project/eth-event/) [![Build Status](https://img.shields.io/github/actions/workflow/status/iamdefinitelyahuman/eth-event/main.yaml?branch=master)](https://github.com/iamdefinitelyahuman/eth-event/actions) [![Coverage Status](https://img.shields.io/codecov/c/github/iamdefinitelyahuman/eth-event)](https://codecov.io/gh/iamdefinitelyahuman/eth-event)\n\nTools for Ethereum event decoding and topic generation.\n\n## Installation\n\nYou can install the latest release via `pip`:\n\n```bash\npip install eth-event\n```\n\nOr clone the repository and use `setuptools` for the most up-to-date version:\n\n```bash\ngit clone https://github.com/iamdefinitelyahuman/eth-event.git\ncd eth-event\npython3 setup.py install\n```\n\n## Usage\n\nThe public API is well documented within the docstrings. The following example may also help:\n\n```python\n>>> from eth_event import get_topic_map\n\n# generating a topic map\n>>> abi = open('abi.json').read()\n>>> topic_map = get_topic_map(abi)\n>>> topic_map\n{\n    '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef': {\n        'name': 'Transfer',\n        'inputs': [\n            {'name': 'from', 'type': 'address', 'indexed': True},\n            {'name': 'to', 'type': 'address', 'indexed': True},\n            {'name': 'value', 'type': 'uint256', 'indexed': False}\n        ]\n    }\n}\n\n# decoding event logs from a transaction receipt\n>>> tx = token.transfer(account[1], 100, {'from': account[0]})\n<Transaction object '0x615a157e84715d5f960a38fe2a3ddb566c8393cfc71f15b06170a0eff74dfdde'>\n>>> eth_event.decode_logs(tx.logs, topic_map)\n[{\n    'name': 'Transfer',\n    'address': \"0x3194cBDC3dbcd3E11a07892e7bA5c3394048Cc87\",\n    'data': [\n        {'name': 'from', 'type': 'address', 'value': '0xbd4940951bfa463f8fb6db762e55686f6cfdb73a', 'decoded': True},\n        {'name': 'to', 'type': 'address', 'value': '0xbd4940951bfa463f8fb6db762e55686f6cfdb73a', 'decoded': True},\n        {'name': 'tokens', 'type': 'uint256', 'value': 100, 'decoded': True}\n    ],\n    'logIndex': 0,\n    'blockNumber': 0,\n    'transactionIndex': 0\n}]\n\n# decoding a structLog from Geth's debug_traceTransaction endpoint\n>>> trace = web3.provider.make_request(\n    \"debug_traceTransaction\",\n    ['0x615a157e84715d5f960a38fe2a3ddb566c8393cfc71f15b06170a0eff74dfdde', {}]\n)\n>>> struct_log = trace['result']['structLogs']\n\n>>> eth_event.decode_trace(struct_log, topic_map, initial_address=\"0x3194cBDC3dbcd3E11a07892e7bA5c3394048Cc87\")\n[{\n    'name': 'Transfer',\n    'address': \"0x3194cBDC3dbcd3E11a07892e7bA5c3394048Cc87\",\n    'data': [\n        {'name': 'from', 'type': 'address', 'value': '0xbd4940951bfa463f8fb6db762e55686f6cfdb73a', 'decoded': True},\n        {'name': 'to', 'type': 'address', 'value': '0xbd4940951bfa463f8fb6db762e55686f6cfdb73a', 'decoded': True},\n        {'name': 'tokens', 'type': 'uint256', 'value': 100, 'decoded': True}\n    ],\n}]\n```\n\n## Limitations\n\n* If an array is indexed in an event, the topic is generated as a sha3 hash and so cannot be decoded. In this case, the undecoded topic is returned and `decoded` is set to `False`.\n\n* Anonymous events cannot be decoded. Use the `allow_undecoded` kwarg when calling `decode_logs` and `decode_trace` to receive the undecoded log without raising an exception.\n\n* When decoding a trace, the initial address for the call cannot be determined. To include addresses where decoded events were emitted you must supply the initial address with the `initial_address` keyword argument.\n\n## Tests\n\nTo run the test suite:\n\n```bash\n$ tox\n```\n\n## Development\n\nThis project is still in development. Comments, questions, criticisms and pull requests are welcomed.\n\n## License\n\nThis project is licensed under the [MIT license](LICENSE).\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Ethereum event decoder and topic generator",
    "version": "1.4.0",
    "project_urls": {
        "Homepage": "https://github.com/iamdefinitelyahuman/eth-event"
    },
    "split_keywords": [
        "ethereum"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4e596583fff6841f1babcc2f4a758b03becc3d191ec9e28323416989f8ce9272",
                "md5": "8c5c5ff1b915822496716677b3559c23",
                "sha256": "0203413b3fdf69bf65eac1f201620045ca23e8f3d6c347c1cca4743e2586ce35"
            },
            "downloads": -1,
            "filename": "eth_event-1.4.0-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "8c5c5ff1b915822496716677b3559c23",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": "<4,>=3.8",
            "size": 79512,
            "upload_time": "2025-08-08T21:55:50",
            "upload_time_iso_8601": "2025-08-08T21:55:50.473172Z",
            "url": "https://files.pythonhosted.org/packages/4e/59/6583fff6841f1babcc2f4a758b03becc3d191ec9e28323416989f8ce9272/eth_event-1.4.0-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "62ee5ddb3301b5d12f93957acef6458a7c00dd8e70eb211284ab242afe7df2f7",
                "md5": "80a3e17246b86f450d7ef068078aa1ca",
                "sha256": "cdba9f50980c6a54de150a7500249584076cfa3bb54ed145fa0e135814bfdd09"
            },
            "downloads": -1,
            "filename": "eth_event-1.4.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "80a3e17246b86f450d7ef068078aa1ca",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": "<4,>=3.8",
            "size": 152993,
            "upload_time": "2025-08-08T21:55:37",
            "upload_time_iso_8601": "2025-08-08T21:55:37.901024Z",
            "url": "https://files.pythonhosted.org/packages/62/ee/5ddb3301b5d12f93957acef6458a7c00dd8e70eb211284ab242afe7df2f7/eth_event-1.4.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "608034142a34a20375044ea614245a01965e9c60cebef7a1fb65f2db337d1f6c",
                "md5": "c2d1ac6e759d7fc957b4a742927eaf07",
                "sha256": "be429bac9e7e7a8143baecd9ed6946f92c7752e62b3c86efe3ccfd15fc84026b"
            },
            "downloads": -1,
            "filename": "eth_event-1.4.0-cp310-cp310-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c2d1ac6e759d7fc957b4a742927eaf07",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": "<4,>=3.8",
            "size": 155531,
            "upload_time": "2025-08-08T21:55:39",
            "upload_time_iso_8601": "2025-08-08T21:55:39.378873Z",
            "url": "https://files.pythonhosted.org/packages/60/80/34142a34a20375044ea614245a01965e9c60cebef7a1fb65f2db337d1f6c/eth_event-1.4.0-cp310-cp310-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7aa1de74d44c1c9ce6121b231e5b3ba93c0fcb06584737f03477d146082b9b90",
                "md5": "bbbae4780d098523a1750f776db66784",
                "sha256": "19b00c11597399f37f8082f4b25d06f3af602e5a4587f93e5aad152dfb37497b"
            },
            "downloads": -1,
            "filename": "eth_event-1.4.0-cp310-cp310-win32.whl",
            "has_sig": false,
            "md5_digest": "bbbae4780d098523a1750f776db66784",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": "<4,>=3.8",
            "size": 54203,
            "upload_time": "2025-08-08T21:55:55",
            "upload_time_iso_8601": "2025-08-08T21:55:55.332344Z",
            "url": "https://files.pythonhosted.org/packages/7a/a1/de74d44c1c9ce6121b231e5b3ba93c0fcb06584737f03477d146082b9b90/eth_event-1.4.0-cp310-cp310-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0fed21b28aad7d78d568fe2a31d91b2e74c2b83b16482e56d7ad320b3209fba1",
                "md5": "e8ba24e90f7715f8690a01b504203687",
                "sha256": "6864d348c60867dd0e8a82107fb9ebd0e56660536c2434904a9083cc78bced4a"
            },
            "downloads": -1,
            "filename": "eth_event-1.4.0-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "e8ba24e90f7715f8690a01b504203687",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": "<4,>=3.8",
            "size": 59825,
            "upload_time": "2025-08-08T21:55:56",
            "upload_time_iso_8601": "2025-08-08T21:55:56.573079Z",
            "url": "https://files.pythonhosted.org/packages/0f/ed/21b28aad7d78d568fe2a31d91b2e74c2b83b16482e56d7ad320b3209fba1/eth_event-1.4.0-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "dc9f32d50a737ed557e64659bd9a53cecad7803633c1ea95feb93549ef2d6ee7",
                "md5": "ebafad0d74178104326ba71245fa20c8",
                "sha256": "f646718bf75ee686e73026ca50f6f01f393827e84ee3fae9cc91e4ecc66db39c"
            },
            "downloads": -1,
            "filename": "eth_event-1.4.0-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "ebafad0d74178104326ba71245fa20c8",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": "<4,>=3.8",
            "size": 77740,
            "upload_time": "2025-08-08T21:55:51",
            "upload_time_iso_8601": "2025-08-08T21:55:51.639944Z",
            "url": "https://files.pythonhosted.org/packages/dc/9f/32d50a737ed557e64659bd9a53cecad7803633c1ea95feb93549ef2d6ee7/eth_event-1.4.0-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "85b431dfb05792f1084df950e82e2772a9e1cef0ca1eb769867305f0d05e2b29",
                "md5": "8a1e43bee71e10031a62b07eabcf5a5c",
                "sha256": "037c99bf997936f7f5826d4d2617143199a75614b4f5a81238dcfcd3128076ab"
            },
            "downloads": -1,
            "filename": "eth_event-1.4.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8a1e43bee71e10031a62b07eabcf5a5c",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": "<4,>=3.8",
            "size": 151000,
            "upload_time": "2025-08-08T21:55:40",
            "upload_time_iso_8601": "2025-08-08T21:55:40.313879Z",
            "url": "https://files.pythonhosted.org/packages/85/b4/31dfb05792f1084df950e82e2772a9e1cef0ca1eb769867305f0d05e2b29/eth_event-1.4.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "23552da95bafb02d0998aa8909988ccc46bb190354f32062da6946a53bfbb086",
                "md5": "4474ec9b6749c04fac2864d5f5778b01",
                "sha256": "1525f890a84b00ab37f6651e89aba5bdaa4fb025500ba291017a84ed5702cc7a"
            },
            "downloads": -1,
            "filename": "eth_event-1.4.0-cp311-cp311-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "4474ec9b6749c04fac2864d5f5778b01",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": "<4,>=3.8",
            "size": 153631,
            "upload_time": "2025-08-08T21:55:41",
            "upload_time_iso_8601": "2025-08-08T21:55:41.689793Z",
            "url": "https://files.pythonhosted.org/packages/23/55/2da95bafb02d0998aa8909988ccc46bb190354f32062da6946a53bfbb086/eth_event-1.4.0-cp311-cp311-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9fe5ee57f8832c75ad786e86b6d173026f372f181f5cce64c43b691ddf38afc8",
                "md5": "0bbf7a2bcf8b9aaec2812c236b4523b4",
                "sha256": "b045439e4e3abdd168e9b35a57be61c7426b0c1ccdb36c87712b7f5408fe721d"
            },
            "downloads": -1,
            "filename": "eth_event-1.4.0-cp311-cp311-win32.whl",
            "has_sig": false,
            "md5_digest": "0bbf7a2bcf8b9aaec2812c236b4523b4",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": "<4,>=3.8",
            "size": 54071,
            "upload_time": "2025-08-08T21:55:57",
            "upload_time_iso_8601": "2025-08-08T21:55:57.677087Z",
            "url": "https://files.pythonhosted.org/packages/9f/e5/ee57f8832c75ad786e86b6d173026f372f181f5cce64c43b691ddf38afc8/eth_event-1.4.0-cp311-cp311-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2b31deaffab68968817d780d0ce991221975ef389c58a5b401295f8814471348",
                "md5": "d2a1fe75c4a6a4d3e756c4ec858a8c8f",
                "sha256": "95e1769926ee3e0533e2ab603f3557533d2ca337d26a166455cbf2f88237b759"
            },
            "downloads": -1,
            "filename": "eth_event-1.4.0-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "d2a1fe75c4a6a4d3e756c4ec858a8c8f",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": "<4,>=3.8",
            "size": 59732,
            "upload_time": "2025-08-08T21:55:58",
            "upload_time_iso_8601": "2025-08-08T21:55:58.826588Z",
            "url": "https://files.pythonhosted.org/packages/2b/31/deaffab68968817d780d0ce991221975ef389c58a5b401295f8814471348/eth_event-1.4.0-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8714982ea8b762971dd46c0bbe9152a8ef3e515db6435a1f43b2745ca2d5ee19",
                "md5": "b5208e410a8f369db5d43998d5ccf78e",
                "sha256": "1df0cee082f4661e41ab50bc2dbdd87f5e92c9f04a4685d8d924409d6f2ebc46"
            },
            "downloads": -1,
            "filename": "eth_event-1.4.0-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "b5208e410a8f369db5d43998d5ccf78e",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": "<4,>=3.8",
            "size": 78047,
            "upload_time": "2025-08-08T21:55:52",
            "upload_time_iso_8601": "2025-08-08T21:55:52.485883Z",
            "url": "https://files.pythonhosted.org/packages/87/14/982ea8b762971dd46c0bbe9152a8ef3e515db6435a1f43b2745ca2d5ee19/eth_event-1.4.0-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "77c404814ec64e9df3f10bd01ed5042609c54223d649710aca7e1a8295987340",
                "md5": "a0413b7f796bd31b03694c812811486e",
                "sha256": "42d0c4179c562fa545720451196eb2e140b13b0a788f6c988761e3de0f083b60"
            },
            "downloads": -1,
            "filename": "eth_event-1.4.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a0413b7f796bd31b03694c812811486e",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": "<4,>=3.8",
            "size": 155756,
            "upload_time": "2025-08-08T21:55:43",
            "upload_time_iso_8601": "2025-08-08T21:55:43.337158Z",
            "url": "https://files.pythonhosted.org/packages/77/c4/04814ec64e9df3f10bd01ed5042609c54223d649710aca7e1a8295987340/eth_event-1.4.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "df81ca64a82d0f57bfc19125abea6f18a669a180d53a9003893562deff9c48aa",
                "md5": "4ec72c969aca236e6a8c2c651b50484a",
                "sha256": "8d02e540034a513d61d7415c975c3b68f4e343963eecb4a06e220fd8a5738b1e"
            },
            "downloads": -1,
            "filename": "eth_event-1.4.0-cp312-cp312-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "4ec72c969aca236e6a8c2c651b50484a",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": "<4,>=3.8",
            "size": 156016,
            "upload_time": "2025-08-08T21:55:44",
            "upload_time_iso_8601": "2025-08-08T21:55:44.417489Z",
            "url": "https://files.pythonhosted.org/packages/df/81/ca64a82d0f57bfc19125abea6f18a669a180d53a9003893562deff9c48aa/eth_event-1.4.0-cp312-cp312-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5286bbc59bc27b71cf813292162a0546d479facb6b921ebb072d4d05374c782f",
                "md5": "1c70f55e8bd311c6fcc2619fb1e97312",
                "sha256": "9677d59af020f8948880b25a0c637081fa57d7b3cc33cb62f7ea17a101aa2989"
            },
            "downloads": -1,
            "filename": "eth_event-1.4.0-cp312-cp312-win32.whl",
            "has_sig": false,
            "md5_digest": "1c70f55e8bd311c6fcc2619fb1e97312",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": "<4,>=3.8",
            "size": 55388,
            "upload_time": "2025-08-08T21:55:59",
            "upload_time_iso_8601": "2025-08-08T21:55:59.732954Z",
            "url": "https://files.pythonhosted.org/packages/52/86/bbc59bc27b71cf813292162a0546d479facb6b921ebb072d4d05374c782f/eth_event-1.4.0-cp312-cp312-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9072b65258d83bbc24bc34a3687658974c9efa201289ca38ed7a063b1dac857a",
                "md5": "ee3cc0477cdd57f8dc254c19bc49a7d4",
                "sha256": "71940328a3c2c1c68b270a5ad76a2d1fd2834e70e0f47746e36e145ebf544e55"
            },
            "downloads": -1,
            "filename": "eth_event-1.4.0-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "ee3cc0477cdd57f8dc254c19bc49a7d4",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": "<4,>=3.8",
            "size": 59642,
            "upload_time": "2025-08-08T21:56:00",
            "upload_time_iso_8601": "2025-08-08T21:56:00.565199Z",
            "url": "https://files.pythonhosted.org/packages/90/72/b65258d83bbc24bc34a3687658974c9efa201289ca38ed7a063b1dac857a/eth_event-1.4.0-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c85970c91227a03fad564e37ea6e1a63e960d9a07c9b0fe1c9a67c2c052a698b",
                "md5": "637bd431d1b59f2b176ad48a42ad8f3b",
                "sha256": "6fb4262b42c1732e7fe4871535b7a94f32a04d4d4febe491dbd8a630e5b45fa9"
            },
            "downloads": -1,
            "filename": "eth_event-1.4.0-cp38-cp38-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "637bd431d1b59f2b176ad48a42ad8f3b",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": "<4,>=3.8",
            "size": 75144,
            "upload_time": "2025-08-08T21:55:53",
            "upload_time_iso_8601": "2025-08-08T21:55:53.308527Z",
            "url": "https://files.pythonhosted.org/packages/c8/59/70c91227a03fad564e37ea6e1a63e960d9a07c9b0fe1c9a67c2c052a698b/eth_event-1.4.0-cp38-cp38-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "df4d7826428e27bfa7ed4b909a32c829ca2c36d8c228113ccffaa863f1c3cafa",
                "md5": "4ce6f89203863417d5c7a7e8ff19ff99",
                "sha256": "2f011b8eeb165381e897d317e5f01c00c30867345ce7e6129c67fe159b738c28"
            },
            "downloads": -1,
            "filename": "eth_event-1.4.0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "4ce6f89203863417d5c7a7e8ff19ff99",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": "<4,>=3.8",
            "size": 142512,
            "upload_time": "2025-08-08T21:55:45",
            "upload_time_iso_8601": "2025-08-08T21:55:45.781957Z",
            "url": "https://files.pythonhosted.org/packages/df/4d/7826428e27bfa7ed4b909a32c829ca2c36d8c228113ccffaa863f1c3cafa/eth_event-1.4.0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e8164b47959cb09374de5f4956b86ba9a70cfa50599c8377726eb6302a8e14af",
                "md5": "606cd07575ac6dc57f3785a509c9a157",
                "sha256": "dfa3a72103b08083f2161480569c74b858150957c61f7fc8a95d0d39d5033ad4"
            },
            "downloads": -1,
            "filename": "eth_event-1.4.0-cp38-cp38-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "606cd07575ac6dc57f3785a509c9a157",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": "<4,>=3.8",
            "size": 143968,
            "upload_time": "2025-08-08T21:55:47",
            "upload_time_iso_8601": "2025-08-08T21:55:47.031481Z",
            "url": "https://files.pythonhosted.org/packages/e8/16/4b47959cb09374de5f4956b86ba9a70cfa50599c8377726eb6302a8e14af/eth_event-1.4.0-cp38-cp38-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4d549b454bb2f8f721ed4dd4a2acd2c33a620713f8cd7f4d5d35752eeae8b924",
                "md5": "4821aa726725dff51017a160baedbafe",
                "sha256": "caf3c97f02d56364564b9cb0145ee3a30bcf7eca205a49224bfdb561b4480389"
            },
            "downloads": -1,
            "filename": "eth_event-1.4.0-cp38-cp38-win32.whl",
            "has_sig": false,
            "md5_digest": "4821aa726725dff51017a160baedbafe",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": "<4,>=3.8",
            "size": 52682,
            "upload_time": "2025-08-08T21:56:01",
            "upload_time_iso_8601": "2025-08-08T21:56:01.363923Z",
            "url": "https://files.pythonhosted.org/packages/4d/54/9b454bb2f8f721ed4dd4a2acd2c33a620713f8cd7f4d5d35752eeae8b924/eth_event-1.4.0-cp38-cp38-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "be3f7117b763ca9aab73efb737243240f5e7de569e8537872f58e29577b21d90",
                "md5": "a8cb89344c2f1e2dd43bf98a687d9d25",
                "sha256": "351718d53e5730d9e707e366ba71e8963e1ab7b9e85ecaf9414c2f6ad874f38c"
            },
            "downloads": -1,
            "filename": "eth_event-1.4.0-cp38-cp38-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "a8cb89344c2f1e2dd43bf98a687d9d25",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": "<4,>=3.8",
            "size": 57834,
            "upload_time": "2025-08-08T21:56:02",
            "upload_time_iso_8601": "2025-08-08T21:56:02.385732Z",
            "url": "https://files.pythonhosted.org/packages/be/3f/7117b763ca9aab73efb737243240f5e7de569e8537872f58e29577b21d90/eth_event-1.4.0-cp38-cp38-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c9cbce8b03955a737c3b6ff58860dc5076ce99d94dcb048da70170e90feb3048",
                "md5": "36f723552dee210911c46c31a4385de5",
                "sha256": "f3426e18c57eda0bc9d2abfb761c8909595305d7a0d3d6836dd5ff9a576687fc"
            },
            "downloads": -1,
            "filename": "eth_event-1.4.0-cp39-cp39-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "36f723552dee210911c46c31a4385de5",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": "<4,>=3.8",
            "size": 79562,
            "upload_time": "2025-08-08T21:55:54",
            "upload_time_iso_8601": "2025-08-08T21:55:54.489560Z",
            "url": "https://files.pythonhosted.org/packages/c9/cb/ce8b03955a737c3b6ff58860dc5076ce99d94dcb048da70170e90feb3048/eth_event-1.4.0-cp39-cp39-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7bb9a16f0758271559c5bae03dafec367024e86bd7dcd8f0bde083a604027e10",
                "md5": "edda3e88053ff1b6974748855196674f",
                "sha256": "e2d6606ed2b35ae0779fe9cd6328d16f63c301c81527f843da1b44ce33a5b856"
            },
            "downloads": -1,
            "filename": "eth_event-1.4.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "edda3e88053ff1b6974748855196674f",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": "<4,>=3.8",
            "size": 152480,
            "upload_time": "2025-08-08T21:55:47",
            "upload_time_iso_8601": "2025-08-08T21:55:47.956482Z",
            "url": "https://files.pythonhosted.org/packages/7b/b9/a16f0758271559c5bae03dafec367024e86bd7dcd8f0bde083a604027e10/eth_event-1.4.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "25981b423980769ef89c844a16642a44a905c59e0adf42104ad05965320edaad",
                "md5": "37441e01f971efd7b686941485280580",
                "sha256": "dac894eaef556bbc03dfb219a10775866e21c255b4c15988d1499e1ccceff1cf"
            },
            "downloads": -1,
            "filename": "eth_event-1.4.0-cp39-cp39-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "37441e01f971efd7b686941485280580",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": "<4,>=3.8",
            "size": 155036,
            "upload_time": "2025-08-08T21:55:49",
            "upload_time_iso_8601": "2025-08-08T21:55:49.243238Z",
            "url": "https://files.pythonhosted.org/packages/25/98/1b423980769ef89c844a16642a44a905c59e0adf42104ad05965320edaad/eth_event-1.4.0-cp39-cp39-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "473031f25e1099cecf955bd8ede60800c1986dd4ad557e0334f0da94958fedec",
                "md5": "e41640ddd1f8b751d3fdc3720cd7804d",
                "sha256": "5f1c48501a50b633e86e4590bb60ba17e63b9998e2b92ac279255faab4efad70"
            },
            "downloads": -1,
            "filename": "eth_event-1.4.0-cp39-cp39-win32.whl",
            "has_sig": false,
            "md5_digest": "e41640ddd1f8b751d3fdc3720cd7804d",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": "<4,>=3.8",
            "size": 54145,
            "upload_time": "2025-08-08T21:56:03",
            "upload_time_iso_8601": "2025-08-08T21:56:03.208200Z",
            "url": "https://files.pythonhosted.org/packages/47/30/31f25e1099cecf955bd8ede60800c1986dd4ad557e0334f0da94958fedec/eth_event-1.4.0-cp39-cp39-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "462be22469763f7a7648fd054fa7ffdbaa8d72d0d0cd770a1952d81c5eed4470",
                "md5": "84fe6703f28161aabb4566e3d99a163d",
                "sha256": "d84a7bbaa93a610ead89a1e9ba2f8509dacf129e2c80bca93b800dfc6b8bcf63"
            },
            "downloads": -1,
            "filename": "eth_event-1.4.0-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "84fe6703f28161aabb4566e3d99a163d",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": "<4,>=3.8",
            "size": 59787,
            "upload_time": "2025-08-08T21:56:04",
            "upload_time_iso_8601": "2025-08-08T21:56:04.373046Z",
            "url": "https://files.pythonhosted.org/packages/46/2b/e22469763f7a7648fd054fa7ffdbaa8d72d0d0cd770a1952d81c5eed4470/eth_event-1.4.0-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f04cfc38c0bf7eef53f0ed7077140338e9c07db587fc1e823e1fea89565aa3f6",
                "md5": "8eb5ba6a14a2a8bfe428829735d072ed",
                "sha256": "1a39aa66da30d3c80abbea8b7040cdeb7db8f9e3af6be6f9a797aea632d9f3d1"
            },
            "downloads": -1,
            "filename": "eth-event-1.4.0.tar.gz",
            "has_sig": false,
            "md5_digest": "8eb5ba6a14a2a8bfe428829735d072ed",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4,>=3.8",
            "size": 9504,
            "upload_time": "2025-08-08T21:56:05",
            "upload_time_iso_8601": "2025-08-08T21:56:05.159585Z",
            "url": "https://files.pythonhosted.org/packages/f0/4c/fc38c0bf7eef53f0ed7077140338e9c07db587fc1e823e1fea89565aa3f6/eth-event-1.4.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-08 21:56:05",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "iamdefinitelyahuman",
    "github_project": "eth-event",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "requirements": [
        {
            "name": "cchecksum",
            "specs": [
                [
                    ">=",
                    "0.2.6"
                ],
                [
                    "<",
                    "0.4"
                ]
            ]
        },
        {
            "name": "eth-hash",
            "specs": [
                [
                    ">=",
                    "0.2.0"
                ],
                [
                    "<",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "faster-eth-abi",
            "specs": [
                [
                    "<",
                    "6"
                ],
                [
                    ">=",
                    "5.2.1"
                ]
            ]
        },
        {
            "name": "hexbytes",
            "specs": [
                [
                    "<",
                    "2"
                ],
                [
                    ">=",
                    "1"
                ]
            ]
        }
    ],
    "tox": true,
    "lcname": "eth-event"
}
        
Elapsed time: 1.49359s