Hardhat Gas Reporter Versions Save

Gas Usage Analytics for Hardhat

v2.1.1

1 month ago

What's Changed

Full Changelog: https://github.com/cgewecke/hardhat-gas-reporter/compare/v2.1.0...v2.1.1

v2.1.0

1 month ago

What's New

  • Arbitrum and Base have been added to the list of L2 networks the gas reporter can emulate
    gasReporter: {
      L2: "arbitrum" | "base" | "optimism",
      L2Etherscan: "ABC....",
      coinmarketcap: "abc...",
    }
    
  • blobBaseFee is now fetched directly from the OP stack GasOracle contracts (should be accurate)
  • :warning: To get live blobBaseFee prices for L2 emulation you'll need to set the L2Etherscan api key option.
  • the JSON output object now includes a separate intrinsic gas measurement for each transaction. This could be convenient if you want to do more complex post-processing with the gas data.

What's changed

Full Changelog: https://github.com/cgewecke/hardhat-gas-reporter/compare/v2.0.2...v2.1.0

v2.0.2

2 months ago

What's Changed

Full Changelog: https://github.com/cgewecke/hardhat-gas-reporter/compare/v2.0.1...v2.0.2

v2.0.1

2 months ago

What's Changed

Full Changelog: https://github.com/cgewecke/hardhat-gas-reporter/compare/v2.0.0...v2.0.1

v2.0.0

2 months ago

Screen Shot 2024-03-14 at 12 48 35 PM

What's New

  • Configuration for chains with Etherscan support has been simplified to a single key. Just set the L1 option to one of the supported networks and the reporter will take care of the rest. (You'll still need a coinmarketcap api key)

    gasReporter: {
      L1: "gnosis",
      coinmarketcap: "abc...",
    }
    
  • Gas reporting for L2 networks is coming online, starting with Optimism.

    gasReporter: {
      L2: "optimism",
      coinmarketcap: "abc...",
    }
    
  • Gas metrics for view and pure methods are now available as an option. You can also exclude intrinsic gas costs for state-changing methods. (⚠️ There are performance hits when the view and pure options are enabled)

    gasReporter: {
      // Debits intrinsic gas for state-changing method calls in order to model contracts
      // that will never be called by an EOA
      includeIntrinsicGas: false,
    
      // This option executes an additional `eth_estimateGas` for every `eth_call`
      // detected by the reporter. If you have 1000's of tests setting it to true has a
      // noticeable performance impact
      reportPureAndViewMethods: true,
    
      // This option can add SIGNIFICANT LAG to test startup time if you have
      // 100's of contracts in your project. (It parses all the sources in your dependency tree
      // to identify state variable declarations)
      excludeAutoGeneratedGetters: true,
    }
    
  • There are multiple report formats, including markdown.

  • The reporter now supports sub-gwei gas prices. Sub-penny cost display is possible by configuring the currencyDisplayPrecision option

  • Dedicated support for the OpenZeppelin Upgrades plugin has been added. (Their proxy pattern often resulted in missing gas data because the reporter didn't know what contract was being called - that's all handled under the hood now.)

  • Dedicated support for the hardhat-viem plugin has been added (this was broken and should be fixed by this release)

  • There are many new output, display and low-level options - check out the Config Examples section of the docs

  • There's additional support for custom proxy contract resolution. If you're routing your calls through contract middleware you can configure the reporter to understand how that works and get the data you expect.

  • Additionally:

    • eth-gas-reporter's logic has been ported here and translated to Typescript
    • The plugin has been decoupled from Mocha so it can be seamlessly integrated with lots of other tasks or test frameworks
    • There have been big architectural changes and testing improvements and additional features are in the pipeline

Breaking

  • Codechecks support was removed because it hasn't been accepting users for a while. I loved codechecks. (Building a github action for the reporter is on the V2 roadmap though).
  • The JSON object emitted by the reporter has changed to reflect the plugin's internal types. If you've been post-processing that data you'll need to look at the JSON Output docs and update your logic.
  • The gas-reporter:merge task has been renamed hhgas:merge
  • The onlyCalledMethods option has been renamed showUncalledMethods and must be set to true (if you want that).

Funding

Work on V2 was funded in part by OpenZeppelin via DRIPS, a public goods protocol that helps direct funding to packages in your dependency tree. If you're using DRIPS and want to add hardhat-gas-reporter to the packages you support its page is here.

Full Changelog: https://github.com/cgewecke/hardhat-gas-reporter/compare/v1.10.0...v2.0.0

v1.10.0

3 months ago

What's Changed

Fixes

Dependabot

Full Changelog: https://github.com/cgewecke/hardhat-gas-reporter/compare/v1.0.9...v1.10.0

v1.0.9-viem.0

3 months ago

This pre-release contains a work-around patch to make the gas reporter work with Hardhat's viem tooling. It can be installed with:

npm install --save-dev hardhat-gas-reporter@viem

⚠️ Important: for the plugin to work correctly, it must be listed before the hardhat-viem plugin in hardhat.config.ts e.g

import "hardhat-gas-reporter" // <--- first
import "@nomicfoundation/hardhat-toolbox-viem"

There is ongoing work to make this part of the normally published package in #167 but it will not be released until v2.0 (probably end of February at the earliest).

v1.0.9

1 year ago

What's Changed

Full Changelog: https://github.com/cgewecke/hardhat-gas-reporter/compare/v1.0.8...v1.0.9

v1.0.8

2 years ago
  • Skip gas reporting when --parallel flag detected #101

v1.0.7

2 years ago
  • #84
  • rest in peace aaron swartz (not in a conspiracy theory way... just rip)