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.0rc3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 92b70de3d4562bec5bbec2f1cc0fe19df12baa9e9c7c17efb59fddb6e7271f97 |
|
MD5 | 0eb6655e2be86658751beb7353432900 |
|
BLAKE2b-256 | 0989c2a7a4a1f777ced52dd0ed49b5e6b57a66d84e367c1eaa9b90ecf0dbb74f |
Close
Hashes for eip712_clearsign-2.0.0rc3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8c0f20a261ec046a173cac84455161ec2773f44879554e913cdbf84ecfbc4ff2 |
|
MD5 | 1d312adccdbf9949444264761b359f39 |
|
BLAKE2b-256 | cebe78a09936e14157be04414413b198f5f7faef486af94afcb73e6b0d7bd8a4 |