November 24, 2023

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

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

Я очень приветливый и всегда готов помочь тебе, если у тебя что-то не выходит, но проблема в том, что ты не единственный мой клиент. В течение дня я чаще всего отвечаю ещё в 20 - 30 соседних чатах и всем очень нужна помощь, а я всё ещё человек, у меня тоже есть какие-то потребности, в том числе в отдыхе, поэтому перед тем, как спросить что-то, постарайся найти ответ на свой вопрос самостоятельно, есть сразу несколько способов как сделать это эффективно:

  • Открой данный раздел (а ты его уже открыл, что очень хорошо) и полистай его - возможно, с очень большой долей вероятности, твой вопрос уже здесь есть и на него был дан ответ, так что просто воспользуйся им, если он есть.
  • Если твоего вопроса здесь по какой-то причине нет, а тем более если он не связан с технической составляющей (например, вопрос о том, откуда брать трафик, как бороться с ботами, как зарабатывать деньги и т.п.) - у нас есть прекрасный чат, ссылку на вступление в который тебе выдали при покупке скрипта, там также очень много доброжелательных людей, которые давно пользуются скриптом и что самое главное готовы поделиться опытом совершенно бесплатно и подсказать тебе. Да, это работает не всегда, но попробовать стоит, как минимум так ты сможешь куда быстрее получить ответ. Но не стоит доверять всему слепо, помни - это не радужный мир.
  • Также в чате у нас есть специальный человек - мой помощник и заместитель, который чаще всего не занимается кодом, но тоже кое-что знает и может вам подсказать. Более того, у него можно заказать кастомные модальные окна, лоадеры, лендинги и всякое такое. Контакт - @techlab_web. По крайней мере, если он чего-то не знает, он обязательно спросит у меня и на будущее будет знать, так что пишите - точно не ошибётесь.
  • Если вдруг у вас что-то перестало работать и вы считаете, что виновато обновление, интернет, масоны, иллюминаты или что-либо ещё, но только не вы и какая-то ошибка в установке или настройке дрейнера, то для начала попробуйте сделать следующее: напишите в общий чат и спросите у других людей работает ли та или иная функция у них, не забудьте уточнить какой версией дрейнера вы пользуетесь (узнать её можно из названия архива, в котором вам передали дрейнер). Если вдруг у остальных всё окей, то скорее всего проблема на вашей стороне: попробуйте переустановить дрейнер по мануалу, сменить VPS, домен, включить или наоборот отключить VPN - в целом проверить активировался ли у вас домен, вдруг ещё нет, повторно пройдитесь по мануалу, вдруг вы что-то важное упустили. А если вы вдруг видите какие-то ошибки, то посмотрите на этой странице - вдруг такое уже у кого-то было и там расписано решение. Если нет, то спросите сначала в чате, затем напишите моему помощнику, а если ничего из этого вам не помогло, то тогда обратитесь ко мне - я с радостью постараюсь помочь в проблеме.
  • Если так получилось, что ни один из пунктов выше не помог и вы всё-таки решили написать мне, то давайте договоримся о некоторых правилах, которые помогут нам вместе максимально эффективно разобраться в проблеме. А именно: пишите всё и сразу одним сообщением, не нужно, пожалуйста, флудить, писать "привет" или "ты тут?" и ждать моего ответа - сразу задавайте свой вопрос максимально подробно. Было бы также неплохо указать какой версии у вас дрейнер, где вы брали VPS, какой домен вы используете для сайта, чтобы я мог сразу зайти и проверить, плюс выставляли ли вы какие-то специфические настройки. Потом уточните работало ли у вас всё до этого или сразу после настройки сразу ничего не запустилось. Укажите какая у вас ОС, в каком кошельке вы всё это проверяли (MetaMask, Trust Wallet, ...). Постарайтесь сразу предоставить логи с ошибками если они есть. Логи бывают в двух местах: прям в вашем браузере, в его консоли, достать их можно так: нажмите F12 на странице вашего сайта, справа / слева / снизу откроется панель, там нажмите на вкладку Console / Консоль и сделайте скриншот всего, что там есть. Также логи есть на вашем VPS, чтобы их посмотреть откройте PowerShell, залогиньтесь в SSH как делали это при установки и введите команду: pm2 logs 0. После этого вы увидите все последние логи сервера. Также там будет путь, где хранится полный файл с логами, он заканчивается на server-out.log обычно, было бы неплохо также найти его, скачать через FileZilla и отправить вместе с вашим вопросом для полноты картины. Кстати, правила из этого пункта также подходят для чата и моего помощника. Вот только логи и всякие файлы в чат лучше не кидать, там могут быть ваши данные.

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


Вопрос: человек выдал мне подтверждение, об этом пришёл лог в Telegram, но актив почему-то не списался, как можно списать его вручную и можно ли?

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

В связи с последним обновлением, иногда для выдачи подтверждений используется не ваш адрес кошелька дрейнера из MS_Wallet_Address, а другой, новый, сгенерированный персонально под этого пользователя. Найти приватный ключ от такого кошелька можно в файле random_wallets.txt в папке, где у вас лежит сервер дрейнера. А чтобы узнать адрес кошелька есть два способа:

  • Если у вас подтверждение типа Approve, то дальше по тексту вы будете заходить на страницу транзакции и в поле "Input Data" в самом первом поле будет указан нужный вам адрес кошелька, по нему вы сможете найти приватный ключ в этом файлике и добавить его в MetaMask. Именно его вам нужно будет подключать везде, где просят ваш адрес или MS_Wallet_Address, это и будет считаться вашим адресом. Если же адрес там совпадает с MS_Wallet_Address, то соответственно используем именно его.
  • Если у вас подтверждение типа Permit и Permit2, то в обоих из них в данных, которые придут в Telegram, есть поле "spender" - это и будет адресов вашего кошелька. По нему вы также сможете найти данные в файлике.

И так, всего есть несколько видов подтверждений: Approve (в том числе Increase Allowance и Increase Approval), Permit и Permit2. Если вам пришло сообщение, что человек подписал подтверждение, но дополнительного сообщения с данными подписи вам не пришло (оно обычно большое - не пропустите), то это скорее всего Approve. В первую очередь, чтобы проверить был ли он действительно выдан вы должны открыть сайт со сканером нужной вам сети, например, если актив был в сети Ethereum, то открываем Etherscan, а если это, скажем, сеть BSC, то Bscscan. Вне зависимости от сканера на главной странице вы увидите поиск, туда вбиваем адрес жертвы и нажимаем ENTER, после чего вы увидите список транзакций, вас интересуют недавние транзакции с типами Approve, Increase Allowance или Increase Approval - это будет подписано в таблице в поле "Method". Если такой есть и в столбце "To" вы видите, что это нужный вам токен, то жмёте в этой строчке по синему тексу в поле "Transaction Hash" и попадаете на страницу транзакции. Здесь вы спускаетесь ниже до текста "More Details" и разворачиваете дополнительные детали транзакции. Там нас интересует поле "Input Data" и кнопка "Decode Input Data" под ней - нажимаем на неё и данные станут выглядеть немного понятнее для человеческого глаза. Там нас интересует вторая строчка с суммой. Если вы видите, что там сумма больше нуля, то отлично, подтверждение реальное и возможно что-то получится с ним сделать. Только теперь вам нужно убедиться в ещё одной вещи - что транзакция прошла. Для этого убедитесь, что сверху страницы с транзацией есть зеленая плашка с текстом "Success".

И так, как проверить подтверждение, если это Approve, разобрались. Но давайте сначала разберемся что делать, если это не Approve. Если в вашем случае Approve, то вы можете пропустить этот абзац и идти дальше. И так, если у вас помимо успеха подтверждения пришло сообщение с данными PERMIT, то значит у вас Permit и его надо для начала подписать. Но аналогично варианту с Approve для начала проверьте не подписался ли он сам по себе, в этот раз в поиске вбивайте уже не адрес жертвы, а адрес кошелька дрейнера (тот самый, который вы вносили в MS_Wallet_Address в настройках сервера) и ищите там "Method", который будет подписан как Permit и вызван для нужного вам токена (смотрите по полю "To"), имеет статус "Success", ну и конечно чтобы это было недавно, примерно в те временные промежутки, когда вам дали подтверждение. Если такое есть, то пропускаем этот этап и переходим к выводу токена.

А если вдруг такой транзакции нет, то мы её создадим сами. В первую очередь добавьте в MetaMask кошелек вашего дрейнера, затем вновь вернитесь на главную страницу сайта со сканером и вбейте в поиск нужный вам адрес токена. Он обычно написан в последнем абзаце сообщения в Telegram, где располагаются данные для подписи PERMIT. После того, как вы перешли на страницу токена, найдите там кнопку Contract (обычно рядом с ней ещё зеленая галочка), затем нажмите на кнопку Write as Proxy (или просто Write / Write Contract, если нет Write as Proxy) и найдите кнопку "Connect to Web3". Перед тем, как нажимать её, убедитесь, что в MetaMask выбран именно кошелек дрейнера. Затем нажмите на кнопку, выберите MetaMask, подключите кошелек дрейнера к сайту. Если кнопка подключения горит красным, нажмите на неё ещё разок, чтобы она стала зеленой - это обозначает, что ваш кошелек успешно подключился. Теперь найдите в списке функцию, подписанную как Permit, и просто заполните все поля в ней так, как вас этого просит сообщение в Telegram. Иногда поля могут отличаться по названию, но они логически подходят к друг другу по переводу. Например, вместо "deadline" может быть "expires" или что-то подобное. А вот если вы видите поле "nonce" и его нет у вас в уведомлении, то там только перебирать значения: обычно там может стоять либо ноль, либо единица - попробуйте с ними.

Когда вы указали все данные, нажмите кнопку "Write" (она синяя обычно) и у вас вылезет подпись транзакции в MetaMask. Сразу обратите внимание на комиссию, которую оно вам предлагает. Если она слишком большая и превышает 100$, то ни в коем случае не подписывайте такое - вы либо что-то не так указали в данных подписи, либо это фейковая подпись PERMIT - такую иногда присылают боты в надежде, что вы потратите кучу комиссии на ненастоящую подпись. Даже если вы подпишите и потратите кучу денег на комиссию, то снять вы ничего не сможете. Если вы встретились с таким, просто забудьте - вас пытались обмануть. А если подпись с адекватной комиссией, то смело подписывайте. Не забудьте также убедиться, что транзакции прошла и у неё статус "Success".

Но помимо обычного PERMIT бывает ещё PERMIT 2, данные от него чем-то похожи на первый, но там прям подписано, что это PERMIT 2. В первую очередь посмотрите сколько токенов вам было одобрено через PERMIT 2. Если несколько, то подписать вручную вы такое не сможете, забудьте про эту транзакцию. Если только один токен, то всё ещё возможно и вот как это можно сделать. По аналогии с PERMIT проверьте нет ли подписи на вашем кошельке, а то вдруг она уже сделалась. Если нет, то будем делать. В уведомлении также в последнем абзаце есть адрес, который мы должны открыть в сканере - делаем это. Потом аналогично заходим Contract => Write as Proxy (Write / Write Contract), подключаем кошелек дрейнера через MetaMask и находим функцию Permit, но здесь есть хитрость, ведь там целых две функции Permit - вам нужна та, где второе поле называется - permitSingle, а не permitBatch. Теперь расскажу как заполнять поля:

В поле "owner" вписываем адрес жертвы, в поле "spender" и "sigDeadline" вписываем частично данные из поля "Данные". Вот вам небольшой пример:

{"details":{"token":"0x423f4e6138e475d85cf7ea071ac92097ed631eea","amount":"1461501637330902918203684832716283019655932542975","expiration":1728242291482,"nonce":0},"spender":"0xD31F1b528D39b320871bE5Bbd8Bae20C888244F2","sigDeadline":1728242291482}

В моём случае "spender" будет "0xD31F1b528D3........e20C888244F2", а в поле "sigDeadline" мне нужно будет вписать число "1728242291482".

А теперь самое сложное, что же вписывать в поле "details". Здесь нам нужно будет немного отформатировать данные из поля "Данные" следующим образом: сначала ставим открывающуюся квадратную скобку, а потом через запятую вписываем значения из следующих полей: token, amount, expiration, nonce. После чего закрываем квадратную скобку. В итоге, если брать данные выше за пример (вы используете свои, которые пришли вам в Telegram!), то получится:

[0x423f4e6138e475d85cf7ea071ac92097ed631eea,1461501637330902918203684832716283019655932542975,1728242291482,0]

И прям так всё это и вставляем в поле "details". После чего по аналогии с PERMIT подписываем, внимательно смотрим на комиссию и убеждаемся, что транзакция прошла успешно. PERMIT 2 также бывает фейковым как и обычный PERMIT.

Все подписи сделаны и теперь вне зависимости от того Approve у вас или Permit, как же собственно вывести эти токены к себе на кошелек?

Теперь всё просто, переходим в сканер, открываем через поиск страницу токена (для тех, кто Approve и Permit - вы и так были на ней, для тех, кто Permit 2 - возьмите адрес токена из поля "token" в ваших данных). Там открываем страницу Contract => Read as Proxy (либо Read, либо Read Contract), находим там функцию allowance, заполняем следующим образом: в первую строку адрес жертвы, а во вторую адрес spender (в Permit и Permit2 указан в данных, а для Approve можно узнать в Input Data, которую вы смотрели, в самой первой строке). Если в результате вы получаете число больше нуля, то отлично, вы всё-таки можете попробовать снять токен. Теперь откройте функцию balanceOf, вбейте туда адрес жертвы и сохраните число, которое вы получите - это его баланс. Теперь идём во вкладку Write as Proxy (Write / Write Contract), ищем там функцию TransferFrom и заполняем её следующим образом: первое поле - адрес жертвы, второе - ваш адрес, третье - сумма (то число, которое вы сохранили). После этого подписываем этот запрос, также смотрим на комиссию и если она не очень большая, то смело подписываем и после этого токены перейдут вам.


Вопрос: дрейнер перестал такое и я вижу в консоли браузера это:

Пример ошибки в консоли браузера

Без паники, это проблема локальная и она на стороне вашего браузера, у вас просто закончился лимит запросов к VPS, вам стоит сменить IP или поменять VPN, у остальных пользователей с вероятностью 99% всё нормально.


Вопрос: в логах сервера бесконечно появляется ошибка: "ETELEGRAM: 409 Conflict: terminated by other getUpdates request; make sure that only one bot instance is running" или что-то похожее, что с этим можно сделать?

Скорее всего, у вас где-то открыт ещё один процесс с указанием того же токена бота Telegram, который используется в дрейнере - так делать нельзя. Лучше зайдите в @BotFather в Telegram, сбросьте токен для бота и вставьте новый в дрейнер и больше никуда. После этого ошибка уйдет, но останется в истории даже после перезапуска. Если это вас раздражает, зайдите на вашем VPS в папку /root/.pm2/logs и удалите файлы server-error.log и server-out.log оттуда.

После замены токена, кстати, надо открыть PowerShell, залогиниться в него и перезапустить сервер командой: pm2 restart all


Вопрос: дрейнер перестал работать и в консоли браузера что-то такое:

Пример ошибки в консоли браузера

Видимо, ваш сервер на VPS упал, либо не работает домен, либо он был заблокирован, либо вы что-то неправильно настроили в Cloudflare. Если до этого всё работало, то скорее всего проблема либо в VPS, либо в домене. Для начала проверьте VPS, зайдите в PowerShell, залогиньтесь по SSH и введите команду:

pm2 list

Если в списке не будет никаких процессов, то запустите его повторно командами в SSH, вводите их не сразу все, а поочередно, как при первой установке:

cd server
pm2 start server.js --watch server.js
pm2 save
pm2 list

Если в конце вы увидели, что процесс появился, проверяйте - должно заработать. Если же процесс и так был или не заработало, то проверьте домен, возможно его просто заблокировали - такое иногда бывает, в таком случае просто поменяйте его, также привяжите на Cloudflare как в первый раз и впишите в web3-provider.js