Skip to main content

A library for generating Solidity interfaces from ABIs.

Project description

abi2solc

Pypi Status Build Status Coverage Status

A library for generating Solidity interfaces from ABIs.

Installation

You can install the latest release via pip:

$ pip install abi2solc

Or clone the repo and use setuptools for the most up-to-date version:

$ python setup.py install

Usage

>>> import abi2solc

>>> abi = [{'constant': False, 'inputs': [{'name': 'spender', 'type': 'address'}, ...
>>> interface = abi2solc.generate_interface(abi, "TestInterface")

>>> print(interface)
'''pragma solidity ^0.5.0;

interface ExampleInterface {
     event Approval (address indexed tokenOwner, address indexed spender, uint256 tokens);
     event Transfer (address indexed from, address indexed to, uint256 tokens);

     function approve (address spender, uint256 tokens) external returns (bool success);
     function transfer (address to, uint256 tokens) external returns (bool success);
     function transferFrom (address from, address to, uint256 tokens) external returns (bool success);
     function allowance (address tokenOwner, address spender) external view returns (uint256 remaining);
     function balanceOf (address tokenOwner) external view returns (uint256 balance);
     function totalSupply () external view returns (uint256);
}'''

Supported Versions

  • By default, abi2solc generates interfaces with pragma ^0.5.0
  • With the solc4=True kwarg, interfaces are generated with pragma ^0.4.17
  • If solc4=True and the ABI also contains tuple types, an abstract base contract is generated with pragma ^0.4.22

Tests

To run the test suite:

$ tox

Tests make use of py-solc-x.

Development

This project is still under active development and should be considered a beta. Comments, questions, criticisms and pull requests are welcomed! Feel free to open an issue if you encounter a problem or would like to suggest a new feature.

License

This project is licensed under the MIT license.

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

abi2solc-0.1.0.tar.gz (4.1 kB view details)

Uploaded Source

Built Distribution

abi2solc-0.1.0-py3-none-any.whl (4.8 kB view details)

Uploaded Python 3

File details

Details for the file abi2solc-0.1.0.tar.gz.

File metadata

  • Download URL: abi2solc-0.1.0.tar.gz
  • Upload date:
  • Size: 4.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.8

File hashes

Hashes for abi2solc-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0a7a214b4ab645fb69e5a570feda9ccbb2d69793ed510c147b3846ee97014caf
MD5 7d7b9c223b138c6c78b86e9c41c336c7
BLAKE2b-256 cd582e3e69384b776f6756a7efa313ebe7b15dc7633e480d12cea582fc63a7ce

See more details on using hashes here.

File details

Details for the file abi2solc-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: abi2solc-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 4.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.8

File hashes

Hashes for abi2solc-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 61ab3975e6b5247a8a069b04a645c2e43ab985f4cd062b7726654ea87a3eed68
MD5 70443e8307cbfea72be2fca3766802ea
BLAKE2b-256 092cc941d6311ae79373ce911ed24c9d4efb49537494f0220db2a139ad5fd439

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