UNPKG

8.95 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const utils_1 = require("@neo-one/utils");
4const Serializable_1 = require("../Serializable");
5const utils_2 = require("../utils");
6const message_1 = require("./message");
7class UnsignedConsensusPayload {
8 constructor({ version, previousHash, blockIndex, validatorIndex, timestamp, consensusMessage, }) {
9 this.serializeWire = Serializable_1.createSerializeWire(this.serializeWireBase.bind(this));
10 this.version = version;
11 this.previousHash = previousHash;
12 this.blockIndex = blockIndex;
13 this.validatorIndex = validatorIndex;
14 this.timestamp = timestamp === undefined ? utils_1.utils.nowSeconds() : timestamp;
15 this.consensusMessage = consensusMessage;
16 }
17 static deserializeWireBase(options) {
18 return new this(this.deserializeUnsignedConsensusPayloadWireBase(options));
19 }
20 static deserializeWire(options) {
21 return this.deserializeWireBase({
22 context: options.context,
23 reader: new utils_2.BinaryReader(options.buffer),
24 });
25 }
26 serializeWireBase(writer) {
27 writer.writeUInt32LE(this.version);
28 writer.writeUInt256(this.previousHash);
29 writer.writeUInt32LE(this.blockIndex);
30 writer.writeUInt16LE(this.validatorIndex);
31 writer.writeUInt32LE(this.timestamp);
32 writer.writeVarBytesLE(this.consensusMessage.serializeWire());
33 }
34}
35UnsignedConsensusPayload.deserializeUnsignedConsensusPayloadWireBase = (options) => {
36 const { reader } = options;
37 const version = reader.readUInt32LE();
38 const previousHash = reader.readUInt256();
39 const blockIndex = reader.readUInt32LE();
40 const validatorIndex = reader.readUInt16LE();
41 const timestamp = reader.readUInt32LE();
42 const messageBytes = reader.readVarBytesLE();
43 const consensusMessage = message_1.deserializeConsensusMessageWire({
44 context: options.context,
45 buffer: messageBytes,
46 });
47 return {
48 version,
49 previousHash,
50 blockIndex,
51 validatorIndex,
52 timestamp,
53 consensusMessage,
54 };
55};
56exports.UnsignedConsensusPayload = UnsignedConsensusPayload;
57
58//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlVuc2lnbmVkQ29uc2Vuc3VzUGF5bG9hZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLDBDQUFzRDtBQUN0RCxrREFNeUI7QUFDekIsb0NBQXdDO0FBQ3hDLHVDQUE4RTtBQVc5RSxNQUFhLHdCQUF3QjtJQTJDbkMsWUFBbUIsRUFDakIsT0FBTyxFQUNQLFlBQVksRUFDWixVQUFVLEVBQ1YsY0FBYyxFQUNkLFNBQVMsRUFDVCxnQkFBZ0IsR0FDWTtRQVRkLGtCQUFhLEdBQWtCLGtDQUFtQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQVVwRyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUNyQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLGFBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztJQUMzQyxDQUFDO0lBakNNLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxPQUFtQztRQUNuRSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQywyQ0FBMkMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFTSxNQUFNLENBQUMsZUFBZSxDQUFDLE9BQStCO1FBQzNELE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO1lBQzlCLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztZQUN4QixNQUFNLEVBQUUsSUFBSSxvQkFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7U0FDekMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQTBCTSxpQkFBaUIsQ0FBQyxNQUFvQjtRQUMzQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN2QyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0QyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMxQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyQyxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7O0FBakVzQixvRUFBMkMsR0FBRyxDQUFDLE9BQW1DLEVBQUUsRUFBRTtJQUMzRyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBQzNCLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDMUMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3pDLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEMsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzdDLE1BQU0sZ0JBQWdCLEdBQUcseUNBQStCLENBQUM7UUFDdkQsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1FBQ3hCLE1BQU0sRUFBRSxZQUFZO0tBQ3JCLENBQUMsQ0FBQztJQUVILE9BQU87UUFDTCxPQUFPO1FBQ1AsWUFBWTtRQUNaLFVBQVU7UUFDVixjQUFjO1FBQ2QsU0FBUztRQUNULGdCQUFnQjtLQUNqQixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBdEJKLDREQW1FQyIsImZpbGUiOiJuZW8tb25lLW5vZGUtY29yZS9zcmMvcGF5bG9hZC9VbnNpZ25lZENvbnNlbnN1c1BheWxvYWQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCaW5hcnlXcml0ZXIsIFVJbnQyNTYgfSBmcm9tICdAbmVvLW9uZS9jbGllbnQtY29tbW9uJztcbmltcG9ydCB7IHV0aWxzIGFzIGNvbW1vblV0aWxzIH0gZnJvbSAnQG5lby1vbmUvdXRpbHMnO1xuaW1wb3J0IHtcbiAgY3JlYXRlU2VyaWFsaXplV2lyZSxcbiAgRGVzZXJpYWxpemVXaXJlQmFzZU9wdGlvbnMsXG4gIERlc2VyaWFsaXplV2lyZU9wdGlvbnMsXG4gIFNlcmlhbGl6YWJsZVdpcmUsXG4gIFNlcmlhbGl6ZVdpcmUsXG59IGZyb20gJy4uL1NlcmlhbGl6YWJsZSc7XG5pbXBvcnQgeyBCaW5hcnlSZWFkZXIgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBDb25zZW5zdXNNZXNzYWdlLCBkZXNlcmlhbGl6ZUNvbnNlbnN1c01lc3NhZ2VXaXJlIH0gZnJvbSAnLi9tZXNzYWdlJztcblxuZXhwb3J0IGludGVyZmFjZSBVbnNpZ25lZENvbnNlbnN1c1BheWxvYWRBZGQge1xuICByZWFkb25seSB2ZXJzaW9uOiBudW1iZXI7XG4gIHJlYWRvbmx5IHByZXZpb3VzSGFzaDogVUludDI1NjtcbiAgcmVhZG9ubHkgYmxvY2tJbmRleDogbnVtYmVyO1xuICByZWFkb25seSB2YWxpZGF0b3JJbmRleDogbnVtYmVyO1xuICByZWFkb25seSB0aW1lc3RhbXA/OiBudW1iZXI7XG4gIHJlYWRvbmx5IGNvbnNlbnN1c01lc3NhZ2U6IENvbnNlbnN1c01lc3NhZ2U7XG59XG5cbmV4cG9ydCBjbGFzcyBVbnNpZ25lZENvbnNlbnN1c1BheWxvYWQgaW1wbGVtZW50cyBTZXJpYWxpemFibGVXaXJlPFVuc2lnbmVkQ29uc2Vuc3VzUGF5bG9hZD4ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGRlc2VyaWFsaXplVW5zaWduZWRDb25zZW5zdXNQYXlsb2FkV2lyZUJhc2UgPSAob3B0aW9uczogRGVzZXJpYWxpemVXaXJlQmFzZU9wdGlvbnMpID0+IHtcbiAgICBjb25zdCB7IHJlYWRlciB9ID0gb3B0aW9ucztcbiAgICBjb25zdCB2ZXJzaW9uID0gcmVhZGVyLnJlYWRVSW50MzJMRSgpO1xuICAgIGNvbnN0IHByZXZpb3VzSGFzaCA9IHJlYWRlci5yZWFkVUludDI1NigpO1xuICAgIGNvbnN0IGJsb2NrSW5kZXggPSByZWFkZXIucmVhZFVJbnQzMkxFKCk7XG4gICAgY29uc3QgdmFsaWRhdG9ySW5kZXggPSByZWFkZXIucmVhZFVJbnQxNkxFKCk7XG4gICAgY29uc3QgdGltZXN0YW1wID0gcmVhZGVyLnJlYWRVSW50MzJMRSgpO1xuICAgIGNvbnN0IG1lc3NhZ2VCeXRlcyA9IHJlYWRlci5yZWFkVmFyQnl0ZXNMRSgpO1xuICAgIGNvbnN0IGNvbnNlbnN1c01lc3NhZ2UgPSBkZXNlcmlhbGl6ZUNvbnNlbnN1c01lc3NhZ2VXaXJlKHtcbiAgICAgIGNvbnRleHQ6IG9wdGlvbnMuY29udGV4dCxcbiAgICAgIGJ1ZmZlcjogbWVzc2FnZUJ5dGVzLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHZlcnNpb24sXG4gICAgICBwcmV2aW91c0hhc2gsXG4gICAgICBibG9ja0luZGV4LFxuICAgICAgdmFsaWRhdG9ySW5kZXgsXG4gICAgICB0aW1lc3RhbXAsXG4gICAgICBjb25zZW5zdXNNZXNzYWdlLFxuICAgIH07XG4gIH07XG5cbiAgcHVibGljIHN0YXRpYyBkZXNlcmlhbGl6ZVdpcmVCYXNlKG9wdGlvbnM6IERlc2VyaWFsaXplV2lyZUJhc2VPcHRpb25zKTogVW5zaWduZWRDb25zZW5zdXNQYXlsb2FkIHtcbiAgICByZXR1cm4gbmV3IHRoaXModGhpcy5kZXNlcmlhbGl6ZVVuc2lnbmVkQ29uc2Vuc3VzUGF5bG9hZFdpcmVCYXNlKG9wdGlvbnMpKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZGVzZXJpYWxpemVXaXJlKG9wdGlvbnM6IERlc2VyaWFsaXplV2lyZU9wdGlvbnMpOiBVbnNpZ25lZENvbnNlbnN1c1BheWxvYWQge1xuICAgIHJldHVybiB0aGlzLmRlc2VyaWFsaXplV2lyZUJhc2Uoe1xuICAgICAgY29udGV4dDogb3B0aW9ucy5jb250ZXh0LFxuICAgICAgcmVhZGVyOiBuZXcgQmluYXJ5UmVhZGVyKG9wdGlvbnMuYnVmZmVyKSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSB2ZXJzaW9uOiBudW1iZXI7XG4gIHB1YmxpYyByZWFkb25seSBwcmV2aW91c0hhc2g6IFVJbnQyNTY7XG4gIHB1YmxpYyByZWFkb25seSBibG9ja0luZGV4OiBudW1iZXI7XG4gIHB1YmxpYyByZWFkb25seSB2YWxpZGF0b3JJbmRleDogbnVtYmVyO1xuICBwdWJsaWMgcmVhZG9ubHkgdGltZXN0YW1wOiBudW1iZXI7XG4gIHB1YmxpYyByZWFkb25seSBjb25zZW5zdXNNZXNzYWdlOiBDb25zZW5zdXNNZXNzYWdlO1xuICBwdWJsaWMgcmVhZG9ubHkgc2VyaWFsaXplV2lyZTogU2VyaWFsaXplV2lyZSA9IGNyZWF0ZVNlcmlhbGl6ZVdpcmUodGhpcy5zZXJpYWxpemVXaXJlQmFzZS5iaW5kKHRoaXMpKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3Ioe1xuICAgIHZlcnNpb24sXG4gICAgcHJldmlvdXNIYXNoLFxuICAgIGJsb2NrSW5kZXgsXG4gICAgdmFsaWRhdG9ySW5kZXgsXG4gICAgdGltZXN0YW1wLFxuICAgIGNvbnNlbnN1c01lc3NhZ2UsXG4gIH06IFVuc2lnbmVkQ29uc2Vuc3VzUGF5bG9hZEFkZCkge1xuICAgIHRoaXMudmVyc2lvbiA9IHZlcnNpb247XG4gICAgdGhpcy5wcmV2aW91c0hhc2ggPSBwcmV2aW91c0hhc2g7XG4gICAgdGhpcy5ibG9ja0luZGV4ID0gYmxvY2tJbmRleDtcbiAgICB0aGlzLnZhbGlkYXRvckluZGV4ID0gdmFsaWRhdG9ySW5kZXg7XG4gICAgdGhpcy50aW1lc3RhbXAgPSB0aW1lc3RhbXAgPT09IHVuZGVmaW5lZCA/IGNvbW1vblV0aWxzLm5vd1NlY29uZHMoKSA6IHRpbWVzdGFtcDtcbiAgICB0aGlzLmNvbnNlbnN1c01lc3NhZ2UgPSBjb25zZW5zdXNNZXNzYWdlO1xuICB9XG5cbiAgcHVibGljIHNlcmlhbGl6ZVdpcmVCYXNlKHdyaXRlcjogQmluYXJ5V3JpdGVyKTogdm9pZCB7XG4gICAgd3JpdGVyLndyaXRlVUludDMyTEUodGhpcy52ZXJzaW9uKTtcbiAgICB3cml0ZXIud3JpdGVVSW50MjU2KHRoaXMucHJldmlvdXNIYXNoKTtcbiAgICB3cml0ZXIud3JpdGVVSW50MzJMRSh0aGlzLmJsb2NrSW5kZXgpO1xuICAgIHdyaXRlci53cml0ZVVJbnQxNkxFKHRoaXMudmFsaWRhdG9ySW5kZXgpO1xuICAgIHdyaXRlci53cml0ZVVJbnQzMkxFKHRoaXMudGltZXN0YW1wKTtcbiAgICB3cml0ZXIud3JpdGVWYXJCeXRlc0xFKHRoaXMuY29uc2Vuc3VzTWVzc2FnZS5zZXJpYWxpemVXaXJlKCkpO1xuICB9XG59XG4iXX0=