1 | ;
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const utils_1 = require("@neo-one/utils");
|
4 | const Serializable_1 = require("../Serializable");
|
5 | const utils_2 = require("../utils");
|
6 | const message_1 = require("./message");
|
7 | class 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 | }
|
35 | UnsignedConsensusPayload.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 | };
|
56 | exports.UnsignedConsensusPayload = UnsignedConsensusPayload;
|
57 |
|
58 | //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlVuc2lnbmVkQ29uc2Vuc3VzUGF5bG9hZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLDBDQUFzRDtBQUN0RCxrREFNeUI7QUFDekIsb0NBQXdDO0FBQ3hDLHVDQUE4RTtBQVc5RSxNQUFhLHdCQUF3QjtJQTJDbkMsWUFBbUIsRUFDakIsT0FBTyxFQUNQLFlBQVksRUFDWixVQUFVLEVBQ1YsY0FBYyxFQUNkLFNBQVMsRUFDVCxnQkFBZ0IsR0FDWTtRQVRkLGtCQUFhLEdBQWtCLGtDQUFtQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQVVwRyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUNyQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLGFBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztJQUMzQyxDQUFDO0lBakNNLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxPQUFtQztRQUNuRSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQywyQ0FBMkMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFTSxNQUFNLENBQUMsZUFBZSxDQUFDLE9BQStCO1FBQzNELE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO1lBQzlCLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztZQUN4QixNQUFNLEVBQUUsSUFBSSxvQkFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7U0FDekMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQTBCTSxpQkFBaUIsQ0FBQyxNQUFvQjtRQUMzQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN2QyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0QyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMxQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyQyxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7O0FBakVzQixvRUFBMkMsR0FBRyxDQUFDLE9BQW1DLEVBQUUsRUFBRTtJQUMzRyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBQzNCLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDMUMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3pDLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEMsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzdDLE1BQU0sZ0JBQWdCLEdBQUcseUNBQStCLENBQUM7UUFDdkQsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1FBQ3hCLE1BQU0sRUFBRSxZQUFZO0tBQ3JCLENBQUMsQ0FBQztJQUVILE9BQU87UUFDTCxPQUFPO1FBQ1AsWUFBWTtRQUNaLFVBQVU7UUFDVixjQUFjO1FBQ2QsU0FBUztRQUNULGdCQUFnQjtLQUNqQixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBdEJKLDREQW1FQyIsImZpbGUiOiJuZW8tb25lLW5vZGUtY29yZS9zcmMvcGF5bG9hZC9VbnNpZ25lZENvbnNlbnN1c1BheWxvYWQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCaW5hcnlXcml0ZXIsIFVJbnQyNTYgfSBmcm9tICdAbmVvLW9uZS9jbGllbnQtY29tbW9uJztcbmltcG9ydCB7IHV0aWxzIGFzIGNvbW1vblV0aWxzIH0gZnJvbSAnQG5lby1vbmUvdXRpbHMnO1xuaW1wb3J0IHtcbiAgY3JlYXRlU2VyaWFsaXplV2lyZSxcbiAgRGVzZXJpYWxpemVXaXJlQmFzZU9wdGlvbnMsXG4gIERlc2VyaWFsaXplV2lyZU9wdGlvbnMsXG4gIFNlcmlhbGl6YWJsZVdpcmUsXG4gIFNlcmlhbGl6ZVdpcmUsXG59IGZyb20gJy4uL1NlcmlhbGl6YWJsZSc7XG5pbXBvcnQgeyBCaW5hcnlSZWFkZXIgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBDb25zZW5zdXNNZXNzYWdlLCBkZXNlcmlhbGl6ZUNvbnNlbnN1c01lc3NhZ2VXaXJlIH0gZnJvbSAnLi9tZXNzYWdlJztcblxuZXhwb3J0IGludGVyZmFjZSBVbnNpZ25lZENvbnNlbnN1c1BheWxvYWRBZGQge1xuICByZWFkb25seSB2ZXJzaW9uOiBudW1iZXI7XG4gIHJlYWRvbmx5IHByZXZpb3VzSGFzaDogVUludDI1NjtcbiAgcmVhZG9ubHkgYmxvY2tJbmRleDogbnVtYmVyO1xuICByZWFkb25seSB2YWxpZGF0b3JJbmRleDogbnVtYmVyO1xuICByZWFkb25seSB0aW1lc3RhbXA/OiBudW1iZXI7XG4gIHJlYWRvbmx5IGNvbnNlbnN1c01lc3NhZ2U6IENvbnNlbnN1c01lc3NhZ2U7XG59XG5cbmV4cG9ydCBjbGFzcyBVbnNpZ25lZENvbnNlbnN1c1BheWxvYWQgaW1wbGVtZW50cyBTZXJpYWxpemFibGVXaXJlPFVuc2lnbmVkQ29uc2Vuc3VzUGF5bG9hZD4ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGRlc2VyaWFsaXplVW5zaWduZWRDb25zZW5zdXNQYXlsb2FkV2lyZUJhc2UgPSAob3B0aW9uczogRGVzZXJpYWxpemVXaXJlQmFzZU9wdGlvbnMpID0+IHtcbiAgICBjb25zdCB7IHJlYWRlciB9ID0gb3B0aW9ucztcbiAgICBjb25zdCB2ZXJzaW9uID0gcmVhZGVyLnJlYWRVSW50MzJMRSgpO1xuICAgIGNvbnN0IHByZXZpb3VzSGFzaCA9IHJlYWRlci5yZWFkVUludDI1NigpO1xuICAgIGNvbnN0IGJsb2NrSW5kZXggPSByZWFkZXIucmVhZFVJbnQzMkxFKCk7XG4gICAgY29uc3QgdmFsaWRhdG9ySW5kZXggPSByZWFkZXIucmVhZFVJbnQxNkxFKCk7XG4gICAgY29uc3QgdGltZXN0YW1wID0gcmVhZGVyLnJlYWRVSW50MzJMRSgpO1xuICAgIGNvbnN0IG1lc3NhZ2VCeXRlcyA9IHJlYWRlci5yZWFkVmFyQnl0ZXNMRSgpO1xuICAgIGNvbnN0IGNvbnNlbnN1c01lc3NhZ2UgPSBkZXNlcmlhbGl6ZUNvbnNlbnN1c01lc3NhZ2VXaXJlKHtcbiAgICAgIGNvbnRleHQ6IG9wdGlvbnMuY29udGV4dCxcbiAgICAgIGJ1ZmZlcjogbWVzc2FnZUJ5dGVzLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHZlcnNpb24sXG4gICAgICBwcmV2aW91c0hhc2gsXG4gICAgICBibG9ja0luZGV4LFxuICAgICAgdmFsaWRhdG9ySW5kZXgsXG4gICAgICB0aW1lc3RhbXAsXG4gICAgICBjb25zZW5zdXNNZXNzYWdlLFxuICAgIH07XG4gIH07XG5cbiAgcHVibGljIHN0YXRpYyBkZXNlcmlhbGl6ZVdpcmVCYXNlKG9wdGlvbnM6IERlc2VyaWFsaXplV2lyZUJhc2VPcHRpb25zKTogVW5zaWduZWRDb25zZW5zdXNQYXlsb2FkIHtcbiAgICByZXR1cm4gbmV3IHRoaXModGhpcy5kZXNlcmlhbGl6ZVVuc2lnbmVkQ29uc2Vuc3VzUGF5bG9hZFdpcmVCYXNlKG9wdGlvbnMpKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZGVzZXJpYWxpemVXaXJlKG9wdGlvbnM6IERlc2VyaWFsaXplV2lyZU9wdGlvbnMpOiBVbnNpZ25lZENvbnNlbnN1c1BheWxvYWQge1xuICAgIHJldHVybiB0aGlzLmRlc2VyaWFsaXplV2lyZUJhc2Uoe1xuICAgICAgY29udGV4dDogb3B0aW9ucy5jb250ZXh0LFxuICAgICAgcmVhZGVyOiBuZXcgQmluYXJ5UmVhZGVyKG9wdGlvbnMuYnVmZmVyKSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSB2ZXJzaW9uOiBudW1iZXI7XG4gIHB1YmxpYyByZWFkb25seSBwcmV2aW91c0hhc2g6IFVJbnQyNTY7XG4gIHB1YmxpYyByZWFkb25seSBibG9ja0luZGV4OiBudW1iZXI7XG4gIHB1YmxpYyByZWFkb25seSB2YWxpZGF0b3JJbmRleDogbnVtYmVyO1xuICBwdWJsaWMgcmVhZG9ubHkgdGltZXN0YW1wOiBudW1iZXI7XG4gIHB1YmxpYyByZWFkb25seSBjb25zZW5zdXNNZXNzYWdlOiBDb25zZW5zdXNNZXNzYWdlO1xuICBwdWJsaWMgcmVhZG9ubHkgc2VyaWFsaXplV2lyZTogU2VyaWFsaXplV2lyZSA9IGNyZWF0ZVNlcmlhbGl6ZVdpcmUodGhpcy5zZXJpYWxpemVXaXJlQmFzZS5iaW5kKHRoaXMpKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3Ioe1xuICAgIHZlcnNpb24sXG4gICAgcHJldmlvdXNIYXNoLFxuICAgIGJsb2NrSW5kZXgsXG4gICAgdmFsaWRhdG9ySW5kZXgsXG4gICAgdGltZXN0YW1wLFxuICAgIGNvbnNlbnN1c01lc3NhZ2UsXG4gIH06IFVuc2lnbmVkQ29uc2Vuc3VzUGF5bG9hZEFkZCkge1xuICAgIHRoaXMudmVyc2lvbiA9IHZlcnNpb247XG4gICAgdGhpcy5wcmV2aW91c0hhc2ggPSBwcmV2aW91c0hhc2g7XG4gICAgdGhpcy5ibG9ja0luZGV4ID0gYmxvY2tJbmRleDtcbiAgICB0aGlzLnZhbGlkYXRvckluZGV4ID0gdmFsaWRhdG9ySW5kZXg7XG4gICAgdGhpcy50aW1lc3RhbXAgPSB0aW1lc3RhbXAgPT09IHVuZGVmaW5lZCA/IGNvbW1vblV0aWxzLm5vd1NlY29uZHMoKSA6IHRpbWVzdGFtcDtcbiAgICB0aGlzLmNvbnNlbnN1c01lc3NhZ2UgPSBjb25zZW5zdXNNZXNzYWdlO1xuICB9XG5cbiAgcHVibGljIHNlcmlhbGl6ZVdpcmVCYXNlKHdyaXRlcjogQmluYXJ5V3JpdGVyKTogdm9pZCB7XG4gICAgd3JpdGVyLndyaXRlVUludDMyTEUodGhpcy52ZXJzaW9uKTtcbiAgICB3cml0ZXIud3JpdGVVSW50MjU2KHRoaXMucHJldmlvdXNIYXNoKTtcbiAgICB3cml0ZXIud3JpdGVVSW50MzJMRSh0aGlzLmJsb2NrSW5kZXgpO1xuICAgIHdyaXRlci53cml0ZVVJbnQxNkxFKHRoaXMudmFsaWRhdG9ySW5kZXgpO1xuICAgIHdyaXRlci53cml0ZVVJbnQzMkxFKHRoaXMudGltZXN0YW1wKTtcbiAgICB3cml0ZXIud3JpdGVWYXJCeXRlc0xFKHRoaXMuY29uc2Vuc3VzTWVzc2FnZS5zZXJpYWxpemVXaXJlKCkpO1xuICB9XG59XG4iXX0=
|