Skip to content

Update dependency hardhat to v3 - #468

Open
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/hardhat-3.x
Open

renovate[bot] wants to merge 1 commit into
masterfrom
renovate/hardhat-3.x

Conversation

@renovate

@renovate renovate Bot commented Aug 13, 2025 •

Copy link
Copy Markdown
Contributor

Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
hardhat (source) ^2.8.0 → ^3.0.0 age adoption passing confidence

Release Notes

NomicFoundation/hardhat (hardhat)

v3.21.0

Compare Source

Minor Changes
  • #​8747 5309dcd Thanks @​kanej! - Added experimental EIP-7954 support to the Amsterdam hardfork: deployment transactions may carry up to 128 KiB of init code and deploy up to 64 KiB of contract code.
Patch Changes
  • #​8670 1dbf44d Thanks @​schaable! - Fixed a cryptic error when a private key in a network's accounts is invalid.

  • #​8708 c8e13d7 Thanks @​Kropiunig! - Fixed --coverage crashing when generating the report if Hardhat is run from a directory other than the project root (e.g. a subdirectory, or with --config).

  • #​8747 5309dcd Thanks @​kanej! - Upgraded EDR to v0.24.0.

  • #​8747 5309dcd Thanks @​kanej! - Fixed the GASLIMIT opcode returning 1_000_000 while the block gas limit is disabled; it now returns the parent block's gas limit, which the mined block's header already carried.

  • #​8747 5309dcd Thanks @​kanej! - Added the Amsterdam hardfork activation on Hoodi, so forking Hoodi uses amsterdam for blocks after it activates.

  • #​8747 5309dcd Thanks @​kanej! - Fixed simulated OP networks not charging the L1 data fee, so transactions now pay it and their receipts report it.

  • #​8734 4c2a07c Thanks @​mikeua! - Fixed the node:test link in the node:test + viem project template README.

  • #​8655 de7c792 Thanks @​aelmanaa! - Fixed prompts only receiving the first line when input is piped (e.g. printf 'password\npassword\nvalue\n' | npx hardhat keystore set KEY); later prompts now read the following lines instead of the process exiting with an unsettled top-level await.

  • #​8743 ac2776f Thanks @​clippytool! - Fixed the solc compiler list cache not refreshing when it only contains a prerelease build for a requested stable version.

  • #​8751 0a2a248 Thanks @​clippytool! - Fixed peer dependency detection during project initialization when npm's legacy-peer-deps or pnpm's auto-install-peers is explicitly configured.

  • Updated dependencies:

v3.20.0

Compare Source

Minor Changes
  • #​8710 065c858 Thanks @​popescuoctavian! - Added experimental EIP-2780 support to the Amsterdam hardfork: intrinsic transaction gas is priced per resource instead of a flat 21,000.

  • #​8710 065c858 Thanks @​popescuoctavian! - Added experimental EIP-8246 support to the Amsterdam hardfork: a contract that self-destructs in the transaction that created it keeps its balance instead of burning it.

  • #​8710 065c858 Thanks @​popescuoctavian! - Added the lastFrameGas and snapshotGasLastFrame cheatcodes, which also record CREATE and CREATE2 frames, and deprecated lastCallGas and snapshotGasLastCall in their favour.

Patch Changes
  • #​8697 8c4d435 Thanks @​kediyalua! - Fixed the CORS headers of hardhat node's JSON-RPC server to list the methods it actually serves.

  • #​8690 0058149 Thanks @​schaable! - Sped up compilation by reading and writing solc's output with JSON.parse and JSON.stringify when memory allows (#​8565).

  • #​8705 5f5991b Thanks @​izzetemredemir! - Fixed config values containing "$$", "$&", "$`" or "$'" being altered when resolved, including inline values. An HD account passphrase with one of these will now derive different accounts than before.

  • #​8710 065c858 Thanks @​popescuoctavian! - Upgraded EDR to v0.23.0.

  • #​8710 065c858 Thanks @​popescuoctavian! - Fixed Solidity stack traces not recognising console.log calls made through the Hardhat console address.

  • #​8710 065c858 Thanks @​popescuoctavian! - Fixed the transaction Value in the hardhat node logs dropping leading zeros of the fractional part (0.01 ETH was logged as 0.1 ETH) and whole amounts ending with a trailing dot.

  • #​8710 065c858 Thanks @​popescuoctavian! - Fixed JSON-RPC call traces to include calls to precompiles.

  • #​8710 065c858 Thanks @​popescuoctavian! - Fixed Solidity stack traces after a precompile call, so a failing precompile call is reported as a precompile error and later calls in the same function point at the right line.

  • #​8710 065c858 Thanks @​popescuoctavian! - Fixed the default gas limit of Solidity test transactions being lowered to the EIP-7825 cap from the Amsterdam hardfork, where the cap bounds execution gas only.

  • #​8669 257692d Thanks @​schaable! - Fixed Hardhat exiting without an error when a prompt, like the keystore password prompt, has no input to read.

  • #​8572 a0a52b9 Thanks @​sanskar717! - Fixed a race condition in the solc downloader that would show as spawn ... EACCES.

  • #​8642 7f75efb Thanks @​spideydotjs! - Improved the error for bare-filename imports of local files (e.g. import "Token.sol"), which now suggests the equivalent relative import instead of reporting invalid npm import syntax.

  • Updated dependencies:

v3.19.0

Compare Source

Minor Changes
  • #​8680 0e51fa2 Thanks @​anaPerezGhiglia! - Added experimental EIP-7976 support to the Amsterdam hardfork: the calldata floor cost rises to 64 gas per byte.

  • #​8680 b52d2eb Thanks @​anaPerezGhiglia! - Added experimental EIP-7981 support to the Amsterdam hardfork: access list data costs an extra 64 gas per byte.

  • #​8680 bb62bf6 Thanks @​anaPerezGhiglia! - Added experimental EIP-7997 support to the Amsterdam hardfork: the deterministic CREATE2 factory is now part of the genesis state.

  • #​8680 0e51fa2 Thanks @​anaPerezGhiglia! - Added experimental EIP-8024 support to the Amsterdam hardfork: the DUPN, SWAPN and EXCHANGE opcodes reach stack items beyond DUP16 and SWAP16.

  • #​8680 bb62bf6 Thanks @​anaPerezGhiglia! - Added experimental EIP-8037 support to the Amsterdam hardfork: execution gas and state gas are metered separately, and a block's gasUsed reports the larger.

Patch Changes

v3.18.1

Compare Source

Patch Changes

v3.18.0

Compare Source

Minor Changes
  • #​8574 e28e4f5 Thanks @​anaPerezGhiglia! - Removed the pre-Byzantium hardforks (chainstart, homestead, dao, tangerineWhistle, spuriousDragon) from the accepted hardfork and hardforkHistory values, as EDR cannot execute them.

  • #​8595 562cc0b Thanks @​ChristopherDedominici! - Made ethers derive secp256k1 public keys with EDR's native implementation instead of its pure-JS one, speeding up new Wallet(secretKey), Wallet.createRandom(), HD wallet derivation and computeAddress.

  • #​8590 e2ebf54 Thanks @​schaable! - Added Solidity test profiles, allowing test settings to vary across environments such as local development and CI.

Patch Changes

v3.17.0

Compare Source

Minor Changes
  • #​8501 5faee42 Thanks @​ChristopherDedominici! - Add gasEstimationMode config option to EDR networks, featuring a "noInternalOutOfGas" mode to prevent misleading eth_estimateGas results when internal calls run out of gas.

  • #​8580 8583e24 Thanks @​ChristopherDedominici! - Made ethers use EDR's native Keccak-256 instead of its pure-JS one.

  • #​8210 024b422 Thanks @​renovate! - Update the cryptography dependencies to their latest major versions: @noble/hashes and @noble/ciphers to 2, ethereum-cryptography to 3, and micro-eth-signer to 0.19.

Patch Changes

v3.16.0

Compare Source

Minor Changes

v3.15.0

Compare Source

Minor Changes
Patch Changes

v3.14.0

Compare Source

Minor Changes
  • #​8540 99306ea Thanks @​kanej! - EDR now uses platform specific optionalDependencies, reducing Hardhat's install size.
Patch Changes
  • #​8514 f7c6228 Thanks @​questfever! - Fixed Solidity resolver containment checks for paths whose names share a prefix with the project root, a package source-name root, or node_modules.

  • #​8540 99306ea Thanks @​kanej! - Fixed missing Solidity test stack trace when setUp() fails and stack traces are collected with CollectStackTraces::Always.

  • #​8500 54973b2 Thanks @​SnowingFox! - Fixed the format of fuzz test counterexamples: byte array values such as calldata, sender and address are now printed as hexadecimal strings (e.g. 0x3e2033b3...) instead of comma-separated byte lists.

  • #​8522 8640b4b Thanks @​JasonColapietro! - Remove Holesky testnet (chain id 17000) as a supported chain as it has been shut down.

  • #​8488 edd1069 Thanks @​ChristopherDedominici! - Stores gas snapshot cheatcode values as raw strings and calculates diffs using BigInt.

v3.13.0

Compare Source

Minor Changes
Patch Changes
  • #​8486 2ccd059 Thanks @​Kropiunig! - Fixed the EDR network config validation rejecting mining.interval: 0, a valid value which disables interval mining.

  • #​8490 22667f6 Thanks @​kanej! - Added detection and custom error for failed native binding loads (HHE27) of @nomicfoundation/edr or @nomicfoundation/solidity-analyzer.

  • #​8454 47793de Thanks @​ChristopherDedominici! - Only collect Solidity test stack traces at verbosity level 5 (-vvvvv) and above, fixing excessive memory usage when running large test suites with -vvv/-vvvv.

v3.12.0

Compare Source

Minor Changes
  • #​8442 4904c72 Thanks @​ChristopherDedominici! - Support test name filter negation (--grep-exclude) for Solidity and Mocha tests.

  • #​8472 2a66c2e Thanks @​kanej! - Added experimental EIP-7843 support to the Amsterdam hardfork: blocks now include the slotNumber header field, and the SLOTNUM (0x4b) opcode returns it. EDR has no consensus layer, so the value is simulated: it increments by one per mined block, starting at 0 on a new chain, or from the forked block's slot number when forking.

Patch Changes

v3.11.1

Compare Source

Patch Changes

v3.11.0

Compare Source

Minor Changes
  • #​8447 dff401d Thanks @​kanej! - Added experimental EIP-7778 support to the Amsterdam hardfork: a block's gasUsed excludes gas refunds; transaction receipts are unchanged.

  • #​8447 dff401d Thanks @​kanej! - Added experimental EIP-7928 support to the Amsterdam hardfork: blocks on Amsterdam now include the blockAccessListHash header field. The value is simulated, not the real keccak256(rlp(blockAccessList)).

Patch Changes

v3.10.0

Compare Source

Minor Changes
  • #​8431 39c93e4 Thanks @​anaPerezGhiglia! - Add support for the new experimental amsterdam L1 hardfork, which currently implements EIP-7708 (ETH transfers emit logs).
Patch Changes

v3.9.1

Compare Source

Patch Changes

v3.9.0

Compare Source

Minor Changes
  • #​8380 0fd498d Thanks @​kanej! - Added support for coverage.skipFiles, a list of globs of Solidity files to exclude from coverage instrumentation and reporting during a --coverage run.
Patch Changes
  • #​8383 1660f1e Thanks @​schaable! - Fixed an intermittent "Provider for provided chain type does not exist" error that could occur when multiple network connections were created concurrently.

  • #​8371 287620e Thanks @​gultekinmakif! - Account overrides that share an address with the network's built-in genesis accounts are now correctly merged into a single genesis entry.

  • #​8375 931a5f0 Thanks @​schaable! - Suppressed the solc initcode size warning for Solidity test contracts and when running under --coverage.

  • #​8372 5f6aff2 Thanks @​gultekinmakif! - Improved validation for initialDate network configuration. Invalid Date objects and unparseable date strings are now rejected during config loading rather than causing a runtime error later.

v3.8.0

Compare Source

Minor Changes
  • #​8339 f21390f Thanks @​alcuadrado! - Added definePlugin, a new helper exported from hardhat/plugins. Plugin authors should wrap their plugin literal with it so the default export of their index module becomes:

    import type { HardhatPlugin } from "hardhat/types/plugins";
    
    import { definePlugin } from "hardhat/plugins";
    
    const hardhatPlugin: HardhatPlugin = definePlugin({
      id: "my-plugin",
      // ...
    });
    
    export default hardhatPlugin;

    definePlugin returns its argument unchanged and, as a side effect, registers the plugin's id in a process-wide registry of loaded plugins. Hardhat's CLI uses that registry to warn when a plugin is imported but missing from the user's plugins array.

  • #​8339 19c6927 Thanks @​alcuadrado! - Hardhat now warns when a plugin is imported in your Hardhat config file but missing from the plugins array. The warning is printed to stderr after the runtime environment is created, listing the offending plugins and pointing the user at the fix.

    If your Hardhat config file is written in TypeScript, for the warning to be reliable your project's tsconfig.json must enable verbatimModuleSyntax: true. Without it, TypeScript deletes unused default-value imports, so an unused plugin can't be detected.

Patch Changes
  • #​8336 86bfe66 Thanks @​Wodann! - - Fixed default gas limit of Solidity test runner when a custom transaction gas cap (EIP-7825) or block gas limit is specified

    • Fixed process deadlock/hang when dropping a provider with interval mining and logging enabled
    • Print more detailed error descriptions for EVM, invariant fuzz, and cheatcode errors
  • #​8345 9d5b96c Thanks @​alcuadrado! - Add .solidityStack property to the SolidityError exceptions generated by EDR

  • #​8365 dbb689b Thanks @​kanej! - Suppress the solc contract size warning for Solidity test files.

  • #​8368 2e2ba99 Thanks @​kanej! - Fixed the build task attempting to download a compiler even though a path to a local compiler is configured.

  • #​8339 25cea9f Thanks @​alcuadrado! - The sample projects initialized with hardhat --init now set verbatimModuleSyntax: true in their tsconfig.json. This ensures that plugin imports in hardhat.config.ts are actually evaluated at runtime, which is required for the new "imported but unused plugin" warning to work reliably.

  • Updated dependencies:

v3.7.0

Compare Source

Minor Changes
  • #​8200 ce430ac Thanks @​tenderdeve! - Hardhat 3 is now stable, the "Beta" wording is being dropped from the hardhat --init process and project templates.

v3.6.0

Compare Source

Minor Changes
  • #​8327 dee44f6 Thanks @​alcuadrado! - Add a cleanupArtifacts option to SolidityBuildSystem#build. When true, the build system runs cleanupArtifacts against the build's root file paths after a successful build, deleting orphan artifacts and unreachable build-info files for the scope.

  • #​8327 dee44f6 Thanks @​alcuadrado! - Deprecate the following SolidityHooks: getCompiler, onCleanUpArtifacts, preprocessProjectFileBeforeBuilding, preprocessSolcInputBeforeBuilding, readSourceFile, invokeSolc, and readNpmPackageRemappings. They will be removed in a future release.

    Use processArtifactsAfterSuccessfulBuild instead of onCleanUpArtifacts, and getCompilationJobErrors instead of invokeSolc.

  • #​8327 dee44f6 Thanks @​alcuadrado! - Add SolidityHooks#getCompilationJobErrors hook, which lets plugins process the compiler output errors of a compilation job before they are reported to the user.

  • #​8327 dee44f6 Thanks @​alcuadrado! - Add SolidityHooks#processArtifactsAfterSuccessfulBuild hook to let plugins post-process the artifacts. The hook receives the resolved build options as a new exported ResolvedBuildOptions type.

Patch Changes

v3.5.1

Compare Source

Patch Changes

v3.5.0

Compare Source

Minor Changes
  • #​8301 793cc84 Thanks @​kanej! - Disable transaction gas cap and block gas limit when running tests under --coverage.

  • #​8270 cf2823b Thanks @​schaable! - Solidity test configuration now also accepts { profiles: { default: ... } }. Only the default profile is currently supported, other profile names will be supported in a future release. The previous flat shape continues to work unchanged.

    The resolved HardhatConfig.test.solidity is now profile-keyed: read per-profile fields at hre.config.test.solidity.profiles.default.* instead of hre.config.test.solidity.*. Plugins that read the resolved Solidity test config need to be updated.

Patch Changes

[!IMPORTANT]
✂ PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • 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 PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


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

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot force-pushed the renovate/hardhat-3.x branch 2 times, most recently from cbd9eb3 to 0e9ccd4 Compare August 27, 2025 17:13
@renovate
renovate Bot force-pushed the renovate/hardhat-3.x branch from 0e9ccd4 to 33fb685 Compare August 31, 2025 09:24
@renovate
renovate Bot force-pushed the renovate/hardhat-3.x branch 3 times, most recently from c9fa39a to e28323e Compare September 10, 2025 21:23
@renovate
renovate Bot force-pushed the renovate/hardhat-3.x branch from e28323e to 9086b49 Compare September 25, 2025 19:51
@renovate
renovate Bot force-pushed the renovate/hardhat-3.x branch from 9086b49 to ee121d9 Compare October 8, 2025 16:59
@renovate
renovate Bot force-pushed the renovate/hardhat-3.x branch 2 times, most recently from 93611eb to 20bfc00 Compare October 23, 2025 14:55
@renovate
renovate Bot force-pushed the renovate/hardhat-3.x branch 2 times, most recently from 4c8d1bb to 99b1e61 Compare November 4, 2025 11:11
@renovate
renovate Bot force-pushed the renovate/hardhat-3.x branch 3 times, most recently from 72a5921 to 1e9e224 Compare November 12, 2025 18:55
@renovate
renovate Bot force-pushed the renovate/hardhat-3.x branch 2 times, most recently from 3360d06 to 71d1ef2 Compare November 18, 2025 13:08
@renovate
renovate Bot force-pushed the renovate/hardhat-3.x branch 4 times, most recently from 0e2505f to 25e5489 Compare December 3, 2025 21:10
@renovate
renovate Bot force-pushed the renovate/hardhat-3.x branch from 25e5489 to ad440b1 Compare December 10, 2025 20:04
@renovate
renovate Bot force-pushed the renovate/hardhat-3.x branch 2 times, most recently from 9b38d6b to 38af324 Compare December 30, 2025 18:36
@renovate
renovate Bot force-pushed the renovate/hardhat-3.x branch 3 times, most recently from 6882a99 to 91d1ad4 Compare January 14, 2026 22:45
@renovate
renovate Bot force-pushed the renovate/hardhat-3.x branch from 91d1ad4 to e3a22fe Compare January 19, 2026 21:40
@renovate
renovate Bot force-pushed the renovate/hardhat-3.x branch 2 times, most recently from 0861ebc to 70d08e0 Compare February 5, 2026 22:36
@renovate
renovate Bot force-pushed the renovate/hardhat-3.x branch 4 times, most recently from 54636cf to 74f48b3 Compare April 29, 2026 13:04
@renovate
renovate Bot force-pushed the renovate/hardhat-3.x branch 2 times, most recently from 8a383e4 to d53a359 Compare May 4, 2026 14:54
@renovate
renovate Bot force-pushed the renovate/hardhat-3.x branch from d53a359 to 801facd Compare May 7, 2026 21:31
@renovate
renovate Bot force-pushed the renovate/hardhat-3.x branch 3 times, most recently from 2643c1c to 00e5c2b Compare May 22, 2026 00:45
@renovate
renovate Bot force-pushed the renovate/hardhat-3.x branch 3 times, most recently from 5f2aa09 to 73e7fd9 Compare June 1, 2026 22:43
@renovate
renovate Bot force-pushed the renovate/hardhat-3.x branch 2 times, most recently from b7baebb to 3ea0e10 Compare June 8, 2026 22:27
@renovate
renovate Bot force-pushed the renovate/hardhat-3.x branch from 3ea0e10 to b20eab7 Compare July 2, 2026 17:15
@renovate
renovate Bot force-pushed the renovate/hardhat-3.x branch 2 times, most recently from 45543dd to c924229 Compare July 16, 2026 23:46
@renovate
renovate Bot force-pushed the renovate/hardhat-3.x branch 3 times, most recently from 184d8ea to 947a96c Compare July 24, 2026 20:52
@renovate
renovate Bot force-pushed the renovate/hardhat-3.x branch from 947a96c to 58c6dfa Compare July 30, 2026 22:11
@renovate
renovate Bot force-pushed the renovate/hardhat-3.x branch 3 times, most recently from 061055f to fc02550 Compare August 14, 2026 20:56
@renovate
renovate Bot force-pushed the renovate/hardhat-3.x branch 2 times, most recently from 4470cc7 to c7cceaf Compare August 27, 2026 13:16
@renovate
renovate Bot force-pushed the renovate/hardhat-3.x branch 2 times, most recently from a09a1ac to f860078 Compare September 3, 2026 13:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants