GPT: сгенерено и не проверено (смена ключей пользователя)

This commit is contained in:
AidarKC
2026-09-27 15:50:27 +03:00
parent 13693a0a53
commit 151a2c1754
94 changed files with 5327 additions and 815 deletions
+7 -8
View File
@@ -14,15 +14,14 @@ const DEVNET_ENDPOINT = 'https://api.devnet.solana.com';
const SENDER_PRIVATE_32_BASE58 = '6xqAuKYvA8qrCdAkcw7Y8aMgvBnYk8JLxWLma5BzbAvu';
const REGISTRATION_TOPUP_AMOUNT_SOL = 0.02;
// Канонический Solana-адрес пополнения = публичный device-ключ из сгенерированного набора ключей.
// Тот же путь, что в registration-payment-view (deriveUserWalletAddress); не выводим адрес
// напрямую из пароля, иначе он расходится с device-ключом регистрации.
async function clientWalletAddressFromBundle() {
// Канонический Solana-кошелёк пользователя = текущий blockchain key.
// Тот же адрес используется как fee payer для регистрации и обычных PDA update.
async function blockchainWalletAddressFromBundle() {
const keyBundle = state.registrationDraft.preGeneratedKeyBundle;
if (!keyBundle || !keyBundle.clientPair) {
if (!keyBundle || !keyBundle.blockchainPair) {
throw new Error('Ключи ещё не сгенерированы. Вернитесь на экран регистрации.');
}
const raw = atob(keyBundle.clientPair.publicKeyB64);
const raw = atob(keyBundle.blockchainPair.publicKeyB64);
const bytes = new Uint8Array(raw.length);
for (let i = 0; i < raw.length; i += 1) bytes[i] = raw.charCodeAt(i);
const { PublicKey } = await loadSolanaWeb3();
@@ -73,7 +72,7 @@ export function render({ navigate }) {
card.innerHTML = `
<p class="auth-copy">Можете или пополнить счёт тестовыми соланами и продолжить регистрацию.</p>
<div class="card stack" style="padding:12px; max-width:320px;">
<div class="field-label" style="margin-bottom:6px;">Кошелёк для пополнения (client key = Solana wallet)</div>
<div class="field-label" style="margin-bottom:6px;">Кошелёк для пополнения (blockchain key = Solana wallet)</div>
</div>
<div class="stack" style="gap:6px;">
<p class="meta-muted">Или можете отдельно открыть страницу тестового пополнения.</p>
@@ -139,7 +138,7 @@ export function render({ navigate }) {
(async () => {
try {
if (!walletValue.value) {
const address = await clientWalletAddressFromBundle();
const address = await blockchainWalletAddressFromBundle();
state.registrationPayment.walletAddress = address;
walletValue.value = address;
}