ESP32 регистрация и архив тестового удаления PDA

This commit is contained in:
AidarKC
2026-06-23 20:31:05 +04:00
parent d2f45ff67a
commit 23e61cc182
3 changed files with 91 additions and 18 deletions
@@ -0,0 +1,59 @@
# Временная версия `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. после проверки удалить из основной программы снова.