A library for generating Solidity interfaces from ABIs.
Project description
abi2solc
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 | 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
abi2solc-0.1.0.tar.gz
(4.1 kB
view hashes)