@0xpolygonid/js-sdk 1.9.3 → 1.9.4
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/dist/browser/esm/index.js +18 -10
- package/dist/browser/esm/index.js.map +1 -1
- package/dist/browser/umd/index.js +19 -9
- package/dist/browser/umd/index.js.map +1 -1
- package/dist/node/cjs/proof/verifiers/pub-signals-verifier.js +4 -1
- package/dist/node/cjs/proof/verifiers/query.js +16 -9
- package/dist/node/esm/proof/verifiers/pub-signals-verifier.js +5 -2
- package/dist/node/esm/proof/verifiers/query.js +14 -9
- package/dist/types/proof/verifiers/query.d.ts +2 -0
- package/package.json +4 -3
|
@@ -132,8 +132,10 @@ class PubSignalsVerifier {
|
|
|
132
132
|
const queriesMetadata = await (0, common_2.parseQueriesMetadata)(query.type, JSON.stringify(context), query.credentialSubject, {
|
|
133
133
|
documentLoader: loader
|
|
134
134
|
});
|
|
135
|
-
|
|
135
|
+
const circuitId = models_1.CircuitId.AtomicQueryV3;
|
|
136
|
+
await (0, query_1.checkQueryRequest)(query, queriesMetadata, context, outs, circuitId, this._documentLoader, opts);
|
|
136
137
|
const queryMetadata = queriesMetadata[0]; // only one query is supported
|
|
138
|
+
(0, query_1.checkCircuitOperator)(circuitId, outs.operator);
|
|
137
139
|
// validate selective disclosure
|
|
138
140
|
if (queryMetadata.operator === circuits_1.Operators.SD) {
|
|
139
141
|
try {
|
|
@@ -353,6 +355,7 @@ class PubSignalsVerifier {
|
|
|
353
355
|
});
|
|
354
356
|
await (0, query_1.checkQueryRequest)(query, queriesMetadata, context, outs, circuitId, this._documentLoader, opts);
|
|
355
357
|
const queryMetadata = queriesMetadata[0]; // only one query is supported
|
|
358
|
+
(0, query_1.checkCircuitOperator)(circuitId, outs.operator);
|
|
356
359
|
// validate selective disclosure
|
|
357
360
|
if (queryMetadata.operator === circuits_1.Operators.SD) {
|
|
358
361
|
try {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.fieldValueFromVerifiablePresentation = exports.validateEmptyCredentialSubjectNoopNativeSupport = exports.validateDisclosureNativeSDSupport = exports.validateDisclosureV2Circuit = exports.validateOperators = exports.validateEmptyCredentialSubjectV2Circuit = exports.verifyFieldValueInclusionNativeExistsSupport = exports.verifyFieldValueInclusionV2 = exports.checkQueryRequest = void 0;
|
|
3
|
+
exports.fieldValueFromVerifiablePresentation = exports.validateEmptyCredentialSubjectNoopNativeSupport = exports.validateDisclosureNativeSDSupport = exports.validateDisclosureV2Circuit = exports.validateOperators = exports.validateEmptyCredentialSubjectV2Circuit = exports.verifyFieldValueInclusionNativeExistsSupport = exports.verifyFieldValueInclusionV2 = exports.checkCircuitOperator = exports.checkCircuitQueriesLength = exports.checkQueryRequest = void 0;
|
|
4
4
|
const js_iden3_core_1 = require("@iden3/js-iden3-core");
|
|
5
5
|
const js_jsonld_merklization_1 = require("@iden3/js-jsonld-merklization");
|
|
6
6
|
const utils_1 = require("../../utils");
|
|
@@ -29,14 +29,7 @@ async function checkQueryRequest(query, queriesMetadata, ldContext, outputs, cir
|
|
|
29
29
|
if (!query.skipClaimRevocationCheck && outputs.isRevocationChecked === 0) {
|
|
30
30
|
throw new Error(`check revocation is required`);
|
|
31
31
|
}
|
|
32
|
-
|
|
33
|
-
if (queriesMetadata.length > circuitValidationData.maxQueriesCount) {
|
|
34
|
-
throw new Error(`circuit ${circuitId} supports only ${provers_1.circuitValidator[circuitId].maxQueriesCount} queries`);
|
|
35
|
-
}
|
|
36
|
-
const notSupportedOpIndx = queriesMetadata.findIndex((i) => !circuitValidationData.supportedOperations.includes(i.operator));
|
|
37
|
-
if (notSupportedOpIndx > -1) {
|
|
38
|
-
throw new Error(`circuit ${circuitId} not support ${queriesMetadata[notSupportedOpIndx].operator} operator`);
|
|
39
|
-
}
|
|
32
|
+
checkCircuitQueriesLength(circuitId, queriesMetadata);
|
|
40
33
|
// verify timestamp
|
|
41
34
|
let acceptedProofGenerationDelay = defaultProofGenerationDelayOpts;
|
|
42
35
|
if (opts?.acceptedProofGenerationDelay) {
|
|
@@ -49,6 +42,20 @@ async function checkQueryRequest(query, queriesMetadata, ldContext, outputs, cir
|
|
|
49
42
|
return;
|
|
50
43
|
}
|
|
51
44
|
exports.checkQueryRequest = checkQueryRequest;
|
|
45
|
+
function checkCircuitQueriesLength(circuitId, queriesMetadata) {
|
|
46
|
+
const circuitValidationData = provers_1.circuitValidator[circuitId];
|
|
47
|
+
if (queriesMetadata.length > circuitValidationData.maxQueriesCount) {
|
|
48
|
+
throw new Error(`circuit ${circuitId} supports only ${provers_1.circuitValidator[circuitId].maxQueriesCount} queries`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.checkCircuitQueriesLength = checkCircuitQueriesLength;
|
|
52
|
+
function checkCircuitOperator(circuitId, operator) {
|
|
53
|
+
const circuitValidationData = provers_1.circuitValidator[circuitId];
|
|
54
|
+
if (!circuitValidationData.supportedOperations.includes(operator)) {
|
|
55
|
+
throw new Error(`circuit ${circuitId} not support ${(0, comparer_1.getOperatorNameByValue)(operator)} operator`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.checkCircuitOperator = checkCircuitOperator;
|
|
52
59
|
function verifyFieldValueInclusionV2(outputs, metadata) {
|
|
53
60
|
if (outputs.operator == comparer_1.QueryOperators.$noop) {
|
|
54
61
|
return;
|
|
@@ -9,7 +9,7 @@ import { AuthV2PubSignals } from '../../circuits/auth-v2';
|
|
|
9
9
|
import { BaseConfig } from '../../circuits/common';
|
|
10
10
|
import { LinkedMultiQueryPubSignals, LinkedMultiQueryInputs } from '../../circuits/linked-multi-query';
|
|
11
11
|
import { CircuitId } from '../../circuits/models';
|
|
12
|
-
import { checkQueryRequest, fieldValueFromVerifiablePresentation, validateDisclosureV2Circuit, validateEmptyCredentialSubjectV2Circuit, validateOperators, verifyFieldValueInclusionV2, validateDisclosureNativeSDSupport, validateEmptyCredentialSubjectNoopNativeSupport, verifyFieldValueInclusionNativeExistsSupport } from './query';
|
|
12
|
+
import { checkQueryRequest, fieldValueFromVerifiablePresentation, validateDisclosureV2Circuit, validateEmptyCredentialSubjectV2Circuit, validateOperators, verifyFieldValueInclusionV2, validateDisclosureNativeSDSupport, validateEmptyCredentialSubjectNoopNativeSupport, verifyFieldValueInclusionNativeExistsSupport, checkCircuitOperator } from './query';
|
|
13
13
|
import { parseQueriesMetadata } from '../common';
|
|
14
14
|
import { Operators } from '../../circuits';
|
|
15
15
|
import { calculateQueryHashV3 } from './query-hash';
|
|
@@ -129,8 +129,10 @@ export class PubSignalsVerifier {
|
|
|
129
129
|
const queriesMetadata = await parseQueriesMetadata(query.type, JSON.stringify(context), query.credentialSubject, {
|
|
130
130
|
documentLoader: loader
|
|
131
131
|
});
|
|
132
|
-
|
|
132
|
+
const circuitId = CircuitId.AtomicQueryV3;
|
|
133
|
+
await checkQueryRequest(query, queriesMetadata, context, outs, circuitId, this._documentLoader, opts);
|
|
133
134
|
const queryMetadata = queriesMetadata[0]; // only one query is supported
|
|
135
|
+
checkCircuitOperator(circuitId, outs.operator);
|
|
134
136
|
// validate selective disclosure
|
|
135
137
|
if (queryMetadata.operator === Operators.SD) {
|
|
136
138
|
try {
|
|
@@ -350,6 +352,7 @@ export class PubSignalsVerifier {
|
|
|
350
352
|
});
|
|
351
353
|
await checkQueryRequest(query, queriesMetadata, context, outs, circuitId, this._documentLoader, opts);
|
|
352
354
|
const queryMetadata = queriesMetadata[0]; // only one query is supported
|
|
355
|
+
checkCircuitOperator(circuitId, outs.operator);
|
|
353
356
|
// validate selective disclosure
|
|
354
357
|
if (queryMetadata.operator === Operators.SD) {
|
|
355
358
|
try {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DID, getDateFromUnixTimestamp } from '@iden3/js-iden3-core';
|
|
2
2
|
import { Merklizer, Path } from '@iden3/js-jsonld-merklization';
|
|
3
3
|
import { byteEncoder } from '../../utils';
|
|
4
|
-
import { Operators, QueryOperators } from '../../circuits/comparer';
|
|
4
|
+
import { getOperatorNameByValue, Operators, QueryOperators } from '../../circuits/comparer';
|
|
5
5
|
import { calculateCoreSchemaHash, VerifiableConstants } from '../../verifiable';
|
|
6
6
|
import { circuitValidator } from '../provers';
|
|
7
7
|
const defaultProofGenerationDelayOpts = 24 * 60 * 60 * 1000; // 24 hours
|
|
@@ -26,14 +26,7 @@ export async function checkQueryRequest(query, queriesMetadata, ldContext, outpu
|
|
|
26
26
|
if (!query.skipClaimRevocationCheck && outputs.isRevocationChecked === 0) {
|
|
27
27
|
throw new Error(`check revocation is required`);
|
|
28
28
|
}
|
|
29
|
-
|
|
30
|
-
if (queriesMetadata.length > circuitValidationData.maxQueriesCount) {
|
|
31
|
-
throw new Error(`circuit ${circuitId} supports only ${circuitValidator[circuitId].maxQueriesCount} queries`);
|
|
32
|
-
}
|
|
33
|
-
const notSupportedOpIndx = queriesMetadata.findIndex((i) => !circuitValidationData.supportedOperations.includes(i.operator));
|
|
34
|
-
if (notSupportedOpIndx > -1) {
|
|
35
|
-
throw new Error(`circuit ${circuitId} not support ${queriesMetadata[notSupportedOpIndx].operator} operator`);
|
|
36
|
-
}
|
|
29
|
+
checkCircuitQueriesLength(circuitId, queriesMetadata);
|
|
37
30
|
// verify timestamp
|
|
38
31
|
let acceptedProofGenerationDelay = defaultProofGenerationDelayOpts;
|
|
39
32
|
if (opts?.acceptedProofGenerationDelay) {
|
|
@@ -45,6 +38,18 @@ export async function checkQueryRequest(query, queriesMetadata, ldContext, outpu
|
|
|
45
38
|
}
|
|
46
39
|
return;
|
|
47
40
|
}
|
|
41
|
+
export function checkCircuitQueriesLength(circuitId, queriesMetadata) {
|
|
42
|
+
const circuitValidationData = circuitValidator[circuitId];
|
|
43
|
+
if (queriesMetadata.length > circuitValidationData.maxQueriesCount) {
|
|
44
|
+
throw new Error(`circuit ${circuitId} supports only ${circuitValidator[circuitId].maxQueriesCount} queries`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
export function checkCircuitOperator(circuitId, operator) {
|
|
48
|
+
const circuitValidationData = circuitValidator[circuitId];
|
|
49
|
+
if (!circuitValidationData.supportedOperations.includes(operator)) {
|
|
50
|
+
throw new Error(`circuit ${circuitId} not support ${getOperatorNameByValue(operator)} operator`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
48
53
|
export function verifyFieldValueInclusionV2(outputs, metadata) {
|
|
49
54
|
if (outputs.operator == QueryOperators.$noop) {
|
|
50
55
|
return;
|
|
@@ -26,6 +26,8 @@ export interface ClaimOutputs {
|
|
|
26
26
|
isRevocationChecked: number;
|
|
27
27
|
}
|
|
28
28
|
export declare function checkQueryRequest(query: ProofQuery, queriesMetadata: QueryMetadata[], ldContext: JsonLd, outputs: ClaimOutputs, circuitId: CircuitId, schemaLoader?: DocumentLoader, opts?: VerifyOpts): Promise<void>;
|
|
29
|
+
export declare function checkCircuitQueriesLength(circuitId: CircuitId, queriesMetadata: QueryMetadata[]): void;
|
|
30
|
+
export declare function checkCircuitOperator(circuitId: CircuitId, operator: number): void;
|
|
29
31
|
export declare function verifyFieldValueInclusionV2(outputs: ClaimOutputs, metadata: QueryMetadata): void;
|
|
30
32
|
export declare function verifyFieldValueInclusionNativeExistsSupport(outputs: ClaimOutputs, metadata: QueryMetadata): void;
|
|
31
33
|
export declare function validateEmptyCredentialSubjectV2Circuit(cq: QueryMetadata, outputs: ClaimOutputs): Promise<void>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@0xpolygonid/js-sdk",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.4",
|
|
4
4
|
"description": "SDK to work with Polygon ID",
|
|
5
5
|
"main": "dist/node/cjs/index.js",
|
|
6
6
|
"module": "dist/node/esm/index.js",
|
|
@@ -11,10 +11,11 @@
|
|
|
11
11
|
"require": "./dist/node/cjs/index.js"
|
|
12
12
|
},
|
|
13
13
|
"browser": "./dist/browser/esm/index.js",
|
|
14
|
-
"umd": "./dist/browser/umd/index.js"
|
|
14
|
+
"umd": "./dist/browser/umd/index.js",
|
|
15
|
+
"types": "./dist/types/index.d.ts"
|
|
15
16
|
}
|
|
16
17
|
},
|
|
17
|
-
"
|
|
18
|
+
"types": "dist/types/index.d.ts",
|
|
18
19
|
"source": "./src/index.ts",
|
|
19
20
|
"files": [
|
|
20
21
|
"dist"
|