Урок 6: Работа с циклами в BAS
Добро пожаловать на урок, посвящённый циклам! Сегодня мы разберём, что такое циклы, для чего они нужны и какие их виды существуют. В BAS существует 3 типа циклов.
остальные уроки найдете тут
Что такое циклы?
Цикл — это заранее подготовленное последовательность действий, которая выполняется определённое количество раз. Циклы используются в логике скриптов, чтобы автоматизировать повторяющиеся операции. Например, если вам нужно несколько раз выполнить обмен одной монеты на другую (скажем, 5 раз), для этого как раз и применяются циклы.
В нашем базовом наборе есть три основных вида циклов:
- While — цикл с условием.
- For — цикл с заданным количеством повторений.
- Forage — цикл для последовательного перебора элементов.
Давайте разберём каждый из них подробно.
Виды циклов и их применение
1. Цикл for
Описание
Цикл for используется, когда нужно выполнить операцию заданное количество раз. Он работает с верхней и нижней границами:
- Верхняя граница — начальное значение (от какого числа начинаем).
- Нижняя граница — конечное значение (до какого числа выполняем).
Пример
Предположим, мы хотим, чтобы цикл работал от 1 до 100 повторений:
- Устанавливаем верхнюю границу = 1.
- Устанавливаем нижнюю границу = 100.
- Цикл выполнит операцию 100 раз.
Практика
- Создаём функцию CycleFunction (название может быть любым).
- Внутри функции добавляем цикл for с границами от 1 до 100.
- Запускаем скрипт и видим в логе, как счётчик доходит до 100, после чего цикл завершается.
Особенности
- Переменная, которая хранит текущее значение (например, 1, 2, 3... 100), называется Cycle_Index.
- Чтобы использовать значения внутри цикла, обращайтесь к CycleIndex.
Применение
Цикл for подходит для задач вроде:
- Обмена токенов (свапалок).
- Фарминга.
- Любых активностей, где нужно повторить действие фиксированное число раз.
2. Цикл while
Описание
Цикл while работает на основе условия. Он выполняется, пока условие истинно. Если условие становится ложным, цикл завершается.
Пример 1: Бесконечный цикл
- Устанавливаем условие true.
- Цикл будет работать бесконечно, пока его не прервёт внешнее условие или событие.
- Используется, когда нужно что-то выполнять без остановки (например, получать данные с задержками).
Пример 2: Условный цикл
Предположим, у нас есть значение газа (gas), которое обновляется в базе данных. Мы хотим, чтобы цикл работал, пока gas >= 10:
- Пока условие выполняется (gas >= 10), цикл активен, и мы ничего не делаем.
- Как только gas становится меньше 10 (например, 9), цикл завершается, и начинается основная работа.
Практика
- Создаём функцию cycle_function.
- Добавляем блок для получения значения газа из базы (таблица gaschecker):
- Настраиваем цикл while с условием gas >= 10:
- Запускаем скрипт:
Применение
- Ожидание определённых условий (например, нужного значения газа).
- Бесконечные операции с возможностью прерывания.
3. Цикл forage
Описание
Цикл forage используется для последовательного перебора элементов в списке. Он не требует числовых границ, а работает с массивом данных (например, списком сайтов или протоколов).
Пример
Допустим, у нас есть список сайтов:
Мы хотим последовательно зайти на каждый сайт.
Практика
2. Добавляем цикл forage и указываем переменную site_list.
4. Добавляем задержку (например, 5 секунд) между загрузками.
Особенности
Применение
Практическое применение циклов: свап
Теперь давайте применим цикл for для выполнения нескольких операций обмена (свапов) на примере обмена BNB на USDT через 1inch.
Задача
- Поменять BNB на USDT 2 раза.
- Использовать случайные суммы в диапазоне (например, 0.035–1.86 долларов).
Шаги
- Создаём функцию swap:
- Загружаем сайт:
- Указываем ссылку на 1inch с уже выбранной парой BNB → USDT. ссылка должна выглядеть именно так - https://app.1inch.io/#/56/simple/swap/56:BNB/56:USDT
- Генерируем случайную сумму:
- Вводим сумму:
- Выполняем обмен:
- Ждём полной загрузки страницы.
- Оборачиваем в «Игнор ошибок», чтобы избежать сбоев.
- Нажимаем кнопку «Swap» (селектор: button[match="swap"]).
- Подтверждаем транзакцию:
4. Повторяем операцию через цикл for:
Результат
Итоги
Мы рассмотрели три основных цикла:
- for — для фиксированного числа повторений (например, свапы, фарминг).
- while — для работы с условиями (бесконечные циклы или ожидание событий).
- forage — для перебора списков (например, сайтов или протоколов).
Теперь вы готовы применять циклы на практике! Удачи в освоении!