diff --git a/UnstoppableWallet/UnstoppableWallet/Core/Adapters/BitcoinAdapter.swift b/UnstoppableWallet/UnstoppableWallet/Core/Adapters/BitcoinAdapter.swift index 5fcd1ecc0b..9ca7d4f906 100644 --- a/UnstoppableWallet/UnstoppableWallet/Core/Adapters/BitcoinAdapter.swift +++ b/UnstoppableWallet/UnstoppableWallet/Core/Adapters/BitcoinAdapter.swift @@ -62,7 +62,7 @@ class BitcoinAdapter: BitcoinBaseAdapter { throw AdapterError.unsupportedAccount } - super.init(abstractKit: bitcoinKit, wallet: wallet) + super.init(abstractKit: bitcoinKit, wallet: wallet, syncMode: syncMode) bitcoinKit.delegate = self } diff --git a/UnstoppableWallet/UnstoppableWallet/Core/Adapters/BitcoinBaseAdapter.swift b/UnstoppableWallet/UnstoppableWallet/Core/Adapters/BitcoinBaseAdapter.swift index e72ad91d2a..1b5be2a82b 100644 --- a/UnstoppableWallet/UnstoppableWallet/Core/Adapters/BitcoinBaseAdapter.swift +++ b/UnstoppableWallet/UnstoppableWallet/Core/Adapters/BitcoinBaseAdapter.swift @@ -15,6 +15,7 @@ class BitcoinBaseAdapter { private let lastBlockUpdatedSubject = PublishSubject() private let balanceStateSubject = PublishSubject() private let balanceSubject = PublishSubject() + private let syncMode: BitcoinCore.SyncMode let transactionRecordsSubject = PublishSubject<[BitcoinTransactionRecord]>() private(set) var balanceState: AdapterState { @@ -29,10 +30,11 @@ class BitcoinBaseAdapter { private let token: Token private let transactionSource: TransactionSource - init(abstractKit: AbstractKit, wallet: Wallet) { + init(abstractKit: AbstractKit, wallet: Wallet, syncMode: BitcoinCore.SyncMode) { self.abstractKit = abstractKit token = wallet.token transactionSource = wallet.transactionSource + self.syncMode = syncMode balanceState = .notSynced(error: AppError.unknownError) } @@ -154,6 +156,14 @@ class BitcoinBaseAdapter { open func explorerUrl(transactionHash _: String) -> String? { fatalError("Must be overridden by subclass") } + + private var showSyncedUntil: Bool { + if case .blockchair = syncMode { + return false + } else { + return true + } + } } extension BitcoinBaseAdapter: IAdapter { @@ -225,7 +235,9 @@ extension BitcoinBaseAdapter: BitcoinCoreDelegate { balanceState = .notSynced(error: converted) case let .syncing(progress): let newProgress = Int(progress * 100) - let newDate = abstractKit.lastBlockInfo?.timestamp.map { Date(timeIntervalSince1970: Double($0)) } + let newDate = showSyncedUntil + ? abstractKit.lastBlockInfo?.timestamp.map { Date(timeIntervalSince1970: Double($0)) } + : nil if case let .syncing(currentProgress, currentDate) = balanceState, newProgress == currentProgress { if let currentDate, let newDate, currentDate.isSameDay(as: newDate) { diff --git a/UnstoppableWallet/UnstoppableWallet/Core/Adapters/BitcoinCashAdapter.swift b/UnstoppableWallet/UnstoppableWallet/Core/Adapters/BitcoinCashAdapter.swift index 3c21c35af2..6b8e2333b8 100644 --- a/UnstoppableWallet/UnstoppableWallet/Core/Adapters/BitcoinCashAdapter.swift +++ b/UnstoppableWallet/UnstoppableWallet/Core/Adapters/BitcoinCashAdapter.swift @@ -58,7 +58,7 @@ class BitcoinCashAdapter: BitcoinBaseAdapter { throw AdapterError.unsupportedAccount } - super.init(abstractKit: bitcoinCashKit, wallet: wallet) + super.init(abstractKit: bitcoinCashKit, wallet: wallet, syncMode: syncMode) bitcoinCashKit.delegate = self } diff --git a/UnstoppableWallet/UnstoppableWallet/Core/Adapters/DashAdapter.swift b/UnstoppableWallet/UnstoppableWallet/Core/Adapters/DashAdapter.swift index af1fb71134..520dd8051c 100644 --- a/UnstoppableWallet/UnstoppableWallet/Core/Adapters/DashAdapter.swift +++ b/UnstoppableWallet/UnstoppableWallet/Core/Adapters/DashAdapter.swift @@ -51,7 +51,7 @@ class DashAdapter: BitcoinBaseAdapter { throw AdapterError.unsupportedAccount } - super.init(abstractKit: dashKit, wallet: wallet) + super.init(abstractKit: dashKit, wallet: wallet, syncMode: syncMode) dashKit.delegate = self } diff --git a/UnstoppableWallet/UnstoppableWallet/Core/Adapters/ECashAdapter.swift b/UnstoppableWallet/UnstoppableWallet/Core/Adapters/ECashAdapter.swift index a8cd28028e..17cd7870ee 100644 --- a/UnstoppableWallet/UnstoppableWallet/Core/Adapters/ECashAdapter.swift +++ b/UnstoppableWallet/UnstoppableWallet/Core/Adapters/ECashAdapter.swift @@ -51,7 +51,7 @@ class ECashAdapter: BitcoinBaseAdapter { throw AdapterError.unsupportedAccount } - super.init(abstractKit: eCashKit, wallet: wallet) + super.init(abstractKit: eCashKit, wallet: wallet, syncMode: syncMode) eCashKit.delegate = self } diff --git a/UnstoppableWallet/UnstoppableWallet/Core/Adapters/LitecoinAdapter.swift b/UnstoppableWallet/UnstoppableWallet/Core/Adapters/LitecoinAdapter.swift index 51a36aae96..0827787cdd 100644 --- a/UnstoppableWallet/UnstoppableWallet/Core/Adapters/LitecoinAdapter.swift +++ b/UnstoppableWallet/UnstoppableWallet/Core/Adapters/LitecoinAdapter.swift @@ -80,7 +80,7 @@ class LitecoinAdapter: BitcoinBaseAdapter { throw AdapterError.unsupportedAccount } - super.init(abstractKit: litecoinKit, wallet: wallet) + super.init(abstractKit: litecoinKit, wallet: wallet, syncMode: syncMode) litecoinKit.delegate = self }