SHA256
Миграция PDA на client.key
This commit is contained in:
@@ -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,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user