Skip to content

Commit

Permalink
Merge pull request #134 from velocitycareerlabs/VL-8412-v2.6.3
Browse files Browse the repository at this point in the history
v2.6.3 - fix Sendable
  • Loading branch information
michaelavoyan authored Oct 15, 2024
2 parents 8f54fe7 + cd527d6 commit 96b6ef0
Show file tree
Hide file tree
Showing 28 changed files with 86 additions and 84 deletions.
16 changes: 8 additions & 8 deletions VCL/VCL.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -1814,7 +1814,7 @@
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 148;
CURRENT_PROJECT_VERSION = 149;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
Expand All @@ -1834,7 +1834,7 @@
GCC_WARN_UNUSED_VARIABLE = YES;
INFOPLIST_FILE = VCL/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
MARKETING_VERSION = 2.6.0;
MARKETING_VERSION = 2.6.3;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
Expand Down Expand Up @@ -1882,7 +1882,7 @@
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 148;
CURRENT_PROJECT_VERSION = 149;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
Expand All @@ -1896,7 +1896,7 @@
GCC_WARN_UNUSED_VARIABLE = YES;
INFOPLIST_FILE = VCL/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
MARKETING_VERSION = 2.6.0;
MARKETING_VERSION = 2.6.3;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
SDKROOT = iphoneos;
Expand All @@ -1914,7 +1914,7 @@
buildSettings = {
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 148;
CURRENT_PROJECT_VERSION = 149;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = 7DDDGP43MJ;
DYLIB_COMPATIBILITY_VERSION = 1;
Expand All @@ -1927,7 +1927,7 @@
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MARKETING_VERSION = 2.6.0;
MARKETING_VERSION = 2.6.3;
PRODUCT_BUNDLE_IDENTIFIER = io.velocitycareerlabs.VCL;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
PROVISIONING_PROFILE_SPECIFIER = "";
Expand All @@ -1943,7 +1943,7 @@
buildSettings = {
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 148;
CURRENT_PROJECT_VERSION = 149;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = 7DDDGP43MJ;
DYLIB_COMPATIBILITY_VERSION = 1;
Expand All @@ -1956,7 +1956,7 @@
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MARKETING_VERSION = 2.6.0;
MARKETING_VERSION = 2.6.3;
PRODUCT_BUNDLE_IDENTIFIER = io.velocitycareerlabs.VCL;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
PROVISIONING_PROFILE_SPECIFIER = "";
Expand Down
12 changes: 6 additions & 6 deletions VCL/VCL/api/entities/VCLCredentialManifest.swift
Original file line number Diff line number Diff line change
Expand Up @@ -37,24 +37,24 @@ public struct VCLCredentialManifest: Sendable {
public var did: String { get { return iss } }
public var issuerId: String { get {
jwt.payload?[CodingKeys.KeyIssuer] as? String
?? (jwt.payload?[CodingKeys.KeyIssuer] as? [String: Any])?[CodingKeys.KeyId] as? String
?? (jwt.payload?[CodingKeys.KeyIssuer] as? [String: Sendable])?[CodingKeys.KeyId] as? String
?? ""
} }
public var aud: String { get { return retrieveAud() } }
public var exchangeId: String { get { return jwt.payload?[CodingKeys.KeyExchangeId] as? String ?? "" } }
public var presentationDefinitionId: String { get { (jwt.payload?[CodingKeys.KeyPresentationDefinitionId] as? [String: Any])?[CodingKeys.KeyId] as? String ?? "" } }
public var presentationDefinitionId: String { get { (jwt.payload?[CodingKeys.KeyPresentationDefinitionId] as? [String: Sendable])?[CodingKeys.KeyId] as? String ?? "" } }

public var finalizeOffersUri: String { get {
(jwt.payload?[VCLCredentialManifest.CodingKeys.KeyMetadata] as? [String: Any])?[VCLCredentialManifest.CodingKeys.KeyFinalizeOffersUri] as? String ?? "" } }
(jwt.payload?[VCLCredentialManifest.CodingKeys.KeyMetadata] as? [String: Sendable])?[VCLCredentialManifest.CodingKeys.KeyFinalizeOffersUri] as? String ?? "" } }

public var checkOffersUri: String { get {
(jwt.payload?[VCLCredentialManifest.CodingKeys.KeyMetadata] as? [String: Any])?[VCLCredentialManifest.CodingKeys.KeyCheckOffersUri] as? String ?? "" } }
(jwt.payload?[VCLCredentialManifest.CodingKeys.KeyMetadata] as? [String: Sendable])?[VCLCredentialManifest.CodingKeys.KeyCheckOffersUri] as? String ?? "" } }

public var submitPresentationUri: String { get {
(jwt.payload?[VCLCredentialManifest.CodingKeys.KeyMetadata] as? [String: Any])?[VCLCredentialManifest.CodingKeys.KeySubmitIdentificationUri] as? String ?? "" } }
(jwt.payload?[VCLCredentialManifest.CodingKeys.KeyMetadata] as? [String: Sendable])?[VCLCredentialManifest.CodingKeys.KeySubmitIdentificationUri] as? String ?? "" } }

private func retrieveAud() -> String {
let url = ((jwt.payload?[CodingKeys.KeyMetadata] as? [String: Any])?[CodingKeys.KeyFinalizeOffersUri] as? String) ?? ""
let url = ((jwt.payload?[CodingKeys.KeyMetadata] as? [String: Sendable])?[CodingKeys.KeyFinalizeOffersUri] as? String) ?? ""
if let range = url.range(of: "/issue/") {
return String(url[..<range.lowerBound])
}
Expand Down
4 changes: 2 additions & 2 deletions VCL/VCL/api/entities/VCLFinalizeOffersDescriptor.swift
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public struct VCLFinalizeOffersDescriptor: Sendable {
self.rejectedOfferIds = rejectedOfferIds
}

public var payload: [String: Any?] { get {
public var payload: [String: Sendable?] { get {
[
CodingKeys.KeyExchangeId: exchangeId,
CodingKeys.KeyApprovedOfferIds: approvedOfferIds,
Expand All @@ -42,7 +42,7 @@ public struct VCLFinalizeOffersDescriptor: Sendable {
public var didJwk: VCLDidJwk { get { credentialManifest.didJwk } }
public var remoteCryptoServicesToken: VCLToken? { get { credentialManifest.remoteCryptoServicesToken } }

func generateRequestBody(proof: VCLJwt?) -> [String: Any?] {
func generateRequestBody(proof: VCLJwt?) -> [String: Sendable?] {
var retVal = self.payload
if let proof = proof {
retVal[CodingKeys.KeyProof] = [
Expand Down
6 changes: 3 additions & 3 deletions VCL/VCL/api/entities/VCLGenerateOffersDescriptor.swift
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,11 @@ public struct VCLGenerateOffersDescriptor: Sendable {
self.identificationVerifiableCredentials = identificationVerifiableCredentials
}

public var payload: [String: Any?] { get {
public var payload: [String: Sendable?] { get {
[
CodingKeys.KeyExchangeId: exchangeId,
CodingKeys.KeyTypes: types ?? [Any](),
CodingKeys.KeyOfferHashes: offerHashes ?? [Any]()
CodingKeys.KeyTypes: types ?? [Sendable](),
CodingKeys.KeyOfferHashes: offerHashes ?? [Sendable]()
]
} }

Expand Down
2 changes: 1 addition & 1 deletion VCL/VCL/api/entities/VCLJwt.swift
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ public struct VCLJwt: Sendable {
}

var kid: String? { get {
return (header?[CodingKeys.KeyKid] as? String) ?? ((header?[CodingKeys.KeyJwk] as? [String: Any])?[CodingKeys.KeyKid]) as? String
return (header?[CodingKeys.KeyKid] as? String) ?? ((header?[CodingKeys.KeyJwk] as? [String: Sendable])?[CodingKeys.KeyKid]) as? String
} }
var iss: String? { get {
return self.payload?[CodingKeys.KeyIss] as? String
Expand Down
2 changes: 1 addition & 1 deletion VCL/VCL/api/entities/VCLOffer.swift
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public struct VCLOffer: Sendable {
self.payload = payload
}

public var issuerId: String { get { (payload[CodingKeys.KeyIssuer] as? [String: Any])?[CodingKeys.KeyId] as? String
public var issuerId: String { get { (payload[CodingKeys.KeyIssuer] as? [String: Sendable])?[CodingKeys.KeyId] as? String
?? payload[CodingKeys.KeyIssuer] as? String
?? ""
}}
Expand Down
6 changes: 3 additions & 3 deletions VCL/VCL/api/entities/VCLPresentationRequest.swift
Original file line number Diff line number Diff line change
Expand Up @@ -36,15 +36,15 @@ public struct VCLPresentationRequest: Sendable {
public var iss: String { get { jwt.payload?[CodingKeys.KeyIss] as? String ?? "" } }
public var exchangeId: String { get { jwt.payload?[CodingKeys.KeyExchangeId] as? String ?? "" } }
public var presentationDefinitionId: String { get {
(jwt.payload?[CodingKeys.KeyPresentationDefinition] as? [String:Any])? [CodingKeys.KeyId] as? String ?? "" }
(jwt.payload?[CodingKeys.KeyPresentationDefinition] as? [String: Sendable])? [CodingKeys.KeyId] as? String ?? "" }
}
var keyID: String { get { return jwt.header?["kid"] as? String ?? "" } }
var vendorOriginContext: String? { get { deepLink.vendorOriginContext } }

var progressUri: String { get {
(jwt.payload?[CodingKeys.KeyMetadata] as? [String: Any])?[CodingKeys.KeyProgressUri] as? String ?? "" } }
(jwt.payload?[CodingKeys.KeyMetadata] as? [String: Sendable])?[CodingKeys.KeyProgressUri] as? String ?? "" } }
var submitPresentationUri: String { get {
(jwt.payload?[CodingKeys.KeyMetadata] as? [String: Any])?[CodingKeys.KeySubmitPresentationUri] as? String ?? "" } }
(jwt.payload?[CodingKeys.KeyMetadata] as? [String: Sendable])?[CodingKeys.KeySubmitPresentationUri] as? String ?? "" } }

public struct CodingKeys {
public static let KeyId = "id"
Expand Down
2 changes: 1 addition & 1 deletion VCL/VCL/api/entities/VCLVerifiedProfile.swift
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ public struct VCLVerifiedProfile: Sendable {
self.payload = payload
}

public var credentialSubject: [String: Any]? { get { payload[CodingKeys.KeyCredentialSubject] as? [String : Any] } }
public var credentialSubject: [String: Sendable]? { get { payload[CodingKeys.KeyCredentialSubject] as? [String : Sendable] } }

public var name: String? { get { credentialSubject?[CodingKeys.KeyName] as? String } }
public var logo: String? { get { credentialSubject?[CodingKeys.KeyLogo] as? String } }
Expand Down
2 changes: 1 addition & 1 deletion VCL/VCL/api/entities/error/VCLError.swift
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ public struct VCLError: Sendable, Error {
}
}

public func toDictionary() -> [String: Any?] {
public func toDictionary() -> [String: Sendable?] {
return [
CodingKeys.KeyPayload: payload,
CodingKeys.KeyError: error,
Expand Down
8 changes: 4 additions & 4 deletions VCL/VCL/impl/VCLImpl.swift
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,8 @@ public final class VCLImpl: @unchecked Sendable, VCL {
}

private func completionHandler(
_ successHandler: @escaping () -> Void,
_ errorHandler: @escaping (VCLError) -> Void
_ successHandler: @escaping @Sendable () -> Void,
_ errorHandler: @escaping @Sendable (VCLError) -> Void
) {
if let error = self.initializationWatcher.firstError() {
errorHandler(error)
Expand Down Expand Up @@ -496,7 +496,7 @@ extension VCLImpl {
}

func printVersion() {
VCLLog.d("Version: \(GlobalConfig.Version)")
VCLLog.d("Build: \(GlobalConfig.Build)")
NSLog("Version: \(GlobalConfig.Version)")
NSLog("Build: \(GlobalConfig.Build)")
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ final class ExchangeProgressRepositoryImpl: ExchangeProgressRepository {
}
}

private func parseExchange(_ exchangeJsonDict: [String: Any]?) -> VCLExchange {
private func parseExchange(_ exchangeJsonDict: [String: Sendable]?) -> VCLExchange {
return VCLExchange(
id: exchangeJsonDict?[VCLExchange.CodingKeys.KeyId] as? String,
type: exchangeJsonDict?[VCLExchange.CodingKeys.KeyType] as? String,
Expand Down
6 changes: 3 additions & 3 deletions VCL/VCL/impl/data/repositories/SubmissionRepositoryImpl.swift
Original file line number Diff line number Diff line change
Expand Up @@ -47,17 +47,17 @@ final class SubmissionRepositoryImpl: SubmissionRepository {
})
}

private func parse(_ jsonDict: [String: Any]?, _ jti: String, _ submissionId: String) -> VCLSubmissionResult {
private func parse(_ jsonDict: [String: Sendable]?, _ jti: String, _ submissionId: String) -> VCLSubmissionResult {
let exchangeJsonDict = jsonDict?[VCLSubmissionResult.CodingKeys.KeyExchange]
return VCLSubmissionResult(
sessionToken: VCLToken(value: jsonDict?[VCLSubmissionResult.CodingKeys.KeyToken] as? String ?? ""),
exchange: parseExchange(exchangeJsonDict as? [String : Any]),
exchange: parseExchange(exchangeJsonDict as? [String: Sendable]),
jti: jti,
submissionId: submissionId
)
}

private func parseExchange(_ exchangeJsonDict: [String: Any]?) -> VCLExchange {
private func parseExchange(_ exchangeJsonDict: [String: Sendable]?) -> VCLExchange {
return VCLExchange(
id: exchangeJsonDict?[VCLExchange.CodingKeys.KeyId] as? String,
type: exchangeJsonDict?[VCLExchange.CodingKeys.KeyType] as? String,
Expand Down
4 changes: 2 additions & 2 deletions VCL/VCL/impl/extensions/ArrayExtensions.swift
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@ extension Array {
}
}

public func == (lhs: [Any], rhs: [Any] ) -> Bool {
public func == (lhs: [Sendable], rhs: [Sendable] ) -> Bool {
return NSArray(array: lhs).isEqual(to: rhs)
}

public func != (lhs: [Any], rhs: [Any] ) -> Bool {
public func != (lhs: [Sendable], rhs: [Sendable] ) -> Bool {
return !(lhs == rhs)
}
12 changes: 6 additions & 6 deletions VCL/VCL/impl/extensions/DictionaryExtensions.swift
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,15 @@ extension Dictionary {
}
}
/// A recursive function that replaces all values for a given key
func update(_ dict: [String: Any], set value: Any, for key: String) -> [String: Any] {
func update(_ dict: [String: Sendable], set value: Sendable, for key: String) -> [String: Sendable] {
var newDict = dict
for (k, v) in newDict {
if k == key {
newDict[k] = value
} else if let subDict = v as? [String: Any] {
} else if let subDict = v as? [String: Sendable] {
newDict[k] = update(subDict, set: value, for: key)
} else if let subArray = v as? [[String: Any]] {
var newArray = [[String: Any]]()
} else if let subArray = v as? [[String: Sendable]] {
var newArray = [[String: Sendable]]()
for item in subArray {
newArray.append(update(item, set: value, for: key))
}
Expand All @@ -38,10 +38,10 @@ extension Dictionary {
}
}

public func == (lhs: [String: Any], rhs: [String: Any]) -> Bool {
public func == (lhs: [String: Sendable], rhs: [String: Sendable]) -> Bool {
return NSDictionary(dictionary: lhs).isEqual(to: rhs)
}

public func != (lhs: [String: Any], rhs: [String: Any]) -> Bool {
public func != (lhs: [String: Sendable], rhs: [String: Sendable]) -> Bool {
return !(lhs == rhs)
}
8 changes: 4 additions & 4 deletions VCL/VCL/impl/jwt/remote/VCLJwtSignServiceRemoteImpl.swift
Original file line number Diff line number Diff line change
Expand Up @@ -52,10 +52,10 @@ final class VCLJwtSignServiceRemoteImpl: VCLJwtSignService {
jwtDescriptor: VCLJwtDescriptor,
nonce: String?,
didJwk: VCLDidJwk
) -> [String: Any] {
var retVal = [String: Any]()
var header = [String: Any]()
var options = [String: Any]()
) -> [String: Sendable] {
var retVal = [String: Sendable]()
var header = [String: Sendable]()
var options = [String: Sendable]()
var payload = jwtDescriptor.payload ?? [:]

// HeaderValues.XVnfProtocolVersion == VCLXVnfProtocolVersion.XVnfProtocolVersion1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ final class VCLJwtVerifyServiceRemoteImpl: VCLJwtVerifyService {
private func generatePayloadToVerify(
jwt: VCLJwt,
publicJwk: VCLPublicJwk
) -> [String: Any] {
) -> [String: Sendable] {
return [
CodingKeys.KeyJwt: jwt.encodedJwt,
CodingKeys.KeyPublicKey: publicJwk.valueDict
Expand Down
4 changes: 2 additions & 2 deletions VCL/VCLTests/entities/VCLFinalizeOffersDescriptorTest.swift
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ class VCLFinalizeOffersDescriptorTest: XCTestCase {
private let keyService = VCLKeyServiceLocalImpl(secretStore: SecretStoreMock.Instance)

private let offers = VCLOffers(
payload: [String: Any](),
payload: [String: Sendable](),
all: [VCLOffer(payload: [:])],
responseCode: 200,
sessionToken: VCLToken(value: ""),
Expand Down Expand Up @@ -77,7 +77,7 @@ class VCLFinalizeOffersDescriptorTest: XCTestCase {
assert(requestBody["approvedOfferIds"] as? [String] == self!.approvedOfferIds)
assert(requestBody["rejectedOfferIds"] as? [String] == self!.rejectedOfferIds)

let proof = requestBody["proof"] as? [String: Any]
let proof = requestBody["proof"] as? [String: Sendable]
assert((proof?["proof_type"] as? String) == "jwt")
assert((proof?["jwt"] as? String) == jwt.encodedJwt)
// equivalent to checking nonce in proof jwt
Expand Down
6 changes: 3 additions & 3 deletions VCL/VCLTests/entities/VCLOffersTest.swift
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ class VCLOffersTest: XCTestCase {

func testOffersFromJsonArray() {
assert(
subject1.payload[VCLOffers.CodingKeys.KeyOffers] as! [[String: Any]] == OffersMocks.OffersJsonArrayStr.toListOfDictionaries()!
subject1.payload[VCLOffers.CodingKeys.KeyOffers] as! [[String: Sendable]] == OffersMocks.OffersJsonArrayStr.toListOfDictionaries()!
)
assert(subject1.challenge == nil)
testExpectations(subject1)
Expand All @@ -46,7 +46,7 @@ class VCLOffersTest: XCTestCase {

func testOffersFromJsonDictionary() {
assert(
subject2.payload[VCLOffers.CodingKeys.KeyOffers] as! [[String: Any]] == OffersMocks.OffersJsonArrayStr.toListOfDictionaries()!
subject2.payload[VCLOffers.CodingKeys.KeyOffers] as! [[String: Sendable]] == OffersMocks.OffersJsonArrayStr.toListOfDictionaries()!
)
assert(subject2.challenge == OffersMocks.challenge)
testExpectations(subject2)
Expand All @@ -57,7 +57,7 @@ class VCLOffersTest: XCTestCase {

func testOffersFromEmptyJsonArray() {
assert(
subject3.payload[VCLOffers.CodingKeys.KeyOffers] as! [[String: Any]] == OffersMocks.offersJsonEmptyArrayStr.toListOfDictionaries()!
subject3.payload[VCLOffers.CodingKeys.KeyOffers] as! [[String: Sendable]] == OffersMocks.offersJsonEmptyArrayStr.toListOfDictionaries()!
)
assert(subject3.challenge == nil)
testExpectationsEmpty(subject3)
Expand Down
2 changes: 1 addition & 1 deletion VCL/VCLTests/entities/VCLSubmissionTest.swift
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ final class VCLSubmissionTest: XCTestCase {
assert(requestBodyJsonObj[SubmissionCodingKeys.KeyExchangeId] as? String == subjectPresentationSubmission.exchangeId)
assert(requestBodyJsonObj[SubmissionCodingKeys.KeyContext] as? [String] == SubmissionCodingKeys.ValueContextList)

let pushDelegateBodyJsonObj = requestBodyJsonObj[SubmissionCodingKeys.KeyPushDelegate] as! [String: Any]
let pushDelegateBodyJsonObj = requestBodyJsonObj[SubmissionCodingKeys.KeyPushDelegate] as! [String: Sendable]

assert(pushDelegateBodyJsonObj[VCLPushDelegate.CodingKeys.KeyPushUrl] as? String == PresentationSubmissionMocks.PushDelegate.pushUrl)
assert(pushDelegateBodyJsonObj[VCLPushDelegate.CodingKeys.KeyPushToken] as? String == PresentationSubmissionMocks.PushDelegate.pushToken)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,12 +42,12 @@ class VCLJwtSignServiceTest: XCTestCase {
nonce: "nonce 1",
didJwk: didJwk
)
let header = payloadToSign["header"] as? [String: Any]
let options = payloadToSign["options"] as? [String: Any]
let payload = payloadToSign["payload"] as? [String: Any]
let header = payloadToSign["header"] as? [String: Sendable]
let options = payloadToSign["options"] as? [String: Sendable]
let payload = payloadToSign["payload"] as? [String: Sendable]

assert(header?["kid"] as? String == didJwk.kid)
assert(header?["jwk"] as? [String: Any] ?? [:] == didJwk.publicJwk.valueDict)
assert(header?["jwk"] as? [String: Sendable] ?? [:] == didJwk.publicJwk.valueDict)

assert(options?["keyId"] as? String == didJwk.keyId)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ class CredentialTypeSchemaMocks {
" ]}\n"

static let CredentialType = VCLCredentialType(
payload: [String: Any](),
payload: [String: Sendable](),
id: "60759e68c4a22d1aea4820a5",
schema: "???",
createdAt: "2021-04-13T13:36:40.832Z",
Expand Down
Loading

0 comments on commit 96b6ef0

Please sign in to comment.