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