do {
let recoveredWallet = try await portal.recoverWallet(
.iCloud,
withCipherText: backupCipherText
) { status in
switch status.status {
case .readingShare:
print("Reading backup share...")
case .decryptingShare:
print("Decrypting share...")
case .parsingShare:
print("Parsing share data...")
case .generatingShare:
print("Regenerating wallet...")
case .storingShare:
print("Saving recovered wallet...")
case .done:
print("Recovery completed!")
default:
break
}
}
print("Recovered Ethereum address: \(recoveredWallet.ethereum)")
if let solanaAddress = recoveredWallet.solana {
print("Recovered Solana address: \(solanaAddress)")
}
} catch {
print("Error recovering wallet: \(error)")
}