使用 TronWeb 和 TronBox 部署 TRC-20 代币 — TRON Wiki

使用 TronWeb 和 TronBox 部署 TRC-20 代币

12 分钟阅读 · ⌘K 搜索

在 TRON 上部署 TRC-20 代币可让您创建与 TronLink、SunSwap 以及支持自定义 TRC-20 列表的交易所兼容的可替代资产。标准镜像 ERC-20 — TVM 上的 Solidity 以及 TronBox 或 TronWeb 部署脚本。

本指南从合约代码到主网部署和TronScan验证。

TRC-20 要求

最小接口(参见TRON上的Solidity):

  • name()symbol()decimals()
  • totalSupply()balanceOf(address)
  • transfer(address,uint256)approve(address,uint256)transferFrom(...)
  • 活动:TransferApproval

使用适用于 TRON 工具链的 OpenZeppelin ERC20 来生产代币。

使用 TronBox {#tronbox} 设置项目

代码
npm install -g tronbox
tronbox init

结构:

代码
contracts/
  MyToken.sol
migrations/
  2_deploy_token.js
tronbox.js

tronbox.js 中配置网络 — Shasta 和主网 fullHost 指向 TronGrid。

完整的 TronBox 参考:TronBox 智能合约

合约示例

代码
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract MyToken is ERC20 {
    constructor(uint256 initialSupply) ERC20("My Token", "MTK") {
        _mint(msg.sender, initialSupply * 10 ** decimals());
    }
}

根据用例调整 decimals() 默认值 (18) 与 USDT (6)。

迁移脚本

代码
const MyToken = artifacts.require('MyToken');

module.exports = async function (deployer) {
  await deployer.deploy(MyToken, 1000000); // 1M tokens
};

部署到 Shasta

  1. 资金部署者地址为 Shasta TRX(水龙头)。
  2. tronbox.js 或 env 中设置私钥(不提交)。
  3. 运行:
代码
tronbox compile
tronbox migrate --network shasta
  1. 记下输出中部署的合约地址。
  2. 通过TronWeb或TronIDE测试transfer

部署到主网

飞行前:

  • [ ] 安全审查 — 智能合约安全
  • [ ] 足够的TRX/部署者能量
  • [ ] 构造函数参数final(名称、供应、管理)
  • [ ] 仓库中没有测试私钥
代码
tronbox migrate --network mainnet

仅使用 TronWeb 进行部署

没有 TronBox 的替代方案 — 本地编译,部署字节码:

代码
const contract = await tronWeb.contract().new({
  abi,
  bytecode,
  feeLimit: 1_000_000_000,
  callValue: 0,
  parameters: [1000000],
});
console.log(contract.address);

在 TronScan {#verify} 上验证

1、在TronScan开通合约地址。

  1. 验证合约 — 上传源码、编译器版本、优化。
  2. 用户可以读取name/symbol并信任字节码匹配。

未经验证的代币会引发用户的fake USDT-style怀疑。

部署后

  • 仅在代币经济需要时才铸造额外供应 - 公开文件
  • 如果需要公开交易,则创建SunSwap流动性
  • 向探索者提交代币信息(流程各不相同)
  • 在您的应用程序中集成余额查询

成本和能源

大合约消耗更多能源。在迁移之前冻结部署者帐户上的 TRX 以减少 TRX 消耗。

部署后清单

部署后:在 TronScan 上验证来源,将所有权转移到多重签名,公开记录小数和供应上限,首先在 Shasta 克隆上测试转移/批准,并通过 TronScan 提交添加代币徽标(如果适用于钱包可见性)。

代币经济学参数

部署前决定:decimals(通常是 6 或 18)、totalSupply、可铸造性、可暂停性和黑名单功能。如果密钥被泄露,每个权限都是一个攻击面。许多社区代币使用放弃所有权的固定供应——公开记录您的选择,以便持有者了解信任假设。

相关指南 {#相关}

常见问题解答

部署一个TRC-20需要多少钱TRX?

部署会消耗能量和TRX,具体取决于合约大小——如果能量不被冻结,通常会消耗数十到数百个TRX。首先在 Shasta 上进行测试。

已部署的TRC-20代币是否会自动列在SunSwap上?

不可以。任何人都可以创建一个池,但在主要 UI 和交易所上市需要单独的流动性和审核流程。

TRC-20 vs TRC-10?

TRC-20 是 Solidity 智能合约代币。 TRC-10是原生资产发行,没有完整的合约逻辑。 USDT 是 TRC-20。

我可以克隆 USDT 吗?

技术上是的;法律和道德上都有问题。骗子就是这样做的——不要使用欺骗性符号。

什么编译器版本?

匹配 TronBox 支持的 Solidity — 检查 tronbox compile --helpTVM 解释