diff --git a/android/src/main/java/com/reactlibrary/IndySdkModule.java b/android/src/main/java/com/reactlibrary/IndySdkModule.java index 87ad299..abde705 100644 --- a/android/src/main/java/com/reactlibrary/IndySdkModule.java +++ b/android/src/main/java/com/reactlibrary/IndySdkModule.java @@ -790,6 +790,18 @@ public void proverStoreCredential(int walletHandle, String credId, String credRe } } + @ReactMethod + public void proverDeleteCredential(int walletHandle, String credId, Promise promise) { + try { + Wallet wallet = walletMap.get(walletHandle); + Anoncreds.proverDeleteCredential(wallet, credId).get(); + promise.resolve(null); + } catch (Exception e) { + IndySdkRejectResponse rejectResponse = new IndySdkRejectResponse(e); + promise.reject(rejectResponse.getCode(), rejectResponse.toJson(), e); + } + } + @ReactMethod public void proverGetCredential(int walletHandle, String credId, Promise promise) { try { diff --git a/ios/IndySdk.m b/ios/IndySdk.m index 4ea18de..acb55fc 100644 --- a/ios/IndySdk.m +++ b/ios/IndySdk.m @@ -241,6 +241,10 @@ @interface RCT_EXTERN_MODULE(IndySdk, NSObject) resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) +RCT_EXTERN_METHOD(proverDeleteCredential: (NSString *)credId walletHandle:(nonnull NSNumber *)walletHandle + resolver:(RCTPromiseResolveBlock)resolve + rejecter:(RCTPromiseRejectBlock)reject) + RCT_EXTERN_METHOD(proverGetCredentialsForProofReq: (NSString *)proofReqJSON walletHandle:(nonnull NSNumber *)walletHandle resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) diff --git a/ios/IndySdk.swift b/ios/IndySdk.swift index d680ace..6e977fa 100644 --- a/ios/IndySdk.swift +++ b/ios/IndySdk.swift @@ -415,6 +415,13 @@ class IndySdk : NSObject { let whNumber:Int32 = Int32(truncating:walletHandle) IndyAnoncreds.proverGetCredential(withId: credId, walletHandle: whNumber, completion: completionWithString(resolve, reject)) } + + @objc func proverDeleteCredential(_ credId: String, walletHandle: NSNumber, + resolver resolve: @escaping RCTPromiseResolveBlock, + rejecter reject: @escaping RCTPromiseRejectBlock) -> Void { + let whNumber:Int32 = Int32(truncating:walletHandle) + IndyAnoncreds.proverDeleteCredentials(withId: credId, walletHandle: whNumber, completion: completionWithString(resolve, reject)) + } @objc func proverGetCredentialsForProofReq(_ proofReqJSON: String, walletHandle: NSNumber, resolver resolve: @escaping RCTPromiseResolveBlock, diff --git a/src/index.js b/src/index.js index 495252a..fe17005 100644 --- a/src/index.js +++ b/src/index.js @@ -617,7 +617,12 @@ const indy = { return JSON.parse(await IndySdk.proverGetCredential(wh, credId)) }, - // TODO: add proverDeleteCredential() method + async proverDeleteCredential(wh: WalletHandle, credId: CredId): Promise { + if (Platform.OS === 'ios') { + return JSON.parse(await IndySdk.proverDeleteCredential(credId, wh)) + } + return JSON.parse(await IndySdk.proverDeleteCredential(wh, credId)) + }, // NOTE: This method is deprecated because immediately returns all fetched credentials. Use proverSearchCredentials() to fetch records by small batches. async proverGetCredentials(wh: WalletHandle, filter: {} = {}): Promise {