Story Protocol официальный кран - гайд по автоматизации
Канал в тг: https://t.me/PastFinCoding
Сегодня мы будем обходить десятерную защиту сайта https://faucet.story.foundation/, чтобы клеймить IP на кошельки c нулевым или маленьким гитпаспортом.
Требования
- Node.js: необходим для запуска кода, написанного с использованием библиотеки на основе Puppeteer. Моя версия: 20.17.0
- Git: требуется для загрузки моего кода.
- Visual Studio Code (опционально): рекомендую использовать для написания и запуска кода.
Node.js можно скачать по ссылке: Node.js Download. У меня установлена версия 20.17.0, установите такую же. Во время установки просто соглашайтесь со всеми дефолтными параметрами. После завершения установки откройте новое окно командной строки и выполните команду:
node --version
Если всё установлено правильно, будет выведена версия Node.js.
Git можно скачать здесь: Git Download. Во время установки также соглашайтесь со всеми параметрами. После завершения установки откройте новое окно командной строки и выполните команду:
git --version
Будет показана установленная версия Git.
Скачать Visual Studio Code можно по следующей ссылке: VS Code Download, если вы ещё не установили его.
Логика работы кода
- Открывается браузер Chrome (с прокси или без).
- Запускается MetaMask.
- Создаётся новый аккаунт в MetaMask.
- Добавляется ваш приватный ключ как второй аккаунт для подключения к крану Story.
- Добавляется тестовая сеть.
- Переход на сайт с краном.
- Автоматическое прохождение CAPTCHA от Cloudflare.
- Кошелёк добавляется на сайт.
- Выполняется клейм одного IP.
- Закрывается браузер.
- Процесс повторяется для следующего кошелька.
Также автоматически ведётся запись логов в файл log.txt
после запуска кода. Логи необходимы для анализа ошибок — вы сможете увидеть, когда и на каком этапе произошла ошибка, а также какой кошелёк использовался.
Подготовка кода к запуску
1) Создайте папку для проекта StoryFaucet
2) Откройте папку в Visual Studio Code,запустите терминал и клонируйте репозиторий с помощью команды:
git clone https://github.com/Pastfin/StoryFaucet.git .
В результате вы получите следующие файлы:
index.js — основной код, который будет запускаться.
metamask.js — работа с MetaMask.
helpers.js — вспомогательные функции, чтобы сделать основной код более чистым.
package-lock.json; package.json — файлы зависимостей с версиями библиотек.
wallets.xlsx — Excel-файл, в который нужно записать кошельки для крана. Столбцы: публичный ключ, приватный ключ, прокси (опционально), комментарий (только для вас, не используется в коде). Приватный ключ используется только при добавлении кошелька в MetaMask.
3) Установите библиотеки. Для этого в терминале, находясь в папке проекта, выполните команду:
npm install
После выполнения команды должна появиться папка node_modules
. Это означает, что все зависимости были установлены успешно.
4) Добавьте расширение MetaMask в проект. Так как в коде используется MetaMask, необходимо добавить расширение в папку с проектом. Лучше всего сделать это на новом профиле Chrome.
- Создайте новый профиль в браузере Chrome.
- Установите MetaMask на новый профиль (настраивать кошелёк не нужно): MetaMask в Chrome.
- Затем откройте новую вкладку в Chrome и перейдите на
chrome://version
. Скопируйте путь к профилю, он будет выглядеть примерно так:...\AppData\Local\Google\Chrome\User Data\Profile {n}
. - Откройте этот путь в проводнике и перейдите в папку
Extensions
, затем откройте папку с MetaMask(nkbihfbeogaeaoehlefnkodbefgpgknn
). - Скопируйте папку версии расширения
12.3.1_0
и вставьте её в папку с проектом.
В результате, структура папки проекта должна выглядеть следующим образом:
- Заполните файл wallets.xlsx. Для тестирования можете добавить от 2 до 4 кошельков. Формат прокси:
{IP}:{Port}:{username}:{password}
.
Запуск кода
1) Откройте терминал в папке с кодом.
node index.js
Возможные трудности
- Возникают ошибки из-за слабого компьютера или медленного интернета.
В таком случае найдите строки с ожиданием в коде и увеличьте тайминг. Например, ожидание в 5,5 секунд выглядит так:
await new Promise(resolve => setTimeout(resolve, 5500));
- Не работает Node или Git. Проблема может заключаться в том, что не добавлены переменные в
Path
или вы не перезагрузили терминал (cmd
/VSC
) для применения последних изменений вPath
. Исправить это можно в меню "Edit environment variables" / "Изменение переменных среды".
Видео с работой кода и описанием того, как удалось обойти гитпаспорт, находится в моем тг канале: https://t.me/PastFinCoding