A Hardhat Plugin To Test Huff Contracts
npm install huff-deployer --save-dev
You need to have the Huff compiler (Rust version) installed in your machine. To install the compiler go to: https://github.com/huff-language/huff-rs
Add the following to your hardhat.config.js
file:
require("huff-deployer");
If you are using TypeScript, add the following to your hardhat.config.ts
file:
import "huff-deployer";
Then on your test file, import huffDeployer and deploy your Huff contract:
import { expect } from "chai";
import { ethers } from "hardhat";
import { huffDeployer } from "hardhat";
describe("Owned", () => {
it("should change the owner", async () => {
const [owner, newOwner] = await ethers.getSigners();
const owned = await huffDeployer.deploy("Owned", false,
[owner.address]); // <--- Deploy the contract
expect(await owned.owner()).to.equal(owner.address);
await owned.setOwner(newOwner.address);
expect(await owned.owner()).to.equal(newOwner.address);
});
});
huffDeployer.deploy accepts 3 arguments:
- targetContract: The name of the Huff contract.
- generateSolidityInterface (optional): Optionally generates a Solidity interface.
- constructorArgs (optional): The constructor arguments.
- signer (optional): It will default to Hardhat's signer 0.
Check the examples folder for a more comprehensive view.
MIT