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

系列文章目录

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

文章目录


前言

上回讲到了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 文件中,你可以使用以下命令:

bash 复制代码
func -o output.fif main.fc

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

bash 复制代码
func -A -P -o output.fif main.fc

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

bash 复制代码
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:

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

    bash 复制代码
    toncli lite-client --net testnet --update
  • 向 lite-client 命令传递参数:

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

    bash 复制代码
    toncli lite-client --lite-client-post-args "-v 4" help

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

相关推荐
区块链蓝海7 小时前
Secured Finance携手Axelar及Squid提升流动性,迎接USDFC主网
区块链
yunteng52115 小时前
solidity之Foundry安装配置(一)
web3·区块链·solidity·foundry
qiquandongkh19 小时前
2025年股指期货和股指期权合约交割的通知!
大数据·金融·区块链
yoona10202 天前
Rust编程语言入门教程 (七)函数与控制流
开发语言·rust·区块链·学习方法
MetaverseMan3 天前
从sumsub获取用户图片
区块链
电报号dapp1194 天前
区块链虚拟币资产去中心化私钥钱包开发
人工智能·去中心化·区块链·智能合约
漠缠4 天前
股票与比特币投资困境分析及解决方案
人工智能·区块链
AC使者4 天前
解释区块链技术的应用场景和优势。
区块链
YSGZJJ4 天前
怎么查股指期货持仓量?
区块链