eth-gas-reporter
A mocha reporter for Truffle.
- Gas usage per unit test.
- Average gas usage per method.
- Contract deployment costs.
- Real currency costs.
Install
npm install -g mocha
npm install -g eth-gas-reporter
npm install --save-dev eth-gas-reporter
Truffle config
module.exports = {
networks: {
...etc...
},
mocha: {
reporter: 'eth-gas-reporter',
reporterOptions : {
currency: 'CHF',
gasPrice: 21
}
}
};
Options
Option | Type | Default | Description |
---|
currency | String | 'EUR' | National currency to represent gas costs in. Exchange rates loaded at runtime from the coinmarketcap api. Available currency codes can be found here. |
gasPrice | Number | (varies) | Denominated in gwei . Default is loaded at runtime from the eth gas station api |
outputFile | String | stdout | File path to write report output to |
noColors | Boolean | false | Suppress report color. Useful if you are printing to file b/c terminal colorization corrupts the text. |
onlyCalledMethods | Boolean | false | Omit methods that are never called from report. |
Examples
Usage Notes
- Requires Node >= 8.
- Method calls that throw are filtered from the stats.
- Not currently shown in the
deployments
table:
- 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.
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