From 7a75ebeaa421ed3bf1d8fe08a890a79e54163f55 Mon Sep 17 00:00:00 2001 From: sairajzero Date: Sat, 25 Sep 2021 03:19:00 +0530 Subject: [PATCH] Update verifier - Adding verification for 3 new certificate types --- index.html | 64 ++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 41 insertions(+), 23 deletions(-) diff --git a/index.html b/index.html index 1d83112..e7399f8 100644 --- a/index.html +++ b/index.html @@ -14,9 +14,7 @@ //Required for blockchain API operators apiURL: { - FLO: ['https://explorer.mediciland.com/', 'https://livenet.flocha.in/', 'https://flosight.duckdns.org/', - 'http://livenet-explorer.floexperiments.com/' - ], + FLO: [ 'https://livenet.flocha.in/', 'https://flosight.duckdns.org/'], FLO_TEST: ['https://testnet-flosight.duckdns.org/', 'https://testnet.flocha.in/'] }, //adminID: null, @@ -45,9 +43,12 @@ body{ body > * { grid-column: 2; } -h2{ +#result_box h2{ text-transform: capitalize; } +#result_box h3{ + text-align: center; +} h4{ font-weight: 500; font-size: 1.1rem; @@ -60,8 +61,9 @@ h4{ text-align: center; margin-bottom: 2rem; } -p{ +#result_box p{ font-size: 1.1rem; + text-align: justify; line-height: 1.7; max-width: 70ch; opacity: 0.8; @@ -7799,8 +7801,18 @@ Bitcoin.Util = { console.log(key, value) switch (key) { case "internCertificate": - internVerification(value); + verifyCertificate(value, "RIBC certificate", "CERTIFICATE OF INTERNSHIP"); break; + case "employeeCertificate": + verifyCertificate(value, "Employee certificate", "CERTIFICATE OF EMPLOYMENT"); + break; + case "volunteerCertificate": + verifyCertificate(value, "Volunteer certificate", "CERTIFICATE OF VOLUNTEERSHIP"); + break; + case "participationCertificate": + verifyCertificate(value, "Participation certificate", "CERTIFICATE OF PARTICIPATION"); + break; + } }).catch(e => { console.error(e) @@ -7812,12 +7824,13 @@ Bitcoin.Util = { const verified = document.getElementById('verified'), unverified = document.getElementById('unverified'), - tryagain = document.getElementById('try-again') + tryagain = document.getElementById('try-again'); - function internVerification(id) { + function verifyCertificate(id, certType, verifierContent) { floBlockchainAPI.getTx(id).then(tx => { let iVerify = false, - oVerify = false; + oVerify = false, + cVerify = false; for (let i of tx.vin) if (floGlobals.RMcertificateProvider === i.addr) { iVerify = true; @@ -7828,40 +7841,45 @@ Bitcoin.Util = { oVerify = true; break; } - if (iVerify && oVerify) { - console.log("Internship Certificate Verified") - let link = getBlockchainLink(`tx/${id}`) - outputUI("RIBC certificate", tx.floData, `Issue Date: ${trimDate(tx.time*1000)}`, link) + cVerify = tx.floData.startsWith(verifierContent); + if (iVerify && oVerify && cVerify) { + console.log(`${certType} (${id}) verified`); + let link = getBlockchainLink(`tx/${id}`), + content = tx.floData.substring(verifierContent.length).trim(), + time = `Issue Date: ${trimDate(tx.time*1000)}`; + outputUI(certType, verifierContent, content, time, link); verified.classList.remove('hide-completely') unverified.classList.add('hide-completely') tryagain.classList.add('hide-completely') } else { - console.log("Verification failed") + console.log(`${certType} (${id}) verification failed`); verified.classList.add('hide-completely') unverified.classList.remove('hide-completely') tryagain.classList.add('hide-completely') } }).catch(error => { - console.log("Verification failed") + console.log(`${certType} (${id}) not verified`); verified.classList.add('hide-completely') unverified.classList.remove('hide-completely') tryagain.classList.add('hide-completely') }) } - function outputUI(head, body, foot, link) { - let h = document.createElement('h2') - h.textContent = head - let b = document.createElement('p') - b.textContent = body - let f = document.createElement('a') - f.textContent = foot + function outputUI(head, type, body, foot, link) { + let h = document.createElement('h2'); + h.textContent = head; + let t = document.createElement('h3'); + t.textContent = type; + let b = document.createElement('p'); + b.textContent = body; + let f = document.createElement('a'); + f.textContent = foot; if (link) { f.setAttribute('href', link) f.setAttribute('target', '_blank') f.setAttribute('title', 'View in blockchain') } - document.getElementById("result_box").append(h, b, f) + document.getElementById("result_box").append(h, t, b, f); } function getBlockchainLink(path) {