diff --git a/go.mod b/go.mod index 945b75c..8448d72 100644 --- a/go.mod +++ b/go.mod @@ -7,11 +7,11 @@ require ( github.com/ethereum/go-ethereum v1.13.2 github.com/iden3/contracts-abi/onchain-credential-status-resolver/go/abi v0.0.0-20230911113809-c58b7e7a69b0 github.com/iden3/contracts-abi/state/go/abi v0.0.0-20230405152923-4a25f6f1f0f4 - github.com/iden3/go-circuits/v2 v2.0.1-0.20231121174851-c7d45cd9baec + github.com/iden3/go-circuits/v2 v2.0.1-0.20231206170636-08f762edb388 github.com/iden3/go-iden3-core/v2 v2.0.0 github.com/iden3/go-iden3-crypto v0.0.15 github.com/iden3/go-merkletree-sql/v2 v2.0.6 - github.com/iden3/go-schema-processor/v2 v2.0.2-0.20231010174647-ab15a289fa44 + github.com/iden3/go-schema-processor/v2 v2.1.1-0.20231213064039-68c1fb2962ff github.com/iden3/merkletree-proof v0.0.3 github.com/ipfs/go-ipfs-api v0.7.0 github.com/piprate/json-gold v0.5.1-0.20230111113000-6ddbe6e6f19f diff --git a/go.sum b/go.sum index a9797a9..7c548c7 100644 --- a/go.sum +++ b/go.sum @@ -159,16 +159,16 @@ github.com/iden3/contracts-abi/onchain-credential-status-resolver/go/abi v0.0.0- github.com/iden3/contracts-abi/onchain-credential-status-resolver/go/abi v0.0.0-20230911113809-c58b7e7a69b0/go.mod h1:8fkd2xyUG/V7ovpvZRyD2LyK2zZ4ALbgf5vJGyhzKdg= github.com/iden3/contracts-abi/state/go/abi v0.0.0-20230405152923-4a25f6f1f0f4 h1:iPvYa/AhhGo3juoUFDm/fBE2CZKy4WfQu7JY90tRf9Q= github.com/iden3/contracts-abi/state/go/abi v0.0.0-20230405152923-4a25f6f1f0f4/go.mod h1:TxgIrXCvxms3sbOdsy8kTvffUCIpEEifNy0fSXdkU4w= -github.com/iden3/go-circuits/v2 v2.0.1-0.20231121174851-c7d45cd9baec h1:ORXPivdUzGKSOkunZPtv9Gm+O6II7zpb/sRDJJ4C7Yc= -github.com/iden3/go-circuits/v2 v2.0.1-0.20231121174851-c7d45cd9baec/go.mod h1:VIFIp51+IH0hOzjnKhb84bCeyq7hq76zX/C14ua6zh4= +github.com/iden3/go-circuits/v2 v2.0.1-0.20231206170636-08f762edb388 h1:d+Ca49cZtPLqrA+MO5I/iEjMvDTOguHxcK17jj/TDic= +github.com/iden3/go-circuits/v2 v2.0.1-0.20231206170636-08f762edb388/go.mod h1:VIFIp51+IH0hOzjnKhb84bCeyq7hq76zX/C14ua6zh4= github.com/iden3/go-iden3-core/v2 v2.0.0 h1:sQEuuq3RLfyYSY8qPiqxQ6YBpGbiAwepHJD/vjf1adA= github.com/iden3/go-iden3-core/v2 v2.0.0/go.mod h1:L9PxhWPvoS9qTb3inEkZBm1RpjHBt+VTwvxssdzbAdw= github.com/iden3/go-iden3-crypto v0.0.15 h1:4MJYlrot1l31Fzlo2sF56u7EVFeHHJkxGXXZCtESgK4= github.com/iden3/go-iden3-crypto v0.0.15/go.mod h1:dLpM4vEPJ3nDHzhWFXDjzkn1qHoBeOT/3UEhXsEsP3E= github.com/iden3/go-merkletree-sql/v2 v2.0.6 h1:vsVDImnvnHf7Ggr45ptFOXJyWNA/8IwVQO1jzRLUlY8= github.com/iden3/go-merkletree-sql/v2 v2.0.6/go.mod h1:kRhHKYpui5DUsry5RpveP6IC4XMe6iApdV9VChRYuEk= -github.com/iden3/go-schema-processor/v2 v2.0.2-0.20231010174647-ab15a289fa44 h1:92yBrFg0UrFqDefcqVRSUK72Bp1B7Z20/9ACe4Pkb6k= -github.com/iden3/go-schema-processor/v2 v2.0.2-0.20231010174647-ab15a289fa44/go.mod h1:EogHwnFnxQKOGRVme6upCcisoAQeEIl+HuRAGa7w3+w= +github.com/iden3/go-schema-processor/v2 v2.1.1-0.20231213064039-68c1fb2962ff h1:sOI8YGAJ6Jz8Iz4q0M5zVuA2toIZlDOUKeH7LxNT2C0= +github.com/iden3/go-schema-processor/v2 v2.1.1-0.20231213064039-68c1fb2962ff/go.mod h1:EogHwnFnxQKOGRVme6upCcisoAQeEIl+HuRAGa7w3+w= github.com/iden3/merkletree-proof v0.0.3 h1:01fSpjv2JIwVBYqV7ugLm0gjF+yo0aw41zDTWP5+81s= github.com/iden3/merkletree-proof v0.0.3/go.mod h1:cNPG00p4ALlIXnRFmM1T2zy4547jV8cgyOZsObDrORg= github.com/ipfs/boxo v0.12.0 h1:AXHg/1ONZdRQHQLgG5JHsSC3XoE4DjCAMgK+asZvUcQ= diff --git a/inputs_sig.go b/inputs_sig.go index cb035e5..c98c7af 100644 --- a/inputs_sig.go +++ b/inputs_sig.go @@ -63,6 +63,16 @@ func stringByPath(obj jsonObj, path string) (string, error) { return s, nil } +func bigIntOrZeroByPath(obj jsonObj, path string, + allowNumbers bool) (*big.Int, error) { + + i, err := bigIntByPath(obj, path, allowNumbers) + if errors.As(err, &errPathNotFound{}) { + return big.NewInt(0), nil + } + return i, err +} + // if allowNumbers is true, then the value can also be a number, not only strings func bigIntByPath(obj jsonObj, path string, allowNumbers bool) (*big.Int, error) { @@ -383,6 +393,12 @@ type inputsRequest struct { Request jsonObj `json:"request"` } +type v3InputsRequest struct { + inputsRequest + VerifierID *w3c.DID `json:"verifierId"` + LinkNonce JsonBigInt `json:"linkNonce"` +} + type onChainInputsRequest struct { ID *core.ID `json:"id"` ProfileNonce *JsonBigInt `json:"profileNonce"` @@ -398,6 +414,18 @@ type onChainInputsRequest struct { Request jsonObj `json:"request"` } +type txData struct { + ContractAddress common.Address `json:"contractAddress"` + ChainID ChainID `json:"chainId"` +} + +type v3OnChainInputsRequest struct { + onChainInputsRequest + VerifierID *w3c.DID `json:"verifierId"` + LinkNonce JsonBigInt `json:"linkNonce"` + TxData *txData `json:"transactionData"` +} + type AtomicQueryInputsResponse struct { Inputs circuits.InputsMarshaller VerifiablePresentation map[string]any @@ -426,13 +454,14 @@ func AtomicQueryMtpV2InputsFromJson(ctx context.Context, cfg EnvConfig, inpMarsh.ProfileNonce = obj.ProfileNonce.BigInt() inpMarsh.ClaimSubjectProfileNonce = obj.ClaimSubjectProfileNonce.BigInt() - circuitID, err := stringByPath(obj.Request, "circuitId") + circuitID, err := getCircuitID(obj.Request) if err != nil { return out, err } - if circuitID != string(circuits.AtomicQueryMTPV2CircuitID) { + if circuitID != circuits.AtomicQueryMTPV2CircuitID { return out, errors.New("wrong circuit") } + var w3cCred verifiable.W3CCredential err = json.Unmarshal(obj.VerifiableCredentials, &w3cCred) if err != nil { @@ -455,7 +484,8 @@ func AtomicQueryMtpV2InputsFromJson(ctx context.Context, cfg EnvConfig, defer wg.Done() start := time.Now() inpMarsh.Query, out.VerifiablePresentation, queryErr = queryFromObj( - ctx, w3cCred, obj.Request, claim, cfg.documentLoader()) + ctx, w3cCred, obj.Request, claim, cfg.documentLoader(), + circuitID) slog.Debug("query done in", "time", time.Since(start)) }() } @@ -601,13 +631,14 @@ func AtomicQuerySigV2InputsFromJson(ctx context.Context, cfg EnvConfig, inpMarsh.ProfileNonce = obj.ProfileNonce.BigInt() inpMarsh.ClaimSubjectProfileNonce = obj.ClaimSubjectProfileNonce.BigInt() - circuitID, err := stringByPath(obj.Request, "circuitId") + circuitID, err := getCircuitID(obj.Request) if err != nil { return out, err } - if circuitID != string(circuits.AtomicQuerySigV2CircuitID) { + if circuitID != circuits.AtomicQuerySigV2CircuitID { return out, errors.New("wrong circuit") } + var w3cCred verifiable.W3CCredential err = json.Unmarshal(obj.VerifiableCredentials, &w3cCred) if err != nil { @@ -625,7 +656,7 @@ func AtomicQuerySigV2InputsFromJson(ctx context.Context, cfg EnvConfig, } inpMarsh.Query, out.VerifiablePresentation, err = queryFromObj(ctx, w3cCred, - obj.Request, inpMarsh.Claim.Claim, cfg.documentLoader()) + obj.Request, inpMarsh.Claim.Claim, cfg.documentLoader(), circuitID) if err != nil { return out, err } @@ -679,13 +710,14 @@ func AtomicQueryMtpV2OnChainInputsFromJson(ctx context.Context, cfg EnvConfig, inpMarsh.Signature = (*babyjub.Signature)(obj.Signature) inpMarsh.Challenge = obj.Challenge.BigInt() - circuitID, err := stringByPath(obj.Request, "circuitId") + circuitID, err := getCircuitID(obj.Request) if err != nil { return out, err } - if circuitID != string(circuits.AtomicQueryMTPV2OnChainCircuitID) { + if circuitID != circuits.AtomicQueryMTPV2OnChainCircuitID { return out, errors.New("wrong circuit") } + var w3cCred verifiable.W3CCredential err = json.Unmarshal(obj.VerifiableCredentials, &w3cCred) if err != nil { @@ -707,7 +739,8 @@ func AtomicQueryMtpV2OnChainInputsFromJson(ctx context.Context, cfg EnvConfig, go func() { defer wg.Done() inpMarsh.Query, out.VerifiablePresentation, queryErr = queryFromObj( - ctx, w3cCred, obj.Request, claim, cfg.documentLoader()) + ctx, w3cCred, obj.Request, claim, cfg.documentLoader(), + circuitID) }() } @@ -775,13 +808,14 @@ func AtomicQuerySigV2OnChainInputsFromJson(ctx context.Context, cfg EnvConfig, inpMarsh.Signature = (*babyjub.Signature)(obj.Signature) inpMarsh.Challenge = obj.Challenge.BigInt() - circuitID, err := stringByPath(obj.Request, "circuitId") + circuitID, err := getCircuitID(obj.Request) if err != nil { return out, err } - if circuitID != string(circuits.AtomicQuerySigV2OnChainCircuitID) { + if circuitID != circuits.AtomicQuerySigV2OnChainCircuitID { return out, errors.New("wrong circuit") } + var w3cCred verifiable.W3CCredential err = json.Unmarshal(obj.VerifiableCredentials, &w3cCred) if err != nil { @@ -799,7 +833,7 @@ func AtomicQuerySigV2OnChainInputsFromJson(ctx context.Context, cfg EnvConfig, } inpMarsh.Query, out.VerifiablePresentation, err = queryFromObj(ctx, w3cCred, - obj.Request, inpMarsh.Claim.Claim, cfg.documentLoader()) + obj.Request, inpMarsh.Claim.Claim, cfg.documentLoader(), circuitID) if err != nil { return out, err } @@ -816,8 +850,9 @@ func AtomicQueryV3OnChainInputsFromJson(ctx context.Context, cfg EnvConfig, var out AtomicQueryInputsResponse var inpMarsh circuits.AtomicQueryV3OnChainInputs + inpMarsh.AuthEnabled = 1 - var obj onChainInputsRequest + var obj v3OnChainInputsRequest err := json.Unmarshal(in, &obj) if err != nil { return out, err @@ -853,13 +888,14 @@ func AtomicQueryV3OnChainInputsFromJson(ctx context.Context, cfg EnvConfig, inpMarsh.Signature = (*babyjub.Signature)(obj.Signature) inpMarsh.Challenge = obj.Challenge.BigInt() - circuitID, err := stringByPath(obj.Request, "circuitId") + circuitID, err := getCircuitID(obj.Request) if err != nil { return out, err } - if circuitID != string(circuits.AtomicQueryV3OnChainCircuitID) { + if circuitID != circuits.AtomicQueryV3OnChainCircuitID { return out, errors.New("wrong circuit") } + var w3cCred verifiable.W3CCredential err = json.Unmarshal(obj.VerifiableCredentials, &w3cCred) if err != nil { @@ -883,13 +919,33 @@ func AtomicQueryV3OnChainInputsFromJson(ctx context.Context, cfg EnvConfig, } inpMarsh.Query, out.VerifiablePresentation, err = queryFromObj(ctx, w3cCred, - obj.Request, inpMarsh.Claim.Claim, cfg.documentLoader()) + obj.Request, inpMarsh.Claim.Claim, cfg.documentLoader(), circuitID) if err != nil { return out, err } inpMarsh.CurrentTimeStamp = time.Now().Unix() + inpMarsh.LinkNonce = obj.LinkNonce.BigInt() + if obj.VerifierID != nil { + id, err := core.IDFromDID(*obj.VerifierID) + if err != nil { + return out, err + } + inpMarsh.VerifierID = &id + } else if obj.TxData != nil { + inpMarsh.VerifierID, err = verifierIDFromTxData(*obj.TxData) + if err != nil { + return out, err + } + } + + inpMarsh.NullifierSessionID, err = bigIntOrZeroByPath(obj.Request, + "params.nullifierSessionId", true) + if err != nil { + return out, err + } + out.Inputs = inpMarsh return out, nil @@ -901,7 +957,7 @@ func AtomicQueryV3InputsFromJson(ctx context.Context, cfg EnvConfig, var out AtomicQueryInputsResponse var inpMarsh circuits.AtomicQueryV3Inputs - var obj inputsRequest + var obj v3InputsRequest err := json.Unmarshal(in, &obj) if err != nil { return out, err @@ -915,13 +971,14 @@ func AtomicQueryV3InputsFromJson(ctx context.Context, cfg EnvConfig, inpMarsh.ProfileNonce = obj.ProfileNonce.BigInt() inpMarsh.ClaimSubjectProfileNonce = obj.ClaimSubjectProfileNonce.BigInt() - circuitID, err := stringByPath(obj.Request, "circuitId") + circuitID, err := getCircuitID(obj.Request) if err != nil { return out, err } - if circuitID != string(circuits.AtomicQueryV3CircuitID) { + if circuitID != circuits.AtomicQueryV3CircuitID { return out, errors.New("wrong circuit") } + var w3cCred verifiable.W3CCredential err = json.Unmarshal(obj.VerifiableCredentials, &w3cCred) if err != nil { @@ -945,14 +1002,28 @@ func AtomicQueryV3InputsFromJson(ctx context.Context, cfg EnvConfig, } inpMarsh.Query, out.VerifiablePresentation, err = queryFromObj(ctx, w3cCred, - obj.Request, inpMarsh.Claim.Claim, cfg.documentLoader()) + obj.Request, inpMarsh.Claim.Claim, cfg.documentLoader(), circuitID) if err != nil { return out, err } inpMarsh.CurrentTimeStamp = time.Now().Unix() - // TODO: what to do with LinkNonce, VerifierID, VerifierSessionID + inpMarsh.NullifierSessionID, err = bigIntOrZeroByPath(obj.Request, + "params.nullifierSessionId", true) + if err != nil { + return out, err + } + + if obj.VerifierID != nil { + id, err := core.IDFromDID(*obj.VerifierID) + if err != nil { + return out, err + } + inpMarsh.VerifierID = &id + } + + inpMarsh.LinkNonce = obj.LinkNonce.BigInt() out.Inputs = inpMarsh @@ -1028,8 +1099,8 @@ func querySkipRevocation(requestObj jsonObj) (bool, error) { } func queryFromObj(ctx context.Context, w3cCred verifiable.W3CCredential, - requestObj jsonObj, claim *core.Claim, - documentLoader ld.DocumentLoader) (out circuits.Query, + requestObj jsonObj, claim *core.Claim, documentLoader ld.DocumentLoader, + circuitID circuits.CircuitID) (out circuits.Query, verifiablePresentation jsonObj, err error) { merklizePosition, err := claim.GetMerklizedPosition() @@ -1039,10 +1110,11 @@ func queryFromObj(ctx context.Context, w3cCred verifiable.W3CCredential, if merklizePosition == core.MerklizedRootPositionNone { return queryFromObjNonMerklized(ctx, w3cCred, requestObj, - documentLoader) + documentLoader, circuitID) } - return queryFromObjMerklized(ctx, w3cCred, requestObj, documentLoader) + return queryFromObjMerklized(ctx, w3cCred, requestObj, documentLoader, + circuitID) } func wrapMerklizeWithRegion(ctx context.Context, @@ -1059,7 +1131,8 @@ func wrapMerklizeWithRegion(ctx context.Context, func queryFromObjNonMerklized(ctx context.Context, w3cCred verifiable.W3CCredential, requestObj jsonObj, - documentLoader ld.DocumentLoader) (out circuits.Query, + documentLoader ld.DocumentLoader, + circuitID circuits.CircuitID) (out circuits.Query, verifiablePresentation jsonObj, err error) { region := trace.StartRegion(ctx, "queryFromObjNonMerklized") @@ -1121,8 +1194,14 @@ func queryFromObjNonMerklized(ctx context.Context, } verifiablePresentation = vp - out.Operator = circuits.EQ - out.Values = []*big.Int{valueEntry} + if circuitID == circuits.AtomicQueryV3CircuitID || + circuitID == circuits.AtomicQueryV3OnChainCircuitID { + out.Operator = circuits.SD + out.Values = []*big.Int{} + } else { + out.Operator = circuits.EQ + out.Values = []*big.Int{valueEntry} + } default: out.Operator, out.Values, err = unpackOperatorWithArgs(opStr, val, datatype, hasher) @@ -1146,9 +1225,18 @@ func getQuerySchemaAndType(requestObj jsonObj) (string, string, error) { return schemaURL, typeName, nil } +func getCircuitID(requestObj jsonObj) (circuits.CircuitID, error) { + circuitID, err := stringByPath(requestObj, "circuitId") + if err != nil { + return "", err + } + return circuits.CircuitID(circuitID), nil +} + func queryFromObjMerklized(ctx context.Context, w3cCred verifiable.W3CCredential, requestObj jsonObj, - documentLoader ld.DocumentLoader) (out circuits.Query, + documentLoader ld.DocumentLoader, + circuitID circuits.CircuitID) (out circuits.Query, verifiablePresentation jsonObj, err error) { region := trace.StartRegion(ctx, "queryFromObjMerklized") @@ -1247,8 +1335,15 @@ func queryFromObjMerklized(ctx context.Context, return out, nil, errors.New("only one operation per field is supported") case errNoEntry: // handle selective disclosure - out.Operator = circuits.EQ - out.Values = []*big.Int{out.ValueProof.Value} + if circuitID == circuits.AtomicQueryV3CircuitID || + circuitID == circuits.AtomicQueryV3OnChainCircuitID { + out.Operator = circuits.SD + out.Values = []*big.Int{} + } else { + out.Operator = circuits.EQ + out.Values = []*big.Int{out.ValueProof.Value} + } + rawValue, err := mz.RawValue(path) if err != nil { return out, nil, err @@ -1922,6 +2017,15 @@ func (cfg EnvConfig) documentLoader() ld.DocumentLoader { type ChainID uint64 +func (cid ChainID) Unpack() (core.Blockchain, core.NetworkID, error) { + for k, v := range knownChainIDs { + if v == cid { + return k.blockchain, k.networkID, nil + } + } + return core.NoChain, core.NoNetwork, fmt.Errorf("unknown chain ID") +} + func newChainIDFromString(in string) (ChainID, error) { var chainID uint64 var err error @@ -2460,3 +2564,17 @@ func fmtPath(path merklize.Path) string { } return "[" + strings.Join(parts, ",") + "]" } + +func verifierIDFromTxData(txData txData) (*core.ID, error) { + genState := core.GenesisFromEthAddress(txData.ContractAddress) + blockchain, networkID, err := txData.ChainID.Unpack() + if err != nil { + return nil, err + } + tp, err := core.BuildDIDType(core.DIDMethodIden3, blockchain, networkID) + if err != nil { + return nil, err + } + id := core.NewID(tp, genState) + return &id, nil +} diff --git a/inputs_sig_test.go b/inputs_sig_test.go index d8629b3..ff18a1b 100644 --- a/inputs_sig_test.go +++ b/inputs_sig_test.go @@ -574,6 +574,50 @@ func TestPrepareInputs(t *testing.T) { "atomic_query_v3_on_chain_sig_output.json", AtomicQueryV3OnChainInputsFromJson, nil, EnvConfig{}, "") }) + + t.Run("AtomicQueryV3InputsFromJson - Sig - Selective Disclosure", func(t *testing.T) { + + defer httpmock.MockHTTPClient(t, map[string]string{ + "https://raw.githubusercontent.com/iden3/claim-schema-vocab/main/schemas/json-ld/kyc-v3.json-ld": "testdata/httpresp_kyc-v3.json-ld", + "https://raw.githubusercontent.com/iden3/claim-schema-vocab/main/schemas/json-ld/iden3credential-v2.json-ld": "testdata/httpresp_iden3credential_v2.json", + "http://localhost:8001/api/v1/identities/did%3Aiden3%3Apolygon%3Amumbai%3AwuQT8NtFq736wsJahUuZpbA8otTzjKGyKj4i4yWtU/claims/revocation/status/2376431481": "testdata/httpresp_rev_status_2376431481.json", + "http://localhost:8001/api/v1/identities/did%3Aiden3%3Apolygon%3Amumbai%3AwuQT8NtFq736wsJahUuZpbA8otTzjKGyKj4i4yWtU/claims/revocation/status/0": "testdata/httpresp_rev_status_wuQT8NtFq736wsJahUuZpbA8otTzjKGyKj4i4yWtU_0.json", + }, httpmock.IgnoreUntouchedURLs())() + + wantVerifiablePresentation := map[string]any{ + "@context": []any{"https://www.w3.org/2018/credentials/v1"}, + "@type": "VerifiablePresentation", + "verifiableCredential": map[string]any{ + "@context": []any{ + "https://www.w3.org/2018/credentials/v1", + "https://raw.githubusercontent.com/iden3/claim-schema-vocab/main/schemas/json-ld/kyc-v3.json-ld", + }, + "@type": []any{"VerifiableCredential", "KYCAgeCredential"}, + "credentialSubject": map[string]any{ + "@type": "KYCAgeCredential", + "documentType": float64(2), + }, + }, + } + + doTest(t, "atomic_query_v3_sig_selective_disclosure_inputs.json", + "atomic_query_v3_sig_selective_disclosure_output.json", + AtomicQueryV3InputsFromJson, wantVerifiablePresentation, + EnvConfig{}, "") + }) + + t.Run("AtomicQueryV3OnChainInputsFromJson - Transaction Data", func(t *testing.T) { + defer httpmock.MockHTTPClient(t, map[string]string{ + "http://localhost:8001/api/v1/identities/did%3Apolygonid%3Apolygon%3Amumbai%3A2qDnyCaxj4zdYmj6LbegYMjWSnkbKAyqtq31YeuyZV/claims/revocation/status/3972757": "testdata/httpresp_rev_status_3972757.json", + "https://raw.githubusercontent.com/iden3/claim-schema-vocab/main/schemas/json-ld/kyc-v3.json-ld": "testdata/httpresp_kyc-v3.json-ld", + "https://raw.githubusercontent.com/iden3/claim-schema-vocab/main/schemas/json-ld/iden3credential-v2.json-ld": "testdata/httpresp_iden3credential_v2.json", + }, httpmock.IgnoreUntouchedURLs())() + + doTest(t, "atomic_query_v3_on_chain_tx_data_inputs.json", + "atomic_query_v3_on_chain_tx_data_output.json", + AtomicQueryV3OnChainInputsFromJson, nil, EnvConfig{}, "") + }) + } func TestEnvConfig_UnmarshalJSON(t *testing.T) { @@ -1072,3 +1116,16 @@ func TestPreCacheVC(t *testing.T) { err = db.DropAll() require.NoError(t, err) } + +func TestVerifierIDFromTxData(t *testing.T) { + in := txData{ + ContractAddress: common.HexToAddress("0x199194Cb1884BF288757fac94B3349Cefef93629"), + ChainID: 80001, + } + id, err := verifierIDFromTxData(in) + require.NoError(t, err) + require.Equal(t, "wuL2hHjCC1L7GL9KpQZtBcFvsyqknxq6otmdWtmqs", id.String()) + require.Equal(t, + "17966356888215056651324659145404695842840677593163532338422715818832826881", + id.BigInt().Text(10)) +} diff --git a/testdata/atomic_query_v3_mtp_inputs.json b/testdata/atomic_query_v3_mtp_inputs.json index ee8ca48..cd242b5 100644 --- a/testdata/atomic_query_v3_mtp_inputs.json +++ b/testdata/atomic_query_v3_mtp_inputs.json @@ -2,6 +2,8 @@ "id": "x1QQ78ktjAmia48pyEZENyurZhpRSdPMWmtv1zbsi", "profileNonce": "123", "claimSubjectProfileNonce": "234", + "verifierId": "did:iden3:polygon:mumbai:x1QQ78ktjAmia48pyEZENyurZhpRSdPMWmtv1zbsi", + "linkNonce": "456", "verifiableCredentials": { "id": "http://localhost:8001/api/v1/claim/98781b98-73c9-11ed-9818-3a0197678785", "@context": [ @@ -94,6 +96,9 @@ } }, "proofType": "Iden3SparseMerkleTreeProof" + }, + "params": { + "nullifierSessionId": "123" } } } diff --git a/testdata/atomic_query_v3_mtp_output.json b/testdata/atomic_query_v3_mtp_output.json index deac4cb..214c28d 100644 --- a/testdata/atomic_query_v3_mtp_output.json +++ b/testdata/atomic_query_v3_mtp_output.json @@ -1 +1 @@ -{"requestID":"84239","userGenesisID":"23529006562716512365284470649701500265624720888290140936730678617958584833","profileNonce":"123","claimSubjectProfileNonce":"234","issuerID":"24687982279323932130156062863272601148565852640780662148237991047021531649","issuerClaim":["14366836738280263696847396792315741188809","23529006562716512365284470649701500265624720888290140936730678617958584833","17078634269008282508978520614899691176511963995966531315408520179071582685488","0","227737578863135127231973914489","0","0","0"],"issuerClaimNonRevClaimsTreeRoot":"14200687038162658423445687080642044812853023721722929563326842955302298883583","issuerClaimNonRevRevTreeRoot":"0","issuerClaimNonRevRootsTreeRoot":"13682688696715423561569357932088650136406153300979709261864316589023788667102","issuerClaimNonRevState":"3115266220827509894065475154280381877956215721974280577792238675116811787563","issuerClaimNonRevMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerClaimNonRevMtpAuxHi":"0","issuerClaimNonRevMtpAuxHv":"0","issuerClaimNonRevMtpNoAux":"1","claimSchema":"74977327600848231385663280181476307657","issuerClaimSignatureR8x":"0","issuerClaimSignatureR8y":"0","issuerClaimSignatureS":"0","issuerAuthClaim":["0","0","0","0","0","0","0","0"],"issuerAuthClaimMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerAuthClaimNonRevMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerAuthClaimNonRevMtpAuxHi":"0","issuerAuthClaimNonRevMtpAuxHv":"0","issuerAuthClaimNonRevMtpNoAux":"0","issuerAuthClaimsTreeRoot":"0","issuerAuthRevTreeRoot":"0","issuerAuthRootsTreeRoot":"0","issuerAuthState":"0","isRevocationChecked":1,"claimPathNotExists":0,"claimPathMtp":["12517150030576619527252492821655890410294919107657416409973519542186017163807","11933107200150122400824598729420157563957281318882971696220077028927460055808","13748716966604096441336188506766329119346066422143435538531763565408555859415","0","20486600725567702962288985115041578424966996747359110560639957588130104510049","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"claimPathMtpNoAux":"0","claimPathMtpAuxHi":"0","claimPathMtpAuxHv":"0","claimPathKey":"17040667407194471738958340146498954457187839778402591036538781364266841966","claimPathValue":"2","operator":1,"slotIndex":0,"timestamp":1700555491,"value":["2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerClaimMtp":["21766464054775500261540970596627132740681360541808718916226684581420553493829","0","0","2515815517939277878486495591852893192186484331807066957639537744648750241809","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerClaimClaimsTreeRoot":"9489904474292592373795528228767129060254792153148571504636433835422869094406","issuerClaimRevTreeRoot":"0","issuerClaimRootsTreeRoot":"10377178708342790262994259866714708615805144336972511218145747355348932940048","issuerClaimIdenState":"14967486669687562573593136047944554523204659672540000842773134919176536621353","proofType":"2","linkNonce":"0","verifierID":"0","verifierSessionID":"0"} +{"requestID":"84239","userGenesisID":"23529006562716512365284470649701500265624720888290140936730678617958584833","profileNonce":"123","claimSubjectProfileNonce":"234","issuerID":"24687982279323932130156062863272601148565852640780662148237991047021531649","issuerClaim":["14366836738280263696847396792315741188809","23529006562716512365284470649701500265624720888290140936730678617958584833","17078634269008282508978520614899691176511963995966531315408520179071582685488","0","227737578863135127231973914489","0","0","0"],"issuerClaimNonRevClaimsTreeRoot":"14200687038162658423445687080642044812853023721722929563326842955302298883583","issuerClaimNonRevRevTreeRoot":"0","issuerClaimNonRevRootsTreeRoot":"13682688696715423561569357932088650136406153300979709261864316589023788667102","issuerClaimNonRevState":"3115266220827509894065475154280381877956215721974280577792238675116811787563","issuerClaimNonRevMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerClaimNonRevMtpAuxHi":"0","issuerClaimNonRevMtpAuxHv":"0","issuerClaimNonRevMtpNoAux":"1","claimSchema":"74977327600848231385663280181476307657","issuerClaimSignatureR8x":"0","issuerClaimSignatureR8y":"0","issuerClaimSignatureS":"0","issuerAuthClaim":["0","0","0","0","0","0","0","0"],"issuerAuthClaimMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerAuthClaimNonRevMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerAuthClaimNonRevMtpAuxHi":"0","issuerAuthClaimNonRevMtpAuxHv":"0","issuerAuthClaimNonRevMtpNoAux":"0","issuerAuthClaimsTreeRoot":"0","issuerAuthRevTreeRoot":"0","issuerAuthRootsTreeRoot":"0","issuerAuthState":"0","isRevocationChecked":1,"claimPathNotExists":0,"claimPathMtp":["12517150030576619527252492821655890410294919107657416409973519542186017163807","11933107200150122400824598729420157563957281318882971696220077028927460055808","13748716966604096441336188506766329119346066422143435538531763565408555859415","0","20486600725567702962288985115041578424966996747359110560639957588130104510049","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"claimPathMtpNoAux":"0","claimPathMtpAuxHi":"0","claimPathMtpAuxHv":"0","claimPathKey":"17040667407194471738958340146498954457187839778402591036538781364266841966","claimPathValue":"2","operator":1,"slotIndex":0,"timestamp":1701854807,"value":["2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerClaimMtp":["21766464054775500261540970596627132740681360541808718916226684581420553493829","0","0","2515815517939277878486495591852893192186484331807066957639537744648750241809","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerClaimClaimsTreeRoot":"9489904474292592373795528228767129060254792153148571504636433835422869094406","issuerClaimRevTreeRoot":"0","issuerClaimRootsTreeRoot":"10377178708342790262994259866714708615805144336972511218145747355348932940048","issuerClaimIdenState":"14967486669687562573593136047944554523204659672540000842773134919176536621353","proofType":"2","linkNonce":"456","verifierID":"23529006562716512365284470649701500265624720888290140936730678617958584833","nullifierSessionID":"123"} diff --git a/testdata/atomic_query_v3_no_proof_type_both_have_inputs.json b/testdata/atomic_query_v3_no_proof_type_both_have_inputs.json index 650520c..1f08188 100644 --- a/testdata/atomic_query_v3_no_proof_type_both_have_inputs.json +++ b/testdata/atomic_query_v3_no_proof_type_both_have_inputs.json @@ -2,6 +2,8 @@ "id": "x1QQ78ktjAmia48pyEZENyurZhpRSdPMWmtv1zbsi", "profileNonce": "123", "claimSubjectProfileNonce": "234", + "verifierId": "did:iden3:polygon:mumbai:x1QQ78ktjAmia48pyEZENyurZhpRSdPMWmtv1zbsi", + "linkNonce": "456", "verifiableCredentials": { "id": "http://localhost:8001/api/v1/claim/98781b98-73c9-11ed-9818-3a0197678785", "@context": [ @@ -93,6 +95,9 @@ "$eq": 2 } } + }, + "params": { + "nullifierSessionId": "123" } } } diff --git a/testdata/atomic_query_v3_on_chain_mtp_output.json b/testdata/atomic_query_v3_on_chain_mtp_output.json index 330bd0a..0017958 100644 --- a/testdata/atomic_query_v3_on_chain_mtp_output.json +++ b/testdata/atomic_query_v3_on_chain_mtp_output.json @@ -1 +1 @@ -{"requestID":"84239","userGenesisID":"29850258931222017705467685171096861881207969140433234245484437588206883330","profileNonce":"0","claimSubjectProfileNonce":"0","issuerID":"21838234188363965811194222691354401595924521809699081663778070280584106498","issuerClaim":["14366836738280263696847396792315741188809","29850258931222017705467685171096861881207969140433234245484437588206883330","10864646027499383081088961255934500336998198319784699191293859938525393920224","0","227737578863135127229601455765","0","0","0"],"issuerClaimNonRevClaimsTreeRoot":"7068285887070269919744619817939427362270424612960356565961095251320521860039","issuerClaimNonRevRevTreeRoot":"0","issuerClaimNonRevRootsTreeRoot":"6658769487718742664201419516702702972752809392331568580084074484906569715043","issuerClaimNonRevState":"684102056806145688850264533373905046865931700337702524047991423734848000844","issuerClaimNonRevMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerClaimNonRevMtpAuxHi":"0","issuerClaimNonRevMtpAuxHv":"0","issuerClaimNonRevMtpNoAux":"1","claimSchema":"74977327600848231385663280181476307657","issuerClaimSignatureR8x":"0","issuerClaimSignatureR8y":"0","issuerClaimSignatureS":"0","issuerAuthClaim":["0","0","0","0","0","0","0","0"],"issuerAuthClaimMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerAuthClaimNonRevMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerAuthClaimNonRevMtpAuxHi":"0","issuerAuthClaimNonRevMtpAuxHv":"0","issuerAuthClaimNonRevMtpNoAux":"0","issuerAuthClaimsTreeRoot":"0","issuerAuthRevTreeRoot":"0","issuerAuthRootsTreeRoot":"0","issuerAuthState":"0","isRevocationChecked":1,"claimPathNotExists":0,"claimPathMtp":["20339377203772305341811217028433821450488614130701398378692634277562001985608","11933107200150122400824598729420157563957281318882971696220077028927460055808","7519717914785235098147247580991543123760904594098768992380227396525519134082","0","7234734700882409562051669071537722159277854149198231521046768401160975042526","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"claimPathMtpNoAux":"0","claimPathMtpAuxHi":"0","claimPathMtpAuxHv":"0","claimPathKey":"20376033832371109177683048456014525905119173674985843915445634726167450989630","claimPathValue":"19960424","operator":3,"slotIndex":0,"timestamp":1700655718,"value":["1","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerClaimMtp":["3356738306440460467584170579991940197172182577060925476949151659410412574707","0","8492005947035117331601304230085928449440142032894061581492108583460376442873","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerClaimClaimsTreeRoot":"11183983014422730135576411221308508161718614147165981937885222857422656811863","issuerClaimRevTreeRoot":"0","issuerClaimRootsTreeRoot":"9814957174382091206447535304534337089274740570836732274494171347479415627073","issuerClaimIdenState":"17210377343470156509439713038934318940268975754635034654510710013642161407558","proofType":"2","authClaim":["0","0","0","0","0","0","0","0"],"authClaimIncMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"authClaimNonRevMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"authClaimNonRevMtpAuxHi":"0","authClaimNonRevMtpAuxHv":"0","authClaimNonRevMtpNoAux":"0","challenge":"0","challengeSignatureR8x":"0","challengeSignatureR8y":"0","challengeSignatureS":"0","userClaimsTreeRoot":"0","userRevTreeRoot":"0","userRootsTreeRoot":"0","userState":"0","gistRoot":"0","gistMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"gistMtpAuxHi":"0","gistMtpAuxHv":"0","gistMtpNoAux":"0","linkNonce":"0","verifierID":"0","verifierSessionID":"0","authEnabled":"0"} +{"requestID":"84239","userGenesisID":"29850258931222017705467685171096861881207969140433234245484437588206883330","profileNonce":"0","claimSubjectProfileNonce":"0","issuerID":"21838234188363965811194222691354401595924521809699081663778070280584106498","issuerClaim":["14366836738280263696847396792315741188809","29850258931222017705467685171096861881207969140433234245484437588206883330","10864646027499383081088961255934500336998198319784699191293859938525393920224","0","227737578863135127229601455765","0","0","0"],"issuerClaimNonRevClaimsTreeRoot":"7068285887070269919744619817939427362270424612960356565961095251320521860039","issuerClaimNonRevRevTreeRoot":"0","issuerClaimNonRevRootsTreeRoot":"6658769487718742664201419516702702972752809392331568580084074484906569715043","issuerClaimNonRevState":"684102056806145688850264533373905046865931700337702524047991423734848000844","issuerClaimNonRevMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerClaimNonRevMtpAuxHi":"0","issuerClaimNonRevMtpAuxHv":"0","issuerClaimNonRevMtpNoAux":"1","claimSchema":"74977327600848231385663280181476307657","issuerClaimSignatureR8x":"0","issuerClaimSignatureR8y":"0","issuerClaimSignatureS":"0","issuerAuthClaim":["0","0","0","0","0","0","0","0"],"issuerAuthClaimMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerAuthClaimNonRevMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerAuthClaimNonRevMtpAuxHi":"0","issuerAuthClaimNonRevMtpAuxHv":"0","issuerAuthClaimNonRevMtpNoAux":"0","issuerAuthClaimsTreeRoot":"0","issuerAuthRevTreeRoot":"0","issuerAuthRootsTreeRoot":"0","issuerAuthState":"0","isRevocationChecked":1,"claimPathNotExists":0,"claimPathMtp":["20339377203772305341811217028433821450488614130701398378692634277562001985608","11933107200150122400824598729420157563957281318882971696220077028927460055808","7519717914785235098147247580991543123760904594098768992380227396525519134082","0","7234734700882409562051669071537722159277854149198231521046768401160975042526","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"claimPathMtpNoAux":"0","claimPathMtpAuxHi":"0","claimPathMtpAuxHv":"0","claimPathKey":"20376033832371109177683048456014525905119173674985843915445634726167450989630","claimPathValue":"19960424","operator":3,"slotIndex":0,"timestamp":1703082374,"value":["1","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerClaimMtp":["3356738306440460467584170579991940197172182577060925476949151659410412574707","0","8492005947035117331601304230085928449440142032894061581492108583460376442873","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerClaimClaimsTreeRoot":"11183983014422730135576411221308508161718614147165981937885222857422656811863","issuerClaimRevTreeRoot":"0","issuerClaimRootsTreeRoot":"9814957174382091206447535304534337089274740570836732274494171347479415627073","issuerClaimIdenState":"17210377343470156509439713038934318940268975754635034654510710013642161407558","proofType":"2","authClaim":["80551937543569765027552589160822318028","0","18241173998748741404449730252371072752192413092443487065695081933963692076033","1330367256434394070988833218825135639784691088078528177530136343975207856992","0","0","0","0"],"authClaimIncMtp":["0","16122227591077608214426811451297936630776316583414054146380942393644089006753","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"authClaimNonRevMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"authClaimNonRevMtpAuxHi":"0","authClaimNonRevMtpAuxHv":"0","authClaimNonRevMtpNoAux":"1","challenge":"14274525809225776254148766756521966776753328068184040579440171048150881324976","challengeSignatureR8x":"7946547749202203153722495838633053001554440836922580938487145942616579191846","challengeSignatureR8y":"1010706202943890306207376437846808611140904467814086285233664632781903393699","challengeSignatureS":"1794862408952810680899390709999774819913937156125801964108882723761943086529","userClaimsTreeRoot":"12863526460000963806360638100765589244767101189459134829137262186265339590400","userRevTreeRoot":"0","userRootsTreeRoot":"0","userState":"3455793648389793511224972913807237799755511487265044435383221641855224272477","gistRoot":"5005919421435686441886912154983595081356506147906956636160716123399604497694","gistMtp":["9572034982910400342435969278331518000622332242067560582395787734704675688171","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"gistMtpAuxHi":"0","gistMtpAuxHv":"0","gistMtpNoAux":"1","linkNonce":"0","verifierID":"0","nullifierSessionID":"0","authEnabled":"1"} diff --git a/testdata/atomic_query_v3_on_chain_sig_inputs.json b/testdata/atomic_query_v3_on_chain_sig_inputs.json index 6c2ece2..cf41f97 100644 --- a/testdata/atomic_query_v3_on_chain_sig_inputs.json +++ b/testdata/atomic_query_v3_on_chain_sig_inputs.json @@ -2,6 +2,8 @@ "id": "2qNcq2LGHFyikZaWfsif1vjrpKFuTowsRV9U1oEhkB", "profileNonce": "0", "claimSubjectProfileNonce": "0", + "verifierId": "did:polygonid:polygon:mumbai:2qNcq2LGHFyikZaWfsif1vjrpKFuTowsRV9U1oEhkB", + "linkNonce": "456", "authClaim":[ "80551937543569765027552589160822318028", "0", @@ -134,6 +136,9 @@ } }, "proofType": "BJJSignature2021" + }, + "params": { + "nullifierSessionId": "123" } } } diff --git a/testdata/atomic_query_v3_on_chain_sig_output.json b/testdata/atomic_query_v3_on_chain_sig_output.json index 067ae05..099bbbf 100644 --- a/testdata/atomic_query_v3_on_chain_sig_output.json +++ b/testdata/atomic_query_v3_on_chain_sig_output.json @@ -1 +1 @@ -{"requestID":"84239","userGenesisID":"29850258931222017705467685171096861881207969140433234245484437588206883330","profileNonce":"0","claimSubjectProfileNonce":"0","issuerID":"21838234188363965811194222691354401595924521809699081663778070280584106498","issuerClaim":["14366836738280263696847396792315741188809","29850258931222017705467685171096861881207969140433234245484437588206883330","10864646027499383081088961255934500336998198319784699191293859938525393920224","0","227737578863135127229601455765","0","0","0"],"issuerClaimNonRevClaimsTreeRoot":"7068285887070269919744619817939427362270424612960356565961095251320521860039","issuerClaimNonRevRevTreeRoot":"0","issuerClaimNonRevRootsTreeRoot":"6658769487718742664201419516702702972752809392331568580084074484906569715043","issuerClaimNonRevState":"684102056806145688850264533373905046865931700337702524047991423734848000844","issuerClaimNonRevMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerClaimNonRevMtpAuxHi":"0","issuerClaimNonRevMtpAuxHv":"0","issuerClaimNonRevMtpNoAux":"1","claimSchema":"74977327600848231385663280181476307657","issuerClaimSignatureR8x":"11747846712575976789103695537037523332562075145011580583500049175210535569369","issuerClaimSignatureR8y":"10981385110516197518723572390806574597443411774630331809774356611630717339862","issuerClaimSignatureS":"175512676981649870996494291106146284210153217389851634475411077368175472166","issuerAuthClaim":["80551937543569765027552589160822318028","0","9356728240655771187463730053883278527612431391274247153407488694405943280894","2712679483947690800115343577504706960957388135060623045660205089766118611372","0","0","0","0"],"issuerAuthClaimMtp":["8492005947035117331601304230085928449440142032894061581492108583460376442873","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerAuthClaimNonRevMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerAuthClaimNonRevMtpAuxHi":"0","issuerAuthClaimNonRevMtpAuxHv":"0","issuerAuthClaimNonRevMtpNoAux":"1","issuerAuthClaimsTreeRoot":"5674589952892738312963722887009387330891967351794392069659222431201563594316","issuerAuthRevTreeRoot":"0","issuerAuthRootsTreeRoot":"0","issuerAuthState":"18601689898498710842095477465587677824190615945643454000265359503447837661664","isRevocationChecked":1,"claimPathNotExists":0,"claimPathMtp":["20339377203772305341811217028433821450488614130701398378692634277562001985608","11933107200150122400824598729420157563957281318882971696220077028927460055808","7519717914785235098147247580991543123760904594098768992380227396525519134082","0","7234734700882409562051669071537722159277854149198231521046768401160975042526","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"claimPathMtpNoAux":"0","claimPathMtpAuxHi":"0","claimPathMtpAuxHv":"0","claimPathKey":"20376033832371109177683048456014525905119173674985843915445634726167450989630","claimPathValue":"19960424","operator":3,"slotIndex":0,"timestamp":1700655758,"value":["1","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerClaimMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerClaimClaimsTreeRoot":"0","issuerClaimRevTreeRoot":"0","issuerClaimRootsTreeRoot":"0","issuerClaimIdenState":"0","proofType":"1","authClaim":["0","0","0","0","0","0","0","0"],"authClaimIncMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"authClaimNonRevMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"authClaimNonRevMtpAuxHi":"0","authClaimNonRevMtpAuxHv":"0","authClaimNonRevMtpNoAux":"0","challenge":"0","challengeSignatureR8x":"0","challengeSignatureR8y":"0","challengeSignatureS":"0","userClaimsTreeRoot":"0","userRevTreeRoot":"0","userRootsTreeRoot":"0","userState":"0","gistRoot":"0","gistMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"gistMtpAuxHi":"0","gistMtpAuxHv":"0","gistMtpNoAux":"0","linkNonce":"0","verifierID":"0","verifierSessionID":"0","authEnabled":"0"} +{"requestID":"84239","userGenesisID":"29850258931222017705467685171096861881207969140433234245484437588206883330","profileNonce":"0","claimSubjectProfileNonce":"0","issuerID":"21838234188363965811194222691354401595924521809699081663778070280584106498","issuerClaim":["14366836738280263696847396792315741188809","29850258931222017705467685171096861881207969140433234245484437588206883330","10864646027499383081088961255934500336998198319784699191293859938525393920224","0","227737578863135127229601455765","0","0","0"],"issuerClaimNonRevClaimsTreeRoot":"7068285887070269919744619817939427362270424612960356565961095251320521860039","issuerClaimNonRevRevTreeRoot":"0","issuerClaimNonRevRootsTreeRoot":"6658769487718742664201419516702702972752809392331568580084074484906569715043","issuerClaimNonRevState":"684102056806145688850264533373905046865931700337702524047991423734848000844","issuerClaimNonRevMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerClaimNonRevMtpAuxHi":"0","issuerClaimNonRevMtpAuxHv":"0","issuerClaimNonRevMtpNoAux":"1","claimSchema":"74977327600848231385663280181476307657","issuerClaimSignatureR8x":"11747846712575976789103695537037523332562075145011580583500049175210535569369","issuerClaimSignatureR8y":"10981385110516197518723572390806574597443411774630331809774356611630717339862","issuerClaimSignatureS":"175512676981649870996494291106146284210153217389851634475411077368175472166","issuerAuthClaim":["80551937543569765027552589160822318028","0","9356728240655771187463730053883278527612431391274247153407488694405943280894","2712679483947690800115343577504706960957388135060623045660205089766118611372","0","0","0","0"],"issuerAuthClaimMtp":["8492005947035117331601304230085928449440142032894061581492108583460376442873","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerAuthClaimNonRevMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerAuthClaimNonRevMtpAuxHi":"0","issuerAuthClaimNonRevMtpAuxHv":"0","issuerAuthClaimNonRevMtpNoAux":"1","issuerAuthClaimsTreeRoot":"5674589952892738312963722887009387330891967351794392069659222431201563594316","issuerAuthRevTreeRoot":"0","issuerAuthRootsTreeRoot":"0","issuerAuthState":"18601689898498710842095477465587677824190615945643454000265359503447837661664","isRevocationChecked":1,"claimPathNotExists":0,"claimPathMtp":["20339377203772305341811217028433821450488614130701398378692634277562001985608","11933107200150122400824598729420157563957281318882971696220077028927460055808","7519717914785235098147247580991543123760904594098768992380227396525519134082","0","7234734700882409562051669071537722159277854149198231521046768401160975042526","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"claimPathMtpNoAux":"0","claimPathMtpAuxHi":"0","claimPathMtpAuxHv":"0","claimPathKey":"20376033832371109177683048456014525905119173674985843915445634726167450989630","claimPathValue":"19960424","operator":3,"slotIndex":0,"timestamp":1703082618,"value":["1","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerClaimMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerClaimClaimsTreeRoot":"0","issuerClaimRevTreeRoot":"0","issuerClaimRootsTreeRoot":"0","issuerClaimIdenState":"0","proofType":"1","authClaim":["80551937543569765027552589160822318028","0","18241173998748741404449730252371072752192413092443487065695081933963692076033","1330367256434394070988833218825135639784691088078528177530136343975207856992","0","0","0","0"],"authClaimIncMtp":["0","16122227591077608214426811451297936630776316583414054146380942393644089006753","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"authClaimNonRevMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"authClaimNonRevMtpAuxHi":"0","authClaimNonRevMtpAuxHv":"0","authClaimNonRevMtpNoAux":"1","challenge":"14274525809225776254148766756521966776753328068184040579440171048150881324976","challengeSignatureR8x":"7946547749202203153722495838633053001554440836922580938487145942616579191846","challengeSignatureR8y":"1010706202943890306207376437846808611140904467814086285233664632781903393699","challengeSignatureS":"1794862408952810680899390709999774819913937156125801964108882723761943086529","userClaimsTreeRoot":"12863526460000963806360638100765589244767101189459134829137262186265339590400","userRevTreeRoot":"0","userRootsTreeRoot":"0","userState":"3455793648389793511224972913807237799755511487265044435383221641855224272477","gistRoot":"5005919421435686441886912154983595081356506147906956636160716123399604497694","gistMtp":["9572034982910400342435969278331518000622332242067560582395787734704675688171","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"gistMtpAuxHi":"0","gistMtpAuxHv":"0","gistMtpNoAux":"1","linkNonce":"456","verifierID":"29850258931222017705467685171096861881207969140433234245484437588206883330","nullifierSessionID":"123","authEnabled":"1"} diff --git a/testdata/atomic_query_v3_on_chain_tx_data_inputs.json b/testdata/atomic_query_v3_on_chain_tx_data_inputs.json new file mode 100644 index 0000000..42b9247 --- /dev/null +++ b/testdata/atomic_query_v3_on_chain_tx_data_inputs.json @@ -0,0 +1,145 @@ +{ + "id": "2qNcq2LGHFyikZaWfsif1vjrpKFuTowsRV9U1oEhkB", + "profileNonce": "0", + "claimSubjectProfileNonce": "0", + "authClaim":[ + "80551937543569765027552589160822318028", + "0", + "18241173998748741404449730252371072752192413092443487065695081933963692076033", + "1330367256434394070988833218825135639784691088078528177530136343975207856992", + "0","0","0","0" + ], + "authClaimIncMtp":{ + "existence":true, + "siblings":[ + "0", + "16122227591077608214426811451297936630776316583414054146380942393644089006753" + ] + }, + "authClaimNonRevMtp":{"existence":false,"siblings":[]}, + "treeState":{ + "state":"3455793648389793511224972913807237799755511487265044435383221641855224272477", + "claimsRoot":"12863526460000963806360638100765589244767101189459134829137262186265339590400", + "revocationRoot":"0", + "rootOfRoots":"0" + }, + "gistProof": { + "root": "5005919421435686441886912154983595081356506147906956636160716123399604497694", + "proof": { + "existence": false, + "siblings": [ + "9572034982910400342435969278331518000622332242067560582395787734704675688171", + "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", + "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", + "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", + "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", + "0", "0", "0", "0", "0", "0", "0" + ] + } + }, + + "signature": "a373921f2be69febb33730a0ce85864476364317d51df12a4d051da5180a3c02c1051aa3a5405538d26c998d34ed865065d73685bc7e8cf2546f87de2adbf703", + "challenge": "14274525809225776254148766756521966776753328068184040579440171048150881324976", + + "verifiableCredentials": { + "id": "http://localhost:8001/api/v1/identities/did:polygonid:polygon:mumbai:2qDnyCaxj4zdYmj6LbegYMjWSnkbKAyqtq31YeuyZV/claims/63d05676-b22b-11ed-b489-e24d9cbdb31c", + "@context": [ + "https://www.w3.org/2018/credentials/v1", + "https://raw.githubusercontent.com/iden3/claim-schema-vocab/main/schemas/json-ld/iden3credential-v2.json-ld", + "https://raw.githubusercontent.com/iden3/claim-schema-vocab/main/schemas/json-ld/kyc-v3.json-ld" + ], + "type": [ + "VerifiableCredential", + "KYCAgeCredential" + ], + "expirationDate": "2361-03-21T15:14:48-04:00", + "issuanceDate": "2023-02-21T16:04:54.628883-05:00", + "credentialSubject": { + "birthday": 19960424, + "documentType": 2, + "id": "did:polygonid:polygon:mumbai:2qNcq2LGHFyikZaWfsif1vjrpKFuTowsRV9U1oEhkB", + "type": "KYCAgeCredential" + }, + "credentialStatus": { + "id": "http://localhost:8001/api/v1/identities/did%3Apolygonid%3Apolygon%3Amumbai%3A2qDnyCaxj4zdYmj6LbegYMjWSnkbKAyqtq31YeuyZV/claims/revocation/status/3972757", + "revocationNonce": 3972757, + "type": "SparseMerkleTreeProof" + }, + "issuer": "did:polygonid:polygon:mumbai:2qDnyCaxj4zdYmj6LbegYMjWSnkbKAyqtq31YeuyZV", + "credentialSchema": { + "id": "https://raw.githubusercontent.com/iden3/claim-schema-vocab/main/schemas/json/KYCAgeCredential-v3.json", + "type": "JsonSchemaValidator2018" + }, + "proof": [ + { + "type": "BJJSignature2021", + "issuerData": { + "id": "did:polygonid:polygon:mumbai:2qDnyCaxj4zdYmj6LbegYMjWSnkbKAyqtq31YeuyZV", + "state": { + "claimsTreeRoot": "4c4eb593366ca7ba87c8c39678324cfc50c088d1714cb2bfb1d4198f3fb48b0c", + "value": "e05968ec751d34825931e5faae3b1946af92386f7a41db02cb6acfd8f12e2029" + }, + "authCoreClaim": "cca3371a6cb1b715004407e325bd993c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fe4494aaaef099b11a5cdd64c486d213e389338be963e7858d8ecf6773b8af14ac5981df12305e138b45f3985565852db666e4419ee07487c1a75b447a52ff050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "mtp": { + "existence": true, + "siblings": [ + "8492005947035117331601304230085928449440142032894061581492108583460376442873" + ] + }, + "credentialStatus": { + "id": "http://localhost:8001/api/v1/identities/did%3Apolygonid%3Apolygon%3Amumbai%3A2qDnyCaxj4zdYmj6LbegYMjWSnkbKAyqtq31YeuyZV/claims/revocation/status/0", + "revocationNonce": 0, + "type": "SparseMerkleTreeProof" + } + }, + "coreClaim": "c9b2370371b7fa8b3dab2a5ba81b68382a0000000000000000000000000000000212df9ac65c2ec1e545f9fa614fccfaba60435189f3d5a68feee8a307e51000e0209be826b8670e7c970d2eca0632123c9cbb6b5f5a5cf1480ad2b3f62b05180000000000000000000000000000000000000000000000000000000000000000959e3c0000000000281cdcdf0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "signature": "d608a6be79730a6bf873438ff23b31b9e1d3caa5d2a30470ec3b2ff3633e4798262e192336b0b4588cc0c80417b4cd6e89182451f20cfddc77d784022f566300" + }, + { + "type": "Iden3SparseMerkleProof", + "issuerData": { + "id": "did:polygonid:polygon:mumbai:2qDnyCaxj4zdYmj6LbegYMjWSnkbKAyqtq31YeuyZV", + "state": { + "txId": "0x51633300d6d5fb013134d4ea48663b7246a6b333c09bfafe4c440226b79ba903", + "blockTimestamp": 1677013536, + "blockNumber": 208660, + "rootOfRoots": "411df2b18d24592fd0730cbdb2425894cb4a24dac85328188f891333a311b315", + "claimsTreeRoot": "57b358eaacc24c2563f003a748a5b7f45b2b9ae1cd83e70085bfe0dcf9e8b918", + "revocationTreeRoot": "0000000000000000000000000000000000000000000000000000000000000000", + "value": "4646aede7443039a4bfd8f069d8f7f74f5075f6b794fb04663ab02fb76ba0c26" + } + }, + "coreClaim": "c9b2370371b7fa8b3dab2a5ba81b68382a0000000000000000000000000000000212df9ac65c2ec1e545f9fa614fccfaba60435189f3d5a68feee8a307e51000e0209be826b8670e7c970d2eca0632123c9cbb6b5f5a5cf1480ad2b3f62b05180000000000000000000000000000000000000000000000000000000000000000959e3c0000000000281cdcdf0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "mtp": { + "existence": true, + "siblings": [ + "3356738306440460467584170579991940197172182577060925476949151659410412574707", + "0", + "8492005947035117331601304230085928449440142032894061581492108583460376442873" + ] + } + } + ] + }, + "request": { + "id": 84239, + "circuitId": "credentialAtomicQueryV3OnChain", + "query": { + "allowedIssuers": "unused", + "context": "https://raw.githubusercontent.com/iden3/claim-schema-vocab/main/schemas/json-ld/kyc-v3.json-ld", + "type": "KYCAgeCredential", + "credentialSubject": { + "birthday": { + "$gt": 1 + } + }, + "proofType": "Iden3SparseMerkleTreeProof" + } + }, + "transactionData": { + "chainId": 80001, + "contractAddress": "0x199194Cb1884BF288757fac94B3349Cefef93629", + "methodId": "b68967e2", + "network": "polygon-mumbai" + } +} diff --git a/testdata/atomic_query_v3_on_chain_tx_data_output.json b/testdata/atomic_query_v3_on_chain_tx_data_output.json new file mode 100644 index 0000000..9dcb5af --- /dev/null +++ b/testdata/atomic_query_v3_on_chain_tx_data_output.json @@ -0,0 +1 @@ +{"requestID":"84239","userGenesisID":"29850258931222017705467685171096861881207969140433234245484437588206883330","profileNonce":"0","claimSubjectProfileNonce":"0","issuerID":"21838234188363965811194222691354401595924521809699081663778070280584106498","issuerClaim":["14366836738280263696847396792315741188809","29850258931222017705467685171096861881207969140433234245484437588206883330","10864646027499383081088961255934500336998198319784699191293859938525393920224","0","227737578863135127229601455765","0","0","0"],"issuerClaimNonRevClaimsTreeRoot":"7068285887070269919744619817939427362270424612960356565961095251320521860039","issuerClaimNonRevRevTreeRoot":"0","issuerClaimNonRevRootsTreeRoot":"6658769487718742664201419516702702972752809392331568580084074484906569715043","issuerClaimNonRevState":"684102056806145688850264533373905046865931700337702524047991423734848000844","issuerClaimNonRevMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerClaimNonRevMtpAuxHi":"0","issuerClaimNonRevMtpAuxHv":"0","issuerClaimNonRevMtpNoAux":"1","claimSchema":"74977327600848231385663280181476307657","issuerClaimSignatureR8x":"0","issuerClaimSignatureR8y":"0","issuerClaimSignatureS":"0","issuerAuthClaim":["0","0","0","0","0","0","0","0"],"issuerAuthClaimMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerAuthClaimNonRevMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerAuthClaimNonRevMtpAuxHi":"0","issuerAuthClaimNonRevMtpAuxHv":"0","issuerAuthClaimNonRevMtpNoAux":"0","issuerAuthClaimsTreeRoot":"0","issuerAuthRevTreeRoot":"0","issuerAuthRootsTreeRoot":"0","issuerAuthState":"0","isRevocationChecked":1,"claimPathNotExists":0,"claimPathMtp":["20339377203772305341811217028433821450488614130701398378692634277562001985608","11933107200150122400824598729420157563957281318882971696220077028927460055808","7519717914785235098147247580991543123760904594098768992380227396525519134082","0","7234734700882409562051669071537722159277854149198231521046768401160975042526","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"claimPathMtpNoAux":"0","claimPathMtpAuxHi":"0","claimPathMtpAuxHv":"0","claimPathKey":"20376033832371109177683048456014525905119173674985843915445634726167450989630","claimPathValue":"19960424","operator":3,"slotIndex":0,"timestamp":1703082663,"value":["1","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerClaimMtp":["3356738306440460467584170579991940197172182577060925476949151659410412574707","0","8492005947035117331601304230085928449440142032894061581492108583460376442873","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerClaimClaimsTreeRoot":"11183983014422730135576411221308508161718614147165981937885222857422656811863","issuerClaimRevTreeRoot":"0","issuerClaimRootsTreeRoot":"9814957174382091206447535304534337089274740570836732274494171347479415627073","issuerClaimIdenState":"17210377343470156509439713038934318940268975754635034654510710013642161407558","proofType":"2","authClaim":["80551937543569765027552589160822318028","0","18241173998748741404449730252371072752192413092443487065695081933963692076033","1330367256434394070988833218825135639784691088078528177530136343975207856992","0","0","0","0"],"authClaimIncMtp":["0","16122227591077608214426811451297936630776316583414054146380942393644089006753","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"authClaimNonRevMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"authClaimNonRevMtpAuxHi":"0","authClaimNonRevMtpAuxHv":"0","authClaimNonRevMtpNoAux":"1","challenge":"14274525809225776254148766756521966776753328068184040579440171048150881324976","challengeSignatureR8x":"7946547749202203153722495838633053001554440836922580938487145942616579191846","challengeSignatureR8y":"1010706202943890306207376437846808611140904467814086285233664632781903393699","challengeSignatureS":"1794862408952810680899390709999774819913937156125801964108882723761943086529","userClaimsTreeRoot":"12863526460000963806360638100765589244767101189459134829137262186265339590400","userRevTreeRoot":"0","userRootsTreeRoot":"0","userState":"3455793648389793511224972913807237799755511487265044435383221641855224272477","gistRoot":"5005919421435686441886912154983595081356506147906956636160716123399604497694","gistMtp":["9572034982910400342435969278331518000622332242067560582395787734704675688171","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"gistMtpAuxHi":"0","gistMtpAuxHv":"0","gistMtpNoAux":"1","linkNonce":"0","verifierID":"17966356888215056651324659145404695842840677593163532338422715818832826881","nullifierSessionID":"0","authEnabled":"1"} diff --git a/testdata/atomic_query_v3_sig_output.json b/testdata/atomic_query_v3_sig_output.json index abd5af8..9d16d12 100644 --- a/testdata/atomic_query_v3_sig_output.json +++ b/testdata/atomic_query_v3_sig_output.json @@ -1 +1 @@ -{"requestID":"84239","userGenesisID":"23529006562716512365284470649701500265624720888290140936730678617958584833","profileNonce":"123","claimSubjectProfileNonce":"234","issuerID":"24687982279323932130156062863272601148565852640780662148237991047021531649","issuerClaim":["14366836738280263696847396792315741188809","23529006562716512365284470649701500265624720888290140936730678617958584833","17078634269008282508978520614899691176511963995966531315408520179071582685488","0","227737578863135127231973914489","0","0","0"],"issuerClaimNonRevClaimsTreeRoot":"14200687038162658423445687080642044812853023721722929563326842955302298883583","issuerClaimNonRevRevTreeRoot":"0","issuerClaimNonRevRootsTreeRoot":"13682688696715423561569357932088650136406153300979709261864316589023788667102","issuerClaimNonRevState":"3115266220827509894065475154280381877956215721974280577792238675116811787563","issuerClaimNonRevMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerClaimNonRevMtpAuxHi":"0","issuerClaimNonRevMtpAuxHv":"0","issuerClaimNonRevMtpNoAux":"1","claimSchema":"74977327600848231385663280181476307657","issuerClaimSignatureR8x":"3401132352748467801186691242723388966501310737760201232781394312478968516811","issuerClaimSignatureR8y":"14639355651206981871457530059828593759963127395406402287301277479863439831536","issuerClaimSignatureS":"1099373157831922260084450256841834204662056134831425771868248575565054213030","issuerAuthClaim":["301485908906857522017021291028488077057","0","20800047139619078765913685999449630237159541056274690213755814945885628284351","13568319634556872698924849294662464891562965489754551735323123867002438151727","0","0","0","0"],"issuerAuthClaimMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerAuthClaimNonRevMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerAuthClaimNonRevMtpAuxHi":"0","issuerAuthClaimNonRevMtpAuxHv":"0","issuerAuthClaimNonRevMtpNoAux":"1","issuerAuthClaimsTreeRoot":"2515815517939277878486495591852893192186484331807066957639537744648750241809","issuerAuthRevTreeRoot":"0","issuerAuthRootsTreeRoot":"0","issuerAuthState":"7308102509912286854966990626249960190664829551279914873017205641496138177594","isRevocationChecked":1,"claimPathNotExists":0,"claimPathMtp":["12517150030576619527252492821655890410294919107657416409973519542186017163807","11933107200150122400824598729420157563957281318882971696220077028927460055808","13748716966604096441336188506766329119346066422143435538531763565408555859415","0","20486600725567702962288985115041578424966996747359110560639957588130104510049","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"claimPathMtpNoAux":"0","claimPathMtpAuxHi":"0","claimPathMtpAuxHv":"0","claimPathKey":"17040667407194471738958340146498954457187839778402591036538781364266841966","claimPathValue":"2","operator":1,"slotIndex":0,"timestamp":1700555951,"value":["2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerClaimMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerClaimClaimsTreeRoot":"0","issuerClaimRevTreeRoot":"0","issuerClaimRootsTreeRoot":"0","issuerClaimIdenState":"0","proofType":"1","linkNonce":"0","verifierID":"0","verifierSessionID":"0"} +{"requestID":"84239","userGenesisID":"23529006562716512365284470649701500265624720888290140936730678617958584833","profileNonce":"123","claimSubjectProfileNonce":"234","issuerID":"24687982279323932130156062863272601148565852640780662148237991047021531649","issuerClaim":["14366836738280263696847396792315741188809","23529006562716512365284470649701500265624720888290140936730678617958584833","17078634269008282508978520614899691176511963995966531315408520179071582685488","0","227737578863135127231973914489","0","0","0"],"issuerClaimNonRevClaimsTreeRoot":"14200687038162658423445687080642044812853023721722929563326842955302298883583","issuerClaimNonRevRevTreeRoot":"0","issuerClaimNonRevRootsTreeRoot":"13682688696715423561569357932088650136406153300979709261864316589023788667102","issuerClaimNonRevState":"3115266220827509894065475154280381877956215721974280577792238675116811787563","issuerClaimNonRevMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerClaimNonRevMtpAuxHi":"0","issuerClaimNonRevMtpAuxHv":"0","issuerClaimNonRevMtpNoAux":"1","claimSchema":"74977327600848231385663280181476307657","issuerClaimSignatureR8x":"3401132352748467801186691242723388966501310737760201232781394312478968516811","issuerClaimSignatureR8y":"14639355651206981871457530059828593759963127395406402287301277479863439831536","issuerClaimSignatureS":"1099373157831922260084450256841834204662056134831425771868248575565054213030","issuerAuthClaim":["301485908906857522017021291028488077057","0","20800047139619078765913685999449630237159541056274690213755814945885628284351","13568319634556872698924849294662464891562965489754551735323123867002438151727","0","0","0","0"],"issuerAuthClaimMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerAuthClaimNonRevMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerAuthClaimNonRevMtpAuxHi":"0","issuerAuthClaimNonRevMtpAuxHv":"0","issuerAuthClaimNonRevMtpNoAux":"1","issuerAuthClaimsTreeRoot":"2515815517939277878486495591852893192186484331807066957639537744648750241809","issuerAuthRevTreeRoot":"0","issuerAuthRootsTreeRoot":"0","issuerAuthState":"7308102509912286854966990626249960190664829551279914873017205641496138177594","isRevocationChecked":1,"claimPathNotExists":0,"claimPathMtp":["12517150030576619527252492821655890410294919107657416409973519542186017163807","11933107200150122400824598729420157563957281318882971696220077028927460055808","13748716966604096441336188506766329119346066422143435538531763565408555859415","0","20486600725567702962288985115041578424966996747359110560639957588130104510049","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"claimPathMtpNoAux":"0","claimPathMtpAuxHi":"0","claimPathMtpAuxHv":"0","claimPathKey":"17040667407194471738958340146498954457187839778402591036538781364266841966","claimPathValue":"2","operator":1,"slotIndex":0,"timestamp":1700555951,"value":["2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerClaimMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerClaimClaimsTreeRoot":"0","issuerClaimRevTreeRoot":"0","issuerClaimRootsTreeRoot":"0","issuerClaimIdenState":"0","proofType":"1","linkNonce":"0","verifierID":"0","nullifierSessionID":"0"} diff --git a/testdata/atomic_query_v3_sig_selective_disclosure_inputs.json b/testdata/atomic_query_v3_sig_selective_disclosure_inputs.json new file mode 100644 index 0000000..7d3507f --- /dev/null +++ b/testdata/atomic_query_v3_sig_selective_disclosure_inputs.json @@ -0,0 +1,97 @@ +{ + "id": "x1QQ78ktjAmia48pyEZENyurZhpRSdPMWmtv1zbsi", + "profileNonce": "123", + "claimSubjectProfileNonce": "234", + "verifiableCredentials": { + "id": "http://localhost:8001/api/v1/claim/98781b98-73c9-11ed-9818-3a0197678785", + "@context": [ + "https://www.w3.org/2018/credentials/v1", + "https://raw.githubusercontent.com/iden3/claim-schema-vocab/main/schemas/json-ld/iden3credential-v2.json-ld", + "https://raw.githubusercontent.com/iden3/claim-schema-vocab/main/schemas/json-ld/kyc-v3.json-ld" + ], + "type": [ + "VerifiableCredential", + "KYCAgeCredential" + ], + "expirationDate": "2361-03-21T21:14:48+02:00", + "issuanceDate": "2022-12-04T13:48:40.198183+02:00", + "credentialSubject": { + "birthday": 19960424, + "documentType": 2, + "id": "did:iden3:polygon:mumbai:x1QQ78ktjAmia48pyEZENyurZhpRSdPMWmtv1zbsi", + "type": "KYCAgeCredential" + }, + "credentialStatus": { + "id": "http://localhost:8001/api/v1/identities/did%3Aiden3%3Apolygon%3Amumbai%3AwuQT8NtFq736wsJahUuZpbA8otTzjKGyKj4i4yWtU/claims/revocation/status/2376431481", + "revocationNonce": 2376431481, + "type": "SparseMerkleTreeProof" + }, + "issuer": "did:iden3:polygon:mumbai:wuQT8NtFq736wsJahUuZpbA8otTzjKGyKj4i4yWtU", + "credentialSchema": { + "id": "https://raw.githubusercontent.com/iden3/claim-schema-vocab/main/schemas/json/KYCAgeCredential-v3.json", + "type": "JsonSchemaValidator2018" + }, + "proof": [ + { + "type": "BJJSignature2021", + "issuerData": { + "id": "did:iden3:polygon:mumbai:wuQT8NtFq736wsJahUuZpbA8otTzjKGyKj4i4yWtU", + "state": { + "claimsTreeRoot": "11185c59b43208eeb4fb732f20ece73d6d440c64c4b52422bf1a6deeafe68f05", + "value": "3a5ca99f6701addce176e9a9de1980cbc41034e75b24c3a2b04fd4cb4b3d2810" + }, + "authCoreClaim": "013fd3f623559d850fb5b02ff012d0e2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bf3d1641ec4e00d087f2480cc65a6ea9b211aace253182ebb81240d9d368fc2d2fee435fc728f05c6979b226f42958c84aa86b4ba54a77b72fc00e6e9265ff1d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "mtp": { + "existence": true, + "siblings": [] + }, + "credentialStatus": { + "id": "http://localhost:8001/api/v1/identities/did%3Aiden3%3Apolygon%3Amumbai%3AwuQT8NtFq736wsJahUuZpbA8otTzjKGyKj4i4yWtU/claims/revocation/status/0", + "revocationNonce": 0, + "type": "SparseMerkleTreeProof" + } + }, + "coreClaim": "c9b2370371b7fa8b3dab2a5ba81b68382a000000000000000000000000000000011285d39f7e4e930bf6621fd141407299cf5fba8829960dfe83ce5b23510d00304987e6a4740b263819a852beca7ac47b74ba515b57f873654b6cc2182ac22500000000000000000000000000000000000000000000000000000000000000007977a58d00000000281cdcdf0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "signature": "f0b19b1c5d5317535f5f3647f6c644294c8dfc3c4ef057a323b54e3ce8945d20a6fbd5ba9c8a1e5e87267e4f604818447148af6f51ac6cd10c1a10ca20396e02" + }, + { + "type": "Iden3SparseMerkleProof", + "issuerData": { + "id": "did:iden3:polygon:mumbai:wuQT8NtFq736wsJahUuZpbA8otTzjKGyKj4i4yWtU", + "state": { + "txId": "0x1cb9fed0226d628ed39d8cbdbc71c81246b6032eb3f31d8abcfca8e9c790d2c0", + "blockTimestamp": 1670154663, + "blockNumber": 29484252, + "rootOfRoots": "10d1069175d39632f025e200d441eea466ee9e71e0ad5a3841d5ecea6646f116", + "claimsTreeRoot": "06008861f3bbaf33062ba867480cd9becc14817433369b6edd306f747818fb14", + "revocationTreeRoot": "0000000000000000000000000000000000000000000000000000000000000000", + "value": "29810ec2eccf276d101a8ba9b4fa4c53d00f795413bfe2682c64c627184c1721" + } + }, + "coreClaim": "c9b2370371b7fa8b3dab2a5ba81b68382a000000000000000000000000000000011285d39f7e4e930bf6621fd141407299cf5fba8829960dfe83ce5b23510d00304987e6a4740b263819a852beca7ac47b74ba515b57f873654b6cc2182ac22500000000000000000000000000000000000000000000000000000000000000007977a58d00000000281cdcdf0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "mtp": { + "existence": true, + "siblings": [ + "21766464054775500261540970596627132740681360541808718916226684581420553493829", + "0", + "0", + "2515815517939277878486495591852893192186484331807066957639537744648750241809" + ] + } + } + ] + }, + "request": { + "id": 84239, + "circuitId": "credentialAtomicQueryV3", + "query": { + "allowedIssuers": "unused", + "context": "https://raw.githubusercontent.com/iden3/claim-schema-vocab/main/schemas/json-ld/kyc-v3.json-ld", + "type": "KYCAgeCredential", + "credentialSubject": { + "documentType": {} + }, + "proofType": "BJJSignature2021" + } + } +} diff --git a/testdata/atomic_query_v3_sig_selective_disclosure_output.json b/testdata/atomic_query_v3_sig_selective_disclosure_output.json new file mode 100644 index 0000000..b72df5d --- /dev/null +++ b/testdata/atomic_query_v3_sig_selective_disclosure_output.json @@ -0,0 +1 @@ +{"requestID":"84239","userGenesisID":"23529006562716512365284470649701500265624720888290140936730678617958584833","profileNonce":"123","claimSubjectProfileNonce":"234","issuerID":"24687982279323932130156062863272601148565852640780662148237991047021531649","issuerClaim":["14366836738280263696847396792315741188809","23529006562716512365284470649701500265624720888290140936730678617958584833","17078634269008282508978520614899691176511963995966531315408520179071582685488","0","227737578863135127231973914489","0","0","0"],"issuerClaimNonRevClaimsTreeRoot":"14200687038162658423445687080642044812853023721722929563326842955302298883583","issuerClaimNonRevRevTreeRoot":"0","issuerClaimNonRevRootsTreeRoot":"13682688696715423561569357932088650136406153300979709261864316589023788667102","issuerClaimNonRevState":"3115266220827509894065475154280381877956215721974280577792238675116811787563","issuerClaimNonRevMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerClaimNonRevMtpAuxHi":"0","issuerClaimNonRevMtpAuxHv":"0","issuerClaimNonRevMtpNoAux":"1","claimSchema":"74977327600848231385663280181476307657","issuerClaimSignatureR8x":"3401132352748467801186691242723388966501310737760201232781394312478968516811","issuerClaimSignatureR8y":"14639355651206981871457530059828593759963127395406402287301277479863439831536","issuerClaimSignatureS":"1099373157831922260084450256841834204662056134831425771868248575565054213030","issuerAuthClaim":["301485908906857522017021291028488077057","0","20800047139619078765913685999449630237159541056274690213755814945885628284351","13568319634556872698924849294662464891562965489754551735323123867002438151727","0","0","0","0"],"issuerAuthClaimMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerAuthClaimNonRevMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerAuthClaimNonRevMtpAuxHi":"0","issuerAuthClaimNonRevMtpAuxHv":"0","issuerAuthClaimNonRevMtpNoAux":"1","issuerAuthClaimsTreeRoot":"2515815517939277878486495591852893192186484331807066957639537744648750241809","issuerAuthRevTreeRoot":"0","issuerAuthRootsTreeRoot":"0","issuerAuthState":"7308102509912286854966990626249960190664829551279914873017205641496138177594","isRevocationChecked":1,"claimPathNotExists":0,"claimPathMtp":["12517150030576619527252492821655890410294919107657416409973519542186017163807","11933107200150122400824598729420157563957281318882971696220077028927460055808","13748716966604096441336188506766329119346066422143435538531763565408555859415","0","20486600725567702962288985115041578424966996747359110560639957588130104510049","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"claimPathMtpNoAux":"0","claimPathMtpAuxHi":"0","claimPathMtpAuxHv":"0","claimPathKey":"17040667407194471738958340146498954457187839778402591036538781364266841966","claimPathValue":"2","operator":16,"slotIndex":0,"timestamp":1700555951,"value":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerClaimMtp":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"issuerClaimClaimsTreeRoot":"0","issuerClaimRevTreeRoot":"0","issuerClaimRootsTreeRoot":"0","issuerClaimIdenState":"0","proofType":"1","linkNonce":"0","verifierID":"0","nullifierSessionID":"0"}