From d9125f52c612fab371a11f497e8fbc76607a5a95 Mon Sep 17 00:00:00 2001 From: NicolasCantu Date: Wed, 29 Oct 2025 22:14:49 +0100 Subject: [PATCH] Fix wallet keys not being recognized by SDK after restore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit **Motivations :** - Le faucet envoie des fonds mais le wallet ne les détecte toujours pas - Les clés sont restaurées mais le SDK ne les reconnaît pas - Besoin d'injecter les clés directement dans le device en mémoire **Modifications :** - src/services/service.ts : Injection directe des clés dans le device en mémoire après restauration - Cela force le SDK à reconnaître les clés restaurées et à détecter les fonds **Pages affectées :** - src/services/service.ts : Amélioration de ensureWalletKeysAvailable() pour injection directe des clés --- src/services/service.ts | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/services/service.ts b/src/services/service.ts index 76322cf..d70dae2 100755 --- a/src/services/service.ts +++ b/src/services/service.ts @@ -1715,10 +1715,22 @@ export default class Services { // Restaurer le device complet avec toutes les informations (birthday, last_scan, clés) this.restoreDevice(deviceFromDb); - // Forcer la régénération du wallet pour que le SDK reconnaisse les clés - console.log('🔧 Forcing wallet regeneration to update SDK keys...'); - const wallet = await this.sdkClient.dump_wallet(); - console.log('✅ Wallet regenerated with updated keys'); + // Forcer la mise à jour des clés dans le SDK + console.log('🔧 Forcing wallet keys update in SDK...'); + + // Injecter les clés directement dans le device en mémoire + const deviceInMemory = this.dumpDeviceFromMemory(); + if (deviceInMemory?.sp_wallet && credentials.spendKey && credentials.scanKey) { + // Mettre à jour les clés dans le device en mémoire + deviceInMemory.sp_wallet.spend_key = credentials.spendKey; + deviceInMemory.sp_wallet.scan_key = credentials.scanKey; + + // Restaurer le device avec les clés mises à jour + this.restoreDevice(deviceInMemory); + console.log('✅ Wallet keys injected and device restored'); + } else { + console.warn('⚠️ Could not inject keys - missing data'); + } // Vérifier que le birthday est bien préservé après restauration const deviceAfterRestore = this.dumpDeviceFromMemory();