SHiNE-server/shine-solana/shine/tests/temp_delete_user_pda.md

60 lines
2.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Временная версия `shine_users` с удалением `user_pda`
Статус: `только для тестов регистрации`
Этот файл хранит временную версию логики, которая была нужна для отладки регистрации
пользователей через ESP32. В основной программе `shine_users` удаление PDA **не должно
оставаться**.
## Зачем это нужно
- быстро очищать тестовые user PDA на devnet/localnet;
- сохранять рабочий вариант на случай, если понадобится снова проверять регистрацию
без ручной очистки цепочки;
- не смешивать временную отладочную логику с нормальным контрактом.
## Что было временно добавлено
В devnet-версии программы существовала инструкция:
```text
tag = 5
delete_user_pda_temp
```
Она:
- принимала любой `signer`;
- работала только с валидной `user_pda`;
- проверяла, что PDA действительно относится к `shine_users`;
- очищала данные PDA через `realloc(0, false)`;
- переносила лампорты тестового аккаунта в `DAO_AUTHORITY`.
## Важные ограничения
- это **не** часть нормальной модели `shine_users`;
- в основном контракте этой инструкции быть не должно;
- файл нужен только как архив для регрессионных тестов регистрации.
## Фрагмент логики
```rust
// Временная инструкция для ручной чистки тестовых user PDA на devnet/localnet.
// Любой signer мог удалить запись, но лампорты возвращались только в тестовый treasury.
//
// Порядок был таким:
// 1. найти и проверить user PDA;
// 2. обнулить data через realloc(0, false);
// 3. перенести лампорты в DAO_AUTHORITY;
// 4. завершить инструкцию.
```
## Что помнить при возврате этой фичи
Если временное удаление снова понадобится:
1. сначала отдельным патчем включить его в `shine_users`;
2. потом отдельно задеплоить в devnet;
3. после проверки удалить из основной программы снова.