flexbuf
Version:
41 lines • 1.23 kB
JavaScript
import { ObjectEncoding } from "flexbuf";
import { Utils } from "./utils";
export class Container {
encodeToHex(forHash = false) {
return ObjectEncoding.encode(this, this.constructor.encodingSettings, forHash).data;
}
static fromDecodedHex(hexData, returnLength = false) {
try {
const result = 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 = [];
}
export class HashableContainer extends Container {
calculateHash() {
return Utils.sha256(this.encodeToHex(true));
}
validateHash(hash) {
try {
return this.calculateHash().eq(hash);
}
catch {
return false;
}
}
}
//# sourceMappingURL=container.js.map