Skip to content

Commit 326aafb

Browse files
Merge pull request #1 from genaris/fix/js-wrapper-rev-reg-id
fix(js): update create credential parameters
2 parents 98d6c29 + 557c8f4 commit 326aafb

File tree

13 files changed

+24
-56
lines changed

13 files changed

+24
-56
lines changed

include/libanoncreds.h

+1-2
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,7 @@ typedef struct FfiList_FfiStr FfiStrList;
176176
typedef struct FfiCredRevInfo {
177177
ObjectHandle reg_def;
178178
ObjectHandle reg_def_private;
179+
ObjectHandle status_list;
179180
int64_t reg_idx;
180181
} FfiCredRevInfo;
181182

@@ -263,8 +264,6 @@ ErrorCode anoncreds_create_credential(ObjectHandle cred_def,
263264
FfiStrList attr_names,
264265
FfiStrList attr_raw_values,
265266
FfiStrList attr_enc_values,
266-
FfiStr rev_reg_id,
267-
ObjectHandle rev_status_list,
268267
const struct FfiCredRevInfo *revocation,
269268
ObjectHandle *cred_p);
270269

wrappers/javascript/anoncreds-nodejs/src/NodeJSAnoncreds.ts

+7-18
Original file line numberDiff line numberDiff line change
@@ -147,17 +147,10 @@ export class NodeJSAnoncreds implements Anoncreds {
147147
credentialRequest: ObjectHandle
148148
attributeRawValues: Record<string, string>
149149
attributeEncodedValues?: Record<string, string>
150-
revocationRegistryId?: string
151-
revocationStatusList?: ObjectHandle
152150
revocationConfiguration?: NativeCredentialRevocationConfig
153151
}): ObjectHandle {
154-
const {
155-
credentialDefinition,
156-
credentialDefinitionPrivate,
157-
credentialOffer,
158-
credentialRequest,
159-
revocationRegistryId,
160-
} = serializeArguments(options)
152+
const { credentialDefinition, credentialDefinitionPrivate, credentialOffer, credentialRequest } =
153+
serializeArguments(options)
161154

162155
const attributeNames = StringListStruct({
163156
count: Object.keys(options.attributeRawValues).length,
@@ -178,15 +171,13 @@ export class NodeJSAnoncreds implements Anoncreds {
178171

179172
let revocationConfiguration
180173
if (options.revocationConfiguration) {
181-
const {
182-
revocationRegistryDefinition: registryDefinition,
183-
revocationRegistryDefinitionPrivate: registryDefinitionPrivate,
184-
registryIndex,
185-
} = serializeArguments(options.revocationConfiguration)
174+
const { revocationRegistryDefinition, revocationRegistryDefinitionPrivate, revocationStatusList, registryIndex } =
175+
serializeArguments(options.revocationConfiguration)
186176

187177
revocationConfiguration = CredRevInfoStruct({
188-
reg_def: registryDefinition,
189-
reg_def_private: registryDefinitionPrivate,
178+
reg_def: revocationRegistryDefinition,
179+
reg_def_private: revocationRegistryDefinitionPrivate,
180+
status_list: revocationStatusList,
190181
reg_idx: registryIndex,
191182
})
192183
}
@@ -200,8 +191,6 @@ export class NodeJSAnoncreds implements Anoncreds {
200191
attributeNames as unknown as Buffer,
201192
attributeRawValues as unknown as Buffer,
202193
attributeEncodedValues as unknown as Buffer,
203-
revocationRegistryId,
204-
options.revocationStatusList?.handle ?? 0,
205194
revocationConfiguration?.ref().address() ?? 0,
206195
credentialPtr
207196
)

wrappers/javascript/anoncreds-nodejs/src/ffi/structures.ts

+1
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ export const I32ListStruct = CStruct({
5050
export const CredRevInfoStruct = CStruct({
5151
reg_def: FFI_OBJECT_HANDLE,
5252
reg_def_private: FFI_OBJECT_HANDLE,
53+
status_list: FFI_OBJECT_HANDLE,
5354
reg_idx: FFI_INT64,
5455
})
5556

wrappers/javascript/anoncreds-nodejs/src/library/bindings.ts

-2
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,6 @@ export const nativeBindings = {
3131
StringListStruct,
3232
StringListStruct,
3333
StringListStruct,
34-
FFI_STRING,
35-
FFI_OBJECT_HANDLE,
3634
FFI_OBJECT_HANDLE,
3735
FFI_OBJECT_HANDLE_PTR,
3836
],

wrappers/javascript/anoncreds-nodejs/test/api.test.ts

+2-4
Original file line numberDiff line numberDiff line change
@@ -108,11 +108,10 @@ describe('API', () => {
108108
credentialOffer,
109109
credentialRequest,
110110
attributeRawValues: { name: 'Alex', height: '175', age: '28', sex: 'male' },
111-
revocationRegistryId: 'mock:uri',
112-
revocationStatusList,
113111
revocationConfiguration: new CredentialRevocationConfig({
114112
registryDefinition: revocationRegistryDefinition,
115113
registryDefinitionPrivate: revocationRegistryDefinitionPrivate,
114+
statusList: revocationStatusList,
116115
registryIndex: 9,
117116
}),
118117
})
@@ -431,11 +430,10 @@ test('create and verify presentation passing only JSON objects as parameters', (
431430
credentialOffer: credentialOffer.toJson(),
432431
credentialRequest: credentialRequest.toJson(),
433432
attributeRawValues: { name: 'Alex', height: '175', age: '28', sex: 'male' },
434-
revocationRegistryId: 'mock:uri',
435-
revocationStatusList: revocationStatusList.toJson(),
436433
revocationConfiguration: new CredentialRevocationConfig({
437434
registryDefinition: revocationRegistryDefinition,
438435
registryDefinitionPrivate: revocationRegistryDefinitionPrivate,
436+
statusList: revocationStatusList,
439437
registryIndex: 9,
440438
}),
441439
})

wrappers/javascript/anoncreds-nodejs/test/bindings.test.ts

+2-4
Original file line numberDiff line numberDiff line change
@@ -292,11 +292,10 @@ describe('bindings', () => {
292292
credentialOffer,
293293
credentialRequest,
294294
attributeRawValues: { 'attr-1': 'test' },
295-
revocationRegistryId: 'mock:uri',
296-
revocationStatusList,
297295
revocationConfiguration: {
298296
revocationRegistryDefinition,
299297
revocationRegistryDefinitionPrivate,
298+
revocationStatusList,
300299
registryIndex: 9,
301300
},
302301
})
@@ -428,11 +427,10 @@ describe('bindings', () => {
428427
credentialOffer,
429428
credentialRequest,
430429
attributeRawValues: { name: 'Alex', height: '175', age: '28', sex: 'male' },
431-
revocationRegistryId: 'mock:uri',
432-
revocationStatusList,
433430
revocationConfiguration: {
434431
revocationRegistryDefinition,
435432
revocationRegistryDefinitionPrivate,
433+
revocationStatusList,
436434
registryIndex: 9,
437435
},
438436
})

wrappers/javascript/anoncreds-react-native/cpp/anoncreds.cpp

+1-8
Original file line numberDiff line numberDiff line change
@@ -465,10 +465,6 @@ jsi::Value createCredential(jsi::Runtime &rt, jsi::Object options) {
465465
jsiToValue<FfiStrList>(rt, options, "attributeRawValues");
466466
auto attributeEncodedValues =
467467
jsiToValue<FfiStrList>(rt, options, "attributeEncodedValues", true);
468-
auto revocationRegistryId =
469-
jsiToValue<std::string>(rt, options, "revocationRegistryId", true);
470-
auto revocationStatusList =
471-
jsiToValue<ObjectHandle>(rt, options, "revocationStatusList", true);
472468
auto revocation =
473469
jsiToValue<FfiCredRevInfo>(rt, options, "revocationConfiguration", true);
474470

@@ -477,10 +473,7 @@ jsi::Value createCredential(jsi::Runtime &rt, jsi::Object options) {
477473
ErrorCode code = anoncreds_create_credential(
478474
credentialDefinition, credentialDefinitionPrivate, credentialOffer,
479475
credentialRequest, attributeNames, attributeRawValues,
480-
attributeEncodedValues,
481-
revocationRegistryId.length() > 0 ? revocationRegistryId.c_str()
482-
: nullptr,
483-
revocationStatusList, revocation.reg_def ? &revocation : 0, &out);
476+
attributeEncodedValues, revocation.reg_def ? &revocation : 0, &out);
484477

485478
return createReturnValue(rt, code, &out);
486479
};

wrappers/javascript/anoncreds-react-native/cpp/include/libanoncreds.h

+1-2
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,7 @@ typedef struct FfiList_FfiStr FfiStrList;
176176
typedef struct FfiCredRevInfo {
177177
ObjectHandle reg_def;
178178
ObjectHandle reg_def_private;
179+
ObjectHandle status_list;
179180
int64_t reg_idx;
180181
} FfiCredRevInfo;
181182

@@ -263,8 +264,6 @@ ErrorCode anoncreds_create_credential(ObjectHandle cred_def,
263264
FfiStrList attr_names,
264265
FfiStrList attr_raw_values,
265266
FfiStrList attr_enc_values,
266-
FfiStr rev_reg_id,
267-
ObjectHandle rev_status_list,
268267
const struct FfiCredRevInfo *revocation,
269268
ObjectHandle *cred_p);
270269

wrappers/javascript/anoncreds-react-native/src/NativeBindings.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,11 @@ export interface NativeBindings {
5959
attributeNames: string[]
6060
attributeRawValues: string[]
6161
attributeEncodedValues?: string[]
62-
revocationRegistryId?: string
63-
revocationStatusList?: number
6462
revocationConfiguration?: {
6563
registryIndex: number
6664
revocationRegistryDefinition: number
6765
revocationRegistryDefinitionPrivate: number
66+
revocationStatusList?: number
6867
}
6968
}): ReturnObject<Handle>
7069
encodeCredentialAttributes(options: { attributeRawValues: Array<string> }): ReturnObject<string>

wrappers/javascript/anoncreds-react-native/src/ReactNativeAnoncreds.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,6 @@ export class ReactNativeAnoncreds implements Anoncreds {
120120
credentialRequest: ObjectHandle
121121
attributeRawValues: Record<string, string>
122122
attributeEncodedValues?: Record<string, string>
123-
revocationRegistryId?: string
124-
revocationStatusList?: ObjectHandle
125123
revocationConfiguration?: NativeCredentialRevocationConfig
126124
}): ObjectHandle {
127125
const attributeNames = Object.keys(options.attributeRawValues)
@@ -142,6 +140,7 @@ export class ReactNativeAnoncreds implements Anoncreds {
142140
revocationRegistryDefinition: options.revocationConfiguration.revocationRegistryDefinition.handle,
143141
revocationRegistryDefinitionPrivate:
144142
options.revocationConfiguration.revocationRegistryDefinitionPrivate.handle,
143+
revocationStatusList: options.revocationConfiguration.revocationStatusList.handle,
145144
}
146145
: undefined,
147146
})

wrappers/javascript/anoncreds-shared/src/Anoncreds.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ export type NativeRevocationEntry = {
3131
export type NativeCredentialRevocationConfig = {
3232
revocationRegistryDefinition: ObjectHandle
3333
revocationRegistryDefinitionPrivate: ObjectHandle
34+
revocationStatusList: ObjectHandle
3435
registryIndex: number
3536
}
3637

@@ -64,8 +65,6 @@ export interface Anoncreds {
6465
credentialRequest: ObjectHandle
6566
attributeRawValues: Record<string, string>
6667
attributeEncodedValues?: Record<string, string>
67-
revocationRegistryId?: string
68-
revocationStatusList?: ObjectHandle
6968
revocationConfiguration?: NativeCredentialRevocationConfig
7069
}): ObjectHandle
7170

wrappers/javascript/anoncreds-shared/src/api/Credential.ts

+1-10
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import type { ObjectHandle } from '../ObjectHandle'
22
import type { JsonObject } from '../types'
33
import type { CredentialRevocationConfig } from './CredentialRevocationConfig'
4+
import type { RevocationStatusList } from './RevocationStatusList'
45

56
import { AnoncredsObject } from '../AnoncredsObject'
67
import { anoncreds } from '../register'
@@ -11,7 +12,6 @@ import { CredentialOffer } from './CredentialOffer'
1112
import { CredentialRequest } from './CredentialRequest'
1213
import { CredentialRequestMetadata } from './CredentialRequestMetadata'
1314
import { RevocationRegistryDefinition } from './RevocationRegistryDefinition'
14-
import { RevocationStatusList } from './RevocationStatusList'
1515
import { pushToArray } from './utils'
1616

1717
export type CreateCredentialOptions = {
@@ -59,23 +59,14 @@ export class Credential extends AnoncredsObject {
5959
? options.credentialRequest.handle
6060
: pushToArray(CredentialRequest.fromJson(options.credentialRequest).handle, objectHandles)
6161

62-
const revocationStatusList =
63-
options.revocationStatusList instanceof RevocationStatusList
64-
? options.revocationStatusList.handle
65-
: options.revocationStatusList !== undefined
66-
? pushToArray(RevocationStatusList.fromJson(options.revocationStatusList).handle, objectHandles)
67-
: undefined
68-
6962
credential = anoncreds.createCredential({
7063
credentialDefinition,
7164
credentialDefinitionPrivate,
7265
credentialOffer,
7366
credentialRequest,
7467
attributeRawValues: options.attributeRawValues,
7568
attributeEncodedValues: options.attributeEncodedValues,
76-
revocationRegistryId: options.revocationRegistryId,
7769
revocationConfiguration: options.revocationConfiguration?.native,
78-
revocationStatusList,
7970
})
8071
} finally {
8172
objectHandles.forEach((handle) => handle.clear())

wrappers/javascript/anoncreds-shared/src/api/CredentialRevocationConfig.ts

+5
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,25 @@
11
import type { NativeCredentialRevocationConfig } from '../Anoncreds'
22
import type { RevocationRegistryDefinition } from './RevocationRegistryDefinition'
33
import type { RevocationRegistryDefinitionPrivate } from './RevocationRegistryDefinitionPrivate'
4+
import type { RevocationStatusList } from './RevocationStatusList'
45

56
export type CredentialRevocationConfigOptions = {
67
registryDefinition: RevocationRegistryDefinition
78
registryDefinitionPrivate: RevocationRegistryDefinitionPrivate
9+
statusList: RevocationStatusList
810
registryIndex: number
911
}
1012

1113
export class CredentialRevocationConfig {
1214
private registryDefinition: RevocationRegistryDefinition
1315
private registryDefinitionPrivate: RevocationRegistryDefinitionPrivate
16+
private statusList: RevocationStatusList
1417
private registryIndex: number
1518

1619
public constructor(options: CredentialRevocationConfigOptions) {
1720
this.registryDefinition = options.registryDefinition
1821
this.registryDefinitionPrivate = options.registryDefinitionPrivate
22+
this.statusList = options.statusList
1923
this.registryIndex = options.registryIndex
2024
}
2125

@@ -28,6 +32,7 @@ export class CredentialRevocationConfig {
2832
return {
2933
revocationRegistryDefinition: this.registryDefinition.handle,
3034
revocationRegistryDefinitionPrivate: this.registryDefinitionPrivate.handle,
35+
revocationStatusList: this.statusList.handle,
3136
registryIndex: this.registryIndex,
3237
}
3338
}

0 commit comments

Comments
 (0)