- 7876104: Initialize the Hardhat Runtime Environment before passing the command line arguments.
- 92d140f: Include Hardhat Ignition in the toolboxes of the starter projects
- cfec932: Upgraded hardhat-toolbox-viem to support viem@2 in the viem sample project
- bcce371: Set cancun as the default hardfork in Hardhat network
- 837350e: Dropped support for node v16
- 3df5d29: Refactored Hardhat Network to use EDR instead of ethereumjs
- 6b6f447: Fixes a bug in Hardhat where Post-Cancun genesis blocks did not use the mandated 0x0 parent beacon block root (https://eips.ethereum.org/EIPS/eip-4788)
- b519239: Fixed a bug when
hardhat_setStorageAt
was used in untouched addresses
- 6ff0b20: Add support for the Cancun hardfork
- 4250635: Added support for solc 0.8.24
- 125cbad3d: Added a notification when a new Hardhat version is available
- ffb301f14: Improved loading performance
- 1c6373a5b: Fixed a bug during project initialization when using yarn or pnpm
- 15a0d2e6c: Fixed a race condition that occurred when multiple Hardhat processes ran a compilation at the same time.
- 8f677ea9f: Added a fix to prevent submitting transactions with 0 priority fee (thanks @itsdevbear!)
- 7aea77e49: Report telemetry consent response to Google Analytics
- 3f282db50: Added support for solc 0.8.23
- fa2f0fba7: Added a temporary message about the 2023 Solidtiy Developer Survey
- b475fc49c: Modified the artifacts cleanup logic to avoid removing a
package.json
file under the artifacts directory - c3aad2c55: Added support for scopes in hh autocomplete.
- 4bc6a2726: Added experimental support for using ESM modules with TypeScript
- 23665f399: Upgraded toolboxes versions used in project initialization
- 106235cb0: Fixed an issue in low-traffic chains that resulted in txs using a
maxPriorityFeePerGas
of 0 - c52a5d653: Added logic to avoid downloading the same compiler version multiple times
- b46ccf46d: Updated the
.gitignore
files generated during project initialization to use relative paths
- 27f3d6355: Added support for configuration variables management
- f2f67df3c: Added support for solc 0.8.22
- bddfcff8d: Send GA hits for
ignition deploy
tasks
- abca5abaf: Fixed the compiler download, which broke with the latest version of undici
- b77b665fd: Added a viem option to the project initialization
- 03edea678: Updated the compilation logs to include the targeted EVM versions.
- 9412419b8: Added support for scoped tasks
- e95e954b4: Report issues from
@nomicfoundation
npm scope
- 11e58f67c: Added an explicit command
hardhat init
to initialize projects, and deprecated project initialization with justhardhat
. - 8388720ea: Added support for the RPC method debug_traceCall.
- c03c710ad: Set the default evmVersion to paris for solc versions that are greater than or equal to 0.8.20.
- ee9d2ff06: Added support for state overrides in the RPC Method eth_call
- c00c689ae: Removed the superfluous zeros that were returned in the
memory
property when calling thedebug_traceTransaction
method. - 7084d32e2: Deprecated the
TASK_COMPILE_TRANSFORM_IMPORT_NAME
subtask, added a newTASK_COMPILE_GET_REMAPPINGS
subtask, and added support for remappings in the resolver. - fa41db82b: Added an
enableTransientStorage
option to enable EIP-1153 opcodes - 8ae64478d: Fixed an issue where artifactExists would throw an error for missing artifacts.
- 45f49ae20: Improved error message displayed when importing a directory instead of a file.
- 3ea6c5237: Fixed a problem with receipts of remote transactions returning the wrong tx type when fetched through a fork.
- 8f50ab814: Removed the
abort-controller
dependency as it's not longer needed. Thanks @orlandoortegajr! - 951906da2: Improved the flatten task to handle SPDX licenses and pragma directives more effectively.
- e4424e3ad: Added support for solc 0.8.21
- fff90bb6e:
console.log
now works inpure
functions. Thanks @0age for coming up with this technique! - 9fe89ef96: Fixed a bug caused by nodes returning 429 responses without a
Retry-After
header (thanks @kowalski!) - 6390230b7: Added logic to throw an error when the debug_traceTransaction method is called with a tracer parameter that is not supported.
- 01f1e3f7e: Dropped support for node v14 and added support for node v20
- 092b77140: Added logic to use the latest block as the forking block if the difference between the latest block and the max reorganization block is negative. This decision is based on the assumption that if the max reorganization block is greater than the latest block then there is a high probability that the fork is occurring on a devnet.
- 2b0ac92a3: Fixed an issue in the compilation pipeline where a valid build-info file was mistakenly deleted
- c0aa10c2d: Added support for solc 0.8.19 and 0.8.20
- 68cf2a273: Fixed an issue related to compiler downloads in node v18.16.x
- 8c5f3f3bc: Added support for extending the network provider
- 128b0a0de: Added a HARDHAT_DISABLE_TELEMETRY_PROMPT environment variable that can be set to
true
to prevent Hardhat from showing the telemetry consent prompt. - 27a5cda59: Migrated Google Universal Analytics to Google Analytics 4
- c115dfd21:
console.sol
is now memory-safe (thanks @ZumZoom!) - c61fd8ac0: Added optional params to some compilation subtasks to make them more flexible (thanks @adjisb!)
- 99995d53b: The sample projects now use the new version of the Toolbox
- e99498638: Added block numbers for all mainnet hardforks
- d69020f72: Set Shanghai as the default hardfork
- 5d4d1edba: Fixed a problem when importing scoped packages in a Yarn Berry monorepo that uses PnP (thanks @zouguangxian!)
- cdd9aa578: Added support for the shanghai hardfork
-
83ef755f3: Hardhat's task runner now allows you to override the arguments passed to subtasks.
-
50779cd10: Added support for writing scripts and tests as ES modules.
To learn how to start using ESM with Hardhat read this guide.
- f55a3a769: Reduce the amount of ETH sent to the Lock contract in the sample project's deploy script (Thanks @mutedSpectre!)
- 929b26849: The
resolveJsonModule
compiler option is now enabled by default in the sample tsconfig (thanks @mlshv!) - 071e6bc89: Stop colorizing the entire message when an error is printed
- 0fa7ac548: Make Hardhat more tolerant to unsupported Node.js versions
- 7a5bc5512: Send less ETH and lock it for less time on sample deployment scripts.
- 7ceb5f90d: Added basic support for solc
viaIR
setting - e6f07b4b6: Fixed an issue with a warning showing the same solc version multiple times (thanks @shark0der!)
- 6e51edf4d: Added support for Solidity 0.8.18 (thanks @taxio!)
- b9c34f36f: Fix an error that could happen when a download failed.
- 1c833bf04: Propagate HttpProviderError exception messages.
-
e443b3667: Added an option in Hardhat Network to allow mining blocks with the same timestamp
-
c23a1cac4: Added support for the
http_proxy
environment variable. When this variable is set, Hardhat will send its requests through the given proxy for things like JSON-RPC requests, mainnet forking and downloading compilers.We also removed support for the
HTTP_PROXY
andHTTPS_PROXY
environment variables, sincehttp_proxy
is the most commonly used environment variable for this kind of thing. Those variables could only be used for downloading compilers.Finally, we also added support for
no_proxy
, which accepts a comma separated list of hosts or"*"
. Any host included in this list will not be proxied.Note that requests to
"localhost"
or"127.0.0.1"
are never proxied. -
69546655e: Added support for sending batch requests through WebSocket to the Hardhat node (thanks @tenbits!)
-
6bf1673bb: Added a config validation for the number of optimizer runs used (thanks @konarshankar07!)
- 7e013fa19: Upgrade undici
- 025aa3660: Added support for pnpm during project creation (thanks @Hopsken!)
- 3798f0d72: Added a
version
field to the HRE - c228ef56c: Fixed problem with impersonated-sender transactions sometimes resulting in duplicate transaction hashes (#1963)
- 7ca111982: Added a minor clarification to the
flatten
task help. - 10a928c4c: Upgraded mocha and @types/mocha dependencies in Hardhat and Hardhat Toolbox
- a200a667b: Removed the message linking to the 2022 solidity survey
- 7adb62b2a: Added a new subtask to the compile task to support the
hardhat-foundry
plugin
- 051bedf01: Added an experimental environment variable flag to disable the local installation check
- 3fcdd3bb2: The selector of unrecognized custom errors is now shown as part of the error message (thanks @vivianjeng!)
- aa721398e: Fixed a bug that was causing the flatten task to produce non-deterministic results
- 5dc9b7c99: Fixed a bug when
gasPrice
was set to"auto"
, which is the default configuration when connecting to a JSON-RPC network. This bug was preventing the results frometh_feeHistory
from being used when they should. - 23a594a59: The full return data of unrecognized custom errors is now shown in error messages
- 7e81377fc: Accept extra headers in the internal download module
- 7154371e3: Fixed an issue that caused compilation with solcjs to not work when Hardhat is bundled
- 2fc9a2cb8: Show a message with a link to the Solidity Developer Survey
- 13433f176: Fixed an edge case where Hardhat would hang if
debug_traceTransaction
was used with an OOG transaction sent to a precompile. - c9809e182: Trim leading and trailing spaces in mnemonics.
- a1d43109a: Pending blocks now include the
bloom
field. - 818107821: Added a new
hardhat_metadata
RPC method - 937d15e51: A better error is show if a Solidity file makes an import throug its own package name.
- 4cf9a6d58: Added a
getBuildInfoSync
function to thehre.artifacts
object (thanks @emretepedev!)
- f6c74bc31: Fixed an issue that was causing build-info file names to not be deterministic.
- 2022bed0d: Fixed an issue when forking networks like Arbitrum Nitro that use non-standard transaction types (#2995, #3194).
- 145b12c7d: Fixed a problem that was preventing Hardhat from being used in Alpine Linux.
- aebec509e: Use
"merge"
hardfork setting by default in Hardhat Network
- 3db5334b9: Fix compiler downloader
- 6d2edac4e: Upgrade
solidity-analyzer
and handle NPM's issue #4828.
- 1cfee28db: Make
eth_getStorageAt
more permissive - 1375e1cc3: When forking, the disk cache is now used for any network
- 8aec687e9: Support Solidity 0.8.17
- 7e6a69561: Fixed a breaking change in the configuration type that was accidentally introduced in Hardhat 2.9.8.
- f4fd6a27e: Upgraded dependencies in sample projects
- 0d236ba73: Fix an error in the README files generated by the sample projects.
- c4c1d2fe0: Always show stack traces on CI servers
- 191c8ebbe: Improved the way we detect errors related to deploying contracts with a code that is too large.
- f4101d1be: Fixed a problem when the wasm version of the solidity compiler was downloaded.
- 1a1fa4cd5: Fix an error when forking from non-POW chains
- f3ba15ca8: - Added support for the merge
- Added a new
hardhat_setPrevRandao
RPC method - Optimized the compilation task
- Typechecking is now opt-in instead of opt-out
- Added a new
--flamegraph
flag for performance profiling - Artifact paths are now cached
- Added a new
- d93ab3198: Added support for the merge.
- f799e7e41: - Fixed a bug that was causing
console.log()
to printundefined
instead of an empty line (issue #2721)- Made
console.log
ABI-compliant (issue #2666)
- Made
- 36ca875dc: The selector is now shown in the "Unrecognized custom error" message
- 3e3fe7bf0: Added support for Solidity versions up through 0.8.16
- 3d571e40b: Better Solidity errors propagation
- 5b29b0e0b: Update sample projects to use the Hardhat Toolbox
- 3dcc802b3: Add support for Node 18
- 3dcc802b3: Upgrade Mocha to 10.x
- 3dcc802b3: Upgrade ethereum-cryptography to 1.x
- f5afa18d3: Removed a workaround to past Ganache's gas estimation problems.
- 3dcc802b3: Drop support for Node 12
- ce6136b2a: Fix incorrect peerDependency
- 3fd3756e6: Specify ts-node and typescript as optional peerDependencies
- 5bd775a8b: Added support for HTTP headers in the forking config (thanks @TimDaub!)
- 3770a5bbc: Expose a missing method in the Artifacts interface
- 73beb279b: Fixed
block.chainid
returning 0 in view functions
- fde08e0c: Updates
node
task to terminate when the server closes. - 736e850a: Fixed an issue that was preventing compilation from working on Windows (#2712)
- e42ef24d: Fixed a publish problem in 2.9.4
- 81e28117: Make
eth_getStorageAt
spec-compliant. This means that the storage slot argument must have a length of 32 bytes (a hex-encoded string of length 66).
- 1de87072: Fix passing options and depth when inspecting a lazyObject or lazyFunction
- 7403ec1d: Stop publishing tsconfig.json files
- b9f997cb: Upgraded ethereumjs dependencies (thanks @LogvinovLeon!).
- 58aa161a: Expand the
data
object returned by the JSON-RPC response when a transaction or call reverts. Now it also includes themessage
anddata
fields. Themessage
is the same message that is part of the response, and it's included to make things work better with ethers.js. Thedata
field includes the return data of the transaction. These fields are included in the responses of theeth_sendTransaction
,eth_sendRawTransaction
,eth_call
andeth_estimateGas
methods when they revert. - 78876d64: Fix a bug preventing to run the solcjs compiler.
- 1929e177: Fix a bug when formatting optional params in the help messages.
- 4238a921: Fixed a problem with
hardhat_mine
when used withsolidity-coverage
. - 32cc90bf: Allow --version flag to be used when not in a Hardhat project directory
- b5273ce1: - Fixed a potential OOM error during parallel compilation
- Added a
--concurrency
param to the compile task
- Added a
- 97eb5820: The
CustomError
class is now exported inhardhat/common
- 74a12d7b: Fixed a bug preventing loggingEnabled from working properly and exposed userConfig field in HRE
- 8fda4036: - Fix a bug that would override mocha grep options within the test task
- dd0dc168: Fix a bug in Hardhat Network that prevented the forking functionality from working (#2528)
- 6ff1cb03: Fixed bug (#2352) preventing the disabling of node task logging via hardhat.config.
- 69a6434e: Fix a bug that made Hardhat Network hang when connecting MetaMask (#2380)
-
bf017963: Add a new RPC method,
hardhat_mine
, which supports the mining of multiple blocks in a single call (#1112) -
345ebab7: The
test
task now supports a--parallel
flag to run tests in parallel. There are also two other new flags:--bail
, to stop the execution after the first test failure, and--grep
, to filter which tests should be run.To support running tests in parallel, the version of
mocha
used by Hardhat was upgraded to its latest version. This should be a mostly backward-compatible change, but there could be some edge cases where this breaks existing tests.
- 04f4b3a4: Added support for BIP39 passphrases (thanks @zhuqicn!)
- dda96346: Solidity files are now compiled in parallel
- ce06e238: Preserve any existing user's README when initializing a project (#1942)
- caecc59b: The test task now works correctly when a test file starts with
./
(fixes #2220). - 87c50af1: A warning is now shown when a node version greater than the current LTS is used.
- b18e043b: Improved the performance of requests to remote RPC nodes by the use of connection pooling.
- 5473906d: The sample projects now include an empty
.prettierc
to make IDEs auto-formatting work properly in some scenarios. - 38ee6230: Replace deprecated eth-sig-util with @metamask/eth-sig-util
- 2425201c: Upgraded the version of
@nomiclabs/hardhat-etherscan
used by the sample projects (#2217)
- 9b1de8e0: Full rework of vyper plugin (#2082, #1364, #1338, #1335, #1258)
- e2eb07cc: Use 40s as the default value for mocha's timeout and for the localhost network's timeout (#1549).
- 2794fc00: Show a special error when project initialization fails on windows
- 6753b930: Show warning if user doesn't export or exports empty object from Hardhat config file (issue #1490)
- 0a5ab4f8: Fix running the
test
task multiple times in a script (issue #1720)
- 3f212c11: Allow configuration of hardfork activation history, for use with unusual/custom chains/network
- ff80e1db: A fix to remove ansi escape characters when logging from hardhat node to file (issue #467).
- d867073c: Support
arrowGlacier
hardfork - 10211542: Fix a bug that prevented Hardhat from working if the compilers list was partially downloaded (issue #1466)
- 4d277c97: Add a FIFO mode to Hardhat Network's mempool (Thanks @ngotchac!)
- d2d34737: Make the coinbase address customizable via a config field and a new RPC method.
- 99c17f43: Bump uuid package to remove a deprecation warning (thanks @yhuard!)
- 8076c43b: Fixed how the cummulative gas is computed for receipts and added a missing field (Thanks @ngotchac!)
- e6362902: Display similar artifact names in error output if given name is not found (#201)
- e087bd0b: Improve validation of private keys in the Hardhat config
- aa1a0080: Fix an issue with new versions of Node.js that prevented clients from connecting to Hardhat's node using 127.0.0.1
- 846f7856: Enable user configurable tsconfig path
- 89529afc: Print warning when user tries to use solc remapping (#1877)
- f35f3548: Add support for the `personal_sign RPC method to Hardhat Network.
- 692b9130: Throw an error for solc versions older than 0.4.11
- 4df2df4d: Add a new
hardhat_getAutomine
JSON-RPC method to Hardhat Network that returnstrue
if automining is enabled andfalse
if it's not. - 91edb2aa: Add support for Solidity 0.8.7.
- c501e1ec: Added support for Solidity 0.8.6.
- 4ccd1f72: Enable solc's metadata by default (Thanks @chriseth!)
- 4f102576: Support Solidity 0.8.9
- 12158a06: Added support for Solidity 0.8.8
- 4c7fe24e: Add support for Solidity 0.8.5.
- d00a1a71: Print a warning in the node task if the default accounts are used.
- c2ab8198: Upgrade @solidity-parser/parser (fixes #1801)
- 3032c374: Fix
eth_feeHistory
computation (issue #1848)
- 09415141: Work around an issue that broke Hardhat Network when contracts were compiled in the middle of its execution
- e29e14c7: Add Advanced Sample Project that uses TypeScript.
- a00345ca: Small improvements to the advanced sample project.
- b62ddf32: Fix a bug in Hardhat Network's solidity source maps processing. Thanks @paulberg!
- c4b32d7d: Fix a bug that prevented Hardhat Network's tracing engine from working if an interface was used as a mapping key (Thanks @k06a!)
- abc380ce: Fix issue with networks that support
eth_feeHistory
but that don't support EIP-1559 (#1828).