diff --git a/scripts/checks/compareGasReports.js b/scripts/checks/compareGasReports.js index c3bfd99ca..77ad50ba3 100755 --- a/scripts/checks/compareGasReports.js +++ b/scripts/checks/compareGasReports.js @@ -24,11 +24,11 @@ function average (...args) { return sum(...args) / args.length; } -function variation (current, previous) { +function variation (current, previous, offset = 0) { return { value: current, delta: current - previous, - prcnt: 100 * (current - previous) / (previous - BASE_TX_COST), + prcnt: 100 * (current - previous) / (previous - offset), }; } @@ -58,7 +58,7 @@ class Report { }, { contract: contract.name, method: '[construction cost]', - avg: variation(...[contract.gasData, contract.previousVersion.gasData].map(x => Math.round(average(...x)))), + avg: variation(...[contract.gasData, contract.previousVersion.gasData].map(x => Math.round(average(...x))), BASE_TX_COST), }]) .sort((a, b) => `${a.contract}:${a.method}`.localeCompare(`${b.contract}:${b.method}`)); @@ -69,9 +69,9 @@ class Report { .map(key => ({ contract: ref.info.methods[key].contract, method: ref.info.methods[key].fnSig, - min: variation(...[update, ref].map(x => Math.min(...x.info.methods[key].gasData))), - max: variation(...[update, ref].map(x => Math.max(...x.info.methods[key].gasData))), - avg: variation(...[update, ref].map(x => Math.round(average(...x.info.methods[key].gasData)))), + min: variation(...[update, ref].map(x => Math.min(...x.info.methods[key].gasData)), BASE_TX_COST), + max: variation(...[update, ref].map(x => Math.max(...x.info.methods[key].gasData)), BASE_TX_COST), + avg: variation(...[update, ref].map(x => Math.round(average(...x.info.methods[key].gasData))), BASE_TX_COST), })) .sort((a, b) => `${a.contract}:${a.method}`.localeCompare(`${b.contract}:${b.method}`));