The old ethers-rs changelog, that has been discontinued.
The new one is located here, which is automatically generated by git-cliff.
- Add support for
ethliveas a chain name #2268 - Make
Chainmore round-trip friendly #2270 - Add
other: OtherFieldstoTransactionReceipt#2209 - Add
Signature::recover_typed_data#2120 - Add
abi::encode_packed#2104 - Add support for custom JavaScript tracer to
debug_traceCallanddebug_traceTransaction#2064 - Add a
Sendbound to theIntoFutureimplementation ofContractCall#2083 - Bump
svm-rsdependency to fix conflicts with Rust Crytpo packages #2051 - Avoid unnecessary allocations in
utils#2046 - Add abigen support for hardhat generated bytecode json format #2012
- Fix typo in
RwClientdocs forwrite_clientmethod. - Add support for Geth
debug_traceCall#1949 - Add support for Geth built-in tracer and config #2121
- Graceful handling of WebSocket transport errors #1889 #1815
MiddlewareBuildertrait to instantiate aProviderasMiddlewarelayers.- An
Eventbuilder can be instantiated specifying the event filter type, without the need to instantiate a contract. - Add 'ethers_core::types::OpCode' and use in 'ethers_core::types::VMOperation' #1857
- Remove rust_decimals dependency for ethers-core
- Add support for numbers greater than 2^96 for
ethers_core::utils::parse_units#1822 - Add comment about safety of u8 -> u64 cast in
ethers_core::types::Signature - Stop defaulting to the
"latest"block ineth_estimateGasparams #1657 - Fix geth trace types for debug_traceTransaction rpc
- Fix RLP decoding of legacy
Transaction - Fix RLP encoding of
TransactionReceipt#1661 - Add
Unit8helper type #1639 - Add
evm.deployedBytecode.immutableReferencesoutput selector #1523 - Added
get_erc1155_token_transfer_eventsfunction for etherscan client #1503 - Add support for Geth
debug_traceTransaction#1469 - Use correct, new transaction type for
typool_contentRPC endpoint #1501 - Fix the default config for generated
BuildInfo#1458 - Allow configuration of the output directory of the generated
BuildInfo#1433 - capture unknown fields in
BlockandTransactiontype via newOtherFieldstype #1423 - Methods like
set_to()fromTypedTransactioncan be chained - Use H64 for Block Nonce #1396
- Add
as_*_mutmethods onTypedTransaction#1310 - AWS EIP712 data signing no longer signs with EIP155
- Added Cronos testnet to etherscan options #1276
- Fix parsing of a pending block #1272
- Removed Cronos mainnet beta from
is_legacy1246 - Fix RLP decoding of
fromfield forEip1559TransactionRequestandEip2930TransactionRequest, removeEip1559TransactionRequestsighashmethod #1180 - Fix RLP encoding of absent access list in
Transaction1137 - Pass compilation time as additional argument to
Reporter::on_solc_success#1098 - Fix aws signer bug which maps un-normalized signature to error if no normalization occurs (in
aws::utils::decode_signature) - Implement signed transaction RLP decoding #1096
Transaction::fromwill default toAddress::zero(). Addrecover_fromandrecover_from_mutmethods for recovering the sender from signature, and also setting the same on tx #1075.- Add Etherscan account API endpoints #939
- Add FTM Mainet and testnet to parse method "try_from" from Chain.rs and add cronos mainet and testnet to "from_str"
- Add FTM mainnet and testnet Multicall addresses #927
- Add Cronos mainnet beta and testnet to the list of known chains #926
Chain::to_stringwill return the same chain name asChain::from_str- Add
eth_syncing#848 - Fix overflow and possible divide-by-zero in
estimate_priority_fee - Add BSC mainnet and testnet to the list of known chains #831
- Returns error on invalid type conversion instead of panicking #691
- Change types mapping for solidity
bytesto rustethers::core::Bytesand solidityuint8[]to rustVec<u8>. #613 - Fix
format_unitsto return aStringof representing a decimal point float such that the decimal places don't get truncated. #597 - Implement hex display format for
ethers::core::Bytes#624. - Fix
fee_historyto first try withblock_countencoded as a hexQUANTITY. #668 - Fix
fill_transactionto set nonces in transactions, if the sender is known and no nonce is specified - Move
fill_transactionimplementation to the provider, to allow middleware to properly override its behavior. - Add informational messages to solc installation and compilation.
- Significantly refactor
MultiAbigenmodule generation. Now allows for lib generation, and does not make unnecessary disk writes. #854 - Refactor
ethers-contract-abigento useeyreinstead ofanyhowvia #858 - Add
Deployer.send_with_receipt -> Result<(Contract, Receipt), Error>so that the receipt can be returned to the called when deploying a contract #865 - Add Arbitrum mainnet and testnet to the list of known chains
- Add ENS avatar and TXT records resolution #889
- Do not override gas limits provided by an outer middleware when including an EIP-2930 access list #901
- Add a getter to
ProjectCompileOutputthat returns a mapping of compiler versions to a vector of name + contract struct tuples #908 - Add Yul compilation #994
- Enforce commutativity of ENS reverse resolution #996
- Add
TransactionReceipt::toandTransactionReceipt::from#1184 - Add
From<H160>and From<Vec> traits toValueOrArray<H160>#1199 - Fix handling of Websocket connection errors #1287
- Add Arithmetic Shift Right operation for I256 #1323
- #1535 Add support to Aurora and Aurora testnet networks.
- #1632 Re-export
H32fromethabi. - #1634 Derive missing
Clone,CopyandDebugimpls in ethers-etherscan. - Bytes debug format now displays hex literals #1658
- #1451 Add Arithmetic Shift Left operation for I256
- #1860 Update I256 type documentation calling out the inconsistency between its right shift operator and standard library numeric types.
- #842 Add support for I256 types in
parse_unitsandformat_units. Addedtwos_complementfunction for I256. - #1934 Allow 16 calls in multicall.
- #1941 Add
add_callsandcall_arrayforMulticall. - Added basic event log filtering example.
- Abigen now generates events with new
<B, M>generic pattern #2103 - Fix Cargo.toml generation issue that could cause dependency conflicts #1852
- Use corresponding rust structs for event fields if they're solidity structs #1674
- Add
ContractFilterto filter contracts inMultiAbigen#1564 - generate error bindings for custom errors #1549
- Support overloaded events #1233
- Relax Clone requirements when Arc is used #1183
- Generate a deploy function if bytecode is provided in the abigen! input (json artifact) #1030.
- Generate correct bindings of struct's field names that are reserved words #989.
- Generate correct binding module names that are reserved words
#1498. Note: this changes
generated module names to snake case. For example,
MyContractis nowmy_contractrather thanmycontract_mod. - The
Cargo.tomlgenerated by bindings now includes theabigenfeature on ethers. #1508 - More descriptive contract deserialization errors. #1633
- Add
MultiAbigento generate a series of contract bindings that can be kept in the repo #724. - Add provided
event_derivesto call and event enums as well #721. - Implement snowtrace and polygonscan on par with the etherscan integration #666.
- Add
OutputContexttoArtifactOutputtrait #1621 - On windows all paths in the
ProjectCompilerOutputare now slashed by default #1540 ArtifactOutput::write_extrasnow takes theArtifactsdirectly #1491- Make
ethers-solcoptional dependency ofethers, needsethers-solcfeature to activate #1463 - Add
rawMetadata:Stringfield to configurable contract output #1365 - Use relative source paths and
solc --base-path#1317 - Save cache entry objects with relative paths #1307
- Bundle svm, svm-builds and sha2 dependencies in new
svm-solcfeature #1071 - Emit artifact files for source files without any ContractDefinition #1296
- Wrap
ethabi::Contractinto new typeLosslessAbiandabi: Option<Abi>withabi: Option<LosslessAbi>inConfigurableContractArtifact#952 - Let
Projecttake ownership ofArtifactOutputand change trait interface #907 - Total revamp of the
Project::compilepipeline #802- Support multiple versions of compiled contracts
- Breaking: deprecate hardhat cache file compatibility, cache file now tracks artifact paths and their versions
- Fix flatten replacement target location #846
- Fix duplicate files during flattening #813
- Add ability to flatten file imports #774
- Add dependency graph and resolve all imported libraryfiles #750
Remapping::find_manydoes not return aResultanymore #707- Add support for hardhat artifacts #677
- Add more utility functions to the
Artifacttrait #673 - Return cached artifacts from project
compilewhen the cache only contains some files - Add support for library linking and make
Bytecode'sobjectfiled anenum BytecodeObject#656. - Nit: remove accidentally doubled double-quotes in an error message
- Fix when compiler-out metadata is empty and there's no internalType #1182
- Add basic
solcmodel checker options. #1258
- add
EthAbiCodecproc macro to deriveAbiEncodeAbiDecodeimplementation #704 - move
AbiEncodeAbiDecodetrait to ethers-core and implement for core types #531 - Add EIP-712
sign_typed_datasigner method; add ethers-core typeEip712trait and derive macro in ethers-derive-eip712 #481
- Allow configuring the optimizer & passing arbitrary arguments to solc #427
- Decimal support for
ethers_core::utils::parse_units#463 - Fixed Wei unit calculation in
Units#460 - Add
ethers_core::utils::get_create2_address_from_hash#444 - Bumped ethabi to 0.15.0 and fixing breaking changes #469, #448, #445
- Correctly RLP Encode transactions as received from the mempool (#415)
- Breaking: WS now includes reconnection logic and a changed
connectinterface. Old behavior can be accessed via thelegacy_wsfeature #2181 - Re-organize the crate. #2150
- Convert provider errors to arbitrary middleware errors #1920
- Add a subset of the
adminnamespace 1880 - Return String for net version 1376
- Stream of paginated logs that load logs in small pages 1285
- Load previous logs before subscribing to new logs in case fromBlock is set 1264
- Add retries to the pending transaction future 1221
- Add support for basic and bearer authentication in http and non-wasm websockets. 829
- Export
ethers_providers::IpcErrorandethers_providers::QuorumError1012
- re-export error types for
HttpandWsproviders in #570 - add a method on the
Middlewareto broadcast a tx with a series of escalating gas prices via #566 - Remove unnecessary
Serializeconstraint toR(the Response type) in therequestmethod ofJsonRpcClient. - Fix
http Providerdata race when generating new requestids. - Add support for
net_versionRPC method. 595 - Add support for
evm_snapshotandevm_revertdev RPC methods. 640
- Set resolved ENS name during gas estimation (1e5a9e)
- fix:
LedgerSignerhas improved tracing and a ledger app bug mitigation #2192 eth-keystore-rscrate updated. Allow an optional name for the to-be-generated keystore file #910- 1983 Added a
from_bytesfunction for theWallettype. - Allow parsing of private key that has
0xprefix #2037
LocalWallet::new_keystorenow returns a tuple(LocalWallet, String)instead ofLocalWallet, where the string represents the UUID of the newly created encrypted JSON keystore. The JSON keystore is stored as a file/dir/uuid. The issue #557 is addressed #559
- (Breaking) Add
ReverttoContractError. Addimpl EthError for String. Modify existingContractErrorvariants to prevent accidental improper usage. ChangeMulticallErrorto useContractError::Revert. Add convenience methods to decode errors from reverts. #2172 - (Breaking) Improve Multicall result handling #2164
- (Breaking) Make
Eventobjects generic over borrow & remove lifetime #2105 - Make
Factoryobjects generic over the borrow trait, to allow non-arc mware #2103 - Make
Contractobjects generic over the borrow trait, to allow non-arc mware #2082 - Return pending transaction from
Multicall::send#2044 - Add abigen to default features #1684
- Add extra Multicall helper methods #1666
- Update Multicall to Multicall3 #1584
- Add
Event::stream_with_metaandEvent::subscribe_with_meta#1483 - Added tx builder methods to
ContractFactory#1289 - Relax Clone requirements when Arc is used #1183
- Add
EventStream::selectto combine streams with different event types #725 - Substitute output tuples with rust struct types for function calls #664
- Add AbiType implementation during EthAbiType expansion #647
- fix Etherscan conditional HTTP support #632
- use
CARGO_MANIFEST_DIRas root for relative paths in abigen #631
- Provide a way to opt out of networking support in abigen proc macro with
abigen-offlinefeature #580 - Add
.call()method toDeployerfor performing dry runs of contract deployments. #554 - Improve error message from failure in
ethers_contract_abigen::Source::parse#552 - use enumerated aliases for overloaded functions #545
- add
EthCalltrait and derive macro which generates matching structs for contract calls #517 - Use rust types as contract function inputs for human readable abi #482
abigen!now generatesDisplayfor all events using the newEthDisplaymacro #513abigen!now supports overloaded functions natively #501abigen!now supports multiple contracts #498
- (De)Tokenize structs and events with only a single field as
Token:Tuple(#417)
- Added
opensslandrustlsfeature flags #1961 - Relax Clone requirements when Arc is used #1183
- Ensure a consistent chain ID between a Signer and Provider in SignerMiddleware #1095
- Add BlockNative gas oracle #1175
- add the missing constructor for
Timelagmiddleware via #568 - Removes GasNow as a gas price oracle #508
- add initialize_nonce public function to initialize NonceMiddleManager
- Added Time Lagged middleware #457