30 lines
927 B
TypeScript
30 lines
927 B
TypeScript
/*
|
|
|
|
Copyright 2020 DODO ZOO.
|
|
SPDX-License-Identifier: Apache-2.0
|
|
|
|
*/
|
|
|
|
export const blueText = x => `\x1b[36m${x}\x1b[0m`;
|
|
export const yellowText = x => `\x1b[33m${x}\x1b[0m`;
|
|
export const greenText = x => `\x1b[32m${x}\x1b[0m`;
|
|
export const redText = x => `\x1b[31m${x}\x1b[0m`;
|
|
export const numberWithCommas = x => x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
|
|
|
|
export async function logGas(funcCall: any, params: any, desc: string) {
|
|
const estimatedGas = await funcCall.estimateGas(params)
|
|
const receipt = await funcCall.send(params)
|
|
const gasUsed = receipt.gasUsed;
|
|
let colorFn;
|
|
|
|
if (gasUsed < 80000) {
|
|
colorFn = greenText;
|
|
} else if (gasUsed < 200000) {
|
|
colorFn = yellowText;
|
|
} else {
|
|
colorFn = redText;
|
|
}
|
|
|
|
console.log(("Gas estimated:" + numberWithCommas(estimatedGas)).padEnd(60, '.'), blueText(desc) + " ", colorFn(numberWithCommas(gasUsed).padStart(5)));
|
|
return receipt
|
|
} |