JSFiddle - React, Tailwind, and code Playground
HTML
<script type="module">
/************************************************************************************
*
* 1. File and certificate provisioning
*
************************************************************************************/
const mydocument = 'test';
const mycertificate = {
blockchains: {
xrp: {
transaction: 'A5C5547C67DC4BAAB1793F8DC83616B5AA988AB261F425AA459AF2B2B7812C00',
block_timestamp: 786501601,
merkle_tree_splice: [
'7fDcxqo67ghGTV1HyJpscanO0EEerhijtXYA0USlxnk=',
'',
'IOxNJ/fhVpu5w+oOYXg4CIyfvBiKZ3ozPs2XnplyTBo='
]
},
solana: {
transaction: '2j1tNuEP5LxcW9tKsi2Scr3fvjLkpJ1xcszzC8RdGwoJioppt7JzWSyJniTCGhSZorFNnR3y2nKZTs18nCfYADgr',
block_timestamp: 1733187600,
merkle_tree_splice: [
'7fDcxqo67ghGTV1HyJpscanO0EEerhijtXYA0USlxnk=',
'',
'IOxNJ/fhVpu5w+oOYXg4CIyfvBiKZ3ozPs2XnplyTBo=',
'56dme4H5OOa4yLMuyvK7KPMrXKFj/u/BHCc9RYmWHlk=',
'Cz1F06Khmq1QmDxJ77PPNnmDSuWapPu/9HFyIY0AdZU=',
'pGIWsoAJm+bVKvGVEUGaGK5Cb92+nnLYEgi5QUdHhVA=',
'Nr/8EqtWd+XJhseUg2+6vNc4ST9j/FqjVdDewABwkTk=',
'fVxcnHkJAS4vtJuWYg5HtDr3XKeK65rEo60IKpsr3Rg='
]
}
},
meta: {
version: 1,
blockchains: ['solana', 'xrp'],
salt: '00a54fabe12c75e8663534ecda19ab38'
},
info: {
hash_algorithm: 'SHA-256',
salted_hash: 'o0X9rt38cyVpTmfKmegkkXkjr1Z48T8ihsvxDFa1wCg='
},
document_hash: 'n4bQgYhMfWWaL+qgxVrQFaO/TxsrC4Is0V1sFbDwCgg='
};
/************************************************************************************
*
* 2. Hash regeneration
*
************************************************************************************/
async function hashString(message) {
const messageUint8 = new TextEncoder().encode(message); // encode as (utf-8) Uint8Array
const hashBuffer = await...