Миграция PDA на client.key

This commit is contained in:
AidarKC
2026-06-22 21:57:09 +04:00
parent ba348dafb3
commit 5c92b6a734
133 changed files with 941 additions and 30531 deletions
@@ -1,4 +1,4 @@
import { extractDeviceKey32FromStoredValue } from './device-key-utils.js';
import { extractClientKey32FromStoredValue } from './client-key-utils.js';
import { loadEncryptedUserSecrets } from './key-vault.js';
import { SOLANA_ENDPOINT_DEFAULT } from '../solana-programs.js';
@@ -63,7 +63,7 @@ function decodeBase58(input) {
async function keypairFromPkcs8(pkcs8B64) {
const solana = await loadSolanaLib();
const seed32 = extractDeviceKey32FromStoredValue(pkcs8B64);
const seed32 = extractClientKey32FromStoredValue(pkcs8B64);
return solana.Keypair.fromSeed(seed32);
}
@@ -95,22 +95,22 @@ export async function createSolanaWalletFromPrivateBase58(privateKey32Base58) {
};
}
export async function getWalletFromStoredDeviceKey({ login, storagePwd }) {
export async function getWalletFromStoredClientKey({ login, storagePwd }) {
const cleanLogin = String(login || '').trim();
const cleanPwd = String(storagePwd || '').trim();
if (!cleanLogin || !cleanPwd) {
throw new Error('Нет активной сессии для доступа к wallet.key');
throw new Error('Нет активной сессии для доступа к client.key');
}
const secrets = await loadEncryptedUserSecrets(cleanLogin, cleanPwd);
const devicePrivate = String(secrets?.deviceKey || '').trim();
if (!devicePrivate) {
throw new Error('На устройстве не найден device.key (wallet.key)');
const clientPrivate = String(secrets?.clientKey || '').trim();
if (!clientPrivate) {
throw new Error('На устройстве не найден client.key');
}
const keypair = await keypairFromPkcs8(devicePrivate);
const keypair = await keypairFromPkcs8(clientPrivate);
return {
address: keypair.publicKey.toBase58(),
keypair,
devicePrivatePkcs8B64: devicePrivate,
clientPrivatePkcs8B64: clientPrivate,
};
}