69 lines
1.3 KiB
Swift
69 lines
1.3 KiB
Swift
import Foundation
|
|
|
|
enum Chain: String, Codable, CaseIterable {
|
|
case xrp
|
|
case xmr
|
|
|
|
var symbol: String { self == .xrp ? "XRP" : "XMR" }
|
|
var title: String { self == .xrp ? "XRP Ledger" : "Monero" }
|
|
var subtitle: String {
|
|
self == .xrp ? "Fast, low-fee payments" : "Private, untraceable payments"
|
|
}
|
|
}
|
|
|
|
struct WalletRecord: Codable, Identifiable, Equatable {
|
|
let id: String
|
|
var name: String
|
|
var address: String
|
|
var createdAt: Date
|
|
}
|
|
|
|
enum Direction {
|
|
case incoming
|
|
case outgoing
|
|
}
|
|
|
|
struct TransactionRecord: Identifiable {
|
|
let id: String
|
|
let amount: String
|
|
let timestamp: Date?
|
|
let direction: Direction
|
|
let confirmed: Bool
|
|
var fee: String?
|
|
var tag: Int?
|
|
var counterparty: String?
|
|
}
|
|
|
|
struct Balance {
|
|
var total: String
|
|
var unlocked: String
|
|
var funded: Bool
|
|
}
|
|
|
|
struct SyncStatus {
|
|
var height: UInt64
|
|
var daemonHeight: UInt64
|
|
var syncing: Bool
|
|
var connected: Bool
|
|
|
|
var progress: Double {
|
|
guard daemonHeight > 0 else { return 0 }
|
|
return min(1, Double(height) / Double(daemonHeight))
|
|
}
|
|
}
|
|
|
|
enum TransactionPriority: Int {
|
|
case defaultPriority = 0
|
|
case low = 1
|
|
case medium = 2
|
|
case high = 3
|
|
|
|
var label: String {
|
|
switch self {
|
|
case .defaultPriority: return "Default"
|
|
case .low: return "Low"
|
|
case .medium: return "Medium"
|
|
case .high: return "High"
|
|
}
|
|
}
|
|
} |