0.1.1 • Published 6 years ago

@jaycenhorton/eth-gas-reporter v0.1.1

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

eth-gas-reporter

npm version Build Status

A mocha reporter for Truffle.

  • Gas usage per unit test.
  • Average gas usage per method.
  • Contract deployment costs.
  • Real currency costs.

screen shot 2017-10-28 at 1 29 52 pm

Install

// Requires mocha
npm install -g mocha

// Truffle installed globally
npm install -g eth-gas-reporter

// Truffle installed locally (ProTip: This always works.)
npm install --save-dev eth-gas-reporter

Truffle config

module.exports = {
  networks: {
    ...etc...
  },
  mocha: {
    reporter: 'eth-gas-reporter',
    reporterOptions : {
      currency: 'CHF',
      gasPrice: 21
    }
  }
};

Options

OptionTypeDefaultDescription
currencyString'EUR'National currency to represent gas costs in. Exchange rates loaded at runtime from the coinmarketcap api. Available currency codes can be found here.
gasPriceNumber(varies)Denominated in gwei. Default is loaded at runtime from the eth gas station api
outputFileStringstdoutFile path to write report output to
noColorsBooleanfalseSuppress report color. Useful if you are printing to file b/c terminal colorization corrupts the text.
onlyCalledMethodsBooleanfalseOmit methods that are never called from report.

Examples

Usage Notes

  • Method calls that throw are filtered from the stats.
  • Not currently shown in the deployments table:
    • Contracts that link to libraries
    • Contracts that never get instantiated within the tests (e.g: only deployed in migrations)
    • Contracts that are only ever created by other contracts within Solidity.
  • Tests run slower.

Credits

All the ideas in this utility have been borrowed from elsewhere. Many thanks to:

  • @maurelian - Mocha reporting gas instead of time is his idea.
  • @cag - The table borrows from / is based his gas statistics work for the Gnosis contracts.
  • Neufund - Block limit size ratios for contract deployments and euro pricing are borrowed from their ico-contracts test suite.

Contributors