Разверните токен TRC-20 с помощью TronWeb и TronBox — TRON Wiki

Разверните токен TRC-20 с помощью TronWeb и TronBox

12 мин чтения · ⌘K поиск

Развертывание токена TRC-20 на TRON позволяет вам создать взаимозаменяемый актив, совместимый с TronLink, SunSwap и биржами, поддерживающими пользовательские листинги TRC-20. Стандартные зеркала ERC-20 — Solidity на TVM со скриптами развертывания TronBox или TronWeb.

В этом руководстве рассказывается о коде контракта, развертывании основной сети и проверке TronScan.

TRC-20 требования {#стандарт}

Минимальный интерфейс (см. Solidity на TRON):

  • name(), symbol(), decimals()
  • ⟦Т10⟧, ⟦Т11⟧
  • ⟦Т12⟧, ⟦Т13⟧, ⟦Т14⟧
  • События: Transfer, Approval

Используйте OpenZeppelin ERC20, адаптированный для TRON набора инструментов для производства токенов.

Настройка проекта с помощью TronBox

Код
npm install -g tronbox
tronbox init

Структура:

⟦Т1⟧

Сети конфигурации в tronbox.js — Shasta и mainnet fullHost указывают на TronGrid.

Полная ссылка на TronBox: смарт-контракты TronBox.

Пример контракта

⟦Т2⟧

Отрегулируйте decimals() по умолчанию (18) против USDT (6) в зависимости от варианта использования.

Скрипт миграции

⟦Т3⟧

Развертывание в Шасте

  1. Адрес отправителя средств с помощью Shasta TRX (кран).
  2. Установите закрытый ключ в tronbox.js или env (никогда не фиксируйте).
  3. Запустите:

⟦Т4⟧

  1. Обратите внимание на развернутый адрес контракта из выходных данных.
  2. Проверьте transfer через TronWeb или TronIDE.

Развертывание в основной сети

Предполетная подготовка:

  • [ ] Обзор безопасности — безопасность смарт-контракта
  • [ ] Достаточно TRX/Энергии на развертывании
  • [ ] Окончательные параметры конструктора (имя, источник, администратор)
  • [ ] Нет тестовых закрытых ключей в репозитории

⟦Т5⟧

Развертывание только с помощью TronWeb

Альтернатива без TronBox — скомпилировать локально, развернуть байт-код:

⟦Т6⟧

Подтвердить на TronScan

  1. Открыть адрес контракта на TronScan.
  2. Проверить контракт — загрузить исходный код, версию компилятора, оптимизацию.
  3. Пользователи могут читать name/symbol и доверять совпадению байт-кода.

Непроверенные токены вызывают фейковый стиль USDT подозрений у пользователей.

После развертывания

  • Выпускайте дополнительные поставки только в том случае, если этого требует токеномика — документируйте публично.
  • Создайте ликвидность SunSwap, если это желательно для публичной торговли.
  • Отправка информации о токене исследователям (процесс различается)
  • Интегрируйте запросы баланса в свое приложение.

Стоимость и энергия

Большие контракты потребляют больше энергии. Заморозьте TRX в учетной записи развертывателя перед миграцией, чтобы уменьшить количество сжигания TRX.

Контрольный список после развертывания

После развертывания: проверьте источник на TronScan, передайте право собственности на multisig, публично документируйте десятичные дроби и укажите ограничение, сначала протестируйте передачу/одобрите клон Shasta и добавьте логотип токена через отправку TronScan, если это применимо для видимости кошелька.

Параметры токеномики

Перед развертыванием определите: decimals (обычно 6 или 18), totalSupply, возможность создания, возможность приостановки и функции черного списка. Каждое разрешение представляет собой поверхность атаки в случае компрометации ключей. Многие токены сообщества используют фиксированное предложение с отказом от владения — публично документируйте свой выбор, чтобы держатели знали предположения о доверии.

Контрольный список устранения неполадок

Если что-то пойдет не так на TRON, отнеситесь к этому как к проблеме структурированной отладки: подтвердите точный txid в цепочке, проверьте адрес целевого контракта и только затем решите, можно ли устранить сбой. В TRON многие «загадочные» проблемы — это просто одна из следующих: неправильная сеть (основная сеть или тестовая сеть), неправильный контракт токена (поддельный USDT / токены с одинаковым названием), недостаточность ресурсов (OUT_OF_ENERGY / пропускная способность) или задержка пользовательского интерфейса/индексатора между кошельком и проводником.

Начните с этих цепочек проверок:

  • Всегда копируйте полный txid/хэш из своего кошелька или проводника.
  • Подтвердите статус результата передачи на TronScan (SUCCESS, REVERT, OUT_OF_ENERGY или все еще в ожидании).
  • Проверьте, соответствует ли адрес получателя/договора тому, что вы намеревались отправить.
  • Если это вызов контракта, убедитесь, что селектор функций и параметры соответствуют стандарту токена, который, по вашему мнению, вы используете (TRC-20 vs TRC-10 vs BEP-20 на BSC).

Затем примените путь исправления для вашей категории:

  • Подтвердите статус и параметры транзакции.
  • Проверка адресов (контракт токена, получатель, маршрутизатор/отправитель).
  • Добавляйте или делегируйте ресурсы (энергию/пропускную способность), если сбой связан с ресурсами.

Распространенные ошибки

Эти шаблоны вызывают большинство сбоев на уровне пользователя:

  • Использование адресов основной сети в тестовой сети (или наоборот).
  • Копирование символа токена вместо фактического адреса контракта TRC-20.
  • Подписание неправильного адреса одобрения/платежа, поскольку ссылка пользовательского интерфейса является вредоносной или устаревшей.
  • Повторная попытка без изменения ошибочного ввода (например, REVERT продолжает возвращаться до тех пор, пока вы не исправите параметр).Если вы не уверены, не «просто отправьте еще раз». Внесите одно контролируемое изменение, проверьте на TronScan, затем продолжайте.

Часто задаваемые вопросы

Как узнать, действительно ли транзакция подтверждена?

Используйте TronScan и проверьте статус результата передачи. Ярлыки кошелька «ожидающие» могут отставать; Статус цепочки является источником истины. Скопируйте txid и проверьте SUCCESS/REVERT/OUT_OF_ENERGY, а не только текст пользовательского интерфейса.

Почему пользовательский интерфейс отличается от TronScan?

Некоторые кошельки и децентрализованные приложения используют разные индексаторы или уровни кэша. Короткая задержка между трансляцией и индексированием является нормальной; сравните txid и подождите, пока цепочка стабилизируется, прежде чем сделать вывод об ошибке.

Что мне делать после REVERT?

Остановитесь и декодируйте неудачный вызов. Большинство ошибок REVERT вызваны неверными параметрами, неправильным адресом контракта, отсутствием утверждений или несоответствием между стандартом токена и методом. Устраните причину и подпишите заново.

Безопасно ли подписывать неограниченное разрешение?

Неограниченное одобрение безопасно только для проверенных вами адресов доверенных отправителей (проверенный источник, правильный маршрутизатор и ожидаемый контракт токена). Для тестирования отдавайте предпочтение ограниченному утверждению и отзыву после завершения.

Какие ресурсы требуются TRON для контрактных вызовов?

Выполнение смарт-контракта в основном потребляет энергию, а байты транзакций потребляют пропускную способность. Если вы получили OUT_OF_ENERGY, добавьте/заморозьте/делегируйте Энергию. Если полоса пропускания исчерпана, сосредоточьтесь на сохранении достаточного количества TRX для байтов и распределения ресурсов.

Как я могу уменьшить количество обращений в службу поддержки?

Покажите пользователям четкое сообщение «что произошло» на основе статуса цепочки и дайте прямую ссылку на соответствующее руководство (ожидание, сбой, отсутствие энергии или проверка). Сохраните txid, чтобы можно было быстро выполнить согласование.

Похожие руководства {#связанные}

Часто задаваемые вопросы

Сколько TRX стоит развертывание TRC-20?

Развертывание потребляет энергию и TRX в зависимости от размера контракта — обычно от десятков до сотен TRX, если энергия не заморожена. Сначала протестируйте на Шасте.

Развернутый токен TRC-20 автоматически отображается на SunSwap?

Нет. Любой может создать пул, но листинг на основных пользовательских интерфейсах и биржах требует отдельных процессов ликвидности и проверки.

TRC-20 против TRC-10?

TRC-20 — токены смарт-контрактов Solidity. TRC-10 — это собственный выпуск активов без полной логики контракта. USDT — это TRC-20.

Могу ли я сделать клон USDT?

Технически да; юридически и этически проблематично. Вот что делают мошенники — не используйте вводящие в заблуждение символы.

Какая версия компилятора?

Сопоставьте, что TronBox поддерживает Solidity — проверьте tronbox compile --help и объяснение TVM.