SHA256
ESP32 регистрация и архив тестового удаления PDA
This commit is contained in:
@@ -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. после проверки удалить из основной программы снова.
|
||||
|
||||
Reference in New Issue
Block a user