@radixdlt/atom
Version:
Container for CRUD instructions known as 'Particles' that are sent to the Radix decentralized ledger
18 lines (15 loc) • 546 B
text/typescript
import { radixHash } from '@radixdlt/crypto'
import { DSONCodable, OutputMode } from '@radixdlt/data-formats'
import { buffersEquals } from '@radixdlt/util'
import { combine, Result } from 'neverthrow'
export const hashId = <T extends DSONCodable>(
dsonEncodable: T,
): Result<Buffer, Error> =>
dsonEncodable.toDSON(OutputMode.HASH).map((b) => radixHash(b))
export const equalsDSONHash = <T extends DSONCodable>(
lhs: T,
rhs: T,
): boolean =>
combine([hashId(lhs), hashId(rhs)])
.map((l) => buffersEquals(l[0], l[1]))
.unwrapOr(false)