mirror of https://codeberg.org/pzp/pzp-db.git
24 lines
565 B
JavaScript
24 lines
565 B
JavaScript
const crypto = require('crypto')
|
|
const b4a = require('b4a')
|
|
const base58 = require('bs58')
|
|
// @ts-ignore
|
|
const stringify = require('json-canon')
|
|
|
|
/**
|
|
* @typedef {Buffer | Uint8Array} B4A
|
|
*/
|
|
|
|
/**
|
|
* @param {any} data
|
|
* @returns {[string, number]}
|
|
*/
|
|
function representData(data) {
|
|
const dataBuf = b4a.from(stringify(data), 'utf8')
|
|
const fullHash = crypto.createHash('sha512').update(dataBuf).digest()
|
|
const dataHash = base58.encode(fullHash.subarray(0, 32))
|
|
const dataSize = dataBuf.length
|
|
return [dataHash, dataSize]
|
|
}
|
|
|
|
module.exports = representData
|