good morning!!!!

Skip to content

Update dependency hardhat to v2.22.4

autocafe requested to merge renovate/hardhat-2.x-lockfile into master

This MR contains the following updates:

Package Type Update Change
hardhat (source) dependencies minor 2.12.7 -> 2.22.4

Release Notes

nomiclabs/hardhat (hardhat)

v2.22.4: Hardhat v2.22.4

Compare Source

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

Compare Source

A small bug fix release that improves the error messaging around failed installs of EDR (Hardhat network).

Changelog


💡 The Nomic Foundation is hiring! Check our open positions.


v2.22.2: Hardhat v2.22.2

Compare Source

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

Compare Source

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

Compare Source

This release sets Cancun as the default hardfork used by the Hardhat Network.

v2.21.0: Hardhat v2.21.0 — Introducing EDR

Compare Source

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

Compare Source

This release fixes a bug when hardhat_setStorageAt was used in untouched addresses.

v2.20.0: Hardhat v2.20.0 — Cancun

Compare Source

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

Compare Source

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

Compare Source

This release changes our telemetry to anonymously report the consent response.

v2.19.3: Hardhat v2.19.3

Compare Source

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

Compare Source

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

Compare Source

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

Compare Source

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

Compare Source

This release adds ignition deploy to our telemetry-reported tasks.

v2.18.2: Hardhat v2.18.2

Compare Source

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

Compare Source

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

Compare Source

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

Compare Source

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

Compare Source

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

Compare Source

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 new TASK_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

Compare Source

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

Compare Source

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:

v2.16.1: Hardhat v2.16.1

Compare Source

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

Compare Source

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

Compare Source

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

Compare Source

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

Compare Source

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

Compare Source

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

Compare Source

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 if you are enjoying Hardhat!

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 "@&#8203;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

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this MR and you won't be reminded about this update again.


  • If you want to rebase/retry this MR, check this box

This MR has been generated by Renovate Bot.

Edited by autocafe

Merge request reports