@nomicfoundation/hardhat-ignition-viem
Version:
The Viem extension to Hardhat Ignition. 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
41 lines (26 loc) • 1.21 kB
Markdown
This plugin integrates [Hardhat Ignition](https://hardhat.org/ignition) with [viem](https://viem.sh).
> This plugin is part of the [Viem Hardhat Toolbox](https://hardhat.org/plugins/nomicfoundation-hardhat-toolbox-viem). If you are using that toolbox, there's nothing else you need to do.
To install this plugin, run the following command:
```bash
npm install --save-dev @nomicfoundation/hardhat-ignition-viem
```
In your `hardhat.config.ts` file, import the plugin and add it to the `plugins` array:
```ts
import hardhatIgnitionViem from "@nomicfoundation/hardhat-ignition-viem";
export default {
plugins: [hardhatIgnitionViem],
};
```
This plugin adds an `ignition` property to each network connection:
```ts
import { network } from "hardhat";
import Counter from "../ignition/modules/Counter.js";
const { ignition } = await network.connect();
const { counter } = await ignition.deploy(Counter);
await counter.write.inc();
console.log(await counter.read.x());
```
The `ignition` object has a `deploy` method that can be used to deploy Ignition modules. This returns a **type-safe** viem contract instance for each contract returned by the module.