- 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.
- 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
- 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.
- 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)
- 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)
eth-keystore-rs
crate updated. Allow an optional name for the to-be-generated keystore file #910
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
- 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)
- 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