编写与编译

为 TRON 编写 Solidity 代码并使用 TronIDE、TronBox 进行编译。本页介绍 TronIDE 的工作流; 命令行工作流请参阅 TronBox 文档。

📘

前置阅读

为 TRON 编写并编译智能合约,主要有两种工具:

  • TronIDE:一款网页端集成开发环境(IDE),定位类似于以太坊的 Remix。它无需任何本地环境配置,是快速上手开发的首选。
  • TronBox:一款集成了编译、测试与部署的命令行工具(CLI),适合工程化项目流及 CI/CD 自动化管道。具体的命令行部署实操请参阅快速通道

本页重点讲 TronIDE 工作流,它的学习和配置门槛最低。偏好命令行开发,直接看 TronBox 文档

在 TronIDE 中新建与导入合约文件

FILE EXPLORER(文件浏览器)选项卡中,点击 Create New File(新建文件)直接编写新合约;或选择 Load a local file into current workspace(加载本地文件至当前工作区)导入本地合约文件。

TronIDE 文件浏览器,已高亮显示 Create 和 Load 按钮

想基于模板开发,TRC-20 合约模板适合发行同质化 Token(Fungible Token);发行非同质化 Token(NFT)见 TRC-721 合约示例

编译合约

在 TronIDE 界面中切换至 SOLIDITY COMPILER(Solidity 编译器)选项卡,并进行以下配置:

  1. 选择编译器版本 —— 选用与合约源文件中 pragma solidity 声明完全匹配的版本。请使用明确的版本声明(例如 pragma solidity 0.8.6;),不要添加脱字号前缀(如 ^0.8.6),从而防范编译器小版本差异带来的非预期底层行为改变。
  2. 配置能耗优化(Optimizer) —— 勾选启用优化(Enable optimization)并设置相应的 Runs(运行次数)。默认 runs: 200 适用于绝大多数场景;较低的 runs 参数能减小最终字节码体积,但代价是后续调用该合约时可能消耗更多能量。
  3. 点击 Compile 按钮 —— 启动编译流程。TronIDE 会在下方列表和代码编辑器内行内展示所有的警告与编译报错信息。
TronIDE Solidity Compiler 选项卡,显示版本选择器、优化选项和 Compile 按钮
📘

妥善记录编译器配置

后续在 TRONSCAN 浏览器上验证已部署的合约源码时,必须提供与编译时完全一致的编译器版本、是否启用优化以及 runs 参数。请记录这些编译配置,因为 TRONSCAN 的源码验证器需要用一模一样的环境配置重新生成字节码,以便哈希比对。详情请参阅合约验证

查看与获取编译产物

编译通过后,点击 Compilation Details(编译详情)按钮可以查看完整的合约元数据,包含合约名称、ABI 接口规范、已生成的字节码(Bytecode)以及编译器输入参数。

TronIDE 编译详情,显示 ABI、字节码和元数据

ABI 用于指导客户端 SDK(TronWeb、TronBox 迁移脚本、ethers.js 等)编码和解码函数调用;字节码则是最终部署并写入链上的二进制指令。


相关资源

  • 快速通道 —— 熟悉基于命令行工具 TronBox CLI 的合约开发流程
  • TRON 上的 Solidity —— 深入了解 TRON 专有的 Token 及质押语言扩展
  • 部署上链 —— 学习如何将编译好的智能合约部署至目标网络
  • 合约验证 —— 了解合约部署后如何在 TRONSCAN 上开源源码