shine_payments + shine_users:
- create_pda_account переведён на «создание поверх предзаполненного»
(allocate+assign+добор ренты), чтобы подсев лампортов на детерминированный
адрес PDA (тикет/логин) не блокировал создание — закрыт LOW из аудита №1;
в shine_payments is_uninitialized_account перестала зависеть от баланса.
shine_payments (HIGH из аудита №2):
- запрещён recipient == inflow_vault в buy_ticket*, manager_add_ticket и
change_ticket_recipient; добавлена защита по умолчанию в transfer_from_vault
(require vault.key != recipient.key). Это убирает алиасинг аккаунта в
step_payout, который навсегда замораживал очередь выплат и средства вольта.
Документация и учёт:
- doc/programs/shine_payments.md §3.4, §10.1; doc/programs/shine_users.md §3.3;
- Dev_Docs/audit: добавлен аудит №2, обе закрытые находки помечены ИСПРАВЛЕНО;
- Dev_Docs/Pending_Features: две записи на ручную e2e-проверку на devnet;
- VERSION.properties: client 1.2.161, server 1.2.150.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>