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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
|