Add merkle proof validation message bus
This commit is contained in:
parent
56fe4fbcd3
commit
c87ad8fed5
@ -643,6 +643,41 @@ export default class MessageBus {
|
||||
});
|
||||
}
|
||||
|
||||
public verifyMerkleProof(merkleProof: string, documentHash: string): Promise<boolean> {
|
||||
return new Promise<boolean>((resolve: (isValid: boolean) => void, reject: (error: string) => void) => {
|
||||
this.checkToken().then(() => {
|
||||
const messageId = `VALIDATE_MERKLE_PROOF_${uuidv4()}`;
|
||||
|
||||
const unsubscribe = EventBus.getInstance().on('MERKLE_PROOF_VALIDATED', (responseId: string, isValid: boolean) => {
|
||||
if (responseId !== messageId) {
|
||||
return;
|
||||
}
|
||||
unsubscribe();
|
||||
resolve(isValid);
|
||||
});
|
||||
|
||||
const unsubscribeError = EventBus.getInstance().on('ERROR_MERKLE_PROOF_VALIDATED', (responseId: string, error: string) => {
|
||||
if (responseId !== messageId) {
|
||||
return;
|
||||
}
|
||||
unsubscribeError();
|
||||
reject(error);
|
||||
});
|
||||
|
||||
const user = User.getInstance();
|
||||
const accessToken = user.getAccessToken()!;
|
||||
|
||||
this.sendMessage({
|
||||
type: 'VALIDATE_MERKLE_PROOF',
|
||||
accessToken,
|
||||
merkleProof,
|
||||
documentHash,
|
||||
messageId
|
||||
});
|
||||
}).catch(reject);
|
||||
});
|
||||
}
|
||||
|
||||
private validateToken(): Promise<boolean> {
|
||||
return new Promise<boolean>((resolve: (isValid: boolean) => void, reject: (error: string) => void) => {
|
||||
const messageId = `VALIDATE_TOKEN_${uuidv4()}`;
|
||||
@ -733,7 +768,9 @@ export default class MessageBus {
|
||||
console.error('[MessageBus] sendMessage: iframe not found');
|
||||
return;
|
||||
}
|
||||
// console.log('[MessageBus] sendMessage:', message);
|
||||
if (message.type === 'VALIDATE_MERKLE_PROOF') {
|
||||
console.log('[MessageBus] sendMessage:', message);
|
||||
}
|
||||
iframe.contentWindow?.postMessage(message, targetOrigin);
|
||||
}
|
||||
|
||||
@ -836,10 +873,14 @@ export default class MessageBus {
|
||||
this.doHandleMessage(message.messageId, 'VALUE_HASHED', message, (message: any) => message.hash);
|
||||
break;
|
||||
|
||||
case 'MERKLE_PROOF_RETRIEVED': // GENERATE_MERKLE_PROOF
|
||||
case 'MERKLE_PROOF_RETRIEVED': // GET_MERKLE_PROOF
|
||||
this.doHandleMessage(message.messageId, 'MERKLE_PROOF_RETRIEVED', message, (message: any) => message.proof);
|
||||
break;
|
||||
|
||||
case 'MERKLE_PROOF_VALIDATED': // VALIDATE_MERKLE_PROOF
|
||||
this.doHandleMessage(message.messageId, 'MERKLE_PROOF_VALIDATED', message, (message: any) => message.isValid);
|
||||
break;
|
||||
|
||||
case 'ERROR':
|
||||
console.error('Error:', message);
|
||||
this.errors[message.messageId] = message.error;
|
||||
|
Loading…
x
Reference in New Issue
Block a user