2.7 KiB
2.7 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).
Порядок очередей:
- сначала
Q1; - потом
Q2; - потом
Q3.
При шаге выплаты:
- Из
inflow_vaultпереводитсяticketполучателю тикета. - Из
inflow_vaultпереводится DAO-часть вdao_wallet.- для
Q1это1x payout_usd; - для
Q2это2x payout_usd; - для
Q3это3x payout_usd;
- для
- Из
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