1.0.0 • Published 11 months ago

@chainsafe/hardhat-ts-artifact-plugin v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

hardhat-ts-artifact-plugin

Plugin to generate artifacts in the typescript file to provide exact types of generated JSON objects.

Hardhat plugin.

What

This plugin generates non-generic types of JSON artifacts which can be used in Web3.js and Viem to get contract methods and events types (effectively replacing the need for Typechain). You can also use it to generate typescript files of your deployment information.

Example usage with web3.js:

import {Contract} from "web3"
import SimpleContract from "../artifacts/contracts/SimpleContract.sol/SimpleContract"

const contract = new Contract(SimpleContract.abi, "some address", web3)
//you now have available methods and events with their types
await contract.methods.simple().call()

Installation

up

npm install -s @chainsafe/hardhat-ts-artifact-plugin

Import the plugin in your hardhat.config.js:

require("@chainsafe/hardhat-ts-artifact-plugin");

Or if you are using TypeScript, in your hardhat.config.ts:

import "@chainsafe/hardhat-ts-artifact-plugin";

Tasks

This plugin adds the _ts-artifact__ task to Hardhat:

Hardhat version 2.14.0

Usage: hardhat [GLOBAL OPTIONS] ts-artifact [--dest <STRING>]

OPTIONS:

  --dest        Path do directory where typescript artifacts should be created. Defaults to location next to artifacts json file 

ts-artifact: 

For global options help run: hardhat help

Configuration

This plugin extends the HardhatConfig object with an optional ts-artifact field.

This is an example of how to set it:

module.exports = {
  ts-artifact: {
    // additional json files to include. Resolves from project root
    additionalArtifacts: [],
    // defaults to location next to artifact json
    destination: undefined,
    removeDestinationOnClean: true;
  }
};