June 28, 2023

настройка config zkLITE

Для начало необходимо определить свою стартовую точку.
Стартовая точка для этого гайда - Apple M1 macbook. ETH на кошельке в майннете/л2 чейнах.

открываем файл config.toml в папке с софтом в lite версии

config.toml

###############################################################################################################

# ОС на которой запускается скрипт:
# 'Apple Silicon', 'Apple Intel', 'Windows', 'Linux'
OS = 'Apple Silicon'

Сразу выбираем нашу систему
'Apple Silicon' - мак на М1 и М2
'Apple Intel', - мак на Intel
'Windows' - windows
'Linux' - linux

[RPCs]

Ethereum  = 'https://eth.llamarpc.com'
Optimism  = 'https://rpc.ankr.com/optimism'
BSC       = 'https://rpc.ankr.com/bsc'
Gnosis    = 'https://rpc.gnosischain.com'
Polygon   = 'https://polygon.llamarpc.com'
Fantom    = 'https://rpc.fantom.network'
Arbitrum  = 'https://arb1.arbitrum.io/rpc'
Avalanche = 'https://avalanche-c-chain.publicnode.com'
zkSync    = 'https://mainnet.era.zksync.io'

Настройка и замена RPC, при каких проблемах с их стороны RPC провдайдеров или замена на личные приватные.

[Timings]

# Время ожидания между выполнением разных акков рандомное в указанном диапазоне
NEXT_ADDRESS_MIN_WAIT_TIME = 0.5  # В минутах
NEXT_ADDRESS_MAX_WAIT_TIME = 1.5  # В минутах

# Время ожидания между транзакциями одного аккаунта
NEXT_TX_MIN_WAIT_TIME = 6   # В секундах
NEXT_TX_MAX_WAIT_TIME = 12  # В секундах

# Максимальное кол-во попыток сделать запрос/транзакцию если они фейлятся
MAX_TRIES = 3

NEXT_ADDRESS_MIN_WAIT_TIME = 0.5 # В минутах
NEXT_ADDRESS_MAX_WAIT_TIME = 1.5 # В минутах

Время ожидания между указынами действиями. Берется случайное значение из диапазона

NEXT_TX_MIN_WAIT_TIME = 6 # В секундах
NEXT_TX_MAX_WAIT_TIME = 12 # В секундах

Время ожидания между транзакциями одного аккаунта. не трогаем


MAX_TRIES = 3

после какого количества попыток сделать транзакцию софт записывает кошелек в FAILED

# Макисамльный газ прайс, при котором делать транзакции в Ethereum
MAX_ETH_GAS_PRICE = 20
# Максимальный газ прайс в Ethereum, при котором делать транзакции в zkSync Lite
MAX_ETH_GAS_PRICE_FOR_ZKSYNC = 40

# Сколько секунд ждать до следующей проверки газ прайса
WAIT_GAS_TIME = 10
# Сколько всего секунд ждать лучшего газ прайса,
# если за это время газ прайс не понизится до нужного значения, будет ошибка
TOTAL_WAIT_GAS_TIME = 3600

MAX_ETH_GAS_PRICE = 20

Настройка которая отслеживает газ в Л1 распространяется на все транзакции в Л1. При газе выше этих значений скрипт будет спать TOTAL_WAIT_GAS_TIME столько секунд сколько в этой переменной. И каждый раз сверяться с газом раз в WAIT_GAS_TIME секунд

В таких настройках при повышении газа больше 20(MAX_ETH_GAS_PRICE) скрипт будет каждые 10 секунд(WAIT_GAS_TIME) смотреть на газ и если за 3600(TOTAL_WAIT_GAS_TIME) секунд он не сможет поймать газ ниже он пропустит этот кошелек

MAX_ETH_GAS_PRICE_FOR_ZKSYNC = 40

Настройка которая отслеживает газ в Л1 но распространяется на все транзакции в Л2 зклайт. При газе выше этих значений скрипт будет спать TOTAL_WAIT_GAS_TIME столько секунд сколько в этой переменной. И каждый раз сверяться с газом раз в WAIT_GAS_TIME секунд

В таких настройках при повышении газа больше 40(MAX_ETH_GAS_PRICE_FOR_ZKSYNC) скрипт будет каждые 10 секунд(WAIT_GAS_TIME) смотреть на газ и если за 3600(TOTAL_WAIT_GAS_TIME) секунд он не сможет поймать газ ниже он пропустит этот кошелек

WAIT_GAS_TIME = 10

Раз в сколько секунд смотреть на газ для того, чтобы попытаться отправить транзакцию


TOTAL_WAIT_GAS_TIME = 3600

Сколько секунд в общем скрипт будет ждать, прежде чем пропустить кошелек и перейти к следующему

[Telegram]

# Токен и chat id бота в тг. Можно оставить пустым.
TELEGRAM_BOT_TOKEN = ''
TELEGRAM_CHAT_ID = 0
# При true, скрипт выдает ваш chat id для отправки сообщений в боте. Бриджи не запускаются
GET_TELEGRAM_CHAT_ID = false

Настрйока для логов вам в телеграмм.

TELEGRAM_BOT_TOKEN = ''

Токен для телеграмм бота

TELEGRAM_CHAT_ID = 0

Чат ID с ботом

GET_TELEGRAM_CHAT_ID = false

Будет работать отправка результатов вам в телеграмм или нет
false = не работает
true = работает
###############################################################################################################

[Settings]

###############################################################################################################

# Ethereum <-> zkSync Lite
USE_OFFICIAL_BRIDGE = true

# Ethereum, Arbitrum, Optimism, zkSync Era, Polygon, BSC <-> zkSync Lite
USE_ORBITER = true

USE_OFFICIAL_BRIDGE = true

Использовать официальный мост для бриджа

USE_ORBITER = true

Использовать orbiter для бриджа

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

# Минимальный баланс ETH (WETH для Polygon, BSC), на который скрипт будет триггериться для бриджа.
BRIDGE_ETH_MIN_TRIGGER = 0.008

# Сколько ETH (WETH для Polygon, BSC). Выбирается рандомное значение в диапазоне.
# При использовании Orbiter, дополнительная комиссия моста не идет в счет этого значения.
BRIDGE_ETH_AMOUNT = [0.0063, 0.007]

# Сколько бриджить ETH в процентах. Если стоит 0, то используется BRIDGE_ETH_AMOUNT, иначе берется процент.
# Во всех переменных связанных с процентом, в итоге рассчитывается рандомное значение
# в небольшом диапазоне вокруг указанного процента (+- 1% от указанного процента)
BRIDGE_ETH_PERCENT = 40

# Если true, то на каждом акке сначала забриджит, а потом будут выполняться остальные действия.
BRIDGE_BEFORE_ALL = true
# Ожидание бриджа в секундах. Скрипт продолжит прогонять остальные акки, не останавливаясь.
BRIDGE_WAIT_TIME = 600

# Доступные значения:
# 'Ethereum', 'Arbitrum', 'Optimism', 'zkSync', 'Polygon', 'BSC', 'zkSync Lite'
#
# Из каких сетей бриджить. Среди указанных сетей ищет из какой можно забриджить соответствуя указанным параметрам.
BRIDGE_CHAINS_FROM = ['Arbitrum']
# В какие сети бриджить. Если указать несколько, то будут выбираться рандомные для каждого аккаунта.
BRIDGE_CHAINS_TO = ['zkSync Lite']

BRIDGE_ETH_MIN_TRIGGER = 0.008

Сумма на которую скрипт обращает внимание в ETH/WETH (WETH для Polygon, BSC) и с которой он дальше работает

BRIDGE_ETH_AMOUNT = [0.0063, 0.007]

# Сколько ETH (WETH для Polygon, BSC). Выбирается рандомное значение в диапазоне.
# При использовании Orbiter, дополнительная комиссия моста не идет в счет этого значения.

Мы указываем сколько хотим ПОЛУЧИТЬ. значение received при трансфере руками
то есть указываем сколько мы в итоге ПОЛУЧАЕМ, без учета комиссии за транзакцию.

BRIDGE_ETH_PERCENT = 40

Функция дает бриджить ефир от баланса в процентах. Если постваить -1, то будет использвать диапазон из переменной BRIDGE_ETH_AMOUNT. Если поставить 100, то будет бриджиться весь эфир. может выдавать ошибки, если будет не хватать газа.

При 0 будут фейлы. при 1 будет бриджится 1 процент эфира. Если 1 процента не хватает для бриджа, то будут ошибки

BRIDGE_BEFORE_ALL = true

Если true, то на каждом акке сначала забриджит, а потом будут выполняться остальные действия.
Функция используется для того, чтобы избежать ситуации, когда у вас нет выполнился бридж на кошелек в сеть и не набежало ошибок при выполнении списка действий. Ниже по конфигу вы задаете количество действий для кошелька. И если вы хотите сначала чтобы на кошельке был бридж в зклайт ставьте true. После бриджа скрипт начнет работать по другим дейсвтиям из пула

BRIDGE_WAIT_TIME = 300

# Ожидание бриджа в секундах. Скрипт продолжит прогонять остальные акки, не останавливаясь.
Сделался бридж на кошельке. Записалось время бриджа. И добавились все остальные действия для этого кошелька в список действий.
Когда в следующий раз скрипт выберет делать какое-то из этих действий. Он проверит поменялся ли баланс в сети куда бриджим (считай дошли ли бабки), если да то приступает к свапам и тп. Если нет, то скипает это действие и заново его в список добавляет
Так вот чтобы бесконечно так в список не добавлялось если вдруг бридж тупит, есть этот параметр.
Если в очередной раз он захояет сделать свап после бриджа, а бридж все еще не дошел и прошло вреиени с бриджа больше чем в этом параметре указано то оно уже напишет типа фейл вся хуйня

BRIDGE_CHAINS_FROM = ['Arbitrum']

Из какой сети мы бриджим. В конфиге показаны доступные параметры

BRIDGE_CHAINS_TO = ['zkSync Lite']

В какую сеть мы бриджим

Соотсветенно можно бриджить и ИЗ и В сеть.

###############################################################################################################

# Если предыдущий запуск скрипта закончился раньше запланированного,
# то можно "восстановить" весь прогресс, чтобы не делать лишних операций.
# Вся информация каждого запуска записывается в results/date-time/stats.csv
# Чтобы восстановить прогресс, содержимое этого файла надо скопировать в files/stats.csv
RESTORE_PREVIOUS_RUNS = false

###############################################################################################################

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

чтобы включить востановление надо скопировать в stats.csv из папки results/date-time/stats.csv в files/stats.csv
и включить модуль
RESTORE_PREVIOUS_RUNS = true

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

BRIDGE_COUNT = [1, 1]

SELF_SEND_COUNT = [0, 0]

SEND_COUNT = [0, 0]

MINT_COUNT = [0, 0]

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

BRIDGE_COUNT = [1, 1]

Количество бриджей В сеть ЗКЛАЙТ. стоит дипазон от 1, до 1. Это значит, что скрипт сделает 1 бридж.

SELF_SEND_COUNT = [0, 0]

Отправка eth на свой же адерсс. используется для накрутки транзакций

SEND_COUNT = [0, 0]

Отправка eth на случайно сгенерированный адресс. используется для накрутки транзакций

MINT_COUNT = [0, 0]

сколько нфт мы будем минтить. картинки берустя из контрактов нфт в файле
nft_collections.txt

# Сколько ETH отправлять селф транзакцией кошельки. Выбирается рандомное значение в диапазоне.
# Округляется рандомно от 6 до 9 знаков
SEND_ETH_SELF_AMOUNT = [0.000005, 0.00002]
# Сколько ETH отправлять на рандомные кошельки. Выбирается рандомное значение в диапазоне.
# Округляется рандомно от 6 до 9 знаков
SEND_ETH_TO_RANDOM_AMOUNT = [0.000005, 0.00002]

SEND_ETH_SELF_AMOUNT = [0.000005, 0.00002]

настройка диапазона для случайных сумм в транзакциях на свой кошелек

SEND_ETH_TO_RANDOM_AMOUNT = [0.000005, 0.00002]

настройка диапазона для случайных сумм в транзакциях на случайный кошелек кошелек

###############################################################################################################

# Ваш API-ключ для moralis.io
# Необходим для минта нфт
MORALIS_API_KEY = ''

MORALIS_API_KEY = ''

Сюда вставляем апи для минтов с сайта https://moralis.io/
Делаем аккаунт на сайте и вам автоматически предложит апишку. копируем вставляем в конфиг

На этом работа с конфигом заканчивается. Данный конфиг настроен на то, чтобы сделать бридж с eth или orbiter в зклайт. Настройте его под себя. Обещаю видеогайд по работае с конфигом. Но пока только разбор настроек

возвращаемся обратно к путеводителю

https://teletype.in/@s7miles/yGp4R7enVrk