Автоматизация рабочего процесса

Как разместить более 10000 наборов NFT на OpenSea

Итак, у вас есть 10 000 графических файлов в виде NFT, и вам нужно отчеканить их и составить список. Это, конечно, отнимает много времени! Можно ли это автоматизировать?

ОБНОВЛЕНИЕ TLDR №2. В статье на этой странице (то есть пропустите ссылку ниже и просто продолжайте читать) рассказывается об автоматизации «ленивого» / «безгазового монетизации». », Которые предлагает Opensea. Но это полностью отличается от предложений NFT в стиле монетного двора по требованию, которые, вероятно, именно то, что вам действительно нужно / нужно. Для этого вам понадобится генеративное художественное кодирование, страница чеканки и смарт-контракт. Итак, чтобы получить информацию о монетном дворе по запросу, перейдите сюда:



Но, как я уже сказал, для исходного текста статьи, в котором говорится об использовании макросов для своего рода загрузки 10 000 элементов в Opensea, читайте дальше:

Поскольку NFT являются относительно новыми (ну, недавно популяризированными), неудивительно, что даже для крупнейшего рынка доступный API не кажется таким полнофункциональным, как можно было бы надеяться на данном этапе. Я имею в виду, что могу ошибаться, но кажется, что OpenSea API (на момент написания) больше предназначен для извлечения, чем для публикации / чеканки / листинга. Все, что я вижу, это:

И это, конечно, здорово. Я уже использовал этот API, чтобы получать данные из моей коллекции в другие скрипты. Но, вау, когда вы только что создали 10 000 уникальных NFT и теперь хотите их опубликовать, это титаническая задача, состоящая в основном из повторяющихся задач. Кажется, созрел для API, и я полагаю, что он обязательно должен быть в разработке, если его еще нет, и я просто не могу его найти!

(ОБНОВЛЕНИЕ: Насколько я сейчас увлекаюсь NFT, я пришел к выводу, что вам нужен собственный смарт-контракт для пакетной обработки монетного двора. Вы не можете программно взаимодействовать с общим безгазовым контрактом OpenSea. так, как многие хотят. Но на самом деле, даже с вашим собственным смарт-контрактом, вы обычно не захотите производить чеканку партий, так как плата за газ сейчас была бы сумасшедшей. Вам нужна система чеканки по требованию. где покупатели могут прийти на ваш веб-сайт и отчеканить их сами с помощью транзакции, которая совершает покупку и доставляет NFT в их кошелек, таким образом показывая их в их учетной записи OpenSea и в вашей коллекции OpenSea, и за которую покупатель платит плату за газ. I есть информация об этом здесь, а также информация о моих услугах по генеративному программированию.)

В любом случае, казалось, что только грубая сила / ручной труд должны быть единственным выходом. Так было до тех пор, пока я не подумал, что с таким количеством повторяющихся задач, возможно, я мог бы просто настроить макрос. (Я говорю «просто», как если бы это было легко, что я бы точно не назвал.)

В любом случае, вот что я сделал и как это работает до сих пор!

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

Я подумал о своем раннем программистском концерте, на котором совершенно случайно женщина из штаб-квартиры Better Business Bureaus, которая в то время находилась в Арлингтоне, штат Вирджиния, сказала мне, что они собираются потратить на это около 30 тысяч долларов. проект по преобразованию одного типа файлов в другой, и это должно было занять около 3 месяцев. Когда она описала мне задачу, я подумал о макросах и смело заявил, что смогу сделать это примерно за месяц за половину стоимости. Так я и попал во фриланс.

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

Во всяком случае, листинг на OpenSea показался мне таким же. Итак, я пошел искать какое-нибудь программное обеспечение для макросов. Есть миллион вариантов, и я, честно говоря, не знаю, лучший ли у меня. Но Macro Scheduler мне показался приличным - мощным и недорогим. (Это не партнерская ссылка. Это просто к сведению.) Я думаю, что обычно это примерно 20 долларов в месяц, но на данный момент есть купон на 20% скидку, который дает вам постоянную ежемесячную подписку по цене около 16 долларов. Совсем неплохо, если вы собираетесь использовать программу.

Кривая обучения

Как и ожидалось, он не делал все сразу из коробки. Вы должны выяснить, как это работает, и действовать дальше. Я немного покопался, вероятно, нырнул немного быстрее, чем должен был, и подумал, что, может быть, лучше всего для меня просто нажать «запись» и посмотреть, какой код появляется, когда он записывает все, что я делал. (И эта запись, кстати, была полным беспорядком. НО она также показала мне часть кода для различных функций в программном обеспечении - и, если вы уже программист, это просто супер-полезно.)

Мой подход

Опять же, вам почти нужно быть программистом, чтобы действительно использовать такие вещи. Для меня задачей было заполнить веб-формы на основе таблицы Excel. (Чтобы перейти к этой части, я, конечно, написал программу для вывода всех моих данных NFT - имени / описания NFT, местоположения файла на моем компьютере, цены и т. Д. - в первую очередь в электронную таблицу.) Ну, об их «доказательстве» of concept »видео, показывающее, как их макропрограмма делает именно это, многие люди жаловались, что они не предлагают никаких примеров кода, как это сделать. Некоторые сказали, что показывают это просто для того, чтобы клиенты наняли их для написания собственных сценариев. Я не знаю ... Я имею в виду, было бы неплохо иметь некоторые отправные точки для этого, но опять же, если вы программист и видите что-то работающее в видео, вы в значительной степени полагаете, что можете что-то придумать.

Так или иначе, я купил это и просто погрузился в дело. И, как я уже сказал, я решил, что самый простой (или, лучший) способ сделать это будет, если я сначала сделаю электронную таблицу. Так что я сделал это и принялся за работу.

Большинство программ для макросов записывают координаты мыши и различные события, такие как ввод с клавиатуры, щелчки мыши, загрузка окон и т. Д. Итак, в итоге я получил очень точную настройку (то есть у меня были комментарии поверх моего кода, чтобы разместить окно OpenSea в точное место и в окне точного размера, а затем Excel чуть ниже). Могут быть более эффективные способы сделать это, но это не было сделано для общего выпуска; он просто должен был работать на моей личной машине.

Итак, у меня получилось много такого кода:

// MOVE MOUSE TO EXCEL
MouseMove>487,1170
Wait>0.1
LClick
Wait>0.1
// PRESS COPY (cursor to be in target cell to begin with!)
Press LCTRL
Wait>0.1
Send>c
Wait>0.1
Release LCTRL
Wait>0.1
// CLICK MOUSE TO ABOVE SCREEN:
MouseMove>354,1084
LClick
Wait>0.1
// PASTE INFO FROM EXCEL INTO **TITLE** FORM INPUT
Press LCTRL
Wait>0.1
Send>v
Wait>0.1
Release LCTRL
Wait>0.1
// MOVE MOUSE TO RIGHT OF SCREEN, CLICK TO scroll down:
MouseMove>1521,1084
Wait>0.1
LClick
Wait>0.1
// MOVE MOUSE TO **DESCRIPTION** FORM and CLICK!:
MouseMove>711,802
Wait>0.1
LClick
Wait>0.1
// PASTE INFO FROM EXCEL
Press LCTRL
Wait>0.1
Send>v
Wait>0.1
Release LCTRL
Wait>0.1

… и так далее. (Я не буду вставлять сюда весь свой код, так как он не будет иметь отношения к другим проектам. Но вы можете как бы разобраться в этом, просто взглянув на него.) В описании псевдокода я бы резюмируйте процесс следующим образом:

  • В вашей коллекции должна быть открыта страница OpenSea "create"
  • Спуститесь в Excel и скопируйте заголовок
  • Вернитесь в браузер OpenSea и вставьте его в заголовок
  • (Что касается меня, я также повторно использовал название в описании.)
  • Вернитесь в Excel, перейдите туда, где я сохранил путь к файлу
  • Вернитесь в OpenSea и щелкните загрузку файла / вставку этого пути. Это загружает файл (что, как я полагал, будет в 100 раз проще, чем открывать окно проводника и пытаться перебирать его).
  • Нажмите, чтобы создать актив / NFT
  • Подождите, пока эта страница загрузится / затем нажмите, чтобы ПОСЕТИТЬ NFT
  • Затем нажмите, чтобы ПРОДАТЬ NFT.
  • Затем вернитесь в Excel и узнайте цену для этого
  • Затем вернитесь в OpenSea, вставьте цену и щелкните, чтобы вывести ее.
  • Затем дождитесь MetaMask и сделайте макрос «подписать»
  • Тогда подождите, пока это закончится
  • Затем загрузите новую «страницу создания».
  • Затем перейдите в Excel, отметьте последний как выполненный и перейдите к следующей строке с помощью стрелки вниз.
  • Затем повторите все X раз. (Моя первоначальная процедура макросов продолжалась для 222 строк кода и включала цикл, чтобы я мог повторить процесс X раз.) Для повторения вы просто настраиваете цикл, например:
// SETUP LOOP:
Let>loop_count=0
Repeat>loop_count
// YOUR ENTIRE CODE HERE //
Let>loop_count=loop_count+1
Until>loop_count=2
// and of course you change the loop_count as you like.

Примечание. Их справочник по командам - огромная помощь!

Итак, как это работало?

Ну пока… прилично. С макросами вы должны их «настраивать», так как всегда есть место для улучшения, исправление ошибок или просто улучшение / оптимизация времени и т. Д. Я знаю, что раньше мне удавалось вручную выбивать почти два из этих списков за минуту. . И с этим макросом он обрабатывает… все еще два в минуту. ржу не могу. Таким образом, никакой гигантской экономии времени (поскольку у меня действительно был простой ручной процесс).

НО, большим преимуществом является то, что теперь он на 100% автоматизирован, и я могу делать другие вещи, пока это продолжается. Я перечислил 200 кошек NFTuxedoCats, используя этот метод. Но он еще не доведен до совершенства.

Любой программист знает, что тестирование имеет первостепенное значение. Как только это «сработало», я попросил его сделать несколько раз, а потом ничего не вышло. Затем я исправил эти проблемы и повторно протестировал, и это сработало. И тогда это не сработало. И так далее.

Подписать мою MetaMask оказалось сложнее, чем следовало бы. Не знаю почему, но это конкретное всплывающее окно какое-то время не взаимодействовало со мной. Я, наконец, заставил это работать (почти всегда), сначала щелкнув всплывающее окно, а затем дважды щелкнув кнопку «подписать». (Понятия не имею, почему это сработало, но я пойму.) (Этот код был :)

// SIGN METAMASK! -- kina weird clicking to make this work!!
WaitWindowOpen>MetaMask Notification
MouseMove>1229,672   // this was coords for just clicking into it
LClick
Wait>0.8
MouseMove>1400,840   // and this was where the "SIGN" button was
LDblClick
Wait>0.2
LDblClick
Wait>0.8     // and all of that above was me trying to get it to
             // actually click! (Which now it does.)

Я думаю, что самая сложная проблема - это хреновина Интернета, поскольку вы всегда ждете, когда окна откроются или перезагрузятся, а иногда в этом процессе просто возникают сбои. Я включил программу сегодня утром и поставил ее на 50 повторений, пока бежал в магазин. Когда я пришел домой, он сломался на 3-й или 4-й итерации. Итак, я убрал беспорядок и сбросил его, на этот раз попросив сделать 20 повторений. И я сидел и смотрел, как это безупречно исполняется.

И это усложняет задачу, потому что как программист вы хотите, чтобы что-то сломалось прямо перед вами, чтобы вы могли понять, в чем проблема, и встроить некоторую обработку ошибок для того, что бы это ни было. Но, по правде говоря, я знаю, что это были просто разные медленно загружающиеся страницы. В частности, OpenSea иногда может давать небольшие сбои. Я заметил это за несколько месяцев. Однако обычно это недолго - возможно, когда они запускают новый код или испытывают всплески трафика. Этого следовало ожидать.

Другие преимущества!

Еще одна интересная вещь из всего этого заключается в том, что я обнаружил, что вы можете сделать свои цены намного более динамичными, сделав это таким образом. Хотя некоторые генеративные наборы NFT имеют одинаковую цену, многим нравится повышать цены на более редкие NFT в наборе. Например, представьте, что вы можете присвоить своим NFT рейтинг редкости, от обычных до самых редких. Что ж, если вы можете это сделать (что я могу сделать в своей системе, и я полагаю, это довольно обычное дело и для других), то вы можете вывести индивидуальные расценки для электронной таблицы Excel. Например, этот кот…



… Встречается реже, чем 99,45% других выпущенных / перечисленных на данный момент. Итак, когда я создавал таблицу Excel для использования в листинге, я динамически устанавливал цену на 0,1ETH выше обычной. Это может не иметь большого значения для читателя вне контекста. Но в основном это способ интеграции ваших цен на NFT в ваш код, чтобы сделать листинг немного проще. Я помню, как в выходной код Excel вставлял одну строку, в которой говорилось: «Если это 10000-й NFTuxedoCat, сделайте цену 1 ETH. Просто так."

В любом случае, моя цель - сделать этот макрос очень надежным методом, который я * могу * включить и выйти из дома во время его работы (по крайней мере, до тех пор, пока я не смогу использовать API, чтобы сделать это намного лучше!). Я уверен, что доберусь туда вовремя. На данный момент, по крайней мере, это общее улучшение.

→ Понравилась статья? Если так, купите себе NFTuxedoCat! ←

ОБНОВЛЕНИЕ: по причинам, не связанным с этим макросом, я фактически решил только чеканить (не чеканить и список) в этот момент в моем проекте NFTuxedoCats. И это значительно упростило макрос (меньше шагов / меньше возможностей что-то пойти не так). Сегодня, например (7–20–21), я уговорил около 500+ кошек в течение нескольких сеансов, когда я мог оставить свой компьютер в покое. Макрос у меня несколько раз умирал (вероятно, из-за сбоев сервера OpenSea, которые случались сегодня несколько раз), но в остальном все работало хорошо! Я уверен, что через несколько недель у меня будет 10 000 чеканных кошек.

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



✍🏻 Джим Ди запускает GenerativeNFTs.io (подразделение NFT Array Web Dev.) на STL и PDX и предлагает услуги генеративного программирования NFT и разработки смарт-контрактов командам NFT по всему миру. Джим ведет блоги больше, чем следовало бы, и одержим NFT. Его роман 2019 года 🐕 CHROO 🐕 (веселое чтение о самой богатой собаке в мире - серьезно, пожалуйста, купите копию!), Возможно, был первым романом, который включил в текст настоящий криптографический адрес! Комментируйте или отправляйте по электронной почте в любое время: projectmanager [at] generativeNFTs.io.