@semaphore-protocol/hardhat
TypeScript icon, indicating that this package has built-in type declarations

4.0.0-beta.9 • Public • Published

Semaphore Hardhat plugin

A Semaphore Hardhat plugin to deploy Semaphore contracts.

NPM license NPM version Downloads Linter eslint Code style prettier

This Hardhat plugin provides two simple tasks that can be used to deploy Semaphore contracts without any additional configuration.

🛠 Install

npm or yarn

Install the @semaphore-protocol/hardhat package with npm:

npm i @semaphore-protocol/hardhat

or yarn:

yarn add @semaphore-protocol/hardhat

📜 Usage

Import the plugin in your hardhat.config.ts file:

import "@semaphore-protocol/hardhat"
import "./tasks/deploy"

const hardhatConfig: HardhatUserConfig = {
    solidity: "0.8.4"
}

export default hardhatConfig

And use its tasks to create your own deploy task and deploy your contract with a Semaphore address.

import { task, types } from "hardhat/config"

task("deploy", "Deploy a Greeter contract")
    .addOptionalParam("logs", "Print the logs", true, types.boolean)
    .setAction(async ({ logs }, { ethers, run }) => {
        const { semaphore } = await run("deploy:semaphore", {
            logs
        })

        // Or:
        // const { semaphoreVerifier } = await run("deploy:semaphore-verifier", {
        //    logs
        // })

        const Greeter = await ethers.getContractFactory("Greeter")

        const greeter = await Greeter.deploy(semaphore.address)

        await greeter.deployed()

        if (logs) {
            console.log(`Greeter contract has been deployed to: ${greeter.address}`)
        }

        return greeter
    })

Readme

Keywords

none

Package Sidebar

Install

npm i @semaphore-protocol/hardhat

Weekly Downloads

61

Version

4.0.0-beta.9

License

MIT

Unpacked Size

14.7 kB

Total Files

10

Last publish

Collaborators

  • vplasencia
  • cedoor