Как создать смарт-контракт на TRON

Как создать смарт-контракт TRON

В этой статье я расскажу как создать смарт-контракт в блокчейне TRON без установки полной ноды, используя только браузер и кошелек Tronlink.

Подготовительные работы

Как и у Эфира, в блокчейне Трона помимо главной сети есть своя тестовая сеть под названием Shasta. В ней мы и создадим контракт, так как она абсолютно идентична главной сети. Позже я покажу как создать контракт и в главной сети.

Для начала нужно создать кошелек (адрес) в этой сети и получить на него тестовые TRX.

  1. Перейдите на https://shasta.tronscan.org , в верхнем правом углу выберите «Войти в систему -> Импортировать кошелек» и в появившемся окне выберите «Создать кошелек».  Пройдите этапы создания кошелька и запишите получившийся приватный ключ и сам адрес, они будут нужны для импорта в Tronlink.

  2. Создание смарт-контактов не бесплатно и теперь нужно получить 10 000 тестовых TRX для наших целей. Перейдите по адресу https://www.trongrid.io/shasta/ , в поле вставьте свой свежесозданный tron-адрес и нажмите Submit, после чего ваш адрес будет пополнен этими тестовыми trx-сами.
  3. Теперь настала пора установить кошелек TronLink, если он у вас еще не установлен и импортировать приватный ключ, попутно придумав название для этого адреса. Кошелек умеет работать как с главной сетью TRON-a, так и с тестовой Shasto-ой. Подробно здесь писать об этом кошельке не буду, так как в прошлом году написал целую статью про Tronlink.
    Теперь в настройках самого кошелька нужно переключиться с главной сети на Shasta, после чего будет корректно отображаться баланс.

Код смарт-контракта

Это наипростейший смарт-контракт, в который можно записать какую-нибудь фразу (сохранить в блокчейне), а потом прочитать ее:

Код у нас есть, теперь его нужна куда-то засунуть, чтобы скомпилировать и задеплоить. Те, кто делал контракты в Ethereum знает, что для него есть редактор http://remix.ethereum.org/ . Для Трона тоже есть подобный и располагается он по адресу https://tronsmartcontract.space .

Перейдите на этот сайт и нажмите Compose:

Откроется редактор с уже имеющимся каким-то кодом, который нам не нужен. Поэтому удаляем его и вставляем наш вышеописанный, чтобы получилось так:

Код смарт-контракта TRON

Теперь жмите Compile для компиляции. В появившемся окне Compile Params ничего не меняйте и просто нажмите Compile now:

Компиляция смарт-контракта в Трон

После некоторых раздумий контракт скомпилируется и выдаст отчет внизу страницы с возможностью скопировать ABI и Bytecode:

Смарт-контракт после компиляции

Теперь жмите кнопку Deploy it!. В появившемся окне ничего не меняйте и нажмите Deploy.

После этого появится окно запроса на разрешение проведения транзакции от кошелька TronLink (так как деплой стоит немного trx-ов):

Жмите Accept.

Итак, теперь наш смарт-контракт успешно задеплоен. Можно посмотреть подробности, которые отобразились внизу страницы редактора:

Задеплоенный смарт-контракт

В переводе звучит примерно так: контракт HelloWorld успешно задеплоен, стоимость деплоя составила 1,4 TRX. Хэш транзакции 03b5fe092decc4dabe98bb8b1da6dfebefce5cb4f343c4609bc45eb620fe8f22 и адрес самого только что созданного контракта TFBBGAzwhkQ4BTihBYQ34SUTQ7d1sVVFP9

У вас, соответственно, будут другие хэш и адрес контракта, поэтому запишите адрес контракта, сейчас мы будем с ним взаимодействовать.

Взаимодействуем с контрактом

Взаимодействовать с задеплоенным смарт-контрактом можно разными способами: можно сделать html-страничку с соответствующим javascript-кодом, можно делать это с помощью Node.js и других языков программирования в зависимости от потребностей. Благо наш редактор позволяет делать это прямо в нем.

Перейдите на главную страницу редактора, нажмите Interact, вставьте в поле адрес своего контакта и нажмите Show Contract:

Взаимодействуем с TRON смарт-контрактом

Редактор выдаст предупреждение что контракт не верифицирован:

Жмите Close, так как верификация сейчас не нужна.

Теперь вспомним, что в нашем контракте всего 2 функции: одна читает данные из переменной, другая записывает. Прежде чем читать нужно что-то записать, поэтому нажмите вкладку Write, в поле «value — string» напишите что-нибудь (в моем случае фраза «Это сообщение номер 1»), а потом нажмите send:

Помним, что запись в блокчейн платна и стоит немного trx-ов, поэтому появится окно кошелька Tronlink c просьбой подтвердить транзакцию. Жмите Accept.

(Стоимость записи в данном случае составляет десятые доли от 1 trx).

Теперь давайте проверим, действительно ли фраза записалась в блокчейн. Для этого нужно прочитать значение переменной message:

Чтение из смарт-контракта

нажмите вкладку Read, потом кнопку call под надписью Function getMessage:
Результат виден на скриншоте.

Итого

В этой статье я показал как задеплоить примитивный смарт-контракт. Его, конечно-же, можно усложнить, добавить каких-либо функций и так далее, можно даже сделать токен стандарта TRC20 или TRC721, в следствие чего возрастет и стоимость деплоя.

Контракт был задеплоен в тестовой сети. Чтобы задеплоить в реальной нужно сделать только одно: переключиться в настройках кошелька Tronlink с тестовой сети на реальную (Main) и (на всякий случай) перезагрузить редактор в браузере. А дальше делать все тоже самое, что описано выше. Соответственно, расплачиваться за создание и взаимодействие со смарт-контрактом вы уже будете не тестовыми, а реальными TRX-ами, которые должны быть на счету вашего кошелька.

Поделиться:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *