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
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0a7a214b4ab645fb69e5a570feda9ccbb2d69793ed510c147b3846ee97014caf |
|
MD5 | 7d7b9c223b138c6c78b86e9c41c336c7 |
|
BLAKE2b-256 | cd582e3e69384b776f6756a7efa313ebe7b15dc7633e480d12cea582fc63a7ce |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 61ab3975e6b5247a8a069b04a645c2e43ab985f4cd062b7726654ea87a3eed68 |
|
MD5 | 70443e8307cbfea72be2fca3766802ea |
|
BLAKE2b-256 | 092cc941d6311ae79373ce911ed24c9d4efb49537494f0220db2a139ad5fd439 |