🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Sign inDemoInstall
Socket

func-ton

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

func-ton

The TON FunC smart-contract compiler

0.2.1
latest
Source
npm
Version published
Weekly downloads
3
200%
Maintainers
1
Weekly downloads
 
Created
Source

TON FunC compiler

PRs Welcome Version npm

Cross-platform bindings for TON FunC compiler.

Features

  • 🚀 No need to compile of download FunC binaries
  • 📦 Works both in Node.js & WEB (WASM support is required)
  • ⚙️ Compiles straight to BOC with code Cell
  • ⚙️ Assembly is returned fot debugging purposes
  • 📁 Does not depend on file-system

How it works

Internally this package uses both FunC compiler and Fift interpreter combined to single lib compiled to WASM.

Simple schema:

(your code) -> WASM(FunC -> Fift -> BOC)

Sources for the internal lib could be found here.

Install

yarn add @ton-community/func-js

or

npm i @ton-community/func-js

Usage example

import {compileFunc, compilerVersion} from '@ton-community/func-js';
import {Cell} from 'ton';

async function main() {
    // You can get compiler version 
    let version = await compilerVersion();
    
    let result = await compileFunc({
        // Entry points of your project
        entryPoints: ['main.fc'],
        // // Sources
        // sources: {
        //     "stdlib.fc": "<stdlibCode>",
        //     "main.fc": "<contractCode>",
        //     // Rest of the files which are included in main.fc if some
        // }
    });

    if (result.status === 'error') {
        console.error(result.message)
        return;
    }

    // result.codeBoc contains base64 encoded BOC with code cell 
    let codeCell = Cell.fromBoc(Buffer.from(result.codeBoc, "base64"))[0];
    
    // result.fiftCode contains assembly version of your code (for debug purposes)
    console.log(result.fiftCode)
}

Note that all FunC source files contents used in your project should be passed to sources, including:

  • entry points
  • stdlib.fc (if you use it)
  • all files included in entry points

License

This package is released under the MIT License.

FAQs

Package last updated on 12 Oct 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts