Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

solidity_typestub-0.0.1.tar.gz (7.0 kB view hashes)

Uploaded Source

Built Distribution

solidity_typestub-0.0.1-py3-none-any.whl (7.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page