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


Release history Release notifications

Download files

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

Files for abi2solc, version 0.1.0
Filename, size File type Python version Upload date Hashes
Filename, size abi2solc-0.1.0-py3-none-any.whl (4.8 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size abi2solc-0.1.0.tar.gz (4.1 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page