Skip to content

A Python client for interacting with the Ethereum Beacon Chain API

License

Notifications You must be signed in to change notification settings

ergonia/beacon-client-py

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

beacon-client-py

A Python client for interacting with the Ethereum Beacon Chain API

Beacon Chain API Reference

Ethereum Consensus Specification

Ethereum Consensus Specification Annotated

This implementation also leans on types implemented here

Installation

pip install beacon-client-py

Simple Example

from beacon_client.api import BeaconChainAPI

client = BeaconChainAPI("http://localhost:5052")
client.get_headers_from_block_id(block_id="head")

Streaming Example

for event in client.stream_events(head=True, block=True, attestation=True):
    match event.event:
        case "head":
            print(client.parse_head(event.data))
        case "block":
            print(client.parse_block(event.data))
        case "attestation":
            print(client.parse_attestation(event.data))
        case other:
            pass

Development

Run the docs locally

poetry run mkdocs serve

Formatter

poetry run black .

Tests

poetry run pytest -vv

linter

poetry run flake8

note: requires poetry version 1.2.x or higher

About

A Python client for interacting with the Ethereum Beacon Chain API

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages