@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
JavaScript
;
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