@0xpolygonid/js-sdk 1.7.4 → 1.7.5
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 +37 -96
- package/dist/browser/esm/index.js.map +1 -1
- package/dist/browser/umd/index.js +36 -97
- package/dist/browser/umd/index.js.map +1 -1
- package/dist/node/cjs/circuits/atomic-query-v3.js +18 -13
- package/dist/node/cjs/circuits/index.js +0 -1
- package/dist/node/cjs/circuits/linked-multi-query.js +16 -6
- package/dist/node/cjs/circuits/models.js +0 -5
- package/dist/node/cjs/proof/inputs-generator.js +2 -18
- package/dist/node/cjs/storage/filters/jsonQuery.js +2 -2
- package/dist/node/esm/circuits/atomic-query-v3.js +18 -13
- package/dist/node/esm/circuits/index.js +0 -1
- package/dist/node/esm/circuits/linked-multi-query.js +16 -6
- package/dist/node/esm/circuits/models.js +0 -5
- package/dist/node/esm/proof/inputs-generator.js +3 -19
- package/dist/node/esm/storage/filters/jsonQuery.js +2 -2
- package/dist/types/circuits/index.d.ts +0 -1
- package/dist/types/circuits/linked-multi-query.d.ts +3 -3
- package/dist/types/circuits/models.d.ts +0 -4
- package/dist/types/proof/inputs-generator.d.ts +1 -2
- package/package.json +1 -1
- package/dist/node/cjs/circuits/linked-nullifier.js +0 -57
- package/dist/node/esm/circuits/linked-nullifier.js +0 -52
- package/dist/types/circuits/linked-nullifier.d.ts +0 -37
|
@@ -114,23 +114,28 @@ class AtomicQueryV3Inputs extends common_1.BaseConfig {
|
|
|
114
114
|
s.isRevocationChecked = 0;
|
|
115
115
|
}
|
|
116
116
|
if (this.proofType === verifiable_1.ProofType.BJJSignature) {
|
|
117
|
+
const sigProof = this.claim.signatureProof;
|
|
117
118
|
s.proofType = '1';
|
|
118
|
-
s.issuerClaimSignatureR8x =
|
|
119
|
-
s.issuerClaimSignatureR8y =
|
|
120
|
-
s.issuerClaimSignatureS =
|
|
121
|
-
s.issuerAuthClaim =
|
|
122
|
-
s.issuerAuthClaimMtp = (0, common_1.prepareSiblingsStr)(
|
|
123
|
-
s.issuerAuthClaimsTreeRoot = treeState
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
s.
|
|
127
|
-
|
|
119
|
+
s.issuerClaimSignatureR8x = sigProof.signature.R8[0].toString();
|
|
120
|
+
s.issuerClaimSignatureR8y = sigProof.signature.R8[1].toString();
|
|
121
|
+
s.issuerClaimSignatureS = sigProof.signature.S.toString();
|
|
122
|
+
s.issuerAuthClaim = sigProof.issuerAuthClaim?.marshalJson();
|
|
123
|
+
s.issuerAuthClaimMtp = (0, common_1.prepareSiblingsStr)(sigProof.issuerAuthIncProof.proof, this.getMTLevel());
|
|
124
|
+
s.issuerAuthClaimsTreeRoot = sigProof.issuerAuthIncProof.treeState?.claimsRoot
|
|
125
|
+
.bigInt()
|
|
126
|
+
.toString();
|
|
127
|
+
s.issuerAuthRevTreeRoot = sigProof.issuerAuthIncProof.treeState?.revocationRoot
|
|
128
|
+
.bigInt()
|
|
129
|
+
.toString();
|
|
130
|
+
s.issuerAuthRootsTreeRoot = sigProof.issuerAuthIncProof.treeState?.rootOfRoots
|
|
131
|
+
.bigInt()
|
|
132
|
+
.toString();
|
|
133
|
+
s.issuerAuthClaimNonRevMtp = (0, common_1.prepareSiblingsStr)(sigProof.issuerAuthNonRevProof.proof, this.getMTLevel());
|
|
134
|
+
const nodeAuxIssuerAuthNonRev = (0, common_1.getNodeAuxValue)(sigProof.issuerAuthNonRevProof.proof);
|
|
128
135
|
s.issuerAuthClaimNonRevMtpAuxHi = nodeAuxIssuerAuthNonRev.key.bigInt().toString();
|
|
129
136
|
s.issuerAuthClaimNonRevMtpAuxHv = nodeAuxIssuerAuthNonRev.value.bigInt().toString();
|
|
130
137
|
s.issuerAuthClaimNonRevMtpNoAux = nodeAuxIssuerAuthNonRev.noAux;
|
|
131
|
-
s.issuerAuthState =
|
|
132
|
-
.bigInt()
|
|
133
|
-
.toString();
|
|
138
|
+
s.issuerAuthState = sigProof.issuerAuthIncProof.treeState?.state.bigInt().toString();
|
|
134
139
|
this.fillMTPProofsWithZero(s);
|
|
135
140
|
}
|
|
136
141
|
else if (this.proofType === verifiable_1.ProofType.Iden3SparseMerkleTreeProof) {
|
|
@@ -25,5 +25,4 @@ __exportStar(require("./atomic-query-v3-on-chain"), exports);
|
|
|
25
25
|
__exportStar(require("./atomic-query-sig-v2-on-chain"), exports);
|
|
26
26
|
__exportStar(require("./auth-v2"), exports);
|
|
27
27
|
__exportStar(require("./state-transition"), exports);
|
|
28
|
-
__exportStar(require("./linked-nullifier"), exports);
|
|
29
28
|
__exportStar(require("./linked-multi-query"), exports);
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.LinkedMultiQueryPubSignals = exports.LinkedMultiQueryInputs = void 0;
|
|
4
|
+
const js_merkletree_1 = require("@iden3/js-merkletree");
|
|
4
5
|
const utils_1 = require("../utils");
|
|
5
6
|
const common_1 = require("./common");
|
|
7
|
+
const models_1 = require("./models");
|
|
6
8
|
/**
|
|
7
9
|
* LinkedMultiQuery circuit representation
|
|
8
10
|
* Inputs and public signals declaration, marshalling and parsing
|
|
@@ -24,7 +26,7 @@ class LinkedMultiQueryInputs extends common_1.BaseConfig {
|
|
|
24
26
|
const slotIndex = [];
|
|
25
27
|
const operator = [];
|
|
26
28
|
const value = [];
|
|
27
|
-
for (let i = 0; i <
|
|
29
|
+
for (let i = 0; i < LinkedMultiQueryInputs.queryCount; i++) {
|
|
28
30
|
if (!this.query[i]) {
|
|
29
31
|
enabled.push(0);
|
|
30
32
|
claimPathNotExists.push(0);
|
|
@@ -41,7 +43,13 @@ class LinkedMultiQueryInputs extends common_1.BaseConfig {
|
|
|
41
43
|
continue;
|
|
42
44
|
}
|
|
43
45
|
enabled.push(1);
|
|
44
|
-
|
|
46
|
+
let valueProof = this.query[i].valueProof;
|
|
47
|
+
if (!valueProof) {
|
|
48
|
+
valueProof = new models_1.ValueProof();
|
|
49
|
+
valueProof.path = 0n;
|
|
50
|
+
valueProof.value = 0n;
|
|
51
|
+
valueProof.mtp = new js_merkletree_1.Proof();
|
|
52
|
+
}
|
|
45
53
|
claimPathNotExists.push((0, common_1.existenceToInt)(valueProof.mtp.existence));
|
|
46
54
|
claimPathMtp.push((0, common_1.prepareSiblingsStr)(valueProof.mtp, this.getMTLevelsClaim()));
|
|
47
55
|
const nodAuxJSONLD = (0, common_1.getNodeAuxValue)(valueProof.mtp);
|
|
@@ -75,7 +83,8 @@ class LinkedMultiQueryInputs extends common_1.BaseConfig {
|
|
|
75
83
|
}
|
|
76
84
|
}
|
|
77
85
|
exports.LinkedMultiQueryInputs = LinkedMultiQueryInputs;
|
|
78
|
-
|
|
86
|
+
LinkedMultiQueryInputs.queryCount = 10;
|
|
87
|
+
// LinkedMultiQueryPubSignals linkedMultiQuery10.circom public signals
|
|
79
88
|
/**
|
|
80
89
|
* public signals
|
|
81
90
|
*
|
|
@@ -84,14 +93,15 @@ exports.LinkedMultiQueryInputs = LinkedMultiQueryInputs;
|
|
|
84
93
|
*/
|
|
85
94
|
class LinkedMultiQueryPubSignals {
|
|
86
95
|
/**
|
|
87
|
-
* PubSignalsUnmarshal unmarshal
|
|
96
|
+
* PubSignalsUnmarshal unmarshal linkedMultiQuery10.circom public inputs to LinkedMultiQueryPubSignals
|
|
88
97
|
*
|
|
89
98
|
* @beta
|
|
90
99
|
* @param {Uint8Array} data
|
|
91
100
|
* @returns LinkedMultiQueryPubSignals
|
|
92
101
|
*/
|
|
93
|
-
pubSignalsUnmarshal(data
|
|
94
|
-
const len =
|
|
102
|
+
pubSignalsUnmarshal(data) {
|
|
103
|
+
const len = 32;
|
|
104
|
+
const queryLength = LinkedMultiQueryInputs.queryCount;
|
|
95
105
|
const sVals = JSON.parse(utils_1.byteDecoder.decode(data));
|
|
96
106
|
if (sVals.length !== len) {
|
|
97
107
|
throw new Error(`invalid number of Output values expected ${len} got ${sVals.length}`);
|
|
@@ -51,11 +51,6 @@ var CircuitId;
|
|
|
51
51
|
*/
|
|
52
52
|
// AtomicQueryV3OnChainCircuitID is a type for credentialAtomicQueryV3OnChain.circom
|
|
53
53
|
CircuitId["AtomicQueryV3OnChain"] = "credentialAtomicQueryV3OnChain-beta.0";
|
|
54
|
-
/**
|
|
55
|
-
* @beta
|
|
56
|
-
*/
|
|
57
|
-
// LinkedNullifier is a type for linkedNullifier.circom
|
|
58
|
-
CircuitId["LinkedNullifier"] = "linkedNullifier-beta.0";
|
|
59
54
|
/**
|
|
60
55
|
* @beta
|
|
61
56
|
*/
|
|
@@ -15,8 +15,7 @@ const circuitValidator = {
|
|
|
15
15
|
[circuits_1.CircuitId.AtomicQueryV3OnChain]: { maxQueriesCount: 1 },
|
|
16
16
|
[circuits_1.CircuitId.AuthV2]: { maxQueriesCount: 0 },
|
|
17
17
|
[circuits_1.CircuitId.StateTransition]: { maxQueriesCount: 0 },
|
|
18
|
-
[circuits_1.CircuitId.
|
|
19
|
-
[circuits_1.CircuitId.LinkedMultiQuery10]: { maxQueriesCount: 10 }
|
|
18
|
+
[circuits_1.CircuitId.LinkedMultiQuery10]: { maxQueriesCount: circuits_1.LinkedMultiQueryInputs.queryCount }
|
|
20
19
|
};
|
|
21
20
|
class InputGenerator {
|
|
22
21
|
constructor(_identityWallet, _credentialWallet, _stateStorage) {
|
|
@@ -284,28 +283,13 @@ class InputGenerator {
|
|
|
284
283
|
}
|
|
285
284
|
return circuitInputs.inputsMarshal();
|
|
286
285
|
};
|
|
287
|
-
this.
|
|
288
|
-
const circuitClaimData = await this.newCircuitClaimData(preparedCredential);
|
|
289
|
-
circuitClaimData.nonRevProof = (0, common_1.toClaimNonRevStatus)(preparedCredential.revStatus);
|
|
290
|
-
const circuitInputs = new circuits_1.LinkedNullifierInputs();
|
|
291
|
-
circuitInputs.linkNonce = params.linkNonce ?? BigInt(0);
|
|
292
|
-
circuitInputs.issuerClaim = circuitClaimData.claim;
|
|
293
|
-
circuitInputs.id = js_iden3_core_1.DID.idFromDID(identifier);
|
|
294
|
-
circuitInputs.claimSubjectProfileNonce = BigInt(params.credentialSubjectProfileNonce);
|
|
295
|
-
circuitInputs.verifierID = params.verifierDid ? js_iden3_core_1.DID.idFromDID(params.verifierDid) : undefined;
|
|
296
|
-
circuitInputs.nullifierSessionID = proofReq.params?.nullifierSessionID
|
|
297
|
-
? BigInt(proofReq.params?.nullifierSessionID?.toString())
|
|
298
|
-
: BigInt(0);
|
|
299
|
-
return circuitInputs.inputsMarshal();
|
|
300
|
-
};
|
|
301
|
-
this.linkedMultiQuery10PrepareInputs = async ({ preparedCredential, proofReq, params, circuitQueries }) => {
|
|
286
|
+
this.linkedMultiQuery10PrepareInputs = async ({ preparedCredential, params, circuitQueries }) => {
|
|
302
287
|
const circuitClaimData = await this.newCircuitClaimData(preparedCredential);
|
|
303
288
|
circuitClaimData.nonRevProof = (0, common_1.toClaimNonRevStatus)(preparedCredential.revStatus);
|
|
304
289
|
const circuitInputs = new circuits_1.LinkedMultiQueryInputs();
|
|
305
290
|
circuitInputs.linkNonce = params.linkNonce ?? BigInt(0);
|
|
306
291
|
circuitInputs.claim = circuitClaimData.claim;
|
|
307
292
|
circuitInputs.query = circuitQueries;
|
|
308
|
-
circuitInputs.queryLength = circuitValidator[proofReq.circuitId].maxQueriesCount;
|
|
309
293
|
return circuitInputs.inputsMarshal();
|
|
310
294
|
};
|
|
311
295
|
}
|
|
@@ -163,8 +163,8 @@ const StandardJSONCredentialsQueryFilter = (query) => {
|
|
|
163
163
|
case 'claimId':
|
|
164
164
|
return acc.concat(new FilterQuery('id', exports.comparatorOptions.$eq, queryValue));
|
|
165
165
|
case 'allowedIssuers': {
|
|
166
|
-
const
|
|
167
|
-
if (
|
|
166
|
+
const queryValueParam = queryValue || ['*'];
|
|
167
|
+
if (queryValueParam.includes('*')) {
|
|
168
168
|
return acc;
|
|
169
169
|
}
|
|
170
170
|
return acc.concat(new FilterQuery('issuer', exports.comparatorOptions.$in, queryValue));
|
|
@@ -111,23 +111,28 @@ export class AtomicQueryV3Inputs extends BaseConfig {
|
|
|
111
111
|
s.isRevocationChecked = 0;
|
|
112
112
|
}
|
|
113
113
|
if (this.proofType === ProofType.BJJSignature) {
|
|
114
|
+
const sigProof = this.claim.signatureProof;
|
|
114
115
|
s.proofType = '1';
|
|
115
|
-
s.issuerClaimSignatureR8x =
|
|
116
|
-
s.issuerClaimSignatureR8y =
|
|
117
|
-
s.issuerClaimSignatureS =
|
|
118
|
-
s.issuerAuthClaim =
|
|
119
|
-
s.issuerAuthClaimMtp = prepareSiblingsStr(
|
|
120
|
-
s.issuerAuthClaimsTreeRoot = treeState
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
s.
|
|
124
|
-
|
|
116
|
+
s.issuerClaimSignatureR8x = sigProof.signature.R8[0].toString();
|
|
117
|
+
s.issuerClaimSignatureR8y = sigProof.signature.R8[1].toString();
|
|
118
|
+
s.issuerClaimSignatureS = sigProof.signature.S.toString();
|
|
119
|
+
s.issuerAuthClaim = sigProof.issuerAuthClaim?.marshalJson();
|
|
120
|
+
s.issuerAuthClaimMtp = prepareSiblingsStr(sigProof.issuerAuthIncProof.proof, this.getMTLevel());
|
|
121
|
+
s.issuerAuthClaimsTreeRoot = sigProof.issuerAuthIncProof.treeState?.claimsRoot
|
|
122
|
+
.bigInt()
|
|
123
|
+
.toString();
|
|
124
|
+
s.issuerAuthRevTreeRoot = sigProof.issuerAuthIncProof.treeState?.revocationRoot
|
|
125
|
+
.bigInt()
|
|
126
|
+
.toString();
|
|
127
|
+
s.issuerAuthRootsTreeRoot = sigProof.issuerAuthIncProof.treeState?.rootOfRoots
|
|
128
|
+
.bigInt()
|
|
129
|
+
.toString();
|
|
130
|
+
s.issuerAuthClaimNonRevMtp = prepareSiblingsStr(sigProof.issuerAuthNonRevProof.proof, this.getMTLevel());
|
|
131
|
+
const nodeAuxIssuerAuthNonRev = getNodeAuxValue(sigProof.issuerAuthNonRevProof.proof);
|
|
125
132
|
s.issuerAuthClaimNonRevMtpAuxHi = nodeAuxIssuerAuthNonRev.key.bigInt().toString();
|
|
126
133
|
s.issuerAuthClaimNonRevMtpAuxHv = nodeAuxIssuerAuthNonRev.value.bigInt().toString();
|
|
127
134
|
s.issuerAuthClaimNonRevMtpNoAux = nodeAuxIssuerAuthNonRev.noAux;
|
|
128
|
-
s.issuerAuthState =
|
|
129
|
-
.bigInt()
|
|
130
|
-
.toString();
|
|
135
|
+
s.issuerAuthState = sigProof.issuerAuthIncProof.treeState?.state.bigInt().toString();
|
|
131
136
|
this.fillMTPProofsWithZero(s);
|
|
132
137
|
}
|
|
133
138
|
else if (this.proofType === ProofType.Iden3SparseMerkleTreeProof) {
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { Proof } from '@iden3/js-merkletree';
|
|
1
2
|
import { byteDecoder, byteEncoder } from '../utils';
|
|
2
3
|
import { BaseConfig, bigIntArrayToStringArray, existenceToInt, getNodeAuxValue, prepareCircuitArrayValues, prepareSiblingsStr } from './common';
|
|
4
|
+
import { ValueProof } from './models';
|
|
3
5
|
/**
|
|
4
6
|
* LinkedMultiQuery circuit representation
|
|
5
7
|
* Inputs and public signals declaration, marshalling and parsing
|
|
@@ -21,7 +23,7 @@ export class LinkedMultiQueryInputs extends BaseConfig {
|
|
|
21
23
|
const slotIndex = [];
|
|
22
24
|
const operator = [];
|
|
23
25
|
const value = [];
|
|
24
|
-
for (let i = 0; i <
|
|
26
|
+
for (let i = 0; i < LinkedMultiQueryInputs.queryCount; i++) {
|
|
25
27
|
if (!this.query[i]) {
|
|
26
28
|
enabled.push(0);
|
|
27
29
|
claimPathNotExists.push(0);
|
|
@@ -38,7 +40,13 @@ export class LinkedMultiQueryInputs extends BaseConfig {
|
|
|
38
40
|
continue;
|
|
39
41
|
}
|
|
40
42
|
enabled.push(1);
|
|
41
|
-
|
|
43
|
+
let valueProof = this.query[i].valueProof;
|
|
44
|
+
if (!valueProof) {
|
|
45
|
+
valueProof = new ValueProof();
|
|
46
|
+
valueProof.path = 0n;
|
|
47
|
+
valueProof.value = 0n;
|
|
48
|
+
valueProof.mtp = new Proof();
|
|
49
|
+
}
|
|
42
50
|
claimPathNotExists.push(existenceToInt(valueProof.mtp.existence));
|
|
43
51
|
claimPathMtp.push(prepareSiblingsStr(valueProof.mtp, this.getMTLevelsClaim()));
|
|
44
52
|
const nodAuxJSONLD = getNodeAuxValue(valueProof.mtp);
|
|
@@ -71,7 +79,8 @@ export class LinkedMultiQueryInputs extends BaseConfig {
|
|
|
71
79
|
return byteEncoder.encode(JSON.stringify(s));
|
|
72
80
|
}
|
|
73
81
|
}
|
|
74
|
-
|
|
82
|
+
LinkedMultiQueryInputs.queryCount = 10;
|
|
83
|
+
// LinkedMultiQueryPubSignals linkedMultiQuery10.circom public signals
|
|
75
84
|
/**
|
|
76
85
|
* public signals
|
|
77
86
|
*
|
|
@@ -80,14 +89,15 @@ export class LinkedMultiQueryInputs extends BaseConfig {
|
|
|
80
89
|
*/
|
|
81
90
|
export class LinkedMultiQueryPubSignals {
|
|
82
91
|
/**
|
|
83
|
-
* PubSignalsUnmarshal unmarshal
|
|
92
|
+
* PubSignalsUnmarshal unmarshal linkedMultiQuery10.circom public inputs to LinkedMultiQueryPubSignals
|
|
84
93
|
*
|
|
85
94
|
* @beta
|
|
86
95
|
* @param {Uint8Array} data
|
|
87
96
|
* @returns LinkedMultiQueryPubSignals
|
|
88
97
|
*/
|
|
89
|
-
pubSignalsUnmarshal(data
|
|
90
|
-
const len =
|
|
98
|
+
pubSignalsUnmarshal(data) {
|
|
99
|
+
const len = 32;
|
|
100
|
+
const queryLength = LinkedMultiQueryInputs.queryCount;
|
|
91
101
|
const sVals = JSON.parse(byteDecoder.decode(data));
|
|
92
102
|
if (sVals.length !== len) {
|
|
93
103
|
throw new Error(`invalid number of Output values expected ${len} got ${sVals.length}`);
|
|
@@ -47,11 +47,6 @@ export var CircuitId;
|
|
|
47
47
|
*/
|
|
48
48
|
// AtomicQueryV3OnChainCircuitID is a type for credentialAtomicQueryV3OnChain.circom
|
|
49
49
|
CircuitId["AtomicQueryV3OnChain"] = "credentialAtomicQueryV3OnChain-beta.0";
|
|
50
|
-
/**
|
|
51
|
-
* @beta
|
|
52
|
-
*/
|
|
53
|
-
// LinkedNullifier is a type for linkedNullifier.circom
|
|
54
|
-
CircuitId["LinkedNullifier"] = "linkedNullifier-beta.0";
|
|
55
50
|
/**
|
|
56
51
|
* @beta
|
|
57
52
|
*/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DID, Id, getUnixTimestamp } from '@iden3/js-iden3-core';
|
|
2
2
|
import { ProofType } from '../verifiable';
|
|
3
|
-
import { AtomicQueryMTPV2Inputs, AtomicQueryMTPV2OnChainInputs, AtomicQuerySigV2Inputs, AtomicQuerySigV2OnChainInputs, AtomicQueryV3Inputs, AtomicQueryV3OnChainInputs, CircuitClaim, CircuitId, LinkedMultiQueryInputs,
|
|
3
|
+
import { AtomicQueryMTPV2Inputs, AtomicQueryMTPV2OnChainInputs, AtomicQuerySigV2Inputs, AtomicQuerySigV2OnChainInputs, AtomicQueryV3Inputs, AtomicQueryV3OnChainInputs, CircuitClaim, CircuitId, LinkedMultiQueryInputs, Operators } from '../circuits';
|
|
4
4
|
import { toClaimNonRevStatus, toGISTProof } from './common';
|
|
5
5
|
import { getUserDIDFromCredential } from '../credentials';
|
|
6
6
|
const circuitValidator = {
|
|
@@ -12,8 +12,7 @@ const circuitValidator = {
|
|
|
12
12
|
[CircuitId.AtomicQueryV3OnChain]: { maxQueriesCount: 1 },
|
|
13
13
|
[CircuitId.AuthV2]: { maxQueriesCount: 0 },
|
|
14
14
|
[CircuitId.StateTransition]: { maxQueriesCount: 0 },
|
|
15
|
-
[CircuitId.
|
|
16
|
-
[CircuitId.LinkedMultiQuery10]: { maxQueriesCount: 10 }
|
|
15
|
+
[CircuitId.LinkedMultiQuery10]: { maxQueriesCount: LinkedMultiQueryInputs.queryCount }
|
|
17
16
|
};
|
|
18
17
|
export class InputGenerator {
|
|
19
18
|
constructor(_identityWallet, _credentialWallet, _stateStorage) {
|
|
@@ -281,28 +280,13 @@ export class InputGenerator {
|
|
|
281
280
|
}
|
|
282
281
|
return circuitInputs.inputsMarshal();
|
|
283
282
|
};
|
|
284
|
-
this.
|
|
285
|
-
const circuitClaimData = await this.newCircuitClaimData(preparedCredential);
|
|
286
|
-
circuitClaimData.nonRevProof = toClaimNonRevStatus(preparedCredential.revStatus);
|
|
287
|
-
const circuitInputs = new LinkedNullifierInputs();
|
|
288
|
-
circuitInputs.linkNonce = params.linkNonce ?? BigInt(0);
|
|
289
|
-
circuitInputs.issuerClaim = circuitClaimData.claim;
|
|
290
|
-
circuitInputs.id = DID.idFromDID(identifier);
|
|
291
|
-
circuitInputs.claimSubjectProfileNonce = BigInt(params.credentialSubjectProfileNonce);
|
|
292
|
-
circuitInputs.verifierID = params.verifierDid ? DID.idFromDID(params.verifierDid) : undefined;
|
|
293
|
-
circuitInputs.nullifierSessionID = proofReq.params?.nullifierSessionID
|
|
294
|
-
? BigInt(proofReq.params?.nullifierSessionID?.toString())
|
|
295
|
-
: BigInt(0);
|
|
296
|
-
return circuitInputs.inputsMarshal();
|
|
297
|
-
};
|
|
298
|
-
this.linkedMultiQuery10PrepareInputs = async ({ preparedCredential, proofReq, params, circuitQueries }) => {
|
|
283
|
+
this.linkedMultiQuery10PrepareInputs = async ({ preparedCredential, params, circuitQueries }) => {
|
|
299
284
|
const circuitClaimData = await this.newCircuitClaimData(preparedCredential);
|
|
300
285
|
circuitClaimData.nonRevProof = toClaimNonRevStatus(preparedCredential.revStatus);
|
|
301
286
|
const circuitInputs = new LinkedMultiQueryInputs();
|
|
302
287
|
circuitInputs.linkNonce = params.linkNonce ?? BigInt(0);
|
|
303
288
|
circuitInputs.claim = circuitClaimData.claim;
|
|
304
289
|
circuitInputs.query = circuitQueries;
|
|
305
|
-
circuitInputs.queryLength = circuitValidator[proofReq.circuitId].maxQueriesCount;
|
|
306
290
|
return circuitInputs.inputsMarshal();
|
|
307
291
|
};
|
|
308
292
|
}
|
|
@@ -158,8 +158,8 @@ export const StandardJSONCredentialsQueryFilter = (query) => {
|
|
|
158
158
|
case 'claimId':
|
|
159
159
|
return acc.concat(new FilterQuery('id', comparatorOptions.$eq, queryValue));
|
|
160
160
|
case 'allowedIssuers': {
|
|
161
|
-
const
|
|
162
|
-
if (
|
|
161
|
+
const queryValueParam = queryValue || ['*'];
|
|
162
|
+
if (queryValueParam.includes('*')) {
|
|
163
163
|
return acc;
|
|
164
164
|
}
|
|
165
165
|
return acc.concat(new FilterQuery('issuer', comparatorOptions.$in, queryValue));
|
|
@@ -9,10 +9,10 @@ import { Query } from './models';
|
|
|
9
9
|
* @class LinkedMultiQueryInputs
|
|
10
10
|
*/
|
|
11
11
|
export declare class LinkedMultiQueryInputs extends BaseConfig {
|
|
12
|
+
static queryCount: number;
|
|
12
13
|
linkNonce: bigint;
|
|
13
14
|
claim: Claim;
|
|
14
15
|
query: Query[];
|
|
15
|
-
queryLength: number;
|
|
16
16
|
inputsMarshal(): Uint8Array;
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
@@ -28,11 +28,11 @@ export declare class LinkedMultiQueryPubSignals {
|
|
|
28
28
|
circuitQueryHash: bigint[];
|
|
29
29
|
enabled: boolean[];
|
|
30
30
|
/**
|
|
31
|
-
* PubSignalsUnmarshal unmarshal
|
|
31
|
+
* PubSignalsUnmarshal unmarshal linkedMultiQuery10.circom public inputs to LinkedMultiQueryPubSignals
|
|
32
32
|
*
|
|
33
33
|
* @beta
|
|
34
34
|
* @param {Uint8Array} data
|
|
35
35
|
* @returns LinkedMultiQueryPubSignals
|
|
36
36
|
*/
|
|
37
|
-
pubSignalsUnmarshal(data: Uint8Array
|
|
37
|
+
pubSignalsUnmarshal(data: Uint8Array): LinkedMultiQueryPubSignals;
|
|
38
38
|
}
|
|
@@ -40,7 +40,6 @@ export declare class InputGenerator {
|
|
|
40
40
|
private credentialAtomicQuerySigV2OnChainPrepareInputs;
|
|
41
41
|
private credentialAtomicQueryV3PrepareInputs;
|
|
42
42
|
private credentialAtomicQueryV3OnChainPrepareInputs;
|
|
43
|
-
private
|
|
44
|
-
linkedMultiQuery10PrepareInputs: ({ preparedCredential, proofReq, params, circuitQueries }: InputContext) => Promise<Uint8Array>;
|
|
43
|
+
private linkedMultiQuery10PrepareInputs;
|
|
45
44
|
}
|
|
46
45
|
export {};
|
package/package.json
CHANGED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.LinkedNullifierPubSignals = exports.LinkedNullifierInputs = void 0;
|
|
4
|
-
const js_iden3_core_1 = require("@iden3/js-iden3-core");
|
|
5
|
-
const utils_1 = require("../utils");
|
|
6
|
-
/**
|
|
7
|
-
* LinkedNullifier circuit representation
|
|
8
|
-
* Inputs and public signals declaration, marshalling and parsing
|
|
9
|
-
*
|
|
10
|
-
* @beta
|
|
11
|
-
* @class LinkedNullifierInputs
|
|
12
|
-
*/
|
|
13
|
-
class LinkedNullifierInputs {
|
|
14
|
-
// InputsMarshal returns Circom private inputs for nullifier.circom
|
|
15
|
-
inputsMarshal() {
|
|
16
|
-
const s = {
|
|
17
|
-
linkNonce: this.linkNonce.toString(),
|
|
18
|
-
issuerClaim: this.issuerClaim.marshalJson(),
|
|
19
|
-
userGenesisID: this.id.bigInt().toString(),
|
|
20
|
-
claimSubjectProfileNonce: this.claimSubjectProfileNonce.toString(),
|
|
21
|
-
claimSchema: this.issuerClaim.getSchemaHash().bigInt().toString(),
|
|
22
|
-
verifierID: this.verifierID?.bigInt().toString() ?? '0',
|
|
23
|
-
nullifierSessionID: this.nullifierSessionID.toString()
|
|
24
|
-
};
|
|
25
|
-
return utils_1.byteEncoder.encode(JSON.stringify(s));
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
exports.LinkedNullifierInputs = LinkedNullifierInputs;
|
|
29
|
-
// LinkedNullifierPubSignals nullifier.circom public signals
|
|
30
|
-
/**
|
|
31
|
-
* public signals
|
|
32
|
-
*
|
|
33
|
-
* @beta
|
|
34
|
-
* @class LinkedNullifierPubSignals
|
|
35
|
-
*/
|
|
36
|
-
class LinkedNullifierPubSignals {
|
|
37
|
-
/**
|
|
38
|
-
* PubSignalsUnmarshal unmarshal nullifier.circom public inputs to LinkedNullifierPubSignals
|
|
39
|
-
*
|
|
40
|
-
* @beta
|
|
41
|
-
* @param {Uint8Array} data
|
|
42
|
-
* @returns LinkedNullifierPubSignals
|
|
43
|
-
*/
|
|
44
|
-
pubSignalsUnmarshal(data) {
|
|
45
|
-
const len = 4;
|
|
46
|
-
const sVals = JSON.parse(utils_1.byteDecoder.decode(data));
|
|
47
|
-
if (sVals.length !== len) {
|
|
48
|
-
throw new Error(`invalid number of Output values expected ${len} got ${sVals.length}`);
|
|
49
|
-
}
|
|
50
|
-
this.nullifier = BigInt(sVals[0]);
|
|
51
|
-
this.linkID = BigInt(sVals[1]);
|
|
52
|
-
this.verifierID = js_iden3_core_1.Id.fromBigInt(BigInt(sVals[2]));
|
|
53
|
-
this.nullifierSessionID = BigInt(sVals[3]);
|
|
54
|
-
return this;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
exports.LinkedNullifierPubSignals = LinkedNullifierPubSignals;
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { Id } from '@iden3/js-iden3-core';
|
|
2
|
-
import { byteDecoder, byteEncoder } from '../utils';
|
|
3
|
-
/**
|
|
4
|
-
* LinkedNullifier circuit representation
|
|
5
|
-
* Inputs and public signals declaration, marshalling and parsing
|
|
6
|
-
*
|
|
7
|
-
* @beta
|
|
8
|
-
* @class LinkedNullifierInputs
|
|
9
|
-
*/
|
|
10
|
-
export class LinkedNullifierInputs {
|
|
11
|
-
// InputsMarshal returns Circom private inputs for nullifier.circom
|
|
12
|
-
inputsMarshal() {
|
|
13
|
-
const s = {
|
|
14
|
-
linkNonce: this.linkNonce.toString(),
|
|
15
|
-
issuerClaim: this.issuerClaim.marshalJson(),
|
|
16
|
-
userGenesisID: this.id.bigInt().toString(),
|
|
17
|
-
claimSubjectProfileNonce: this.claimSubjectProfileNonce.toString(),
|
|
18
|
-
claimSchema: this.issuerClaim.getSchemaHash().bigInt().toString(),
|
|
19
|
-
verifierID: this.verifierID?.bigInt().toString() ?? '0',
|
|
20
|
-
nullifierSessionID: this.nullifierSessionID.toString()
|
|
21
|
-
};
|
|
22
|
-
return byteEncoder.encode(JSON.stringify(s));
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
// LinkedNullifierPubSignals nullifier.circom public signals
|
|
26
|
-
/**
|
|
27
|
-
* public signals
|
|
28
|
-
*
|
|
29
|
-
* @beta
|
|
30
|
-
* @class LinkedNullifierPubSignals
|
|
31
|
-
*/
|
|
32
|
-
export class LinkedNullifierPubSignals {
|
|
33
|
-
/**
|
|
34
|
-
* PubSignalsUnmarshal unmarshal nullifier.circom public inputs to LinkedNullifierPubSignals
|
|
35
|
-
*
|
|
36
|
-
* @beta
|
|
37
|
-
* @param {Uint8Array} data
|
|
38
|
-
* @returns LinkedNullifierPubSignals
|
|
39
|
-
*/
|
|
40
|
-
pubSignalsUnmarshal(data) {
|
|
41
|
-
const len = 4;
|
|
42
|
-
const sVals = JSON.parse(byteDecoder.decode(data));
|
|
43
|
-
if (sVals.length !== len) {
|
|
44
|
-
throw new Error(`invalid number of Output values expected ${len} got ${sVals.length}`);
|
|
45
|
-
}
|
|
46
|
-
this.nullifier = BigInt(sVals[0]);
|
|
47
|
-
this.linkID = BigInt(sVals[1]);
|
|
48
|
-
this.verifierID = Id.fromBigInt(BigInt(sVals[2]));
|
|
49
|
-
this.nullifierSessionID = BigInt(sVals[3]);
|
|
50
|
-
return this;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { Claim, Id } from '@iden3/js-iden3-core';
|
|
2
|
-
/**
|
|
3
|
-
* LinkedNullifier circuit representation
|
|
4
|
-
* Inputs and public signals declaration, marshalling and parsing
|
|
5
|
-
*
|
|
6
|
-
* @beta
|
|
7
|
-
* @class LinkedNullifierInputs
|
|
8
|
-
*/
|
|
9
|
-
export declare class LinkedNullifierInputs {
|
|
10
|
-
linkNonce: bigint;
|
|
11
|
-
issuerClaim: Claim;
|
|
12
|
-
id: Id;
|
|
13
|
-
claimSubjectProfileNonce: bigint;
|
|
14
|
-
verifierID?: Id;
|
|
15
|
-
nullifierSessionID: bigint;
|
|
16
|
-
inputsMarshal(): Uint8Array;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* public signals
|
|
20
|
-
*
|
|
21
|
-
* @beta
|
|
22
|
-
* @class LinkedNullifierPubSignals
|
|
23
|
-
*/
|
|
24
|
-
export declare class LinkedNullifierPubSignals {
|
|
25
|
-
nullifier: bigint;
|
|
26
|
-
linkID: bigint;
|
|
27
|
-
verifierID: Id;
|
|
28
|
-
nullifierSessionID: bigint;
|
|
29
|
-
/**
|
|
30
|
-
* PubSignalsUnmarshal unmarshal nullifier.circom public inputs to LinkedNullifierPubSignals
|
|
31
|
-
*
|
|
32
|
-
* @beta
|
|
33
|
-
* @param {Uint8Array} data
|
|
34
|
-
* @returns LinkedNullifierPubSignals
|
|
35
|
-
*/
|
|
36
|
-
pubSignalsUnmarshal(data: Uint8Array): LinkedNullifierPubSignals;
|
|
37
|
-
}
|