diff --git a/Postbox/MetadataTable.swift b/Postbox/MetadataTable.swift index b7255b19f5..326b7801bf 100644 --- a/Postbox/MetadataTable.swift +++ b/Postbox/MetadataTable.swift @@ -5,6 +5,7 @@ private enum MetadataKey: Int32 { case State = 2 case TransactionStateVersion = 3 case MasterClientId = 4 + case AccessChallenge = 5 case RemoteContactCount = 6 } @@ -106,6 +107,17 @@ final class MetadataTable: Table { self.valueBox.set(self.table, key: self.key(.MasterClientId), value: buffer) } + func accessChallengeData() -> PostboxAccessChallengeData { + let encoder = PostboxEncoder() + PostboxAccessChallengeData.numericalPassword(value: "1111", timeout: nil, attempts: nil).encode(encoder) + self.valueBox.set(self.table, key: self.key(.AccessChallenge), value: encoder.makeReadBufferAndReset()) + if let value = self.valueBox.get(self.table, key: self.key(.AccessChallenge)) { + return PostboxAccessChallengeData(decoder: PostboxDecoder(buffer: value)) + } else { + return .none + } + } + func setRemoteContactCount(_ count: Int32) { self.cachedRemoteContactCount = count var mutableCount: Int32 = count diff --git a/Postbox/Postbox.swift b/Postbox/Postbox.swift index 796cc83e53..30f636e88c 100644 --- a/Postbox/Postbox.swift +++ b/Postbox/Postbox.swift @@ -769,6 +769,15 @@ public final class Transaction { } } + public func legacyGetAccessChallengeData() -> PostboxAccessChallengeData { + assert(!self.disposed) + if let postbox = self.postbox { + return postbox.metadataTable.accessChallengeData() + } else { + return .none + } + } + public func enumerateMedia(lowerBound: MessageIndex?, limit: Int) -> ([PeerId: Set], [MediaId: Media], MessageIndex?) { assert(!self.disposed) if let postbox = self.postbox {