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
// Truffle installed globally
npm install -g eth-gas-reporter
// Truffle installed locally (ProTip: This always works.)
npm install --save-dev eth-gas-reporter
Configure for truffle
module.exports = {
networks: {
development: {
host: "localhost",
port: 8545,
network_id: "*"
}
},
mocha: {
reporter: 'eth-gas-reporter'
}
};
Examples
Usage Notes
- Euro/ETH rates are loaded at run-time from the
coinmarketcap
api - Gas prices are
safe-low
and loaded at run-time from the blockcypher
api - 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)
- Tests that make assumptions about the value of
block.timestamp
sometimes fail using this utility.
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.