From ee77ad9207928a7abf8537540482363dab4d890b Mon Sep 17 00:00:00 2001
From: Dariusz Rybicki <dariusz@elixxir.io>
Date: Thu, 6 Oct 2022 22:53:53 +0200
Subject: [PATCH 1/6] Add UDEnvironment model

---
 Sources/XXClient/Models/UDEnvironment.swift | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
 create mode 100644 Sources/XXClient/Models/UDEnvironment.swift

diff --git a/Sources/XXClient/Models/UDEnvironment.swift b/Sources/XXClient/Models/UDEnvironment.swift
new file mode 100644
index 00000000..3f8a02d3
--- /dev/null
+++ b/Sources/XXClient/Models/UDEnvironment.swift
@@ -0,0 +1,17 @@
+import Foundation
+
+public struct UDEnvironment: Equatable, Codable {
+  public init(
+    address: String,
+    cert: Data,
+    contact: Data
+  ) {
+    self.address = address
+    self.cert = cert
+    self.contact = contact
+  }
+
+  public var address: String
+  public var cert: Data
+  public var contact: Data
+}
-- 
GitLab


From cbffc477814737d02c1293ee2a46279adfa8231e Mon Sep 17 00:00:00 2001
From: Dariusz Rybicki <dariusz@elixxir.io>
Date: Thu, 6 Oct 2022 22:54:29 +0200
Subject: [PATCH 2/6] Add E2EGetUdEnvironmentFromNdf function

---
 Sources/XXClient/E2E/E2E.swift                |  3 ++
 .../E2EGetUdEnvironmentFromNdf.swift          | 28 +++++++++++++++++++
 2 files changed, 31 insertions(+)
 create mode 100644 Sources/XXClient/E2E/Functions/E2EGetUdEnvironmentFromNdf.swift

diff --git a/Sources/XXClient/E2E/E2E.swift b/Sources/XXClient/E2E/E2E.swift
index 608ccc6e..7dea5047 100644
--- a/Sources/XXClient/E2E/E2E.swift
+++ b/Sources/XXClient/E2E/E2E.swift
@@ -10,6 +10,7 @@ public struct E2E {
   public var getUdAddressFromNdf: E2EGetUdAddressFromNdf
   public var getUdCertFromNdf: E2EGetUdCertFromNdf
   public var getUdContactFromNdf: E2EGetUdContactFromNdf
+  public var getUdEnvironmentFromNdf: E2EGetUdEnvironmentFromNdf
   public var payloadSize: E2EPayloadSize
   public var partitionSize: E2EPartitionSize
   public var addPartnerCallback: E2EAddPartnerCallback
@@ -40,6 +41,7 @@ extension E2E {
       getUdAddressFromNdf: .live(bindingsE2E),
       getUdCertFromNdf: .live(bindingsE2E),
       getUdContactFromNdf: .live(bindingsE2E),
+      getUdEnvironmentFromNdf: .live(bindingsE2E),
       payloadSize: .live(bindingsE2E),
       partitionSize: .live(bindingsE2E),
       addPartnerCallback: .live(bindingsE2E),
@@ -71,6 +73,7 @@ extension E2E {
     getUdAddressFromNdf: .unimplemented,
     getUdCertFromNdf: .unimplemented,
     getUdContactFromNdf: .unimplemented,
+    getUdEnvironmentFromNdf: .unimplemented,
     payloadSize: .unimplemented,
     partitionSize: .unimplemented,
     addPartnerCallback: .unimplemented,
diff --git a/Sources/XXClient/E2E/Functions/E2EGetUdEnvironmentFromNdf.swift b/Sources/XXClient/E2E/Functions/E2EGetUdEnvironmentFromNdf.swift
new file mode 100644
index 00000000..547a1b63
--- /dev/null
+++ b/Sources/XXClient/E2E/Functions/E2EGetUdEnvironmentFromNdf.swift
@@ -0,0 +1,28 @@
+import Bindings
+import XCTestDynamicOverlay
+
+public struct E2EGetUdEnvironmentFromNdf {
+  public var run: () throws -> UDEnvironment
+
+  public func callAsFunction() throws -> UDEnvironment {
+    try run()
+  }
+}
+
+extension E2EGetUdEnvironmentFromNdf {
+  public static func live(_ bindingsE2E: BindingsE2e) -> E2EGetUdEnvironmentFromNdf {
+    E2EGetUdEnvironmentFromNdf {
+      UDEnvironment(
+        address: E2EGetUdAddressFromNdf.live(bindingsE2E)(),
+        cert: E2EGetUdCertFromNdf.live(bindingsE2E)(),
+        contact: try E2EGetUdContactFromNdf.live(bindingsE2E)()
+      )
+    }
+  }
+}
+
+extension E2EGetUdEnvironmentFromNdf {
+  public static let unimplemented = E2EGetUdEnvironmentFromNdf(
+    run: XCTUnimplemented("\(Self.self)")
+  )
+}
-- 
GitLab


From da83395a761f6e64776a79477e8d697c070da741 Mon Sep 17 00:00:00 2001
From: Dariusz Rybicki <dariusz@elixxir.io>
Date: Thu, 6 Oct 2022 23:00:23 +0200
Subject: [PATCH 3/6] Use UDEnvironment with NewOrLoadUd.Params

---
 Sources/XXClient/Functions/NewOrLoadUd.swift | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/Sources/XXClient/Functions/NewOrLoadUd.swift b/Sources/XXClient/Functions/NewOrLoadUd.swift
index f0a69b02..35d26b68 100644
--- a/Sources/XXClient/Functions/NewOrLoadUd.swift
+++ b/Sources/XXClient/Functions/NewOrLoadUd.swift
@@ -3,6 +3,20 @@ import XCTestDynamicOverlay
 
 public struct NewOrLoadUd {
   public struct Params: Equatable {
+    public init(
+      e2eId: Int,
+      username: String?,
+      registrationValidationSignature: Data?,
+      environment: UDEnvironment
+    ) {
+      self.e2eId = e2eId
+      self.username = username
+      self.registrationValidationSignature = registrationValidationSignature
+      self.cert = environment.cert
+      self.contact = environment.contact
+      self.address = environment.address
+    }
+
     public init(
       e2eId: Int,
       username: String?,
-- 
GitLab


From 71bc674cd5b282ab7d49d965d55d4cb784494d8f Mon Sep 17 00:00:00 2001
From: Dariusz Rybicki <dariusz@elixxir.io>
Date: Thu, 6 Oct 2022 23:01:32 +0200
Subject: [PATCH 4/6] Use UDEnvironment with NewUdManagerFromBackup

---
 .../XXClient/Functions/NewUdManagerFromBackup.swift    | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/Sources/XXClient/Functions/NewUdManagerFromBackup.swift b/Sources/XXClient/Functions/NewUdManagerFromBackup.swift
index 7b68fb8a..3f94037a 100644
--- a/Sources/XXClient/Functions/NewUdManagerFromBackup.swift
+++ b/Sources/XXClient/Functions/NewUdManagerFromBackup.swift
@@ -3,6 +3,16 @@ import XCTestDynamicOverlay
 
 public struct NewUdManagerFromBackup {
   public struct Params: Equatable {
+    public init(
+      e2eId: Int,
+      environment: UDEnvironment
+    ) {
+      self.e2eId = e2eId
+      self.cert = environment.cert
+      self.contact = environment.contact
+      self.address = environment.address
+    }
+
     public init(
       e2eId: Int,
       cert: Data,
-- 
GitLab


From 51e89aef30f8afa57133fb144fd1fa7b7f4d03af Mon Sep 17 00:00:00 2001
From: Dariusz Rybicki <dariusz@elixxir.io>
Date: Thu, 6 Oct 2022 23:14:20 +0200
Subject: [PATCH 5/6] Update build scheme

---
 .../xcschemes/elixxir-dapps-sdk-swift-Package.xcscheme    | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/.swiftpm/xcode/xcshareddata/xcschemes/elixxir-dapps-sdk-swift-Package.xcscheme b/.swiftpm/xcode/xcshareddata/xcschemes/elixxir-dapps-sdk-swift-Package.xcscheme
index 7818f736..4dad91ad 100644
--- a/.swiftpm/xcode/xcshareddata/xcschemes/elixxir-dapps-sdk-swift-Package.xcscheme
+++ b/.swiftpm/xcode/xcshareddata/xcschemes/elixxir-dapps-sdk-swift-Package.xcscheme
@@ -36,10 +36,10 @@
          </BuildActionEntry>
          <BuildActionEntry
             buildForTesting = "YES"
-            buildForRunning = "YES"
+            buildForRunning = "NO"
             buildForProfiling = "NO"
             buildForArchiving = "NO"
-            buildForAnalyzing = "YES">
+            buildForAnalyzing = "NO">
             <BuildableReference
                BuildableIdentifier = "primary"
                BlueprintIdentifier = "XXClientTests"
@@ -50,10 +50,10 @@
          </BuildActionEntry>
          <BuildActionEntry
             buildForTesting = "YES"
-            buildForRunning = "YES"
+            buildForRunning = "NO"
             buildForProfiling = "NO"
             buildForArchiving = "NO"
-            buildForAnalyzing = "YES">
+            buildForAnalyzing = "NO">
             <BuildableReference
                BuildableIdentifier = "primary"
                BlueprintIdentifier = "XXMessengerClientTests"
-- 
GitLab


From 3600ffa5ce2351f16cdee51f95403b6d88601180 Mon Sep 17 00:00:00 2001
From: Dariusz Rybicki <dariusz@elixxir.io>
Date: Thu, 6 Oct 2022 23:16:18 +0200
Subject: [PATCH 6/6] Use UDEnvironment in XXMessengerClient

---
 .../Messenger/Functions/MessengerLogIn.swift  |  4 +-
 .../Functions/MessengerRegister.swift         |  4 +-
 .../Functions/MessengerRestoreBackup.swift    |  4 +-
 .../Messenger/MessengerEnvironment.swift      | 12 ++---
 .../Functions/MessengerLogInTests.swift       | 52 ++++++++-----------
 .../Functions/MessengerRegisterTests.swift    | 50 ++++++++----------
 .../MessengerRestoreBackupTests.swift         | 16 +++---
 7 files changed, 58 insertions(+), 84 deletions(-)

diff --git a/Sources/XXMessengerClient/Messenger/Functions/MessengerLogIn.swift b/Sources/XXMessengerClient/Messenger/Functions/MessengerLogIn.swift
index b82e808a..70cfa3ce 100644
--- a/Sources/XXMessengerClient/Messenger/Functions/MessengerLogIn.swift
+++ b/Sources/XXMessengerClient/Messenger/Functions/MessengerLogIn.swift
@@ -28,9 +28,7 @@ extension MessengerLogIn {
           e2eId: e2e.getId(),
           username: nil,
           registrationValidationSignature: nil,
-          cert: env.udCert ?? e2e.getUdCertFromNdf(),
-          contact: env.udContact ?? (try e2e.getUdContactFromNdf()),
-          address: env.udAddress ?? e2e.getUdAddressFromNdf()
+          environment: env.udEnvironment ?? (try e2e.getUdEnvironmentFromNdf())
         ),
         follower: .init {
           cMix.networkFollowerStatus()
diff --git a/Sources/XXMessengerClient/Messenger/Functions/MessengerRegister.swift b/Sources/XXMessengerClient/Messenger/Functions/MessengerRegister.swift
index 6baad0eb..4ac83890 100644
--- a/Sources/XXMessengerClient/Messenger/Functions/MessengerRegister.swift
+++ b/Sources/XXMessengerClient/Messenger/Functions/MessengerRegister.swift
@@ -30,9 +30,7 @@ extension MessengerRegister {
           e2eId: e2e.getId(),
           username: username,
           registrationValidationSignature: cMix.getReceptionRegistrationValidationSignature(),
-          cert: env.udCert ?? e2e.getUdCertFromNdf(),
-          contact: env.udContact ?? (try e2e.getUdContactFromNdf()),
-          address: env.udAddress ?? e2e.getUdAddressFromNdf()
+          environment: env.udEnvironment ?? (try e2e.getUdEnvironmentFromNdf())
         ),
         follower: .init {
           cMix.networkFollowerStatus()
diff --git a/Sources/XXMessengerClient/Messenger/Functions/MessengerRestoreBackup.swift b/Sources/XXMessengerClient/Messenger/Functions/MessengerRestoreBackup.swift
index e1f0ec10..0e5387a3 100644
--- a/Sources/XXMessengerClient/Messenger/Functions/MessengerRestoreBackup.swift
+++ b/Sources/XXMessengerClient/Messenger/Functions/MessengerRestoreBackup.swift
@@ -62,9 +62,7 @@ extension MessengerRestoreBackup {
       let ud = try env.newUdManagerFromBackup(
         params: NewUdManagerFromBackup.Params(
           e2eId: e2e.getId(),
-          cert: env.udCert ?? e2e.getUdCertFromNdf(),
-          contact: env.udContact ?? (try e2e.getUdContactFromNdf()),
-          address: env.udAddress ?? e2e.getUdAddressFromNdf()
+          environment: env.udEnvironment ?? (try e2e.getUdEnvironmentFromNdf())
         ),
         follower: UdNetworkStatus { cMix.networkFollowerStatus() }
       )
diff --git a/Sources/XXMessengerClient/Messenger/MessengerEnvironment.swift b/Sources/XXMessengerClient/Messenger/MessengerEnvironment.swift
index f37764da..52af520c 100644
--- a/Sources/XXMessengerClient/Messenger/MessengerEnvironment.swift
+++ b/Sources/XXMessengerClient/Messenger/MessengerEnvironment.swift
@@ -37,9 +37,7 @@ public struct MessengerEnvironment {
   public var sleep: (TimeInterval) -> Void
   public var storageDir: String
   public var ud: Stored<UserDiscovery?>
-  public var udAddress: String?
-  public var udCert: Data?
-  public var udContact: Data?
+  public var udEnvironment: UDEnvironment?
 }
 
 extension MessengerEnvironment {
@@ -85,9 +83,7 @@ extension MessengerEnvironment {
       sleep: { Thread.sleep(forTimeInterval: $0) },
       storageDir: MessengerEnvironment.defaultStorageDir,
       ud: .inMemory(),
-      udAddress: nil,
-      udCert: nil,
-      udContact: nil
+      udEnvironment: nil
     )
   }
 }
@@ -128,8 +124,6 @@ extension MessengerEnvironment {
     sleep: XCTUnimplemented("\(Self.self).sleep"),
     storageDir: "unimplemented",
     ud: .unimplemented(),
-    udAddress: nil,
-    udCert: nil,
-    udContact: nil
+    udEnvironment: nil
   )
 }
diff --git a/Tests/XXMessengerClientTests/Messenger/Functions/MessengerLogInTests.swift b/Tests/XXMessengerClientTests/Messenger/Functions/MessengerLogInTests.swift
index db4e9742..26dd2da8 100644
--- a/Tests/XXMessengerClientTests/Messenger/Functions/MessengerLogInTests.swift
+++ b/Tests/XXMessengerClientTests/Messenger/Functions/MessengerLogInTests.swift
@@ -11,10 +11,12 @@ final class MessengerLogInTests: XCTestCase {
 
     let e2eId = 1234
     let networkFollowerStatus: NetworkFollowerStatus = .stopped
-    let udCertFromNDF = "ndf-ud-cert".data(using: .utf8)!
-    let udContactFromNDF = "ndf-ud-contact".data(using: .utf8)!
-    let udAddressFromNDF = "ndf-ud-address"
-
+    let udEnvironmentFromNDF = UDEnvironment(
+      address: "ndf-ud-address",
+      cert: "ndf-ud-cert".data(using: .utf8)!,
+      contact: "ndf-ud-contact".data(using: .utf8)!
+    )
+    
     var env: MessengerEnvironment = .unimplemented
     env.cMix.get = {
       var cMix: CMix = .unimplemented
@@ -24,15 +26,11 @@ final class MessengerLogInTests: XCTestCase {
     env.e2e.get = {
       var e2e: E2E = .unimplemented
       e2e.getId.run = { e2eId }
-      e2e.getUdCertFromNdf.run = { udCertFromNDF }
-      e2e.getUdContactFromNdf.run = { udContactFromNDF }
-      e2e.getUdAddressFromNdf.run = { udAddressFromNDF }
+      e2e.getUdEnvironmentFromNdf.run = { udEnvironmentFromNDF }
       return e2e
     }
     env.ud.set = { didSetUD.append($0) }
-    env.udCert = nil
-    env.udContact = nil
-    env.udAddress = nil
+    env.udEnvironment = nil
     env.newOrLoadUd.run = { params, follower in
       didNewOrLoadUDWithParams.append(params)
       didNewOrLoadUDWithFollower.append(follower)
@@ -45,9 +43,7 @@ final class MessengerLogInTests: XCTestCase {
       e2eId: e2eId,
       username: nil,
       registrationValidationSignature: nil,
-      cert: udCertFromNDF,
-      contact: udContactFromNDF,
-      address: udAddressFromNDF
+      environment: udEnvironmentFromNDF
     )])
     XCTAssertEqual(didNewOrLoadUDWithFollower.count, 1)
     XCTAssertEqual(
@@ -62,9 +58,11 @@ final class MessengerLogInTests: XCTestCase {
     var didSetUD: [UserDiscovery?] = []
 
     let e2eId = 1234
-    let altUdCert = "alt-ud-cert".data(using: .utf8)!
-    let altUdContact = "alt-ud-contact".data(using: .utf8)!
-    let altUdAddress = "alt-ud-address"
+    let udEnvironment = UDEnvironment(
+      address: "alt-ud-address",
+      cert: "alt-ud-cert".data(using: .utf8)!,
+      contact: "alt-ud-contact".data(using: .utf8)!
+    )
 
     var env: MessengerEnvironment = .unimplemented
     env.cMix.get = {
@@ -78,9 +76,7 @@ final class MessengerLogInTests: XCTestCase {
       return e2e
     }
     env.ud.set = { didSetUD.append($0) }
-    env.udCert = altUdCert
-    env.udContact = altUdContact
-    env.udAddress = altUdAddress
+    env.udEnvironment = udEnvironment
     env.newOrLoadUd.run = { params, _ in
       didNewOrLoadUDWithParams.append(params)
       return .unimplemented
@@ -92,9 +88,7 @@ final class MessengerLogInTests: XCTestCase {
       e2eId: e2eId,
       username: nil,
       registrationValidationSignature: nil,
-      cert: altUdCert,
-      contact: altUdContact,
-      address: altUdAddress
+      environment: udEnvironment
     )])
     XCTAssertEqual(didSetUD.compactMap { $0 }.count, 1)
   }
@@ -139,12 +133,10 @@ final class MessengerLogInTests: XCTestCase {
     env.e2e.get = {
       var e2e: E2E = .unimplemented
       e2e.getId.run = { 1234 }
-      e2e.getUdCertFromNdf.run = { "ndf-ud-cert".data(using: .utf8)! }
-      e2e.getUdContactFromNdf.run = { throw error }
+      e2e.getUdEnvironmentFromNdf.run = { throw error }
       return e2e
     }
-    env.udCert = nil
-    env.udContact = nil
+    env.udEnvironment = nil
     let logIn: MessengerLogIn = .live(env)
 
     XCTAssertThrowsError(try logIn()) { err in
@@ -167,9 +159,11 @@ final class MessengerLogInTests: XCTestCase {
       e2e.getId.run = { 1234 }
       return e2e
     }
-    env.udCert = "ud-cert".data(using: .utf8)!
-    env.udContact = "ud-contact".data(using: .utf8)!
-    env.udAddress = "ud-address"
+    env.udEnvironment = UDEnvironment(
+      address: "ud-address",
+      cert: "ud-cert".data(using: .utf8)!,
+      contact: "ud-contact".data(using: .utf8)!
+    )
     env.newOrLoadUd.run = { _, _ in throw error }
     let logIn: MessengerLogIn = .live(env)
 
diff --git a/Tests/XXMessengerClientTests/Messenger/Functions/MessengerRegisterTests.swift b/Tests/XXMessengerClientTests/Messenger/Functions/MessengerRegisterTests.swift
index 35d078c2..2ec30071 100644
--- a/Tests/XXMessengerClientTests/Messenger/Functions/MessengerRegisterTests.swift
+++ b/Tests/XXMessengerClientTests/Messenger/Functions/MessengerRegisterTests.swift
@@ -12,9 +12,11 @@ final class MessengerRegisterTests: XCTestCase {
     let e2eId = 1234
     let networkFollowerStatus: NetworkFollowerStatus = .stopped
     let registrationSignature = "registration-signature".data(using: .utf8)!
-    let udCertFromNDF = "ndf-ud-cert".data(using: .utf8)!
-    let udContactFromNDF = "ndf-ud-contact".data(using: .utf8)!
-    let udAddressFromNDF = "ndf-ud-address"
+    let udEnvironmentFromNDF = UDEnvironment(
+      address: "ndf-ud-address",
+      cert: "ndf-ud-cert".data(using: .utf8)!,
+      contact: "ndf-ud-contact".data(using: .utf8)!
+    )
     let username = "new-user-name"
 
     var env: MessengerEnvironment = .unimplemented
@@ -29,15 +31,11 @@ final class MessengerRegisterTests: XCTestCase {
     env.e2e.get = {
       var e2e: E2E = .unimplemented
       e2e.getId.run = { e2eId }
-      e2e.getUdCertFromNdf.run = { udCertFromNDF }
-      e2e.getUdContactFromNdf.run = { udContactFromNDF }
-      e2e.getUdAddressFromNdf.run = { udAddressFromNDF }
+      e2e.getUdEnvironmentFromNdf.run = { udEnvironmentFromNDF }
       return e2e
     }
     env.ud.set = { didSetUD.append($0) }
-    env.udCert = nil
-    env.udContact = nil
-    env.udAddress = nil
+    env.udEnvironment = nil
     env.newOrLoadUd.run = { params, follower in
       didNewOrLoadUDWithParams.append(params)
       didNewOrLoadUDWithFollower.append(follower)
@@ -50,9 +48,7 @@ final class MessengerRegisterTests: XCTestCase {
       e2eId: e2eId,
       username: username,
       registrationValidationSignature: registrationSignature,
-      cert: udCertFromNDF,
-      contact: udContactFromNDF,
-      address: udAddressFromNDF
+      environment: udEnvironmentFromNDF
     )])
     XCTAssertEqual(didNewOrLoadUDWithFollower.count, 1)
     XCTAssertEqual(
@@ -68,9 +64,11 @@ final class MessengerRegisterTests: XCTestCase {
 
     let e2eId = 1234
     let registrationSignature = "registration-signature".data(using: .utf8)!
-    let altUdCert = "alt-ud-cert".data(using: .utf8)!
-    let altUdContact = "alt-ud-contact".data(using: .utf8)!
-    let altUdAddress = "alt-ud-address"
+    let udEnvironment = UDEnvironment(
+      address: "alt-ud-address",
+      cert: "alt-ud-cert".data(using: .utf8)!,
+      contact: "alt-ud-contact".data(using: .utf8)!
+    )
     let username = "new-user-name"
 
     var env: MessengerEnvironment = .unimplemented
@@ -88,9 +86,7 @@ final class MessengerRegisterTests: XCTestCase {
       return e2e
     }
     env.ud.set = { didSetUD.append($0) }
-    env.udCert = altUdCert
-    env.udContact = altUdContact
-    env.udAddress = altUdAddress
+    env.udEnvironment = udEnvironment
     env.newOrLoadUd.run = { params, _ in
       didNewOrLoadUDWithParams.append(params)
       return .unimplemented
@@ -102,9 +98,7 @@ final class MessengerRegisterTests: XCTestCase {
       e2eId: e2eId,
       username: username,
       registrationValidationSignature: registrationSignature,
-      cert: altUdCert,
-      contact: altUdContact,
-      address: altUdAddress
+      environment: udEnvironment
     )])
     XCTAssertEqual(didSetUD.compactMap { $0 }.count, 1)
   }
@@ -152,12 +146,10 @@ final class MessengerRegisterTests: XCTestCase {
     env.e2e.get = {
       var e2e: E2E = .unimplemented
       e2e.getId.run = { 1234 }
-      e2e.getUdCertFromNdf.run = { "ndf-ud-cert".data(using: .utf8)! }
-      e2e.getUdContactFromNdf.run = { throw error }
+      e2e.getUdEnvironmentFromNdf.run = { throw error }
       return e2e
     }
-    env.udCert = nil
-    env.udContact = nil
+    env.udEnvironment = nil
     let register: MessengerRegister = .live(env)
 
     XCTAssertThrowsError(try register(username: "new-user-name")) { err in
@@ -183,9 +175,11 @@ final class MessengerRegisterTests: XCTestCase {
       e2e.getId.run = { 1234 }
       return e2e
     }
-    env.udCert = "ud-cert".data(using: .utf8)!
-    env.udContact = "ud-contact".data(using: .utf8)!
-    env.udAddress = "ud-address"
+    env.udEnvironment = UDEnvironment(
+      address: "ud-address",
+      cert: "ud-cert".data(using: .utf8)!,
+      contact: "ud-contact".data(using: .utf8)!
+    )
     env.newOrLoadUd.run = { _, _ in throw error }
     let register: MessengerRegister = .live(env)
 
diff --git a/Tests/XXMessengerClientTests/Messenger/Functions/MessengerRestoreBackupTests.swift b/Tests/XXMessengerClientTests/Messenger/Functions/MessengerRestoreBackupTests.swift
index 7e55ddc3..4f819b47 100644
--- a/Tests/XXMessengerClientTests/Messenger/Functions/MessengerRestoreBackupTests.swift
+++ b/Tests/XXMessengerClientTests/Messenger/Functions/MessengerRestoreBackupTests.swift
@@ -26,9 +26,11 @@ final class MessengerRestoreBackupTests: XCTestCase {
       dhKeyPrivate: "reception-dhKeyPrivate".data(using: .utf8)!,
       e2eGrp: "reception-e2eGrp".data(using: .utf8)!
     )
-    let udContactFromNdf = "ud-contact".data(using: .utf8)!
-    let udCertFromNdf = "ud-cert".data(using: .utf8)!
-    let udAddressFromNdf = "ud-address"
+    let udEnvironmentFromNDF = UDEnvironment(
+      address: "ud-address",
+      cert: "ud-cert".data(using: .utf8)!,
+      contact: "ud-contact".data(using: .utf8)!
+    )
 
     var caughtActions: [CaughtAction] = []
 
@@ -81,9 +83,7 @@ final class MessengerRestoreBackupTests: XCTestCase {
       ))
       var e2e: E2E = .unimplemented
       e2e.getId.run = { e2eId }
-      e2e.getUdCertFromNdf.run = { udCertFromNdf }
-      e2e.getUdContactFromNdf.run = { udContactFromNdf }
-      e2e.getUdAddressFromNdf.run = { udAddressFromNdf }
+      e2e.getUdEnvironmentFromNdf.run = { udEnvironmentFromNDF }
       return e2e
     }
     env.newUdManagerFromBackup.run = { params, _ in
@@ -151,9 +151,7 @@ final class MessengerRestoreBackupTests: XCTestCase {
       ),
       .didNewUdManagerFromBackup(params: .init(
         e2eId: e2eId,
-        cert: udCertFromNdf,
-        contact: udContactFromNdf,
-        address: udAddressFromNdf
+        environment: udEnvironmentFromNDF
       )),
       .didSetUD,
     ])
-- 
GitLab