neo-decompiler 0.10.2

Neo N3 NEF decompiler: parse, disassemble, lift bytecode to high-level pseudocode and C# skeletons, with a CLI, JSON reports, and optional WebAssembly bindings.
Documentation
use crate::instruction::Instruction;

use super::body;

mod entry;
mod inferred;
mod manifest;
mod util;

pub(super) struct MethodsContext<'a> {
    pub(super) instructions: &'a [Instruction],
    pub(super) inferred_method_starts: &'a [usize],
    pub(super) body_context: body::LiftedBodyContext<'a>,
}

pub(super) fn write_manifest_methods(
    output: &mut String,
    manifest: &crate::manifest::ContractManifest,
    context: &MethodsContext<'_>,
    warnings: &mut Vec<String>,
) {
    manifest::write_manifest_methods(output, manifest, context, warnings);
}

pub(super) fn write_inferred_methods(
    output: &mut String,
    context: &MethodsContext<'_>,
    manifest: Option<&crate::manifest::ContractManifest>,
    warnings: &mut Vec<String>,
) {
    inferred::write_inferred_methods(output, context, manifest, warnings);
}

pub(super) fn write_fallback_entry(
    output: &mut String,
    context: &MethodsContext<'_>,
    warnings: &mut Vec<String>,
) {
    entry::write_fallback_entry(output, context, warnings);
}