fixed-merkle-tree 0.7.3-p0

Signed-off-by: T-Hax <>
This commit is contained in:
T-Hax 2023-05-13 20:52:40 +00:00
parent 19124126f4
commit e676b48b59
No known key found for this signature in database
40 changed files with 2976 additions and 6343 deletions

View file

@ -0,0 +1,22 @@
import { Element } from './'
/***
* This is insecure hash function, just for example only
* @param data
* @param seed
* @param hashLength
*/
export function simpleHash<T>(data: T[], seed?: number, hashLength = 40): string {
const str = data.join('')
let i, l,
hval = seed ?? 0x811c9dcc5
for (i = 0, l = str.length; i < l; i++) {
hval ^= str.charCodeAt(i)
hval += (hval << 1) + (hval << 4) + (hval << 6) + (hval << 8) + (hval << 24)
}
const hash = (hval >>> 0).toString(16)
return BigInt('0x' + hash.padEnd(hashLength - (hash.length - 1), '0')).toString(10)
}
export default (left: Element, right: Element): string => simpleHash([left, right])