@jaycenhorton/eth-gas-reporter
v0.1.1
Published
Mocha reporter which shows gas used per unit test.
Downloads
5
Maintainers
Readme
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
// 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
| 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
- 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.