hellbender-wallet/hellbender/Utilities/AppError.swift
2026-03-16 21:37:16 -04:00

67 lines
2.2 KiB
Swift

import Foundation
enum AppError: LocalizedError {
case walletNotLoaded
case walletCreationFailed(String)
case descriptorInvalid(String)
case electrumConnectionFailed(String)
case syncFailed(String)
case psbtCreationFailed(String)
case psbtCombineFailed(String)
case psbtFinalizeFailed(String)
case broadcastFailed(String)
case addressGenerationFailed(String)
case invalidXpub(String)
case invalidFingerprint(String)
case invalidDerivationPath(String)
case duplicateCosigner(String)
case networkMismatch(String)
case urEncodingFailed(String)
case urDecodingFailed(String)
case cameraAccessDenied
case walletStorageError(String)
var errorDescription: String? {
switch self {
case .walletNotLoaded:
"No wallet is currently loaded"
case let .walletCreationFailed(detail):
"Failed to create wallet: \(detail)"
case let .descriptorInvalid(detail):
"Invalid descriptor: \(detail)"
case let .electrumConnectionFailed(detail):
"Electrum connection failed: \(detail)"
case let .syncFailed(detail):
"Refresh failed: \(detail)"
case let .psbtCreationFailed(detail):
"PSBT creation failed: \(detail)"
case let .psbtCombineFailed(detail):
"Failed to combine PSBTs: \(detail)"
case let .psbtFinalizeFailed(detail):
"Failed to finalize PSBT: \(detail)"
case let .broadcastFailed(detail):
"Broadcast failed: \(detail)"
case let .addressGenerationFailed(detail):
"Address generation failed: \(detail)"
case let .invalidXpub(detail):
"Invalid xpub: \(detail)"
case let .invalidFingerprint(detail):
"Invalid fingerprint: \(detail)"
case let .invalidDerivationPath(detail):
"Invalid derivation path: \(detail)"
case let .duplicateCosigner(detail):
"Duplicate cosigner: \(detail)"
case let .networkMismatch(detail):
"Network mismatch: \(detail)"
case let .urEncodingFailed(detail):
"UR encoding failed: \(detail)"
case let .urDecodingFailed(detail):
"UR decoding failed: \(detail)"
case .cameraAccessDenied:
"Camera access is required to scan QR codes"
case let .walletStorageError(detail):
"Wallet storage error: \(detail)"
}
}
}