1.1.1 • Published 2 years ago

@solidstate/hardhat-bytecode-exporter v1.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

Hardhat Bytecode Exporter

Export Ethereum smart contract bytecode on compilation via Hardhat.

Installation

npm install --save-dev @solidstate/hardhat-bytecode-exporter
# or
yarn add --dev @solidstate/hardhat-bytecode-exporter

Usage

Load plugin in Hardhat config:

require("@solidstate/hardhat-bytecode-exporter");

Add configuration under the bytecodeExporter key:

optiondescriptiondefault
pathpath to bytecode export directory (relative to Hardhat root)'./bytecode'
runOnCompilewhether to automatically export bytecode during compilationfalse
clearwhether to delete old bytecode 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[]
renameFunction with signature (sourceName: string, contractName: string) => string used to rename an exported bytecode (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.

bytecodeExporter: {
  path: './data',
  runOnCompile: true,
  clear: true,
  flat: true,
  only: [':ERC20$'],
}

// or

bytecodeExporter: [
  {
    path: './only',
    runOnCompile: true,
    only: [':ERC20$'],
  },
  {
    path: './except',
    except: [':ERC20$'],
  },
]

The included Hardhat tasks may be run manually:

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

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

npx hardhat export-bytecode --no-compile
# or
yarn run hardhat export-bytecode --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.

Bytecode files are saved as a flat bin file in the format [CONTRACT_NAME].bin.