UNPKG

@payburner/keyburner-core

Version:

KeyburnerJs -- A library to enable arbitrary transaction signing and verification using XRPL-compatible keys and addresses.

37 lines 1.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.transactionID = void 0; const hash_prefixes_1 = require("./hash-prefixes"); const hash_256_1 = require("./types/hash-256"); const binary_serializer_1 = require("./serdes/binary-serializer"); const crypto_1 = require("crypto"); class Sha512Half extends binary_serializer_1.BytesList { constructor() { super(...arguments); this.hash = crypto_1.createHash("sha512"); } static put(bytes) { return new Sha512Half().put(bytes); } put(bytes) { this.hash.update(bytes); return this; } finish256() { const bytes = this.hash.digest(); return bytes.slice(0, 32); } finish() { return new hash_256_1.Hash256(this.finish256()); } } function sha512Half(...args) { const hash = new Sha512Half(); args.forEach((a) => hash.put(a)); return hash.finish256(); } function transactionID(serialized) { return new hash_256_1.Hash256(sha512Half(hash_prefixes_1.HashPrefix.transactionID, serialized)); } exports.transactionID = transactionID; //# sourceMappingURL=hashes.js.map