fix(desktop): чистить технические детали ассертов цепи в тостах ошибок #110
Reference in New Issue
Block a user
Delete Branch "fix/sanitize-blockchain-error-toast"
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?
Проблема
Пользователю в тост ошибки летел сырой ассерт смарт-контракта, например:
Ему не нужны ни scope-префикс операции (
walletop TRANSFER:), ни служебное имя кошелька (w.wal.share) — он нажал конкретную кнопку и так понимает, о каком кошельке речь. Достаточно «Недостаточно средств на кошельке».Решение
Универсальный санитайзер
sanitizeBlockchainError(src/shared/lib/utils/), встроенный в единую точку показа ошибок —FailAlert(src/shared/api/alerts.ts). Применяется ко всем тостам ошибок автоматически.Что чистит:
walletop TRANSFER:,walletop BLOCK:,ledger2::apply:,o.mkt.supply:— распознаёт идентификатор с./::либо «слово + ALLCAPS-опкод»; кириллицу не трогает (русские сообщения не ломаются);w.wal.share/w.mkt.payout/w.cap.gen…;Пример → «Недостаточно средств на кошельке». Нетехнические сообщения проходят без изменений (идемпотентность проверена на наборе кейсов).
Разработчикам — полный текст сохранён
FailAlertдублирует сырой message вconsole.errorбраузера;walletop TRANSFER: … w.wal.share) в логи контроллера (graphql-exceptions.filter).Фронт-only, бэкенд не трогался.
🤖 Generated with Claude Code