Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update dependency hardhat-gas-reporter to v2 #113

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Mar 14, 2024

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
hardhat-gas-reporter ^1.0.10 -> ^2.2.1 age adoption passing confidence

Release Notes

cgewecke/hardhat-gas-reporter (hardhat-gas-reporter)

v2.2.1: Fix L1 Etherscan api key logic

Compare Source

Bug Fixes

Recently, Etherscan began requiring an api key to fetch live gasPrice and baseFee data for Ethereum mainnet. This release fixes a bug in the way the L1Etherscan api key option was set which caused those data calls to fail.

Full Changelog: cgewecke/hardhat-gas-reporter@v2.2.0...v2.2.1

v2.2.0: Gas Golfing Support

Compare Source

New

This release adds a trackGasDeltas option.

When enabled, the reporter displays changes in gas usage between test runs - super useful for optimization work.

Many thanks to @​0xVolosnikov for writing this feature.

Screen Shot 2024-05-23 at 11 40 47 AM

Bugfixes

  • A bug that prevented correct identification of factory deployed contracts in some cases has been fixed. (Thanks to @​CSY54 for reporting and providing a nice reproduction case to add to the test suite).
PRs

New Contributors

Full Changelog: cgewecke/hardhat-gas-reporter@v2.1.1...v2.2.0

v2.1.1: Allow sub-gwei blobBaseFee

Compare Source

What's Changed

Full Changelog: cgewecke/hardhat-gas-reporter@v2.1.0...v2.1.1

v2.1.0: Arbitrum & Base L2 Network Support

Compare Source

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)
  • ⚠️ 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: cgewecke/hardhat-gas-reporter@v2.0.2...v2.1.0

v2.0.2: Fix crash with --parallel flag

Compare Source

What's Changed

Full Changelog: cgewecke/hardhat-gas-reporter@v2.0.1...v2.0.2

v2.0.1: Optimism Ecotone (EIP-4844)

Compare Source

What's Changed

Full Changelog: cgewecke/hardhat-gas-reporter@v2.0.0...v2.0.1

v2.0.0: : Optimism L2 & View/Pure Method Gas

Compare Source

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: cgewecke/hardhat-gas-reporter@v1.10.0...v2.0.0


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot force-pushed the renovate/hardhat-gas-reporter-2.x branch 2 times, most recently from 9dd82fd to d410bde Compare March 15, 2024 04:07
@renovate renovate bot force-pushed the renovate/hardhat-gas-reporter-2.x branch 2 times, most recently from 0bda0c1 to 908755d Compare April 6, 2024 02:19
@renovate renovate bot force-pushed the renovate/hardhat-gas-reporter-2.x branch from 908755d to d9e319a Compare May 24, 2024 04:15
@renovate renovate bot force-pushed the renovate/hardhat-gas-reporter-2.x branch from d9e319a to 888f86b Compare August 12, 2024 06:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants