Release Notes

Read up on all the latest improvements.

eth-utils v4.0.0 (2024-02-22)

Breaking Changes

  • Web3.is_address now returns True for non-checksummed addresses. (#265)

eth-utils v3.0.0 (2024-01-10)

Breaking Changes

  • Drop python 3.7 support (#261)

Internal Changes - for eth-utils Contributors

  • Merge updates from the project template, notably: use pre-commit for linting and change the name of the master branch to main (#261)

  • Correct booleans in pyproject.toml and add test for the presence of the eth_utils.__version__ attribute (#263)

eth-utils v2.3.1 (2023-11-07)

Bugfixes

  • Some users were experiencing encoding issues when parsing the networks json. Use UTF-8 explicitly. (#259)

Internal Changes - for eth-utils Contributors

  • Fix and add new test cases for invalid Network chain_id values. (#256)

Miscellaneous Changes

eth-utils v2.3.0 (2023-10-20)

Features

  • Add Network utility methods to utilize network metadata for a given ChainId. (#253)

eth-utils v2.2.2 (2023-10-11)

Improved Documentation

  • Add information to docs for utilities which did not have any. (#254)

Internal Changes - for eth-utils Contributors

  • Pull latest from template repo to fix release script, update wording in comments and docs. (#252)

Miscellaneous Changes

eth-utils v2.2.1 (2023-09-13)

Internal Changes - for eth-utils Contributors

  • Add build.os config for readthedocs (#250)

eth-utils v2.2.0 (2023-07-10)

Features

  • Added humanize_wei utility to convert common values to more readable units. (#194)

eth-utils v2.1.1 (2023-06-07)

Internal Changes - for eth-utils Contributors

  • Add currency tests with float ether inputs. (#231)

  • remove unused docs deps, bump version of remaining (#239)

  • merge updates from the python project template (#240)

eth-utils v2.1.0 (2022-11-17)

Features

  • Allow a wider eth-hash dependency range (#225)

Performance improvements

  • Performance improvement of up to 65% on is_0x_prefixed (#223)

Improved Documentation

  • Fix typo in documentation: hexidecimal -> hexadecimal (#222)

Internal Changes - for eth-utils Contributors

  • Update use of @cached_property for debug2 logging. (#232)

Miscellaneous changes

Breaking changes

  • Remove support for Python 3.6, add Python 3.11, misc dev internal updates (#227)

eth-utils v2.0.0 (2021-11-18)

Features

  • Upgrade eth-typing to v3.0+, Add support for python 3.9 and 3.10 Remove support for python 3.5 (#215)

eth-utils v1.10.0 (2021-01-21)

Bugfixes

  • When a TypeError or ValueError is raised during apply_formatters_to_dict(), eth_utils appends some useful contextual information. It was trying to re-create the old exception, but that sometimes fails, like with a JSONDecodeError, which expects more arguments in the constructor. So now we raise a basic TypeError or ValueError. (#204)

  • Update the type signature of to_canonical_address(), to_checksum_address(), and to_normalized_address() to allow bytes-typed address input. (#205)

Performance improvements

  • Significant speedup of is_hex() and is_hexstr(). (#202)

  • Significant speedup of is_address(). Running a test that abi-encodes an array of 10 addresses was about 67% faster. (#203)

Internal Changes - for eth-utils Contributors

  • Upgrade eth-hash to v0.3.1, to use its exported type annotations instead of casting the results. (#208)

Miscellaneous changes

eth-utils v1.9.5 (2020-08-31)

Bugfixes

  • Added a new type signature of apply_formatter_if to eth_utils curried module. Also added text_if_str and apply_formatters_to_dict. (#201)

Misc

eth-utils v1.9.4 (2020-08-25)

Bugfixes

  • Make sure all the eth_utils.curried methods are importable, plus a fix for curried typing of hexstr_if_str. (#156)

  • Pass context to new exception in replace_exceptions decorator. (#198)

  • Ensure pickling/unpickling an ExtendedDebugLogger always gives back an ExtendedDebugLogger. (#199)

eth-utils v1.9.0 (2020-05-11)

Features

  • Add is_hexstr as preferred method of checking if a given value is a hex string. (#137)

  • Improve performance of is_hex and is_hexstr by up to 40x (#185)

  • Add humanize_integer_sequence utility. (#188)

  • Add humanize_bytes utility. (#189)

Bugfixes

  • Silence a deprecation error by importing from collections.abc, instead of collections. (#186)

eth-utils 1.8.4 (2019-12-05)

Bugfixes

  • Add missing asterisk to MANIFEST.in (#182)

eth-utils 1.8.3 (2019-12-04)

Misc

eth-utils 1.8.2 (2019-12-04)

Misc

eth-utils 1.8.1 (2019-11-20)

No significant changes.

eth-utils 1.8.0-0.1 (2019-11-20)

Misc

eth-utils 1.8.0 (2019-11-04)

Features

  • Add support for python3.8 (#174)

eth-utils 1.7.0 (2019-09-05)

Features

  • Expose DEBUG2 log level as top level module import (#117)

  • Add get_logger and get_extended_debug_logger utils (#170)

Improved Documentation

  • Setup towncrier to improve the quality of the release notes (#172)

v1.6.4

Released: August 5, 2019

  • Feature

    • Caching for ExtendedDebugLogger.show_debug2 property - #167

v1.6.3

Released: August 5, 2019

  • Feature

    • Add support for Python3.7 - #165

  • Bugfix

    • Fix HasLogger compatibility with other metaclasses. - #165

v1.6.2

Released: July 24, 2019

  • Feature

    • Add support for Python3.7 - #165

    • Add humanize_ipfs_uri. - #162

  • Bugfix

    • Fix typing of clamp numeric utility. - #164

v1.6.1

Released: June 11, 2019

  • Maintenance

    • Use eth-typing types instead of eth-utils types, when available - #163

v1.6.0

Released: May 16, 2019

  • Feature

    • Add logging utilities HasLogger, ExtendedDebugLogger, HasExtendedDebugLogger and setup_DEBUG2_logging - #158

v1.5.2

Released: April 30, 2019

  • Bugfix

    • Fix eth_utils.currency.denom to be a real class with proper type declarations. - #154

    • Fix eth_utils.functional.replace_exceptions type declarations. - #155

  • Feature

    • Add new eth_utils.clamp - #150

v1.5.1

Released: April 17, 2019

  • Bugfix

    • Fix type declarations for eth_utils.functional.to_dict and eth_utils.funcional.to_ordered_dict - #151

v1.5.0

Released: April 16, 2019

  • Features

    • Add new eth_utils.humanize.humanize_seconds and eth_utils.humanize.humanize_hash. - #149

    • Enable PEP561 type hints

v1.4.1

Released: Dec 18, 2018

  • Bugfixes

    • Fixed eth_utils.abi.collapse_if_tuple not handling fixed-size tuple arrays.

v1.4.0

Released: Dec 6, 2018

  • Features

    • Support tuples in eth_utils.abi.function_abi_to_4byte_selector and a new eth_utils.abi.collapse_if_tuple - #141

v1.3.0

  • Misc

    • Fix linting issues

v1.3.0-beta.0

  • Misc

    • Use eth-typing v2.0.0, which may be a breaking change for downstream packages

v1.2.2

  • Bugfixes

    • Prevent from installing with Python 3.5.2 which has a fatal bug when ... is used in a type. - #125

  • Misc

    • Start using black for style checking. - #129

1.2.1

  • Move docs to RTD/Sphinx, with doctest

  • Update eth-typing dependency to 1.3.0

1.2.0

  • Import more resources from implementation-specific “toolz” library in “toolz” wrapper module

1.1.2

  • Update eth-typing dependency

1.1.1

  • Add ValidationError exception

1.1.0

  • Add abi and address type hints

  • Add typehints to more modules

  • Add replace_exceptions decorator to decorators.py

  • Add type hints to applicators module

  • Add type hints to conversions module

  • Add import_string util from django

  • Add conditional cytoolz or toolz install based on python implementation

1.0.3

  • Reject str as a primitive in to_hex()

  • Faster int_to_big_endian implementation

1.0.2

  • Update apply key map to catch conflicting keys

  • Add validation of 19 byte address

  • Support bytearrays in conversion functions

  • Apply formatters to sequence

1.0.1

  • Add autouse fixture to print warnings

  • Change hexidecimal -> hexadecimal

  • Strictly accept text types for decode_hex

  • Remove remaining force_* utils

0.8.1

  • Convert formatting from force

  • Backport pr45 into v0

  • Write validate conversion arguments decorator

  • Update hex and int conversions to work with new decorator

  • Deprecate force bytes/text & formatting utils

0.8.0

  • Swap in eth-hash for pysha3

  • Convert keccak from force_bytes

  • Convert address utils from force text/bytes

  • Import many of the application functions from web3.py

  • Add @combomethod decorator

  • Add tool to generate environment info

  • Add type conversion helpers

  • Convert precision to localcontext

  • Remove unnecessary future imports

  • Drop support for py27

0.7.4

  • Constrain dependencies to major version

0.7.3

  • Support for python 3.6

0.7.2

  • Minor fix for how __version__ is computed in the eth_utils module.

0.7.1

  • Futzing with PyPi formatting of README info.

0.7.0

  • Rename library on pypi to eth_utils

0.6.0

  • Bugfix for to_wei to handle floating point inputs in a manner consistent with what users would expect.

0.5.1

  • Bugfix for is_hex to prevent exceptions from being raised for non-hexadecimal inputs.

0.5.0

  • is_hex now supports both empty string as 0x and odd length hexadecimal strings.

0.4.1

  • Bugfix for currency conversions which retained too high a precision.

0.4.0

  • is_address will now verify the checksum on any address which passes the is_checksum_formatted_address check.

0.3.2

  • Added is_hex.

0.3.1

  • Added big_endian_to_int and int_to_big_endian.

0.3.0

  • Deprecate compose

  • Bugfix for is_0x_prefixed to correctly detect uppercase X as part of the prefix.

  • Added is_hex_address

  • Added is_binary_address

  • Added is_32byte_address

  • Added is_checksum_formatted_address

  • Added apply_to_return_value

  • Added to_set

  • Added is_list

  • Added is_tuple

0.2.1

  • Strip whitespace from event signatures in event_signature_to_log_topic

0.2.1

  • Strip whitespace from event signatures in function_signature_to_4byte_selector

0.2.0

Initial release