@docknetwork/wallet-sdk-core 1.7.6 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cloud-wallet.d.ts +79 -3
- package/lib/cloud-wallet.d.ts.map +1 -1
- package/lib/cloud-wallet.js +147 -14
- package/lib/cloud-wallet.js.map +1 -1
- package/lib/credential-provider.d.ts.map +1 -1
- package/lib/credential-provider.js +10 -4
- package/lib/credential-provider.js.map +1 -1
- package/lib/delegation/delegation-chain.d.ts +8 -0
- package/lib/delegation/delegation-chain.d.ts.map +1 -0
- package/lib/delegation/delegation-chain.js +33 -0
- package/lib/delegation/delegation-chain.js.map +1 -0
- package/lib/delegation/delegation-fixtures.d.ts +69 -0
- package/lib/delegation/delegation-fixtures.d.ts.map +1 -0
- package/lib/delegation/delegation-fixtures.js +553 -0
- package/lib/delegation/delegation-fixtures.js.map +1 -0
- package/lib/delegation/delegation-issuance.d.ts +19 -0
- package/lib/delegation/delegation-issuance.d.ts.map +1 -0
- package/lib/delegation/delegation-issuance.js +60 -0
- package/lib/delegation/delegation-issuance.js.map +1 -0
- package/lib/delegation/delegation-offer.d.ts +84 -0
- package/lib/delegation/delegation-offer.d.ts.map +1 -0
- package/lib/delegation/delegation-offer.js +349 -0
- package/lib/delegation/delegation-offer.js.map +1 -0
- package/lib/delegation/delegation-policy-validation.d.ts +28 -0
- package/lib/delegation/delegation-policy-validation.d.ts.map +1 -0
- package/lib/delegation/delegation-policy-validation.js +170 -0
- package/lib/delegation/delegation-policy-validation.js.map +1 -0
- package/lib/delegation/delegation-policy.d.ts +21 -0
- package/lib/delegation/delegation-policy.d.ts.map +1 -0
- package/lib/delegation/delegation-policy.js +73 -0
- package/lib/delegation/delegation-policy.js.map +1 -0
- package/lib/delegation/delegation-tree.d.ts +17 -0
- package/lib/delegation/delegation-tree.d.ts.map +1 -0
- package/lib/delegation/delegation-tree.js +58 -0
- package/lib/delegation/delegation-tree.js.map +1 -0
- package/lib/delegation/delegation-types.d.ts +56 -0
- package/lib/delegation/delegation-types.d.ts.map +1 -0
- package/lib/delegation/delegation-types.js +3 -0
- package/lib/delegation/delegation-types.js.map +1 -0
- package/lib/delegation/delegation-utils.d.ts +3 -0
- package/lib/delegation/delegation-utils.d.ts.map +1 -0
- package/lib/delegation/delegation-utils.js +10 -0
- package/lib/delegation/delegation-utils.js.map +1 -0
- package/lib/did-provider.d.ts +2 -1
- package/lib/did-provider.d.ts.map +1 -1
- package/lib/did-provider.js +11 -7
- package/lib/did-provider.js.map +1 -1
- package/lib/message-provider.js +1 -1
- package/lib/message-provider.js.map +1 -1
- package/lib/verification-controller.d.ts +30 -11
- package/lib/verification-controller.d.ts.map +1 -1
- package/lib/verification-controller.js +372 -68
- package/lib/verification-controller.js.map +1 -1
- package/package.json +3 -3
- package/src/cloud-wallet.test.js +369 -0
- package/src/cloud-wallet.ts +206 -18
- package/src/credential-provider.ts +13 -4
- package/src/delegation/delegation-chain.test.ts +64 -0
- package/src/delegation/delegation-chain.ts +34 -0
- package/src/delegation/delegation-fixtures.ts +552 -0
- package/src/delegation/delegation-issuance.ts +92 -0
- package/src/delegation/delegation-offer.ts +488 -0
- package/src/delegation/delegation-policy-validation.test.ts +237 -0
- package/src/delegation/delegation-policy-validation.ts +281 -0
- package/src/delegation/delegation-policy.ts +100 -0
- package/src/delegation/delegation-tree.test.ts +110 -0
- package/src/delegation/delegation-tree.ts +60 -0
- package/src/delegation/delegation-types.ts +65 -0
- package/src/delegation/delegation-utils.ts +10 -0
- package/src/did-provider.ts +10 -6
- package/src/globals.d.ts +6 -0
- package/src/message-provider.ts +1 -1
- package/src/verification-controller.test.ts +23 -0
- package/src/verification-controller.ts +534 -82
- package/tsconfig.build.json +2 -1
- package/tsconfig.build.tsbuildinfo +1 -1
|
@@ -23,9 +23,6 @@ var VerificationStatus;
|
|
|
23
23
|
VerificationStatus["NoCredentialsInTheWallet"] = "NoCredentialsInTheWallet";
|
|
24
24
|
VerificationStatus["SelectingCredentials"] = "SelectingCredentials";
|
|
25
25
|
})(VerificationStatus || (exports.VerificationStatus = VerificationStatus = {}));
|
|
26
|
-
function isRangeProofTemplate(templateJSON) {
|
|
27
|
-
return templateJSON.proving_key;
|
|
28
|
-
}
|
|
29
26
|
function createVerificationController({ wallet, credentialProvider, didProvider, }) {
|
|
30
27
|
const emitter = new events_1.EventEmitter();
|
|
31
28
|
let templateJSON = null;
|
|
@@ -36,31 +33,15 @@ function createVerificationController({ wallet, credentialProvider, didProvider,
|
|
|
36
33
|
*/
|
|
37
34
|
let statusData = null;
|
|
38
35
|
let filteredCredentials = [];
|
|
36
|
+
let filteredMatches = [];
|
|
39
37
|
let selectedCredentials = new Map();
|
|
40
38
|
let selectedDID = null;
|
|
41
|
-
let provingKey = null;
|
|
42
39
|
if (!credentialProvider) {
|
|
43
40
|
credentialProvider = (0, credential_provider_1.createCredentialProvider)({ wallet });
|
|
44
41
|
}
|
|
45
42
|
if (!didProvider) {
|
|
46
43
|
didProvider = (0, did_provider_1.createDIDProvider)({ wallet });
|
|
47
44
|
}
|
|
48
|
-
async function fetchProvingKey(templateJSON) {
|
|
49
|
-
if (templateJSON.proving_key) {
|
|
50
|
-
setState(VerificationStatus.FetchingProvingKey);
|
|
51
|
-
try {
|
|
52
|
-
provingKey = await axios_1.default
|
|
53
|
-
.get(templateJSON.proving_key)
|
|
54
|
-
.then(res => res.data);
|
|
55
|
-
}
|
|
56
|
-
catch (err) {
|
|
57
|
-
setState(VerificationStatus.Error, {
|
|
58
|
-
message: 'failed_to_fetch_proving_key',
|
|
59
|
-
});
|
|
60
|
-
throw err;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
45
|
async function start({ template }) {
|
|
65
46
|
setState(VerificationStatus.LoadingTemplate);
|
|
66
47
|
// check for dids
|
|
@@ -74,7 +55,6 @@ function createVerificationController({ wallet, credentialProvider, didProvider,
|
|
|
74
55
|
// the application needs to verify if there are more DIDs available, and allow the user to change this selection before creating a presentation
|
|
75
56
|
selectedDID = dids[0].didDocument.id;
|
|
76
57
|
templateJSON = await (0, helpers_1.getJSON)(template);
|
|
77
|
-
await fetchProvingKey(templateJSON);
|
|
78
58
|
await loadCredentials();
|
|
79
59
|
setState(VerificationStatus.SelectingCredentials);
|
|
80
60
|
}
|
|
@@ -98,6 +78,7 @@ function createVerificationController({ wallet, credentialProvider, didProvider,
|
|
|
98
78
|
holderDIDs: [],
|
|
99
79
|
});
|
|
100
80
|
filteredCredentials = result.verifiableCredential;
|
|
81
|
+
filteredMatches = result.matches || [];
|
|
101
82
|
}
|
|
102
83
|
catch (err) {
|
|
103
84
|
console.error(`Unable to filter credentials using the template: \n ${JSON.stringify(templateJSON, null, 2)}`);
|
|
@@ -115,58 +96,257 @@ function createVerificationController({ wallet, credentialProvider, didProvider,
|
|
|
115
96
|
async function isKvacCredential(credential) {
|
|
116
97
|
return credential_1.credentialServiceRPC.isKvacCredential({ credential });
|
|
117
98
|
}
|
|
118
|
-
async function
|
|
119
|
-
(0, assert_1.default)(!!selectedDID, 'No DID selected');
|
|
120
|
-
(0, assert_1.default)(!!selectedCredentials.size, 'No credentials selected');
|
|
121
|
-
if (isRangeProofTemplate(templateJSON)) {
|
|
122
|
-
// TODO: Implement proving key usage for range-proofs
|
|
123
|
-
(0, assert_1.default)(!!provingKey, 'No proving key found');
|
|
124
|
-
}
|
|
99
|
+
async function deriveNonBbsCredentials(sdJwtSelections, regularSelections) {
|
|
125
100
|
const credentials = [];
|
|
126
|
-
for (const
|
|
127
|
-
const
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
101
|
+
for (const sel of sdJwtSelections) {
|
|
102
|
+
const derived = await credential_1.credentialServiceRPC.createSDJWTPresentation({
|
|
103
|
+
attributesToReveal: sel.attributesToReveal,
|
|
104
|
+
credential: sel.credential._sd_jwt.encoded,
|
|
105
|
+
});
|
|
106
|
+
credentials.push(derived);
|
|
107
|
+
}
|
|
108
|
+
for (const sel of regularSelections) {
|
|
109
|
+
credentials.push(sel.credential);
|
|
110
|
+
}
|
|
111
|
+
return credentials;
|
|
112
|
+
}
|
|
113
|
+
function getKeyId(keyDoc) {
|
|
114
|
+
return keyDoc.controller.startsWith('did:key:')
|
|
115
|
+
? keyDoc.id
|
|
116
|
+
: `${keyDoc.controller}#keys-1`;
|
|
117
|
+
}
|
|
118
|
+
async function assembleSignedPresentation(credentials, keyDoc) {
|
|
119
|
+
return credential_1.credentialServiceRPC.createPresentation({
|
|
120
|
+
credentials,
|
|
121
|
+
challenge: templateJSON.nonce,
|
|
122
|
+
keyDoc,
|
|
123
|
+
id: getKeyId(keyDoc),
|
|
124
|
+
domain: 'dock.io',
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
function getRequirementGroups() {
|
|
128
|
+
if (filteredMatches.length === 0) {
|
|
129
|
+
return [
|
|
130
|
+
{
|
|
131
|
+
descriptorKey: 'default',
|
|
132
|
+
descriptorName: 'default',
|
|
133
|
+
candidates: [...filteredCredentials],
|
|
134
|
+
},
|
|
135
|
+
];
|
|
136
|
+
}
|
|
137
|
+
const groups = [];
|
|
138
|
+
const groupKeyFn = match => match.from ? JSON.stringify(match.from) : match.name || match.id || '';
|
|
139
|
+
const seen = new Map();
|
|
140
|
+
for (const match of filteredMatches) {
|
|
141
|
+
const key = groupKeyFn(match);
|
|
142
|
+
const candidateIndices = [];
|
|
143
|
+
for (const path of match.vc_path || []) {
|
|
144
|
+
const indexMatch = path.match(/\[(\d+)\]/);
|
|
145
|
+
if (indexMatch) {
|
|
146
|
+
candidateIndices.push(parseInt(indexMatch[1], 10));
|
|
147
|
+
}
|
|
135
148
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
...(credentialSelection.attributesToReveal || []),
|
|
146
|
-
'id',
|
|
147
|
-
],
|
|
148
|
-
},
|
|
149
|
-
],
|
|
149
|
+
const candidates = candidateIndices
|
|
150
|
+
.map(idx => filteredCredentials[idx])
|
|
151
|
+
.filter(Boolean);
|
|
152
|
+
if (match.from || !seen.has(key)) {
|
|
153
|
+
seen.set(key, groups.length);
|
|
154
|
+
groups.push({
|
|
155
|
+
descriptorKey: key,
|
|
156
|
+
descriptorName: match.name || match.id || key,
|
|
157
|
+
candidates,
|
|
150
158
|
});
|
|
151
|
-
console.log('Credential derived');
|
|
152
|
-
credentials.push(derivedCredentials[0]);
|
|
153
159
|
}
|
|
154
160
|
else {
|
|
155
|
-
|
|
161
|
+
const existing = groups[seen.get(key)];
|
|
162
|
+
for (const cred of candidates) {
|
|
163
|
+
if (!existing.candidates.some(c => c.id === cred.id)) {
|
|
164
|
+
existing.candidates.push(cred);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
156
167
|
}
|
|
157
168
|
}
|
|
169
|
+
return groups;
|
|
170
|
+
}
|
|
171
|
+
async function filterValidCredentials(candidates) {
|
|
172
|
+
const results = await Promise.all(candidates.map(async (cred) => {
|
|
173
|
+
const statusResult = await credentialProvider.getCredentialStatus(cred);
|
|
174
|
+
return {
|
|
175
|
+
credential: cred,
|
|
176
|
+
status: statusResult.status,
|
|
177
|
+
};
|
|
178
|
+
}));
|
|
179
|
+
return results
|
|
180
|
+
.filter(r => r.status !== credential_provider_1.CredentialStatus.Revoked &&
|
|
181
|
+
r.status !== credential_provider_1.CredentialStatus.Invalid &&
|
|
182
|
+
r.status !== credential_provider_1.CredentialStatus.Expired)
|
|
183
|
+
.map(r => r.credential);
|
|
184
|
+
}
|
|
185
|
+
async function createDefaultPresentation() {
|
|
186
|
+
(0, assert_1.default)(filteredCredentials.length > 0, 'No filtered credentials available');
|
|
187
|
+
selectedCredentials.clear();
|
|
188
|
+
const groups = getRequirementGroups();
|
|
189
|
+
for (const group of groups) {
|
|
190
|
+
const validCandidates = await filterValidCredentials(group.candidates);
|
|
191
|
+
const chosen = validCandidates.find(cred => !selectedCredentials.has(cred.id)) ||
|
|
192
|
+
validCandidates[0];
|
|
193
|
+
if (chosen) {
|
|
194
|
+
selectedCredentials.set(chosen.id, { credential: chosen });
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
(0, assert_1.default)(selectedCredentials.size > 0, 'No credentials could be selected for the presentation');
|
|
198
|
+
return createPresentation();
|
|
199
|
+
}
|
|
200
|
+
function getSelectedCredentialsByDescriptor() {
|
|
201
|
+
const groups = getRequirementGroups();
|
|
202
|
+
return groups.map(group => {
|
|
203
|
+
const selected = group.candidates.find(cred => selectedCredentials.has(cred.id)) || null;
|
|
204
|
+
const alternatives = group.candidates.filter(cred => !selected || cred.id !== selected.id);
|
|
205
|
+
return {
|
|
206
|
+
descriptorId: group.descriptorKey,
|
|
207
|
+
descriptorName: group.descriptorName,
|
|
208
|
+
selected,
|
|
209
|
+
alternatives,
|
|
210
|
+
};
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
async function getCredentialOptionsForDescriptor(credentialId) {
|
|
214
|
+
const groups = getRequirementGroups();
|
|
215
|
+
const group = groups.find(g => g.candidates.some(c => c.id === credentialId));
|
|
216
|
+
(0, assert_1.default)(group, `Credential ${credentialId} not found in any descriptor group`);
|
|
217
|
+
const selected = group.candidates.find(c => c.id === credentialId);
|
|
218
|
+
const allAlternatives = group.candidates.filter(c => c.id !== credentialId);
|
|
219
|
+
const alternatives = await filterValidCredentials(allAlternatives);
|
|
220
|
+
return {
|
|
221
|
+
descriptorId: group.descriptorKey,
|
|
222
|
+
descriptorName: group.descriptorName,
|
|
223
|
+
selected,
|
|
224
|
+
alternatives,
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
async function switchCredential(currentCredentialId, replacementCredentialId) {
|
|
228
|
+
(0, assert_1.default)(selectedCredentials.has(currentCredentialId), `Credential ${currentCredentialId} is not currently selected`);
|
|
229
|
+
const options = await getCredentialOptionsForDescriptor(currentCredentialId);
|
|
230
|
+
const replacement = options.alternatives.find(c => c.id === replacementCredentialId);
|
|
231
|
+
(0, assert_1.default)(replacement, `Credential ${replacementCredentialId} is not a valid replacement for ${currentCredentialId}`);
|
|
232
|
+
selectedCredentials.delete(currentCredentialId);
|
|
233
|
+
selectedCredentials.set(replacementCredentialId, { credential: replacement });
|
|
234
|
+
return createPresentation();
|
|
235
|
+
}
|
|
236
|
+
function getAttributesToRevealFromTemplate(credential) {
|
|
237
|
+
const definition = getPresentationDefinition();
|
|
238
|
+
if (!definition?.input_descriptors) {
|
|
239
|
+
return ['id'];
|
|
240
|
+
}
|
|
241
|
+
const attributes = ['id'];
|
|
242
|
+
for (const descriptor of definition.input_descriptors) {
|
|
243
|
+
const fields = descriptor.constraints?.fields || [];
|
|
244
|
+
for (const field of fields) {
|
|
245
|
+
if (!field.path) {
|
|
246
|
+
continue;
|
|
247
|
+
}
|
|
248
|
+
const paths = Array.isArray(field.path) ? field.path : [field.path];
|
|
249
|
+
for (const p of paths) {
|
|
250
|
+
const attr = p.replace('$.', '');
|
|
251
|
+
if (attr &&
|
|
252
|
+
!attributes.includes(attr) &&
|
|
253
|
+
!attr.startsWith('type') &&
|
|
254
|
+
!attr.startsWith('issuer') &&
|
|
255
|
+
!attr.startsWith('@context') &&
|
|
256
|
+
!attr.startsWith('proof') &&
|
|
257
|
+
!attr.startsWith('credentialSchema') &&
|
|
258
|
+
!attr.startsWith('issuanceDate')) {
|
|
259
|
+
// Only include if the credential actually has this attribute
|
|
260
|
+
const value = attr
|
|
261
|
+
.split('.')
|
|
262
|
+
.reduce((obj, key) => obj?.[key], credential);
|
|
263
|
+
if (value !== undefined) {
|
|
264
|
+
attributes.push(attr);
|
|
265
|
+
}
|
|
266
|
+
break;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
return attributes;
|
|
272
|
+
}
|
|
273
|
+
function ensureDescriptorMap(presentation) {
|
|
274
|
+
if (presentation?.presentation_submission?.descriptor_map?.length > 0) {
|
|
275
|
+
return presentation;
|
|
276
|
+
}
|
|
277
|
+
const definition = getPresentationDefinition();
|
|
278
|
+
if (!definition?.input_descriptors) {
|
|
279
|
+
return presentation;
|
|
280
|
+
}
|
|
281
|
+
const descriptorMap = definition.input_descriptors.map((descriptor, idx) => ({
|
|
282
|
+
id: descriptor.id,
|
|
283
|
+
format: 'ldp_vp',
|
|
284
|
+
path: `$.verifiableCredential[${idx}]`,
|
|
285
|
+
}));
|
|
286
|
+
presentation.presentation_submission = {
|
|
287
|
+
...presentation.presentation_submission,
|
|
288
|
+
definition_id: definition.id,
|
|
289
|
+
descriptor_map: descriptorMap,
|
|
290
|
+
};
|
|
291
|
+
return presentation;
|
|
292
|
+
}
|
|
293
|
+
async function createPresentation() {
|
|
294
|
+
(0, assert_1.default)(!!selectedDID, 'No DID selected');
|
|
295
|
+
(0, assert_1.default)(!!selectedCredentials.size, 'No credentials selected');
|
|
158
296
|
const didKeyPairList = await didProvider.getDIDKeyPairs();
|
|
159
297
|
const keyDoc = didKeyPairList.find(doc => doc.controller === selectedDID);
|
|
160
298
|
(0, assert_1.default)(keyDoc, `No key pair found for the selected DID ${selectedDID}`);
|
|
161
|
-
const
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
299
|
+
const sdJwtSelections = [];
|
|
300
|
+
const bbsKvacSelections = [];
|
|
301
|
+
const regularSelections = [];
|
|
302
|
+
for (const credentialSelection of selectedCredentials.values()) {
|
|
303
|
+
if (credentialSelection.credential._sd_jwt) {
|
|
304
|
+
sdJwtSelections.push(credentialSelection);
|
|
305
|
+
}
|
|
306
|
+
else {
|
|
307
|
+
const isBBS = await isBBSPlusCredential(credentialSelection.credential);
|
|
308
|
+
const isKVAC = await isKvacCredential(credentialSelection.credential);
|
|
309
|
+
if (isBBS || isKVAC) {
|
|
310
|
+
bbsKvacSelections.push(credentialSelection);
|
|
311
|
+
}
|
|
312
|
+
else {
|
|
313
|
+
regularSelections.push(credentialSelection);
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
if (bbsKvacSelections.length > 0) {
|
|
318
|
+
// When attributesToReveal is undefined, the credential-sdk will automatically
|
|
319
|
+
// determine which attributes to reveal based on the PEX template requirements.
|
|
320
|
+
// This enables generating a default presentation without manual attribute selection.
|
|
321
|
+
const credentialsWithWitness = await Promise.all(bbsKvacSelections.map(async (sel) => {
|
|
322
|
+
return {
|
|
323
|
+
credential: sel.credential,
|
|
324
|
+
witness: await credentialProvider.getMembershipWitness(sel.credential.id),
|
|
325
|
+
attributesToReveal: sel.attributesToReveal ||
|
|
326
|
+
getAttributesToRevealFromTemplate(sel.credential),
|
|
327
|
+
};
|
|
328
|
+
}));
|
|
329
|
+
// Derive each BBS+/KVAC credential separately, then assemble into a signed presentation.
|
|
330
|
+
// This approach uses deriveVCFromPresentation which properly handles range proof
|
|
331
|
+
// bound checks and produces presentations that the Truvera API can verify.
|
|
332
|
+
const derivedResults = await Promise.all(credentialsWithWitness.map(c => credential_1.credentialServiceRPC.deriveVCFromPresentation({
|
|
333
|
+
proofRequest: templateJSON,
|
|
334
|
+
credentials: [
|
|
335
|
+
{
|
|
336
|
+
credential: c.credential,
|
|
337
|
+
witness: c.witness,
|
|
338
|
+
attributesToReveal: c.attributesToReveal,
|
|
339
|
+
},
|
|
340
|
+
],
|
|
341
|
+
})));
|
|
342
|
+
const derivedCredentials = derivedResults.flat();
|
|
343
|
+
const nonBbsCredentials = await deriveNonBbsCredentials(sdJwtSelections, regularSelections);
|
|
344
|
+
const presentation = await assembleSignedPresentation([...derivedCredentials, ...nonBbsCredentials], keyDoc);
|
|
345
|
+
return presentation;
|
|
346
|
+
}
|
|
347
|
+
// No BBS+/KVAC: handle SD-JWT and regular only
|
|
348
|
+
const credentials = await deriveNonBbsCredentials(sdJwtSelections, regularSelections);
|
|
349
|
+
const presentation = await assembleSignedPresentation(credentials, keyDoc);
|
|
170
350
|
return presentation;
|
|
171
351
|
}
|
|
172
352
|
/**
|
|
@@ -191,7 +371,7 @@ function createVerificationController({ wallet, credentialProvider, didProvider,
|
|
|
191
371
|
*/
|
|
192
372
|
function evaluatePresentation(presentation) {
|
|
193
373
|
const definition = getPresentationDefinition();
|
|
194
|
-
const result =
|
|
374
|
+
const result = pex_1.pexService.evaluatePresentation({
|
|
195
375
|
presentation,
|
|
196
376
|
presentationDefinition: definition,
|
|
197
377
|
});
|
|
@@ -201,10 +381,126 @@ function createVerificationController({ wallet, credentialProvider, didProvider,
|
|
|
201
381
|
warnings: result.warnings,
|
|
202
382
|
};
|
|
203
383
|
}
|
|
204
|
-
function
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
384
|
+
function getRequestedAttributes(credentialId) {
|
|
385
|
+
const definition = getPresentationDefinition();
|
|
386
|
+
if (!definition?.input_descriptors) {
|
|
387
|
+
return [];
|
|
388
|
+
}
|
|
389
|
+
const groups = getRequirementGroups();
|
|
390
|
+
const group = groups.find(g => g.candidates.some(c => c.id === credentialId));
|
|
391
|
+
if (!group) {
|
|
392
|
+
return [];
|
|
393
|
+
}
|
|
394
|
+
const credential = group.candidates.find(c => c.id === credentialId);
|
|
395
|
+
if (!credential) {
|
|
396
|
+
return [];
|
|
397
|
+
}
|
|
398
|
+
const descriptor = definition.input_descriptors.find(d => (d.name || d.id) === group.descriptorName);
|
|
399
|
+
if (!descriptor?.constraints?.fields) {
|
|
400
|
+
return [];
|
|
401
|
+
}
|
|
402
|
+
const attributesToSkip = [
|
|
403
|
+
/^type/,
|
|
404
|
+
/^issuer/,
|
|
405
|
+
/^@context/,
|
|
406
|
+
/^proof/,
|
|
407
|
+
/^credentialSchema/,
|
|
408
|
+
/^issuanceDate/,
|
|
409
|
+
/^credentialStatus/,
|
|
410
|
+
/^cryptoVersion/,
|
|
411
|
+
];
|
|
412
|
+
return descriptor.constraints.fields
|
|
413
|
+
.map(field => {
|
|
414
|
+
const paths = Array.isArray(field.path) ? field.path : [field.path];
|
|
415
|
+
let resolvedPath = null;
|
|
416
|
+
let value;
|
|
417
|
+
for (const p of paths) {
|
|
418
|
+
const cleanPath = p.replace('$.', '');
|
|
419
|
+
const pathParts = cleanPath.split('.');
|
|
420
|
+
let current = credential;
|
|
421
|
+
let found = true;
|
|
422
|
+
for (const part of pathParts) {
|
|
423
|
+
if (current && typeof current === 'object' && part in current) {
|
|
424
|
+
current = current[part];
|
|
425
|
+
}
|
|
426
|
+
else {
|
|
427
|
+
found = false;
|
|
428
|
+
break;
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
if (found) {
|
|
432
|
+
resolvedPath = cleanPath;
|
|
433
|
+
value = current;
|
|
434
|
+
break;
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
if (!resolvedPath) {
|
|
438
|
+
return null;
|
|
439
|
+
}
|
|
440
|
+
if (attributesToSkip.some(regex => regex.test(resolvedPath))) {
|
|
441
|
+
return null;
|
|
442
|
+
}
|
|
443
|
+
const isRangeProof = !!(field.filter &&
|
|
444
|
+
(field.filter.minimum !== undefined ||
|
|
445
|
+
field.filter.maximum !== undefined ||
|
|
446
|
+
field.filter.exclusiveMinimum !== undefined ||
|
|
447
|
+
field.filter.exclusiveMaximum !== undefined ||
|
|
448
|
+
field.filter.formatMinimum !== undefined ||
|
|
449
|
+
field.filter.formatMaximum !== undefined));
|
|
450
|
+
return {
|
|
451
|
+
name: resolvedPath,
|
|
452
|
+
value: isRangeProof ? null : value,
|
|
453
|
+
isRangeProof,
|
|
454
|
+
isOptional: field.optional === true,
|
|
455
|
+
...(isRangeProof && {
|
|
456
|
+
min: field.filter.minimum ??
|
|
457
|
+
field.filter.exclusiveMinimum ??
|
|
458
|
+
field.filter.formatMinimum,
|
|
459
|
+
max: field.filter.maximum ??
|
|
460
|
+
field.filter.exclusiveMaximum ??
|
|
461
|
+
field.filter.formatMaximum,
|
|
462
|
+
}),
|
|
463
|
+
};
|
|
464
|
+
})
|
|
465
|
+
.filter(Boolean);
|
|
466
|
+
}
|
|
467
|
+
async function getCredentialStatus(credentialId) {
|
|
468
|
+
const groups = getRequirementGroups();
|
|
469
|
+
let credential = null;
|
|
470
|
+
for (const group of groups) {
|
|
471
|
+
credential = group.candidates.find(c => c.id === credentialId);
|
|
472
|
+
if (credential) {
|
|
473
|
+
break;
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
(0, assert_1.default)(credential, `Credential ${credentialId} not found in any descriptor group`);
|
|
477
|
+
return credentialProvider.isValid(credential);
|
|
478
|
+
}
|
|
479
|
+
async function canSwitchCredential(credentialId) {
|
|
480
|
+
try {
|
|
481
|
+
const options = await getCredentialOptionsForDescriptor(credentialId);
|
|
482
|
+
return options.alternatives.length > 0;
|
|
483
|
+
}
|
|
484
|
+
catch {
|
|
485
|
+
return false;
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
async function submitPresentation(presentation, maxRetries = 3) {
|
|
489
|
+
for (let attempt = 0; attempt < maxRetries; attempt++) {
|
|
490
|
+
try {
|
|
491
|
+
const res = await axios_1.default.post(templateJSON.response_url, presentation);
|
|
492
|
+
return res.data;
|
|
493
|
+
}
|
|
494
|
+
catch (err) {
|
|
495
|
+
const httpStatus = err?.response?.status;
|
|
496
|
+
const isRetryable = !httpStatus || httpStatus === 429 || httpStatus >= 500;
|
|
497
|
+
if (!isRetryable || attempt === maxRetries - 1) {
|
|
498
|
+
throw err;
|
|
499
|
+
}
|
|
500
|
+
const delay = Math.min(1000 * 2 ** attempt, 8000);
|
|
501
|
+
await new Promise(resolve => setTimeout(resolve, delay));
|
|
502
|
+
}
|
|
503
|
+
}
|
|
208
504
|
}
|
|
209
505
|
return {
|
|
210
506
|
emitter,
|
|
@@ -220,8 +516,16 @@ function createVerificationController({ wallet, credentialProvider, didProvider,
|
|
|
220
516
|
isBBSPlusCredential,
|
|
221
517
|
loadCredentials,
|
|
222
518
|
getFilteredCredentials,
|
|
519
|
+
createDefaultPresentation,
|
|
223
520
|
createPresentation,
|
|
224
521
|
evaluatePresentation,
|
|
522
|
+
getRequirementGroups,
|
|
523
|
+
getSelectedCredentialsByDescriptor,
|
|
524
|
+
getCredentialOptionsForDescriptor,
|
|
525
|
+
switchCredential,
|
|
526
|
+
getRequestedAttributes,
|
|
527
|
+
getCredentialStatus,
|
|
528
|
+
canSwitchCredential,
|
|
225
529
|
getTemplateJSON() {
|
|
226
530
|
return templateJSON;
|
|
227
531
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verification-controller.js","sourceRoot":"","sources":["../src/verification-controller.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"verification-controller.js","sourceRoot":"","sources":["../src/verification-controller.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@docknetwork/wallet-sdk-core",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.9.0",
|
|
4
4
|
"license": "https://github.com/docknetwork/wallet-sdk/LICENSE",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -22,13 +22,13 @@
|
|
|
22
22
|
"typeorm": "^0.3.15"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@docknetwork/wallet-sdk-wasm": "
|
|
25
|
+
"@docknetwork/wallet-sdk-wasm": "1.9.0",
|
|
26
26
|
"futoin-hkdf": "^1.5.3"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@babel/parser": "^7.28.4",
|
|
30
30
|
"@babel/preset-typescript": "^7.27.1",
|
|
31
|
-
"@docknetwork/wallet-sdk-data-store": "
|
|
31
|
+
"@docknetwork/wallet-sdk-data-store": "1.9.0",
|
|
32
32
|
"better-docs": "^2.7.3",
|
|
33
33
|
"jest": "29.1.0",
|
|
34
34
|
"jsdoc": "^4.0.2",
|