Целостность данных
Сверяем записи, операции и события без скрытых миграций.
Состояние операции, резерв и chain receipt должны согласовываться. Finalizer проверяет сеть, контракт, событие и реквизиты до изменения balances. Idempotency отделяет повтор доставки от новой команды.
Feature: Повтор финализации
Scenario: Повтор финализации
Given receipt уже принят для операции
When тот же txHash приходит повторно
Then операция не создает повторный credit
And история сохраняет ранее подтвержденный результатStartup seed сохраняет существующий CFA-RUB, не снимает suspension и не меняет metadata/contract. Legacy ID или несовместимое binding требуют согласованной миграции, не SQL-исправления на старте. При расхождении chain/БД нужен разбор без изменений, классификация и согласованный способ ремонта с резервная копия и откат.
N-3.3 и N-3.4 требуют полноты учета и защиты, а не наличия hash. Не объявляем все записи неизменяемыми: бизнес-таблицы изменяются допустимыми командами, важны полномочия и audit trail.
Источник: finalize-operation, seed.service, unit of work/outbox. Журналы.