# RU

## ⚙️ Установка

**Требования:**

* Python версии 3.11.6

**Скачивание:**

1 | Клонировать репозиторий

```
git clone https://github.com/0xStarLabs/StarLabs-MegaETH.git
```

```
cd StarLabs-MegaETH
```

2 | Создать виртуальное окружение

```
python -m venv venv
```

```
venv\Scripts\activate
```

3 | Установить зависимости

```
pip install -r requirements.txt
```

4 | Запуск (после настройки)

```
python main.py
```

## 📁 Подготовка (папка data) <a href="#podgotovka-papka-data" id="podgotovka-papka-data"></a>

Здесь находятся все данные юзера необходимые для работы.

`private_keys.txt` - приватные ключи от кошельков. 1 строка = 1 ключ.

`proxies.txt` - прокси. 1 строка = 1 прокси, либо если прокси меньше чем аккаунтов, тогда они будут повторяться пока друг за другом чтобы хватило на все аккаунты. Формат прокси <mark style="color:yellow;">user:pass\@ip:port</mark>. <mark style="color:yellow;">Поддерживаются ТОЛЬКО HTTP прокси.</mark>

## 📝 Config.yaml <a href="#config.yaml" id="config.yaml"></a>

В этой секции будет написано детально про каждую функцию в файле `config.yaml`.

{% code overflow="wrap" %}

```javascript
SETTINGS

THREADS: 1 - количество потоков/одновременных аккаунтов которые будет делать бот.

ATTEMPTS: 5 - при ошибках, сколько раз бот будет пытаться выполнить действие.

ACCOUNTS_RANGE: [0, 0] - диапазон аккаунтов для работы. 
Пример: [3, 6] значит бот выполнит аккаунты начиная с третьего до шестого.

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.

WAIT_FOR_TRANSACTION_CONFIRMATION_IN_SECONDS: 120 - сколько секунд ждать выполнение транзакции.
```

{% endcode %}

{% code overflow="wrap" %}

```javascript
FLOW

SKIP_FAILED_TASKS: false - пропускать невыполненные задания или нет.
Если стоит false, то бот закончит работу если у него не получилось выполнить какое-то задание.
Если стоит true, тогда бот пропустит задание и начнет делать следующее.
```

{% endcode %}

{% code overflow="wrap" %}

```javascript
FAUCET

SOLVIUM_API_KEY: xxxxxxxxxxxxxxx - ключ от капча солвера Solvium.

ССЫЛКА: https://t.me/solvium_crypto_bot. 
```

{% endcode %}

{% code overflow="wrap" fullWidth="false" %}

```javascript
RPCS

MEGAETH: ["https://carrot.megaeth.com/rpc"] - RPC для сети.
Можно указать несколько, бот будет использовать ту, которая работает.

```

{% endcode %}

{% code overflow="wrap" %}

```javascript
OTHERS

SKIP_SSL_VERIFICATION: true - пропускать ssl верификацию.
Если видите ошибки связанные с SSL в консоли, попробуй поставить false.

USE_PROXY_FOR_RPC: true - использовать ли прокси для RPC.
```

{% endcode %}

{% code overflow="wrap" %}

```javascript
SWAPS

>>> BEBOP
BALANCE_PERCENTAGE_TO_SWAP: [5, 10] - сколько процентов от баланса обменивать.
SWAP_ALL_TO_ETH: false - если стоит true, тогда бот будет обменивать все токены в ETH.

>>> GTE
BALANCE_PERCENTAGE_TO_SWAP: [5, 10] - сколько процентов от баланса обменивать.
SWAP_ALL_TO_ETH: true - если стоит true, тогда бот будет обменивать все токены в ETH.
SWAPS_AMOUNT: [3, 5] - количество свапов на каждый запуск бота.
```

{% endcode %}

{% code overflow="wrap" %}

```javascript
STAKINGS

>>> EKO_FINANCE:
CHANCE_FOR_MINT_TOKENS: 0 - с каким шансом минтить тестовые токены.
Если стоит 100, то каждый запуск бот будет минтить 4 токена.
Если стоит 0, бот не будет минтить токены вообще.
Оптимально выставить 50 для рандомного шанса.

BALANCE_PERCENTAGE_TO_STAKE: [5, 10] - какой баланс токенов депозитить в стейкинг.
Для стейкинга используются тестовые токены, не ETH.

UNSTAKE: true - делать ли вывод из стейкинга. 
Если стоит true, то бот выведет все деньги из стейкинга. 
```

{% endcode %}

{% code overflow="wrap" %}

```javascript
MINTS

>>> XL_MEME:

Бот умеет только покупать токены, продавать нет.

BALANCE_PERCENTAGE_TO_BUY: [10, 20] - процент баланса ETH на который покупать токены.

CONTRACTS_TO_BUY: [] - список контрактов токенов для покупки.
Если список пустой, бот сам получит рандом контракты и купит токен.

>>> OMNIHUB:
MAX_PRICE_TO_MINT: 0.00011 - бот не будет покупать НФТ которые дороже этого числа.
```

{% endcode %}

Конфиг можно настраивать как через текстовый документ в файле <mark style="color:yellow;">config.yaml</mark>, так и через веб интерфейс (пример на скриншоте внизу). \
\
В случае, если веб конфиг из меню не работает по каким-то причинам, вы всегда можете редактировать его вручную в файле <mark style="color:yellow;">config.yaml.</mark> Так же вы можете обратится к нам в чат <https://t.me/StarLabsChat> за помощью.\
\
Для запуска веб интерфейса необходимо запустить бота командой <mark style="color:yellow;">python main.py</mark> и выбрать пункт меню <mark style="color:yellow;">\[2] Edit config.</mark>\
**После этого бот запустит конфиг по URL адресу** [**http://127.0.0.1:3456**](http://127.0.0.1:3456) **который вы можете открыть в любом браузере у себя на ПК и настраивать конфиг оттуда.** По умолчанию бот сам открывает веб браузер с нужным URL. \
\&#xNAN;*<mark style="background-color:yellow;">Данный конфиг и вебсайт запускается и работает локально у вас на ПК.</mark>*\
\
**После настройки функций в конфиге нажми кнопку Save Configuration в верхнем правом углу страницы.**\
\
**Для выхода из конфига вернитесь в консоль и несколько раз нажмите&#x20;**<mark style="color:yellow;">**CTRL + C**</mark>**, либо же просто закройте консоль.**

<figure><img src="/files/ULdZsUfoMPKa7vA41MRF" alt=""><figcaption><p>Пример конфига</p></figcaption></figure>

## 💾 База данных <a href="#usage" id="usage"></a>

Вся работа в боте управляется непосредственно через базу данных. База данных создается и хранится в папке /data под именем accounts.db. Открыть её вручную вы можете через специальные программы для SQL по типу `DB Browser for SQLite`.

Чтобы начать работу и создать базу данных необходимо запустить бота командой python main.py и выбрать пункт меню \[3] 💾 Database actions. Дальше опишу каждую из функций.&#x20;

\[1] 🗑 Create/Reset Database. Самая основная функция, которая создает новую базу данных либо перезаписывает уже существующую. Необходимо использовать при первом запуске бота, либо когда хотите перезаписать кошельки, прокси, либо задачи для кошельков.&#x20;

\[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 вставляете новые кошельки и хотите добавить их в базу данных. Чтобы не перезаписывать всю базу, можете воспользоваться этой функцией и она просто добавит новые кошельки в базу.

## ▶️ Использование  <a href="#usage" id="usage"></a>

Перед запуском бота необходимо открыть файл `tasks.py` в главной папке проекта и там настроить порядок выполнение действий как указано в примере.&#x20;

\
После этого можно запускать бота командой `python main.py`\
В меню необходимо выбрать 3 после чего откроются настройки базы данных. Для первого запуска нажмите <mark style="color:yellow;">1 (Create/Reset Database)</mark> и бот создает базу данных в папке data. Для каждого ключа будут сгенерированы маршруты действий. \
Так же в этом меню вы сможете смотреть посмотреть оставшиеся задания, пересоздать базу и тд.\
\
Теперь можно выходить в меню кнопкой 6 и запускать бота - 1.&#x20;

## ✅ Tasks

#### Инструкция по тому как переключать модули в боте

Для того чтобы переключить модуль, вам нужно в папке с ботом найти файл под названием tasks.py, открыть его при помощи редактора кода либо обычного блокнота, в файле вы увидите переменную TASKS которая выглядит так:

<figure><img src="/files/70LOc8MXbk1unniJePuP" alt=""><figcaption></figcaption></figure>

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

Пример пресета внутри которого есть модуль:

<figure><img src="/files/jh6bREpqy2IUuoTfCyol" alt=""><figcaption></figcaption></figure>

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

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

<figure><img src="/files/3OvGa8HbVJiQ8dLUrFsV" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/k1q5OicTpC0o369zQKa0" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/fohP0cmgvZJsQcK3Sblb" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/FW8Im06sUL1JQqUmEnEU" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/gFiEb23XussVF8J603gC" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/Wob6dj3EMymI7UBBztHG" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://star-labs.gitbook.io/star-labs/software/megaeth/ru.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
