@@ -8,17 +8,19 @@ import Network
88
99/// Detailed sync progress information with real-time statistics
1010public struct DetailedSyncProgress : Sendable , Equatable {
11- public let currentHeight : UInt32
11+ public let overview : SyncProgress
1212 public let totalHeight : UInt32
1313 public let percentage : Double
1414 public let headersPerSecond : Double
1515 public let estimatedSecondsRemaining : Int64
1616 public let stage : SyncStage
1717 public let stageMessage : String
18- public let connectedPeers : UInt32
1918 public let totalHeadersProcessed : UInt64
2019 public let syncStartTimestamp : Date
2120
21+ public var currentHeight : UInt32 { overview. currentHeight }
22+ public var connectedPeers : UInt32 { overview. peerCount }
23+
2224 /// Calculated properties
2325 public var blocksRemaining : UInt32 {
2426 guard totalHeight > currentHeight else { return 0 }
@@ -65,39 +67,36 @@ public struct DetailedSyncProgress: Sendable, Equatable {
6567
6668 /// Public initializer for creating DetailedSyncProgress
6769 public init (
68- currentHeight : UInt32 ,
70+ overview : SyncProgress ,
6971 totalHeight: UInt32 ,
7072 percentage: Double ,
7173 headersPerSecond: Double ,
7274 estimatedSecondsRemaining: Int64 ,
7375 stage: SyncStage ,
7476 stageMessage: String ,
75- connectedPeers: UInt32 ,
7677 totalHeadersProcessed: UInt64 ,
7778 syncStartTimestamp: Date
7879 ) {
79- self . currentHeight = currentHeight
80+ self . overview = overview
8081 self . totalHeight = totalHeight
8182 self . percentage = percentage
8283 self . headersPerSecond = headersPerSecond
8384 self . estimatedSecondsRemaining = estimatedSecondsRemaining
8485 self . stage = stage
8586 self . stageMessage = stageMessage
86- self . connectedPeers = connectedPeers
8787 self . totalHeadersProcessed = totalHeadersProcessed
8888 self . syncStartTimestamp = syncStartTimestamp
8989 }
9090
9191 /// Initialize from FFI type
9292 internal init ( ffiProgress: FFIDetailedSyncProgress ) {
93- self . currentHeight = ffiProgress. current_height
93+ self . overview = SyncProgress ( ffiProgress: ffiProgress . overview )
9494 self . totalHeight = ffiProgress. total_height
9595 self . percentage = ffiProgress. percentage
9696 self . headersPerSecond = ffiProgress. headers_per_second
9797 self . estimatedSecondsRemaining = ffiProgress. estimated_seconds_remaining
9898 self . stage = SyncStage ( ffiStage: ffiProgress. stage)
9999 self . stageMessage = String ( cString: ffiProgress. stage_message. ptr)
100- self . connectedPeers = ffiProgress. connected_peers
101100 self . totalHeadersProcessed = ffiProgress. total_headers
102101 self . syncStartTimestamp = Date ( timeIntervalSince1970: TimeInterval ( ffiProgress. sync_start_timestamp) )
103102 }
@@ -308,6 +307,9 @@ extension DetailedSyncProgress {
308307 " Time Remaining " : formattedTimeRemaining,
309308 " Connected Peers " : " \( connectedPeers) " ,
310309 " Headers Processed " : " \( totalHeadersProcessed) " ,
310+ " Filter Header Height " : " \( overview. filterHeaderHeight) " ,
311+ " Filters Downloaded " : " \( overview. filtersDownloaded) " ,
312+ " Peer Count " : " \( overview. peerCount) " ,
311313 " Duration " : formattedSyncDuration
312314 ]
313315 }
@@ -1240,4 +1242,4 @@ extension SPVClient {
12401242 public func syncProgressStream( ) -> SyncProgressStream {
12411243 return SyncProgressStream ( client: self )
12421244 }
1243- }
1245+ }
0 commit comments