@chainsafe/hardhat-ts-artifact-plugin
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

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;
  }
};

Package Sidebar

Install

npm i @chainsafe/hardhat-ts-artifact-plugin

Weekly Downloads

10

Version

1.0.0

License

MIT

Unpacked Size

16.8 kB

Total Files

23

Last publish

Collaborators

  • wemeetagain
  • mpetrunic