From 831771f7eb56da899ce7366c39b75aca6486fd8a Mon Sep 17 00:00:00 2001
From: Dariusz Rybicki <dariusz@elixxir.io>
Date: Mon, 25 Jul 2022 17:47:25 +0100
Subject: [PATCH] Add E2EVerifyOwnership functor

---
 Sources/ElixxirDAppsSDK/E2E.swift             |  3 ++
 .../ElixxirDAppsSDK/E2EVerifyOwnership.swift  | 35 +++++++++++++++++++
 2 files changed, 38 insertions(+)
 create mode 100644 Sources/ElixxirDAppsSDK/E2EVerifyOwnership.swift

diff --git a/Sources/ElixxirDAppsSDK/E2E.swift b/Sources/ElixxirDAppsSDK/E2E.swift
index 864ac097..6b83d568 100644
--- a/Sources/ElixxirDAppsSDK/E2E.swift
+++ b/Sources/ElixxirDAppsSDK/E2E.swift
@@ -18,6 +18,7 @@ public struct E2E {
   public var callAllReceivedRequests: E2ECallAllReceivedRequests
   public var getReceivedRequest: E2EGetReceivedRequest
   public var deleteRequest: E2EDeleteRequest
+  public var verifyOwnership: E2EVerifyOwnership
   public var send: E2ESend
 
   // TODO:
@@ -43,6 +44,7 @@ extension E2E {
       callAllReceivedRequests: .live(bindingsE2E),
       getReceivedRequest: .live(bindingsE2E),
       deleteRequest: .live(bindingsE2E),
+      verifyOwnership: .live(bindingsE2E),
       send: .live(bindingsE2E)
     )
   }
@@ -67,6 +69,7 @@ extension E2E {
     callAllReceivedRequests: .unimplemented,
     getReceivedRequest: .unimplemented,
     deleteRequest: .unimplemented,
+    verifyOwnership: .unimplemented,
     send: .unimplemented
   )
 }
diff --git a/Sources/ElixxirDAppsSDK/E2EVerifyOwnership.swift b/Sources/ElixxirDAppsSDK/E2EVerifyOwnership.swift
new file mode 100644
index 00000000..e6011bca
--- /dev/null
+++ b/Sources/ElixxirDAppsSDK/E2EVerifyOwnership.swift
@@ -0,0 +1,35 @@
+import Bindings
+import XCTestDynamicOverlay
+
+public struct E2EVerifyOwnership {
+  public var run: (Data, Data, Int) throws -> Bool
+
+  public func callAsFunction(
+    receivedContact: Data,
+    verifiedContact: Data,
+    e2eId: Int
+  ) throws -> Bool {
+    try run(receivedContact, verifiedContact, e2eId)
+  }
+}
+
+extension E2EVerifyOwnership {
+  public static func live(_ bindingsE2E: BindingsE2e) -> E2EVerifyOwnership {
+    E2EVerifyOwnership { receivedContact, verifiedContact, e2eId in
+      var result: ObjCBool = false
+      try bindingsE2E.verifyOwnership(
+        receivedContact,
+        verifiedContact: verifiedContact,
+        e2eId: e2eId,
+        ret0_: &result
+      )
+      return result.boolValue
+    }
+  }
+}
+
+extension E2EVerifyOwnership {
+  public static let unimplemented = E2EVerifyOwnership(
+    run: XCTUnimplemented("\(Self.self)")
+  )
+}
-- 
GitLab