UNPKG

hardhat-tracer

Version:

Hardhat Tracer plugin

42 lines (34 loc) 875 B
import { MinimalInterpreterStep } from "hardhat/internal/hardhat-network/provider/vm/types"; import { Item } from "../types"; import { colorLabel, colorMstore, colorValue, parseBytes32, shallowCopyStack2, } from "../utils"; export interface MSTORE { offset: string; value: string; } function parse(step: MinimalInterpreterStep): Item<MSTORE> { const stack = shallowCopyStack2(step.stack); if (stack.length < 2) { throw new Error("[hardhat-tracer]: Faulty MSTORE"); } const offset = parseBytes32(stack.pop()!); const value = parseBytes32(stack.pop()!); return { opcode: "MSTORE", params: { offset, value, }, }; } function format(item: Item<MSTORE>): string { return `${colorLabel("[MSTORE]")} ${colorMstore( item.params.offset )}${colorValue(item.params.value)}`; } export default { parse, format };