Ленивый майнинг NFT с автоматизацией браузера

Пару месяцев назад я решил проверить, что такое шумиха вокруг NFT. Мне удалось алгоритмически создать «художественную» коллекцию. Я добавил «искусство» в кавычки, так как я не художник. Я просто хотел узнать, что такое NFT… Поэтому я взял цифровой рисунок моей дочери и сделал программу для создания тысяч таких рисунков, добавляя различные черты (цвета, значки и т. д.) и контролируя их редкость. Та-да! Моя коллекция NFT была готова…

Затем я занялся чеканкой, то есть сделал их доступными в блокчейне.

Я выбрал ленивый метод чеканки, чтобы избежать предоплаты за газ. Ленивая чеканка — это, по сути, отложенная транзакция, в которой NFT торгуется на рынке как цифровой предмет, но записывается в блокчейн только после продажи. Также в интересах экономии времени я предпочел иметь готовый MVP (минимально жизнеспособный продукт), а затем узнать о смарт-контрактах и ​​dApps на более позднем этапе.

Было бы много ручной и повторяющейся работы, чтобы загрузить NFT одну за другой в OpenSea, а затем перечислить их… Поэтому я решил создать бота, чтобы сделать это за меня.

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

Предпосылки

  1. Ваше изображение NFT готово и названо последовательно: 1.png, 2.png, … и т. д.
    Также настроены соответствующие метаданные: 1.json, 2.json, … и т. д.
  2. У вас есть учетная запись OpenSea с подключенным кошельком MetaMask.
  3. Вы создали коллекцию OpenSea для хранения ваших предметов коллекционирования, а именно YourOpenSeaNftCollectionName.
  4. Вы установили selenium и webdriver_manager в своей среде Python.
  5. У вас есть расположение расширения Chrome MetaMask (файл crx).

Давайте начнем…

Убедитесь, что эти библиотеки импортированы:

Основные параметры определены ниже:

Программно запустите браузер Chrome и перейдите в OpenSea:

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

Вспомогательные методы

Подождите, пока текст не появится в элементе:

Большинство веб-приложений используют методы AJAX, поэтому, когда страница загружается браузером, элементы на этой странице могут загружаться с разными интервалами времени, что усложняет поиск элементов: если элемент еще не присутствует в DOM, функция find_elements вызовет исключение. Таким образом, мы ждем, пока не истечет заранее определенный тайм-аут, прежде чем мы прервемся.

Найдите элемент и нажмите на него:

Опять же, иногда элемент, который мы хотим щелкнуть, может быть не виден, поэтому после его обнаружения мы центрируем экран вокруг него, а затем щелкаем по нему:

Напишите текст в поле ввода:

Приведенный ниже код также обрабатывает символы Юникода, такие как эмодзи 🦸‍♀️:

Ленивая чеканка

Прочитайте метаданные токена:

Этот метод:

  1. читает файл json для данного идентификатора токена и
  2. обращается к соответствующим элементам json и возвращает их в виде кортежа.

Монетный двор один:

Этот метод:

  1. сначала переходит к конечной точке create коллекции,
  2. загружает изображение NFT,
  3. вызывает функцию read_token_info для получения метаданных токена и устанавливает имя, описание и все свойства [примечание: первое свойство всегда установлено, поэтому кнопка Add more нажимается properties_number - 1 раз],
  4. создает NFT и
  5. ждет подтверждения.

Чеканить их все:

Теперь прокрутите все ваши NFT и создайте их, вызвав функцию mint_token:

Вуаля!

Вот и все! Ваша коллекция NFT готова! Следуя приведенному выше примеру, теперь вы можете легко расширить его, чтобы перечислить свои NFT для продажи.

Спасибо за прочтение!

Я регулярно пишу о лидерстве, технологиях и данных на Medium — если вы хотите читать мои будущие публикации, пожалуйста, подпишитесь или подпишитесь!