Add merkle proof validation message bus
This commit is contained in:
parent
81b715a730
commit
2270051f1c
@ -646,6 +646,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> {
|
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()}`;
|
||||||
@ -736,7 +771,9 @@ export default class MessageBus {
|
|||||||
console.error('[MessageBus] sendMessage: iframe not found');
|
console.error('[MessageBus] sendMessage: iframe not found');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// console.log('[MessageBus] sendMessage:', message);
|
if (message.type === 'VALIDATE_MERKLE_PROOF') {
|
||||||
|
console.log('[MessageBus] sendMessage:', message);
|
||||||
|
}
|
||||||
iframe.contentWindow?.postMessage(message, targetOrigin);
|
iframe.contentWindow?.postMessage(message, targetOrigin);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -839,10 +876,14 @@ 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
|
case 'MERKLE_PROOF_RETRIEVED': // GET_MERKLE_PROOF
|
||||||
this.doHandleMessage(message.messageId, 'MERKLE_PROOF_RETRIEVED', message, (message: any) => message.proof);
|
this.doHandleMessage(message.messageId, 'MERKLE_PROOF_RETRIEVED', message, (message: any) => message.proof);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'MERKLE_PROOF_VALIDATED': // VALIDATE_MERKLE_PROOF
|
||||||
|
this.doHandleMessage(message.messageId, 'MERKLE_PROOF_VALIDATED', message, (message: any) => message.isValid);
|
||||||
|
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;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user