hardhat-tracer
Version:
Hardhat Tracer plugin
40 lines • 1.53 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.formatResult = void 0;
const ethers_1 = require("ethers");
const utils_1 = require("ethers/lib/utils");
const colors_1 = require("../utils/colors");
const param_1 = require("./param");
function formatResult(result, params, { decimals, shorten }, dependencies) {
decimals = decimals ?? -1;
shorten = shorten ?? false;
let stringifiedArgs = [];
if (params) {
// use abi params to query the keys
for (let i = 0; i < params.length; i++) {
const param = params[i];
const name = param.name ?? `arg_${i}`;
let value;
if (decimals !== -1 && ethers_1.BigNumber.isBigNumber(result[i])) {
value = (0, utils_1.formatUnits)(result[i], decimals);
}
else {
value = (0, param_1.formatParam)(result[i], dependencies);
}
stringifiedArgs.push([name, value]);
}
}
else {
// consider all the entries in the object
stringifiedArgs = Object.entries(result)
.filter(([key]) => isNaN(Number(key)))
.map(([key, value]) => [key, (0, param_1.formatParam)(value, dependencies)]);
}
return `${stringifiedArgs
.map((entry) => `${stringifiedArgs.length > 1 || !shorten
? (0, colors_1.colorKey)(`${entry[0]}: `)
: ""}${entry[1]}`)
.join(", ")}`;
}
exports.formatResult = formatResult;
//# sourceMappingURL=result.js.map