[reg-fsm] Откат незавершённой регистрации + server-truth шаг (recovery, plan B) #95
Reference in New Issue
Block a user
Delete Branch "feat/registration-fsm"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Стек на #91 (
feat/registration-payment-decline). После мерджа #91 вdevGitea перетаргетит этот PR наdev.Plan B — recovery + источник истины о шаге на сервере
Поверх гарда A из #91. Существующих статусов достаточно — новых не вводим.
Backend
resetRegistration(self-scoped по токену): откат незавершённой регистрации к редактированию до отправки в блокчейн. Снимает заморозку профиля/e-mail (users.status → created), чистит документы кандидата + отпечаток заявления (гард A), удаляет непринятую попытку вступительного платежа.PaymentRepository.delete.Frontend
Joined→ шаг оплаты. Процесс переживает перезагрузку и работу в другой вкладке, не завися от localStorage. Приоритет уregistration_payment(при отказе — причина, а не «оплатить заново»).resetRegistrationперед возвратом к данным (после подписи профиль заморожен — локального отката мало).Account/ResetRegistration+ Zeus-клиент (codegen, обе копии zeus).Про
active(по запросу — не сломать)Фронтовые
=== 'active'гейты (isFullyActive, DepositButton, LoginUser) висят на on-chainuser_account.status(registrator-контракт: created→payed→active) — отдельная ось. Recovery/reconstruct трогают только off-chainusers.status(mono). Оси не пересекаются → новые присваивания статусов фронтовыйactiveне задевают.payedoff-chain намеренно НЕ активировал (коллизия с on-chainpayed).Проверки
controller tsc ✔, sdk typecheck ✔, desktop ESLint (изменённые) ✔. schema.gql/dist gitignored.
🤖 Generated with Claude Code