Отключить репосты и добавить Solana-модуль

This commit is contained in:
AidarKC
2026-05-24 12:16:39 +03:00
parent abdce05136
commit 56cd90a197
95 changed files with 24261 additions and 64 deletions
+47
View File
@@ -0,0 +1,47 @@
# Движение Средств (Shine)
Документ описывает, как перемещаются средства между счетами в текущей схеме.
## 1) Регистрация и увеличение лимита (`shine_users`)
### Регистрация пользователя (`create_user_pda`)
1. Плательщик: кошелек `signer` (кто отправил транзакцию).
2. Получатель комиссии: `inflow_vault` (PDA в программе `shine_payments`).
3. Сумма перевода:
- `registration_fee_lamports` из economy-конфига `shine_users`;
- плюс комиссия за `additional_limit` (по формуле через `limit_step` и `lamports_per_limit_step`).
### Увеличение лимита (`update_user_pda`)
1. Плательщик: кошелек `signer`.
2. Получатель комиссии: `inflow_vault` (тот же PDA `shine_payments`).
3. Сумма перевода:
- только комиссия за `additional_limit` (без регистрационной части).
## 2) Покупка билета (`shine_payments`)
### Покупка (`buy_ticket`, `buy_ticket_usd`, `buy_ticket_sol`)
1. Плательщик: кошелек покупателя (`signer`).
2. Получатель: `dao_wallet` (казна DAO из `ConfigState`).
3. В `inflow_vault` на этом шаге средства не зачисляются.
## 3) Шаг выплат (`shine_payments::step_payout`)
Источник выплат: `inflow_vault` (`ConfigState.inflow_vault`).
При шаге выплаты:
1. Из `inflow_vault` переводится `ticket` получателю тикета.
2. Из `inflow_vault` переводится DAO-часть в `dao_wallet`.
3. Из `inflow_vault` переводится `call_reward_lamports` вызывающему шаг.
Если очереди пусты:
1. Весь доступный остаток `inflow_vault` переводится в `dao_wallet`.
## 4) Какие адреса задаются настройками
1. `dao_wallet` — хранится в `ConfigState` (`shine_payments`), задается при `init`.
2. `inflow_vault` — PDA `shine_payments`, вычисляется по seed и program id.
3. Для `shine_users` получатель комиссии не настраивается отдельно:
- всегда используется PDA `inflow_vault` программы `shine_payments`.