当前位置: 首页 > news >正文

TON(二)编译中涉及的更多细节

系列文章目录

TON 基础入门(一)合约的编译配置工作

文章目录

  • 系列文章目录
  • 前言
  • 一、预编译文件的配置
  • 二、基本编译命令
  • 三.toncli 的使用
      • 示例用法


前言

上回讲到了ton编译的两种模式,今天,让我们更加详细的介绍一下。

一、预编译文件的配置

首先请详细阅读这里的按安装说明
以下是详细的步骤和说明:
下载二进制文件:
根据你的操作系统(OS),从表格中下载对应的TON二进制文件。这些文件包括:func、fift、lite-client。
确保下载的版本与你的操作系统兼容,并安装任何额外的依赖项。例如,如果你使用的是MacOS arm64,你可能需要通过Homebrew安装openssl、ninja、libmicrohttpd和pkg-config。
设置二进制文件:
在Windows和Linux/MacOS上,下载完成后,你需要改变这些文件的权限,使它们可执行。这可以通过在终端运行chmod +x命令来完成,例如:chmod +x func、chmod +x fift、chmod +x lite-client。
为了方便使用,你可以将这些二进制文件添加到你的系统路径中,或者将它们复制到/usr/local/bin目录下。这样你就可以在任何地方通过命令行访问它们了。例如:cp ./func /usr/local/bin/func。
验证安装:
为了确保一切安装正确,你可以在终端运行fift -V && func -V && lite-client -V来检查这些程序的版本。如果安装正确,这些命令将输出各自的版本号。
使用Fift:
如果你打算使用Fift(一种用于编写TON智能合约的脚本语言),你还需要下载fiftlib.zip。这是一个包含Fift库的压缩文件,你需要将其解压到你的设备上的某个目录(例如/usr/local/lib/fiftlib)。
解压fiftlib.zip后,你需要设置环境变量FIFTPATH指向这个目录。这样,Fift就可以找到并使用这些库了。
完成这些步骤后,你就基本完成了TON智能合约开发环境的设置。这样你就可以开始编写和测试你的智能合约了。记得在开始之前检查所有的依赖项是否都已正确安装,并且环境变量设置正确。

二、基本编译命令

func 编译器是用于将 FunC 代码编译成 Fift TVM 汇编代码的工具。从你提供的信息来看,func 编译器支持多种命令行选项,用于控制编译过程和输出格式。

以下是一些常用的 func 编译器选项:

  • -I:启用交互模式,从标准输入解析代码。
  • -o <fift-output-filename>:将生成的代码写入指定的文件,而不是标准输出。
  • -v:增加详细级别,向标准错误输出额外信息。
  • -i <indent>:设置输出代码的缩进(以两个空格为单位)。
  • -A:在代码前加上 "Asm.fif" include 前缀。
  • -O <level>:设置优化级别(默认为2)。
  • -P:将代码封装在 PROGRAM{ ... }END>c 中。
  • -S:在输出代码中包含栈布局注释。
  • -R:在输出代码中包含操作重写注释。
  • -W <output-boc-file>:包含 Fift 代码以序列化并保存生成的代码到指定的 BoC 文件。启用 -A-P
  • -s:输出 FunC 的语义版本并退出。
  • -V <version>:显示 func 构建信息。

假设你有一个名为 main.fc 的 FunC 文件,你想将其编译成 Fift 代码并保存到 output.fif 文件中,你可以使用以下命令:

func -o output.fif main.fc

如果你想将编译后的代码封装在 PROGRAM{ ... }END>c 中,并且包含 "Asm.fif" include 前缀,你可以使用:

func -A -P -o output.fif main.fc

如果你还希望将生成的代码序列化并保存到 BoC 文件中,可以使用:

func -A -P -W output.boc -o output.fif main.fc

确保在命令行中正确地使用这些选项,并且没有多余的破折号或其他错误的参数。

fift 命令

  • bye:当你在Fift解释器中输入这个命令时,它会退出解释器。
  • words:输入这个命令会列出所有可用的Fift命令。

命令行选项:

  • -n:不预加载标准前导文件Fift.fif。这个文件通常包含了一些基本的Fift定义和库。
  • -i:即使指定了明确的源文件名,也强制进入交互模式。
  • -I<source-search-path>:设置库源文件的搜索路径。在Unix系统上用冒号分隔,在Windows系统上用at符号分隔。如果没有指定,将使用环境变量FIFTPATH

三.toncli 的使用

toncli 是一款强大的编程工具,在这里安装它,之后,我们可以配合预编译文件,一起使用。

toncli 是一个用于与TON区块链交互的命令行工具,它提供了多种命令来帮助开发者进行智能合约的部署、交互和测试。以下是 toncli 的一些主要功能和命令的简要说明:

  1. start:创建基于示例项目的新项目结构。你可以创建不同类型的项目,如钱包、NFT集合、NFT项目、Jetton铸造者、Jetton钱包等。

  2. deploy:将当前项目部署到区块链上。

  3. get:在合约上运行get方法。

  4. send:向合约发送内部交易。

  5. run_transaction:在本地运行远程交易。

  6. fift:与Fift交互。Fift是TON区块链上用于编写智能合约的脚本语言。你可以运行交互式Fift、运行Fift文件或发送BOC文件。

  7. lite-client:与lite-client交互。lite-client是TON区块链的轻量级客户端,用于与区块链进行交互。

  8. func:与func交互。func是TON区块链上的智能合约编译器。

  9. tointeger:将字符串解析为整数,以便在func中传递给合约。

  10. sendboc:发送BOC文件。BOC是TON区块链上用于表示智能合约和数据的二进制格式。

  11. wallet:打印两个钱包的地址——可弹跳钱包和部署钱包。

  12. run_tests:运行测试。

  13. update_libs:更新库。

  14. -v, --version:显示包版本。

每个命令都有帮助信息,例如,你可以通过运行 toncli deploy -h 来获取 deploy 命令的帮助信息。

如果你需要更多关于 toncli 命令的信息,通常可以在GitHub上的官方文档中找到。但是,由于网络原因,我无法解析你提供的链接。这可能是由于链接的问题或网络连接问题。请检查链接的合法性,并在网络稳定时重试。如果你有其他关于 toncli 的问题或需要帮助,请随时告诉我。

eg : toncli fift
toncli fift是TON区块链开发工具集的一部分,用于与TON网络交互,特别是用于智能合约的开发和部署。

以下是toncli fift命令的一些关键用法和选项:

  1. 位置参数

    • command:指定要运行的模式,可以是interactive(交互模式)、run(运行Fift文件)或sendboc(运行Fift文件并通过lite-client发送BOC文件)。
  2. 选项

    • -h, --help:显示帮助信息并退出。
    • --net {testnet,mainnet,ownnet}:指定要部署的网络,可以是测试网(testnet)、主网(mainnet)或自定义网络(ownnet)。
    • --workchain WORKCHAIN:指定要部署的工作链(Workchain)。
    • --update:更新网络的缓存配置。
    • --build:从项目的func/文件夹构建func代码。
    • --fift-args FIFT_ARGS, -fa FIFT_ARGS:向Fift命令传递参数和关键字参数。例如,-fa "-v 4"可以设置详细级别。
    • --lite-client-args LITE_CLIENT_ARGS, -la LITE_CLIENT_ARGS:在sendboc模式下向lite-client命令传递参数和关键字参数。例如,-la "-v 4"可以设置详细级别。

使用toncli fift时,你可以根据需要选择不同的模式和选项。例如,如果你想以交互模式运行Fift,只需输入toncli fift。如果你想运行一个Fift文件,可以使用toncli fift run yourscript.fif。如果你需要发送一个BOC文件,可以使用toncli fift sendboc yourscript.fif

此外,如果你在项目根目录下运行sendboc模式,它会自动在build/boc/目录下创建一个以文件名命名的BOC文件。如果不在项目根目录下运行,它将使用临时目录。

这些命令和选项为TON智能合约开发者提供了灵活的工具,以便于开发、测试和部署智能合约。

这段文本是关于 toncli lite-client 命令的使用说明。toncli lite-client 是一个用于与 TON 区块链的 lite-client 交互的命令行工具。lite-client 是一个轻量级的客户端,它允许用户查询区块链的状态和发送交易,而不需要运行一个完整的节点。

以下是 toncli lite-client 命令的一些关键用法和选项:

  1. 位置参数

    • command:指定要运行的 lite-client 命令。可以是 interactive 来启动交互式 lite-client,或者任何其他 lite-client 支持的命令。
  2. 选项

    • -h, --help:显示帮助信息并退出。
    • --net {testnet,mainnet,ownnet}, -n {testnet,mainnet,ownnet}:指定要连接的网络,可以是测试网(testnet)、主网(mainnet)或自定义网络(ownnet)。
    • --update:更新网络的缓存配置。
    • --lite-client-args LITE_CLIENT_ARGS, -la LITE_CLIENT_ARGS:在 lite-client 命令的开始处传递参数和关键字参数。
    • --lite-client-post-args LITE_CLIENT_POST_ARGS, -lpa LITE_CLIENT_POST_ARGS:在 lite-client 命令的末尾传递参数。

示例用法

  • 启动交互式 lite-client:

    toncli lite-client interactive
    
  • 连接到测试网并更新缓存配置:

    toncli lite-client --net testnet --update
    
  • 向 lite-client 命令传递参数:

    toncli lite-client --lite-client-args "-v 4" help
    
  • 在 lite-client 命令的末尾传递参数:

    toncli lite-client --lite-client-post-args "-v 4" help
    

这些命令和选项为 TON 区块链开发者提供了灵活的工具,以便于查询区块链状态、发送交易和管理智能合约。


http://www.mrgr.cn/news/48040.html

相关文章:

  • 【ES6复习笔记】解构赋值(2)
  • FFmpeg 的常用API
  • gitlab克隆仓库报错fatal: unable to access ‘仓库地址xxxxxxxx‘
  • 前端使用 Element Plus架构vue3.0实现图片拖拉拽,后等比压缩,上传到Spring Boot后端
  • 自定义 Celery的logging模块
  • Java实现贪吃蛇游戏
  • 1234555
  • 力扣第一题:两数之和(图解版)
  • Python 爬取天气预报并进行可视化分析
  • Conda的基本使用
  • 10.11 Qt
  • 轻松应对意外丢失:高效电脑数据恢复指南!
  • 中间件镜像升级策略
  • 【ARM Linux驱动开发】嵌入式ARM Linux驱动开发基本步骤
  • 排队模型:M/M/c和M/M/1区别
  • CAN总线仲裁机制
  • 【AI大模型】北京银行如何构建全栈大模型应用体系?
  • 无图化加速!MemFusionMap提出时序重叠热图策略,在线建图mAP暴涨5.4%!
  • 会话好友区设计与开发(五)
  • 深圳有哪些神仙公司?
  • C++ 基于SDL库的 Visual Studio 2022 环境配置
  • 拿下奇怪的前端报错:1比特丢失导致的音视频播放时长无限增长-浅析http分片传输核心和一个坑点
  • Python编程(基础)
  • 不推荐在freertos中使用HAL_Delay() 函数
  • onnx底层入门
  • 你知道C++多少——模版进阶