Курс разработчика EOS. Часть 10. Cоздание собственной монеты. Эмиссия, перевод с аккаунта на аккаунт

avatar igorart 11 months ago

Назад Содержание

Mы будем запускать данный контракт отсюда -  ./build/contracts/eosio.token. Там находятся уже скомпилированные исходники.

Сначала создадим дополнительный кошелек, только не дефолтный(стандартный), как мы это делали в одной из предыдущих статей, а с именем eosioTokenWallet

cleos wallet create -n eosioTokenWallet

Cохраняем пароль от кошелька.

Два раза вводим команду 

cleos create key

Сохраняем две пары ключей, как мы это делали ранее

Импортируем ключи


cleos wallet import значение_вашего_Private_OwnerKey -n eosioTokenWallet
cleos wallet import значение_вашего_Private_Active_Key -n eosioTokenWallet

Не забываем про импорт приватного ключа провайдера eosio который у вас будет таким же (находится в файле config.ini)

cleos wallet import 5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3

Создаем аккаунт под названием eosio.token также, как мы это делали тут

cleos create account eosio eosio.token значение_вашего_Public_OwnerKey значение_вашего_Public_Active_Key

Стандартные контракты поставляются скомпилированными. Поэтому нам осталось  только задеплоить наш контракт

cleos set contract eosio.token ~/eos/build/contracts/eosio.token -p eosio.token

Проверим загрузился ли наш контракт. Если загрузился, то увидим в консоли следующее:

Пришло время создать свою монету (токен). Давайте дадим ей название, например WIT. Выпустим 10000 токенов  с точностью 3 знака после запятой.

Вводим в консоли:

cleos push action eosio.token create '["eosio","10000.000 WIT"]' -p eosio.token

Если все прошло успешно в консоли вы увидите

Рассмотрим подробнее, что же представляют собой параметры этой команды

eosio.token - аккаунт, к которому привязан контракт

create  - это action (что-то похожее на функцию) в который мы передаем параметры в квадратных скобках

 Сейчас давайте попробуем перечислить часть уже созданных нами монет, например 100, на аккаунт eoswitnessac, который мы создали в одной из предыдущих статье. Введем команду:

cleos push action eosio.token issue '["eoswitnessac","100.000 WIT","memo"]' -p eosio@active

В результате видим, что транзакция выполнилась успешно

Для того, чтобы окончательно в этом убедиться, проверим баланс нашего аккаунта eoswitnessac 

cleos get currency balance eosio.token eoswitnessac

Если появилось следующее сообщение в консоли, то все прошло успешно

Имея контракт, мы можем выпускать токены. Нам еще нужна возможность переводить токены с аккаунта на аккаунт. И у нас такая возможность есть.

Мы можем создать еще один аккаунт, как мы это делали ранеено для простоты, да и просто от лени(мы же программисты народ ленивый) давайте воспользуемся уже имеющимся контрактом eosio и переведем на него 10 наших токенов WIT с аккаунта eoswitnessac, у которого сейчас на балансе, после нашего последнего перевода, находится 100 токенов. Для этой операции мы воспользуемся action  transfere(), который находится у нас в контракте. Итак давайте сделаем это.

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

cleos wallet unlock

Все,мы окончательно готовы в хлам, теперь можно проводить операцию. Вводим в консоли 

cleos push action eosio.token transfer '["eoswitnessac","eosio","10.000 WIT","memo"]' -p eoswitnessac

И сразу же проверим баланс аккаунта, на который мы переводили монеты, как мы это делали выше

cleos get currency balance eosio.token eosio

Если после этого в консоли вы увидите следующее,

то монеты успешно  попали на баланс аккаунта eosio.

Резюме

В этой статье приобрели знания о том, как запускать  смарт-контракт и выпускать собственный монеты (токены), а также переводить их на другие аккаунты.

Для всех, кому инетерсен EOS, присоединяйтесь в эту группу в телеграме.

 

Полный список статей вы можете найти тут.

Назад Содержание