Coder Social home page Coder Social logo

layer_zero_v1.1's Introduction

lz-script

Практически AIO скрипт для LayerZero.

Скрипт подготовлен исключительно для ознакомительных целей.
This script was developed for educational purposes only.

Изменения v1.1:

  1. Добавил переменую MIN_STABLE_FOUND в файл main_config.py, чтобы скрипт не цеплял всякую мелочь с кошельков, а работал только с тем количеством стейблов, что вам нужно. Пример: на кошельке есть 2 USDT и 0.11 USDC. Если выставить MIN_STABLE_FOUND = 1.0, то скрипт будет работать только с USDT.
  2. Убрали single-сети, сделал все основными в stargate, чтобы люди не путались. Настройки сетей производится в файле main_config.py и в stargate_._settings.py
  3. Оптимизировал некоторые неточности.
  4. Убрал USDT из сети Arbitrum, т.к. с ним возникало несколько проблем при свапах.
  5. Как только добавлят поддержку стейблов в сетях zkSync и zkEVM, сразу же добавляю их в скрипт.

Что умеет скрипт:

  • Бриджить ВСЕ(!!!) имеющиеся USDT/USDC из любой сети в любую сеть (кроме ETH, FTM (из-за деактивации пулов), Metis)
  • Покупать STG в POLYGON и стейкать их
  • Покупать BTC в AVALANCHE, бриджить их через btcbridge в POLYGON, бриджить обратно и продавать
  • Свапать ETH в ARBITRUM или OPTIMISM на GoerliETH через https://testnetbridge.com/, в одну сторону
  • Бриджить USDT в Aptos через https://theaptosbridge.com/bridge, в одну сторону
  • Бриджить USDT в Harmony через https://bridge.harmony.one/erc20, в одну сторону
  • Разбавлять активности транзакции аппрувами в разных сетях
  • Разбавлять активности транзакции свапами в разных сетях
  • Работать в мультипотоке
  • Выбирать рандомные кошельки и выполнять активности в рандомном порядке
  • Записывать общие логи всех действий и отдельно по кошелькам

Подготовка к использованию

Сети в скрипте делятся на single и не-single. Single сети - ARBITRUM, BSC, OPTIMISM - сети, ИЗ (from) которых можно бриджить, а В (to) - нельзя. Сделано для экономии, т.к. бридж в эти сети в ~2 раза дороже, чем из этих сетей. Не-single сети - POLYGON, AVALANCHE - основные сети.

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

main_config.py

WAIT_TIME = range(5, 10) - задержка между действиями, в минутах
RATIO_STARGATE_SINGLE = 0.5 - процент от баланса USDT/USDC, который будет использован для бриджа из single сетей (1 = 100%, 0.5 = 50%)
STARGATE_CHAIN_LIST - список не-single сетей. Можно добавлять свои (которые представлены на Stargate, естественно). Если нет желания копаться в коде - скип, т.к. для описания процесса добавления пришлось бы писать отдельный гайд.

max_setting.csv

Таблица с настройками комиссий (в долларах).
Activity - активность
MAX_GAS - максимальная комиссия за транзакцию (газ)
MAX_VALUE - максимальный value Stargate (см. скрин ниже)

RPCs.py

Заполняете своими или паблик рпц.

Бесплатные приватные рпц:

  1. https://www.alchemy.com/ (с ними не было проблем)
  2. https://www.quicknode.com/
  3. https://accounts.lavanet.xyz/ (иногда отваливались)

stargate_settings.py

Опционально!
Здесь можно изменить маршруты бриджей.

Для примера возьмем ARBITRUM:
В chain_to указаны POLYGON и AVALANCHE. Если мы хотим добавить возможность бриджить из ARBITRUM в OPTIMISM - добавляем 'OPTIMISM', с новой строки.

data.csv

Сердце скрипта! Уделите особое внимание заполнению этой таблицы. Во всех десятичных числах (17.89) пишется точка ("."), а не запятая.

  1. DO - нужно ли прогонять этот кошелек. Чтобы скрипт начал его прогонять, нужно написать английскую "X". Без "X" не важно, какие активности выбраны дальше. После окончания прогона всех выбранных активностей кошелька, "X" поменяется на "DONE".
  2. Name - название кошелька (необходимо для логов).
  3. Wallet - адрес кошелька в EVM-сети.
  4. Private_key - приватный ключ от кошелька.
  5. Proxy - поле для прокси. Пока не работает, оставляем пустым.
  6. Stargate - лог - общее количество бриджей через старгейт после запуска скрипта, изменять ничего не нужно, нужно для отчётности вам. Изначально = 0.
  7. Stargate_range - сумма от и до - какое количество купить USDT/USDC в не-single сетях. Если на ваших кошельках нет USDT/USDC в не-single сетях, то скрипт приобретет рандомную сумму из заданного ренжа в рандомной сети (!!!).
  8. STARGATE_FIRST_SWAP - указать "DONE" если приобретать USDT/USDC в не-single сетях не нужно (подразумевается, что на одной из сетей уже есть стейблы для прогона). Если покупка стейблов необходима - оставляем пустым.
  9. STARGATE_POLYGON/AVALANCHE - какое количество бриджей из этой сети нужно сделать через StarGate. Изначально 0. ВАЖНО! Должен стоять 0, а не пустая строка, иначе выдаст ошибку.
  10. STARGATE_BSC - по аналогии с STARGATE_POLYGON/AVALANCHE, только для BSC.
  11. STARGATE_BSC_RANGE - значение, сколько покупать USDT/USDC в BSC, по аналогии с STARGATE_RANGE.
  12. STARGATE_BSC_FIRST_SWAP - по аналогии с STARGATE_FIRST_SWAP, только для BSC.
  13. STARGATE_ARBITRUM - по аналогии с STARGATE_POLYGON/AVALANCHE, только для ARBITRUM.
  14. STARGATE_ARBITRUM_RANGE - по аналогии с STARGATE_POLYGON/AVALANCHE, только для ARBITRUM.
  15. STARGATE_ARBITRUM_FIRST_SWAP - по аналогии с STARGATE_FIRST_SWAP, только для ARBITRUM.
  16. STARGATE_LIQ - добавление ликвидности, пока не работает.
  17. STARGATE_LIQ_VALUE - сколько ликвидности добавить на Stargate, пока не работает.
  18. STARGATE_STG - нужно ли покупать и стейкать STG. Модуль работает на POLYGON.
  19. STARGATE_STG_RANGE - сумма от и до в $, ренж сколько покупать STG для стейка.
  20. BTC_BRIDGE - сколько бриджей делать из AVALANCHE в POLYGON и обратно с покупкой-продажей BTC.b. ВАЖНО! Должен стоять 0, а не пустая строка, иначе выдаст ошибку.
  21. BTC_BRIDGE_RANGE - в каком диапазоне покупать BTC.b в $ эквиваленте для работы.
  22. BTC_BRIDGE_STEP - этапы BTC_BRIDGE, трогать не нужно. Изначально пусто. С каждым этапом будет появляться "X", обозначающий, на каком этапе находится скрипт: Один X - купил BTC.b. Два X - забриджил BTC.b в аваланч из полигона. Три X - забриджил BTC.b в полигон из аваланча. Пустая строка - скрипт выполнил продажу BTC.b и вычел из колонки BTC_BRIDGE 1 (единицу).
  23. TESTNET_BRIDGE - сколько раз свапать ETH в GETH через testnetbridge.
  24. TESTNET_BRIDGE_RANGE - диапазон покупки GETH в $ эквиваленте.
  25. TESTNET_BRIDGE_CHAINS - какие сети использовать в testnetbridge. Выбирает случайную. Писать через запятую, с большой буквы.
  26. APTOS_BRIDGE - сколько раз бриджить USDT из BSC в APTOS.
  27. APTOS_BRIDGE_RANGE - в каком диапазоне покупать USDT/USDC.
  28. APTOS_BRIDGE_WALLET - Уникальный Aptos кошелек, на который будут бриджиться USDT. (Генерируйте на Cointool для удобства)
  29. HARMONY_BRIDGE - сколько раз бриджить USDT из BSC в HARMONY.
  30. HARMONY_BRIDGE_RANGE - в каком диапазоне покупать USDT/USDC для бриджа.
  31. SWAP_TOKEN - рандомные свапы, чтобы запутать алгоритм активностей для выявления паттернов сбрива. (Опционально)
  32. SWAP_TOKEN_RANGE - в каком диапазоне свапать рандомные токены. (Опционально)
  33. SWAP_TOKEN_CHAINS - в каких сетях делать случайные свапы. (Опционально)
  34. APPROVE_DO - делать ли рандомные апрувы токенов для своего кошелька. Смысл такой же, как и в свапах токенов, но дешевле. Если делать, написать английскую "X".
  35. APPROVE - лог - количество апрувов, изменять ничего не нужно, нужно для отчётности вам. Изначально = 0.
  36. APPROVE_CHAINS - в каких сетях делать апрувы.
  37. APPROVE_TIMES - какое рандомное количество апрувов от 0 до X делать между активностями.

Логи

В папке log_wallet будут появляться текстовые файлы с логами по конкретным кошелькам. Это необходимо для удобства отслеживания возможных багов и ошибок.
В файле log.csv ведется весь лог по активностям. Если в конце строки написано "True" - значит активность завершилась успешно. Если же написано "False" - значит активность завершилась с ошибкой. Также в ячейке с "False" будет указана встреченная ошибка.
В файл main.txt дублируется лог из Cmd / IDE. В log_wallet то же самое, но с разбивкой по кошелькам.

Примечания

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

Постарайтесь не останавливать скрипт во время выполнения. Если же все-таки без остановки не обойтись - дождитесь выполнения активности и появления строки Запуск в..., а после, остановите скрипт комбинацией клавиш Ctrl+Pause Break. Иначе вам придется разбираться, на каком этапе вы прервали скрипт и редактировать data.csv

layer_zero_v1.1's People

Contributors

tawer95 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.