Package: veriteos-eth-abi
# Ethereum Contract[![Build Status](https://circleci.com/gh/ethereum/eth-abi.svg?style=shield)](https://circleci.com/gh/ethereum/eth-abi)
[![Documentation Status](https://readthedocs.org/projects/eth-abi/badge/?version=latest)](https://readthedocs.org/projects/eth-abi/?badge=latest)
[![PyPi version](https://img.shields.io/pypi/v/eth-abi.svg)](https://pypi.python.org/pypi/eth-abi)Python utilities for working with the Ethereum ABI## Installation`sh pip installeth-abi`## Documentation### DecodingThese functions are intended for decoding return values from the EVM.eth_abi.decode_single(type, data)This function tries to decodedatainto the python type that corresponds
to the providedtype.  This function accepts data of type bytes.>>>decode_single('uint256',b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0009')12345Thevalueparameter is expected to be one of the recognized EVM types.NoteThis function cannot be used to decode dynamic or array types such asbytes32[].eth_abi.decode_abi(types, data)This function decodesdatainto the python type corresponding to the
providedtypes.  This function accepts arrays of type byte.>>>decode_abi(['uint256'],b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0009')[12345]>>>decode_abi(['bytes32','bytes32'],b'a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')['a','b']Thevaluesparameter is expected to be an iterable whose values are all one
of the recognized EVM types.### EncodingThese functions are intended for encoding python values into representations
that are suitable for interacting with the EVM.eth_abi.encode_single(type, value)This function encodesvaluein the ABI encoding for the providedtype.>>>encode_single('uint256',12345)b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0009'Thevalueparameter is expected to be one of the recognized EVM types.NoteThis function cannot be used to encode array types such asbytes32[].eth_abi.encode_abi(types, values)This function encodesvaluesin the ABI encoding for the corresponding type
provided by thetypesargument.>>>encode_abi(['uint256'],[12345])b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0009'>>>encode_abi(['bytes32','bytes32'],['a','b'])b'a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'Thevaluesparameter is expected to be an iterable whose values are all one
of the recognized EVM types.## DevelopmentClone the repository and then run:`sh pip install-e.-rrequirements-dev.txt`### Running the testsYou can run the tests with:`sh py.test tests `Or you can installtoxto run the full test suite.### ReleasingPandoc is required for transforming the markdown README to the proper format to
render correctly on pypi.For Debian-like systems:` apt install pandoc `Or on OSX:`sh brew install pandoc `To release a new version:`sh make releasebump=$$VERSION_PART_TO_BUMP$$`#### How to bumpversionThe version format for this repo is{major}.{minor}.{patch}for stable, and{major}.{minor}.{patch}-{stage}.{devnum}for unstable (stagecan be alpha or beta).To issue the next version in line, specify which part to bump,
likemake release bump=minorormake release bump=devnum.If you are in a beta version,make release bump=stagewill switch to a stable.To issue an unstable version when the current version is stable, specify the
new version explicitly, likemake release bump=”–new-version 4.0.0-alpha.1 devnum”