// Check backup status for all wallets
do {
let isBackedUp = try await portal.isWalletBackedUp()
if isBackedUp {
print("At least one wallet is backed up")
} else {
print("No wallets are backed up")
}
} catch {
print("Error checking backup status: \(error)")
}
// Check backup status for specific chains
do {
// Check Ethereum wallet backup
let ethBackedUp = try await portal.isWalletBackedUp("eip155:1")
if ethBackedUp {
print("Ethereum wallet is backed up")
}
// Check Solana wallet backup
let solBackedUp = try await portal.isWalletBackedUp("solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp")
if solBackedUp {
print("Solana wallet is backed up")
}
} catch {
print("Error checking chain-specific backups: \(error)")
}
// Complete example with backup flow
do {
let isBackedUp = try await portal.isWalletBackedUp()
if !isBackedUp {
// Perform backup if not already done
let backup = try await portal.backupWallet(.iCloud) { status in
switch status.status {
case .readingShare:
print("Reading share...")
case .encryptingShare:
print("Encrypting share...")
case .storingShare:
print("Storing backup...")
case .done:
print("Backup completed!")
default:
break
}
}
// Complete the backup process
try await backup.storageCallback()
// Verify backup was successful
let verifyBackup = try await portal.isWalletBackedUp()
print("Backup verification: \(verifyBackup ? "Success" : "Failed")")
} else {
print("Wallet is already backed up")
}
} catch {
print("Error in backup process: \(error)")
}