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

В предыдущем уроке мы залили смарт-контракт нашего токена в сеть Ethereum. Давайте посмотрим как можно взаимодействовать с ним с помощью Myetherwallet. Если вы заметили, в коде контракта есть несколько функций, их результат мы можем наглядно увидеть.

Переключитесь в Myetherwallet на вкладку контракт -> Interact with contract (в переводе — взаимодействие с контрактом). В поле Адрес контракта вставьте адрес нашего контракта, а в поле ABI / JSON интерфейс аби который скопировали в предыдущем уроке. Не перепутайте ABI и Bytecode. После этого нажмите Подключиться. Получиться должно так:

Взаимодействуем со смарт-контрактом Появится выпадающее меню со списком функций нашего контракта.

Функции смарт-контракта

Выберите name и отобразиться то что у нас в коде сохранено в константе name, то есть название нашего токена Simple Ethereum Token.

Выберите Symbol и увидите трехбуквенный код токена SET.

Выберите totalSupply и увидите общее кол-во выпущенных токенов. Не удивляйтесь такому огромному числу — 10000000000000000000000000. В константе decimals мы указывали 18 нулей после запятой, уберите их из этого огромного числа и получим наши десять миллионов 10 000 000. Зачем так сделано я объясню в следующих уроках.

Функция transfer (не путайте с transferFrom) позволяет перевести токены на другой адрес. Запомните, если у вас на балансе есть какие-нибудь токены и вы хотите их кому-либо перевести из Метамаска, Myetherwallet или другого кошелька, нажимая кнопку Отправить они не отправляются как-то сами по себе, они выполняют заложенную в коде каждого контракта функцию transfer.
Чтобы отправить, к примеру, 5 токенов кому-либо в поле _to address впишите адрес получателя, а в поле _value uint256 напишите 5 с 18 нулями, то есть 5000000000000000000. После нажмите Записать.
Но если вы захотите перевести 5 токенов с помощью Метамаска или в Myetherwallet в разделе Перевести эфир и токены, то 18 нулей дописывать не надо, пишите просто 5. Они сами добавят эти нули исходя из значения константы decimals.

balanceOf выдаст нам количество токенов на балансе того или иного адреса. Можете вставить свой адрес или адрес того кому перевели 5 токенов и увидеть баланс. Не удивляйтесь ответу, помните про 18 нулей.

Другие функции в выпадающем списке рассмотрим в следующих уроках.

Блокэксплореры наподобие Etherscan или Ethplorer, биржи, кошельки типа Myetherwallet или Метамаска и подобные именно таким образом и осуществляют взаимодействие с токенами, вызывая ту или иную функцию из кода.

Вы можете поиграться таким образом с любым контрактом из тестовой или главной сети.

Читайте также:

Поделиться:

Комментарии 7

  • Меня интересует следующее: возможно ли сделать прямое взаимодействие со смартконтрактом в Ethereum через javascript: пользователь авторизуется, производит переводы, использует функционал и т.п.
    Знаете или нет Steem — вот как там API. Можно ли такое сделать со смартконтрактами Ethereun?
    P. S. У вас есть статьи по созданию смартконтрактов для EOS, их запуску, нюансам, измерениям затрат вероятныхх по ресурсам и т.п. Хочу научиться делать смартконтракты для еоса на C++.
    Благодарю.

    • Да, конечно. Есть библиотека web3.js https://github.com/ethereum/web3.js , с помощью нее можно сделать взаимодействие с контрактами.

      По созданию контрактов на EOS пока нет статей, будет время напишу, но там посложнее будет, так как делать их надо из под Линукса, просто в браузере не получится, EOS еще не оброс такой же инфраструктурой как Эфир.

  • Ещё интересует, как рассчитать, где выгоднее запустить DApp: в EOS, Ethereum или где ещё.

  • Подскажите пожалуйста, как забрать Эфир со смарт контракта? Развернул сеть, купил токены, а эфир пришел не на адрес указанный в коде, а на смарт контракт, как его достать оттуда — не пойму

    • Контракт из статьи про ICO часть 1 ? Если да, в Myetherwallet запустите функцию transferEthers, все эфиры перешлются с адреса контракта на ваш адрес

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

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