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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for eip712_clearsign-2.0.0rc1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84bd1cc25dab28e603fed4f0a4f66fce9fc7f579c5ce067abf652096bbc0e041 |
|
MD5 | 670fa53668f5f8aa87456c017e500fd6 |
|
BLAKE2b-256 | c269250a083fbcb142992d24f3dba76069383c6ca71aed992b8fac137db99781 |
Close
Hashes for eip712_clearsign-2.0.0rc1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 01542e3485023002b3a7cafa99f988a1b04ff2064bd2c1fc5d7b08370a6c1377 |
|
MD5 | 71df2b683baa38319d8800a09c06de3b |
|
BLAKE2b-256 | 8a095791b798a50d5d7138e1cb62b24f440dada00e35b0eacb25d184ed5fde81 |