Как создать свой токен EOS
Что такое токен EOS?
В отличие от Ethereum, на EOS токен входит в стандартный комплект смарт-контракта. Если на Ethereum есть токены стандарта ERC-20, то на смарт-контрактах EOS стандарт токена называется eosio.token. С помощью этого смарт-контракта вы сможете создавать свои токены, устанавливать их название и объем максимальной эмиссии, вводить какое-то их количество в обращение и пересылать с аккаунта на аккаунт. Токены EOS в блокчейне EOS выпускаются в соответствии с таким же контрактом.
Параметр «url» показывает, к какой ноде вы подключены. Информацию о конечных точках API можно узнать на официальном сайте проекта.
Установка cleos
Cleos — это утилита командной строки для взаимодействия с нодами EOS (nodeos) в REST API. Для того чтобы взаимодействовать с блокчейном EOS, необходимо отправлять команды в cleos. Установить cleos можно с помощью Docker, AWS Image или совместимого кода. В результате cleos будет установлен на вашем терминале.
Создание кошелька
«Кошельки — это клиентские программы, в которых хранятся ключи, связанные (или несвязанные) с правами на один или более аккаунт. В идеале у кошелька есть закрытое (зашифрованное) и открытое (расшифрованное) состояние, защищенное паролем с высокой энтропией. Репозиторий EOS оснащен интерфейсом командной строки cleos, которая связывает ноды с компонентом keosd», — из раздела «Аккаунты и Права».
Давайте создадим кошелек и назовем его Treasure
Пароль от этого кошелька нужно будет хранить в безопасном месте, потому что, если вы его потеряете, то никогда не сможете восстановить ключи, находящиеся в этом кошельке.
Теперь надо создать две пары ключей для обоих видов прав: права собственности и права активности. После этого мы импортируем их в наш кошелек.
Создание аккаунта
«Чтобы что-то делать в блокчейне EOS, нужно иметь в нем аккаунт. Аккаунт — это удобочитаемое имя, которая хранится в блокчейне. Он может принадлежать одному человеку или группе лиц в зависимости от настройки прав. Аккаунт необходим для совершения каких-либо транзакций в блокчейне», — из раздела «Аккаунты и Права».
По сути аккаунт — это набор публичных и приватных ключей, привязанных к конкретному имени. Ключи хранятся в кошельке. Аккаунты хранятся в блокчейне EOS.
Если у вас уже есть аккаунт с каким-то количеством EOS, то чтобы завести локальный аккаунт, вы просто набираете в командной строке cleos create account, но создать аккаунт в сети EOS Mainnet вы так не сможете. Для создания аккаунта в Mainnet вам нужна будет помощь кого-то, у кого такой аккаунт уже есть, и это не бесплатно.
Более того, вы можете создавать только аккаунты длиной 12 символов, используя строчные буквы от a до z и цифры от 1 до 5. Впрочем, это очень жесткие ограничения. Для создания более коротких аккаунтов вам придется участвовать в аукционах. Так как аккаунты EOS можно перепродавать, лучшие имена будут быстро захвачены компьютерными скваттерами. С учетом всего этого и для экономии времени и денег мы сейчас в учебных целях заведем аккаунт не в Mainnet, a в Testnet.
Тестовая сеть EOS Jungle Testnet — это почти точная копия Mainnet. Идите на jungle.cryptolions.io и нажмите на ссылку «Create Account». Вас попросят ввести имя аккаунта и два ключа. Используйте два публичных ключа, созданных ранее.
Подтвердите создание аккаунта:
Теперь нам надо купить немного оперативной памяти, чтобы опубликовать наш контракт. В блокчейне EOS есть специальная площадка, на которой память продается по рыночной цене с учетом спроса и предложения. Для людей с деньгами это отличная возможность заработать на спекуляции.
Переведите несколько токенов EOS на ваш счет с помощью крана EOS Jungle Testnet Faucet.
После этого наберите в командной строке cleos system buyram, чтобы купить оперативную память на токены EOS.
Создание контракта
Прежде всего нам надо загрузить наш контракт в блокчейн. Для этого надо набрать в командной строке cleos set contract и установить следующие параметры:
- account — аккаунт, к которому относится контракт.
- contract-dir — директория контракта.
- wast-file — файл формата WAST или WASM, содержащий текстовую версию контракта.
- abi-file — ABI описание контракта.
Как можно заметить, необходимо указывать файлы wast и abi. Если вы создаете контракт с помощью исходного кода, то можете найти их в папке ./build/contracts/eosio.token/. Для нашего удобства вот тут хранятся оба эти файла — wast/abi. В командной строке set contract введем имя нашего аккаунта. Поскольку наши файлы wast/abi называются так же, как и директория, эти параметры можно опустить.
Теперь проверим, загрузился ли наш код, набрав команду get code ylvdeveloper.
Да, все в порядке.
Создание токена
Наконец мы можем создать и выпустить собственный токен. Для этого нам нужно выполнить действия create и issue в команде push action, указав следующие параметры:
- contract — аккаунт, к которому привязан контракт.
- action — действие, которое должно быть выполнено по этому контракту.
- data — условия контракта.
Давайте создадим и выпустим в обращение токены YLV.
Мы только что создали токен YLV с максимальным объемом эмиссией 1 млн. Теперь положим 1000 токенов на аккаунт ylvdeveloper.
Проверим баланс.
Отлично. У нас есть контракт, и мы можем выпускать токены. Что нам еще нужно? Возможность переводить токены с одного аккаунта на другой. Наберем в cleos команды push action и transfer. Нам нужен аккаунт, на который мы переведем часть наших токенов. Создадим его точно так же, как мы создали ylvdeveloper. Теперь перешлем 100 токенов от ylvdeveloper к ylvio.
Сверим балансы:
Все прошло по плану.
Заключение
Мы прошли весь путь: от установки cleos и понимания того, как устроен стандарт eosio.token до выпуска собственных токенов и перевода их на другие аккаунты. Всего этого мы добились с помощью тестовой сети EOS Jungle Testnet, которая почти ничем не отличается от EOS Mainnet. В Mainnet все будет работать точно так же, только нужно будет использовать другие конечные точки API и заплатить за аккаунты и оперативную память.
Источник: cryptocurrency.tech