Releases: NomicFoundation/edr
@nomicfoundation/edr@0.12.0
Minor Changes
-
3974769: Added
callTraces()toResponseobject, inclusion of which is configurable through theincludeCallTracesoption on theObservabilityConfig -
7bf3576: Added the ability to specify the hardfork when running Solidity tests. Added support for the Osaka hardfork in Solidity tests.
-
e4920d5: Added support for the
eth_getProofJSON-RPC method. Support is currently limited to the local blockchain. -
321af18: Added support for the
eth_getProofJSON-RPC method on forked blockchains. Currently, only remote blocks are supported; requests for locally mined blocks will return an error. -
8e32c14: - Added
LocalConfigto specify configuration for locally mined blockchains.- Added
MiningConfig.blockGasLimitto optionally specify a block gas limit. When omitted, block gas limit enforcement is disabled. - Added
ProviderConfig.defaultTransactionGasLimitto specify a default transaction gas limit to use for RPC call and transaction requests when agasvalue is not specified. - Added
ProviderConfig.networkto specify whether a fork or locally mined blockchain is used. - Changed type of
ProviderConfig.transactionGasCapto also acceptfalse. This allows disabling of the transaction gas cap. - BREAKING CHANGE: Removed
ProviderConfig.blockGasLimit. Instead:- Use
MiningConfig.blockGasLimitto set the block gas limit used for mining blocks. - Use
ProviderConfig.defaultTransactionGasLimitto set the default transaction gas limit used for RPC call and transaction requests when agasvalue is not specified. - Use
LocalConfig.genesisBlockGasLimitto set the block gas limit of the genesis block for locally mined blockchains.
- Use
- BREAKING CHANGE: Removed
ProviderConfig.fork. Instead, useProviderConfig.networkwith aForkConfigobject. - BREAKING CHANGE: Removed
ProviderConfig.initialBlobGas. Instead, useLocalConfig.genesisBlobGasto set the initial blob gas for locally mined blockchains. - BREAKING CHANGE: Removed
ProviderConfig.initialDate. Instead, useLocalConfig.genesisDateto set the initial date for locally mined blockchains. - Added
SolidityTestRunnerConfigArgs.transactionGasCap(defaults to the hardfork default). - BREAKING CHANGE: Renamed
SolidityTestRunnerConfigArgs.enableTxGasLimitCaptoSolidityTestRunnerConfigArgs.disableTransactionGasCap(still defaults tofalse, but the meaning is inverted; i.e. the transaction gas cap is enabled by default).
- Added
-
6ea800c: Removed deprecated JSON-RPC methods:
eth_mining,net_listening,net_peerCount,hardhat_addCompilationResult,hardhat_intervalMine, andhardhat_reset. -
829f920: - Added support for EIP-712 cheatcodes
eip712HashType,eip712HashStruct,eip712HashTypedData.- Added new
eip712CanonicalTypessolidity runner config option for name-based type resolution.
- Added new
-
d0a3a41: Added the ability to collect gas reports for mining blocks and
eth_call -
44e779c: Added function-level configuration overrides for Solidity tests
-
20b4311: - Added the
ContractDecodertype- Added a function
Provider.contractDecoderto retrieve the provider'sContractDecoderinstance - Changed
EdrContext.createProviderto receive aContractDecoderinstance instead of aTracingConfigWithBuffers- The
ContractDecodercan be constructed from aTracingConfigWithBuffersusing the static methodContractDecoder.withContracts
- The
- Changed
Provider.addCompilationResultto no longer return aboolean. Failures are now signaled by throwing an exception.
- Added a function
-
a5cc346: Added cheatcode error stack trace entry. This fixes stack traces for errors from expect revert cheatcodes and improves stack traces for other cheatcode errors.
-
8396d70: Changed the ChainConfig to include a chain name and allow timestamp-based hardfork activations
-
dcf09de: Added full support for OP stack Isthmus hardfork
-
b505164: Added structured errors for unsupported Solidity test cheatcodes
-
097b8c3: Changed ProviderConfig members to decouple from Hardhat 2 concepts
-
edc20dc: Added code coverage to the provider. It can be configured through the ProviderConfig
-
5e209a1: Added support for asynchronous callbacks for collected code coverage
-
ef49c8a: Removed runSolidityTests method and introduced EdrContext::registerSolidityTestRunnerFactory and EdrContext::runSolidityTests functions as multi-chain alternative
-
c54a499: make all parameters of
eth_feeHistoryrpc call & provider method call required -
9b4685d: - Added a
getCoverageLibrary()helper at the@nomicfoundation/edr/coveragesubpath that returns the library's source and expected filename.- Bundled the Solidity coverage library with EDR.
- Changed
addStatementCoverageInstrumentationto no longer accept a library path argument.
-
88a23dc: Fix prepublish step so we again publish the arch/os specific packages.
-
097b8c3: Removed unused type definitions from API
-
6f0f557: Added instrumenting of source code for statement code coverage measurement
-
28b7b04: Added proxy information to gas reports
-
f4bdc36: Removed
getLatestSupportedSolcVersionAPIBREAKING CHANGE: A new API
latestSupportedSolidityVersionwas previously introduced to replace the deprecatedgetLatestSupportedSolcVersion. The old API has now been removed. Users should update their code to uselatestSupportedSolidityVersioninstead. -
3974769: Removed
traces()API from theResponseobject -
7c2886a: Added
BroadcastandRecurrentBroadcastvariants to theCallerModeenum. These variants are unsupported by EDR cheatcodes implementation but are needed to ensure ABI compatibility with forge-std. -
ffd2deb: Added value snapshots to Solidity test runner using gas & value cheatcodes
-
ae38942: Added the ability to request execution traces for Solidity tests for either all tests or just failing tests
-
6640dda: Changed the file system permission config interface for Solidity tests, to mitigate EVM sandbox escape through cheatcodes.
-
289de8a: Changed the instrumentation API to require a coverage library path
-
c21ec83: Replaced
BufferwithUint8Arrayin Solidity tests interface -
b5a7b75: Added an API that reports the latest supported Solidity version for source instrumentation
-
306a95e: Added an
ObservabilityConfigtoSolidityTestRunnerConfigArgsto allow code coverage measurement -
1e755a3: Backported features and fixes from Foundry 1.3
-
bde1b86: Fixed coverage instrumentation calls clearing the EVM's returndata buffer, breaking RETURNDATASIZE and RETURNDATACOPY opcodes in instrumented contracts.
-
07cad35: Added
isolateandevm_versionoptions to Solidity test function-level config overrides -
7b5995f: New
ProviderConfig.baseFeeConfigfield available for configuring different values of eip-1559maxChangeDenominatorandelasticityMultiplierfield. -
eb928c6: Fixed panic on stack trace generation for receive function with modifier that calls another method. #894
-
9b8a931: Added runtime bytecode size information to contract deployment gas reports
-
097b8c3: Moved (and renamed) fork-specific configuration options from
ProviderConfigtoForkConfig -
097b8c3: Replaced all occurences of Buffer with Uint8Array or ArrayBuffer
-
f4bdc36: Added support to the
debug_traceCall&debug_traceTransactionJSON-RPC methods for different tracers (4byteTracer,callTracer,flatCallTracer,prestateTracer,noopTracer, andmuxTracer).Our API is now aligned with Geth's tracing capabilities.
BREAKING CHANGE: Memory capture used to be enabled by default on geth, but has since been flipped ethereum/go-ethereum#23558 and is now disabled by default. We have followed suit and disabled it by default as well. If you were relying on memory capture, you will need to explicitly enable it by setting the
enableMemoryoption totruein your tracer configuration. -
d0a3a41: Added the ability to collect gas reports for Solidity tests
-
585fe0b: Changed test and test suite execution time from milliseconds to nanoseconds. Correspondingly, the
durationMsproperty ofTestResultandSuiteResultwas renamed todurationNs.
Patch Changes
- 6747f45: Fixed default gas limit of Solidity test runner when a custom transaction gas cap (EIP-7825) or block gas limit is specified
- bf9b55b: Improved parallelism in test suite execution for better error reporting and improved performance
- f606fc6: Fixed instrumentation for control flow statements
- 34e1ab4: Updated base mainnet eip1559 parameters after SystemConfig update on 2025-12-18
- 5d2d2db: Fixed OP stack Jovian base fee calculation to use
max(gasUsed, blobGasUsed) - ba6bfa0: Added support for Solidity v0.8.30
- a2d99ba: Fixed panic due to invalid GasPriceOracle bytecode for Isthmus OP hardfork
- 2c418b7: Added Osaka blob parameters for usage in eth_call, eth_sendTransaction, etc.
- c05b49b: Upgraded revm to v24 and alloy to more recent versions
- 23e8ad8: Added docs for
runSolidityTestsarguments. - 0e0619e: Added support for function-level gas-tracking in Solidity tests.
- f1cdbe2: Turned potential panics into JS errors to help with error reporting to Sentry.
- bcb772e: Print more detailed error descriptions for EVM, invariant fuzz, and cheatcode errors
- c498e40: Upgraded revm to v27
- 0047135: Update list of unsupported cheatcodes with cheatcodes up to Foundry 1.3.6
- 33337ea: Added latest EIP-1559 base fee params to Base Mainnet chain config
- 8794449: Added validity check for the block RLP size cap
- e116ca0: Added support for instrumentation of Solidity 0.8.34
- 5e3968d: Changed latest OP stack hardfork to Isthmus
- a6864ff: Added support for local pre-deploys for Solidity tests.
- 1b6d123: Fixed a bug causing async functions to throw errors at the callsite
- 7f15dce: Added support for tracking multiple c...
@nomicfoundation/edr@0.12.0-next.34
Patch Changes
- 6747f45: Fixed default gas limit of Solidity test runner when a custom transaction gas cap (EIP-7825) or block gas limit is specified
- bcb772e: Print more detailed error descriptions for EVM, invariant fuzz, and cheatcode errors
- 56f6c34: Fixed process deadlock/hang when dropping a provider with interval mining and logging enabled.
@nomicfoundation/edr@0.12.0-next.33
Minor Changes
- 8e32c14:
- Added
LocalConfigto specify configuration for locally mined blockchains. - Added
MiningConfig.blockGasLimitto optionally specify a block gas limit. When omitted, block gas limit enforcement is disabled. - Added
ProviderConfig.defaultTransactionGasLimitto specify a default transaction gas limit to use for RPC call and transaction requests when agasvalue is not specified. - Added
ProviderConfig.networkto specify whether a fork or locally mined blockchain is used. - Changed type of
ProviderConfig.transactionGasCapto also acceptfalse. This allows disabling of the transaction gas cap. - BREAKING CHANGE: Removed
ProviderConfig.blockGasLimit. Instead:- Use
MiningConfig.blockGasLimitto set the block gas limit used for mining blocks. - Use
ProviderConfig.defaultTransactionGasLimitto set the default transaction gas limit used for RPC call and transaction requests when agasvalue is not specified. - Use
LocalConfig.genesisBlockGasLimitto set the block gas limit of the genesis block for locally mined blockchains.
- Use
- BREAKING CHANGE: Removed
ProviderConfig.fork. Instead, useProviderConfig.networkwith aForkConfigobject. - BREAKING CHANGE: Removed
ProviderConfig.initialBlobGas. Instead, useLocalConfig.genesisBlobGasto set the initial blob gas for locally mined blockchains. - BREAKING CHANGE: Removed
ProviderConfig.initialDate. Instead, useLocalConfig.genesisDateto set the initial date for locally mined blockchains. - Added
SolidityTestRunnerConfigArgs.transactionGasCap(defaults to the hardfork default). - BREAKING CHANGE: Renamed
SolidityTestRunnerConfigArgs.enableTxGasLimitCaptoSolidityTestRunnerConfigArgs.disableTransactionGasCap(still defaults tofalse, but the meaning is inverted; i.e. the transaction gas cap is enabled by default).
- Added
Patch Changes
- af5dc7f: Fixed a bug when using a test filter where the
setUpfunction would be run for empty test suites - f42c07a: Removed validation checks for names provided in gas snapshot cheatcodes
- 650fd0b: Fixed coverage instrumentation interfering with the single-call
vm.prankcheatcode - 5c93934: Added support for instrumentation of Solidity 0.8.35
- a88df6d: Removed unused
solidity-testsexport path and related files.
@nomicfoundation/edr@0.12.0-next.32
Minor Changes
- 829f920: - Added support for EIP-712 cheatcodes
eip712HashType,eip712HashStruct,eip712HashTypedData.- Added new
eip712CanonicalTypessolidity runner config option for name-based type resolution.
- Added new
- 9b4685d: - Added a
getCoverageLibrary()helper at the@nomicfoundation/edr/coveragesubpath that returns the library's source and expected filename.- Bundled the Solidity coverage library with EDR.
- Changed
addStatementCoverageInstrumentationto no longer accept a library path argument.
Patch Changes
- 5d2d2db: Fixed OP stack Jovian base fee calculation to use
max(gasUsed, blobGasUsed)
@nomicfoundation/edr@0.12.0-next.31
@nomicfoundation/edr@0.12.0-next.30
@nomicfoundation/edr@0.12.0-next.29
Minor Changes
- 9b8a931: Added runtime bytecode size information to contract deployment gas reports
Patch Changes
@nomicfoundation/edr@0.12.0-next.28
Minor Changes
- 7c2886a: Added
BroadcastandRecurrentBroadcastvariants to theCallerModeenum. These variants are unsupported by EDR cheatcodes implementation but are needed to ensure ABI compatibility with forge-std.
@nomicfoundation/edr@0.12.0-next.27
Patch Changes
- d9b5dd8: Fixed error reporting when calling
stopSnapshotGaswithout an active snapshot