Socket
Socket
Sign inDemoInstall

hardhat-abi-exporter

Package Overview
Dependencies
281
Maintainers
1
Versions
26
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    hardhat-abi-exporter

Export Ethereum smart contract ABIs on compilation


Version published
Weekly downloads
5.4K
decreased by-21.79%
Maintainers
1
Install size
2.54 MB
Created
Weekly downloads
 

Readme

Source

Hardhat ABI Exporter

Export Ethereum smart contract ABIs on compilation via Hardhat.

Versions of this plugin prior to 2.0.0 were released as buidler-abi-exporter.

Installation

npm install --save-dev hardhat-abi-exporter
# or
yarn add --dev hardhat-abi-exporter

Usage

Load plugin in Hardhat config:

require('hardhat-abi-exporter');

Add configuration under the abiExporter key:

optiondescriptiondefault
pathpath to ABI export directory (relative to Hardhat root)'./abi'
runOnCompilewhether to automatically export ABIs during compilationfalse
clearwhether to delete old ABI files in path on compilationfalse
flatwhether to flatten output directory (may cause name collisions)false
onlyArray of String matchers used to select included contracts, defaults to all contracts if length is 0[]
exceptArray of String matchers used to exclude contracts[]
spacingnumber of spaces per indentation level of formatted output2
prettywhether to use interface-style formatting of output for better readabilityfalse
formatformat type ("json", "minimal", "fullName"). Alternative to prettyjson
filterFunction with signature (abiElement: any, index: number, abi: any, fullyQualifiedName: string) => boolean used to filter elements from each exported ABI() => true
renameFunction with signature (sourceName: string, contractName: string) => string used to rename an exported ABI (incompatible with flat option)undefined

Note that the configuration formatted as either a single Object, or an Array of objects. An Array may be used to specify multiple outputs.

abiExporter: {
  path: './data/abi',
  runOnCompile: true,
  clear: true,
  flat: true,
  only: [':ERC20$'],
  spacing: 2,
  pretty: true,
  format: "minimal",
}

// or

abiExporter: [
  {
    path: './abi/pretty',
    pretty: true,
  },
  {
    path: './abi/ugly',
    pretty: false,
  },
]

// or

abiExporter: [
  {
    path: './abi/json',
    format: "json",
  },
  {
    path: './abi/minimal',
    format: "minimal",
  },
  {
    path: './abi/fullName',
    format: "fullName",
  },
]

The included Hardhat tasks may be run manually:

npx hardhat export-abi
npx hardhat clear-abi
# or
yarn run hardhat export-abi
yarn run hardhat clear-abi

By default, the hardhat compile task is run before exporting ABIs. This behavior can be disabled with the --no-compile flag:

npx hardhat export-abi --no-compile
# or
yarn run hardhat export-abi --no-compile

The path directory will be created if it does not exist.

The clear option is set to false by default because it represents a destructive action, but should be set to true in most cases.

ABIs files are saved in the format [CONTRACT_NAME].json.

Keywords

FAQs

Last updated on 14 Oct 2022

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc