fixed-merkle-tree 0.7.3-p0
Signed-off-by: T-Hax <>
This commit is contained in:
parent
19124126f4
commit
e676b48b59
40 changed files with 2976 additions and 6343 deletions
22
@tornado/fixed-merkle-tree/src/simpleHash.ts
Normal file
22
@tornado/fixed-merkle-tree/src/simpleHash.ts
Normal 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])
|
Loading…
Add table
Add a link
Reference in a new issue