diff --git a/Sources/ElixxirDAppsSDK/ContactFromIdentityProvider.swift b/Sources/ElixxirDAppsSDK/ContactFromIdentityProvider.swift index 1643a0cdc4a6b2979d67f0112e4f5cc0398859da..292f217d8c28f556f6599e4a4bf4fbde6248081c 100644 --- a/Sources/ElixxirDAppsSDK/ContactFromIdentityProvider.swift +++ b/Sources/ElixxirDAppsSDK/ContactFromIdentityProvider.swift @@ -1,16 +1,21 @@ import Bindings public struct ContactFromIdentityProvider { - public var get: (Data) throws -> Data + public var get: (Identity) throws -> Data - public func callAsFunction(identity: Data) throws -> Data { + public func callAsFunction(identity: Identity) throws -> Data { try get(identity) } } extension ContactFromIdentityProvider { public static func live(bindingsClient: BindingsClient) -> ContactFromIdentityProvider { - ContactFromIdentityProvider(get: bindingsClient.getContactFromIdentity(_:)) + ContactFromIdentityProvider { identity in + let encoder = JSONEncoder() + let identityData = try encoder.encode(identity) + let contactData = try bindingsClient.getContactFromIdentity(identityData) + return contactData + } } }