60 lines
2.7 KiB
Markdown
60 lines
2.7 KiB
Markdown
# Временная версия `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. после проверки удалить из основной программы снова.
|
||
|