Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@nomicfoundation/hardhat-ignition

NomicFoundation170.8kMIT0.15.11TypeScript support: included

Hardhat Ignition is a declarative system for deploying smart contracts on Ethereum. It enables you to define smart contract instances you want to deploy, and any operation you want to run on them. By taking over the deployment and execution, Hardhat Ignit

ethereum, smart-contracts, hardhat, blockchain, dapps, tooling, solidity, deployment

readme

./packages/hardhat-plugin/README.md

changelog

Changelog

0.15.11

Patch Changes

  • 23280b8: Resolve all dependencies when using submodules in after

0.15.10

Patch Changes

  • d96c003: Fix for bug when we fail to save transaction hash

0.15.9 - 2024-12-18

Added

  • Standard Ignition UI can now be enabled when deploying via Hardhat scripts by setting displayUi: true in the deploy function options, @zoeyTM (#843)
  • Ignition modules can now be set as a dependency in the after option of futures, @zoeyTM (#828)
  • The ignition transactions command output will now include a link to view each transaction on the configured block explorer, @zoeyTM (#849)
  • Module parameters can now be directly imported from a JSON file when deploying via Hardhat scripts by passing an absolute path to the file to the parameters option, @zoeyTM (#850)

Fixed

  • Properly handle errors when verifying deployments that use external artifacts, @zoeyTM (#848)
  • Fix issue with ignition status command not working with deployments that use external artifacts, @zoeyTM (#846)

0.15.8 - 2024-11-22

Fixed

  • transactions command now properly serializes bigint values, @zoeyTM (#837)
  • Additional validations added for global parameters, @kanej (#832)

0.15.7 - 2024-10-24

Added

  • New CLI command ignition transactions to list all transactions sent for a given deployment ID, @zoeyTM (#821)
  • Module parameters can now be set at the global level using $global, @zoeyTM (#819)

Fixed

  • Gas fields are now properly set for Optimistic BNB, @zoeyTM (#826)
  • Corrected resolution of artifacts when using fully qualified names in deployment modules, @kanej (#822)

0.15.6 - 2024-09-25

Added

  • Updates to the visualization UI, including the ability to zoom and pan the mermaid diagram (#810)
  • gasPrice and disableFeeBumping config fields added as part of our L2 gas logic update (#808)
  • Debug logging for communication errors with Hardhat Ledger (#792)
  • JSON5 support for module parameters, thanks @erhant (#800)
  • Add writeLocalhostDeployment flag to allow saving deployment artifacts when deploying to the ephemeral Hardhat network, thanks @SebastienGllmt (#816)

Fixed

  • Replace this with the class itself in ViemIgnitionHelper, thanks @iosh (#796)

0.15.5 - 2024-06-17

Added

  • New function m.encodeFunctionCall (#761)

Fixed

  • Adjusted regex to allow calling overloaded functions with array parameters (#774)
  • Handle anvil response for hardhat_setBalance when deploying with create2 (#773)
  • Properly resolve verify logic when dealing with circular or very deeply nested imports (#772)
  • Exclude BNB Test Chain from zero fee configuration in gas fee logic, thanks @MukulKolpe (#768)

0.15.4 - 2024-05-14

Fixed

  • Reconcile address parameters with mismatched casings (#748)
  • Display better error messages for insufficient funds (#754)

0.15.3 - 2024-05-09

Fixed

  • Exclude BNB Chain from zero fee configuration in gas fee logic, thanks @magicsih (#755)

0.15.2 - 2024-05-02

Added

  • Improved support for deploying via a Ledger Hardware wallet, see our guide for details (#720)
  • Support maxPriorityFeePerGas as a configuration parameter (#728)
  • Use RPC call eth_maxPriorityFeePerGas in gas fee calculations when available (#743)
  • Support zero gas fee chains (like private Besu chains), thanks @jimthematrix (#730)

Fixed

  • Use pre-EIP-1559 transactions for Polygon to avoid dropped transactions (#735)

0.15.1 - 2024-04-04

Added

  • Add a configurable upper limit for the maxFeePerGas (#685)
  • Support writing and reading from deployments folder within tests and scripts (#704)
  • Add ignition deployments task to list all the current deployments (#646)

Changed

  • Deploying to a cleared local hardhat node ignores previous deployment (#650)

Fixed

  • More resilent automine check (#721)
  • getCode usage brought in line with Ethereum RPC standard (#715)
  • Fixed unexpected next nonce on revert (#676)
  • Reduce sources being passed to etherscan for verification (#706)

0.15.0 - 2024-03-13

Added

0.14.0 - 2024-02-21

Added

  • Support BigInt values in Module Parameter files by encoding them as strings with the format /d+n/ (#663)

0.13.2 - 2024-01-25

Fixed

  • Add memory pool lookup retry to reduce errors from slow propogation (#667)

Added

  • Improve Module API typescript doc comments to enhance intellisense experience (#642)
  • Support module parameters taking accounts as the default value (673)

0.13.1 - 2023-12-19

Added

  • New flag --reset for ignition deploy to wipe the existing deployment state before running (#649)

Fixed

  • Fix bug with process.stdout being used in a non-tty context (#644)

0.13.0 - 2023-12-13

Added

  • Add support for setting the default sender account from tests and scripts (#639)
  • Add support for setting the default sender from the cli (#620)

Changed

  • Split out ethers support from @nomicfoundation/hardhat-plugin, to allow opting for either ethers or Viem in tests and scripts. If you were using hre.ignition.deploy(...) in tests or scripts you will need to install, and require in your Hardhat config, the @nomicfoundation/hardhat-plugin-ethers package. For more details on our Viem support see our guide. (#612)

0.12.0 - 2023-12-05

Added

Changed

  • Improved the error for fee exceeding block gas limit (#594)

0.11.2 - 2023-11-06

Added

  • Support account values in send to in Module API (#618)
  • Validation check for duplicate module ids (#608)

Fixed

  • Fix ContractAts being recorded to deployed_addresses.json (#607)

0.11.1 - 2023-10-30

Added

  • Give visual indication that there was a gas bump in deploy task (#587)

Changed

  • When displaying an Ethereum Address at the cli, show in checksum format (#600)
  • Show a better message when no futures were executed during a rerun (#586)
  • Less confusing message for no modules folder error (#602)

0.11.0 - 2023-10-23

First public launch 🚀

Added

  • Display batching information in the visualize report (#494)
  • Update styling of visualize report (#493)
  • Expand Module API so value and from support staticCall/readEventArg as values (#455)
  • Support fully qualified contract names (#563)

Changed

  • More compact command-line UI (#495)
  • Ignition tasks are now scoped e.g. npx hardhat ignition deploy (#442)
  • The ignition-info task has been renamed to status, and now shows the status of the current deployment not just the successes (#496)
  • Modules now have to be inside a modules subfolder within the ./ignition folder (#511)
  • Import of buildModule now from @nomicfoundation/hardhat-ignition/modules (#540)
  • A warning is displayed if you are running against an in-process hardhat network (#553)
  • The default deployment id is now chain-<CHAINID> (#551)
  • The contractAt signature overload for artifact has been changed to match other artifact overload signatures (#557)

Fixed

  • Improve loading times for other non-ignition hh tasks, when Ignition is included (#13)
  • Only open visualization report if supported (#504)
  • Fixed nonce check failure on rerun (#506)
  • Ensure future's senders meet nonce sync checks (#411)
  • Show all deployed contracts at the end of a deployment (#480)
  • Rerun blocked by sent transactions message IGN403 (#574)
  • Rerun over multiple batches trigger error IGN405 (#576)

0.4.0 - 2023-09-15

Added

  • Advanced cli UI for deploy (#401)
  • Store artifact debug files as part of deployment directory (#473)

Changed

  • Changed npm package name to @nomicfoundation/hardhat-ignition
  • rename the plan task to visualize (#471)
  • Constrain module ids and action ids to better support storing deployments on windows (#466)
  • Rename use-verbose flag on deploy task to simple-text-ui (#444)

Fixed

  • Fix batch completion on non-automining chains (#467)

0.3.0 - 2023-08-30

Added

  • Support eip-1559 style transactions (#8)
  • Automatic gas bumping of transactions (#294)
  • Improve validation based on artifacts (#390)

Changed

  • Switch peer dependency from ethers v5 to ethers v6 (#338)
  • Deprecate support for node 14, and add support for node 20 (#370)

0.2.0 - 2023-08-16

Added

  • The execution config is now exposed through deploy and wired into the hardhat-ignition plugin config.

Fixed

  • Switch default deploy configurations depending on whether the current network is automined.

0.1.2 - 2023-07-31

Fixed

  • Fix validation error when using the result of a staticCall as the address of a contractAt/contractAtFromArtifact (#354)
  • Fix bug in staticCall execution logic preventing successful execution

0.1.1 - 2023-07-30

Fixed

  • Fix validation error when using the result of a readEventArgument as the address of a contractAt/contractAtFromArtifact (#354)

0.1.0 - 2023-07-27

Added

  • Rerunning now uses a reconciliation phase to allow more leeway in changing a module between runs
  • Deployments against real networks are recorded to ./ignition/deployments/<deploy-id>, including recording the deployed addresses and the artifacts (i.e. abi, build-info etc) used for each contract deploy

Changed

  • The Module API has went through considerable restructuring, including breaking changes, please see the ./docs for more details
  • The plan task has been enhanced to give a module centric view rather than the lower level execution that was previously shown
  • The ui during a deployment has been reduced to showing the results, the full UI will be brought back in a coming release

0.0.13 - 2023-04-18

Added

  • Support static calls in the Module API (#85)
  • Add command, ignition-info, to list previously deployed contracts (#111)

0.0.12 - 2023-04-04

Fixed

  • Support recursive types in m.call args (#186)

0.0.11 - 2023-03-29

Changed

  • Replace m.getBytesForArtifact("Foo") with m.getArtifact("Foo") in the module api (#155)

Fixed

  • Fix libraries in plan (#131)

0.0.10 - 2023-03-14

Added

  • Make Hardhat network accounts available within modules (#166)

Changed

  • Show file/line/column against validation errors, so that module problems can more easily be traced back to the source code (#160)

0.0.9 - 2023-03-02

Added

  • Support defining modules in typescript (#101)
  • Allow rerunning deployment while ignoring journal history through a --force flag (#132)

Changed

  • Do not ask for confirmation when deploying to a hardhat node (#134)

0.0.8 - 2023-02-16

Added

  • Allow file paths to ignition modules on cli to support cli completions for file discovery (#102)

Changed

  • Rename config option gasIncrementPerRetry to gasPriceIncrementPerRetry for clarity (#143)

Fixed

  • Improve error messages display during module validation (#141)
  • Ban passing async functions to buildModule (#138)

0.0.7 - 2023-01-31

Fixed

  • Resolve parameter args for deployed contracts during execution (#125)

0.0.6 - 2023-01-20

Added

  • Support rerunning deployments that errored or went to on-hold on a previous run (#70)
  • Support sending ETH to a contract without having to make a call/deploy (#79)
  • Confirm dialog on deploys to non-hardhat networks (#95)

Changed

  • Rename the awaitEvent action in the api to event (#108)

0.0.5 - 2022-12-20

Added

  • Add params section to deploy display in cli (#74)
  • Expose config for pollingInterval (#75)
  • Support getBytesForArtifact in deployment api (#76)
  • Support use of emitted event args as futures for later deployment api calls (#77)
  • Support event params futures in contractAt (#78)

Fixed

  • Fix for planning on modules with deploys from artifacts (#73)

0.0.4 - 2022-11-22

Added

  • Support setting module params from JSON file (#64)

0.0.3 - 2022-11-09

Added

  • Allow modules to depend on other calls (#53)
  • Allow depending on a module (#54)

Changed

  • Dependening on returned module contract equivalent to depending on the module (#55)

0.0.2 - 2022-10-26

Added

  • Add deploy task to hardhat via the plugin
  • Add plan task to hardhat via the plugin