Packaged Func compiler for TON smart contracts.
- ⭐️ Multiple func compiler versions
- 🚀 Doesn't need to install and compile TON
- 🍰 Programmatic and CLI interfaces
- 💸 Ready to use in unit-testing
latest
(default) - by default library and cli use latest available compilerv2022.10
v2022.12
v2023.01
legacy
- Legacy compiler
yarn add ton-compiler
This packages adds ton-compiler
binary to a project. FunC compilation is a multi-stage process. One is compiling Func to Fift code that then compiled to a binary representation. Fift compiler already have Asm.fif
bundled. Func stdlib is bundled, but could be disabled at runtime.
# Compile to binary form (for contract creation)
ton-compiler --input ./wallet.fc --output ./wallet.cell
# Compile to fift (useful for debuging)
ton-compiler --input ./wallet.fc --output-fift ./wallet.fif
# Compile to fift and fift
ton-compiler --input ./wallet.fc --output ./wallet.cell --output-fift ./wallet.fif
# Disable stdlib
ton-compiler --no-stdlib --input ./wallet.fc --output ./wallet.cell --output-fift ./wallet.fif
# Pick version
ton-compiler --version "legacy" --input ./wallet.fc --output ./wallet.cell --output-fift ./wallet.fif
import { compileContract } from "ton-compiler";
let result = await compileContract({ code: 'source code', stdlib: true, version: 'latest' });
if (result.ok) {
console.log(result.fift); // Compiled Fift assembler
console.log(result.cell); // Compiled cell Buffer
} else {
console.warn(result.logs); // Output logs
}
MIT