Auth: создание кошелька
Как связаны пользователь, адрес и подготовленный ключ.
Feature: Повтор подготовки кошелька
Scenario: Повтор подготовки кошелька
Given для userId уже сохранен кошелек
When повторяется createWalletForUser
Then возвращается тот же адрес
And при незавершенной подготовке ключа повторяется подготовка без новой парыМеханизм
WalletService создает secp256k1-ключ, выводит адрес из ключа и шифрует резервную копию AES-256-GCM. Мастер-ключ поступает из конфигурации; его отсутствие вызывает ошибку, не незашифрованное сохранение. Перед передачей ключа провайдеру проверяется совпадение вычисленного и зарегистрированного адреса. При ненулевой ссылке подготовки кошелек помечается PROVISIONED; null не становится успешной подготовкой. Уже подготовленный кошелек возвращается без повторного импорта. ensureWalletForUser может согласовать прежний адрес профиля с адресом кошелька; это не доказательство безопасной миграции любых старых позиций.
Граница
Кастодиальная подпись не доказывает отдельное волеизъявление обладателя. Ключи и зашифрованные копии не входят в документацию и журналы. Источник: apps/services/auth/src/domains/identity/domain/services/wallet.service.ts. Подпись.