Обзор
В этом документе описывается небольшая демонстрационная версия командной строки Node.js с открытым исходным кодом, использующая комплект разработки кошельков Tether (WDK) для выполнения действий с кошельком TRON.
В тестовой сети Shasta поддерживается стандартный поток транзакций через кошелек, а в тестовой сети Nile — поток транзакций GasFree TRC20.
Репозиторий
GitHub: https://github.com/aziz1975/wdk-tron-cli
git клон https://github.com/aziz1975/wdk-tron-cli
cd wdk-tron-cli
Что там внутри
- cli.js: Команды Shasta (адрес, баланс, TRX отправить + комиссия, TRC20 баланс, TRC20 отправить + комиссия, подписать/подтвердить).
- gasfree-nile.js: Демонстрационный перевод TRC20 без газа от Nile с помощью @tetherto/wdk-wallet-tron-gasfree.
- package.json: Проект ESM и npm-скрипты.
- .env.sample: шаблон переменной среды.
Требования
- Node.js 20+ (recommended)
- npm
npm install
cp .env.sample .env
Переменные среды
Shasta (cli.js)
SEED_PHRASE=“seed phrase goes here”
TRON_PROVIDER=“https://api.shasta.trongrid.io”
TRANSFER_MAX_FEE_SUN=9000000
Примечания: 1 TRX = 1 000 000 sun. Параметр TRANSFER_MAX_FEE_SUN является необязательным и служит в качестве защитного лимита комиссии.
Nile GasFree (gasfree-nile.js)
GASFREE_NILE_API_KEY=”your key”
GASFREE_NILE_API_SECRET=”your secret”
Вы можете создать ключ и секрет API на панели управления GasFree: https://developer.gasfree.io/dashboard
Как запустить Shasta CLI (cli.js)
Выполняйте команды через npm следующим образом:
npm start — <command> [args…]
Основные команды
- npm start — address
- npm start — balance
- npm start — quote-trx <toAddress> <trxAmount>
- npm start — send-trx <toAddress> <trxAmount>
- npm start — token-balance [tokenAddress]
- npm start — quote-token <tokenAddress> <toAddress> <tokenAmountBase>
- npm start — send-token <tokenAddress> <toAddress> <tokenAmountBase>
- npm start — sign “message”
- npm start — verify “message” “<signature>”
Примеры команд, использованных во время тестирования
npm start — address
npm start — balance
npm start — send-trx TQGfKPHs3AwiBT44ibkCU64u1G4ttojUXU 0.01
npm start — sign “hello shasta”
npm start — verify “hello shasta” “0x…”
npm start — token-balance
npm start — quote-token TG3XXyExBkPp9nzdajDZsozEu4BkaSJozs TQGfKPHs3AwiBT44ibkCU64u1G4ttojUXU 1000000
npm start — send-token TG3XXyExBkPp9nzdajDZsozEu4BkaSJozs TQGfKPHs3AwiBT44ibkCU64u1G4ttojUXU 1000000
Как запустить демонстрационный проект Nile GasFree (gasfree-nile.js)
Что делает скрипт GasFree
- Загружает ваш кошелек из SEED_PHRASE (индекс аккаунта 0).
- Считывает статус аккаунта GasFree (активна / разрешена отправка).
- Получает настройки комиссии за использование токенов и вычисляет необходимую комиссию.
- Проверяет, соответствует ли баланс вашего токена сумме + комиссии.
- Осуществляет перевод, соблюдая при этом правило безопасности, касающееся максимальной суммы комиссии.
В GasFree (и в кошельке WDK wallet-tron-gasfree) кошелек/аккаунт активируется автоматически во время вашей первой транзакции токенов GasFree (часто называемой разрешительной транзакцией). Если аккаунт еще не активирован, система добавляет комиссию за активацию к обычной комиссии за перевод, и как только эта первая транзакция будет зарегистрирована в блокчейне, кошелек становится «активированным».
Итак, как выглядит «активация» на практике?
- Перед активацией: active: false
При первом переводе через GasFree отображается комиссия за активацию + комиссия за перевод.
- После активации: active: true
При следующих переводах обычно отображается только комиссия за перевод.
Дополнительные команды GasFree, которые вы можете использовать
Тот же скрипт gasfree-nile.js также включает дополнительные вспомогательные команды для отладки и исследования.
1) Проверьте статус GasFree (активен / разрешить отправку)
node gasfree-nile.js status
2) Пополните свой аккаунт Gasfree:
Вам потребуется вручную перевести некоторое количество USDT на свой аккаунт GasFree.
Выделенный вариант— это ваш аккаунт GasFree.
3) Список поддерживаемых токенов (и настройки комиссий)
node gasfree-nile.js tokens
Необязательно: отфильтровать один токен:
node gasfree-nile.js tokens TXYZopYRdj2D9XRtbG411XZZ3kM5VkAeBf
4) Список поставщиков услуг GasFree
node gasfree-nile.js providers
5) Проверить баланс (TRX + токен)
node gasfree-nile.js balance
Необязательно: передать контракт токена:
node gasfree-nile.js balance TXYZopYRdj2D9XRtbG411XZZ3kM5VkAeBf
6) Оцените общую стоимость (сумма + комиссия)
node gasfree-nile.js fee <recipient> <amountBase> [tokenContract]
Пример (5.0 токенов, если 6 знаков после запятой -> 5 000 000 базовых единиц):
node gasfree-nile.js fee TQGfKPHs3AwiBT44ibkCU64u1G4ttojUXU 5000000
7) Перевод средств с вашего аккаунта Gasfree на другой кошелек
node gasfree-nile.js transfer <recipient> <amountBase> [tokenContract] [maxFee]
Пример:
node gasfree-nile.js transfer TQGfKPHs3AwiBT44ibkCU64u1G4ttojUXU 5000000
Устранение неисправностей
- Неверный адрес получателя TRON: убедитесь, что адрес начинается с буквы T и состоит из 34 символов (Base58).
- Недостаточный баланс токенов (GasFree): у вас должно быть достаточно токенов для суммы перевода плюс комиссия.
- Сумма комиссии превышает maxFee: укажите более высокое значение maxFee или пропустите его.
- Ошибка API GasFree: повторная проверка ключа/секрета API, активации/подтверждения аккаунта, поддержки токенов и URL-адреса поставщика.
Примечания по безопасности
- Используйте тестовые кошельки и тестовые средства в Shasta/Nile.
- Никогда не раскрывайте свою сид-фразу или API-секрет.
- Предпочтительнее сначала составить ценовое предложение, а затем отправить его, особенно при отладке комиссий.
Полезные ссылки
- Главная страница документации WDK: https://docs.wallet.tether.io/
- WDK wallet-tron: https://docs.wallet.tether.io/sdk/wallet-modules/wallet-tron
- WDK wallet-tron-gasfree: https://docs.wallet.tether.io/sdk/wallet-modules/wallet-tron-gasfree
- Панель управления GasFree: https://developer.gasfree.io/dashboard
- Спецификация GasFree: https://gasfree.io/specification
- Центр разработчиков TRON: https://developers.tron.network/docs/connect-to-the-tron-network
- Форматы адресов TRON: https://tronweb.network/docu/docs/Terminology/
- TronLink GasFree SDK: https://github.com/TronLink/tronlink-gasfree-sdk-js