implement vc_and_disclose proof/semantic verification in sdk

This commit is contained in:
turnoffthiscomputer
2024-10-16 11:41:33 -07:00
parent 74c157e542
commit 270f385b2c
6 changed files with 59 additions and 32 deletions

View File

@@ -53,7 +53,7 @@ export const circuitNameFromMode = {
prove_onchain: 'prove',
prove_offchain: 'prove',
register: 'prove',
disclose: 'disclose',
vc_and_disclose: 'vc_and_disclose',
}
export enum SignatureAlgorithmIndex {

View File

@@ -327,7 +327,12 @@ export class OpenPassportDynamicAttestation implements OpenPassportAttestation {
getCommitment(): string {
const parsedPublicSignals = this.parsePublicSignals();
return parsedPublicSignals.commitment;
if (this.proof.mode === 'vc_and_disclose') {
return '';
}
else {
return (parsedPublicSignals as any).commitment;
}
}
getCSCAMerkleRoot(): string {
if (this.dscProof.value.publicSignals) {
@@ -368,11 +373,14 @@ export function parsePublicSignalsDisclose(publicSignals) {
nullifier: publicSignals[0],
revealedData_packed: publicSignals.slice(1, 4),
older_than: publicSignals.slice(4, 6),
attestation_id: publicSignals[6],
merkle_root: publicSignals[7],
scope: publicSignals[8],
current_date: publicSignals.slice(9, 15),
user_identifier: publicSignals[15],
forbidden_countries_list_packed_disclosed: publicSignals.slice(6, 8),
ofac_result: publicSignals[8],
attestation_id: publicSignals[9],
merkle_root: publicSignals[10],
scope: publicSignals[11],
current_date: publicSignals.slice(12, 18),
user_identifier: publicSignals[18],
smt_root: publicSignals[19],
}
}