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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

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

Hashes for solidity_typestub-0.0.1.tar.gz
Algorithm Hash digest
SHA256 032f539d774e8a1597f5048d6c0d2151c2bd2389a42a086db1477183f27ac4da
MD5 084314774f8c6efae2b3713522867ca9
BLAKE2b-256 df861a93e3eaa06256da62e9f9499d2f5d771cad4d91b0771d24955a12e644f3

See more details on using hashes here.

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

Hashes for solidity_typestub-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 13fe0c315036f31964e719c066534827f384728eb66f18ed4c3cf540d65fee59
MD5 9055c401b083972dce6117fb6a617715
BLAKE2b-256 40c9cf645645df757fa2f2a953d1b4534d18403d2bf7bbc5a8961ba034f5e1e4

See more details on using hashes here.

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