neo-decompiler 0.6.2

Minimal tooling for inspecting Neo N3 NEF bytecode
Documentation
import { renderPseudocode } from "./pseudocode.js";
import { sanitizeIdentifier } from "./manifest.js";

export function renderGroupedPseudocode(groups, manifest) {
  const contractName = manifest ? sanitizeIdentifier(manifest.name) : "Contract";
  let output = `contract ${contractName} {\n`;

  for (const group of groups) {
    output += `    fn ${group.name}() {\n`;
    const body = renderPseudocode(group.instructions)
      .trimEnd()
      .split("\n")
      .filter(Boolean);
    for (const line of body) {
      output += `        ${line}\n`;
    }
    output += "    }\n";
  }

  output += "}\n";
  return output;
}