Generate python typestubs for abi of solidity contracts
Project description
jO-Osko's stub generator
Generate .pyi
stubs from abi files to ease typechecking and development with web3py
.
Features
Solidity typestub generates .pyi
files that enable type directed code completion and typechecking of web3py wrappers around solidity contracts.
Usage
Install using pip pip install solidity_typestub
.
Invoke it with solidity_typestub path/to/input/file_or_folder.json path/to/another/file/or/folder ...
.
Stub generator generates stubs for input files or recursively searches the provided input folder for .json
files with abi.
The generated stubs are written to the folder artifacts
(configurable) and a dummy __init__.py
is generated (provided it does not exist) to make them importable.
Available options:
--no-format
,-nf
: Do not autoformat generated files using black (default: use autoformatter)--output <directory_name>
: Specify output directory (default:artifacts
)
contract: SampleContract = w3.eth.contract(address=sample_address, abi=sample_abi)
reveal_type(contract.functions.exampleFun.call)
# note: Revealed type is "def (_arg1: builtins.int, _arg2: builtins.list[builtins.bool]) -> Tuple[builtins.int, builtins.str]"
Roadmap
- Support custom structs
- Support api acquisition of abi files from blockexplorer and blockscout
- More configuration options
- Provide support for
transact()
types - Provide workable contracts a-la truffle
- Generate stub files directly from solidity files using
solcx
Contributing
Any contributions are welcome (PR, Issues, documentation, comments).
Acknowledgements
This work builds greatly on ocaml solidity developed by ocamlpro and modified a bit.
AFLabs and Flare foundation for testing and bug reporting.
jO-Osko
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
File details
Details for the file solidity_typestub-0.0.1.tar.gz
.
File metadata
- Download URL: solidity_typestub-0.0.1.tar.gz
- Upload date:
- Size: 7.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 032f539d774e8a1597f5048d6c0d2151c2bd2389a42a086db1477183f27ac4da |
|
MD5 | 084314774f8c6efae2b3713522867ca9 |
|
BLAKE2b-256 | df861a93e3eaa06256da62e9f9499d2f5d771cad4d91b0771d24955a12e644f3 |
File details
Details for the file solidity_typestub-0.0.1-py3-none-any.whl
.
File metadata
- Download URL: solidity_typestub-0.0.1-py3-none-any.whl
- Upload date:
- Size: 7.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 13fe0c315036f31964e719c066534827f384728eb66f18ed4c3cf540d65fee59 |
|
MD5 | 9055c401b083972dce6117fb6a617715 |
|
BLAKE2b-256 | 40c9cf645645df757fa2f2a953d1b4534d18403d2bf7bbc5a8961ba034f5e1e4 |