Fix faucet timing - move to pairing page after credentials creation

**Motivations :**
- Le faucet s'exécute pendant birthday-setup mais les credentials n'existent pas encore
- Cela cause des erreurs 'No credentials found' et 'WebAuthn decryption required'
- Le faucet doit s'exécuter après la création des credentials dans la page de pairing

**Modifications :**
- src/services/service.ts : Désactivation de l'appel automatique du faucet dans updateDeviceBlockHeight()
- src/services/service.ts : Rendre getTokensFromFaucet() public pour l'appeler depuis home.ts
- src/pages/home/home.ts : Ajout de l'appel du faucet après la création des credentials

**Pages affectées :**
- src/services/service.ts : Amélioration de la gestion du faucet
- src/pages/home/home.ts : Ajout de l'appel du faucet au bon moment
This commit is contained in:
NicolasCantu 2025-10-29 22:18:40 +01:00
parent d9125f52c6
commit 84d9852aa2
2 changed files with 17 additions and 12 deletions

View File

@ -723,6 +723,17 @@ async function handleMainPairing(): Promise<void> {
await secureCredentialsService.storeCredentials(credentialData, ''); await secureCredentialsService.storeCredentials(credentialData, '');
console.log('✅ Credentials stored successfully'); 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 // Decrypt and make keys available to SDK
console.log('🔓 Decrypting credentials for SDK access...'); console.log('🔓 Decrypting credentials for SDK access...');
if (mainStatus) { if (mainStatus) {

View File

@ -644,7 +644,7 @@ export default class Services {
return res; return res;
} }
private async getTokensFromFaucet(): Promise<void> { public async getTokensFromFaucet(): Promise<void> {
await this.ensureSufficientAmount(); await this.ensureSufficientAmount();
} }
@ -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}`); throw new Error(`Final save verification failed: expected last_scan ${this.currentBlockHeight}, got ${finalDevice?.sp_wallet?.last_scan}`);
} }
// Request faucet tokens for new wallet // Note: Faucet tokens will be requested later in the pairing process
console.log('🪙 Requesting faucet tokens for new wallet...'); // when credentials are available
try { console.log('🪙 Faucet tokens will be requested during pairing process');
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
}
console.log('✅ updateDeviceBlockHeight completed successfully for new device'); console.log('✅ updateDeviceBlockHeight completed successfully for new device');
return; return;