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
ethlive
as a chain name #2268 - Make
Chain
more round-trip friendly #2270 - Add
other: OtherFields
toTransactionReceipt
#2209 - Add
Signature::recover_typed_data
#2120 - Add
abi::encode_packed
#2104 - Add support for custom JavaScript tracer to
debug_traceCall
anddebug_traceTransaction
#2064 - Add a
Send
bound to theIntoFuture
implementation ofContractCall
#2083 - Bump
svm-rs
dependency 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
RwClient
docs forwrite_client
method. - 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
MiddlewareBuilder
trait to instantiate aProvider
asMiddleware
layers.- An
Event
builder 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_estimateGas
params #1657 - Fix geth trace types for debug_traceTransaction rpc
- Fix RLP decoding of legacy
Transaction
- Fix RLP encoding of
TransactionReceipt
#1661 - Add
Unit8
helper type #1639 - Add
evm.deployedBytecode.immutableReferences
output selector #1523 - Added
get_erc1155_token_transfer_events
function for etherscan client #1503 - Add support for Geth
debug_traceTransaction
#1469 - Use correct, new transaction type for
typool_content
RPC 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
Block
andTransaction
type via newOtherFields
type #1423 - Methods like
set_to()
fromTypedTransaction
can be chained - Use H64 for Block Nonce #1396
- Add
as_*_mut
methods 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_legacy
1246 - Fix RLP decoding of
from
field forEip1559TransactionRequest
andEip2930TransactionRequest
, removeEip1559TransactionRequest
sighash
method #1180 - Fix RLP encoding of absent access list in
Transaction
1137 - 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::from
will default toAddress::zero()
. Addrecover_from
andrecover_from_mut
methods 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_string
will 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
bytes
to rustethers::core::Bytes
and solidityuint8[]
to rustVec<u8>
. #613 - Fix
format_units
to return aString
of 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_history
to first try withblock_count
encoded as a hexQUANTITY
. #668 - Fix
fill_transaction
to set nonces in transactions, if the sender is known and no nonce is specified - Move
fill_transaction
implementation to the provider, to allow middleware to properly override its behavior. - Add informational messages to solc installation and compilation.
- Significantly refactor
MultiAbigen
module generation. Now allows for lib generation, and does not make unnecessary disk writes. #854 - Refactor
ethers-contract-abigen
to useeyre
instead ofanyhow
via #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
ProjectCompileOutput
that 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::to
andTransactionReceipt::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
H32
fromethabi
. - #1634 Derive missing
Clone
,Copy
andDebug
impls 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_units
andformat_units
. Addedtwos_complement
function for I256. - #1934 Allow 16 calls in multicall.
- #1941 Add
add_calls
andcall_array
forMulticall
. - 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
ContractFilter
to 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,
MyContract
is nowmy_contract
rather thanmycontract_mod
. - The
Cargo.toml
generated by bindings now includes theabigen
feature on ethers. #1508 - More descriptive contract deserialization errors. #1633
- Add
MultiAbigen
to generate a series of contract bindings that can be kept in the repo #724. - Add provided
event_derives
to call and event enums as well #721. - Implement snowtrace and polygonscan on par with the etherscan integration #666.
- Add
OutputContext
toArtifactOutput
trait #1621 - On windows all paths in the
ProjectCompilerOutput
are now slashed by default #1540 ArtifactOutput::write_extras
now takes theArtifacts
directly #1491- Make
ethers-solc
optional dependency ofethers
, needsethers-solc
feature to activate #1463 - Add
rawMetadata:String
field 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-solc
feature #1071 - Emit artifact files for source files without any ContractDefinition #1296
- Wrap
ethabi::Contract
into new typeLosslessAbi
andabi: Option<Abi>
withabi: Option<LosslessAbi>
inConfigurableContractArtifact
#952 - Let
Project
take ownership ofArtifactOutput
and change trait interface #907 - Total revamp of the
Project::compile
pipeline #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_many
does not return aResult
anymore #707- Add support for hardhat artifacts #677
- Add more utility functions to the
Artifact
trait #673 - Return cached artifacts from project
compile
when the cache only contains some files - Add support for library linking and make
Bytecode
'sobject
filed 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
solc
model checker options. #1258
- add
EthAbiCodec
proc macro to deriveAbiEncode
AbiDecode
implementation #704 - move
AbiEncode
AbiDecode
trait to ethers-core and implement for core types #531 - Add EIP-712
sign_typed_data
signer method; add ethers-core typeEip712
trait 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
connect
interface. Old behavior can be accessed via thelegacy_ws
feature #2181 - Re-organize the crate. #2150
- Convert provider errors to arbitrary middleware errors #1920
- Add a subset of the
admin
namespace 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::IpcError
andethers_providers::QuorumError
1012
- re-export error types for
Http
andWs
providers in #570 - add a method on the
Middleware
to broadcast a tx with a series of escalating gas prices via #566 - Remove unnecessary
Serialize
constraint toR
(the Response type) in therequest
method ofJsonRpcClient
. - Fix
http Provider
data race when generating new requestid
s. - Add support for
net_version
RPC method. 595 - Add support for
evm_snapshot
andevm_revert
dev RPC methods. 640
- Set resolved ENS name during gas estimation (1e5a9e)
- fix:
LedgerSigner
has improved tracing and a ledger app bug mitigation #2192 eth-keystore-rs
crate updated. Allow an optional name for the to-be-generated keystore file #910- 1983 Added a
from_bytes
function for theWallet
type. - Allow parsing of private key that has
0x
prefix #2037
LocalWallet::new_keystore
now 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
Revert
toContractError
. Addimpl EthError for String
. Modify existingContractError
variants to prevent accidental improper usage. ChangeMulticallError
to useContractError::Revert
. Add convenience methods to decode errors from reverts. #2172 - (Breaking) Improve Multicall result handling #2164
- (Breaking) Make
Event
objects generic over borrow & remove lifetime #2105 - Make
Factory
objects generic over the borrow trait, to allow non-arc mware #2103 - Make
Contract
objects 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_meta
andEvent::subscribe_with_meta
#1483 - Added tx builder methods to
ContractFactory
#1289 - Relax Clone requirements when Arc is used #1183
- Add
EventStream::select
to 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_DIR
as root for relative paths in abigen #631
- Provide a way to opt out of networking support in abigen proc macro with
abigen-offline
feature #580 - Add
.call()
method toDeployer
for 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
EthCall
trait 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 generatesDisplay
for all events using the newEthDisplay
macro #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
openssl
andrustls
feature 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
Timelag
middleware via #568 - Removes GasNow as a gas price oracle #508
- add initialize_nonce public function to initialize NonceMiddleManager
- Added Time Lagged middleware #457