sequenceDiagram
autonumber
participant P as Игрок
participant S as Сервер
participant M as Менеджер
participant W as Кошельки клуба
participant B as Блокчейн
P->>S: Снятие N фишек + PIN
S->>S: PIN, кошелёк, заморозки, минимум
S->>W: Сколько можно выплатить в сети?
W-->>S: Свободно = баланс − комиссии − обещанное
alt не хватает
S-->>P: Выберите другую сеть / меньшую сумму
else хватает
S->>S: Заявка WD-… «В обработке»
S-->>M: Уведомление команде
M->>S: Беру
M->>M: Снимает N фишек в ClubGG
M->>S: «Фишки сняты: N»
S->>W: Повторная проверка средств
S->>S: Сумма = заявке? → «Фишки сняты»
S->>S: Блокировка заявки «Отправляется»
S->>B: Перевод на привязанный кошелёк
B-->>S: Подтверждён
S->>S: «Выплачено» + хэш
S-->>P: «Вывод выполнен» + ссылка
end
flowchart TD
A[Нужно выплатить X] --> B{Есть один адрес,<br/>где лежит ≥ X?}
B -- да --> C[Платим с самого маленького<br/>из подходящих]
B -- нет --> D[Собираем X с нескольких адресов,<br/>начиная с самых крупных]
D --> E{Сеть TON / GRAM?}
E -- да --> F[Сначала переводим части на один адрес<br/>с запасом на газ, ждём поступления]
F --> G[Один перевод игроку]
E -- нет --> H[Переводы частями]
C --> G
| Сеть |
Кто платит газ |
Как |
| TRC20 |
игрок (в комиссии снятия) |
сервис GasFree списывает плату в USDT |
| BEP20 |
клуб |
отдельный адрес клуба докидывает BNB на газ |
| TON (USDT) |
клуб |
кошелёк клуба докидывает ~0.07 GRAM на газ |
| GRAM |
клуб |
газ из самой суммы на адресе |
- Ничего не отправилось → заявка возвращается команде («Фишки сняты»), причина видна в админке, можно повторить.
- Отправилось, но подтверждение не пришло → заявка остаётся «Отправляется» с пометкой «проверить вручную», команда получает предупреждение. Повторно автоматом такая заявка не выплачивается.
- Сумма выше лимита автовыплаты → выплачивает менеджер вручную.