Больше никаких ошибок, связанных с неправильной сетью!

Как описано в подзаголовке, заставить пользователей переключиться на правильную сеть может показаться трудным. Особенно тем, кто плохо разбирается в криптопространстве или тем, кто, возможно, еще не добавил нужную сеть в MetaMask (смотрю на вас, Polygon).

К счастью, мы можем помочь пользователям немного больше, чем просто один баннер или уведомление. Мы можем позволить им войти в определенную сеть. Пользователь получит дополнительное всплывающее окно от MetaMask с вопросом, хотят ли они переключиться на правильную сеть. Давайте проверим это.

Настройка веб3

Установить базовое соединение с Web3JS не очень сложно, и я писал об этом несколько раз, в основном при использовании NextJS. Мы пропустим это для этой статьи и перейдем к сути.

Этот шаг должен убедиться, что мы можем подключиться к MetaMask. Когда мы подключены, мы можем проверить сеть, в которой сейчас находится пользователь, и предложить ему изменить ее.

MetaMask работает путем внедрения объекта ethereum в браузер. Мы можем проверить, существует ли он, а затем вызвать из него функции.

Мы получаем список accounts из MetaMask. Значение [0] — это текущий подключенный аккаунт. Этот небольшой фрагмент просто регистрирует публичный адрес учетной записи в консоли.

Мы также получаем текущую сеть, к которой подключен пользователь. Это будет иметь значение, такое как 0x1 , 0x89 и т. д., в зависимости от того, к какой сети они подключены. Мы можем создать оператор if (или тернарный ?: ) для запуска некоторого кода, когда они не находятся в нужной сети.

Сетевой коммутатор

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

Мы заключаем некоторый код в блок try catch для обработки ошибок. Пробуем переключиться на сеть 0x89 . В строке 13 мы добавим еще немного кода, чтобы помочь пользователям добавить новую сеть в свой MetaMask.

Добавление новой сети

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

С другим блоком try catch мы вызываем wallet_addEthereumChain, чтобы добавить новую сеть. В этом случае мы добавляем Polygon. Вы можете найти нужные строки для добавления на сайты сетей. Или вы можете поискать в Интернете «добавить сеть X в MetaMask», чтобы найти нужную информацию.

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

Заключение

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

Большое спасибо за чтение и хорошего дня.

Поддержите меня, поддержав Medium и став участником. Это очень помогает мне, не требует дополнительных затрат, и вы можете читать столько статей на Medium, сколько захотите!

Подписывайтесь на меня в Twitter и gm.xyz, чтобы не отставать от меня.

Посмотрите проект, автором которого я являюсь здесь.

Посмотрите мою последнюю коллекцию NFT на Polygon.