-
Notifications
You must be signed in to change notification settings - Fork 589
Description
Overview
I am trying to let Brownie have a type safe interface for smart contracts.
I want to generate a Pydantic compatible interface for interacting with smart contracts, into a portable Python script, so people can use that script to get type hints while using IDE.
Brownie currently only compiles Solidity into JSON ABIs, no Python APIs generated.
Specification
I want to generate APIs via the contract ABIs. If possible, just parse the Solidity code and generate compatible API Python code.
It will first generate all used data structures for each contract, for passing into the contract methods.
Contracts are transformed into Python classes.
FInally these Python API code will be stored into a folder like structure, installable and callable from external Python code.
Dependencies
Pydantic: the data validator
Solidity parser: for parsing Solidity code and generate Python API code