mirror of
https://github.com/BlueWallet/BlueWallet.git
synced 2025-02-24 15:36:59 +01:00
74 lines
2.3 KiB
Swift
74 lines
2.3 KiB
Swift
//
|
|
// Models.swift
|
|
// BlueWallet
|
|
//
|
|
// Created by Marcos Rodriguez on 11/1/20.
|
|
// Copyright © 2020 BlueWallet. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
struct MarketData:Codable {
|
|
var nextBlock: String
|
|
var sats: String
|
|
var price: String
|
|
var rate: Double
|
|
var formattedNextBlock: String {
|
|
return nextBlock == "..." ? "..." : #"\#(nextBlock) sat/b"#
|
|
}
|
|
var dateString: String = ""
|
|
var formattedDate: String? {
|
|
let isoDateFormatter = ISO8601DateFormatter()
|
|
let dateFormatter = DateFormatter()
|
|
dateFormatter.locale = Locale.current
|
|
dateFormatter.timeStyle = .short
|
|
|
|
if let date = isoDateFormatter.date(from: dateString) {
|
|
return dateFormatter.string(from: date)
|
|
}
|
|
return nil
|
|
}
|
|
static let string = "MarketData"
|
|
}
|
|
|
|
struct WalletData {
|
|
var balance: Double
|
|
var latestTransactionTime: LatestTransaction = LatestTransaction(isUnconfirmed: false, epochValue: 0)
|
|
var formattedBalanceBTC: String {
|
|
let formatter = NumberFormatter()
|
|
formatter.numberStyle = .none
|
|
formatter.usesSignificantDigits = true
|
|
formatter.maximumSignificantDigits = 9
|
|
formatter.roundingMode = .up
|
|
let value = NSNumber(value: balance / 100000000);
|
|
if let valueString = formatter.string(from: value) {
|
|
return "\(String(describing: valueString)) BTC"
|
|
} else {
|
|
return "0 BTC"
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
struct LatestTransaction {
|
|
let isUnconfirmed: Bool?
|
|
let epochValue: Int?
|
|
}
|
|
let emptyMarketData = MarketData(nextBlock: "...", sats: "...", price: "...", rate: 0)
|
|
let emptyWalletData = WalletData(balance: 0, latestTransactionTime: LatestTransaction(isUnconfirmed: false, epochValue: Int(Date().timeIntervalSince1970)))
|
|
|
|
enum MarketDataTimeline: String {
|
|
case Previous = "previous"
|
|
case Current = "current"
|
|
}
|
|
|
|
enum UserDefaultsGroupKey: String {
|
|
case GroupName = "group.io.bluewallet.bluewallet"
|
|
case PreferredCurrency = "preferredCurrency"
|
|
case ElectrumSettingsHost = "electrum_host"
|
|
case ElectrumSettingsTCPPort = "electrum_tcp_port"
|
|
case ElectrumSettingsSSLPort = "electrum_ssl_port"
|
|
case AllWalletsBalance = "WidgetCommunicationAllWalletsSatoshiBalance"
|
|
case AllWalletsLatestTransactionTime = "WidgetCommunicationAllWalletsLatestTransactionTime"
|
|
case LatestTransactionIsUnconfirmed = "\"WidgetCommunicationLatestTransactionIsUnconfirmed\""
|
|
}
|