使用TON电报链Func合约源码框架模板部署Ton上的智能合约并完成合约的交互

  • A+
所属分类:TheOpenNetwork(TON)

chatGPT账号

一、说明

Ton电报链上的合约开发区别与传统ETH以及侧链上的支持ERC方式的solidity合约开发。solidity是一种面向对象的开发语言,类似于c++,java等可读性较高,而FUNC是一种介于汇编和c语言之间的一种面向过程的开发语言。TON链之所以有如此高的执行效率和吞吐率正是得益于FUNC语言的高性能优势。但是,FUNC也因为高性能而牺牲了程序的可读性和易于编码的特点,导致FUNC语言的开发难度要高于传统的solidity智能合约开发。

另外,由于FUNC是专门为TON链设计的开发语言,相关的功能类库还比较少,真正方便可用的类库更是屈指可数。以下教程是FUNC语言开发的模板源码,通过该源码框架可以降低Func合约开发的难度。以下是详细的操作流程。

使用TON电报链Func合约源码框架模板部署Ton上的智能合约并完成合约的交互

二、FUNC源码模板框架使用详情操作

TON 入门模板

新 TON 项目的入门模板 - FunC 合约、JS 测试、编译和部署脚本

概述

该项目是 TON 区块链上运行的区块链 dapp 所需的 3 个典型存储库的一部分:

  • FunC 中部署在链上的智能合约(此 repo)
  • 用于通过 Web 浏览器与 dapp 交互的 Web 前端(即将推出)
  • Telegram 机器人用于从 Telegram 通讯程序内部与 dapp进行交互

这个 repo 包含什么?

  • contracts/*.fc- 使用FunC语言编写的 TON 区块链智能合约
  • test/*.spec.ts- 在Mocha测试运行器上运行的 TypeScript 契约测试套件
  • build/_build.ts- 构建脚本将 FunC 代码编译为Fift和TVM操作码
  • build/_deploy.ts- 部署脚本,将编译后的代码部署到 TON 主网(或测试网)
  • build/_setup.ts- 安装脚本来安装构建依赖项(主要用于 Glitch.com 支持)

没有一种官方的方法来开发 TON 智能合约。每个开发人员都有自己的最佳实践。这种设置绝对是主观的,有些开发人员可能不欣赏所做的选择。尽管如此,我们坚持在这里做出的每一个选择,并相信这是以最无缝的方式开发经过全面测试的合约的最佳设置。

这里做出的一些主观选择包括:

  • 跨平台支持——允许开发人员在 Mac M1、Mac Intel、Windows 或 Linux 上工作
  • 坚信测试 - 合同通常管理资金 - 必须在严格审查下制定
  • 清晰且记录的代码可帮助用户审核合约来源并了解其作用
  • 依靠现代 TypeScript 在现代框架中开发干净且类型化的脚本和测试
  • 依赖 TypeScript 进行部署,而不是使用fiftCLI 工具——这样更简单
  • 测试使用 TVM 在 web-assembly 中以 JavaScript 执行 - 速度和便利性的完美平衡
  • 遵循官方文档中出现的 TON 合约最佳实践

依赖项和要求

要设置本地机器进行开发,请确保您具有以下条件:

  • Node.js 的现代版本(16.15.0 或更高版本)
    • 安装说明可在此处找到
    • 在终端中运行node -v以验证您的安装,该项目已在v17.3.0
  • CLI工具func(FunC 编译器)
    • 安装说明可在此处找到
    • 在终端中运行func -V以验证您的安装
  • fiftCLI 工具
    • 安装说明可在此处找到
    • FIFTPATH不要忘记在上面的安装过程中设置环境变量
    • 在终端中运行fift -Vfift验证您的安装
  • 一款不错的 IDE,支持 FunC 和 TypeScript
    • 我们建议使用安装了FunC 插件的Visual Studio Code

本地机器准备就绪后,安装项目:

  • Git 将 repo 克隆到本地,并将目录重命名为你自己的项目名称
  • 在根 repo 目录中,在终端中运行npm install

或者,您可以忽略上述要求,直接在 Web 浏览器内使用在线 IDE 进行开发,无需任何设置。只需在Glitch内打开此 repo,无需安装任何东西:

  • 在浏览器中打开此链接,创建新的 Glitch 工作区
  • 等待大约 60 秒,直到安装完成
    (单击 IDE 底部的“LOGS”按钮查看进度)
  • 在在线 IDE 中编辑合约文件和测试
  • 要运行终端命令,请npm run build单击在线 IDE 底部的“终端”按钮
  • 在线工作很慢!如果您想要更快的体验,请在本地机器上运行

使用TON电报链Func合约源码框架模板部署Ton上的智能合约并完成合约的交互

开发说明

  • 编写代码

    • TL-B文件定义其数据和消息操作的编码contracts/mycontract.tld
    • TypeScript 文件,用于实现其数据和消息操作的编码contracts/mycontract.ts
    • 独立根合约位于contracts/*.fc
    • 共享导入(当将代码拆分到多个文件时)位于contracts/imports/*.fc
    • 未共享的特定于合同的导入位于contracts/imports/mycontract/*.fc
    • FunC 合约位于contracts/*.fc
    • 每个合同可能有可选但推荐的辅助文件:
    • TypeScript 中的测试位于test/*.spec.ts
  • 建造

    • mycontract.fif- 编译的第五个文件结果(本身不是很有用)
    • mycontract.compiled.json- 已编译合约的二进制代码单元(用于部署)。以十六进制格式保存在 json 文件中,以支持 webapp 导入
    • 在根 repo 目录中,在终端中运行npm run build
    • 屏幕上会出现编译错误
    • 生成的构建工件包括:
  • 测试

    • 在根 repo 目录中,在终端中运行npm run test
    • 不要忘记在运行测试之前构建(或重建)
    • 通过在 Web Assembly 中运行 TVM,在 Node.js 内部运行测试ton-contract-executor
  • 部署

    • 要部署到测试网(TON 币免费),请运行npm run deploy:testnet
    • 按照部署脚本的屏幕说明进行操作
    • 每个要部署的合约都应该有一个脚本build/mycontract.deploy.ts来返回其初始数据单元
    • 部署钱包配置在.env(若不存在则自动创建),内容为:
      DEPLOYER_MNEMONIC="mad nation chief flavor ..."(24个秘密单词)
    • 确保所有合约都已建立并且您的设置已准备好部署:
    • 要部署到主网(生产),请在终端中运行npm run deploy

添加VX或者telegram获取全程线上免费指导

使用TON电报链Func合约源码框架模板部署Ton上的智能合约并完成合约的交互

免责声明

发文时比特币价格:$71249

当前比特币价格:[crypto coins=”BTC” type=”text” show=”price”]

当前比特币涨幅:[crypto coins=”BTC” type=”text” show=”percent”]

免责声明:

本文不代表路远网立场,且不构成投资建议,请谨慎对待。用户由此造成的损失由用户自行承担,与路远网没有任何关系;

路远网不对网站所发布内容的准确性,真实性等任何方面做任何形式的承诺和保障;

网站内所有涉及到的区块链(衍生)项目,路远网对项目的真实性,准确性等任何方面均不做任何形式的承诺和保障;

网站内所有涉及到的区块链(衍生)项目,路远网不对其构成任何投资建议,用户由此造成的损失由用户自行承担,与路远网没有任何关系;

路远区块链研究院声明:路远区块链研究院内容由路远网发布,部分来源于互联网和行业分析师投稿收录,内容为路远区块链研究院加盟专职分析师独立观点,不代表路远网立场。

本文是全系列中第56 / 292篇:行业技术

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的电报
  • 这是我的电报扫一扫
  • weinxin
chatGPT账号
路远

发表评论

您必须登录才能发表评论!