Changelog
View Sourcev0.6.4 (2025-02-02)
Breaking Changes (Internal)
Ethers.TxDatauses hex_decoded values instead of hex encoded ones
Enhancements
- Update 
Ethersmodule to RPCfy eth_call request params - Removed unnecessary hex decode/encodes in requests
 - Use 
@external_resourcein generated contracts to track ABI changes and recompile if needed. (Thanks @sitch) 
v0.6.3 (2025-01-21)
Enahncements
- Strict type checking for initializing transaction structs
 
Bug Fixes
- Remove hexification of map entries in 
Ethers.TxData.to_map/2 
v0.6.2 (2025-01-10)
Enhancements
- Support EIP-1191: Add chain id to mixed-case checksum address encoding
 - Add EIP-4844 transaction support
 - Add EIP-2930 transaction support
 - Add 
Ethers.blob_base_fee/1to calculate blob fee per gas - Make default gas and fee margin configurable
 
Bug Fixes
- Fix encoding of transactions without any input data
 - Encode 
access_listandblob_versioned_hashedcorrectly in RPC transaction requests 
v0.6.1 (2025-01-02)
Bug Fixes
- Remove leading zeros from signature r and s values
 - Support hex decoded raw transaction in 
Ethers.Transaction.decode/1 
v0.6.0 (2025-01-01)
Breaking Changes
- Removed 
Ethers.Transactionstruct and replaced with separate EIP-1559 and Legacy transaction structs for improved type safety - Deprecated 
Ethers.Transaction.from_map/1- useEthers.Transaction.from_rpc_map/1instead for RPC response parsing - Deprecated 
Ethers.Utils.maybe_add_gas_limit/2- gas limits should now be set explicitly - Changed input format requirements: All inputs to 
Ethersfunctions must use native types (e.g., integers) instead of hex strings encoded values - Removed auto-gas estimation from send_transaction calls
 tx_typeoption in transaction overrides has been replaced withtype, now requiring explicit struct modules (e.g.Ethers.Transaction.Eip1559,Ethers.Transaction.Legacy)- Moved 
Ethers.Transaction.calculate_y_parity_or_v/1toEthers.Transaction.Signedmodule - Deprecate 
Ethers.send/2in favor ofEthers.send_transaction/2for clarity and prevent collision withKernel.send/2. 
New features
- Added EIP-3668 CCIP-Read support via 
Ethers.CcipReadmodule for off-chain data resolution - Extended NameService to handle off-chain and cross-chain name resolution using CCIP-Read protocol
 - Introduced 
Ethers.Transaction.Protocolbehaviour for improved transaction handling - Added dedicated EIP-1559 and Legacy transaction struct types with validation
 - New address utilities: 
Ethers.Utils.decode_address/1andEthers.Utils.encode_address/1 - Added 
Transaction.decode/1to decode raw transactions 
Enhancements
- Improved error handling and reporting in 
Ethers.deploy/2 - Enhanced NameService with ENSIP-10 wildcard resolution support
 - Use checksum addresses when decoding transactions
 - Add bang versions of 
Etherstop module functions which were missing 
v0.5.5 (2024-12-03)
Enhancements
- Add 
from_blockandto_blockoptions toEthers.get_logs/2 - Add RPC adapter behaviour and proxy for Ethereumex.HttpClient
 - Move and export abi decode functionality to 
Ethers.TxDatamodule - Export 
Ethers.TxData.to_map/2in docs - Add 
Ethers.Event.find_and_decode/2function 
v0.5.4 (2024-10-22)
Bug fixes
- Handle 
nilvalues when decoding transaction values for RLP encoding 
v0.5.3 (2024-10-14)
Enhancements
- Make event filter arguments optional in typespecs
 
v0.5.2 (2024-08-08)
Bug fixes
- Handle 
{:ok, nil}from RPC get block by number request 
Enhancements
- Enable raw use of 
Ethers.call/2(usage without function selector) - Add optional backoff to 
Ethers.Utils.date_to_block_number/3 
v0.5.1 (2024-08-02)
Enhancements
- Mark 
ex_keccakas optional using SKIP_EX_KECCAK environment variable 
v0.5.0 (2024-05-29)
Breaking Changes
- Rename 
NotERC165CompatibleErrortoErrors.NotERC165CompatibleError 
Bug fixes
- Handle unexpected errors in ExecutionError exceptions
 
v0.4.5 (2024-04-27)
Enhancements
- Add 
Ethers.NameService.reverse_resolve/2to reverse resolve addresses to domains 
v0.4.4 (2024-04-17)
Enhancements
- Add ERC-165 contract and behaviour
 - Add 
skip_docsoption for contract module doc and typespec generation - Allow skipping checksum address in 
Ethers.Utils.public_key_to_address/2 
v0.4.3 (2024-04-05)
Bug fixes
- Fix 
Ethers.Multicalltypespecs 
v0.4.2 (2024-04-04)
Enhancements
- Support sending raw transactions using 
Ethers.send/2 - Add 
Ethers.get_transaction_count/2 
v0.4.1 (2024-04-02)
Enhancements
- Add support of getting current 
max_priority_fee_per_gas - Use latest 
max_priority_fee_per_gasfrom the chain as default value in transactions 
v0.4.0 (2024-03-11)
Breaking Changes
- Custom errors will be returned as error structs instead of raw RPC response
 - Updated ERC20, ERC721 and ERC1155 ABIs to Openzeppelin 5.x
 
Enhancements
- Generate error structs from ABI and decode custom errors when error data is available
 - Use JsonRPC signer as a default signer in 
Ethers.sign_transaction/2 
v0.3.1 (2024-03-05)
Bug fixes
- Fix trimmed zeros in transaction encoder with unified hex encoding for transaction
 
v0.3.0 (2024-02-05)
Breaking Changes
- Removed 
signature_v,signature_recovery_idandsignature_y_parityfromEthers.Transactionstruct and introduce newsignature_v_or_y_parityvalue - Update 
ex_abito 0.7.0 with newmethod_idlogic for event selectors and use its value 
Enhancements
- Cleanup implementation of Transaction encoders and value decoder
 
v0.2.3 (2024-01-29)
New features
- Add 
Ethers.get_transaction_receipt/2function to query native chain transaction receipt by transaction hash. 
Enhancements
- Add more metadata to 
Ethers.Transactionstruct. - Return 
Ethers.Transactionstruct inEthers.get_transaction/2function. - Support 
get_transactionin batch requests. 
v0.2.2 (2024-01-08)
New features
- Add 
Ethers.get_transaction/2function to query native chain transaction by transaction hash. 
v0.2.1 (2024-01-04)
New features
- Add 
Ethers.get_balance/2function to query native chain balance of accounts. 
Bug fixes
- Encode integers to hex even when they are part of params
 
v0.2.0 (2024-01-01)
New Features
Ethers.sign_transaction/2function- Signer behaviour
 - Local Signer implementation
 - JsonRPC Signer implementation
 Ethers.Transactionstruct and helper functions
v0.1.3 (2023-12-26)
Bug fixes
- unsized integer encoding to hex will now raise if given negative numbers.
 Utils.date_to_block_number/3going to negative block numbers issue fixed.
v0.1.2 (2023-12-12)
Breaking Changes
TxData.to_map/2now returns hex values for all integers.Utils.maybe_add_gas_limit/2now adds hex gas limit value instead of integer.
v0.1.1 (2023-11-22)
Bug fixes
- Multicall: aggregate_3 decoder returns 
nilin case of failure - Multicall: Feed decoded results through 
Utils.human_arg/2 
v0.1.0 (2023-11-19)
New Features
- Checksum address utility functions
 
Enhancements
- Use zip_reduce for event generators
 - Move documentation generators to ContractHelpers
 - Display message for empty parameters or return types
 Ethers.call/2andEthers.get_logs/2now automatically convert integer block numbers to hex values- Return structs as a result in generated functions and event filter with Inspection protocols implemented for better development experience
 - Support dynamically sized indexed event filters (bytes, strings, arrays and structs)
 Ethers.call/2now only returns as a list if the return type is either a solidity array or tuple- Add return names in documentations and TxData inspection
 - Added an interface for 
Multicall3throughEthers.Contracts.Multicall3 - Added 
Ethers.Multicallas an abstraction forEthers.Contracts.Multicall3 - Added batching functionality using 
Ethers.batch/2 
Breaking Changes
- The generated contract functions no longer call or send transactions, They will only prepare parameters
To execute an explicit call to 
Ethers.send/2orEthers.call/2is required - Events no longer accept 
addressoverrides. Overriding now happens atEthers.get_logs/2 - Function 
Ethers.get_logs/3is now changed toEthers.get_logs/2 - Generated contract modules and EventFilter modules 
default_address/0function is now renamed to__default_address__/0to prevent collision - Removal of 
Ethers.RPCmodule - Remove 
Ethers.Types.dynamically_sized_types/0function Ethers.call/2response is not always a listEthers.deploy/4is now removed and replaced withEthers.deploy/2
Bug fixes
- Fix event filters with mixed indexed and non-indexed arguments
 
v0.0.6 (2023-09-06)
Enhancements
- Update 
dialyxirdependency to 1.4.0 - Update 
ex_docto 0.30.6 - Add more function to 
Utilsmodule - Improve failure return values of deployment functions
 
Bug fixes
- Fix RPC options and client override issue
 - Do not add 
nilto address when address is not present 
v0.0.5 (2023-08-21)
Enhancements
- Add ENS (Ethereum name service) contracts and helper functions
 - Update 
ex_docdependency to 0.30.4 - Address 
Logger.warndeprecation 
v0.0.4 (2023-07-14)
Enhancements
- Update 
ex_docdependency to 0.30.1 - Update 
jasondependency to 1.4.1 
v0.0.3 (2023-05-29)
Enhancements
- Improved generative documentation for modules
 - Improved gas estimation API
 - Add gas limit to sending transactions
 - Remove redundant gas estimation function
 
Bug fixes
- Fix bitsize check guard to include all available solidity bitsizes
 
v0.0.2 (2023-04-24)
Bug fixes
- Include the priv directory in mix releases
 
v0.0.1 (2023-04-24)
First Release