Проверка вашего смарт-контракта в EtherScan с помощью HardHat.

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

Это также позволяет им легко вызывать view функции, например, чтобы узнать, кому принадлежит конкретный токен. Или, что мне больше всего нравится, они могут использовать ваш смарт-контракт, чтобы научиться создавать свои собственные.

В этой статье мы рассмотрим все, от создания и развертывания смарт-контракта до его проверки. Если вы хотите узнать только о проверке контракта, прокрутите вниз до заголовка «Проверка».

Создание смарт-контракта

Чтобы проверить смарт-контракт, нам сначала нужно его создать. Я создам оченьминимальный смарт-контракт NFT, реализующий ERC721 от OpenZeppelin. Это простой способ привыкнуть к проверке контракта, который не требует особых усилий. Давайте начнем.

Настройка

Во-первых, давайте настроим среду HardHat, запустив npx hardhat в терминале. Если вы получили сообщение об ошибке, попробуйте обновить Node.

  • Создать проект ТС
  • Установите все зависимости. (Это включает @nomiclabs/hardhat-etherscan, что нам нужно для проверки контракта.

После настройки HardHat нам все еще нужен контракт OpenZeppelin ERC721. Мы можем получить его, запустив npm i @openzeppelin/contracts .

Теперь вы можете создать новый файл в /contracts и создать наш простой смарт-контракт.

Создание

Смарт-контракт, который мы собираемся создать, импортирует только ERC721 из OpenZeppelin и имеет функцию mint, которая вызывает _safeMint. На самом деле нам не нужны какие-либо функции для проверки контракта, но таким образом вы можете использовать их для выполнения других руководств.

После добавления этого файла NFT.sol в папку /contracts вы можете запустить npx hardhat compile, чтобы проверить, нет ли ошибок. Затем мы можем приступить к развертыванию смарт-контракта в тестовой сети Goerli.

Развертывание

Чтобы развернуть смарт-контракт, нам нужны четыре вещи.

  • Получите кошелек с тестовой сетью Ether. Вы можете получить тестовый эфир из таких сборщиков, как Goerli faucet. Некоторые сборщики требуют, чтобы вы тем или иным образом подтвердили себя. Некоторые требуют, чтобы вы твитнули, другие зарегистрировали учетную запись или просто сделали капчу.
  • Получите URL-адрес Ethereum RPC. Самый простой способ — просто зарегистрироваться на Infura.io. Регистрация бесплатна, и вы можете пользоваться услугами бесплатно, а также для небольших (хобби) проектов.
  • Обновите файл hardhat.config.ts, включив в него свой закрытый ключ и правильные сетевые настройки.
  • Создайте сценарий развертывания и запустите его.

Первые два вы должны сделать сами. Но я могу показать обновление файла конфигурации.

Мы добавляем сеть с URL-адресом нашего узла, нашу учетную запись с tesnet ETH для развертывания и переменную для газа, которая является необязательной (но иногда устраняет проблемы).

Теперь мы можем создать наш сценарий развертывания внутри /scripts. Опять же, мы используем очень простой скрипт, который развертывает смарт-контракт только в нашей сети по умолчанию. После развертывания он выводит адрес смарт-контракта.

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

npx hardhat compile
npx hardhat run scripts/deploy_NFT.ts

После развертывания мы можем перейти к проверке смарт-контракта. Но вы уже можете просмотреть контракт на EtherScan, вставив адрес контракта в строку поиска на EtherScan.

Проверка

Если вы уже зашли так далеко, молодцы! И если вы пропустили вперед, добро пожаловать! Вы не многое упустили, если у вас уже развернут смарт-контракт. Давайте проверим это.

Во-первых, нам нужно импортировать пакет hardhat-etherscan в наш файл конфигурации.

Затем нам нужно добавить наш ключ API EtherScan в нашу конфигурацию. Если у вас его нет, вам необходимо создать учетную запись и создать новый ключ API. Это бесплатно для небольших проектов и совсем не проблематично.

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

npx hardhat verify <your deployed contract address>

А потом бум.

Мы проверены.

Если вы хотите указать какие-либо дополнительные настройки для проверки, такие как параметры конструктора, которые вы установили, вы можете ознакомиться с официальной документацией.

Заключение

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

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

Подпишитесь на меня в Twitter и gm.xyz, чтобы быть в курсе меня и моих проектов.

Проверьте Pixel Pizzas на блокчейне Polygon.