npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@solidstate/hardhat-bytecode-exporter

v1.1.1

Published

Export Ethereum smart contract bytecode on compilation

Downloads

334

Readme

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:

| option | description | default | | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------- | | path | path to bytecode export directory (relative to Hardhat root) | './bytecode' | | runOnCompile | whether to automatically export bytecode during compilation | false | | clear | whether to delete old bytecode files in path on compilation | false | | flat | whether to flatten output directory (may cause name collisions) | false | | only | Array of String matchers used to select included contracts, defaults to all contracts if length is 0 | [] | | except | Array of String matchers used to exclude contracts | [] | | rename | Function 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.