Release Notes ============= .. towncrier release notes start eth-account v0.13.7 (2025-04-21) -------------------------------- Bugfixes ~~~~~~~~ - Fix issues with the json schema generation for Pydantic models (``SignedSetCodeAuthorization``) and simplify the serialization by moving a misplaced ``@field_validator`` decorator above ``@classmethod`` (not below it). (`#318 `__) - Remove doc warnings and unwanted generated docs (`#321 `__) Improved Documentation ~~~~~~~~~~~~~~~~~~~~~~ - Update and clarify documentation for authorization signing. (`#319 `__) eth-account v0.13.6 (2025-03-26) -------------------------------- Bugfixes ~~~~~~~~ - Adds logic to interpret the string values ``"False"``, ``"false"``, and ``"0"`` as ``False`` when encoding EIP712 messages. (`#303 `__) Features ~~~~~~~~ - Implement EIP-7702 ``SetCodeTransaction``. (`#315 `__) eth-account v0.13.5 (2025-02-04) -------------------------------- Features ~~~~~~~~ - Make ``sign_typed_data`` available in the ``LocalAccount`` class. (`#304 `__) - Merge template, adding py313 support, replacing ``bumpversion`` with ``bump-my-version`` and bumping ``hypothesis`` test dep to ``>=6.22.0,<6.108.7``. (`#311 `__) Internal Changes - for eth-account Contributors ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - ``deepcopy`` EIP712 messages used in test to avoid unintended mutation. (`#308 `__) - Update node.js version used in tests from 20 to 22. (`#309 `__) eth-account v0.13.4 (2024-09-25) -------------------------------- Deprecations ~~~~~~~~~~~~ - Change ``language`` arg to enum in ``Mnemonic`` (`#291 `__) Features ~~~~~~~~ - Add new list_languages_enum method to HDAccount class (`#302 `__) Internal Changes - for eth-account Contributors ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Pin ``eth-keyfile <0.9.0`` due to breaking changes to typing (`#299 `__) eth-account v0.13.3 (2024-08-28) -------------------------------- Bugfixes ~~~~~~~~ - Raise lower pin on ``eth-keyfile`` to ``>=0.7.0`` where a bug was fixed in the default values for ``scrypt`` generated keyfiles. (`#297 `__) eth-account v0.13.2 (2024-08-21) -------------------------------- Bugfixes ~~~~~~~~ - Pin ckzg to ``>=2.0``; update the the trusted setup and how it is loaded. (`#293 `__) eth-account v0.13.1 (2024-07-24) -------------------------------- Internal Changes - for eth-account Contributors ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Update ``mypy`` checks to run with all ``dev`` dependencies installed (`#280 `__) - Enforce ``mypy`` ``strict_optional`` rule (`#281 `__) - Updated ``mypy`` types setting ``disallow_untyped_defs`` and ``disallow_untyped_calls`` to ``true`` (`#283 `__) - Set mypy rules ``disallow_any_generics``, ``disallow_subclassing_any``, and ``disallow_untyped_decorators`` to ``true`` (`#285 `__) eth-account v0.13.0 (2024-05-20) -------------------------------- Bugfixes ~~~~~~~~ - Open up Pydantic dependency (`#271 `__) Features ~~~~~~~~ - Expose TypedTransactions for public use (`#276 `__) Internal Changes - for eth-account Contributors ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Merge template updates, notably adding python 3.12 support (`#274 `__) Miscellaneous Changes ~~~~~~~~~~~~~~~~~~~~~ - `#275 `__ Removals ~~~~~~~~ - Remove ``signHash`` in favor of ``unsafe_sign_hash`` (`#260 `__) - Remove ``messageHash`` in favor of ``message_hash`` (`#265 `__) - Moved private ``_parsePrivateKey`` method to ``_parse_private_key`` (`#267 `__) - Remove ``SignedTransaction``'s ``rawTransaction`` attribute in favor of ``raw_transaction`` (`#268 `__) - Remove ``encode_structured_data`` in favor of ``encode_typed_data`` (`#269 `__) eth-account v0.12.1 (2024-04-02) -------------------------------- Improved Documentation ~~~~~~~~~~~~~~~~~~~~~~ - Update documentation to include blob transaction signing example. (`#258 `__) eth-account v0.12.0 (2024-04-01) -------------------------------- Bugfixes ~~~~~~~~ - Import cytoolz methods via eth_utils instead of cytoolz directly (`#251 `__) Improved Documentation ~~~~~~~~~~~~~~~~~~~~~~ - Add ``encode_typed_data`` to list of functions that return a ``SignableMessage`` (`#247 `__) Features ~~~~~~~~ - Add support for type ``3``, ``BlobTransaction``, introduced by the Cancun network upgrade. (`#253 `__) Internal Changes - for eth-account Contributors ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Bump deps to ``hexbytes>=1.2.0`` and ``eth-rlp>=2.1.0`` (`#254 `__) eth-account v0.11.0 (2024-02-05) -------------------------------- Breaking Changes ~~~~~~~~~~~~~~~~ - Drop support for python 3.7 (`#248 `__) Internal Changes - for eth-account Contributors ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Change older ``%`` and ``.format`` strings to use ``f-strings`` (`#245 `__) - Merge template updates, notably use ``pre-commit`` for linting and change the name of the ``master`` branch to ``main`` (`#248 `__) Removals ~~~~~~~~ - Remove deprecated ``signTransaction``, it has been replaced by ``sign_transaction`` (`#244 `__) eth-account v0.10.0 (2023-10-30) -------------------------------- Deprecations ~~~~~~~~~~~~ - Deprecate ``encode_structured_data`` in favor of new ``encode_typed_data`` (`#235 `__) Improved Documentation ~~~~~~~~~~~~~~~~~~~~~~ - Added usage notes and example for ``encode_structured_data`` (`#233 `__) Features ~~~~~~~~ - Add new ``encode_typed_data`` to better handle EIP712 message signing (`#235 `__) - Added option to call ``encode_typed_data`` with a single dict arg in addition to the existing 3-dict style (`#238 `__) - Add ``sign_typed_data`` as a method of the ``Account`` class (`#239 `__) Internal Changes - for eth-account Contributors ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Added tests for ``encode_structured_data`` for easier comparison with Metamask's SignTypedData (`#233 `__) - Bump version for node and ethers.js in integration tests, update ethers usage to match (`#236 `__) - Add ``build.os`` to readthedocs settings (`#237 `__) - Add upper pin to ``hexbytes`` dependency to due incoming breaking change (`#240 `__) - Add tests comparing output of signed EIP712 messages with metamask and ethers (`#241 `__) eth-account v0.9.0 (2023-06-07) ------------------------------- Breaking Changes ~~~~~~~~~~~~~~~~ - drop python3.6 support from setup (`#228 `__) Improved Documentation ~~~~~~~~~~~~~~~~~~~~~~ - remove notices of Draft status for eips 712 and 191 (`#222 `__) Features ~~~~~~~~ - Add support for Python 3.11 (`#212 `__) Internal Changes - for eth-account Contributors ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Upgrade Node from v12.x to v18.x in tests (`#217 `__) - pulled full new node_v18 install script (`#223 `__) - bump versions for docs dependencies (`#224 `__) - add sphinx_rtd_theme to docs/conf.py extensions list (`#225 `__) - merge in updates from python project template (`#288 `__) eth-account v0.8.0 (2022-12-15) ------------------------------- Features ~~~~~~~~ - update all references to deprecated `eth_abi.encode_abi` to `eth_abi.encode` (`#200 `__) Performance improvements ~~~~~~~~~~~~~~~~~~~~~~~~ - Reduce the number of pbkdf2 iterations to speed up tests (`#77 `__) Deprecations and Removals ~~~~~~~~~~~~~~~~~~~~~~~~~ - remove deprecated methods that were noted to go in v0.5 (`#195 `__) Internal Changes - for eth-account Contributors ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - add coverage reporting to pytest (`#192 `__) - Use updated circleci Python images, fix Sphinx warning (`#194 `__) Miscellaneous changes ~~~~~~~~~~~~~~~~~~~~~ - `#197 `__, `#198 `__, `#199 `__, `#202 `__, `#203 `__, `#204 `__, `#206 `__ eth-account v0.7.0 (2022-08-17) ------------------------------- Bugfixes ~~~~~~~~ - bump ansi-regex to 5.0.1 to fix minor ReDos vulnerability (`#129 `__) - Enable lint runs again on CI (`#166 `__) - fix DoS-able regex pattern (`#178 `__) - Allow towncrier to build the release notes again (`#185 `__) Improved Documentation ~~~~~~~~~~~~~~~~~~~~~~ - Add example to generate multiple accounts from a mnemonic (`#153 `__) - Pin Jinja2 at >=3.0.0,<3.1.0; pin towncrier==18.5.0; open up Sphinx requirement to allow >=1.6.5,<5. (`#156 `__) - added missing quotes to readme dev environment setup example (`#172 `__) Miscellaneous changes ~~~~~~~~~~~~~~~~~~~~~ - `#79 `__, `#155 `__, `#162 `__, `#164 `__, `#165 `__ Breaking changes ~~~~~~~~~~~~~~~~ - Change bitarray dependency requirement to be >=2.4,<3 since 2.4 has wheels for all platform types. (`#154 `__) - Fix errors in EIP-712 signing (`#175 `__) eth-account v0.6.1 (2022-02-24) ------------------------------- Bugfixes ~~~~~~~~ - Allow encoding of structured data containing ``bytes`` (`#91 `__) Miscellaneous changes ~~~~~~~~~~~~~~~~~~~~~ - `#68 `__, `#144 `__ eth-account v0.6.0 (2022-01-20) ------------------------------- Features ~~~~~~~~ - Update dependencies: - eth-abi - eth-keyfile - eth-keys - eth-rlp - pyrlp - eth-utils (`#138 `__) - Add support for Python 3.9 and 3.10 (`#139 `__) Deprecations and Removals ~~~~~~~~~~~~~~~~~~~~~~~~~ - Drop support for Python 3.6 (`#139 `__) eth-account v0.5.9 (2022-08-04) ------------------------------- Bugfixes ~~~~~~~~ - fix DoS-able regex pattern (`#178 `__) Miscellaneous changes ~~~~~~~~~~~~~~~~~~~~~ - `#183 `__, `#184 `__ eth-account v0.5.8 (2022-06-06) ------------------------------- Miscellaneous changes ~~~~~~~~~~~~~~~~~~~~~ - `#163 `__, `#168 `__ eth-account v0.5.7 (2022-01-27) ------------------------------- Features ~~~~~~~~ - Add support for Python 3.9 and 3.10 (`#139 `__) Bugfixes ~~~~~~~~ - ``recover_message`` now raises an ``eth_keys.exceptions.BadSignature`` error if the v, r, and s points are invalid (`#142 `__) eth-account v0.5.6 (2021-09-22) ------------------------------- Features ~~~~~~~~ - An explicit transaction type is no longer required for signing a transaction if we can implicitly determine the transaction type from the transaction parameters (`#125 `__) Bugfixes ~~~~~~~~ - When signing a transaction, the regular JSON-RPC structure is now expected as input and is converted to the appropriate rlp transaction structure when signing (`#125 `__) - Fix string interpolation in ``ValidationError`` message of _hash_eip_191_message (`#128 `__) Improved Documentation ~~~~~~~~~~~~~~~~~~~~~~ - Updated docs for sign_transaction to show that transaction type can be implicitly determined based on transaction parameters if one is not provided (`#126 `__) - Add ``encode_defunct`` to list of example message encoders (`#127 `__) eth-account v0.5.5 (2021-07-21) ------------------------------- Features ~~~~~~~~ - Added support for EIP-2718 (Typed Transaction) and EIP-2939 (Access List Transaction) (`#115 `__) - Added support for EIP-1559 (Dynamic Fee Transaction) (`#117 `__) Bugfixes ~~~~~~~~ - Structured messages (EIP-712) new permit leaving some (but not all) domain fields undefined. (`#72 `__) Internal Changes - for eth-account Contributors ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Upgrade project template, of note: a new mypy & pydocstyle, and types being exported correctly. (`#121 `__) Miscellaneous changes ~~~~~~~~~~~~~~~~~~~~~ - `#116 `__ v0.5.3 (2020-08-31) ------------------- Performance improvements ~~~~~~~~~~~~~~~~~~~~~~~~ - RLP encoding/decoding speedup by using rlp v2alpha1, which has a rust implementation. (`#104 `__) v0.5.2 (2020-04-30) ------------------------------ Bugfixes ~~~~~~~~ - Makes sure that the raw txt files needed for Mnemonics get packaged with the release. (`#99 `__) v0.5.1 ---------------- Released 2020-04-23 - Fix a crash in signing typed messages with arrays `#97 `_ - Replace attrdict with NamedTuple to silence a deprecation warning `#76 `_ - Run more doctests & improve docs `#94 `_ v0.5.0 ---------------- Released 2020-03-30 - Add Python 3.8 support `#86 `_ - Add opt-in support for Mnemonic seed phrases `#87 `_ (NOTE: This API is unaudited and likely to change) - Dependency change: support eth-keys v0.3.* `#69 `_ v0.4.0 ---------------- Released 2019-05-06 - BREAKING CHANGE: drop python 3.5 (and therefore pypy3 support). `#60 `_ (includes other housekeeping) - New message signing API: :meth:`~eth_account.account.Account.sign_message` and ``recover_message``. `#61 `_ - New :meth:`eth_account.messages.encode_intended_validator` for EIP-191's Intended Validator message-signing format. `#56 `_ - New :meth:`eth_account.messages.encode_structured_data` for EIP-712's Structured Data message-signing format. `#57 `_ - Add optional param iterations to :meth:`~eth_account.account.Account.encrypt` `#52 `_ - Add optional param kdf to :meth:`~eth_account.account.Account.encrypt`, plus env var :envvar:`ETH_ACCOUNT_KDF`. Default kdf switched from hmac-sha256 to scrypt. `#38 `_ - Accept "to" addresses formatted as :class:`bytes` in addition to checksummed, hex-encoded. `#36 `_ v0.3.0 ---------------- Released July 24, 2018 - Support :class:`eth_keys.datatypes.PrivateKey` in params that accept a private key. - New docs for :doc:`eth_account.signers` - Under the hood: add a new :class:`~eth_account.signers.base.BaseAccount` abstract class, so that upcoming signing classes can implement it (be on the lookout for upcoming hardware wallet support) v0.2.3 ---------------- Released May 27, 2018 - Implement __eq__ and __hash__ for :class:`~eth_account.signers.local.LocalAccount`, so that accounts can be used in :class:`set`, or as keys in :class:`dict`, etc. v0.2.2 ---------------- Released Apr 25, 2018 - Compatibility with pyrlp v0 and v1 v0.2.1 ---------------- Released Apr 23, 2018 - Accept 'from' in signTransaction, if it matches the sending private key's address v0.2.0 (stable) ---------------- Released Apr 19, 2018 - Audit cleanup is complete - Stopped requiring chainId, until tooling to automatically derive it gets better (Not that transactions without chainId are potentially replayable on fork chains) v0.2.0-alpha.0 -------------- Released Apr 6, 2018 - Ability to sign an already-hashed message - Moved ``eth_sign``-style message hashing to :meth:`eth_account.messages.defunct_hash_message` - Stricter transaction input validation, and better error messages. Including: `to` field must be checksummed. - PyPy3 support & tests - Upgrade dependencies - Moved non-public interfaces to `internal` module - Documentation - use ``getpass`` instead of typing in password manually - :class:`eth_account.signers.local.LocalAccount` attributes - readme improvements - more v0.1.0-alpha.2 -------------- - Imported the local signing code from web3.py's :class:`w3.eth.account ` - Imported documentation and added more - Imported tests and pass them v0.1.0-alpha.1 -------------- - Launched repository, claimed names for pip, RTD, github, etc