March 22, 2024

Scroll Automation инструкция к использованию

Автор статьи - https://t.me/easypeoff
Софт - https://github.com/3asyPe/scroll-automation

Ретродропы уже давно никто не крутит руками, и я - не исключение. Однако большинство софтов не подходят для полной автоматизации процесса (okx -> мост на выбор -> модули с отличной рандомизацией и хорошей отказоустойчивостью -> мост на выбор -> okx).

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

За основу был взят софт от SybilWave

❗️При возникновении проблем, напомню, я не техническая поддержка и писать мне в личку не стоит. Я скорее всего не отвечу.

Сначала стоит сделать поиск в Google, потом в ChatGPT, потом поиск по нашему чату и только потом задавать вопрос там же, если проблема до сих пор не решилась


Навигация по гайду

1 - Возможности софта

2 - Установка

3 - Общие настройки

4 - Настройки модулей

5 - Автоматизация

6 - Настройки автоматизации

7 - Запуск

8 - Подписаться на меня (Опционально)


Возможности софта

Доступные модули

1. OKX

2. Bridge using Orbiter/Nitro/Layerswap or Native

3. Wrap/Unwrap ETH

4. Mint Zerius NFT

5. Mint any NFT from Nfts2me

6. Mint ZKStars NFT

7. Mint L2Pass

8. Mint and Bridge l2telegraph NFT

9. Send message l2telegraph

10. Deposit and withdraw on Aave and LayerBank

11. Swaps on Skydrome, SyncSwap, Zebra, XYSwap

12. Create Omnisea Collection

13. Vote on RubyScore

14. Deploy custom contracts

15. Dmail

16. Mint Scroll Origin NFT

Ручной режим

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

Автоматический режим

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

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

Софт умный, он сам выбирает токены, суммы и модули.


Установка

1 - Установите Python 3.9 или выше

2 - Скачайте проект:

С помощью git:

git clone git@github.com:3asyPe/scroll-automation.git

Или путем обычного скачивания zip:

Перейдите в репозиторий софта -> зеленая кнопка code -> Download ZIP

3 - Перейти в директорию проекта в консоли (PowerShell для пользователей windows)

cd <путь куда вы скачали проект>

Пример для Windows:

cd D:/scroll-automation

Пример для Mac/Linux:

cd ~/scroll-automation

4 - Установите зависимости

Способ 1

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

python -m venv venv

- Активировать виртуальное окружение (нужно будет делать каждый раз перед запуском софта)

Для пользователей Windows:

venv/Scripts/activate

Для пользователей Mac и linux:

source venv/Scripts/activate

- Установить зависимости

pip install -r requirements.txt

Способ 2

- Установить poetry

- Активировать виртуальное окружение (нужно будет делать каждый раз перед запуском софта)

poetry shell

- Установить зависимости

poetry install


Общие настройки

Приватные ключи вписывать в data/wallets.txt

OKX адреса вписывать в data/okx_addresses.txt

Основные настройки находятся в файле settings.py. Пройдемся быстро по ним:

LAYERSWAP_API_KEY - если собираетесь использовать этот мост, то создайте API ключ у них на сайте и вставьте сюда

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

RANDOM_WALLET - кошельки будут запускаться в рандомном порядке

RETRIES - количество попыток при возникновении ошибки

RETRY_DELAY_MIN - минимальная задержка перед следующей попыткой

RETRY_DELAY_MAX - максимальная задержка перед следующей попыткой

SLEEP_MIN - минимальная задержка перед выполнением следующего модуля в автоматическом режиме

SLEEP_MAX - максимальная задержка перед выполнением следующего модуля в автоматическом режиме

MIN_SLEEP_BEFORE_ACCOUNT_START - минимальная задержка перед запуском следующего аккаунта

MAX_SLEEP_BEFORE_ACCOUNT_START - максимальная задержка перед запуском следующего аккаунта

CHECK_GWEI - дожидаться ли пока упадет gwei в сети Ethereum до значения MAX_GWEI

MAX_GWEI - максимальный gwei при котором делать транзакции

THREADS - количество потоков

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

MIN_ALL_AMOUNT_ETH_PERCENT - минимальное значение в процентах при использовании настройки all_amount (об этом позже)

MAX_ALL_AMOUNT_ETH_PERCENT - максимальное значение в процентах при использовании настройки all_amount (об этом позже)

BRIDGE_FEES - настройка комиссии для мостов. Нужно менять при желании бриджить всю сумму

OKX_CREDENTIALS - данные API ключа OKX


Настройки модулей

Все настройки модулей производятся в modules_settings.py в переменной MODULES_CONFIG

Каждый модуль, который требует настройки, настраивается отдельно. Но не все настройки влияют на его выполнение при работе в автоматическом режиме. Например при свапах не влияет выбранный amount, токен или при бридже выбранные сети. Это все настраивается отдельно в модуле автоматизации (об этом позже).

Пройдемся по ключевым модулям, которые послужат примерами. Остальные модули настраиваются также и везде есть комментарии, объясняющие за что отвечает та или иная настройка.

1 - OKX Withdraw

2 - OKX Deposit

3 - Native Bridge в Scroll

4 - Orbiter Bridge

5 - Swap Skydrome

6 - Остальное

OKX Withdraw

Модуль для вывода токенов С OKX НА EVM

В ручном режиме используются все настройки. В автоматическом, все, кроме dst_chain

dst_chain - сеть, куда вы хотите вывести

min_amount - минимальное количество токенов для вывода

max_amount - максимальное количество токенов для вывода

token - токен, который вы хотите вывести

transfer_from_subaccounts - софт сначала проверит суб-аккаунты OKX на наличие баланса и переведет его на основной аккаунт, а только потом выведет

credentials - ваш OKX API ключ (настраивается в settings.py)

OKX Deposit

Модуль для вывода токенов С EVM НА OKX

В ручном режиме используются все настройки. В автоматическом, все, кроме src_chain

src_chain - сеть, откуда вы хотите вывести

min_amount_left - минимальное количество токенов ETH, которые вы хотите ОСТАВИТЬ

max_amount_left - максимальное количество токенов ETH, которые вы хотите ОСТАВИТЬ

credentials - ваш OKX API ключ. (настраивается в settings.py)

Native Bridge в Scroll

Модуль для бриджа токенов из сети Ethereum в Scroll

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

min_amount - минимальное количество токенов ETH, которые вы хотите перевести

max_amount - максимальное количество токенов ETH, которые вы хотите перевести

decimal - до скольки цифр после запятой округлять рандомное значение amount

all_amount - игнориует min_amount и max_amount и переводит от min_percent до max_percent от всего баланса

min_percent - минимальный процент для перевода при использовании настройки all_amount

max_percent - максимальный процент для перевода при использовании настройки all_amount

Native Bridge из Scroll

Модуль для бриджа токенов из сети Scroll в Ethereum через нативный мост

В ручном режиме используются все настройки модуля, в автоматическом только decimal

min_amount - минимальное количество токенов ETH, которые вы хотите перевести

max_amount - максимальное количество токенов ETH, которые вы хотите перевести

decimal - до скольки цифр после запятой округлять рандомное значение amount

all_amount - игнориует min_amount и max_amount и переводит min_percent до max_percent от всего баланса

min_percent - минимальный процент для перевода при использовании настройки all_amount

max_percent - максимальный процент для перевода при использовании настройки all_amount

В автоматическом режиме скрипт выбирает сумму вывода опираясь на другие параметры (об этом позже)

Orbiter Bridge

Модуль для бриджа токенов через Orbiter

В ручном режиме используются все настройки модуля, в автоматическом игнорируются from_chain и to_chain

from_chain - сеть из которой перевести деньги. На выбор: ethereum/arbitrum/optimism/zksync/base/scroll/linea

to_chain - сеть в которую перевести деньги. На выбор: ethereum/arbitrum/optimism/zksync/base/scroll/linea

min_amount - минимальное количество токенов ETH, которые вы хотите перевести

max_amount - максимальное количество токенов ETH, которые вы хотите перевести

decimal - до скольки цифр после запятой округлять рандомное значение amount

all_amount - игнориует min_amount и max_amount и переводит от min_percent до max_percent от всего баланса

min_percent - минимальный процент для перевода при использовании настройки all_amount

max_percent - максимальный процент для перевода при использовании настройки all_amount

В автоматическом режиме скрипт выбирает сети опираясь на другие параметры (об этом позже)

Swap Skydrome

Модуль для свапа токенов через SkyDrome

В ручном режиме используются все настройки модуля, в автоматическом игнорируются from_chain и to_chain

from_token - токен, который нужно поменять (свапнуть). На выбор: ETH/USDC

to_token - токен, на который нужно поменять. На выбор: ETH/USDC

min_amount - минимальное количество токенов ETH, которые вы хотите перевести

max_amount - максимальное количество токенов ETH, которые вы хотите перевести

decimal - до скольки цифр после запятой округлять рандомное значение amount

all_amount - игнориует min_amount и max_amount и переводит от min_percent до max_percent от всего баланса

min_percent - минимальный процент для перевода при использовании настройки all_amount

max_percent - максимальный процент для перевода при использовании настройки all_amount

slippage - проскальзывание

В автоматическом режиме скрипт выбирает токены и суммы опираясь на другие параметры (об этом позже)

Остальное

Остальные модули настраиваются по тому же принципу. Читайте внимательно комментарии и смотрите на примеры выше


Автоматизация

Главная цель модуля автоматизации - позволить пользователям один раз настроить скрипт, запустить и не беспокоиться о своих аккаунтах долгое время.

Достигается цель путем рандомизации модулей с предварительными и последующими выводами с OKX и мостами на выбор. Получается следующая схема:

OKX (если включен) -> Ethereum/Arbitrum/Optimism/ZkSync/Base/Linea -> Мост (если включен) Native/Orbiter/Nitro/LayerSwap -> Scroll основные модули (конкретнее далее) -> Мост (если включен) Native/Orbiter/Nitro/LayerSwap -> Ethereum/Arbitrum/Optimism/ZkSync/Base/Linea -> OKX (если включен)

1 - Как работает Withdraw и Deposit OKX?

2 - Как работают мосты?

3 - Как работает рандомизация основных модулей (не обязательно к прочтению)?

4 - AutomaticModules.swaps

5 - AutomaticModules.wrap_unwrap_eth

6 - AutomaticModules.aave и AutomaticModules.layerbank

7 - Остальные модули

Как работает Withdraw и Deposit OKX?

Данные модули можно, также как и остальные, включать и выключать, но их особенность в том, что они идут первым и последним соответственно, и только один раз.

AutomaticModules.okx_withdraw - берет сеть, из которой будет бридж AutomaticModules.bridge_in, и выводит туда сумму и токен, указанную в настройках модуля MODULES_NAMES.okx_withdraw

AutomaticModules.okx_deposit - берет сеть, в которую бриджил токены AutomaticModules.bridge_out, и выводит оттуда ETH так, чтобы осталось не менее, чем указано в настройках модуля MODULES_NAMES.okx_deposit

Как работают мосты?

Данные модули, также как и остальные, включать и выключать, но их особенность в том, что они идут после OKX Withdraw перед основными модулями, и перед OKX Deposit после основных модулей, и только один раз.

AutomaticModules.bridge_in - позволяет выбрать, какой мост использовать и из какой сети выводить токены

AutomaticModules.bridge_out - позволяет выбрать, какой мост использовать и в какую сеть выводить токены

Как работает рандомизация основных модулей (не обязательно к прочтению)?

В автоматизации были предусмотрены саб-модули. В случае простых модулей, таких как mint нфт или, например, Dmail - это тоже самое, что и обычный модуль, но есть и более сложные модули - Свапы, лендинги, wrap/unwrap.

Каждый модуль имеет параметр quantity - сколько раз его выполнить.

В начале запуска модуля скрипт генерирует список всех саб-модулей, добавляя в него модули в количестве соответствующему количеству транзакций, которые будут выполнены в данном модуле. Далее скрипт запускает эти саб-модули, удаляя записи из списка.

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

AutomaticModules.swaps

Этот модуль позволяет автоматизировать свапы.

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

Скрипт выполняет от 2 до любого количества свапов, деля их на группы. Таким образом может выполниться, к примеру, сначала 2 свапа, потом еще 2 и в конце 3, вместо 8 сразу.

Каждый раз скрипт будет пытаться вернуть всю сумму в ETH, чтобы остальные модули могли с эффективностью использовать токены.

AutomaticModules.wrap_unwrap_eth

Модуль для wrap'ов и unwrap'ов.

Особенность данного модуля в том, что он попытается врапнуть ETH, а если не выйдет, то пропустит unwrap.

Если не удался unwrap, то запишет, что сделал только wrap, и потом попытается еще раз анврапнуть.

AutomaticModules.aave и AutomaticModules.layerbank

Модули для использования лендинг сервисов - основные пути набивания объема.

Особенность данных модулей в том, что они попытаются депозитнуть ETH, а если не выйдет, то пропустит withdraw.

Если не удался withdraw, то запишет, что сделал только deposit, и потом попытается еще раз сделать withdraw.

Остальные модули

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


Настройки автоматизации

Автоматизация - отдельный модуль, у которого есть отдельный настройки.

Модуль может сам выбирать токены, суммы и сети опираясь на собственные настройки, не обращая внимания на настройки отдельных модулей.

Все настройки находятся в переменной AUTOMATIC_CONFIG в файле modules_settings.py

1 - Основные настройки

2 - OKX Withdraw

3 - OKX Deposit

4 - Минимальные балансы

5 - AutomaticModules.bridge_in

6 - AutomaticModules.bridge_out

7 - AutomaticModules.swaps

8 - AutomaticModules.wrap_unwrap_eth

9 - AutomaticModules.send_email

10 - Остальные модули

11 - Включение и выключение модулей

Основные настройки

sleep_at_start - засыпать ли скрипту после AutomaticModules.bridge_in, перед началом выполнения модулей

swap_all_tokens_to_eth_before_withdraw - после выполнения всех модулей и перед AutomaticModules.bridge_out свапнуть все токены в ETH

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

OKX Withdraw

okx_withdraw_enabled - включение вывода с OKX на EVM

Amount и токен настраиваются в MODULES_CONFIG в MODULES_NAMES.okx_withdraw

Сеть берется из AutomaticModules.bridge_in

OKX Deposit

okx_deposit_enabled - включение вывода с EVM на OKX

Amount left (сколько оставить в сети) настраивается в MODULES_CONFIG в MODULES_NAMES.okx_deposit

Сеть берется из AutomaticModules.bridge_out

Минимальные балансы

min_balance_eth - минимальный баланс в ETH. Всегда будет оставляться при свапах на комиссии

min_balance_usdc - минимальный видимый баланс в usdc. Свапы не будут использовать токен, если баланс ниже этого

min_balance_usdt - минимальный видимый баланс в usdt. Свапы не будут использовать токен, если баланс ниже этого

min_balance_weth - минимальный видимый баланс в weth. Свапы не будут использовать токен, если баланс ниже этого

min_amount_leave_on_scroll - минимальный баланс в ETH, который AutomaticModules.bridge_out оставит на scroll'е

max_amount_leave_on_scroll -максимальный баланс в ETH, который AutomaticModules.bridge_out оставит на scroll'е

AutomaticModules.bridge_in

bridge_in_enabled - включает бридж в Scroll

bridge_in_service - какой мост использовать. Варианты "native", "orbiter", "layerswap", "nitro"

bridge_in_chain - из какой сети делать мост. Включайте ту сеть, которую поддерживает мост. К примеру, Native поддерживает только Ethereum, поэтому при использовании его, вписываем сюда "ethereum" и так далее. ВАЖНО: Эта сеть будет использоваться при выводе с OKX, если OKX включен.

AutomaticModules.bridge_out

bridge_out_enabled - включает бридж из Scroll

bridge_out_service - какой мост использовать. Варианты "native", "orbiter", "layerswap", "nitro"

bridge_out_chain - в какую сеть делать мост. Включайте ту сеть, которую поддерживает мост. К примеру, Native поддерживает только Ethereum, поэтому при использовании его, вписываем сюда "ethereum" и так далее. ВАЖНО: Эта сеть будет использоваться при выводе на OKX, если OKX включен.

AutomaticModules.swaps

first_swap_from_eth - первый свап всегда будет из ETH. Я всегда ставлю эту настройку False, потому что софт и так будет делать свапы только из токенов с балансами, но может быть кому-то понадобится

services - список свапалок, которые скрипт будет использовать

min_quantity - сколько минимум раз выполнить модуль (в данном случае - минимум 2)

max_quantity - сколько максимум раз выполнить модуль

decimal - до скольки цифр после запятой округлять рандомное значение amount

min_amount - минимальная сумма ETH, на которую делать свап. Если будет больше баланса, то софт автоматически свапнет меньше

max_amount - максимальная сумма ETH, на которую делать свап. Если будет больше баланса, то софт автоматически свапнет меньше

AutomaticModules.wrap_unwrap_eth

min_quantity - сколько минимум раз выполнить модуль. В данном случае 1 quantity = 2 транзакции (wrap и unwrap)

max_quantity - сколько максимум раз выполнить модуль. В данном случае 1 quantity = 2 транзакции (wrap и unwrap)

AutomaticModules.send_email

min_quantity - сколько минимум раз выполнить модуль

max_quantity - сколько максимум раз выполнить модуль

Остальные модули

Остальные модули настраиваются похожим образом. Читайте комментарии и никаких проблем возникнуть не должно

Включение и выключение модулей

Модулям (всем, кроме AutomaticModules.swaps) можно поставить quantity 0, но проще включать и выключать модули в функции automatic в переменной modules. Это список включенных модулей. Модули можно удалить из данного списка или просто закомментировать


Запуск

Чтобы запустить скрипт достаточно ввести команду

python main.py

У вас появится выбор модулей:

Первым идет запуск автоматического режима

Остальное - запуск конкретного модуля (ручной режим)


Мои контакты

Telegram канал - тут я пишу про новые статьи, новости и про выход нового софта

Наш чат - тут можно задать вопрос и и просто пообщаться

GitHub - тут я пишу код