Обновление архитектуры ключей и кошельков

This commit is contained in:
AidarKC
2026-10-01 17:11:38 +03:00
parent f452ce1f1e
commit 8d22602761
51 changed files with 565 additions and 898 deletions
+9 -8
View File
@@ -14,9 +14,9 @@ export function render({navigate, chrome}) {
screen.className = 'stack';
chrome?.setTopbar(createTopBar({
title: 'Показать QR-код',
back: { label: '←', onClick: () => navigate('connect-device-view') },
}));
title: 'Показать QR-код',
back: { label: '←', onClick: () => navigate('connect-device-view') },
}));
const card = document.createElement('div');
card.className = 'card stack qr-card';
@@ -24,6 +24,7 @@ export function render({navigate, chrome}) {
<div class="qr-image" id="device-transfer-qr" aria-label="QR-код для переноса ключей"></div>
<p class="meta-muted" id="device-transfer-login">Логин: ...</p>
<p class="meta-muted" id="device-transfer-keys">Ключи: ...</p>
<p class="meta-muted">Ключ восстановления в QR-код не включается.</p>
<p class="status-line is-unavailable" id="device-transfer-status" style="display:none;"></p>
<button class="primary-btn" type="button" id="qr-ok">OK</button>
`;
@@ -40,11 +41,12 @@ export function render({navigate, chrome}) {
}
const savedKeys = await loadEncryptedUserSecrets(state.session.login, state.session.storagePwdInMemory);
const keys = {
clientKey: savedKeys.clientKey || '',
blockchainKey: state.deviceConnect.blockchain ? (savedKeys.blockchainKey || '') : '',
rootKey: state.deviceConnect.root ? (savedKeys.rootKey || '') : '',
clientKey: String(savedKeys.clientKey || '').trim(),
blockchainKey: String(savedKeys.blockchainKey || '').trim(),
};
if (!keys.clientKey) throw new Error('На этом устройстве нет client key');
if (!keys.clientKey || !keys.blockchainKey) {
throw new Error('На этом устройстве нет полного набора рабочих ключей');
}
const qrText = makeKeyTransferText({ login: state.session.login, keys });
qrEl.innerHTML = renderQrSvg(qrText);
@@ -60,7 +62,6 @@ export function render({navigate, chrome}) {
})();
card.querySelector('#qr-ok').addEventListener('click', () => navigate('connect-device-view'));
screen.append(card);
return screen;
}