@x5e/gink
Version:
an eventually consistent database
26 lines (24 loc) • 917 B
text/typescript
import { BundleBuilder } from "./builders";
import { BundleInfo, BundleView, Bytes } from "./typedefs";
import { signingBundles, digest } from "./utils";
export class Decomposition implements BundleView {
readonly builder: BundleBuilder;
readonly info: BundleInfo;
constructor(readonly bytes: Bytes) {
let body: Bytes = bytes;
if (signingBundles) {
body = body.subarray(64);
}
const bundleBuilder = (this.builder = <BundleBuilder>(
BundleBuilder.deserializeBinary(body)
));
this.info = {
timestamp: bundleBuilder.getTimestamp(),
medallion: bundleBuilder.getMedallion(),
chainStart: bundleBuilder.getChainStart(),
priorTime: bundleBuilder.getPrevious() || undefined,
comment: bundleBuilder.getComment() || undefined,
hashCode: digest(bytes),
};
}
}