Release Notes
eth-abi v5.2.0 (2025-01-14)
Features
Merge template, adding
py313
support, replacebumpversion
withbump-my-version
, raise requiredhypothesis
versions. (#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.9
to0.10
, which is 15% faster (#231)Add
python 3.12
support, 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.typed
file 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.os
section 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
tuple
types / 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
DeprecationWarning
forencode_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.tools
submodule 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 forABIType
instances are now obtained via theto_type_str()
method instead of by invoking the builtin Pythonstr
function 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 returnsFalse
if aDecimal
has too many digits to be encoded in the givenfixed<M>x<N>
type. (It was previously raising aValueError
)Raise an
EncodingTypeError
instead of aTypeError
when trying to encode afloat
into 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
stringN
as 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-abi
for consistency across github/pypi/python-module
v0.4.4
Better error messages for decoder errors.
v0.4.3
Bugfix for
process_type
to support byte string type arrguments
v0.4.2
process_type
now auto-expands all types which have omittied their sizes.
v0.4.1
Support for
function
types.
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