Skip to content

Commit dbdb9ef

Browse files
committed
fix: ignore stale private paykit recovery markers
1 parent 600cdf9 commit dbdb9ef

2 files changed

Lines changed: 6 additions & 0 deletions

File tree

Bitkit/Services/PrivatePaykitService+Links.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -523,6 +523,11 @@ extension PrivatePaykitService {
523523
return nil
524524
}
525525

526+
let now = UInt64(Date().timeIntervalSince1970)
527+
guard marker.createdAt >= now || now - marker.createdAt <= Self.recoveryMarkerFreshnessSeconds else {
528+
return nil
529+
}
530+
526531
let contactKey = [writerPublicKey, readerPublicKey]
527532
.compactMap(PubkyPublicKeyFormat.normalized)
528533
.first { state.contacts[$0] != nil }

Bitkit/Services/PrivatePaykitService.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ actor PrivatePaykitService {
2626
static let pendingPublicationRetryDelay: UInt64 = 5_000_000_000
2727
static let pendingPublicationRetryAttempts = 60
2828
static let freshLinkInitialPublishDelaySeconds: UInt64 = 8
29+
static let recoveryMarkerFreshnessSeconds: UInt64 = 60 * 60
2930
static let completedLinkRecoveryMarkerGraceSeconds: UInt64 = 5 * 60
3031
static let privateStorageRootPath = "/pub/paykit/v0/private/"
3132
static let privateStoragePurgeMaxEntries = 500

0 commit comments

Comments
 (0)