Releases: NomicFoundation/hardhat
@nomiclabs/[email protected]
This release fixes a problem with the Vyper compiler downloader.
Hardhat v2.18.3
This release adds ignition deploy
to our telemetry-reported tasks.
@nomicfoundation/[email protected]
Hardhat v2.18.2
This releases fixes a problem with Hardhat's compiler download caused by a fix in the latest version of undici.
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.
@nomicfoundation/[email protected]
This is the first release of our new hardhat-viem
plugin. To learn more about it, check our announcement.
@nomicfoundation/[email protected]
This is the first release of our new Viem-based Toolbox. To learn more about it, check our announcement.
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!
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 #2594 for the rationale behind this change.
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",
},
},
};