A decompiler for The Open Network Virtual Machine (TVM) bytecode to Fift assembly.
yarn add @tact-lang/opcode
For most cases you will want to disassemble a BoC file generated by the Tact/FunC/Tolk compiler. In this case decompiler will unpack the dictionary to procedures and methods.
import {AssemblyWriter, disassembleRoot} from "@tact-lang/opcode"
// Disassemble a source file into a program AST
const program = disassembleRoot(source, {
computeRefs: false,
})
// Write the program AST into a Fift assembly string
const res = AssemblyWriter.write(program, {})
console.log(res)
If you want to decompile BoC file without unpacking of the dictionary, you can do the following:
import {AssemblyWriter, disassembleRawRoot} from "@tact-lang/opcode"
const program = disassembleRawRoot(source)
const res = AssemblyWriter.write(program, {})
console.log(res)
If you want to disassemble a single Cell into an array of opcodes, you can do the following:
import {disassemble} from "@tact-lang/opcode"
const opcodes = disassemble({source: cell})
MIT