Skip to main content

Parse eip712 clear sign descriptors

Project description

python-eip712

Parse eip712 clear sign descriptors.

Install

pip install eip712-clearsign

Run tests

pyenv install 3.10.6
pyenv local 3.10.6
python -m venv venv
source venv/bin/activate
pip install -r requirements-dev.txt
pip install .
pytest -s --cov=./eip712

Generate an EIP712 parser

You can generate a base parser file using the following python code:

import json
from eip712 import (
    EIP712ContractDescriptor,
    EIP712DAppDescriptor,
)

eip712_dapp = EIP712DAppDescriptor(
    blockchainName="ethereum", chainId=1, name="MyDApp", contracts=[]
)
contract = EIP712ContractDescriptor(
    address="0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
    contractName="MyCoolContract_V1",
    messages=[],
)
schemas = [
    {
        "EIP712Domain": [
            {"name": "chainId", "type": "uint256"},
            {"name": "name", "type": "string"},
            {"name": "verifyingContract", "type": "address"},
            {"name": "version", "type": "string"},
        ],
        "Mail": [
            {"name": "contents", "type": "string"},
            {"name": "from", "type": "Person"},
            {"name": "to", "type": "Person"},
        ],
        "Person": [
            {"name": "name", "type": "string"},
            {"name": "wallets", "type": "Wallet[]"},
        ],
        "Wallet": [
            {"name": "name", "type": "string"},
            {"name": "addr", "type": "address"},
        ],
    },
    ...
]

for schema in schemas:
    eip712_dapp.add_message(target_contract=contract, schema=schema)

with open("eip712.json", "w+") as f:
    json.dump(eip712_dapp.dict(by_alias=True), f, indent=4, sort_keys=True, ensure_ascii=False)

This will create one mapper field per element in your schemas, with auto generated names. You should then:

  • Remove the fields you don't want to display on the Nano
  • Rename the fields that you want to keep, with names that are as meaningful as possible

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

eip712_clearsign-2.1.0.tar.gz (7.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

eip712_clearsign-2.1.0-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

Details for the file eip712_clearsign-2.1.0.tar.gz.

File metadata

  • Download URL: eip712_clearsign-2.1.0.tar.gz
  • Upload date:
  • Size: 7.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.10.14

File hashes

Hashes for eip712_clearsign-2.1.0.tar.gz
Algorithm Hash digest
SHA256 68b3636fe5dbc1363a67fb1d5816c6b3a4bc123273df1f2e2ff2b83c866ef034
MD5 0d9d502767f2d285108151c1472ec918
BLAKE2b-256 1fabb6ecb4a410aed2f785106aefddad441cf6eb40613c8f1902316db7d4a5ab

See more details on using hashes here.

File details

Details for the file eip712_clearsign-2.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for eip712_clearsign-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2964c654727894e8bb53c03cc1064711adad9458a1837ca3901bd747d9424121
MD5 4b0424965e405768c0c15d89efa27472
BLAKE2b-256 405f877d45aea51c9c8cad5032b06fbb4e5b94a20dbd84bc57080199e921db55

See more details on using hashes here.

Supported by

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