BlueWallet/ios/Shared/UserDefaultsGroup.swift

72 lines
2.8 KiB
Swift
Raw Normal View History

2020-11-02 08:11:28 -05:00
//
// UserDefaultsGroup.swift
// MarketWidgetExtension
//
// Created by Marcos Rodriguez on 10/31/20.
// Copyright © 2020 BlueWallet. All rights reserved.
//
import Foundation
struct UserDefaultsElectrumSettings {
var host: String?
var port: UInt16?
var sslPort: UInt16?
2020-11-02 08:11:28 -05:00
}
let hardcodedPeers = DefaultElectrumPeers.map { settings in
(
host: settings.host ?? "",
port: settings.sslPort ?? settings.port ?? 50001,
useSSL: settings.sslPort != nil
)
}
let DefaultElectrumPeers = [
UserDefaultsElectrumSettings(host: "mainnet.foundationdevices.com", port: 50001, sslPort: 50002),
2024-12-12 23:21:17 -04:00
// UserDefaultsElectrumSettings(host: "electrum.jochen-hoenicke.de", port: 50001, sslPort: 50006),
2024-04-06 10:13:10 -04:00
UserDefaultsElectrumSettings(host: "electrum1.bluewallet.io", port: 50001, sslPort: 443),
UserDefaultsElectrumSettings(host: "electrum.acinq.co", port: 50001, sslPort: 50002),
UserDefaultsElectrumSettings(host: "electrum.bitaroo.net", port: 50001, sslPort: 50002),
]
2020-11-02 08:11:28 -05:00
class UserDefaultsGroup {
2024-11-20 03:49:52 -04:00
static private let suite = UserDefaults(suiteName: UserDefaultsGroupKey.GroupName.rawValue)
2020-11-02 08:11:28 -05:00
2024-11-20 03:49:52 -04:00
static func getElectrumSettings() -> UserDefaultsElectrumSettings {
guard let electrumSettingsHost = suite?.string(forKey: UserDefaultsGroupKey.ElectrumSettingsHost.rawValue) else {
return DefaultElectrumPeers.randomElement() ?? UserDefaultsElectrumSettings()
}
let electrumSettingsTCPPort = suite?.integer(forKey: UserDefaultsGroupKey.ElectrumSettingsTCPPort.rawValue) ?? 50001
let electrumSettingsSSLPort = suite?.integer(forKey: UserDefaultsGroupKey.ElectrumSettingsSSLPort.rawValue) ?? 443
let host = electrumSettingsHost
let sslPort = UInt16(electrumSettingsSSLPort)
let port = UInt16(electrumSettingsTCPPort)
2020-11-02 08:11:28 -05:00
2024-11-20 03:49:52 -04:00
return UserDefaultsElectrumSettings(host: host, port: port, sslPort: sslPort)
2020-11-02 08:11:28 -05:00
}
2024-11-20 03:49:52 -04:00
static func getAllWalletsBalance() -> Double {
guard let allWalletsBalance = suite?.string(forKey: UserDefaultsGroupKey.AllWalletsBalance.rawValue) else {
return 0
}
return Double(allWalletsBalance) ?? 0
}
2024-11-20 03:49:52 -04:00
// Int: EPOCH value, Bool: Latest transaction is unconfirmed
static func getAllWalletsLatestTransactionTime() -> LatestTransaction {
guard let allWalletsTransactionTime = suite?.string(forKey: UserDefaultsGroupKey.AllWalletsLatestTransactionTime.rawValue) else {
return LatestTransaction(isUnconfirmed: false, epochValue: 0)
}
if allWalletsTransactionTime == UserDefaultsGroupKey.LatestTransactionIsUnconfirmed.rawValue {
return LatestTransaction(isUnconfirmed: true, epochValue: 0)
} else {
return LatestTransaction(isUnconfirmed: false, epochValue: Int(allWalletsTransactionTime) ?? 0)
}
2020-11-02 08:11:28 -05:00
}
}