Skip to main content

MESC is the Multiple Endpoint Shared Configuration Standard

Project description

Python MESC Implementation

This is a reference implementation of the Python MESC Standard

It has no external dependencies.

Installation

From PyPI

pip install mesc

From Source

git clone https://github.com/paradigmxyz/mesc
cd mesc
pip install ./

Example Usage

from typing import Any, Mapping, Sequence
import mesc

# check whether mesc is enabled
enabled: bool = mesc.is_mesc_enabled()

# get the default endpoint
endpoint: Endpoint | None = mesc.get_default_endpoint()

# get the default endpoint of a network
endpoint: Endpoint | None = mesc.get_endpoint_by_network(5)

# get the default endpoint for a particular tool
endpoint: Endpoint | None = mesc.get_default_endpoint(profile='xyz_tool')

# get the default endpoint of a network for a particular tool
endpoint: Endpoint | None = mesc.get_endpoint_by_network(5, profile='xyz_tool')

# get an endpoint by name
endpoint: Endpoint | None = mesc.get_endpoint_by_name('local_goerli')

# parse a user-provided string into a matching endpoint
# (first try 1. endpoint name, then 2. chain id, then 3. network name)
endpoint: Endpoint | None = mesc.get_endpoint_by_query(user_str, profile='xyz_tool')

# find all endpoints matching given criteria
endpoints: Sequence[Endpoint] = mesc.find_endpoints(chain_id=5)

# get non-endpoint metadata
metadata: Mapping[str, Any] = mesc.get_global_metadata(profile='xyz_tool')

Reference

from typing import Any, MutableMapping, TypedDict, Literal, Sequence

class RpcConfig(TypedDict):
    mesc_version: str
    default_endpoint: str | None
    endpoints: MutableMapping[str, Endpoint]
    network_defaults: MutableMapping[str, str]
    network_names: MutableMapping[str, str]
    profiles: MutableMapping[str, Profile]
    global_metadata: MutableMapping[str, Any]

class Endpoint(TypedDict):
    name: str
    url: str
    chain_id: str | None
    endpoint_metadata: MutableMapping[str, Any]

class Profile(TypedDict):
    name: str
    default_endpoint: str | None
    network_defaults: MutableMapping[str, str]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mesc-0.2.1.tar.gz (26.6 kB view details)

Uploaded Source

Built Distribution

mesc-0.2.1-py3-none-any.whl (26.7 kB view details)

Uploaded Python 3

File details

Details for the file mesc-0.2.1.tar.gz.

File metadata

  • Download URL: mesc-0.2.1.tar.gz
  • Upload date:
  • Size: 26.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.31.0

File hashes

Hashes for mesc-0.2.1.tar.gz
Algorithm Hash digest
SHA256 6ec8f7f8daae54fc2e2d3da016664db35a0c40acc1aae46f6681a0f26340b133
MD5 d2288bebcd5d1f1c113a63235788b083
BLAKE2b-256 a33dd0b34ffb74c7706e877f1a09374a4c38d2a5625d0fe1c87bcdc9535b5b41

See more details on using hashes here.

File details

Details for the file mesc-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: mesc-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 26.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.31.0

File hashes

Hashes for mesc-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c919cefc242ce04fc78ea4e2c3f8358d9ce368d202c0f48c920a72bbf6b9f34e
MD5 0943486be21c28370a45573ec6696bf4
BLAKE2b-256 cefb166a25261d7cca68d6cdb5d4074afc62e0f27c4ac67c6cb8599292776614

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page