From fb47dfbfd249c33d07b4096b2a64ccb7e38e7de5 Mon Sep 17 00:00:00 2001 From: NicolasCantu Date: Wed, 29 Oct 2025 22:27:58 +0100 Subject: [PATCH] Fix wallet keys format - spend_key must be {Secret: string} object MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit **Motivations :** - Le faucet fonctionne mais les clés ne sont pas reconnues par le SDK - has_spend_key: false, has_scan_key: false malgré l'injection des clés - Le format des clés n'est pas correct pour le SDK **Modifications :** - src/services/service.ts : Correction du format de spend_key en objet {Secret: string} - Ajout de logs pour vérifier le format des clés injectées - Cela correspond au format attendu par le SDK **Pages affectées :** - src/services/service.ts : Amélioration de ensureWalletKeysAvailable() pour le bon format des clés --- src/pages/home/home.ts | 4 ++-- src/services/service.ts | 14 +++++++++++--- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/pages/home/home.ts b/src/pages/home/home.ts index 65859ce..9f7c6a4 100755 --- a/src/pages/home/home.ts +++ b/src/pages/home/home.ts @@ -727,11 +727,11 @@ async function handleMainPairing(): Promise { console.log('🪙 Requesting faucet tokens for pairing...'); try { const services = await Services.getInstance(); - + // Ensure relays are connected before requesting faucet console.log('🔄 Ensuring relays are connected...'); await services.connectAllRelays(); - + await services.getTokensFromFaucet(); console.log('✅ Faucet tokens requested successfully'); } catch (error) { diff --git a/src/services/service.ts b/src/services/service.ts index d195764..7cad307 100755 --- a/src/services/service.ts +++ b/src/services/service.ts @@ -1709,7 +1709,8 @@ export default class Services { } // Injecter les clés depuis les credentials dans le device de la base de données - deviceFromDb.sp_wallet.spend_key = credentials.spendKey; + // spend_key doit être un objet {Secret: string} + deviceFromDb.sp_wallet.spend_key = {Secret: credentials.spendKey}; deviceFromDb.sp_wallet.scan_key = credentials.scanKey; // Restaurer le device complet avec toutes les informations (birthday, last_scan, clés) @@ -1722,9 +1723,16 @@ export default class Services { 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; + // spend_key doit être un objet {Secret: string} + deviceInMemory.sp_wallet.spend_key = {Secret: credentials.spendKey}; deviceInMemory.sp_wallet.scan_key = credentials.scanKey; - + + console.log('🔧 Injected keys:', { + spend_key_type: typeof deviceInMemory.sp_wallet.spend_key, + scan_key_type: typeof deviceInMemory.sp_wallet.scan_key, + spend_key_secret: deviceInMemory.sp_wallet.spend_key?.Secret ? 'present' : 'missing' + }); + // Restaurer le device avec les clés mises à jour this.restoreDevice(deviceInMemory); console.log('✅ Wallet keys injected and device restored');