flexbuf
Version:
46 lines • 1.45 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.HashableContainer = exports.Container = void 0;
const flexbuf_1 = require("flexbuf");
const utils_1 = require("./utils");
class Container {
encodeToHex(forHash = false) {
return flexbuf_1.ObjectEncoding.encode(this, this.constructor.encodingSettings, forHash).data;
}
static fromDecodedHex(hexData, returnLength = false) {
try {
const result = flexbuf_1.ObjectEncoding.decode(hexData, this.encodingSettings, returnLength);
if (result.data) {
const obj = this.fromDict(result.data);
if (returnLength) {
if (!obj)
return null;
return { data: obj, length: result.length };
}
return obj;
}
}
catch (err) { }
return null;
}
static fromDict(obj) {
throw new Error("Method not implemented.");
}
static encodingSettings = [];
}
exports.Container = Container;
class HashableContainer extends Container {
calculateHash() {
return utils_1.Utils.sha256(this.encodeToHex(true));
}
validateHash(hash) {
try {
return this.calculateHash().eq(hash);
}
catch {
return false;
}
}
}
exports.HashableContainer = HashableContainer;
//# sourceMappingURL=container.js.map
;