diff --git a/src/pages/home/home.ts b/src/pages/home/home.ts index 885ec74..6dd270f 100755 --- a/src/pages/home/home.ts +++ b/src/pages/home/home.ts @@ -723,6 +723,17 @@ async function handleMainPairing(): Promise { await secureCredentialsService.storeCredentials(credentialData, ''); console.log('✅ Credentials stored successfully'); + // Request faucet tokens now that credentials are available + console.log('🪙 Requesting faucet tokens for pairing...'); + try { + const services = await Services.getInstance(); + await services.getTokensFromFaucet(); + console.log('✅ Faucet tokens requested successfully'); + } catch (error) { + console.warn('⚠️ Failed to request faucet tokens:', error); + // Don't throw - this is not critical for pairing + } + // Decrypt and make keys available to SDK console.log('🔓 Decrypting credentials for SDK access...'); if (mainStatus) { diff --git a/src/services/service.ts b/src/services/service.ts index d70dae2..d195764 100755 --- a/src/services/service.ts +++ b/src/services/service.ts @@ -644,7 +644,7 @@ export default class Services { return res; } - private async getTokensFromFaucet(): Promise { + public async getTokensFromFaucet(): Promise { await this.ensureSufficientAmount(); } @@ -1717,14 +1717,14 @@ export default class Services { // 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'); @@ -2362,15 +2362,9 @@ export default class Services { throw new Error(`Final save verification failed: expected last_scan ${this.currentBlockHeight}, got ${finalDevice?.sp_wallet?.last_scan}`); } - // Request faucet tokens for new wallet - console.log('🪙 Requesting faucet tokens for new wallet...'); - try { - await this.getTokensFromFaucet(); - console.log('✅ Faucet tokens requested successfully'); - } catch (error) { - console.warn('⚠️ Failed to request faucet tokens:', error); - // Don't throw - this is not critical for wallet creation - } + // Note: Faucet tokens will be requested later in the pairing process + // when credentials are available + console.log('🪙 Faucet tokens will be requested during pairing process'); console.log('✅ updateDeviceBlockHeight completed successfully for new device'); return;