Add generateMerkleProof

This commit is contained in:
Sosthene 2025-06-30 22:38:30 +02:00
parent 3925f3e9e5
commit add4eb8862

View File

@ -611,6 +611,41 @@ export default class MessageBus {
}); });
} }
public generateMerkleProof(processState: any, attributeName: string): Promise<any> {
return new Promise<any>((resolve: (proof: any) => void, reject: (error: string) => void) => {
this.checkToken().then(() => {
const messageId = `GET_MERKLE_PROOF_${uuidv4()}`;
const unsubscribe = EventBus.getInstance().on('MERKLE_PROOF_RETRIEVED', (responseId: string, proof: any) => {
if (responseId !== messageId) {
return;
}
unsubscribe();
resolve(proof);
});
const unsubscribeError = EventBus.getInstance().on('ERROR_MERKLE_PROOF_RETRIEVED', (responseId: string, error: string) => {
if (responseId !== messageId) {
return;
}
unsubscribeError();
reject(error);
});
const user = User.getInstance();
const accessToken = user.getAccessToken()!;
this.sendMessage({
type: 'GET_MERKLE_PROOF',
accessToken,
processState,
attributeName,
messageId
});
}).catch(reject);
});
}
private validateToken(): Promise<boolean> { private validateToken(): Promise<boolean> {
return new Promise<boolean>((resolve: (isValid: boolean) => void, reject: (error: string) => void) => { return new Promise<boolean>((resolve: (isValid: boolean) => void, reject: (error: string) => void) => {
const messageId = `VALIDATE_TOKEN_${uuidv4()}`; const messageId = `VALIDATE_TOKEN_${uuidv4()}`;
@ -804,6 +839,10 @@ export default class MessageBus {
this.doHandleMessage(message.messageId, 'VALUE_HASHED', message, (message: any) => message.hash); this.doHandleMessage(message.messageId, 'VALUE_HASHED', message, (message: any) => message.hash);
break; break;
case 'MERKLE_PROOF_RETRIEVED': // GENERATE_MERKLE_PROOF
this.doHandleMessage(message.messageId, 'MERKLE_PROOF_RETRIEVED', message, (message: any) => message.proof);
break;
case 'ERROR': case 'ERROR':
console.error('Error:', message); console.error('Error:', message);
this.errors[message.messageId] = message.error; this.errors[message.messageId] = message.error;