RU
https://github.com/0xStarLabs/StarLabs-CampNetwork
⚙️ Установка
Требования:
Python версии 3.11.6 - 3.11.11
Скачивание:
1 | Клонировать репозиторий
git clone https://github.com/0xStarLabs/StarLabs-CampNetwork.git
cd StarLabs-CampNetwork
2 | Создать виртуальное окружение
python -m venv venv
venv\Scripts\activate
3 | Установить зависимости
pip install -r requirements.txt
4 | Запуск (после настройки)
python main.py
📁 Подготовка (папка data)
Здесь находятся все данные юзера необходимые для работы.
private_keys.txt
- приватные ключи от кошельков. 1 строка = 1 ключ.
proxies.txt
- прокси. 1 строка = 1 прокси, либо если прокси меньше чем аккаунтов, тогда они будут повторяться пока друг за другом чтобы хватило на все аккаунты. Формат прокси user:pass@ip:port. Поддерживаются ТОЛЬКО HTTP прокси.
Для квестов Loyalty прокси должны быть только СТАТИЧЕСКИЕ БЕЗ СМЕНЫ АЙПИ.
discord_tokens.txt
- дискорд токены. 1 строка = 1 токен.
twitter_tokens.txt
- твиттер токены. 1 строка = 1 токен. Если токенов больше чем приватных ключей, то бот будет заменять нерабочий твиттер токен на один из лишних и перезаписывать в файле при условии что в конфиге включена функция REPLACE_FAILED_TWITTER_ACCOUNT: true.
emails.txt
- почты. 1 строка = 1 почта в формате email:password.
📝 Config.yaml
В этой секции будет написано детально про каждую функцию в файле config.yaml
.
SETTINGS
THREADS: 1 - количество потоков/одновременных аккаунтов которые будет делать бот.
ATTEMPTS: 5 - при ошибках, сколько раз бот будет пытаться выполнить действие.
ACCOUNTS_RANGE: [0, 0] - диапазон аккаунтов для работы.
Пример: [3, 6] значит бот выполнит аккаунты начиная с третьего до шестого.
Счет начинается с 1.
EXACT_ACCOUNTS_TO_USE: [] - !Работает только если ACCOUNTS_RANGE: [0, 0].
Пример: [1, 3, 7] что значит бот выполнит только аккаунты 1 3 и 7.
SHUFFLE_WALLETS: false - перемешивать аккаунты перед каждым запуском или нет.
Если true, то бот каждый раз будет выполнять аккаунты в случайном порядке.
PAUSE_BETWEEN_ATTEMPTS: [0, 0] - пауза в секундах между попытками выполнить одно действия.
Пример: [3, 10] - пауза будет от 3 до 10 секунд случайная.
PAUSE_BETWEEN_SWAPS: [0, 0] - пауза в секундах между отправкой транзакций.
Пример: [3, 10] - пауза будет от 3 до 10 секунд случайная.
RANDOM_PAUSE_BETWEEN_ACCOUNTS: [0, 0] - пауза в секундах между аккаунтами.
Пример: [3, 10] - пауза будет от 3 до 10 секунд случайная.
RANDOM_PAUSE_BETWEEN_ACTIONS: [0, 0] - пауза в секундах между заданиями/tasks.
Пример: [3, 10] - пауза будет от 3 до 10 секунд случайная.
RANDOM_INITIALIZATION_PAUSE: [0, 0] - пауза в секундах перед стартом каждого аккаунта.
К примеру у вас 10 потоков, и пауза стоит [5, 60]
Значит каждый аккаунт отсчитает от 5 секунд до минуты перед началом работы.
Используется чтобы все аккаунты не стартовали в одно время.
SEND_TELEGRAM_LOGS: false - отравлять в телеграм логи о функциях или нет. true/false.
TELEGRAM_BOT_TOKEN: "12317283:lskjalsdfasdfasd-sdfadfasd" - токен телеграм бота созданного в @BotFather
TELEGRAM_USERS_IDS: [235123432] - айди телеграм юзеров, кому отправлять логи.
ВНИМАНИЕ! Бот отправляет только в лс юзерам, не в чаты.
Свой айди аккаунта можно получить в тг боте @GetChatID_IL_BOT.
FLOW
SKIP_FAILED_TASKS: false - пропускать невыполненные задания или нет.
Если стоит false, то бот закончит работу если у него не получилось выполнить какое-то задание.
Если стоит true, тогда бот пропустит задание и начнет делать следующее.
CAPTCHA
SOLVIUM_API_KEY: xxxxxxxx - API ключ для капчи от https://t.me/solvium_crypto_bot.
LOYALTY
REPLACE_FAILED_TWITTER_ACCOUNT: true. Если произойдет ошибка твиттер аккаунта или он будет заблокирован, то бот заменит этот твиттер аккаунт на другой из файла и перезапишет его.
MAX_ATTEMPTS_TO_COMPLETE_QUEST - 15. Количество попыток чтобы подтвердить квест. По умолчанию 15, если платформа работает в моменте плохо, можете поставить больше, чтобы дать боту больше времени на ожидание подтверждение квеста.
RPCS
CAMP_NETWORK: ["https://rpc.basecamp.t.raas.gelato.cloud"] - RPC для сети.
Можно указать несколько, бот будет использовать ту, которая работает.
OTHERS
SKIP_SSL_VERIFICATION: true - пропускать ssl верификацию.
Если видите ошибки связанные с SSL в консоли, попробуй поставить false.
USE_PROXY_FOR_RPC: true - использовать ли прокси для RPC.
CRUSTY_SWAP
Функция для обмена токенов ETH на тестовые токены CAMP через бридж https://www.crustyswap.com/
NETWORKS_TO_REFUEL_FROM: ["Arbitrum", "Optimism", "Base"] - сети из которых обменивать токены. Если указано несколько сетей, то бот случайно выберет одну из тех, где есть достаточно ETH для обмена.
AMOUNT_TO_REFUEL: [0.0002, 0.0003] - диапазон в токенах ETH для обмена.
MINIMUM_BALANCE_TO_REFUEL: 1000 - если баланс тестовых токенов выше указанного значения, то бридж не запустится.
WAIT_FOR_FUNDS_TO_ARRIVE: true - ждать пока токены придут на кошелек или нет.
MAX_WAIT_TIME: 999999 - максимальное время (в секундах) ожидания поступления токенов на кошелек
BRIDGE_ALL: false - бриджить весь баланс в ETH или нет.
BRIDGE_ALL_MAX_AMOUNT: 0.01 - работает только если предыдущий пункт стоит true.
EXCHANGES
Функция для вывода токенов ETH из бирж на кошельки.
name: "OKX" - выбор из какой биржи делать вывод. Поддерживаются "OKX" и "BITGET".
apiKey: 'x' - API ключ биржи.
secretKey: 'x' - API secret ключ биржи.
passphrase: 'x' - кодовая фраза-пароль для API биржи.
withdrawals:
- currency: "ETH" # ONLY ETH
networks: ["Arbitrum", "Optimism"] - сети в которые бот выведет токены из биржи.
Поддерживаются: "Arbitrum", "Base", "Optimism"
min_amount: 0.0004 - минимальное количество ETH для вывода.
max_amount: 0.0006 - максимальное количество ETH для вывода.
max_balance: 0.005 - если баланс на кошельке в ETH выше указанного значения, то бот пропустит этот аккаунт. То есть функция вывода запустится в том случае, если на кошельке 0.004999 ETH и меньше.
wait_for_funds: true - ждать пока токены придут на кошелек или нет.
max_wait_time: 99999 - максимальное время (в секундах) ожидания поступления токенов на
кошелек.
retries: 3 - количество попыток для вывода.
Конфиг можно настраивать как через текстовый документ в файле config.yaml, так и через веб интерфейс (пример на скриншоте внизу). В случае, если веб конфиг из меню не работает по каким-то причинам, вы всегда можете редактировать его вручную в файле config.yaml. Так же вы можете обратится к нам в чат https://t.me/StarLabsChat за помощью. Для запуска веб интерфейса необходимо запустить бота командой python main.py и выбрать пункт меню [2] Edit config. После этого бот запустит конфиг по URL адресу http://127.0.0.1:3456 который вы можете открыть в любом браузере у себя на ПК и настраивать конфиг оттуда. По умолчанию бот сам открывает веб браузер с нужным URL. Данный конфиг и вебсайт запускается и работает локально у вас на ПК. После настройки функций в конфиге нажми кнопку Save Configuration в верхнем правом углу страницы. Для выхода из конфига вернитесь в консоль и несколько раз нажмите CTRL + C, либо же просто закройте консоль.

💾 База данных
Вся работа в боте управляется непосредственно через базу данных. База данных создается и хранится в папке /data под именем accounts.db. Открыть её вручную вы можете через специальные программы для SQL по типу DB Browser for SQLite
.
Чтобы начать работу и создать базу данных необходимо запустить бота командой python main.py и выбрать пункт меню [3] 💾 Database actions. Дальше опишу каждую из функций.
[1] 🗑 Create/Reset Database. Самая основная функция, которая создает новую базу данных либо перезаписывает уже существующую. Необходимо использовать при первом запуске бота, либо когда хотите перезаписать кошельки, прокси, либо задачи для кошельков.
[2] ➕ Generate New Tasks for Completed Wallets. Используется для генерации новых заданий для кошельков, которые выполнили свои предыдущие задания. Пример: может быть такое, что часть ваших кошельков выполнила все действия, часть еще имеет незаконченные задания. Чтобы не перезаписывать ВСЕ задания и дать части кошельков возможность закончить их цепочку, вы можете выбрать эту функцию и она обновит задания только для кошельков, которые уже не имеют задач.
[3] 📊 Show Database Contents. Выводит на экран содержимое базы данных. Кошельки, прокси, задачи и тд.
[4] 🔄 Regenerate Tasks for All Wallets. Пересоздает задания для ВСЕХ кошельков в базе.
[5] 📝 Add Wallets to Database. Добавляет новые кошельки в базу данных. К примеру у вас в базе есть 10 кошельков, вы в data/private_keys.txt вставляете новые кошельки и хотите добавить их в базу данных. Чтобы не перезаписывать всю базу, можете воспользоваться этой функцией и она просто добавит новые кошельки в базу.
▶️ Использование
Внимание! Квесты Loyalty работают только на статик прокси. Вы можете использовать резидентские прокси, но без ротации айпи адреса.
Перед запуском бота необходимо открыть файл tasks.py
в главной папке проекта и там настроить порядок выполнение действий как указано в примере.
После этого можно запускать бота командой python main.py
В меню необходимо выбрать 3 после чего откроются настройки базы данных. Для первого запуска нажмите 1 (Create/Reset Database) и бот создает базу данных в папке data. Для каждого ключа будут сгенерированы маршруты действий. Так же в этом меню вы сможете смотреть посмотреть оставшиеся задания, пересоздать базу и тд. Теперь можно выходить в меню кнопкой 6 и запускать бота - 1.
Настоятельно рекомендуется запускать квесты Loyalty по одному, то есть каждую кампанию отдельно. Запустив все кампании за один раз кратно повышается шанс блокировки твиттер аккаунта, имейте это ввиду.
✅ Tasks
Инструкция по тому как переключать модули в боте
Для того чтобы переключить модуль, вам нужно в папке с ботом найти файл под названием tasks.py, открыть его при помощи редактора кода либо обычного блокнота, в файле вы увидите переменную TASKS которая выглядит так:

TASKS Это список пресетов, пресет это список из модулей, которые будет запускать бот.
Пример пресета внутри которого есть модуль:

Как видите FAUCET это лишь название пресета, которое может быть какое угодно, а внутри него модуль "faucet", который отвечает за запуск крана.
Вы можете создать свой пресет, просто написав любое название к примеру:

Внутри него вы можете добавить какие модули вы хотите использовать пример dusted, итого:

Затем чтобы запустить данный пресет, вы копируете его название и вставляете в TASKS, итого:

В пресете вы можете использовать разные типы рандомизации. К примеру квадратные скобки будут означать, что бот выберет один модуль из всех что внутри них, в нашем случае либо dusted, либо ambient

Круглые скобки означает, что бот выполнит все модули, что внутри них, но в случайном порядке

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

Last updated