From 1f2ea5e716e8718b4e655f74b7ddd729a7358c44 Mon Sep 17 00:00:00 2001 From: Michal Fousek Date: Tue, 22 Nov 2022 14:03:03 +0100 Subject: [PATCH] Change lastState property to Publisher from Subject in SDKSynchronizer It's not good practice to make internal combine subjects accessible from outside of SDK. So `lastState` is changed from `CurrentValueSubject` to `Publisher`. This doesn't have any effect on public API. It just makes SDK safer. --- .../Synchronizer/SDKSynchronizer.swift | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Sources/ZcashLightClientKit/Synchronizer/SDKSynchronizer.swift b/Sources/ZcashLightClientKit/Synchronizer/SDKSynchronizer.swift index e6807cb6..c78e644c 100644 --- a/Sources/ZcashLightClientKit/Synchronizer/SDKSynchronizer.swift +++ b/Sources/ZcashLightClientKit/Synchronizer/SDKSynchronizer.swift @@ -110,8 +110,9 @@ public class SDKSynchronizer: Synchronizer { public private(set) var latestScannedHeight: BlockHeight public private(set) var connectionState: ConnectionState public private(set) var network: ZcashNetwork - public private(set) var lastState: CurrentValueSubject + public var lastState: AnyPublisher { lastStateSubject.eraseToAnyPublisher() } + private var lastStateSubject: CurrentValueSubject private var transactionManager: OutboundTransactionManager private var transactionRepository: TransactionRepository private var utxoRepository: UnspentTransactionOutputRepository @@ -149,7 +150,7 @@ public class SDKSynchronizer: Synchronizer { let lastscannedHeight = (try? transactionRepository.lastScannedHeight()) ?? initializer.walletBirthday self.latestScannedHeight = lastscannedHeight self.network = initializer.network - self.lastState = CurrentValueSubject( + self.lastStateSubject = CurrentValueSubject( SynchronizerState( shieldedBalance: .zero, transparentBalance: .zero, @@ -178,7 +179,6 @@ public class SDKSynchronizer: Synchronizer { return .success } - /// Starts the synchronizer /// - Throws: CompactBlockProcessorError when failures occur public func start(retry: Bool = false) throws { @@ -193,7 +193,7 @@ public class SDKSynchronizer: Synchronizer { case .stopped, .synced, .disconnected, .error: Task { let state = await snapshotState() - lastState.send(state) + lastStateSubject.send(state) NotificationSender.default.post( name: .synchronizerStarted, @@ -723,7 +723,7 @@ public class SDKSynchronizer: Synchronizer { case .synced: Task { let state = await self.snapshotState() - self.lastState.send(state) + self.lastStateSubject.send(state) NotificationSender.default.post( name: Notification.Name.synchronizerSynced,