2.5 KiB
2.5 KiB
Движение Средств (Shine)
Документ описывает, как перемещаются средства между счетами в текущей схеме.
1) Регистрация и увеличение лимита (shine_users)
Регистрация пользователя (create_user_pda)
- Плательщик: кошелек
signer(кто отправил транзакцию). - Получатель комиссии:
inflow_vault(PDA в программеshine_payments). - Сумма перевода:
registration_fee_lamportsиз economy-конфигаshine_users;- плюс комиссия за
additional_limit(по формуле черезlimit_stepиlamports_per_limit_step).
Увеличение лимита (update_user_pda)
- Плательщик: кошелек
signer. - Получатель комиссии:
inflow_vault(тот же PDAshine_payments). - Сумма перевода:
- только комиссия за
additional_limit(без регистрационной части).
- только комиссия за
2) Покупка билета (shine_payments)
Покупка (buy_ticket, buy_ticket_usd, buy_ticket_sol)
- Плательщик: кошелек покупателя (
signer). - Получатель:
dao_wallet(казна DAO изConfigState). - В
inflow_vaultна этом шаге средства не зачисляются.
3) Шаг выплат (shine_payments::step_payout)
Источник выплат: inflow_vault (ConfigState.inflow_vault).
При шаге выплаты:
- Из
inflow_vaultпереводитсяticketполучателю тикета. - Из
inflow_vaultпереводится DAO-часть вdao_wallet. - Из
inflow_vaultпереводитсяcall_reward_lamportsвызывающему шаг.
Если очереди пусты:
- Весь доступный остаток
inflow_vaultпереводится вdao_wallet.
4) Какие адреса задаются настройками
dao_wallet— хранится вConfigState(shine_payments), задается приinit.inflow_vault— PDAshine_payments, вычисляется по seed и program id.- Для
shine_usersполучатель комиссии не настраивается отдельно:- всегда используется PDA
inflow_vaultпрограммыshine_payments.
- всегда используется PDA