Scroll Automation инструкция к использованию
Автор статьи - https://t.me/easypeoff
Софт - https://github.com/3asyPe/scroll-automation
Ретродропы уже давно никто не крутит руками, и я - не исключение. Однако большинство софтов не подходят для полной автоматизации процесса (okx -> мост на выбор -> модули с отличной рандомизацией и хорошей отказоустойчивостью -> мост на выбор -> okx).
Поэтому было принято решение дописать уже имеющиеся решения до приемлемого уровня автоматизации, а также добавить недостающие модули.
За основу был взят софт от SybilWave
❗️При возникновении проблем, напомню, я не техническая поддержка и писать мне в личку не стоит. Я скорее всего не отвечу.
Сначала стоит сделать поиск в Google, потом в ChatGPT, потом поиск по нашему чату и только потом задавать вопрос там же, если проблема до сих пор не решилась
Навигация по гайду
Возможности софта
2. Bridge using Orbiter/Nitro/Layerswap or Native
8. Mint and Bridge l2telegraph NFT
10. Deposit and withdraw on Aave and LayerBank
11. Swaps on Skydrome, SyncSwap, Zebra, XYSwap
Вы можете запустить любой из перечисленных модулей на все аккаунты
При запуске появляется как отдельный модуль, но является отдельной частью софта и настраивается отдельно.
Данный режим позволяет прогонять все модули в автоматическом режим. Вы выбираете какие модули и в каком количестве вы хотите, а софт сам их запускает в рандомном режиме.
Софт умный, он сам выбирает токены, суммы и модули.
Установка
1 - Установите Python 3.9 или выше
git clone git@github.com:3asyPe/scroll-automation.git
Или путем обычного скачивания zip:
Перейдите в репозиторий софта -> зеленая кнопка code -> Download ZIP
3 - Перейти в директорию проекта в консоли (PowerShell для пользователей windows)
cd <путь куда вы скачали проект>
cd D:/scroll-automation
cd ~/scroll-automation
Способ 1
- Создать виртуальное окружение
python -m venv venv
- Активировать виртуальное окружение (нужно будет делать каждый раз перед запуском софта)
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 при котором делать транзакции
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, токен или при бридже выбранные сети. Это все настраивается отдельно в модуле автоматизации (об этом позже).
Пройдемся по ключевым модулям, которые послужат примерами. Остальные модули настраиваются также и везде есть комментарии, объясняющие за что отвечает та или иная настройка.
Модуль для вывода токенов С OKX НА EVM
В ручном режиме используются все настройки. В автоматическом, все, кроме dst_chain
dst_chain - сеть, куда вы хотите вывести
min_amount - минимальное количество токенов для вывода
max_amount - максимальное количество токенов для вывода
token - токен, который вы хотите вывести
transfer_from_subaccounts - софт сначала проверит суб-аккаунты OKX на наличие баланса и переведет его на основной аккаунт, а только потом выведет
credentials - ваш OKX API ключ (настраивается в settings.py)
Модуль для вывода токенов С EVM НА OKX
В ручном режиме используются все настройки. В автоматическом, все, кроме src_chain
src_chain - сеть, откуда вы хотите вывести
min_amount_left - минимальное количество токенов ETH, которые вы хотите ОСТАВИТЬ
max_amount_left - максимальное количество токенов ETH, которые вы хотите ОСТАВИТЬ
credentials - ваш OKX API ключ. (настраивается в settings.py)
Модуль для бриджа токенов из сети 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
Модуль для бриджа токенов из сети 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
В ручном режиме используются все настройки модуля, в автоматическом игнорируются 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
В автоматическом режиме скрипт выбирает сети опираясь на другие параметры (об этом позже)
Модуль для свапа токенов через 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
В автоматическом режиме скрипт выбирает токены и суммы опираясь на другие параметры (об этом позже)
Остальные модули настраиваются по тому же принципу. Читайте внимательно комментарии и смотрите на примеры выше
Автоматизация
Главная цель модуля автоматизации - позволить пользователям один раз настроить скрипт, запустить и не беспокоиться о своих аккаунтах долгое время.
Достигается цель путем рандомизации модулей с предварительными и последующими выводами с 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?
3 - Как работает рандомизация основных модулей (не обязательно к прочтению)?
5 - AutomaticModules.wrap_unwrap_eth
Как работает 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 - сколько раз его выполнить.
В начале запуска модуля скрипт генерирует список всех саб-модулей, добавляя в него модули в количестве соответствующему количеству транзакций, которые будут выполнены в данном модуле. Далее скрипт запускает эти саб-модули, удаляя записи из списка.
Таким образом, реализуется отличная рандомизация, при которой шанс того, что модули будут много раз повторяться, уменьшается.
Этот модуль позволяет автоматизировать свапы.
Модуль работает по алгоритму, который сам выбирает токены и включенные свапалки.
Скрипт выполняет от 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
5 - AutomaticModules.bridge_in
6 - AutomaticModules.bridge_out
8 - AutomaticModules.wrap_unwrap_eth
sleep_at_start - засыпать ли скрипту после AutomaticModules.bridge_in, перед началом выполнения модулей
swap_all_tokens_to_eth_before_withdraw - после выполнения всех модулей и перед AutomaticModules.bridge_out свапнуть все токены в ETH
skip_if_failed - Если саб-модуль фейлится, после всех ретраев скрипт засчитает его как сделанный. Лучше ставить True, иначе, если что-то не так с модулем, скрипт может застрять, постоянно пытаясь сделать данный модуль
okx_withdraw_enabled - включение вывода с OKX на EVM
Amount и токен настраиваются в MODULES_CONFIG в MODULES_NAMES.okx_withdraw
Сеть берется из AutomaticModules.bridge_in
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'е
bridge_in_enabled - включает бридж в Scroll
bridge_in_service - какой мост использовать. Варианты "native", "orbiter", "layerswap", "nitro"
bridge_in_chain - из какой сети делать мост. Включайте ту сеть, которую поддерживает мост. К примеру, Native поддерживает только Ethereum, поэтому при использовании его, вписываем сюда "ethereum" и так далее. ВАЖНО: Эта сеть будет использоваться при выводе с OKX, если OKX включен.
bridge_out_enabled - включает бридж из Scroll
bridge_out_service - какой мост использовать. Варианты "native", "orbiter", "layerswap", "nitro"
bridge_out_chain - в какую сеть делать мост. Включайте ту сеть, которую поддерживает мост. К примеру, Native поддерживает только Ethereum, поэтому при использовании его, вписываем сюда "ethereum" и так далее. ВАЖНО: Эта сеть будет использоваться при выводе на OKX, если OKX включен.
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)
min_quantity - сколько минимум раз выполнить модуль
max_quantity - сколько максимум раз выполнить модуль
Остальные модули настраиваются похожим образом. Читайте комментарии и никаких проблем возникнуть не должно
Включение и выключение модулей
Модулям (всем, кроме AutomaticModules.swaps) можно поставить quantity 0, но проще включать и выключать модули в функции automatic в переменной modules. Это список включенных модулей. Модули можно удалить из данного списка или просто закомментировать
Запуск
Чтобы запустить скрипт достаточно ввести команду
Первым идет запуск автоматического режима
Остальное - запуск конкретного модуля (ручной режим)
Мои контакты
Telegram канал - тут я пишу про новые статьи, новости и про выход нового софта
Наш чат - тут можно задать вопрос и и просто пообщаться
GitHub - тут я пишу код