hardhat-tracer
Version:
Hardhat Tracer plugin
43 lines • 1.84 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const debug_1 = __importDefault(require("debug"));
const config_1 = require("hardhat/config");
const call_1 = require("../format/call");
const error_1 = require("../format/error");
const utils_1 = require("../utils");
const debug = (0, debug_1.default)("hardhat-tracer:tasks:decode");
(0, utils_1.addCliParams)((0, config_1.task)("decode", "Decodes calldata or error data"))
.addParam("data", "Calldata or error data to decode")
.addOptionalParam("returndata", "Return data if any")
.setAction(async (args, hre) => {
const td = {
artifacts: hre.artifacts,
tracerEnv: hre.tracer,
provider: hre.network.provider,
nameTags: hre.tracer.nameTags,
};
debug("see if the data is a call");
const formattedCallPromise = (0, call_1.formatCall)(undefined, args.data, args.returndata ?? "0x", 0, 0, 0, true, td);
const formattedErrorPromise = (0, error_1.formatError)(args.data, td);
const formattedCall = await formattedCallPromise;
const uncolored = (0, utils_1.removeColor)(formattedCall);
if (!uncolored.startsWith("UnknownContractAndFunction(") &&
!uncolored.includes("<UnknownFunction>")) {
console.log(formattedCall);
}
else {
debug("see the data is an error");
const formattedError = await formattedErrorPromise;
if (!(0, utils_1.removeColor)(formattedError).includes("UnknownError(")) {
console.log(formattedError);
}
else {
console.log("Failed to decode the data");
console.log(formattedCall);
}
}
});
//# sourceMappingURL=decode.js.map