Update dependency hardhat to v2.22.15
This MR contains the following updates:
Package | Type | Update | Change |
---|---|---|---|
hardhat (source) | dependencies | minor | 2.12.7 -> 2.22.15 |
Release Notes
nomiclabs/hardhat (hardhat)
v2.22.15
: Hardhat v2.22.15
This is a small bug fix release to fix custom HTTP headers when used in forked configurations.
Changes
-
ede1cde
: Fixed custom HTTP headers for forked configurations
💡 The Nomic Foundation is hiring! Check our open positions.
v2.22.14
: Hardhat v2.22.14
This is a small bug fix release to handle Ethereum nodes that are no longer returning total difficulty from the eth.getBlock
RPC API.
Changes
-
09ead48
: Fixed error when remote nodes are not returning total difficulty from theeth.getBlock
RPC API, by adding a fallback value
💡 The Nomic Foundation is hiring! Check our open positions.
v2.22.13
: Hardhat v2.22.13
This is a small bug fix release applying corrections to our Solidity tracing logic.
Changes
-
bf92f4c
: Fixed more bugs in the newly ported Solidity tracing logic -
3df95d3
: Remove support forconsole.log
selectors that wrongly use "(u)int" type aliases in the selector calculation -
4c1bcfc
: Fixed minor bugs in the newly ported Solidity tracing logic
💡 The Nomic Foundation is hiring! Check our open positions.
v2.22.12
: Hardhat v2.22.12
This release includes a refactor to our internal solidity tracing logic that should result in a ~10% performance improvement for many workloads.
v2.22.11
: Hardhat v2.22.11
This release adds support for the latest solc versions (0.8.25, 0.8.26, and 0.8.27). Additionally, it includes bug fixes, documentation improvements, and dependency updates.
Changes
-
601d543
: Fixed a problem with provider events whenprovider.init
was explicitly called before the first request. -
224159e
: Added support for solc versions 0.8.25, 0.8.26, and 0.8.27 -
b43ed78
: Added link to Ignition docs in sample projects -
07e0a9c
: Hardhat node can now handle large response objects by streaming them. -
12d1980
: Upgrade chokidar
💡 The Nomic Foundation is hiring! Check our open positions.
v2.22.10
: Hardhat v2.22.10
This is a small bug fix release to improve debug
logs during Hardhat Network initialization.
Changes
-
409e99f
: Fixeddebug
logs in Hardhat Network initialization process. -
46cd7a1
: Removed the experimentalAddHardhatNetworkMessageTraceHook API
💡 The Nomic Foundation is hiring! Check our open positions.
v2.22.9
: Hardhat v2.22.9
This is a small bug fix release remove a warning message against the local Hardhat node when deploying with Hardhat Ignition.
Changes
-
6771f00
: Do not sendhttp_setLedgerOutputEnabled
messages beyond the HTTP Provider to prevent unwanted warnings in the logs of the local hardhat node
💡 The Nomic Foundation is hiring! Check our open positions.
v2.22.8
: Hardhat v2.22.8
This is a small bug fix release to resolve a bug with large responses from debug_traceTransaction
.
Changes
-
f5d5d15
: Fixed an issue withdebug_traceTransaction
when large responses were generated -
31d9d77
: Upgraded EDR to v0.5.2
💡 The Nomic Foundation is hiring! Check our open positions.
v2.22.7
: Hardhat v2.22.7
This releases add support for RIP-7212 (Precompile for secp256r1 Curve Support). See the Hardhat network reference for details on how to enable the precompile.
Changes
-
f944cd5
: Added anenableRip7212
optional flag to the Hardhat Network config that enables RIP-7212 (Precompile for secp256r1 Curve Support). -
f6ddc92
: Adddebug
logs to Hardhat Network initialization process. -
6c943bb
: Fix message for error HH206, thanks @ItsNickBarry! -
f944cd5
: Bumped EDR to v0.5.0.
💡 The Nomic Foundation is hiring! Check our open positions.
v2.22.6
: Hardhat v2.22.6
Changes
-
cdf0160
: Upgrade bundled solcjs -
3c66da2
: Add support for Node v22 -
9fadc22
: Bump EDR to v0.4.1. -
095faa4
: Added hardfork histories for Optimim and Arbitrum chains
💡 The Nomic Foundation is hiring! Check our open positions.
v2.22.5
: Hardhat v2.22.5
This release re-enables support for hardhat-tracer
and adds limited support for blob transactions, along with performance improvements and bug fixes.
Changelog
-
f65dc7c
: Improved the validation of network and forking URLs (thanks @kshyun28!) -
5d46baa
: Internal changes to allowhardhat-tracer
to be re-enabled with Hardhat after the EDR upgrade -
6e36f3f
: Bump EDR to v0.4.0. This adds support foreth_maxPriorityFeePerGas
, limited support for blob transactions, improves performance and fixes some bugs. Check out the v0.4.0 EDR release and v0.3.8 EDR release for more details.
💡 The Nomic Foundation is hiring! Check our open positions.
v2.22.4
: Hardhat v2.22.4
This release includes bug fixes, performance enhancements, and an improvement to the task system to support BigInt arguments.
Changelog
-
22bcbf5
: Added BigInt task argument type. -
2c533f0
: Bumped EDR dependency to 0.3.7. -
3203639
: Fixed an issue in the solidity source map decoding module. -
5d7a604
: Fixed an issue with solc version selection. -
3c6de8f
: Now solcjs is run in a subprocess, which leads to better error reporting and allows it to run multiple compilation jobs at the same time. -
6447e80
: Improved performance by reducing back-and-forth with EDR when it's not necessary.
💡 The Nomic Foundation is hiring! Check our open positions.
v2.22.3
A small bug fix release that improves the error messaging around failed installs of EDR (Hardhat network).
Changelog
-
6466e3a
: A proper error is now thrown when requiring EDR fails -
ae62841
: Upgrade EDR to version 0.3.5 -
679d8a5
: Report HH18 to Sentry.
💡 The Nomic Foundation is hiring! Check our open positions.
v2.22.2
: Hardhat v2.22.2
This release introduces a small change to the initialization process of Hardhat, which makes the task runner more extensible.
Changelog
-
7876104
: Initialize the Hardhat Runtime Environment before passing the command line arguments. Thanks @theethernaut!
v2.22.1
: Hardhat v2.22.1
This release updates the starter projects available through hardhat init
to include Hardhat Ignition as the default deployment system.
v2.22.0
: Hardhat v2.22.0
This release sets Cancun as the default hardfork used by the Hardhat Network.
v2.21.0
: Hardhat v2.21.0 — Introducing EDR
This version of Hardhat marks the debut of EDR (Ethereum Development Runtime), our new Rust-based runtime that is a complete rewrite of the original TypeScript-based Hardhat Network. This release lays a new long-term foundation for Hardhat's evolution over the coming year.
There are no functional changes, but there are some performance improvements across the board, which we’ll continue to expand in future updates.
Given the significance of this internal change, there’s a possibility of bugs. If you encounter any problems specific to this version, please report them by opening an issue. You should be able to downgrade to v2.20.1 without losing functionality if needed.
solidity-coverage out-of-memory issues
The solidity-coverage
plugin works by heavily instrumenting the code, which sometimes causes OOM (out-of-memory) issues. This new version of Hardhat can, in certain cases, make those problems more likely.
If you run into this, you can fix it by using Node.js’s --max-old-space-size
flag:
NODE_OPTIONS="--max-old-space-size=8192" npx hardhat coverage
Dropping support for Node.js v16
As part of this release, we are dropping support for Node.js v16. This version of Node.js reached its end-of-life in September of last year. You can learn more about our support guarantees here.
v2.20.1
: Hardhat v2.20.1
This release fixes a bug when hardhat_setStorageAt
was used in untouched addresses.
v2.20.0
: Hardhat v2.20.0 — Cancun
This release adds support for the upcoming cancun
hardfork. This hardfork is not enabled by default; if you want to use it, then you have to enable it in your Hardhat config:
module.exports = {
networks: {
hardhat: {
hardfork: "cancun",
},
},
}
Keep in mind that blob transactions are not supported yet. If you need this, please upvote or comment on this issue.
In addition, this release adds support for solc 0.8.24.
v2.19.5
: Hardhat v2.19.5
This release includes the following changes:
- Notify users when a new Hardhat version is available
- Fixed a bug during project initialization when using yarn or pnpm
- Fixed a race condition that occurred when multiple Hardhat processes ran a compilation at the same time
- Added a fix to prevent submitting transactions with 0 priority fee (thanks @itsdevbear!)
v2.19.4
: Hardhat v2.19.4
This release changes our telemetry to anonymously report the consent response.
v2.19.3
: Hardhat v2.19.3
This release adds support for solc 0.8.23. It also includes a temporary informative message about the ongoing 2023 Solidity Survey.
v2.19.2
: Hardhat v2.19.2
This release adds experimental support for ESM in typescript projects.
In addition to that, the hardhat-shorthand
tool (hh) now supports scoped tasks.
v2.19.1
: Hardhat v2.19.1
This release fixes a couple of issues:
- A problem in low-traffic chains that resulted in txs using a
maxPriorityFeePerGas
of 0, which were then rejected by the node. - A bug in the compiler downloader that was triggered in big projects that used many different versions of solc.
Besides that, the project initialization now uses the latest version of the Hardhat Toolboxes.
v2.19.0
: Hardhat v2.19.0
This new version of Hardhat introduces a new feature: Configuration Variables!
Configuration variables let you use values in a configuration file without making them part of your project. They work as a replacement for environment variables and dotenv, but are more flexible and powerful. Read our guide to learn more.
This version also adds support for solc v0.8.22.
v2.18.3
: Hardhat v2.18.3
This release adds ignition deploy
to our telemetry-reported tasks.
v2.18.2
: Hardhat v2.18.2
This releases fixes a problem with Hardhat's compiler download caused by a fix in the latest version of undici.
v2.18.1
: Hardhat v2.18.1
This new version of Hardhat includes a new option when initializing a project: you can now start a project that uses Viem instead of ethers. To learn more about this, check our announcement.
This version also makes a small change to the logs shown during compilation: now the targeted EVM version (or versions) is shown.
v2.18.0
: Hardhat v2.18.0
This version of Hardhat adds support for scoped tasks.
You can now create scopes to group multiple tasks that are related in some way:
const myScope = scope("my-scope", "Scope description");
myScope.task("my-task", "Do something")
.setAction(async () => { ... });
myScope.task("my-other-task", "Do something else")
.setAction(async () => { ... });
Thanks to @zemse, who kickstarted the work on this!
v2.17.4
: Hardhat v2.17.4
This version of Hardhat adds support for the debug_traceCall
method.
Besides that, Hardhat projects are now initialized with npx hardhat init
instead of npx hardhat
. The latter command still works but it will produce a warning. See https://github.com/NomicFoundation/hardhat/issues/2594 for the rationale behind this change.
v2.17.3
: Hardhat v2.17.3
This version of Hardhat changes the default evmVersion
to paris
for solc versions newer than or equal to 0.8.20.
Starting from version 0.8.20, solc changed the default target EVM version to Shanghai. Among other things, this meant that the generated bytecode could (and most likely would) contain the new PUSH0
opcode.
Up until this point, Hardhat always delegated to solc the decision of which EVM version to target. But there are two things that are different today: many users develop for non-mainnet chains, and not every chain has adopted the Shanghai hardfork yet. This means it's possible that you develop a contract which works locally (Hardhat's default hardfork is still Shanghai, because we follow the current mainnet hardfork) but that then doesn't work after deploying it.
If you are sure you are going to deploy in a network that supports the Shanghai hardfork, you can change the target EVM like this:
module.exports = {
solidity: {
version: "0.8.20",
settings: {
evmVersion: "shanghai",
},
},
};
v2.17.2
: Hardhat v2.17.2
This release includes several fixes and some new features:
- Added support for state overrides in the
eth_call
RPC method - Added an
enableTransientStorage
option to enable EIP-1153 opcodes - Deprecated the
TASK_COMPILE_TRANSFORM_IMPORT_NAME
subtask, added a newTASK_COMPILE_GET_REMAPPINGS
subtask, and added support for remappings in the resolver. - Fixed a problem that was causing
debug_traceTransaction
to return traces where the memory had a lot of empty words - Fixed an issue where
artifactExists
would throw an error for missing artifacts - Improved the error message displayed when importing a directory instead of a file
- Fixed a problem with receipts of remote transactions returning the wrong tx type when fetched through a fork
v2.17.1
: Hardhat v2.17.1
This release adds support for solc v0.8.21, allows using console.log
in pure functions and improves the output of the flatten task (see https://github.com/NomicFoundation/hardhat/issues/1499).
Besides that, this version:
- Removed an unnecessary dependency (
abort-controller
) because it's no longer needed in the versions of node.js supported by Hardhat (thanks @orlandoortegajr!) - Fixed a bug caused by nodes returning 429 responses without a
Retry-After
header (thanks @kowalski!) - Added logic to throw an error when the
debug_traceTransaction
method is called with a tracer parameter that is not supported.
v2.17.0
: Hardhat v2.17.0
This new minor version of Hardhat drops support for Node.js v14 and adds support for Node v20. To learn about which versions of Node we support, check our Stability guarantees page.
This version also adds support for solc 0.8.19 and 0.8.20 and fixes two bugs:
- A long-standing issue related to our compilation pipeline (see https://github.com/NomicFoundation/hardhat/issues/1117).
- A problem when forking other local development networks whose latest block number has a low value (issue https://github.com/NomicFoundation/hardhat/issues/1568).
v2.16.1
: Hardhat v2.16.1
This release fixes an issue in the compiler download that happens when Hardhat is used with node v18.16.x (the latest versions of node v18).
v2.16.0
: Hardhat v2.16.0 - Extendable providers
This version of Hardhat adds a new extensibility point: you can now wrap Hardhat's network provider with your own logic.
This is done by using the new extendProvider
configuration function:
extendProvider(async (provider, config, network) => {
const newProvider = new MyProviderWrapper(provider);
return newProvider;
});
Doing this means that all the JSON-RPC calls will go through your custom provider wrapper. You can use this to intercept and handle some requests while forwarding the rest to the original provider.
To learn more about this, read the "Extending the Hardhat provider" section in our docs. If you have questions about how to use this, please open a new discussion.
Other changes
Besides this new feature, this version includes the following changes:
-
console.sol
is now memory-safe (thanks @ZumZoom!) - Added optional params to some compilation subtasks to make them more flexible (thanks @adjisb!)
- Added a HARDHAT_DISABLE_TELEMETRY_PROMPT environment variable that can be set to
true
to prevent Hardhat from showing the telemetry consent prompt - The opt-in telemetry is now done using Google Analytics 4
v2.15.0
: Hardhat v2.15.0
This new version of Hardhat uses the new ethers v6 based Toolbox when initializing a project. Check the release notes of the Toolbox to learn more.
v2.14.1
: Hardhat v2.14.1
This release adds better information to Hardhat about which block numbers correspond to which hardforks. Most users won't be affected by this, but it fixes some issues for certain edge cases.
v2.14.0
: Hardhat v2.14.0 — Shanghai
This release sets Shanghai as the default hardfork used by the Hardhat Network.
If for some reason you want to keep using the previous hardfork, set it explicitly in your config:
module.exports = {
networks: {
hardhat: {
hardfork: "merge"
}
}
}
v2.13.1
: Hardhat v2.13.1
This release adds support for the upcoming Shanghai hardfork. This hardfork is not enabled by default; if you want to use it, then you have to enable it in your Hardhat config:
module.exports = {
networks: {
hardhat: {
hardfork: "shanghai"
}
}
}
Besides that, this version fixes a problem when importing scoped packages in a Yarn Berry monorepo that uses PnP (thanks @zouguangxian!)
v2.13.0
: Hardhat v2.13.0 — ES Modules and compiling with viaIR
This new version of Hardhat adds two long-awaited features: ES Modules support, and better support for solc’s IR-based compilation pipeline. Besides that, this version includes several other improvements and bug fixes.
Remember to give this repo a star
ES Modules support
Hardhat was designed with CommonJS in mind, but in the last years adoption of ES Modules (ESM) has been growing. This version includes better support for it. You can now write scripts and tests as ESM, but your Hardhat config —and anything imported from it— still needs to use CommonJS.
ES modules let you use import
/export
and top-level await. This means that instead of writing a script like this:
// script.js
const helpers = require("@​nomicfoundation/hardhat-network-helpers");
async function main() {
const latestBlockNumber = await helpers.time.latestBlock();
console.log("Latest block:", latestBlockNumber);
}
main()
.then(() => process.exit(0))
.catch(error => {
console.error(error);
process.exit(1);
});
you can now write a less verbose ESM script:
// script.mjs <-- notice the extension
import helpers from "@​nomicfoundation/hardhat-network-helpers";
const latestBlockNumber = await helpers.time.latestBlock();
console.log("Latest block:", latestBlockNumber);
Check our guide about Using ES modules with Hardhat to learn more.
Huge thanks to @phated, who started the work on this and helped us along the way.
IR-based compilation pipeline
The solc
compiler has a newer, alternative way of generating bytecode through an intermediate representation (IR). Previous versions of Hardhat don’t work well with this compilation mode, especially when the optimizer is fully-enabled.
This release adds better support for the IR compilation pipeline, but you might still get some issues if you use the default settings. We recommend enabling the minimal necessary optimization steps when compiling with IR:
solidity: {
version: "0.8.18",
settings: {
viaIR: true,
optimizer: {
enabled: true,
details: {
yulDetails: {
optimizerSteps: "u:",
},
},
},
},
}
You can learn more about Hardhat and IR here.
Other improvements
In addition to ES Modules and compiling with the IR-based pipeline, this version includes these improvements and bug fixes:
- Added support for Solidity 0.8.18 (thanks @taxio!)
- Hardhat's task runner now allows you to override the arguments passed to subtasks (thanks @zemse!)
- The colors used to show errors and warnings are better and more readable (thanks @frangio!)
- We now show better error messages when a transaction to a JSON-RPC network reverts (thanks @orenyomtov!)
- Hardhat is now more tolerant to Node.js versions that are not officially supported (thanks @iamrekas!)
- The
resolveJsonModule
compiler option is now enabled by default in the sample tsconfig (thanks @mlshv!) - The sample project’s deploy script uses better example values (thanks @mutedSpectre!)
- Fixed an issue with a warning showing the same solc version multiple times (thanks @shark0der!)
- Fixed an error that could happen when a download failed
Configuration
-
If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot.