FA1.2 LIGO
Работа со стандартом FA1.2 используя LIGO и Taquito
Вступление
Данный раздел направлен на то, чтобы показать каким образом можно создавать (развертывать) и инициировать контракт FA1.2, написанным на PascaLIGO, используя Taquitto toolkit.
Taquito является библиотекой TypeScript, которая позволяет более легко взаимодействовать с блокчейном Tezos, а также со смарт-контрактами. Разработчики могут вызывать точки входа контрактов, как если бы они просто были объектами JavaScript или TypeScrypt.
Мы создадим смарт-контракт FA1.2 в тестовой сети Tezos.
Когда мы создаем контракт, то нам нужно инициировать хранилище самого контракта с начальными значениями. Два основных параметра параметра - это количество токенов, а также адрес на котором будет хранится эмиссия.
До того как мы создадим контракт, нам понадобится адрес Tezos, а также немного токенов Tezos для "оплаты горючего", которая взимается за вызов смарт-контракта. Стоимость "горючего" оплачивается исключительно через токен Tezos(XTZ), но никак не с помощью созданных далее через контракт токенов.
Чтобы получить новый адрес в тестовой сети, посетите сайт Вилки(eng. Faucet): faucet.tzalpha.net и нажмите на кнопку "Get ꜩ".
Сохраните файл вилки на ваш компьютер и назовите его faucet.json
. Открыв сам файл, вы сможете там найти значение свойстваpkh
, которое имеет адрес контракта Tezos, начинающийся со значения tz1
. Скопируйте этот адрес и сохраните, так как он вам понадобится в следующем шаге.
Создание контракта FA1.2
Вы можете использовать Taquito для создания контракта, но для краткости этого материала, мы используем LIGO web-ide для разворачивания нового смарт-контракта сети Tezos.
Документация по созданию смарт-контрактов с помощью инструмента Taquito может быть найдена по этой ссылке.
LIGO Web ide использует Taquito, и вы можете найти его открытый код по следующей ссылке.
Пример использования стандарта смарт-контракта FA1.2( и даже больше!) используя Taquito может быть найден тут.
Для развертывания вашего актива контракта:
Выберите действие «Deploy/Развертывание» в раскрывающемся списке «Configure/Настройки».
В поле ‘Storage‘ вы должны увидеть изначальные данные по этому смарт контракту. Измените следующие два значения:
Замените
YOUR_TZ_ADDRESS
на адрес, который вы скопировали ранее с файла вилки .json.Замените оба значения
TOKENS
на то количество токенов, которое вы хотите выпустить.
Когда вы выберете “Deploy/Развертывание‘, далее нажмите на ‘Run/Запустить’. После этого процесс развёртывания контракта должен начаться (обычно занимает несколько минут).
Когда развертывание контракта успешно завершилось, скопируйте адрес только что созданного контракта. (По желанию вы можете просмотреть ваш контракт через любой блокчейн-эксплорер)
Теперь только что созданный контракт уже имеет эмитированные токены на вашем адресе Tezos используя ваш ключ вилки.
Использование Taquito Для Перевода токенов Контракта
Давайте используем Taquito для трансфера токенов!
Мы предполагаем, что у вас есть новый TypeScript или JavaScript проект, и вы используете
npm.
Установите Taquito в ваш новый проект :
Создайте новый файл для нашего примера, который называется, например fa_taquito.ts
Импортируйте основной пакет Taquito в ваш проект.
Следующий код загружает и применяет приватный ключ из файла faucet.json
, который мы создали ранее. Код использует подпись в памяти Taquito, которая удобна для разработки и тестирования. Однако ее использование в продакшне не рекомендуется . Для продакшена используйте настоящий кошелёк или инструмент удаленной подписи с поддержкой HSM.
Далее мы должны сделать запрос по поводу контракта, который мы создали ранее, к блокчейн сети.
Когда этот код выполняется, Taquito извлекает код контракта из сети и динамически генерирует методы для вашего объекта контракта, которые соответствуют точкам входа FA1.2. Эти методы - ‘абстракция’, которая предоставляется Taquito для более интуитивного взаимодействия со смарт контрактами с точки зрения языка JavaScript.
Теперь мы можем выполнить трансфер наших токенов между нашим адресом и другим адресом.
Перевод 2
токенов является таким же простым, как и вызов функции contract.methods.transfer()
. В первую очередь давайте настроим переменные src
и dst
.
Теперь нам нужно сделать вызов transfer
метода в нашем контракте:
Теперь мы можем запросить баланс для каждого адреса следующим образом:
Теперь вы обладаете базовыми знаниями по взаимодействию со стандартом контракта FA1.2 на блокчейне Tezos с использованием Taquito. Мы использовали LIGO в этом уроке, но Taquito работает с любым смарт-контрактом Tezos.
Материалы разработаны TQ Tezos переведены на русский язык Tezos Ukraine
Last updated