neo-decompiler 0.11.0

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
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://github.com/r3e-network/neo-decompiler/docs/schema/info.schema.json",
  "title": "neo-decompiler info report",
  "type": "object",
  "required": [
    "file",
    "compiler",
    "script_length",
    "script_hash_le",
    "script_hash_be",
    "checksum",
    "method_tokens",
    "warnings"
  ],
  "properties": {
    "file": {"type": "string"},
    "manifest_path": {"type": ["string", "null"]},
    "compiler": {"type": "string"},
    "source": {"type": ["string", "null"]},
    "script_length": {"type": "integer", "minimum": 0},
    "script_hash_le": {"type": "string", "pattern": "^[0-9A-F]{40}$"},
    "script_hash_be": {"type": "string", "pattern": "^[0-9A-F]{40}$"},
    "checksum": {"type": "string", "pattern": "^0x[0-9A-F]{8}$"},
    "method_tokens": {
      "type": "array",
      "items": {"$ref": "#/definitions/methodToken"}
    },
    "manifest": {
      "oneOf": [
        {"$ref": "#/definitions/manifestSummary"},
        {"type": "null"}
      ]
    },
    "warnings": {
      "type": "array",
      "items": {"type": "string"}
    }
  },
  "definitions": {
    "methodToken": {
      "type": "object",
      "required": ["method", "hash_le", "hash_be", "parameters", "returns", "call_flags", "call_flags_description", "call_flag_labels", "returns_value"],
      "properties": {
        "method": {"type": "string"},
        "hash_le": {"type": "string", "pattern": "^[0-9A-F]{40}$"},
        "hash_be": {"type": "string", "pattern": "^[0-9A-F]{40}$"},
        "parameters": {"type": "integer", "minimum": 0},
        "returns": {"type": "boolean"},
        "call_flags": {"type": "integer", "minimum": 0, "maximum": 255},
        "call_flags_description": {"type": "string"},
        "call_flag_labels": {
          "type": "array",
          "items": {"type": "string"}
        },
        "returns_value": {"type": "boolean"},
        "native_contract": {
          "oneOf": [
            {"$ref": "#/definitions/nativeContract"},
            {"type": "null"}
          ]
        },
        "warning": {"type": ["string", "null"]}
      }
    },
    "nativeContract": {
      "type": "object",
      "required": ["contract", "label"],
      "properties": {
        "contract": {"type": "string"},
        "method": {"type": ["string", "null"]},
        "label": {"type": "string"}
      }
    },
    "manifestSummary": {
      "type": "object",
      "required": [
        "name",
        "supported_standards",
        "features",
        "groups",
        "methods",
        "events",
        "permissions",
        "abi"
      ],
      "properties": {
        "name": {"type": "string"},
        "supported_standards": {
          "type": "array",
          "items": {"type": "string"}
        },
        "features": {"type": "object"},
        "groups": {
          "type": "array",
          "items": {"$ref": "#/definitions/groupSummary"}
        },
        "methods": {"type": "integer", "minimum": 0},
        "events": {"type": "integer", "minimum": 0},
        "permissions": {
          "type": "array",
          "items": {"$ref": "#/definitions/permissionSummary"}
        },
        "trusts": {
          "oneOf": [
            {"$ref": "#/definitions/trustSummary"},
            {"type": "null"}
          ]
        },
        "abi": {"$ref": "#/definitions/abiSummary"}
      }
    },
    "permissionSummary": {
      "type": "object",
      "required": ["contract", "methods"],
      "properties": {
        "contract": {"$ref": "#/definitions/permissionContract"},
        "methods": {"$ref": "#/definitions/permissionMethods"}
      }
    },
    "groupSummary": {
      "type": "object",
      "required": ["pubkey", "signature"],
      "properties": {
        "pubkey": {"type": "string"},
        "signature": {"type": "string"}
      }
    },
    "permissionContract": {
      "type": "object",
      "required": ["type"],
      "properties": {
        "type": {
          "type": "string",
          "enum": ["Wildcard", "Hash", "Group", "Other"]
        },
        "value": {
          "type": ["string", "number", "boolean", "object", "array", "null"]
        }
      }
    },
    "permissionMethods": {
      "type": "object",
      "required": ["type", "value"],
      "properties": {
        "type": {"type": "string", "enum": ["Wildcard", "Methods"]},
        "value": {
          "oneOf": [
            {"type": "string"},
            {
              "type": "array",
              "items": {"type": "string"}
            }
          ]
        }
      }
    },
    "trustSummary": {
      "type": "object",
      "required": ["type"],
      "properties": {
        "type": {
          "type": "string",
          "enum": ["Wildcard", "Contracts", "Other"]
        },
        "value": {
          "oneOf": [
            {"type": "string"},
            {
              "type": "array",
              "items": {"type": "string"}
            },
            {"type": "object"},
            {"type": "null"}
          ]
        }
      }
    },
    "abiSummary": {
      "type": "object",
      "required": ["methods", "events"],
      "properties": {
        "methods": {
          "type": "array",
          "items": {"$ref": "#/definitions/abiMethod"}
        },
        "events": {
          "type": "array",
          "items": {"$ref": "#/definitions/abiEvent"}
        }
      }
    },
    "abiMethod": {
      "type": "object",
      "required": ["name", "parameters", "return_type", "safe"],
      "properties": {
        "name": {"type": "string"},
        "parameters": {
          "type": "array",
          "items": {"$ref": "#/definitions/abiParameter"}
        },
        "return_type": {"type": "string"},
        "safe": {"type": "boolean"},
        "offset": {"type": ["integer", "null"]}
      }
    },
    "abiEvent": {
      "type": "object",
      "required": ["name", "parameters"],
      "properties": {
        "name": {"type": "string"},
        "parameters": {
          "type": "array",
          "items": {"$ref": "#/definitions/abiParameter"}
        }
      }
    },
    "abiParameter": {
      "type": "object",
      "required": ["name", "ty"],
      "properties": {
        "name": {"type": "string"},
        "ty": {"type": "string"}
      }
    }
  }
}