Рубрики
Без рубрики

Каждый разработчик Blockchain должен знать эти случаи использования Web3 и Metamask

Igor Yalovoy Каждый разработчик Blockchain должен знать эти Web3 и Metamask UseUpdateOn 2 ноября 2-й метамаск и другие браузеры DAPP будут перестать разоблачать учетные записи пользователей по умолчанию. Это сделает некоторый код из этой статьи, чтобы сломаться. Я буду публиковать обновленную версию с Web3 1.0 и новым метамаком

Автор оригинала: FreeCodeCamp Community Member.

Игорь Яловой

Обновлять

На 2 ноября Metamask и другие браузеры DAPP перестанут разоблачать учетные записи пользователей по умолчанию. Это сделает некоторый код из этой статьи, чтобы сломаться. Я опубликую обновленную версию с Web3 1.0 и новым интерфейсом Metamask.

Метамаск Это фактический стандарт для Dapps в Интернете. Он вводит экземпляр Web3 в окно, что делает его доступным для кода JavaScript.

Мы собираемся использовать версию Web3 0.20, а не Web3 1.0. Код для Web3 1.0 будет другим.

У каждого DAPP имеет свою миссию, но как они взаимодействуют с метамаском, похоже. В этой статье мы осмотрим десять наиболее распространенных методов для обработки взаимодействий Web3/Metamask.

# 1 Обнаружение метамаска и экземпляра Web3

По словам Документы Вот лучший способ сделать это.

Что здесь происходит? Во-первых, мы проверяем, вводили ли WEB3. Если он вводится, мы создаем новый экземпляр с использованием введенного поставщика. Это почему? Потому что мы хотим использовать нашу версию библиотеки, а не тот, который вводится Metamask.

Если Web3 нет, мы пытаемся подключиться к поставщику localhost, как Ганаш Отказ

# 2. Проверьте, заблокирован ли метамаска

Метамаск может быть установлен, но заблокирован. Чтобы взаимодействовать с учетной записью пользователя и отправлять транзакцию, пользователь должен разблокировать метамаск.

# 3 Проверьте текущую сеть

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

# 4 Получить текущий счет

Пользователь может иметь несколько учетных записей на метамаске, но они ожидают, что DAPP взаимодействует с текущим.

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

# 5 Получить баланс на текущем счете

Здесь мы используем функцию getaccount из # 4 и позвоните GetBalance Отказ Легкий.

# 6 Обнаружение того, что текущий счет изменился

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

# 7 Обнаружение ли метамаска заблокирована/разблокирована

Похож на # 6. Пользователь может заблокировать/разблокировать в любое время. Ваш DAPP должен обрабатывать это правильно.

# 8 Ручка отменить/подтвердить

Как только пользователь взаимодействует с вашим DAPP, вы должны отправить транзакцию с помощью API Web3. Пользователь может нажать кнопку Отмена или подтверждения на всплывающем окне Metamask. Это может привести к несоответствию UI, если не обрабатывается правильно.

Для того, чтобы вернуться мгновенно с транзакцией хэш, позвоните Contract.methodname.sendtransaction Отказ

# 9 Получить квитанцию транзакции

После того, как ваша транзакция Dapp будет доминирована, получение транзакции становится доступной. Тем не менее, нет события/уведомления, поэтому мы должны реализовать механизм опроса.

# 10. Слушайте события Web3

Собирающиеся события великолепны. Они позволяют переключаться с уродливого опроса до того, как только нажимной механизм, предполагая, что ваш контракт реализует все необходимые события. Вы можете полностью избежать опроса и просто реагировать на события. Обратный вызов события Возвращает Много данных, но мы в основном заинтересованы в args Отказ

Резюме

Независимо от того, что ваш DAPP о том, что он все еще должен выполнять общие задачи, такие как обнаружение Web3, получение состояния учетной записи и баланс, распознавая текущую сеть и обращение с транзакциями и событиями. Мы пошли за то, как это можно сделать, используя десять фрагментов кода.

Снимание

Многие примеры здесь используют методы, которые могут бросить ошибку из-за состояния метамаска или некоторых переменных, не определенных в момент вызова. Вы должны обернуть их в попробуйте/поймать в производственной среде. Async/await использовался здесь для простоты. Это можно заменить с обещанием тогда/поймать.

Социальное

  • Связь со мной на LinkedIn Отказ
  • Следуй за мной на Twitter Отказ

Хочу больше?

Как создать и развернуть свой собственный токен EOS Мы собираемся выяснить, что такое токен EOS и как вы можете создавать и развернуть его самостоятельно. Hackernoon.com Сколько стоит запускать DAPP в 2018 году Вы думаете, что ваш AWS или цифровой законопроект океана за ваш сайт убивает вас? Hackernoon.com Разница между этими жетонами Ethereum и EOS Ethateum имеет токен ERC-20, а EOS имеет EOSIO. Они служат той же цели, но они такие же? Medium.com.

Первоначально опубликовано ylv.io 15 октября 2018 года.