July 3, 2023

layerzero-bridger | Инструкция

Содержание:

  1. Введение
    1.1. Предисловие
    1.2. Установка
    1.3. Базовые настройки
  2. Обзор функционала
    2.1. Генерация кошельков
    2.2. Вывод стейблкоинов с бирж
    2.3. Запуск бриджера
    2.3.1. Stargate mode
    2.3.2. BTC.b mode
  3. Заключение
    3.1. Важное замечание

1. Введение

1.1 Предисловие

Well, hello, friends. Описанный в предыдущей технической статье stargate-bridger был доработан, оброс новым функционалом и удобными фичами. В честь "знаменательного" события в виде добавления нового моста - переименуем этого красавчика в layerzero-bridger.

В данной статье не будет технических подробностей, напротив, я постараюсь предоставить user-friendly инструкцию по использованию софта. Говоря более конкретно, мы рассмотрим:

  • Функционал, предоставляемый софтом
  • Модификации этого функционала под свои нужды
  • Логику работы (высокоуровнево)
Хочу сразу уточнить, что софт предназначен для минимизации мозгоебки с прогоном большого количества аккаунтов путем рандомизации возможных действий и создания уникальности за счет этого. Поэтому вы не найдете тонкой настройки под каждый конкретный кошелек, задания своих путей для него и т.д.

1.2 Установка

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

Основное взаимодействие с софтом будет происходить через интерфейс командной строки (CLI). Если у вас macOS/Linux, то все команды из статьи будут так же исправно работать в вашем терминале. Если же вы счастливый обладатель Windows - рекомендую сразу установить WSL для избежания всевозможных проблем.

Более подробную инструкцию можно найти в репозитории:
https://github.com/cppmyk/layerzero-bridger

1.3 Базовые настройки

Все настройки перед запуском можно уместить в 2 файла - config.py и .env. Рассмотрим за что каждый из них отвечает:

.env

  • RPC
  • Ключи к биржам
  • Параметры для мостов (slippage, балансы и т. д.)

config.py

  • Поддерживаемые сети для мостов
  • Тайминги

С настройкой .env файла, в котором нужно задать значение переменной после "=", я думаю, все ясно, а вот config.py рассмотрим немного подробнее.

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

SUPPORTED_NETWORKS_STARGATE = [
    # Ethereum(),  # High gas price    
    Polygon(),    
    # Fantom(),  # Liquidity problems    
    Avalanche(),    
    Arbitrum(),    
    BSC(),    
    Optimism()
]

Для настройки таймингов нужно указать диапазон рандомизации в секундах в формате (от, до), где "от" и "до" - рациональные числа >= 0. Для более удобного перевода времени существует класс TimeRanges, который содержит в себе константы с количеством секунд в минуте (TimeRanges.MINUTE) и часе (TimeRanges.HOUR).

# Randomization ranges (seconds). The ranges shown are just examples of values that can easily be changed
class SleepTimings:    
    AFTER_START_RANGE = (0, TimeRanges.MINUTE * 10)  # from 0 seconds to 10 minutes. Sleep after start    
    BEFORE_BRIDGE_RANGE = (30, TimeRanges.HOUR)  # from 30 seconds to 1 hour. Sleep before bridge    
    BALANCE_RECHECK_TIME = TimeRanges.MINUTE * 2  # 2 minutes. Recheck time for stablecoin or native token deposit    
    BEFORE_WITHDRAW_RANGE = (30, TimeRanges.HOUR)  # from 30 seconds to 1. Sleep before withdraw from exchange

2. Обзор функционала

Все дальнейшие команды будут выполняться в терминале, в корневой папке репозитория путем взаимодействия с файлом lz.py:

python3 lz.py <command> [args]

2.1 Генерация кошельков

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

python3 lz.py generate <num_keys> [filename]
  • <num_keys>: Количество приватных ключей, которое будет сгенерировано
  • [filename] (optional): Путь к файлу, в который будут записаны ключи после генерации. По умолчанию generated_keys/private_keys_{datetime}

Пример:

python3 lz.py generate 5
python3 lz.py generate 10 keys.txt

2.2 Вывод стейблкоинов с бирж

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

python3 lz.py withdraw \
   <token> \
   <network> \
   <min_amount> \
   <max_amount> \
   [--min_time <min_time>] \
   [--max_time <max_time>] \
   [--keys <private_keys_file>] \
   [--exchange <exchange_name>]
  • <token>: Название токена (USDT, USDC и т.д.)
  • <network>: Сеть вывода [Arbitrum | Ethereum | Optimism | Polygon | | Fantom | Avalanche | BSC]
  • <min_amount>: Минимальное количество токенов, которое будет выведено
  • <max_amount>: Максимальное количество токенов, которое будет выведено
  • [min_time] (optional): Минимальная задержка между выводами (в минутах). По умолчанию 0
  • [max_time] (optional): Максимальная задержка между выводами (в минутах). По умолчанию 0
  • [private_keys_file] (optional): Путь к файлу с приватными приватными ключами от кошельков, которые будут пополнены с биржи. По умолчанию private_keys.txt
  • [exchange_name] (optional): Биржа, с которой будет осуществлен вывод [binance | okex]. По умолчанию binance

Пример:

python3 lz.py withdraw USDC Ethereum 20 100
python3 lz.py withdraw USDT Ethereum 30 60 --min_time 5 --max_time 10 --keys accounts.txt --exchange okex
Советую использовать Binance, чтобы не заморачиваться с вайтлистами Okex-а.

2.3 Запуск бриджера

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

python3 lz.py run \
   <bridger_mode> \
   [--keys <private_keys_file>] \
   [--refuel <refuel_mode>] \
   [--limit <bridges_limit>]
  • <bridger_mode>: Режим работы [stargate, btcb]
  • [private_keys_file] (optional): Путь к файлу с приватными приватными ключами. По умолчанию private_keys.txt
  • [refuel_mode] (optional): Режим пополнения нативного токена [manual, binance, okex]. Если стоит manual - бот ждет ручного пополнения от вас, иначе - выводит необходимое количество токенов с биржи. По умолчанию manual
  • [bridges_limit] (optional): Максимальное количество бриджей, которое должен сделать бот, после чего остановить свою работу. По умолчанию бот будет работать бесконечно

Пример:

python3 lz.py run stargate
python3 lz.py run btcb --refuel binance 
python3 lz.py run stargate --keys keys.txt --refuel binance --limit 5

2.3.1 Stargate mode

Для лучшего понимания механизма работы режима stargate, рассмотрим следующую схему:

Режим работа stargate

Если сетей, которые удовлетворяют требованию минимального баланса, будет больше одной - она выберется случайно. Ожидания каждый раз рандомизируются в соответствии с заданными значениями в config.py.

2.3.2 BTC.b mode

Данный режим работает аналогично предыдущему, только вместо стейблкоинов он взаимодействует с BTC.b:

Режим работы btcb

Покупка BTC.b должна происходить в ручном режиме.


3. Заключение

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

Грамотные замечания и pull request-ы приветствуются.


Знаете ли вы, что ???!!
Когда вы не подписываетесь на cppmyk.inc, умирает один ретродропер, который продолжает все делать руками! Поделитесь каналом, пусть все знают!!!


3.1 Важное замечание

Для вопросов вида "Как установить Python" существует Google.

Для вопросов вида "Я все 10 раз прогуглил, но все равно не могу понять в чем проблема" существует чат.

Не пишите мне в ЛС, пожалуйста 🥸