ApeWorX / ethpm-types

Implementation of EIP-2678
Apache License 2.0
14 stars 8 forks source link
ethereum python smart-contracts web3

Quick Start

EthPM is an Ethereum package manifest containing data types for contracts, deployments, and source code using EIP-2678. The library validates and serializes contract related data and provides JSON schemas.

Dependencies

Installation

via pip

You can install the latest release via pip:

pip install ethpm-types

via setuptools

You can clone the repository and use setuptools for the most up-to-date version:

git clone https://github.com/ApeWorX/ethpm-types.git
cd ethpm-types
python3 setup.py install

Quick Usage

Starting with a dictionary of attribute data, such as a contract instance, you can build an EthPM typed object.

from ethpm_types import ContractInstance

contract = ContractInstance(contractType="ContractClassName", address="0x123...")
print(contract.contract_type)

You can also parse ethpm_types.abi objects using the .from_signature classmethod:

from ethpm_types.abi import MethodABI, EventABI

>>> MethodABI.from_signature("function_name(uint256 arg1)")
MethodABI(type='function', name='function_name', inputs=[...], ...)

>>> EventABI.from_signature("Transfer(address indexed from, address indexed to, uint256 value)")
EventABI(type='event', name='Transfer', inputs=[...], ...)