Replace the JavaScript mobile app with a native Swift iOS wallet
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
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"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user