@zkpassport/sdk 0.10.0 → 0.11.0-beta.1

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.
@@ -1035,6 +1035,36 @@ var PublicInputChecker = class {
1035
1035
  }
1036
1036
  return { isCorrect, queryResultErrors };
1037
1037
  }
1038
+ static async checkCurrentDate(circuitName, proofData, validity, queryResultErrors) {
1039
+ const currentTime = /* @__PURE__ */ new Date();
1040
+ const today = new Date(
1041
+ currentTime.getFullYear(),
1042
+ currentTime.getMonth(),
1043
+ currentTime.getDate(),
1044
+ 0,
1045
+ 0,
1046
+ 0,
1047
+ 0
1048
+ );
1049
+ const currentDate = (0, import_utils.getCurrentDateFromDisclosureProof)(proofData);
1050
+ const todayToCurrentDate = today.getTime() - currentDate.getTime();
1051
+ const expectedDifference = validity ? validity * 1e3 : DEFAULT_VALIDITY * 1e3;
1052
+ const actualDifference = today.getTime() - (today.getTime() - expectedDifference);
1053
+ let isCorrect = true;
1054
+ if (todayToCurrentDate >= actualDifference) {
1055
+ console.warn("The date used to check the validity of the ID falls out of the validity period");
1056
+ isCorrect = false;
1057
+ if (!queryResultErrors[circuitName]) {
1058
+ queryResultErrors[circuitName] = {};
1059
+ }
1060
+ queryResultErrors[circuitName].date = {
1061
+ expected: `Difference: ${validity} seconds`,
1062
+ received: `Difference: ${Math.round(todayToCurrentDate / 1e3)} seconds`,
1063
+ message: "The date used to check the validity of the ID falls out of the validity period"
1064
+ };
1065
+ }
1066
+ return { isCorrect, queryResultErrors };
1067
+ }
1038
1068
  static async checkPublicInputs(domain, proofs, queryResult, validity, scope) {
1039
1069
  let commitmentIn;
1040
1070
  let commitmentOut;
@@ -1163,14 +1193,9 @@ var PublicInputChecker = class {
1163
1193
  if (!!committedInputs?.compare_age || !!committedInputs?.compare_age_evm) {
1164
1194
  const ageCommittedInputs = committedInputs?.compare_age ?? committedInputs?.compare_age_evm;
1165
1195
  const ageParameterCommitment = isForEVM ? await (0, import_utils.getAgeEVMParameterCommitment)(
1166
- ageCommittedInputs.currentDateTimestamp,
1167
1196
  ageCommittedInputs.minAge,
1168
1197
  ageCommittedInputs.maxAge
1169
- ) : await (0, import_utils.getAgeParameterCommitment)(
1170
- ageCommittedInputs.currentDateTimestamp,
1171
- ageCommittedInputs.minAge,
1172
- ageCommittedInputs.maxAge
1173
- );
1198
+ ) : await (0, import_utils.getAgeParameterCommitment)(ageCommittedInputs.minAge, ageCommittedInputs.maxAge);
1174
1199
  if (!paramCommitments.includes(ageParameterCommitment)) {
1175
1200
  console.warn("This proof does not verify the age");
1176
1201
  isCorrect = false;
@@ -1194,16 +1219,12 @@ var PublicInputChecker = class {
1194
1219
  const birthdateCommittedInputs = committedInputs?.compare_birthdate ?? committedInputs?.compare_birthdate_evm;
1195
1220
  const birthdateParameterCommitment = isForEVM ? await (0, import_utils.getDateEVMParameterCommitment)(
1196
1221
  import_utils.ProofType.BIRTHDATE,
1197
- birthdateCommittedInputs.currentDateTimestamp,
1198
1222
  birthdateCommittedInputs.minDateTimestamp,
1199
- birthdateCommittedInputs.maxDateTimestamp,
1200
- 0
1223
+ birthdateCommittedInputs.maxDateTimestamp
1201
1224
  ) : await (0, import_utils.getDateParameterCommitment)(
1202
1225
  import_utils.ProofType.BIRTHDATE,
1203
- birthdateCommittedInputs.currentDateTimestamp,
1204
1226
  birthdateCommittedInputs.minDateTimestamp,
1205
- birthdateCommittedInputs.maxDateTimestamp,
1206
- 0
1227
+ birthdateCommittedInputs.maxDateTimestamp
1207
1228
  );
1208
1229
  if (!paramCommitments.includes(birthdateParameterCommitment)) {
1209
1230
  console.warn("This proof does not verify the birthdate");
@@ -1233,7 +1254,6 @@ var PublicInputChecker = class {
1233
1254
  expiryCommittedInputs.maxDateTimestamp
1234
1255
  ) : await (0, import_utils.getDateParameterCommitment)(
1235
1256
  import_utils.ProofType.EXPIRY_DATE,
1236
- expiryCommittedInputs.currentDateTimestamp,
1237
1257
  expiryCommittedInputs.minDateTimestamp,
1238
1258
  expiryCommittedInputs.maxDateTimestamp
1239
1259
  );
@@ -1437,7 +1457,11 @@ var PublicInputChecker = class {
1437
1457
  if (!!committedInputs?.exclusion_check_sanctions || !!committedInputs?.exclusion_check_sanctions_evm) {
1438
1458
  const sanctionsBuilder = await import_utils.SanctionsBuilder.create();
1439
1459
  const exclusionCheckSanctionsCommittedInputs = committedInputs?.exclusion_check_sanctions ?? committedInputs?.exclusion_check_sanctions_evm;
1440
- const exclusionCheckSanctionsParameterCommitment = isForEVM ? await sanctionsBuilder.getSanctionsEvmParameterCommitment() : await sanctionsBuilder.getSanctionsParameterCommitment();
1460
+ const exclusionCheckSanctionsParameterCommitment = isForEVM ? await sanctionsBuilder.getSanctionsEvmParameterCommitment(
1461
+ exclusionCheckSanctionsCommittedInputs.isStrict
1462
+ ) : await sanctionsBuilder.getSanctionsParameterCommitment(
1463
+ exclusionCheckSanctionsCommittedInputs.isStrict
1464
+ );
1441
1465
  if (!paramCommitments.includes(exclusionCheckSanctionsParameterCommitment)) {
1442
1466
  console.warn("This proof does not verify the exclusion from the sanction lists");
1443
1467
  isCorrect = false;
@@ -1546,24 +1570,6 @@ var PublicInputChecker = class {
1546
1570
  };
1547
1571
  }
1548
1572
  commitmentOut = (0, import_utils.getCommitmentOutFromIntegrityProof)(proofData);
1549
- const currentDate = (0, import_utils.getCurrentDateFromIntegrityProof)(proofData);
1550
- const todayToCurrentDate = today.getTime() - currentDate.getTime();
1551
- const expectedDifference = validity ? validity * 1e3 : DEFAULT_VALIDITY * 1e3;
1552
- const actualDifference = today.getTime() - (today.getTime() - expectedDifference);
1553
- if (todayToCurrentDate >= actualDifference) {
1554
- console.warn(
1555
- `The date used to check the validity of the ID is older than the validity period`
1556
- );
1557
- isCorrect = false;
1558
- queryResultErrors.data_check_integrity = {
1559
- ...queryResultErrors.data_check_integrity,
1560
- date: {
1561
- expected: `Difference: ${validity} seconds`,
1562
- received: `Difference: ${Math.round(todayToCurrentDate / 1e3)} seconds`,
1563
- message: "The date used to check the validity of the ID is older than the validity period"
1564
- }
1565
- };
1566
- }
1567
1573
  } else if (proof.name === "disclose_bytes") {
1568
1574
  commitmentIn = (0, import_utils.getCommitmentInFromDisclosureProof)(proofData);
1569
1575
  if (commitmentIn !== commitmentOut) {
@@ -1616,6 +1622,17 @@ var PublicInputChecker = class {
1616
1622
  ...queryResultErrorsDisclose,
1617
1623
  ...queryResultErrorsScope
1618
1624
  };
1625
+ const { isCorrect: isCorrectCurrentDate, queryResultErrors: queryResultErrorsCurrentDate } = await this.checkCurrentDate(
1626
+ "disclose",
1627
+ proofData,
1628
+ validity ?? DEFAULT_VALIDITY,
1629
+ queryResultErrors
1630
+ );
1631
+ isCorrect = isCorrect && isCorrectCurrentDate;
1632
+ queryResultErrors = {
1633
+ ...queryResultErrors,
1634
+ ...queryResultErrorsCurrentDate
1635
+ };
1619
1636
  uniqueIdentifier = (0, import_utils.getNullifierFromDisclosureProof)(proofData).toString(10);
1620
1637
  uniqueIdentifierType = (0, import_utils.getNullifierTypeFromDisclosureProof)(proofData);
1621
1638
  } else if (proof.name === "compare_age") {
@@ -1637,7 +1654,6 @@ var PublicInputChecker = class {
1637
1654
  const paramCommitment = (0, import_utils.getParameterCommitmentFromDisclosureProof)(proofData);
1638
1655
  const committedInputs = proof.committedInputs?.compare_age;
1639
1656
  const calculatedParamCommitment = await (0, import_utils.getAgeParameterCommitment)(
1640
- committedInputs.currentDateTimestamp,
1641
1657
  committedInputs.minAge,
1642
1658
  committedInputs.maxAge
1643
1659
  );
@@ -1663,6 +1679,17 @@ var PublicInputChecker = class {
1663
1679
  ...queryResultErrorsAge,
1664
1680
  ...queryResultErrorsScope
1665
1681
  };
1682
+ const { isCorrect: isCorrectCurrentDate, queryResultErrors: queryResultErrorsCurrentDate } = await this.checkCurrentDate(
1683
+ "age",
1684
+ proofData,
1685
+ validity ?? DEFAULT_VALIDITY,
1686
+ queryResultErrors
1687
+ );
1688
+ isCorrect = isCorrect && isCorrectCurrentDate;
1689
+ queryResultErrors = {
1690
+ ...queryResultErrors,
1691
+ ...queryResultErrorsCurrentDate
1692
+ };
1666
1693
  uniqueIdentifier = (0, import_utils.getNullifierFromDisclosureProof)(proofData).toString(10);
1667
1694
  uniqueIdentifierType = (0, import_utils.getNullifierTypeFromDisclosureProof)(proofData);
1668
1695
  } else if (proof.name === "compare_birthdate") {
@@ -1685,7 +1712,6 @@ var PublicInputChecker = class {
1685
1712
  const committedInputs = proof.committedInputs?.compare_birthdate;
1686
1713
  const calculatedParamCommitment = await (0, import_utils.getDateParameterCommitment)(
1687
1714
  import_utils.ProofType.BIRTHDATE,
1688
- committedInputs.currentDateTimestamp,
1689
1715
  committedInputs.minDateTimestamp,
1690
1716
  committedInputs.maxDateTimestamp,
1691
1717
  0
@@ -1718,6 +1744,17 @@ var PublicInputChecker = class {
1718
1744
  ...queryResultErrorsBirthdate,
1719
1745
  ...queryResultErrorsScope
1720
1746
  };
1747
+ const { isCorrect: isCorrectCurrentDate, queryResultErrors: queryResultErrorsCurrentDate } = await this.checkCurrentDate(
1748
+ "birthdate",
1749
+ proofData,
1750
+ validity ?? DEFAULT_VALIDITY,
1751
+ queryResultErrors
1752
+ );
1753
+ isCorrect = isCorrect && isCorrectCurrentDate;
1754
+ queryResultErrors = {
1755
+ ...queryResultErrors,
1756
+ ...queryResultErrorsCurrentDate
1757
+ };
1721
1758
  uniqueIdentifier = (0, import_utils.getNullifierFromDisclosureProof)(proofData).toString(10);
1722
1759
  uniqueIdentifierType = (0, import_utils.getNullifierTypeFromDisclosureProof)(proofData);
1723
1760
  } else if (proof.name === "compare_expiry") {
@@ -1740,7 +1777,6 @@ var PublicInputChecker = class {
1740
1777
  const committedInputs = proof.committedInputs?.compare_expiry;
1741
1778
  const calculatedParamCommitment = await (0, import_utils.getDateParameterCommitment)(
1742
1779
  import_utils.ProofType.EXPIRY_DATE,
1743
- committedInputs.currentDateTimestamp,
1744
1780
  committedInputs.minDateTimestamp,
1745
1781
  committedInputs.maxDateTimestamp
1746
1782
  );
@@ -1772,6 +1808,17 @@ var PublicInputChecker = class {
1772
1808
  ...queryResultErrorsExpiryDate,
1773
1809
  ...queryResultErrorsScope
1774
1810
  };
1811
+ const { isCorrect: isCorrectCurrentDate, queryResultErrors: queryResultErrorsCurrentDate } = await this.checkCurrentDate(
1812
+ "expiry_date",
1813
+ proofData,
1814
+ validity ?? DEFAULT_VALIDITY,
1815
+ queryResultErrors
1816
+ );
1817
+ isCorrect = isCorrect && isCorrectCurrentDate;
1818
+ queryResultErrors = {
1819
+ ...queryResultErrors,
1820
+ ...queryResultErrorsCurrentDate
1821
+ };
1775
1822
  uniqueIdentifier = (0, import_utils.getNullifierFromDisclosureProof)(proofData).toString(10);
1776
1823
  uniqueIdentifierType = (0, import_utils.getNullifierTypeFromDisclosureProof)(proofData);
1777
1824
  } else if (proof.name === "exclusion_check_nationality") {
@@ -1828,6 +1875,17 @@ var PublicInputChecker = class {
1828
1875
  ...queryResultErrorsNationalityExclusion,
1829
1876
  ...queryResultErrorsScope
1830
1877
  };
1878
+ const { isCorrect: isCorrectCurrentDate, queryResultErrors: queryResultErrorsCurrentDate } = await this.checkCurrentDate(
1879
+ "nationality",
1880
+ proofData,
1881
+ validity ?? DEFAULT_VALIDITY,
1882
+ queryResultErrors
1883
+ );
1884
+ isCorrect = isCorrect && isCorrectCurrentDate;
1885
+ queryResultErrors = {
1886
+ ...queryResultErrors,
1887
+ ...queryResultErrorsCurrentDate
1888
+ };
1831
1889
  uniqueIdentifier = (0, import_utils.getNullifierFromDisclosureProof)(proofData).toString(10);
1832
1890
  uniqueIdentifierType = (0, import_utils.getNullifierTypeFromDisclosureProof)(proofData);
1833
1891
  } else if (proof.name === "exclusion_check_issuing_country") {
@@ -1884,6 +1942,17 @@ var PublicInputChecker = class {
1884
1942
  ...queryResultErrorsIssuingCountryExclusion,
1885
1943
  ...queryResultErrorsScope
1886
1944
  };
1945
+ const { isCorrect: isCorrectCurrentDate, queryResultErrors: queryResultErrorsCurrentDate } = await this.checkCurrentDate(
1946
+ "issuing_country",
1947
+ proofData,
1948
+ validity ?? DEFAULT_VALIDITY,
1949
+ queryResultErrors
1950
+ );
1951
+ isCorrect = isCorrect && isCorrectCurrentDate;
1952
+ queryResultErrors = {
1953
+ ...queryResultErrors,
1954
+ ...queryResultErrorsCurrentDate
1955
+ };
1887
1956
  uniqueIdentifier = (0, import_utils.getNullifierFromDisclosureProof)(proofData).toString(10);
1888
1957
  uniqueIdentifierType = (0, import_utils.getNullifierTypeFromDisclosureProof)(proofData);
1889
1958
  } else if (proof.name === "inclusion_check_nationality") {
@@ -1940,6 +2009,17 @@ var PublicInputChecker = class {
1940
2009
  ...queryResultErrorsNationalityInclusion,
1941
2010
  ...queryResultErrorsScope
1942
2011
  };
2012
+ const { isCorrect: isCorrectCurrentDate, queryResultErrors: queryResultErrorsCurrentDate } = await this.checkCurrentDate(
2013
+ "nationality",
2014
+ proofData,
2015
+ validity ?? DEFAULT_VALIDITY,
2016
+ queryResultErrors
2017
+ );
2018
+ isCorrect = isCorrect && isCorrectCurrentDate;
2019
+ queryResultErrors = {
2020
+ ...queryResultErrors,
2021
+ ...queryResultErrorsCurrentDate
2022
+ };
1943
2023
  uniqueIdentifier = (0, import_utils.getNullifierFromDisclosureProof)(proofData).toString(10);
1944
2024
  uniqueIdentifierType = (0, import_utils.getNullifierTypeFromDisclosureProof)(proofData);
1945
2025
  } else if (proof.name === "inclusion_check_issuing_country") {
@@ -1996,6 +2076,17 @@ var PublicInputChecker = class {
1996
2076
  ...queryResultErrorsIssuingCountryInclusion,
1997
2077
  ...queryResultErrorsScope
1998
2078
  };
2079
+ const { isCorrect: isCorrectCurrentDate, queryResultErrors: queryResultErrorsCurrentDate } = await this.checkCurrentDate(
2080
+ "issuing_country",
2081
+ proofData,
2082
+ validity ?? DEFAULT_VALIDITY,
2083
+ queryResultErrors
2084
+ );
2085
+ isCorrect = isCorrect && isCorrectCurrentDate;
2086
+ queryResultErrors = {
2087
+ ...queryResultErrors,
2088
+ ...queryResultErrorsCurrentDate
2089
+ };
1999
2090
  uniqueIdentifier = (0, import_utils.getNullifierFromDisclosureProof)(proofData).toString(10);
2000
2091
  uniqueIdentifierType = (0, import_utils.getNullifierTypeFromDisclosureProof)(proofData);
2001
2092
  } else if (proof.name === "bind") {
@@ -2022,12 +2113,25 @@ var PublicInputChecker = class {
2022
2113
  ...queryResultErrors,
2023
2114
  ...queryResultErrorsBind
2024
2115
  };
2116
+ const { isCorrect: isCorrectCurrentDate, queryResultErrors: queryResultErrorsCurrentDate } = await this.checkCurrentDate(
2117
+ "bind",
2118
+ proofData,
2119
+ validity ?? DEFAULT_VALIDITY,
2120
+ queryResultErrors
2121
+ );
2122
+ isCorrect = isCorrect && isCorrectCurrentDate;
2123
+ queryResultErrors = {
2124
+ ...queryResultErrors,
2125
+ ...queryResultErrorsCurrentDate
2126
+ };
2025
2127
  uniqueIdentifier = (0, import_utils.getNullifierFromDisclosureProof)(proofData).toString(10);
2026
2128
  uniqueIdentifierType = (0, import_utils.getNullifierTypeFromDisclosureProof)(proofData);
2027
2129
  } else if (proof.name === "exclusion_check_sanctions") {
2028
2130
  const sanctionsBuilder = await import_utils.SanctionsBuilder.create();
2029
2131
  const exclusionCheckSanctionsCommittedInputs = proof.committedInputs?.exclusion_check_sanctions;
2030
- const calculatedParamCommitment = await sanctionsBuilder.getSanctionsParameterCommitment();
2132
+ const calculatedParamCommitment = await sanctionsBuilder.getSanctionsParameterCommitment(
2133
+ exclusionCheckSanctionsCommittedInputs.isStrict
2134
+ );
2031
2135
  const paramCommittment = (0, import_utils.getParameterCommitmentFromDisclosureProof)(proofData);
2032
2136
  if (paramCommittment !== calculatedParamCommitment) {
2033
2137
  console.warn(
@@ -2056,6 +2160,17 @@ var PublicInputChecker = class {
2056
2160
  ...queryResultErrors,
2057
2161
  ...queryResultErrorsSanctionsExclusion
2058
2162
  };
2163
+ const { isCorrect: isCorrectCurrentDate, queryResultErrors: queryResultErrorsCurrentDate } = await this.checkCurrentDate(
2164
+ "sanctions",
2165
+ proofData,
2166
+ validity ?? DEFAULT_VALIDITY,
2167
+ queryResultErrors
2168
+ );
2169
+ isCorrect = isCorrect && isCorrectCurrentDate;
2170
+ queryResultErrors = {
2171
+ ...queryResultErrors,
2172
+ ...queryResultErrorsCurrentDate
2173
+ };
2059
2174
  uniqueIdentifier = (0, import_utils.getNullifierFromDisclosureProof)(proofData).toString(10);
2060
2175
  uniqueIdentifierType = (0, import_utils.getNullifierTypeFromDisclosureProof)(proofData);
2061
2176
  } else if (proof.name?.startsWith("facematch") && !proof.name?.endsWith("_evm")) {
@@ -2085,6 +2200,17 @@ var PublicInputChecker = class {
2085
2200
  ...queryResultErrors,
2086
2201
  ...queryResultErrorsFacematch
2087
2202
  };
2203
+ const { isCorrect: isCorrectCurrentDate, queryResultErrors: queryResultErrorsCurrentDate } = await this.checkCurrentDate(
2204
+ "facematch",
2205
+ proofData,
2206
+ validity ?? DEFAULT_VALIDITY,
2207
+ queryResultErrors
2208
+ );
2209
+ isCorrect = isCorrect && isCorrectCurrentDate;
2210
+ queryResultErrors = {
2211
+ ...queryResultErrors,
2212
+ ...queryResultErrorsCurrentDate
2213
+ };
2088
2214
  uniqueIdentifier = (0, import_utils.getNullifierFromDisclosureProof)(proofData).toString(10);
2089
2215
  uniqueIdentifierType = (0, import_utils.getNullifierTypeFromDisclosureProof)(proofData);
2090
2216
  }
@@ -4555,20 +4681,17 @@ var SolidityVerifier = class {
4555
4681
  ).map((x) => x.toString(16).padStart(2, "0")).join("");
4556
4682
  } else if (circuitName === "compare_age_evm") {
4557
4683
  const value = proof.committedInputs[circuitName];
4558
- const currentDateBytes = Array.from((0, import_utils2.numberToBytesBE)(value.currentDateTimestamp, 8));
4559
- compressedCommittedInputs2 = import_utils2.ProofType.AGE.toString(16).padStart(2, "0") + currentDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("") + value.minAge.toString(16).padStart(2, "0") + value.maxAge.toString(16).padStart(2, "0");
4684
+ compressedCommittedInputs2 = import_utils2.ProofType.AGE.toString(16).padStart(2, "0") + value.minAge.toString(16).padStart(2, "0") + value.maxAge.toString(16).padStart(2, "0");
4560
4685
  } else if (circuitName === "compare_birthdate_evm") {
4561
4686
  const value = proof.committedInputs[circuitName];
4562
- const currentDateBytes = Array.from((0, import_utils2.numberToBytesBE)(value.currentDateTimestamp, 8));
4563
4687
  const minDateBytes = Array.from((0, import_utils2.numberToBytesBE)(value.minDateTimestamp, 8));
4564
4688
  const maxDateBytes = Array.from((0, import_utils2.numberToBytesBE)(value.maxDateTimestamp, 8));
4565
- compressedCommittedInputs2 = import_utils2.ProofType.BIRTHDATE.toString(16).padStart(2, "0") + currentDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("") + minDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("") + maxDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("");
4689
+ compressedCommittedInputs2 = import_utils2.ProofType.BIRTHDATE.toString(16).padStart(2, "0") + minDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("") + maxDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("");
4566
4690
  } else if (circuitName === "compare_expiry_evm") {
4567
4691
  const value = proof.committedInputs[circuitName];
4568
- const currentDateBytes = Array.from((0, import_utils2.numberToBytesBE)(value.currentDateTimestamp, 8));
4569
4692
  const minDateBytes = Array.from((0, import_utils2.numberToBytesBE)(value.minDateTimestamp, 8));
4570
4693
  const maxDateBytes = Array.from((0, import_utils2.numberToBytesBE)(value.maxDateTimestamp, 8));
4571
- compressedCommittedInputs2 = import_utils2.ProofType.EXPIRY_DATE.toString(16).padStart(2, "0") + currentDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("") + minDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("") + maxDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("");
4694
+ compressedCommittedInputs2 = import_utils2.ProofType.EXPIRY_DATE.toString(16).padStart(2, "0") + minDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("") + maxDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("");
4572
4695
  } else if (circuitName === "disclose_bytes_evm") {
4573
4696
  const value = proof.committedInputs[circuitName];
4574
4697
  compressedCommittedInputs2 = import_utils2.ProofType.DISCLOSE.toString(16).padStart(2, "0") + value.discloseMask.map((x) => x.toString(16).padStart(2, "0")).join("") + value.disclosedBytes.map((x) => x.toString(16).padStart(2, "0")).join("");
@@ -996,6 +996,36 @@ var PublicInputChecker = class {
996
996
  }
997
997
  return { isCorrect, queryResultErrors };
998
998
  }
999
+ static async checkCurrentDate(circuitName, proofData, validity, queryResultErrors) {
1000
+ const currentTime = /* @__PURE__ */ new Date();
1001
+ const today = new Date(
1002
+ currentTime.getFullYear(),
1003
+ currentTime.getMonth(),
1004
+ currentTime.getDate(),
1005
+ 0,
1006
+ 0,
1007
+ 0,
1008
+ 0
1009
+ );
1010
+ const currentDate = (0, import_utils.getCurrentDateFromDisclosureProof)(proofData);
1011
+ const todayToCurrentDate = today.getTime() - currentDate.getTime();
1012
+ const expectedDifference = validity ? validity * 1e3 : DEFAULT_VALIDITY * 1e3;
1013
+ const actualDifference = today.getTime() - (today.getTime() - expectedDifference);
1014
+ let isCorrect = true;
1015
+ if (todayToCurrentDate >= actualDifference) {
1016
+ console.warn("The date used to check the validity of the ID falls out of the validity period");
1017
+ isCorrect = false;
1018
+ if (!queryResultErrors[circuitName]) {
1019
+ queryResultErrors[circuitName] = {};
1020
+ }
1021
+ queryResultErrors[circuitName].date = {
1022
+ expected: `Difference: ${validity} seconds`,
1023
+ received: `Difference: ${Math.round(todayToCurrentDate / 1e3)} seconds`,
1024
+ message: "The date used to check the validity of the ID falls out of the validity period"
1025
+ };
1026
+ }
1027
+ return { isCorrect, queryResultErrors };
1028
+ }
999
1029
  static async checkPublicInputs(domain, proofs, queryResult, validity, scope) {
1000
1030
  let commitmentIn;
1001
1031
  let commitmentOut;
@@ -1124,14 +1154,9 @@ var PublicInputChecker = class {
1124
1154
  if (!!committedInputs?.compare_age || !!committedInputs?.compare_age_evm) {
1125
1155
  const ageCommittedInputs = committedInputs?.compare_age ?? committedInputs?.compare_age_evm;
1126
1156
  const ageParameterCommitment = isForEVM ? await (0, import_utils.getAgeEVMParameterCommitment)(
1127
- ageCommittedInputs.currentDateTimestamp,
1128
- ageCommittedInputs.minAge,
1129
- ageCommittedInputs.maxAge
1130
- ) : await (0, import_utils.getAgeParameterCommitment)(
1131
- ageCommittedInputs.currentDateTimestamp,
1132
1157
  ageCommittedInputs.minAge,
1133
1158
  ageCommittedInputs.maxAge
1134
- );
1159
+ ) : await (0, import_utils.getAgeParameterCommitment)(ageCommittedInputs.minAge, ageCommittedInputs.maxAge);
1135
1160
  if (!paramCommitments.includes(ageParameterCommitment)) {
1136
1161
  console.warn("This proof does not verify the age");
1137
1162
  isCorrect = false;
@@ -1155,16 +1180,12 @@ var PublicInputChecker = class {
1155
1180
  const birthdateCommittedInputs = committedInputs?.compare_birthdate ?? committedInputs?.compare_birthdate_evm;
1156
1181
  const birthdateParameterCommitment = isForEVM ? await (0, import_utils.getDateEVMParameterCommitment)(
1157
1182
  import_utils.ProofType.BIRTHDATE,
1158
- birthdateCommittedInputs.currentDateTimestamp,
1159
1183
  birthdateCommittedInputs.minDateTimestamp,
1160
- birthdateCommittedInputs.maxDateTimestamp,
1161
- 0
1184
+ birthdateCommittedInputs.maxDateTimestamp
1162
1185
  ) : await (0, import_utils.getDateParameterCommitment)(
1163
1186
  import_utils.ProofType.BIRTHDATE,
1164
- birthdateCommittedInputs.currentDateTimestamp,
1165
1187
  birthdateCommittedInputs.minDateTimestamp,
1166
- birthdateCommittedInputs.maxDateTimestamp,
1167
- 0
1188
+ birthdateCommittedInputs.maxDateTimestamp
1168
1189
  );
1169
1190
  if (!paramCommitments.includes(birthdateParameterCommitment)) {
1170
1191
  console.warn("This proof does not verify the birthdate");
@@ -1194,7 +1215,6 @@ var PublicInputChecker = class {
1194
1215
  expiryCommittedInputs.maxDateTimestamp
1195
1216
  ) : await (0, import_utils.getDateParameterCommitment)(
1196
1217
  import_utils.ProofType.EXPIRY_DATE,
1197
- expiryCommittedInputs.currentDateTimestamp,
1198
1218
  expiryCommittedInputs.minDateTimestamp,
1199
1219
  expiryCommittedInputs.maxDateTimestamp
1200
1220
  );
@@ -1398,7 +1418,11 @@ var PublicInputChecker = class {
1398
1418
  if (!!committedInputs?.exclusion_check_sanctions || !!committedInputs?.exclusion_check_sanctions_evm) {
1399
1419
  const sanctionsBuilder = await import_utils.SanctionsBuilder.create();
1400
1420
  const exclusionCheckSanctionsCommittedInputs = committedInputs?.exclusion_check_sanctions ?? committedInputs?.exclusion_check_sanctions_evm;
1401
- const exclusionCheckSanctionsParameterCommitment = isForEVM ? await sanctionsBuilder.getSanctionsEvmParameterCommitment() : await sanctionsBuilder.getSanctionsParameterCommitment();
1421
+ const exclusionCheckSanctionsParameterCommitment = isForEVM ? await sanctionsBuilder.getSanctionsEvmParameterCommitment(
1422
+ exclusionCheckSanctionsCommittedInputs.isStrict
1423
+ ) : await sanctionsBuilder.getSanctionsParameterCommitment(
1424
+ exclusionCheckSanctionsCommittedInputs.isStrict
1425
+ );
1402
1426
  if (!paramCommitments.includes(exclusionCheckSanctionsParameterCommitment)) {
1403
1427
  console.warn("This proof does not verify the exclusion from the sanction lists");
1404
1428
  isCorrect = false;
@@ -1507,24 +1531,6 @@ var PublicInputChecker = class {
1507
1531
  };
1508
1532
  }
1509
1533
  commitmentOut = (0, import_utils.getCommitmentOutFromIntegrityProof)(proofData);
1510
- const currentDate = (0, import_utils.getCurrentDateFromIntegrityProof)(proofData);
1511
- const todayToCurrentDate = today.getTime() - currentDate.getTime();
1512
- const expectedDifference = validity ? validity * 1e3 : DEFAULT_VALIDITY * 1e3;
1513
- const actualDifference = today.getTime() - (today.getTime() - expectedDifference);
1514
- if (todayToCurrentDate >= actualDifference) {
1515
- console.warn(
1516
- `The date used to check the validity of the ID is older than the validity period`
1517
- );
1518
- isCorrect = false;
1519
- queryResultErrors.data_check_integrity = {
1520
- ...queryResultErrors.data_check_integrity,
1521
- date: {
1522
- expected: `Difference: ${validity} seconds`,
1523
- received: `Difference: ${Math.round(todayToCurrentDate / 1e3)} seconds`,
1524
- message: "The date used to check the validity of the ID is older than the validity period"
1525
- }
1526
- };
1527
- }
1528
1534
  } else if (proof.name === "disclose_bytes") {
1529
1535
  commitmentIn = (0, import_utils.getCommitmentInFromDisclosureProof)(proofData);
1530
1536
  if (commitmentIn !== commitmentOut) {
@@ -1577,6 +1583,17 @@ var PublicInputChecker = class {
1577
1583
  ...queryResultErrorsDisclose,
1578
1584
  ...queryResultErrorsScope
1579
1585
  };
1586
+ const { isCorrect: isCorrectCurrentDate, queryResultErrors: queryResultErrorsCurrentDate } = await this.checkCurrentDate(
1587
+ "disclose",
1588
+ proofData,
1589
+ validity ?? DEFAULT_VALIDITY,
1590
+ queryResultErrors
1591
+ );
1592
+ isCorrect = isCorrect && isCorrectCurrentDate;
1593
+ queryResultErrors = {
1594
+ ...queryResultErrors,
1595
+ ...queryResultErrorsCurrentDate
1596
+ };
1580
1597
  uniqueIdentifier = (0, import_utils.getNullifierFromDisclosureProof)(proofData).toString(10);
1581
1598
  uniqueIdentifierType = (0, import_utils.getNullifierTypeFromDisclosureProof)(proofData);
1582
1599
  } else if (proof.name === "compare_age") {
@@ -1598,7 +1615,6 @@ var PublicInputChecker = class {
1598
1615
  const paramCommitment = (0, import_utils.getParameterCommitmentFromDisclosureProof)(proofData);
1599
1616
  const committedInputs = proof.committedInputs?.compare_age;
1600
1617
  const calculatedParamCommitment = await (0, import_utils.getAgeParameterCommitment)(
1601
- committedInputs.currentDateTimestamp,
1602
1618
  committedInputs.minAge,
1603
1619
  committedInputs.maxAge
1604
1620
  );
@@ -1624,6 +1640,17 @@ var PublicInputChecker = class {
1624
1640
  ...queryResultErrorsAge,
1625
1641
  ...queryResultErrorsScope
1626
1642
  };
1643
+ const { isCorrect: isCorrectCurrentDate, queryResultErrors: queryResultErrorsCurrentDate } = await this.checkCurrentDate(
1644
+ "age",
1645
+ proofData,
1646
+ validity ?? DEFAULT_VALIDITY,
1647
+ queryResultErrors
1648
+ );
1649
+ isCorrect = isCorrect && isCorrectCurrentDate;
1650
+ queryResultErrors = {
1651
+ ...queryResultErrors,
1652
+ ...queryResultErrorsCurrentDate
1653
+ };
1627
1654
  uniqueIdentifier = (0, import_utils.getNullifierFromDisclosureProof)(proofData).toString(10);
1628
1655
  uniqueIdentifierType = (0, import_utils.getNullifierTypeFromDisclosureProof)(proofData);
1629
1656
  } else if (proof.name === "compare_birthdate") {
@@ -1646,7 +1673,6 @@ var PublicInputChecker = class {
1646
1673
  const committedInputs = proof.committedInputs?.compare_birthdate;
1647
1674
  const calculatedParamCommitment = await (0, import_utils.getDateParameterCommitment)(
1648
1675
  import_utils.ProofType.BIRTHDATE,
1649
- committedInputs.currentDateTimestamp,
1650
1676
  committedInputs.minDateTimestamp,
1651
1677
  committedInputs.maxDateTimestamp,
1652
1678
  0
@@ -1679,6 +1705,17 @@ var PublicInputChecker = class {
1679
1705
  ...queryResultErrorsBirthdate,
1680
1706
  ...queryResultErrorsScope
1681
1707
  };
1708
+ const { isCorrect: isCorrectCurrentDate, queryResultErrors: queryResultErrorsCurrentDate } = await this.checkCurrentDate(
1709
+ "birthdate",
1710
+ proofData,
1711
+ validity ?? DEFAULT_VALIDITY,
1712
+ queryResultErrors
1713
+ );
1714
+ isCorrect = isCorrect && isCorrectCurrentDate;
1715
+ queryResultErrors = {
1716
+ ...queryResultErrors,
1717
+ ...queryResultErrorsCurrentDate
1718
+ };
1682
1719
  uniqueIdentifier = (0, import_utils.getNullifierFromDisclosureProof)(proofData).toString(10);
1683
1720
  uniqueIdentifierType = (0, import_utils.getNullifierTypeFromDisclosureProof)(proofData);
1684
1721
  } else if (proof.name === "compare_expiry") {
@@ -1701,7 +1738,6 @@ var PublicInputChecker = class {
1701
1738
  const committedInputs = proof.committedInputs?.compare_expiry;
1702
1739
  const calculatedParamCommitment = await (0, import_utils.getDateParameterCommitment)(
1703
1740
  import_utils.ProofType.EXPIRY_DATE,
1704
- committedInputs.currentDateTimestamp,
1705
1741
  committedInputs.minDateTimestamp,
1706
1742
  committedInputs.maxDateTimestamp
1707
1743
  );
@@ -1733,6 +1769,17 @@ var PublicInputChecker = class {
1733
1769
  ...queryResultErrorsExpiryDate,
1734
1770
  ...queryResultErrorsScope
1735
1771
  };
1772
+ const { isCorrect: isCorrectCurrentDate, queryResultErrors: queryResultErrorsCurrentDate } = await this.checkCurrentDate(
1773
+ "expiry_date",
1774
+ proofData,
1775
+ validity ?? DEFAULT_VALIDITY,
1776
+ queryResultErrors
1777
+ );
1778
+ isCorrect = isCorrect && isCorrectCurrentDate;
1779
+ queryResultErrors = {
1780
+ ...queryResultErrors,
1781
+ ...queryResultErrorsCurrentDate
1782
+ };
1736
1783
  uniqueIdentifier = (0, import_utils.getNullifierFromDisclosureProof)(proofData).toString(10);
1737
1784
  uniqueIdentifierType = (0, import_utils.getNullifierTypeFromDisclosureProof)(proofData);
1738
1785
  } else if (proof.name === "exclusion_check_nationality") {
@@ -1789,6 +1836,17 @@ var PublicInputChecker = class {
1789
1836
  ...queryResultErrorsNationalityExclusion,
1790
1837
  ...queryResultErrorsScope
1791
1838
  };
1839
+ const { isCorrect: isCorrectCurrentDate, queryResultErrors: queryResultErrorsCurrentDate } = await this.checkCurrentDate(
1840
+ "nationality",
1841
+ proofData,
1842
+ validity ?? DEFAULT_VALIDITY,
1843
+ queryResultErrors
1844
+ );
1845
+ isCorrect = isCorrect && isCorrectCurrentDate;
1846
+ queryResultErrors = {
1847
+ ...queryResultErrors,
1848
+ ...queryResultErrorsCurrentDate
1849
+ };
1792
1850
  uniqueIdentifier = (0, import_utils.getNullifierFromDisclosureProof)(proofData).toString(10);
1793
1851
  uniqueIdentifierType = (0, import_utils.getNullifierTypeFromDisclosureProof)(proofData);
1794
1852
  } else if (proof.name === "exclusion_check_issuing_country") {
@@ -1845,6 +1903,17 @@ var PublicInputChecker = class {
1845
1903
  ...queryResultErrorsIssuingCountryExclusion,
1846
1904
  ...queryResultErrorsScope
1847
1905
  };
1906
+ const { isCorrect: isCorrectCurrentDate, queryResultErrors: queryResultErrorsCurrentDate } = await this.checkCurrentDate(
1907
+ "issuing_country",
1908
+ proofData,
1909
+ validity ?? DEFAULT_VALIDITY,
1910
+ queryResultErrors
1911
+ );
1912
+ isCorrect = isCorrect && isCorrectCurrentDate;
1913
+ queryResultErrors = {
1914
+ ...queryResultErrors,
1915
+ ...queryResultErrorsCurrentDate
1916
+ };
1848
1917
  uniqueIdentifier = (0, import_utils.getNullifierFromDisclosureProof)(proofData).toString(10);
1849
1918
  uniqueIdentifierType = (0, import_utils.getNullifierTypeFromDisclosureProof)(proofData);
1850
1919
  } else if (proof.name === "inclusion_check_nationality") {
@@ -1901,6 +1970,17 @@ var PublicInputChecker = class {
1901
1970
  ...queryResultErrorsNationalityInclusion,
1902
1971
  ...queryResultErrorsScope
1903
1972
  };
1973
+ const { isCorrect: isCorrectCurrentDate, queryResultErrors: queryResultErrorsCurrentDate } = await this.checkCurrentDate(
1974
+ "nationality",
1975
+ proofData,
1976
+ validity ?? DEFAULT_VALIDITY,
1977
+ queryResultErrors
1978
+ );
1979
+ isCorrect = isCorrect && isCorrectCurrentDate;
1980
+ queryResultErrors = {
1981
+ ...queryResultErrors,
1982
+ ...queryResultErrorsCurrentDate
1983
+ };
1904
1984
  uniqueIdentifier = (0, import_utils.getNullifierFromDisclosureProof)(proofData).toString(10);
1905
1985
  uniqueIdentifierType = (0, import_utils.getNullifierTypeFromDisclosureProof)(proofData);
1906
1986
  } else if (proof.name === "inclusion_check_issuing_country") {
@@ -1957,6 +2037,17 @@ var PublicInputChecker = class {
1957
2037
  ...queryResultErrorsIssuingCountryInclusion,
1958
2038
  ...queryResultErrorsScope
1959
2039
  };
2040
+ const { isCorrect: isCorrectCurrentDate, queryResultErrors: queryResultErrorsCurrentDate } = await this.checkCurrentDate(
2041
+ "issuing_country",
2042
+ proofData,
2043
+ validity ?? DEFAULT_VALIDITY,
2044
+ queryResultErrors
2045
+ );
2046
+ isCorrect = isCorrect && isCorrectCurrentDate;
2047
+ queryResultErrors = {
2048
+ ...queryResultErrors,
2049
+ ...queryResultErrorsCurrentDate
2050
+ };
1960
2051
  uniqueIdentifier = (0, import_utils.getNullifierFromDisclosureProof)(proofData).toString(10);
1961
2052
  uniqueIdentifierType = (0, import_utils.getNullifierTypeFromDisclosureProof)(proofData);
1962
2053
  } else if (proof.name === "bind") {
@@ -1983,12 +2074,25 @@ var PublicInputChecker = class {
1983
2074
  ...queryResultErrors,
1984
2075
  ...queryResultErrorsBind
1985
2076
  };
2077
+ const { isCorrect: isCorrectCurrentDate, queryResultErrors: queryResultErrorsCurrentDate } = await this.checkCurrentDate(
2078
+ "bind",
2079
+ proofData,
2080
+ validity ?? DEFAULT_VALIDITY,
2081
+ queryResultErrors
2082
+ );
2083
+ isCorrect = isCorrect && isCorrectCurrentDate;
2084
+ queryResultErrors = {
2085
+ ...queryResultErrors,
2086
+ ...queryResultErrorsCurrentDate
2087
+ };
1986
2088
  uniqueIdentifier = (0, import_utils.getNullifierFromDisclosureProof)(proofData).toString(10);
1987
2089
  uniqueIdentifierType = (0, import_utils.getNullifierTypeFromDisclosureProof)(proofData);
1988
2090
  } else if (proof.name === "exclusion_check_sanctions") {
1989
2091
  const sanctionsBuilder = await import_utils.SanctionsBuilder.create();
1990
2092
  const exclusionCheckSanctionsCommittedInputs = proof.committedInputs?.exclusion_check_sanctions;
1991
- const calculatedParamCommitment = await sanctionsBuilder.getSanctionsParameterCommitment();
2093
+ const calculatedParamCommitment = await sanctionsBuilder.getSanctionsParameterCommitment(
2094
+ exclusionCheckSanctionsCommittedInputs.isStrict
2095
+ );
1992
2096
  const paramCommittment = (0, import_utils.getParameterCommitmentFromDisclosureProof)(proofData);
1993
2097
  if (paramCommittment !== calculatedParamCommitment) {
1994
2098
  console.warn(
@@ -2017,6 +2121,17 @@ var PublicInputChecker = class {
2017
2121
  ...queryResultErrors,
2018
2122
  ...queryResultErrorsSanctionsExclusion
2019
2123
  };
2124
+ const { isCorrect: isCorrectCurrentDate, queryResultErrors: queryResultErrorsCurrentDate } = await this.checkCurrentDate(
2125
+ "sanctions",
2126
+ proofData,
2127
+ validity ?? DEFAULT_VALIDITY,
2128
+ queryResultErrors
2129
+ );
2130
+ isCorrect = isCorrect && isCorrectCurrentDate;
2131
+ queryResultErrors = {
2132
+ ...queryResultErrors,
2133
+ ...queryResultErrorsCurrentDate
2134
+ };
2020
2135
  uniqueIdentifier = (0, import_utils.getNullifierFromDisclosureProof)(proofData).toString(10);
2021
2136
  uniqueIdentifierType = (0, import_utils.getNullifierTypeFromDisclosureProof)(proofData);
2022
2137
  } else if (proof.name?.startsWith("facematch") && !proof.name?.endsWith("_evm")) {
@@ -2046,6 +2161,17 @@ var PublicInputChecker = class {
2046
2161
  ...queryResultErrors,
2047
2162
  ...queryResultErrorsFacematch
2048
2163
  };
2164
+ const { isCorrect: isCorrectCurrentDate, queryResultErrors: queryResultErrorsCurrentDate } = await this.checkCurrentDate(
2165
+ "facematch",
2166
+ proofData,
2167
+ validity ?? DEFAULT_VALIDITY,
2168
+ queryResultErrors
2169
+ );
2170
+ isCorrect = isCorrect && isCorrectCurrentDate;
2171
+ queryResultErrors = {
2172
+ ...queryResultErrors,
2173
+ ...queryResultErrorsCurrentDate
2174
+ };
2049
2175
  uniqueIdentifier = (0, import_utils.getNullifierFromDisclosureProof)(proofData).toString(10);
2050
2176
  uniqueIdentifierType = (0, import_utils.getNullifierTypeFromDisclosureProof)(proofData);
2051
2177
  }
@@ -58,6 +58,7 @@ declare class PublicInputChecker {
58
58
  isCorrect: boolean;
59
59
  queryResultErrors: Partial<QueryResultErrors>;
60
60
  }>;
61
+ private static checkCurrentDate;
61
62
  static checkPublicInputs(domain: string, proofs: Array<ProofResult>, queryResult: QueryResult, validity?: number, scope?: string): Promise<{
62
63
  isCorrect: boolean;
63
64
  uniqueIdentifier: string | undefined;
@@ -2489,20 +2489,17 @@ var SolidityVerifier = class {
2489
2489
  ).map((x) => x.toString(16).padStart(2, "0")).join("");
2490
2490
  } else if (circuitName === "compare_age_evm") {
2491
2491
  const value = proof.committedInputs[circuitName];
2492
- const currentDateBytes = Array.from((0, import_utils.numberToBytesBE)(value.currentDateTimestamp, 8));
2493
- compressedCommittedInputs2 = import_utils.ProofType.AGE.toString(16).padStart(2, "0") + currentDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("") + value.minAge.toString(16).padStart(2, "0") + value.maxAge.toString(16).padStart(2, "0");
2492
+ compressedCommittedInputs2 = import_utils.ProofType.AGE.toString(16).padStart(2, "0") + value.minAge.toString(16).padStart(2, "0") + value.maxAge.toString(16).padStart(2, "0");
2494
2493
  } else if (circuitName === "compare_birthdate_evm") {
2495
2494
  const value = proof.committedInputs[circuitName];
2496
- const currentDateBytes = Array.from((0, import_utils.numberToBytesBE)(value.currentDateTimestamp, 8));
2497
2495
  const minDateBytes = Array.from((0, import_utils.numberToBytesBE)(value.minDateTimestamp, 8));
2498
2496
  const maxDateBytes = Array.from((0, import_utils.numberToBytesBE)(value.maxDateTimestamp, 8));
2499
- compressedCommittedInputs2 = import_utils.ProofType.BIRTHDATE.toString(16).padStart(2, "0") + currentDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("") + minDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("") + maxDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("");
2497
+ compressedCommittedInputs2 = import_utils.ProofType.BIRTHDATE.toString(16).padStart(2, "0") + minDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("") + maxDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("");
2500
2498
  } else if (circuitName === "compare_expiry_evm") {
2501
2499
  const value = proof.committedInputs[circuitName];
2502
- const currentDateBytes = Array.from((0, import_utils.numberToBytesBE)(value.currentDateTimestamp, 8));
2503
2500
  const minDateBytes = Array.from((0, import_utils.numberToBytesBE)(value.minDateTimestamp, 8));
2504
2501
  const maxDateBytes = Array.from((0, import_utils.numberToBytesBE)(value.maxDateTimestamp, 8));
2505
- compressedCommittedInputs2 = import_utils.ProofType.EXPIRY_DATE.toString(16).padStart(2, "0") + currentDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("") + minDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("") + maxDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("");
2502
+ compressedCommittedInputs2 = import_utils.ProofType.EXPIRY_DATE.toString(16).padStart(2, "0") + minDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("") + maxDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("");
2506
2503
  } else if (circuitName === "disclose_bytes_evm") {
2507
2504
  const value = proof.committedInputs[circuitName];
2508
2505
  compressedCommittedInputs2 = import_utils.ProofType.DISCLOSE.toString(16).padStart(2, "0") + value.discloseMask.map((x) => x.toString(16).padStart(2, "0")).join("") + value.disclosedBytes.map((x) => x.toString(16).padStart(2, "0")).join("");
@@ -18,7 +18,7 @@ import {
18
18
  getCommitmentOutFromIntegrityProof,
19
19
  getCommitmentInFromDisclosureProof,
20
20
  getMerkleRootFromDSCProof,
21
- getCurrentDateFromIntegrityProof,
21
+ getCurrentDateFromDisclosureProof,
22
22
  DisclosedData,
23
23
  formatName,
24
24
  getNumberOfPublicInputs,
@@ -1021,6 +1021,36 @@ var PublicInputChecker = class {
1021
1021
  }
1022
1022
  return { isCorrect, queryResultErrors };
1023
1023
  }
1024
+ static async checkCurrentDate(circuitName, proofData, validity, queryResultErrors) {
1025
+ const currentTime = /* @__PURE__ */ new Date();
1026
+ const today = new Date(
1027
+ currentTime.getFullYear(),
1028
+ currentTime.getMonth(),
1029
+ currentTime.getDate(),
1030
+ 0,
1031
+ 0,
1032
+ 0,
1033
+ 0
1034
+ );
1035
+ const currentDate = getCurrentDateFromDisclosureProof(proofData);
1036
+ const todayToCurrentDate = today.getTime() - currentDate.getTime();
1037
+ const expectedDifference = validity ? validity * 1e3 : DEFAULT_VALIDITY * 1e3;
1038
+ const actualDifference = today.getTime() - (today.getTime() - expectedDifference);
1039
+ let isCorrect = true;
1040
+ if (todayToCurrentDate >= actualDifference) {
1041
+ console.warn("The date used to check the validity of the ID falls out of the validity period");
1042
+ isCorrect = false;
1043
+ if (!queryResultErrors[circuitName]) {
1044
+ queryResultErrors[circuitName] = {};
1045
+ }
1046
+ queryResultErrors[circuitName].date = {
1047
+ expected: `Difference: ${validity} seconds`,
1048
+ received: `Difference: ${Math.round(todayToCurrentDate / 1e3)} seconds`,
1049
+ message: "The date used to check the validity of the ID falls out of the validity period"
1050
+ };
1051
+ }
1052
+ return { isCorrect, queryResultErrors };
1053
+ }
1024
1054
  static async checkPublicInputs(domain, proofs, queryResult, validity, scope) {
1025
1055
  let commitmentIn;
1026
1056
  let commitmentOut;
@@ -1149,14 +1179,9 @@ var PublicInputChecker = class {
1149
1179
  if (!!committedInputs?.compare_age || !!committedInputs?.compare_age_evm) {
1150
1180
  const ageCommittedInputs = committedInputs?.compare_age ?? committedInputs?.compare_age_evm;
1151
1181
  const ageParameterCommitment = isForEVM ? await getAgeEVMParameterCommitment(
1152
- ageCommittedInputs.currentDateTimestamp,
1153
- ageCommittedInputs.minAge,
1154
- ageCommittedInputs.maxAge
1155
- ) : await getAgeParameterCommitment(
1156
- ageCommittedInputs.currentDateTimestamp,
1157
1182
  ageCommittedInputs.minAge,
1158
1183
  ageCommittedInputs.maxAge
1159
- );
1184
+ ) : await getAgeParameterCommitment(ageCommittedInputs.minAge, ageCommittedInputs.maxAge);
1160
1185
  if (!paramCommitments.includes(ageParameterCommitment)) {
1161
1186
  console.warn("This proof does not verify the age");
1162
1187
  isCorrect = false;
@@ -1180,16 +1205,12 @@ var PublicInputChecker = class {
1180
1205
  const birthdateCommittedInputs = committedInputs?.compare_birthdate ?? committedInputs?.compare_birthdate_evm;
1181
1206
  const birthdateParameterCommitment = isForEVM ? await getDateEVMParameterCommitment(
1182
1207
  ProofType.BIRTHDATE,
1183
- birthdateCommittedInputs.currentDateTimestamp,
1184
1208
  birthdateCommittedInputs.minDateTimestamp,
1185
- birthdateCommittedInputs.maxDateTimestamp,
1186
- 0
1209
+ birthdateCommittedInputs.maxDateTimestamp
1187
1210
  ) : await getDateParameterCommitment(
1188
1211
  ProofType.BIRTHDATE,
1189
- birthdateCommittedInputs.currentDateTimestamp,
1190
1212
  birthdateCommittedInputs.minDateTimestamp,
1191
- birthdateCommittedInputs.maxDateTimestamp,
1192
- 0
1213
+ birthdateCommittedInputs.maxDateTimestamp
1193
1214
  );
1194
1215
  if (!paramCommitments.includes(birthdateParameterCommitment)) {
1195
1216
  console.warn("This proof does not verify the birthdate");
@@ -1219,7 +1240,6 @@ var PublicInputChecker = class {
1219
1240
  expiryCommittedInputs.maxDateTimestamp
1220
1241
  ) : await getDateParameterCommitment(
1221
1242
  ProofType.EXPIRY_DATE,
1222
- expiryCommittedInputs.currentDateTimestamp,
1223
1243
  expiryCommittedInputs.minDateTimestamp,
1224
1244
  expiryCommittedInputs.maxDateTimestamp
1225
1245
  );
@@ -1423,7 +1443,11 @@ var PublicInputChecker = class {
1423
1443
  if (!!committedInputs?.exclusion_check_sanctions || !!committedInputs?.exclusion_check_sanctions_evm) {
1424
1444
  const sanctionsBuilder = await SanctionsBuilder.create();
1425
1445
  const exclusionCheckSanctionsCommittedInputs = committedInputs?.exclusion_check_sanctions ?? committedInputs?.exclusion_check_sanctions_evm;
1426
- const exclusionCheckSanctionsParameterCommitment = isForEVM ? await sanctionsBuilder.getSanctionsEvmParameterCommitment() : await sanctionsBuilder.getSanctionsParameterCommitment();
1446
+ const exclusionCheckSanctionsParameterCommitment = isForEVM ? await sanctionsBuilder.getSanctionsEvmParameterCommitment(
1447
+ exclusionCheckSanctionsCommittedInputs.isStrict
1448
+ ) : await sanctionsBuilder.getSanctionsParameterCommitment(
1449
+ exclusionCheckSanctionsCommittedInputs.isStrict
1450
+ );
1427
1451
  if (!paramCommitments.includes(exclusionCheckSanctionsParameterCommitment)) {
1428
1452
  console.warn("This proof does not verify the exclusion from the sanction lists");
1429
1453
  isCorrect = false;
@@ -1532,24 +1556,6 @@ var PublicInputChecker = class {
1532
1556
  };
1533
1557
  }
1534
1558
  commitmentOut = getCommitmentOutFromIntegrityProof(proofData);
1535
- const currentDate = getCurrentDateFromIntegrityProof(proofData);
1536
- const todayToCurrentDate = today.getTime() - currentDate.getTime();
1537
- const expectedDifference = validity ? validity * 1e3 : DEFAULT_VALIDITY * 1e3;
1538
- const actualDifference = today.getTime() - (today.getTime() - expectedDifference);
1539
- if (todayToCurrentDate >= actualDifference) {
1540
- console.warn(
1541
- `The date used to check the validity of the ID is older than the validity period`
1542
- );
1543
- isCorrect = false;
1544
- queryResultErrors.data_check_integrity = {
1545
- ...queryResultErrors.data_check_integrity,
1546
- date: {
1547
- expected: `Difference: ${validity} seconds`,
1548
- received: `Difference: ${Math.round(todayToCurrentDate / 1e3)} seconds`,
1549
- message: "The date used to check the validity of the ID is older than the validity period"
1550
- }
1551
- };
1552
- }
1553
1559
  } else if (proof.name === "disclose_bytes") {
1554
1560
  commitmentIn = getCommitmentInFromDisclosureProof(proofData);
1555
1561
  if (commitmentIn !== commitmentOut) {
@@ -1602,6 +1608,17 @@ var PublicInputChecker = class {
1602
1608
  ...queryResultErrorsDisclose,
1603
1609
  ...queryResultErrorsScope
1604
1610
  };
1611
+ const { isCorrect: isCorrectCurrentDate, queryResultErrors: queryResultErrorsCurrentDate } = await this.checkCurrentDate(
1612
+ "disclose",
1613
+ proofData,
1614
+ validity ?? DEFAULT_VALIDITY,
1615
+ queryResultErrors
1616
+ );
1617
+ isCorrect = isCorrect && isCorrectCurrentDate;
1618
+ queryResultErrors = {
1619
+ ...queryResultErrors,
1620
+ ...queryResultErrorsCurrentDate
1621
+ };
1605
1622
  uniqueIdentifier = getNullifierFromDisclosureProof(proofData).toString(10);
1606
1623
  uniqueIdentifierType = getNullifierTypeFromDisclosureProof(proofData);
1607
1624
  } else if (proof.name === "compare_age") {
@@ -1623,7 +1640,6 @@ var PublicInputChecker = class {
1623
1640
  const paramCommitment = getParameterCommitmentFromDisclosureProof(proofData);
1624
1641
  const committedInputs = proof.committedInputs?.compare_age;
1625
1642
  const calculatedParamCommitment = await getAgeParameterCommitment(
1626
- committedInputs.currentDateTimestamp,
1627
1643
  committedInputs.minAge,
1628
1644
  committedInputs.maxAge
1629
1645
  );
@@ -1649,6 +1665,17 @@ var PublicInputChecker = class {
1649
1665
  ...queryResultErrorsAge,
1650
1666
  ...queryResultErrorsScope
1651
1667
  };
1668
+ const { isCorrect: isCorrectCurrentDate, queryResultErrors: queryResultErrorsCurrentDate } = await this.checkCurrentDate(
1669
+ "age",
1670
+ proofData,
1671
+ validity ?? DEFAULT_VALIDITY,
1672
+ queryResultErrors
1673
+ );
1674
+ isCorrect = isCorrect && isCorrectCurrentDate;
1675
+ queryResultErrors = {
1676
+ ...queryResultErrors,
1677
+ ...queryResultErrorsCurrentDate
1678
+ };
1652
1679
  uniqueIdentifier = getNullifierFromDisclosureProof(proofData).toString(10);
1653
1680
  uniqueIdentifierType = getNullifierTypeFromDisclosureProof(proofData);
1654
1681
  } else if (proof.name === "compare_birthdate") {
@@ -1671,7 +1698,6 @@ var PublicInputChecker = class {
1671
1698
  const committedInputs = proof.committedInputs?.compare_birthdate;
1672
1699
  const calculatedParamCommitment = await getDateParameterCommitment(
1673
1700
  ProofType.BIRTHDATE,
1674
- committedInputs.currentDateTimestamp,
1675
1701
  committedInputs.minDateTimestamp,
1676
1702
  committedInputs.maxDateTimestamp,
1677
1703
  0
@@ -1704,6 +1730,17 @@ var PublicInputChecker = class {
1704
1730
  ...queryResultErrorsBirthdate,
1705
1731
  ...queryResultErrorsScope
1706
1732
  };
1733
+ const { isCorrect: isCorrectCurrentDate, queryResultErrors: queryResultErrorsCurrentDate } = await this.checkCurrentDate(
1734
+ "birthdate",
1735
+ proofData,
1736
+ validity ?? DEFAULT_VALIDITY,
1737
+ queryResultErrors
1738
+ );
1739
+ isCorrect = isCorrect && isCorrectCurrentDate;
1740
+ queryResultErrors = {
1741
+ ...queryResultErrors,
1742
+ ...queryResultErrorsCurrentDate
1743
+ };
1707
1744
  uniqueIdentifier = getNullifierFromDisclosureProof(proofData).toString(10);
1708
1745
  uniqueIdentifierType = getNullifierTypeFromDisclosureProof(proofData);
1709
1746
  } else if (proof.name === "compare_expiry") {
@@ -1726,7 +1763,6 @@ var PublicInputChecker = class {
1726
1763
  const committedInputs = proof.committedInputs?.compare_expiry;
1727
1764
  const calculatedParamCommitment = await getDateParameterCommitment(
1728
1765
  ProofType.EXPIRY_DATE,
1729
- committedInputs.currentDateTimestamp,
1730
1766
  committedInputs.minDateTimestamp,
1731
1767
  committedInputs.maxDateTimestamp
1732
1768
  );
@@ -1758,6 +1794,17 @@ var PublicInputChecker = class {
1758
1794
  ...queryResultErrorsExpiryDate,
1759
1795
  ...queryResultErrorsScope
1760
1796
  };
1797
+ const { isCorrect: isCorrectCurrentDate, queryResultErrors: queryResultErrorsCurrentDate } = await this.checkCurrentDate(
1798
+ "expiry_date",
1799
+ proofData,
1800
+ validity ?? DEFAULT_VALIDITY,
1801
+ queryResultErrors
1802
+ );
1803
+ isCorrect = isCorrect && isCorrectCurrentDate;
1804
+ queryResultErrors = {
1805
+ ...queryResultErrors,
1806
+ ...queryResultErrorsCurrentDate
1807
+ };
1761
1808
  uniqueIdentifier = getNullifierFromDisclosureProof(proofData).toString(10);
1762
1809
  uniqueIdentifierType = getNullifierTypeFromDisclosureProof(proofData);
1763
1810
  } else if (proof.name === "exclusion_check_nationality") {
@@ -1814,6 +1861,17 @@ var PublicInputChecker = class {
1814
1861
  ...queryResultErrorsNationalityExclusion,
1815
1862
  ...queryResultErrorsScope
1816
1863
  };
1864
+ const { isCorrect: isCorrectCurrentDate, queryResultErrors: queryResultErrorsCurrentDate } = await this.checkCurrentDate(
1865
+ "nationality",
1866
+ proofData,
1867
+ validity ?? DEFAULT_VALIDITY,
1868
+ queryResultErrors
1869
+ );
1870
+ isCorrect = isCorrect && isCorrectCurrentDate;
1871
+ queryResultErrors = {
1872
+ ...queryResultErrors,
1873
+ ...queryResultErrorsCurrentDate
1874
+ };
1817
1875
  uniqueIdentifier = getNullifierFromDisclosureProof(proofData).toString(10);
1818
1876
  uniqueIdentifierType = getNullifierTypeFromDisclosureProof(proofData);
1819
1877
  } else if (proof.name === "exclusion_check_issuing_country") {
@@ -1870,6 +1928,17 @@ var PublicInputChecker = class {
1870
1928
  ...queryResultErrorsIssuingCountryExclusion,
1871
1929
  ...queryResultErrorsScope
1872
1930
  };
1931
+ const { isCorrect: isCorrectCurrentDate, queryResultErrors: queryResultErrorsCurrentDate } = await this.checkCurrentDate(
1932
+ "issuing_country",
1933
+ proofData,
1934
+ validity ?? DEFAULT_VALIDITY,
1935
+ queryResultErrors
1936
+ );
1937
+ isCorrect = isCorrect && isCorrectCurrentDate;
1938
+ queryResultErrors = {
1939
+ ...queryResultErrors,
1940
+ ...queryResultErrorsCurrentDate
1941
+ };
1873
1942
  uniqueIdentifier = getNullifierFromDisclosureProof(proofData).toString(10);
1874
1943
  uniqueIdentifierType = getNullifierTypeFromDisclosureProof(proofData);
1875
1944
  } else if (proof.name === "inclusion_check_nationality") {
@@ -1926,6 +1995,17 @@ var PublicInputChecker = class {
1926
1995
  ...queryResultErrorsNationalityInclusion,
1927
1996
  ...queryResultErrorsScope
1928
1997
  };
1998
+ const { isCorrect: isCorrectCurrentDate, queryResultErrors: queryResultErrorsCurrentDate } = await this.checkCurrentDate(
1999
+ "nationality",
2000
+ proofData,
2001
+ validity ?? DEFAULT_VALIDITY,
2002
+ queryResultErrors
2003
+ );
2004
+ isCorrect = isCorrect && isCorrectCurrentDate;
2005
+ queryResultErrors = {
2006
+ ...queryResultErrors,
2007
+ ...queryResultErrorsCurrentDate
2008
+ };
1929
2009
  uniqueIdentifier = getNullifierFromDisclosureProof(proofData).toString(10);
1930
2010
  uniqueIdentifierType = getNullifierTypeFromDisclosureProof(proofData);
1931
2011
  } else if (proof.name === "inclusion_check_issuing_country") {
@@ -1982,6 +2062,17 @@ var PublicInputChecker = class {
1982
2062
  ...queryResultErrorsIssuingCountryInclusion,
1983
2063
  ...queryResultErrorsScope
1984
2064
  };
2065
+ const { isCorrect: isCorrectCurrentDate, queryResultErrors: queryResultErrorsCurrentDate } = await this.checkCurrentDate(
2066
+ "issuing_country",
2067
+ proofData,
2068
+ validity ?? DEFAULT_VALIDITY,
2069
+ queryResultErrors
2070
+ );
2071
+ isCorrect = isCorrect && isCorrectCurrentDate;
2072
+ queryResultErrors = {
2073
+ ...queryResultErrors,
2074
+ ...queryResultErrorsCurrentDate
2075
+ };
1985
2076
  uniqueIdentifier = getNullifierFromDisclosureProof(proofData).toString(10);
1986
2077
  uniqueIdentifierType = getNullifierTypeFromDisclosureProof(proofData);
1987
2078
  } else if (proof.name === "bind") {
@@ -2008,12 +2099,25 @@ var PublicInputChecker = class {
2008
2099
  ...queryResultErrors,
2009
2100
  ...queryResultErrorsBind
2010
2101
  };
2102
+ const { isCorrect: isCorrectCurrentDate, queryResultErrors: queryResultErrorsCurrentDate } = await this.checkCurrentDate(
2103
+ "bind",
2104
+ proofData,
2105
+ validity ?? DEFAULT_VALIDITY,
2106
+ queryResultErrors
2107
+ );
2108
+ isCorrect = isCorrect && isCorrectCurrentDate;
2109
+ queryResultErrors = {
2110
+ ...queryResultErrors,
2111
+ ...queryResultErrorsCurrentDate
2112
+ };
2011
2113
  uniqueIdentifier = getNullifierFromDisclosureProof(proofData).toString(10);
2012
2114
  uniqueIdentifierType = getNullifierTypeFromDisclosureProof(proofData);
2013
2115
  } else if (proof.name === "exclusion_check_sanctions") {
2014
2116
  const sanctionsBuilder = await SanctionsBuilder.create();
2015
2117
  const exclusionCheckSanctionsCommittedInputs = proof.committedInputs?.exclusion_check_sanctions;
2016
- const calculatedParamCommitment = await sanctionsBuilder.getSanctionsParameterCommitment();
2118
+ const calculatedParamCommitment = await sanctionsBuilder.getSanctionsParameterCommitment(
2119
+ exclusionCheckSanctionsCommittedInputs.isStrict
2120
+ );
2017
2121
  const paramCommittment = getParameterCommitmentFromDisclosureProof(proofData);
2018
2122
  if (paramCommittment !== calculatedParamCommitment) {
2019
2123
  console.warn(
@@ -2042,6 +2146,17 @@ var PublicInputChecker = class {
2042
2146
  ...queryResultErrors,
2043
2147
  ...queryResultErrorsSanctionsExclusion
2044
2148
  };
2149
+ const { isCorrect: isCorrectCurrentDate, queryResultErrors: queryResultErrorsCurrentDate } = await this.checkCurrentDate(
2150
+ "sanctions",
2151
+ proofData,
2152
+ validity ?? DEFAULT_VALIDITY,
2153
+ queryResultErrors
2154
+ );
2155
+ isCorrect = isCorrect && isCorrectCurrentDate;
2156
+ queryResultErrors = {
2157
+ ...queryResultErrors,
2158
+ ...queryResultErrorsCurrentDate
2159
+ };
2045
2160
  uniqueIdentifier = getNullifierFromDisclosureProof(proofData).toString(10);
2046
2161
  uniqueIdentifierType = getNullifierTypeFromDisclosureProof(proofData);
2047
2162
  } else if (proof.name?.startsWith("facematch") && !proof.name?.endsWith("_evm")) {
@@ -2071,6 +2186,17 @@ var PublicInputChecker = class {
2071
2186
  ...queryResultErrors,
2072
2187
  ...queryResultErrorsFacematch
2073
2188
  };
2189
+ const { isCorrect: isCorrectCurrentDate, queryResultErrors: queryResultErrorsCurrentDate } = await this.checkCurrentDate(
2190
+ "facematch",
2191
+ proofData,
2192
+ validity ?? DEFAULT_VALIDITY,
2193
+ queryResultErrors
2194
+ );
2195
+ isCorrect = isCorrect && isCorrectCurrentDate;
2196
+ queryResultErrors = {
2197
+ ...queryResultErrors,
2198
+ ...queryResultErrorsCurrentDate
2199
+ };
2074
2200
  uniqueIdentifier = getNullifierFromDisclosureProof(proofData).toString(10);
2075
2201
  uniqueIdentifierType = getNullifierTypeFromDisclosureProof(proofData);
2076
2202
  }
@@ -2473,20 +2473,17 @@ var SolidityVerifier = class {
2473
2473
  ).map((x) => x.toString(16).padStart(2, "0")).join("");
2474
2474
  } else if (circuitName === "compare_age_evm") {
2475
2475
  const value = proof.committedInputs[circuitName];
2476
- const currentDateBytes = Array.from(numberToBytesBE(value.currentDateTimestamp, 8));
2477
- compressedCommittedInputs2 = ProofType.AGE.toString(16).padStart(2, "0") + currentDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("") + value.minAge.toString(16).padStart(2, "0") + value.maxAge.toString(16).padStart(2, "0");
2476
+ compressedCommittedInputs2 = ProofType.AGE.toString(16).padStart(2, "0") + value.minAge.toString(16).padStart(2, "0") + value.maxAge.toString(16).padStart(2, "0");
2478
2477
  } else if (circuitName === "compare_birthdate_evm") {
2479
2478
  const value = proof.committedInputs[circuitName];
2480
- const currentDateBytes = Array.from(numberToBytesBE(value.currentDateTimestamp, 8));
2481
2479
  const minDateBytes = Array.from(numberToBytesBE(value.minDateTimestamp, 8));
2482
2480
  const maxDateBytes = Array.from(numberToBytesBE(value.maxDateTimestamp, 8));
2483
- compressedCommittedInputs2 = ProofType.BIRTHDATE.toString(16).padStart(2, "0") + currentDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("") + minDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("") + maxDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("");
2481
+ compressedCommittedInputs2 = ProofType.BIRTHDATE.toString(16).padStart(2, "0") + minDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("") + maxDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("");
2484
2482
  } else if (circuitName === "compare_expiry_evm") {
2485
2483
  const value = proof.committedInputs[circuitName];
2486
- const currentDateBytes = Array.from(numberToBytesBE(value.currentDateTimestamp, 8));
2487
2484
  const minDateBytes = Array.from(numberToBytesBE(value.minDateTimestamp, 8));
2488
2485
  const maxDateBytes = Array.from(numberToBytesBE(value.maxDateTimestamp, 8));
2489
- compressedCommittedInputs2 = ProofType.EXPIRY_DATE.toString(16).padStart(2, "0") + currentDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("") + minDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("") + maxDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("");
2486
+ compressedCommittedInputs2 = ProofType.EXPIRY_DATE.toString(16).padStart(2, "0") + minDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("") + maxDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("");
2490
2487
  } else if (circuitName === "disclose_bytes_evm") {
2491
2488
  const value = proof.committedInputs[circuitName];
2492
2489
  compressedCommittedInputs2 = ProofType.DISCLOSE.toString(16).padStart(2, "0") + value.discloseMask.map((x) => x.toString(16).padStart(2, "0")).join("") + value.disclosedBytes.map((x) => x.toString(16).padStart(2, "0")).join("");
package/dist/esm/index.js CHANGED
@@ -3,10 +3,10 @@ import {
3
3
  } from "./chunk-AFLQN3AC.js";
4
4
  import {
5
5
  PublicInputChecker
6
- } from "./chunk-O7ZONMCQ.js";
6
+ } from "./chunk-6FIXE2II.js";
7
7
  import {
8
8
  SolidityVerifier
9
- } from "./chunk-I7PGO4XY.js";
9
+ } from "./chunk-7UUZHRZ3.js";
10
10
  import {
11
11
  DEFAULT_VALIDITY,
12
12
  VERSION
@@ -58,6 +58,7 @@ declare class PublicInputChecker {
58
58
  isCorrect: boolean;
59
59
  queryResultErrors: Partial<QueryResultErrors>;
60
60
  }>;
61
+ private static checkCurrentDate;
61
62
  static checkPublicInputs(domain: string, proofs: Array<ProofResult>, queryResult: QueryResult, validity?: number, scope?: string): Promise<{
62
63
  isCorrect: boolean;
63
64
  uniqueIdentifier: string | undefined;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  PublicInputChecker
3
- } from "./chunk-O7ZONMCQ.js";
3
+ } from "./chunk-6FIXE2II.js";
4
4
  import "./chunk-JG37KYXW.js";
5
5
  export {
6
6
  PublicInputChecker
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SolidityVerifier
3
- } from "./chunk-I7PGO4XY.js";
3
+ } from "./chunk-7UUZHRZ3.js";
4
4
  import "./chunk-JG37KYXW.js";
5
5
  export {
6
6
  SolidityVerifier
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zkpassport/sdk",
3
- "version": "0.10.0",
3
+ "version": "0.11.0-beta.1",
4
4
  "description": "Privacy-preserving identity verification using passports and ID cards",
5
5
  "author": "ZKPassport",
6
6
  "license": "Apache-2.0",
@@ -35,9 +35,9 @@
35
35
  "@noble/ciphers": "^1.2.1",
36
36
  "@noble/hashes": "^1.7.2",
37
37
  "@noble/secp256k1": "^2.2.3",
38
- "@obsidion/bridge": "^0.10.4",
38
+ "@obsidion/bridge": "0.11.1",
39
39
  "@zkpassport/registry": "0.11.1",
40
- "@zkpassport/utils": "0.25.2",
40
+ "@zkpassport/utils": "0.28.0",
41
41
  "buffer": "^6.0.3",
42
42
  "i18n-iso-countries": "^7.12.0",
43
43
  "pako": "^2.1.0",