Release Notes
eth-abi v6.0.0-beta.1 (2025-12-17)
Breaking Changes
Drop support for Python 3.8 & 3.9 (#250)
Improved Documentation
Fix typo in index (#243)
Features
Add support for Python 3.14 (#250)
eth-abi v5.2.0 (2025-01-14)
Features
Merge template, adding
py313support, replacebumpversionwithbump-my-version, raise requiredhypothesisversions. (#241)
Internal Changes - for eth-abi Contributors
Merge template, fixing docs CI and other various updates (#236)
eth-abi v5.1.0 (2024-04-01)
Internal Changes - for eth-abi Contributors
Upgrade parsimonious from
0.9to0.10, which is 15% faster (#231)Add
python 3.12support, add all-format docs tests and nightly CI runs, reorg tests file structure to match CI grouping (#232)
eth-abi v5.0.1 (2024-03-04)
Bugfixes
Internal Changes - for eth-abi Contributors
Clear mypy
misc-type errors and add top-levelpy.typedfile back (#221)
eth-abi v5.0.0 (2024-01-09)
Breaking Changes
Drop python 3.7 support (#217)
Internal Changes - for eth-abi Contributors
eth-abi v4.2.1 (2023-09-13)
Internal Changes - for eth-abi contributors
Add
build.ossection to readthedocs build settings (#213)
Miscellaneous changes
eth-abi v4.2.0 (2023-08-28)
Features
Allow turning off abi decoder “strict mode” when calling
abi.decode(). (#198)
Bugfixes
Validate against zero-sized
tupletypes / empty Solidity structs. (#212)
eth-abi v4.1.0 (2023-06-08)
Features
updated StringDecoder class to allow user-defined handling of malformed strings, handle with strict by default (#187)
Internal Changes - for eth-abi contributors
eth-abi v4.0.0 (2023-03-22)
No significant changes.
eth-abi v4.0.0-beta.3 (2023-03-20)
Breaking Changes
Upgrade Parsimonious dependency to allow >=0.9,<0.10 (#201)
eth-abi v4.0.0-beta.2 (2022-11-21)
Features
Add support for Python 3.11 (#194)
Miscellaneous changes
eth-abi v4.0.0-beta.1 (2022-09-27)
Bugfixes
Reconcile differences in 32-byte padding between eth-abi encoders for dynamic types and Solidity’s abi.encode() for 0 or empty values (#158)
Breaking Changes
Remove
encode_abi_single(),encode_packed_single(), anddecode_abi_single(). Renameencode_abi(),encode_abi_packed(), anddecode_abi()toencode(),encode_packed(), anddecode(), respectively. (#161)
Miscellaneous changes
eth-abi v3.0.1 (2022-07-18)
Deprecations
Add
DeprecationWarningforencode_abi(),encode_single(),decode_abi(), anddecode_single()and add temporary versions ofabi.encode()andabi.decode()so users can start making these changes early. (#165)
Miscellaneous changes
eth_abi 3.0.0 (2022-01-19)
Features
Bugfixes
Catch ABITypeError exceptions when checking
has_encoder(#148)
Improved Documentation
Fix broken badges in README (#144)
Miscellaneous changes
eth-abi v2.1.1 (2020-02-27)
Bugfixes
If subclassing
eth_abi.decoding.ContextFramesBytesIO.seek(), the new method was not being used byseek_in_frame(). Now it will be. (#139)
Internal Changes - for eth_abi contributors
Merged in project template, for changes in release scripts, docs, release notes, etc. (#140)
v2.1.0
Added support for “byte” alias for “bytes1” type.
Added support for custom stream class in
ABIDecoder. See Using a Custom Stream Class.
v2.0.0
Includes all changes from v2.0.0 beta and alpha versions.
v2.0.0-beta.9
Added
eth_abi.toolssubmodule with extra requirements installable withpip install eth-abi[tools]. See Tools.
v2.0.0-beta.8
Added
has_encoder()andis_encodable_type()to facilitate checking for type validity against coder registrations.
v2.0.0-beta.7
Released March 24, 2019
Fixed an issue that caused custom types containing capital letters to be unparseable.
Removed PyPy support.
Added Python 3.7 support.
v2.0.0-beta.6
Added the grammar module to the public API. See Grammar.
Updated string API for the
ABIType. Type strings forABITypeinstances are now obtained via theto_type_str()method instead of by invoking the builtin Pythonstrfunction with an instance ofABIType.
v2.0.0-beta.5
Added registry copying functionality to facilitate modification of the default registry. See Copying an Existing Registry.
v2.0.0-beta.4
Update eth-typing requirement to
>=2.0.0,<3.0.0.
v2.0.0-beta.3
Added codec API to facilitate use of custom registries. See Codecs.
v2.0.0-beta.2
Released October 16, 2018
Bugfixes
Was accidentally allowing eth-typing v2. Now it requires eth-typing v1 only.
v2.0.0-beta.1
New Features
Added support for nested dynamic arrays from the Solidity version 2 ABI
Added support for non-standard packed mode encoding
Added support for tuple array types e.g.
(int,int)[]
Backwards Incompatible Changes
The
encode_single()anddecode_single()functions no longer accept type tuples to identify ABI types. Only type strings are accepted.The
collapse_type()function has been removed. People who still wish to use this function should replicate its logic locally and where needed.The
process_type()function has been removed in favor of theparse()function. This should make the parsing API more consistent with the new parsimonious parser.
v2.0.0-alpha.1
Released July 19, 2018
v1.3.0
Released December 6, 2018
Bugfixes
Resolved an issue that was preventing discovery of type hints.
Misc
Updated eth-typing dependency version to
>=2.0.0,<3.0.0.
v1.2.2
Released October 18, 2018
Bugfixes
Expand parsimonious dependency from v0.8.0 to v0.8.*
v1.2.1
Released October 16, 2018
Bugfixes
Was accidentally allowing eth-typing v2. Now it requires eth-typing v1 only. (backport from v2)
v1.2.0
Released August 28, 2018
New Features
Backported and added support for nested dynamic arrays from the Solidity version 2 ABI
v1.1.1
Released May 10, 2018
Bugfixes
is_encodable()now returnsFalseif aDecimalhas too many digits to be encoded in the givenfixed<M>x<N>type. (It was previously raising aValueError)Raise an
EncodingTypeErrorinstead of aTypeErrorwhen trying to encode afloatinto afixed<M>x<N>type.
v1.1.0
Released May 8, 2018
New Features
Added a Registry API (docs in progress) for looking up encoders by ABI type
Added support for types: tuple and fixedMxN
Added new is_encodable check for whether a value can be encoded with the given ABI type
Bugfixes
Fix RealDecoder bug that allowed values other than 32 bytes
Fix bug that accepted
stringNas a valid ABI type. Strings may not have a fixed length.Stricter value checking when encoding a Decimal (Make sure it’s not a NaN)
Fix typos in “missing property” exceptions
Misc
Precompile regexes, for performance & clarity
Test fixups and switch to CircleCI
Readme improvements
Performance improvements
Drop Python 2 support cruft
v1.0.0
Released Feb 28, 2018
Confirmed pypy3 compatibility
Add support for eth-utils v1.0.0-beta2 and v1.0.1 stable
Testing improvements
v1.0.0-beta.0
Released Feb 5, 2018
Drop py2 support
Add support for eth-utils v1-beta1
v0.5.0
Rename to
eth-abifor consistency across github/pypi/python-module
v0.4.4
Better error messages for decoder errors.
v0.4.3
Bugfix for
process_typeto support byte string type arrguments
v0.4.2
process_typenow auto-expands all types which have omittied their sizes.
v0.4.1
Support for
functiontypes.
v0.3.1
Bugfix for small signed integer and real encoding/decoding
v0.3.1
Bugfix for faulty release.
v0.3.0
Depart from the original pyethereum encoding/decoding logic.
Fully rewritten encoder and decoder functionality.
v0.2.2
Fix a handful of bytes encoding issues.
v0.2.1
Use pyrlp utility functions for big_endian int operations
v0.2.0
Bugfixes from upstream pyethereum repository for encoding/decoding
Python 3 Support
v0.1.0
Initial release