An open API service indexing awesome lists of open source software.

https://github.com/tact-lang/ton-opcode

Decompiler of BOC files
https://github.com/tact-lang/ton-opcode

disassembler ton tvm

Last synced: 6 months ago
JSON representation

Decompiler of BOC files

Awesome Lists containing this project

README

          

# TON Opcodes

A decompiler for The Open Network Virtual Machine (TVM) bytecode to Fift assembly.

## Installation

```bash
yarn add @tact-lang/opcode
```

## Usage

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.

```typescript
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:

```typescript
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:

```typescript
import {disassemble} from "@tact-lang/opcode"

const opcodes = disassemble({source: cell})
```

## Thanks to

- [Steve Korshakov](https://github.com/ex3ndr)
- [Nick Nekilov](https://github.com/NickNekilov)
- [Vladimir Lebedev](https://github.com/hacker-volodya)

## License

MIT