# modules

{% hint style="info" %}
Все актуальные модули можно найти самостоятельно в файле default-module-configs.ts

{% endhint %}

{% hint style="info" %}
В примерах ниже, удалены базовые параметры, которые можно применять к любым модулям: **delay**, **count**, **indexGroup**, **maxGas**, **gweiRange**, **network**, **gasLimitRange**, **stopWalletOnError**, **stopWalletOnPassed**. \
\
Все эти модули можете добавлять самостоятельно.
{% endhint %}

***

## <mark style="color:purple;">Different</mark>

***

### balance-checker

<details>

<summary>balance-checker</summary>

Позволяет смотреть балансы во всех поддерживаемых сетях. Можно указать 'native', если хотите просмотреть баланс токена, которым оплачиваете комиссию в сети или же указать свой собственный контракт из эксплорера.

Выводит в файл csv в папку \_outputs

```typescript
{
    moduleName: 'balance-checker',
    network: 'eth', // arbitrum / base и тд. Любая сеть из папки src/clients

    // Контракт токена для проверки баланса или используйте 'native' для 
    // проверки баланса нативного токена указанной сети
    contractAddress: 'native',
},
```

</details>

***

### deploy-contract

<details>

<summary>deploy-contract</summary>

Выполнит деплой контракта в указанной сети с указанным bytecode.&#x20;

```typescript
{
    moduleName: 'deploy-contract',
    network: 'eth',

    bytecode: '0x',
},
```

</details>

***

### merly-refuel

<details>

<summary>merly-refuel</summary>

Выполнит транзакцию для отправки газа через Merkly протокол

```typescript
{
    moduleName: 'merkly-refuel',

    // Перечислите сети, из которых рандомно будет выбрана одна или же укажите 'auto',
    // тогда будет автоматически выбрана сеть с наибольшим балансом
    merklySrcNetworks: ['bsc', 'polygon'],

    // Перечислите сети, которые будут использованы для режима auto
    merklyAutoNetworks: ['optimism', 'fantom', 'base', 'arbitrum', 'opBNB'],

    // Перечислите сети, из которых рандомно будет выбрана одна
    merklyDstNetworks: ['optimism', 'fantom', 'gnosis', 'base', 'arbitrum', 'moonbeam', 'moonriver', 'opBNB', 'mentis'],

    // Количество, которое будет использовано для модуля. 
    // Можно указать в процентах, если usePercentBalance: true
    minAndMaxAmount: [0.02, 0.03], // от 0.02 до 0.03 отправляемых токенов
    usePercentBalance: false,
  },
```

</details>

***

### bungee-refuel

<details>

<summary>bungee-refuel</summary>

Выполнит транзакцию для отправки газа через Bungee протокол.\
Полезный модуль для качественного набива транзакций в ETH сети.

```typescript
{
    moduleName: 'bungee-refuel',

    // Укажите сеть, из которой будет выполнен refuel
    network: 'eth',

    // Перечислите сети для пополнения. Рандомно будет выбрана одна.
    // Можно указать любую сеть.
    destinationNetworks: ['gnosis', 'polygon', 'polygon_zkevm', 'base'], 

    // Количество, которое будет использовано для модуля. 
    // Можно указать в процентах, если usePercentBalance true
    minAndMaxAmount: [10, 15], // от 10% до 15%
    usePercentBalance: true,
},
```

</details>

***

### random-approve

<details>

<summary>random-approve</summary>

Выдает апрув на использование рандомного токена для рандомного проекта.\
Полезный модуль для набива уникальных контрактов и транзакций.

```typescript
{
    moduleName: 'random-approve',
    network: 'eth',

    contractAddresses: [
      '0xdAC17F958D2ee523a2206206994597C13D831ec7', // USDT
      '0x...', // контракт любого токена 
    ],
    projectAddresses: [
      '0x13f4EA83D0bd40E75C8222255bc855a974568Dd4', // pancake
      '0x...', // контракт любого проекта 
    ],
  },
```

</details>

***

### transfer-token

<details>

<summary>transfer-token</summary>

Отправит конкретный токен на адрес друго кошелька. Это может быть как отправка на биржу, так и на свой же EVM кошелёк.

<mark style="color:red;">Модуль использует поле secondAddress в файле wallets.csv. Именно на secondAddress будет отправка с помощью данного модуля!</mark>

```typescript
{
    moduleName: 'transfer-token',
    network: 'eth',

    // Диапазон для трансфера
    minAndMaxAmount: [0.0001, 0.0003],
    usePercentBalance: false,

    // Контракт токена для трансфера или используйте 'native' для 
    // трансфера нативного токена указанной сети в network
    contractAddress: 'native',

    // Модуль будет выполнен только, 
    // если баланс указанного токена будет выше данного значения
    minTokenBalance: 0,
},
```

</details>

***

### self-transfer-token

<details>

<summary>self-transfer-token</summary>

Выполнит отправку конкретного токена на свой же кошелёк.&#x20;

```typescript
{
    moduleName: 'self-transfer-token',
    network: 'eth',

    // Диапазон для трансфера
    minAndMaxAmount: [0.0001, 0.0003],
    usePercentBalance: false,

    // Контракт токена для трансфера или используйте 'native' для 
    // трансфера нативного токена указанной сети
    contractAddress: 'native',

    // Модуль будет выполнен, только, если баланс указанного токена 
    // будет выше данного значения
    minTokenBalance: 0,
  },
```

</details>

***

### wrap-eth

<details>

<summary>wrap-eth</summary>

Выполнит оборачивание вашего ETH, чтобы получить WETH.&#x20;

<mark style="color:orange;">**reverse**</mark> - выполнять ли такую же транзакцию, только в обратном направлении? ETH -> WETH -> ETH. Если укажите true, тогда он сделает 2 транзакции и по окончанию модуля у вас всё так же останется ETH на балансе.

<mark style="color:orange;">**reverseMinAndMaxAmount**</mark> - сумма в %, которая будет возаращена обратно в ETH с WETH.

<mark style="color:orange;">**gweiRange**</mark> - газ, который будет использоваться именно для данного модуля в указанном диапазоне

<mark style="color:orange;">**minNativeBalance**</mark> - минимальный баланс при котором данный модуль будет выполнен, если баланс будет ниже указанного значения, тогда софт скипнет этот модуль

```typescript
{
    moduleName: 'wrap-eth',
    network: 'taiko',
    gweiRange: [0.11, 0.13],
    
    // Минимальный баланс ETH для работы с модулем
    minNativeBalance: 0.1,

    // Минимальный баланс WETH, который должен быть на кошельке, в случае, 
    // если баланс ETH меньше minNativeBalance
    minDestTokenBalance: 0.09,
    
    minAndMaxAmount: [85, 90],
    usePercentBalance: true,
    
    reverse: true,
    reverseMinAndMaxAmount: [100, 100],
}
```

</details>

***

## <mark style="color:purple;">Bridges</mark>

***

### jumper

<details>

<summary>jumper</summary>

Модуль может отправлять любые токены из любых сетей в необходимые через Jumper. Очень удобно комбинировать данный модуль с модулем OKX/Bitget, чтобы сразу после вывода с биржи средства перевести в нужное вам место.

```typescript
 {
    moduleName: 'jumper',

    // Пара токенов с и в какой свапать
    pairs: ['ETH', 'USDC'],
    // или
    // Пара токенов с и в какой бриджить
    pairs: ['USDC', 'USDC'],

    // Сеть из которой нужно сделать отправку
    network: 'base',

    // Модуль будет выполнен, только, если баланс токена будет выше данного значения
    // Например вы выводите USDC и модуль будет выполнен, только в том случае, если
    // баланс USDC будет выше 15 USDC. Если же баланс будет ниже, тогда модуль пропустим
    minTokenBalance: 15,

    // Сеть в которую будет выполнен бридж
    // 'bsc' | 'opBNB' | 'optimism' и тд
    destinationNetwork: 'optimism',

    // Если баланс в сети destinationNetwork кошелька будет ниже этого значения, 
    // только тогда будет выполнен модуль. Поле нужно для того, чтобы
    // не отправлять средства в сеть, если они уже там есть в необходимом количестве
    minDestTokenBalance: 10,

    // Количество токена, которые будут использовано для бриджа
    minAndMaxAmount: [100, 100],
    // поле включено, а значит в minAndMaxAmount используются проценты
    usePercentBalance: true,

    // Баланс, который необходимо оставить в сети из которой выполняется отправка
    // С данным полем minAndMaxAmount и expectedBalance не учитываются
    // При этом необходимо закладывать какое-то значением плюсом, которое теоретически уйдет на комиссию
    balanceToLeft: [0, 0],

    // Бриджи/свапы, которые должны быть использованы в приоритете
    // Если оставить [] или если ни один маршрут не использует указанные инструменты,
    // будет выбран наилучший маршрут по jumperRouteOrder
    // Бриджи: 'hop' | 'cbridge' | 'hyphen' | 'optimism' | 'arbitrum' | 'across' | 'stargate' | 'gnosis' | 'omni' | 'amarok' | 'celercircle' | 'allbridge' | 'celerim' | 'thorswap' | 'symbiosis' | 'squid'
    // Свапы 'dodo' | 'paraswap' | 'enso' | 'propeller' | 'odos' | '1inch' | 'openocean' | '0x' | 'uniswap' | 'sushiswap' | 'apeswap' | 'verse' | 'quickswap' | 'honeyswap' | 'lif3swap' | 'pancakeswap' | 'swapr' | 'spookyswap' | 'spiritswap' | 'soulswap' | 'tombswap' | 'arbswap' | 'solarbeam' | 'beamswap' | 'voltage' | 'ubeswap' | 'oolongswap' | 'cronus' | 'evmoswap' | 'trisolaris' | 'stable' | 'kyberswap' | 'lifidexaggregator'
    jumperPriorityTools: [],

    // Приоритет выбора маршрутов
    // 'CHEAPEST' - самые дешевые
    // 'FASTEST' - самые быстрые
    jumperRouteOrder: 'CHEAPEST',
},
```

</details>

***

### orbiter

<details>

<summary>orbiter</summary>

Отправляет нативные токены из одной сети в другую

```typescript
{
    moduleName: 'orbiter-bridge',
    
    // Сеть, из которой будут отправлены токены
    network: 'arbitrum',

    // Количество токенов, которые будут использованы для модуля. 
    // Можно указать в процентах, если usePercentBalance true
    minAndMaxAmount: [0.0017, 0.0017],
    usePercentBalance: false,

    // Сеть, в которую будут отправлены токены через мост
    destinationNetwork: 'zkSync',
  },
```

</details>

***

### relay

<details>

<summary>relay</summary>

Один из самых дешевых мостов для пополнения сетей на небольшой объем

```typescript
{
    moduleName: 'relay-bridge',
    
    network: 'optimism',
    // Бридж будет выполнен рандомно из списка из сети, 
    // в которой баланс выше minNativeBalance.
    // Если это поле пустое, тогда будет использован параметр network
    randomNetworks: [],
    // Модуль будет выполнен, только, если нативный баланс баланс будет выше данного значения
    minNativeBalance: 0.001,
    
    

    // Сеть в которую будет выполнен бридж
    destinationNetwork: 'arbitrum',
    // Если баланс в сети destinationNetwork будет ниже этого значения, 
    // только тогда будет выполнен данный модуль
    minDestNativeBalance: 0.001,

    // Количество нативного токена, которые будут использовано для бриджа
    minAndMaxAmount: [0.0001, 0.0002],
    usePercentBalance: false,

    // Бридж не выполнится, если fee будет больше чем указаный
    maxFee: 0.001,

    // Баланс, который необходимо оставить в сети из которой выполняется отправка
    // С данным полем minAndMaxAmount и expectedBalance не учитываются
    // При этом необходимо закладывать какое-то значением плюсом, которое теоретически уйдет на комиссию
    balanceToLeft: [0, 0],

    // Ожидаемый баланс в сети destinationNetwork без учета fee
    // Софт проверит уже текущий баланс в сети в которую отправляете, отнимает это 
    // значение от суммы отправки и если это значение будет выше значения в minAmount 
    // тогда, отправит только сумму, которой не хватает для ожидаемого баланса в expectedBalance
    expectedBalance: [0, 0],
    
    // Бридж будет выполнен только, если высчитанный amount будет больше данного значения
    minAmount: 0,
},
```

</details>

***

### XY-finance

<details>

<summary>XY-finance</summary>

```typescript
{
    moduleName: 'xy-finance-bridge',

    // Сеть из которой будет выполнен бридж
    network: 'arbitrum',

    // При указании данного поля сеть для бриджа будет выбрана та из списка, 
    // где будет баланс выше minTokenBalance
    // Работает только, если useUsd = true!
    // Поле network не учитывается, если работает randomNetworks!
    randomNetworks: ['arbitrum'],

    contractAddress: 'native',
    
    // Минимальный баланс в сети для того, чтоб быть выбранным через randomNetworks
    minTokenBalance: 0,

    // Использовать ли USD как значения балансов, amount
    useUsd: false,

    // Сеть в которую будет выполнен бридж
    destinationNetwork: 'taiko',

    // Если баланс в сети destinationNetwork кошелька будет ниже этого значения, только тогда будет выполнен модуль
    // Если вам на балансе нужно всего например 0.005 ETH в сети Ethereum, тогда укажите здесь это количество,
    // чтобы мы ничего не делали с этим кошельком при повторном запуске!
    minDestTokenBalance: 0,

    // Количество нативного токена, которые будут использовано для бриджа
    minAndMaxAmount: [0.00014, 0.00015],
    usePercentBalance: false,

    // Ожидаемый баланс в сети destinationNetwork без учета fee
    expectedBalance: [0, 0],

    // Баланс, который необходимо оставить в сети, с которой выполняется отправка
    // С данным полем minAndMaxAmount и expectedBalance не учитываются
    // При этом необходимо закладывать какое-то значением плюсом, которое теоретически уйдет на комиссию
    balanceToLeft: [0, 0],

    // Бридж будет выполнен только, если высчитанный amount будет больше данного значения
    minAmount: 0,

    // Возможные потери при выполнении бриджа
    slippage: 1,
  },
```

</details>

***

### zk-bridge

<details>

<summary>zk-bridge</summary>

```typescript
{
    moduleName: 'zk-bridge',

    // 'bsc' | 'opBNB'
    network: 'opBNB',

    // Модуль будет выполнен, только, если нативный баланс будет выше данного значения
    minNativeBalance: 0,

    // Сеть в которую будет выполнен бридж
    // 'bsc' | 'opBNB'
    destinationNetwork: 'bsc',

    // Если баланс в сети destinationNetwork кошелька будет ниже этого значения, только тогда будет выполнен модуль
    minDestNativeBalance: 0,

    // Количество нативного токена, которые будут использовано для бриджа
    minAndMaxAmount: [0.01, 0.011],
    usePercentBalance: false,

    // Баланс, который необходимо оставить в сети, с которой выполняется отправка
    // С данным полем minAndMaxAmount и expectedBalance не учитываются
    // При этом необходимо закладывать какое-то значением плюсом, которое теоретически уйдет на комиссию
    balanceToLeft: [0, 0],

    gweiRange: [0.000004, 0.000005], // для opBNB
    // gweiRange: [1, 1.1], // для BSC
  },
```

</details>

***

### router-nitro

<details>

<summary>router-nitro</summary>

```typescript
{
    moduleName: 'routernitro-bridge',
    
    // eth
    contractAddress: 'native',

    // Сеть с которой будет выполнен бридж
    network: 'optimism',

    // При указании данного поля сеть для бриджа будет выбрана та из списка, где будет баланс выше minTokenBalance
    // Работает только, если useUsd = true
    randomNetworks: ['optimism', 'polygon', 'arbitrum'],

    // Минимальный баланс в сети для того, чтоб быть выбранным через randomNetworks
    minTokenBalance: 0.01,

    // Использовать ли USD как значения балансов, amount
    useUsd: false,

    // Сеть в которую будет выполнен бридж
    destinationNetwork: 'zkSync',

    // Если баланс в сети destinationNetwork кошелька будет ниже этого значения, только тогда будет выполнен модуль
    // Если вам на балансе нужно всего например 0.005 ETH в сети Ethereum, тогда укажите здесь это количество,
    // чтобы мы ничего не делали с этим кошельком при повторном запуске!
    minDestTokenBalance: 0.01,

    // Количество нативного токена, которые будут использовано для бриджа
    minAndMaxAmount: [0.003, 0.0035],
    usePercentBalance: false,

    // Ожидаемый баланс в сети destinationNetwork без учета fee
    expectedBalance: [0.0125, 0.0127],

    // Баланс, который необходимо оставить в сети, с которой выполняется отправка
    // С данным полем minAndMaxAmount и expectedBalance не учитываются
    // При этом необходимо закладывать какое-то значением плюсом, которое теоретически уйдет на комиссию
    balanceToLeft: [0, 0],

    // Бридж будет выполнен только, если высчитанный amount будет больше данного значения
    minAmount: 0.005,

    // Модуль будет ожидать, пока текущий fee, не станет меньше или равным указанному
    maxFee: 0.00001,
  },
```

</details>

***

### meson

<details>

<summary>meson</summary>

```typescript
{
    moduleName: 'meson-bridge',

    // Отправляемый токен
    tokenToSupply: 'USDT',

    // Сеть из которой будет выполнен бридж
    network: 'arbitrum',

    // Сеть в которую будет выполнен бридж
    destinationNetwork: 'zkSync',

    // Если баланс в сети destinationNetwork кошелька будет ниже этого значения, только тогда будет выполнен модуль
    // Если вам на балансе нужно всего например 0.005 ETH в сети Ethereum, тогда укажите здесь это количество,
    // чтобы мы ничего не делали с этим кошельком при повторном запуске!
    minTokenBalance: 0.01,

    // Количество нативного токена, которые будут использовано для бриджа
    minAndMaxAmount: [0.005, 0.0055],
    usePercentBalance: false,
  },
```

</details>

***

## <mark style="color:purple;">Exchanges</mark>

***

### binance-withdraw

<details>

<summary>binance-withdraw</summary>

Выполняет вывод с биржи Binance. Укажите ключи в global.js

```typescript
{
    moduleName: 'binance-withdraw',
    count: [1, 1],
    indexGroup: 0,

    // Сеть из которой нужно делать вывод с Binance. bsc | opBNB | polygon
    binanceWithdrawNetwork: 'bsc',

    // При рандомных сетях будет браться нативный токен сети
    tokenToWithdraw: 'BNB',

    // При указании данного поля сеть для вывода будет выбрана рандомно из списка
    // Работает только, если useUsd = true
    randomBinanceWithdrawNetworks: [],

    // Сумма в диапазоне ОТ и ДО, которая будет выведена с Binance в токене, который указан в tokenToWithdraw
    minAndMaxAmount: [0.009, 0.0095],

    // Если баланс токена в tokenToWithdraw будет ниже этого значения, только тогда будет авто-пополнение
    minTokenBalance: 0.0003,

    // Где именно смотреть баланс minNativeBalance
    // minNativeBalanceNetwork: 'bsc',

    // Модуль будет выполнен, только, если высчитанный amount вместе с fee будет больше указанного значение
    minAmount: 0,

    // Ожидаемый баланс на кошельке, который должен быть после выполнения модуля. При указании данного параметра, minAndMaxAmount и minNativeBalance не учитываются
    expectedBalance: [0, 0],

    // Использовать ли USD как значения балансов, amount
    useUsd: false,
  },
```

</details>

***

### okx-withdraw

<details>

<summary>okx-withdraw</summary>

Выполняет вывод с биржи OKX. Укажите ключи в global.js

```typescript
{
    moduleName: 'okx-withdraw',
    count: [1, 1],
    indexGroup: 0,

    // Сеть из которой нужно делать вывод с OKX. eth | optimism | polygon | zkSync
    okxWithdrawNetwork: 'optimism',

    // При указании данного поля сеть для вывода будет выбрана рандомно из списка
    // Работает только, если useUsd = true
    // randomOkxWithdrawNetworks: ['optimism', 'polygon', 'arbitrum'],

    // При рандомных сетях будет браться нативный токен сети
    tokenToWithdraw: 'ETH',

    // Сумма в диапазоне ОТ и ДО, которая будет выведена с OKX в токене, который указан в tokenToWithdraw
    minAndMaxAmount: [1.1, 1.2],

    // Если баланс токена в tokenToWithdraw будет ниже этого значения, только тогда будет авто-пополнение
    // При использовании randomOkxWithdrawNetworks, модуль будет пропущен, если в одной из выбранных сетей баланс выше данного значения
    minTokenBalance: 0.0003,

    // Модуль будет выполнен, только, если высчитанный amount вместе с fee будет больше указанного значение
    minAmount: 0,

    // Ожидаемый баланс на кошельке, который должен быть после выполнения модуля. При указании данного параметра, minAndMaxAmount и minNativeBalance не учитываются
    expectedBalance: [0, 0],

    // Использовать ли USD как значения балансов, amount
    useUsd: false,
  },
```

</details>

***

### bitget-withdraw

<details>

<summary>bitget-withdraw</summary>

Выполняет вывод с биржи Bitget. Укажите ключи в global.js

```typescript
{
    moduleName: 'bitget-withdraw',
    count: [1, 1],
    indexGroup: 0,

    // Сеть из которой нужно делать вывод с Bitget. eth | bsc | optimism | polygon | arbitrum
    network: 'bsc',

    // Токен, который будет выведен. USDC | USDT | BNB | ETH
    tokenToWithdraw: 'ETH',

    minAndMaxAmount: [31, 33],
    usePercentBalance: false,

    // Минимальное кол-во токена, при котором будет выполнен withdraw
    minTokenBalance: 25,

    // minAmount: 25,

    waitTime: 60,
  },
```

</details>

***

### gate-withdraw

<details>

<summary>gate-withdraw</summary>

Выполняет вывод с биржи Gate. Укажите ключи в global.js

```typescript
{
    moduleName: 'gate-withdraw',
    count: [1, 1],
    indexGroup: 0,

    // Сеть из которой нужно делать вывод с Gate. eth
    network: 'eth',

    tokenToWithdraw: 'ETH',

    // Сумма в диапазоне ОТ и ДО, которая будет выведена с Gate в токене, который указан в tokenToWithdraw
    minAndMaxAmount: [0.011, 0.012],

    // Если баланс токена в tokenToWithdraw будет ниже этого значения, только тогда будет авто-пополнение
    minTokenBalance: 0,

    // Модуль будет выполнен, только, если высчитанный amount будет больше указанного значение
    minAmount: 0,
  },
```

</details>

***

### okx-collect

<details>

<summary>okx-collect</summary>

Модуль собирает все токены с суб-счетов. Помимо сбора с суб-счетов он так же собирает токены с других аккаунтов ОКХ через почту указанную в global.js

```typescript
{
    moduleName: 'okx-collect',
    count: [1, 1],
    indexGroup: 0,

    // Аккаунты для которых будет выполняться модуль
    // Формат: ['accountName1', 'accountName2', ...]
    // Названия должны соответствовать таковым в global.js, в противном случае они будут проигнорированы
    // Так-же можно указать 'all' и тогда модуль выполнится для всех аккаунтов в global.js
    okxAccounts: 'all',

    // Будет собирать только указанные токены
    // Если оставить пустым [], то попробует собрать все возможные токены
    collectTokens: ['BNB', 'ETH', 'USDT', 'USDC', 'DAI'],
  },
```

</details>

***

### okx-wait-balance

<details>

<summary>okx-wait-balance</summary>

Модуль собирает все токены с суб-счетов и ожидает поступления нужного баланса на основной аккаунт. Помимо сбора с суб-счетов он так же собирает токены с других аккаунтов ОКХ через почту указанную в global.js

```typescript
{
    moduleName: 'okx-wait-balance',
    count: [1, 1],
    indexGroup: 0,

    // Минимальный баланс токенов для ожидания
    waitBalance: 1,

    // Токены баланс которых будет ожидать
    collectTokens: ['ETH'],

    // Время в секундах, которое будет ожидать между проверками баланса
    waitTime: 60 * 5, // 5m

    // Аккаунты для которых будет выполняться модуль
    // Формат: ['accountName1', 'accountName2', ...]
    // Названия должны соответствовать таковым в global.js, в противном случае они будут проигнорированы
    // Так-же можно указать 'all' и тогда модуль выполнится для всех аккаунтов в global.js
    okxAccounts: 'all',
  },
```

</details>

***

### bitget-deposit

<details>

<summary>bitget-deposit</summary>

Отправляет с адреса средства на bitgetAddress указанный в wallets.csv

```typescript
{
    moduleName: 'bitget-deposit',
    count: [1, 1],
    indexGroup: 1,

    // Сеть из которой нужно делать депозит в Bitget. eth | bsc | optimism | polygon | arbitrum
    network: 'bsc',

    // Токен, который будет выведен. USDC | USDT | BNB | ETH
    tokenToSupply: 'ETH',

    minAndMaxAmount: [100, 100],
    usePercentBalance: true,

    // Выполнит депозит, только, если баланс выше указанного значения
    minTokenBalance: 10,
  },
```

</details>

***

### bitget-collect

<details>

<summary>bitget-collect</summary>

Собирает с суб-адрессов указаные токены на основной аккаунт

```typescript
{
    moduleName: 'bitget-collect',
    count: [1, 1],
    indexGroup: 2,

    // Токены, которые будет собраны. USDC | USDT | BNB | ETH
    collectTokens: [],
  },
```

</details>

***

### bitget-wait-balance

<details>

<summary>bitget-wait-balance</summary>

Модуль собирает все токены с суб-счетов и ожидает поступления нужного баланса на основной аккаунт.

```typescript
{
    moduleName: 'bitget-wait-balance',
    count: [1, 1],
    indexGroup: 0,

    // Минимальный баланс токенов для ожидания
    waitBalance: 30,

    // Токены баланс которых будет ожидать
    collectTokens: ['USDT', 'USDC'],

    // Время в секундах, которое будет ожидать между проверками баланса
    waitTime: 60 * 10, // 10m
  },
```

</details>

***

## <mark style="color:purple;">Swaps</mark>

***

### 1inch-swap

<details>

<summary>1inch-swap</summary>

Для использования данного модуля нужно вставить ключ в INCH\_KEY в global.js

```typescript
{
    moduleName: '1inch-swap',
    count: [1, 1],

    indexGroup: 0,

    slippage: 1,

    srcToken: 'ETH',
    // 'USDT' | 'USDC' | 'DAI' | 'WETH' | 'WBTC' | 'SIS' | 'MUTE' | 'BUSD' | 'rETH' | 'PEPE', destination token будет выбран рандомно из списка
    destTokens: ['USDC', 'USDT'],
    usePercentBalance: true,
    minAndMaxAmount: [70, 80],
    reverse: false,
  },
```

</details>

***

### alien-swap

<details>

<summary>alien-swap</summary>

```typescript
{
    moduleName: 'alien-swap',
    count: [1, 1],

    indexGroup: 0,

    slippage: 1,

    srcToken: 'ETH',
    // 'USDT' | 'USDC' | 'DAI' | 'WETH' | 'WBTC' | 'SIS' | 'MUTE' | 'BUSD' | 'rETH' | 'PEPE', destination token будет выбран рандомно из списка
    destTokens: ['USDC', 'USDT'],
    usePercentBalance: true,
    minAndMaxAmount: [70, 80],
    reverse: false,
  },
```

</details>

***

### izumi-swap

<details>

<summary>izumi-swap</summary>

```typescript
{
    moduleName: 'izumi-swap',
    count: [1, 1],

    indexGroup: 0,

    slippage: 1,

    srcToken: 'ETH',
    // USDT, USDC, WETH, destination token будет выбран рандомно из списка
    destTokens: ['USDC', 'USDT'],
    usePercentBalance: true,
    minAndMaxAmount: [70, 80],
    reverse: false,
  },
```

</details>

***

### maverick-swap

<details>

<summary>maverick-swap</summary>

```typescript
{
    moduleName: 'maverick-swap',
    count: [1, 1],

    indexGroup: 0,

    slippage: 1,

    srcToken: 'ETH',
    // 'USDT' | 'USDC' | 'DAI' | 'WETH' | 'WBTC' | 'SIS' | 'MUTE' | 'BUSD' | 'rETH' | 'PEPE', destination token будет выбран рандомно из списка
    destTokens: ['USDC', 'USDT'],
    usePercentBalance: true,
    minAndMaxAmount: [60, 70],
    reverse: false,
  },
```

</details>

***

### odos-swap

<details>

<summary>odos-swap</summary>

Желательно использовать прокси при работе с данной свапалкой

```typescript
{
    moduleName: 'odos-swap',
    count: [1, 1],

    indexGroup: 0,

    slippage: 1,

    srcToken: 'ETH',
    // 'USDT' | 'USDC' | 'DAI' | 'WETH' | 'WBTC' | 'SIS' | 'MUTE' | 'BUSD' | 'rETH' | 'PEPE', destination token будет выбран рандомно из списка
    destTokens: ['USDC', 'USDT'],
    usePercentBalance: true,
    minAndMaxAmount: [60, 70],
    reverse: false,
  },
```

</details>

***

### sync-swap

<details>

<summary>sync-swap</summary>

```typescript
{
    moduleName: 'sync-swap',
    count: [1, 1],

    indexGroup: 0,

    slippage: 1,

    srcToken: 'ETH',
    // USDT, USDC, WETH, destination token будет выбран рандомно из списка
    destTokens: ['USDC', 'USDT'],
    usePercentBalance: true,
    minAndMaxAmount: [60, 70],
    reverse: false,
  },
```

</details>

***

### woofi-swap

<details>

<summary>woofi-swap</summary>

```typescript
{
    moduleName: 'woofi-swap',
    count: [1, 1],

    indexGroup: 0,

    slippage: 1,

    srcToken: 'ETH',
    // 'USDT' | 'USDC' | 'DAI' | 'WETH' | 'WBTC' | 'SIS' | 'MUTE' | 'BUSD' | 'rETH' | 'PEPE', destination token будет выбран рандомно из списка
    destTokens: ['USDC', 'USDT'],
    usePercentBalance: true,
    minAndMaxAmount: [60, 70],
    reverse: false,
  },
```

</details>

***

### xy-finance-swap

<details>

<summary>xy-finance-swap</summary>

```typescript
{
    moduleName: 'xy-finance-swap',
    count: [1, 1],

    indexGroup: 0,

    slippage: 1,

    srcToken: 'ETH',
    // 'USDT' | 'USDC' | 'DAI' | 'WETH' | 'WBTC' | 'SIS' | 'MUTE' | 'BUSD' | 'rETH' | 'PEPE', destination token будет выбран рандомно из списка
    destTokens: ['USDC', 'USDT'],
    usePercentBalance: true,
    minAndMaxAmount: [60, 70],
    reverse: false,
  },
```

</details>

***

### remain-swap

<details>

<summary>remain-swap</summary>

Собирает остатки из выбранных токенов обратно в ETH. \
Для каждого токена можно указать свапалку, которая будет использоваться. Если указали несколько свапалок, тогда выберем рандомную.

```typescript
 {
    moduleName: 'remain-swap',
    count: [1, 1],

    indexGroup: 0,

    slippage: 1,

    // Укажите токены, которые нужно свапнуть в ETH
    // 'USDT', 'USDC', 'DAI', 'WETH', 'WBTC', 'wstETH', 'rETH', 'iZi', 'UNI', 'LUSD', 'CAKE
    tokensToRemainSwap: ['USDT', 'USDC'],

    // Укажите свапалки, которые рандомно будут выбираться для каждого токена или укажите all, если хотите использовать все возможные свапалки для свапа указанного токена
    // 'izumi-swap', 'sync-swap', 'scroll-ambient-swap', 'all'
    swapsByToken: {
      ETH: ['izumi-swap', 'sync-swap'],
      USDT: ['izumi-swap', 'sync-swap'],
      USDC: ['izumi-swap', 'sync-swap'],
      DAI: ['izumi-swap', 'sync-swap'],
      WETH: ['izumi-swap', 'sync-swap'],
      WBTC: ['izumi-swap', 'sync-swap'],
      wstETH: ['izumi-swap', 'sync-swap'],
      iZi: ['izumi-swap'],
      rETH: ['izumi-swap', 'sync-swap'],
      UNI: ['izumi-swap', 'sync-swap'],
      CAKE: ['izumi-swap', 'sync-swap'],
      LUSD: ['izumi-swap', 'sync-swap'],
      TAIKO: ['sync-swap', 'izumi-swap'],
    },
  },
```

</details>

***

### random-swap

<details>

<summary>random-swap</summary>

Рандомный свап рандомных токенов через рандомную свапалку.

```typescript
{
    moduleName: 'random-swap',
    count: [1, 1],

    indexGroup: 0,

    slippage: 1,

    usePercentBalance: true,
    minAndMaxAmount: [70, 80],

    srcToken: 'ETH',
    // 'USDT' | 'USDC' | 'DAI' | 'WETH' | 'WBTC' | 'wstETH' | 'rETH' | 'iZi' | 'UNI' | 'LUSD' | 'CAKE
    destTokens: ['USDT', 'USDC', 'DAI'],

    // Укажите свапалки, которые рандомно будут выбираться для каждого токена или укажите all, если хотите использовать все возможные свапалки для свапа указанного токена
    // 'izumi-swap' | 'sync-swap' | '1inch-swap' | 'odos-swap' | 'zkSync-mute-swap'
    swapsByToken: {
      ETH: 'all',
      USDT: ['sync-swap', 'izumi-swap'],
      USDC: ['sync-swap', 'izumi-swap'],
      DAI: ['sync-swap'],
      WETH: ['izumi-swap'],
      WBTC: ['sync-swap', 'izumi-swap'],
      wstETH: ['sync-swap', 'izumi-swap'],
      iZi: ['izumi-swap'],
      rETH: ['sync-swap', 'izumi-swap'],
      UNI: ['sync-swap', 'izumi-swap'],
      CAKE: ['sync-swap', 'izumi-swap'],
      LUSD: ['sync-swap', 'izumi-swap'],
      TAIKO: ['sync-swap', 'izumi-swap'],
    },
  },
```

</details>
