- Open up Pydantic dependency (#271)
- Expose TypedTransactions for public use (#276)
- Merge template updates, notably adding python 3.12 support (#274)
- Remove
signHash
in favor ofunsafe_sign_hash
(#260) - Remove
messageHash
in favor ofmessage_hash
(#265) - Moved private
_parsePrivateKey
method to_parse_private_key
(#267) - Remove
SignedTransaction
'srawTransaction
attribute in favor ofraw_transaction
(#268) - Remove
encode_structured_data
in favor ofencode_typed_data
(#269)
- Update documentation to include blob transaction signing example. (#258)
- Import cytoolz methods via eth_utils instead of cytoolz directly (#251)
- Add
encode_typed_data
to list of functions that return aSignableMessage
(#247)
- Add support for type
3
,BlobTransaction
, introduced by the Cancun network upgrade. (#253)
- Bump deps to
hexbytes>=1.2.0
andeth-rlp>=2.1.0
(#254)
- Drop support for python 3.7 (#248)
- Change older
%
and.format
strings to usef-strings
(#245) - Merge template updates, notably use
pre-commit
for linting and change the name of themaster
branch tomain
(#248)
- Remove deprecated
signTransaction
, it has been replaced bysign_transaction
(#244)
- Deprecate
encode_structured_data
in favor of newencode_typed_data
(#235)
- Added usage notes and example for
encode_structured_data
(#233)
- 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 theAccount
class (#239)
- 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)
- drop python3.6 support from setup (#228)
- remove notices of Draft status for eips 712 and 191 (#222)
- Add support for Python 3.11 (#212)
- 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)
- update all references to deprecated eth_abi.encode_abi to eth_abi.encode (#200)
- Reduce the number of pbkdf2 iterations to speed up tests (#77)
- remove deprecated methods that were noted to go in v0.5 (#195)
- add coverage reporting to pytest (#192)
- Use updated circleci Python images, fix Sphinx warning (#194)
- 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)
- 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)
- 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)
- Allow encoding of structured data containing
bytes
(#91)
- Update dependencies: - eth-abi - eth-keyfile - eth-keys - eth-rlp - pyrlp - eth-utils (#138)
- Add support for Python 3.9 and 3.10 (#139)
- Drop support for Python 3.6 (#139)
- fix DoS-able regex pattern (#178)
- Add support for Python 3.9 and 3.10 (#139)
recover_message
now raises aneth_keys.exceptions.BadSignature
error if the v, r, and s points are invalid (#142)
- 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)
- 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)
- 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)
- Added support for EIP-2718 (Typed Transaction) and EIP-2939 (Access List Transaction) (#115)
- Added support for EIP-1559 (Dynamic Fee Transaction) (#117)
- Structured messages (EIP-712) new permit leaving some (but not all) domain fields undefined. (#72)
- Upgrade project template, of note: a new mypy & pydocstyle, and types being exported correctly. (#121)
- RLP encoding/decoding speedup by using rlp v2alpha1, which has a rust implementation. (#104)
- Makes sure that the raw txt files needed for Mnemonics get packaged with the release. (#99)
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
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
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
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)
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.
Released Apr 25, 2018
- Compatibility with pyrlp v0 and v1
Released Apr 23, 2018
- Accept 'from' in signTransaction, if it matches the sending private key's address
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)
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
- use
- Imported the local signing code from web3.py's :class:`w3.eth.account <web3.account.Account>`
- Imported documentation and added more
- Imported tests and pass them
- Launched repository, claimed names for pip, RTD, github, etc