UNPKG

6.66 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const client_common_1 = require("@neo-one/client-common");
4class Context {
5 constructor({ type, previousHash, blockIndex, viewNumber, myIndex, primaryIndex, expectedView, validators, blockReceivedTimeSeconds, }) {
6 this.version = 0;
7 this.type = type;
8 this.previousHash = previousHash;
9 this.blockIndex = blockIndex;
10 this.viewNumber = viewNumber;
11 this.myIndex = myIndex;
12 this.primaryIndex = primaryIndex;
13 this.expectedView = expectedView;
14 this.validators = validators;
15 this.blockReceivedTimeSeconds = blockReceivedTimeSeconds;
16 }
17 get M() {
18 return Math.floor(this.validators.length - (this.validators.length - 1) / 3);
19 }
20 cloneExpectedView(_options) {
21 throw new Error('Not Implemented');
22 }
23 toJSON() {
24 return {
25 class: this.constructor.name,
26 version: this.version,
27 type: this.type,
28 previousHash: client_common_1.common.uInt256ToString(this.previousHash),
29 blockIndex: this.blockIndex,
30 viewNumber: this.viewNumber,
31 myIndex: this.myIndex,
32 primaryIndex: this.primaryIndex,
33 expectedView: [...this.expectedView],
34 validators: this.validators.map((validator) => client_common_1.common.ecPointToString(validator)),
35 blockReceivedTimeSeconds: this.blockReceivedTimeSeconds,
36 };
37 }
38}
39exports.Context = Context;
40
41//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwREFBa0U7QUFnQmxFLE1BQWEsT0FBTztJQVlsQixZQUFtQixFQUNqQixJQUFJLEVBQ0osWUFBWSxFQUNaLFVBQVUsRUFDVixVQUFVLEVBQ1YsT0FBTyxFQUNQLFlBQVksRUFDWixZQUFZLEVBQ1osVUFBVSxFQUNWLHdCQUF3QixHQUNiO1FBQ1gsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7UUFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLHdCQUF3QixHQUFHLHdCQUF3QixDQUFDO0lBQzNELENBQUM7SUFFRCxJQUFXLENBQUM7UUFDVixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRU0saUJBQWlCLENBQUMsUUFBc0Q7UUFDN0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFTSxNQUFNO1FBQ1gsT0FBTztZQUNMLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUk7WUFDNUIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLFlBQVksRUFBRSxzQkFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ3ZELFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtZQUMvQixZQUFZLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7WUFDcEMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxzQkFBTSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUVqRix3QkFBd0IsRUFBRSxJQUFJLENBQUMsd0JBQXdCO1NBQ3hELENBQUM7SUFDSixDQUFDO0NBQ0Y7QUEzREQsMEJBMkRDIiwiZmlsZSI6Im5lby1vbmUtbm9kZS1jb25zZW5zdXMvc3JjL2NvbnRleHQvQ29udGV4dC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbW1vbiwgRUNQb2ludCwgVUludDI1NiB9IGZyb20gJ0BuZW8tb25lL2NsaWVudC1jb21tb24nO1xuaW1wb3J0IHsgVHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRleHRBZGQge1xuICByZWFkb25seSB0eXBlOiBUeXBlO1xuICByZWFkb25seSBwcmV2aW91c0hhc2g6IFVJbnQyNTY7XG4gIHJlYWRvbmx5IGJsb2NrSW5kZXg6IG51bWJlcjtcbiAgcmVhZG9ubHkgdmlld051bWJlcjogbnVtYmVyO1xuICByZWFkb25seSBteUluZGV4OiBudW1iZXI7XG4gIHJlYWRvbmx5IHByaW1hcnlJbmRleDogbnVtYmVyO1xuICByZWFkb25seSBleHBlY3RlZFZpZXc6IHJlYWRvbmx5IG51bWJlcltdO1xuICByZWFkb25seSB2YWxpZGF0b3JzOiByZWFkb25seSBFQ1BvaW50W107XG4gIHJlYWRvbmx5IGJsb2NrUmVjZWl2ZWRUaW1lU2Vjb25kczogbnVtYmVyO1xufVxuXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmUgbm8tYW55XG5leHBvcnQgY2xhc3MgQ29udGV4dDxUVEhpcyBleHRlbmRzIENvbnRleHQ8VFRIaXM+ID0gQ29udGV4dDxhbnk+PiB7XG4gIHB1YmxpYyByZWFkb25seSB2ZXJzaW9uOiBudW1iZXI7XG4gIHB1YmxpYyByZWFkb25seSB0eXBlOiBUeXBlO1xuICBwdWJsaWMgcmVhZG9ubHkgcHJldmlvdXNIYXNoOiBVSW50MjU2O1xuICBwdWJsaWMgcmVhZG9ubHkgYmxvY2tJbmRleDogbnVtYmVyO1xuICBwdWJsaWMgcmVhZG9ubHkgdmlld051bWJlcjogbnVtYmVyO1xuICBwdWJsaWMgcmVhZG9ubHkgbXlJbmRleDogbnVtYmVyO1xuICBwdWJsaWMgcmVhZG9ubHkgcHJpbWFyeUluZGV4OiBudW1iZXI7XG4gIHB1YmxpYyByZWFkb25seSBleHBlY3RlZFZpZXc6IHJlYWRvbmx5IG51bWJlcltdO1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsaWRhdG9yczogcmVhZG9ubHkgRUNQb2ludFtdO1xuICBwdWJsaWMgcmVhZG9ubHkgYmxvY2tSZWNlaXZlZFRpbWVTZWNvbmRzOiBudW1iZXI7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHtcbiAgICB0eXBlLFxuICAgIHByZXZpb3VzSGFzaCxcbiAgICBibG9ja0luZGV4LFxuICAgIHZpZXdOdW1iZXIsXG4gICAgbXlJbmRleCxcbiAgICBwcmltYXJ5SW5kZXgsXG4gICAgZXhwZWN0ZWRWaWV3LFxuICAgIHZhbGlkYXRvcnMsXG4gICAgYmxvY2tSZWNlaXZlZFRpbWVTZWNvbmRzLFxuICB9OiBDb250ZXh0QWRkKSB7XG4gICAgdGhpcy52ZXJzaW9uID0gMDtcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMucHJldmlvdXNIYXNoID0gcHJldmlvdXNIYXNoO1xuICAgIHRoaXMuYmxvY2tJbmRleCA9IGJsb2NrSW5kZXg7XG4gICAgdGhpcy52aWV3TnVtYmVyID0gdmlld051bWJlcjtcbiAgICB0aGlzLm15SW5kZXggPSBteUluZGV4O1xuICAgIHRoaXMucHJpbWFyeUluZGV4ID0gcHJpbWFyeUluZGV4O1xuICAgIHRoaXMuZXhwZWN0ZWRWaWV3ID0gZXhwZWN0ZWRWaWV3O1xuICAgIHRoaXMudmFsaWRhdG9ycyA9IHZhbGlkYXRvcnM7XG4gICAgdGhpcy5ibG9ja1JlY2VpdmVkVGltZVNlY29uZHMgPSBibG9ja1JlY2VpdmVkVGltZVNlY29uZHM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IE0oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5mbG9vcih0aGlzLnZhbGlkYXRvcnMubGVuZ3RoIC0gKHRoaXMudmFsaWRhdG9ycy5sZW5ndGggLSAxKSAvIDMpO1xuICB9XG5cbiAgcHVibGljIGNsb25lRXhwZWN0ZWRWaWV3KF9vcHRpb25zOiB7IHJlYWRvbmx5IGV4cGVjdGVkVmlldzogcmVhZG9ubHkgbnVtYmVyW10gfSk6IFRUSGlzIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBJbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgcHVibGljIHRvSlNPTigpOiBvYmplY3Qge1xuICAgIHJldHVybiB7XG4gICAgICBjbGFzczogdGhpcy5jb25zdHJ1Y3Rvci5uYW1lLFxuICAgICAgdmVyc2lvbjogdGhpcy52ZXJzaW9uLFxuICAgICAgdHlwZTogdGhpcy50eXBlLFxuICAgICAgcHJldmlvdXNIYXNoOiBjb21tb24udUludDI1NlRvU3RyaW5nKHRoaXMucHJldmlvdXNIYXNoKSxcbiAgICAgIGJsb2NrSW5kZXg6IHRoaXMuYmxvY2tJbmRleCxcbiAgICAgIHZpZXdOdW1iZXI6IHRoaXMudmlld051bWJlcixcbiAgICAgIG15SW5kZXg6IHRoaXMubXlJbmRleCxcbiAgICAgIHByaW1hcnlJbmRleDogdGhpcy5wcmltYXJ5SW5kZXgsXG4gICAgICBleHBlY3RlZFZpZXc6IFsuLi50aGlzLmV4cGVjdGVkVmlld10sXG4gICAgICB2YWxpZGF0b3JzOiB0aGlzLnZhbGlkYXRvcnMubWFwKCh2YWxpZGF0b3IpID0+IGNvbW1vbi5lY1BvaW50VG9TdHJpbmcodmFsaWRhdG9yKSksXG5cbiAgICAgIGJsb2NrUmVjZWl2ZWRUaW1lU2Vjb25kczogdGhpcy5ibG9ja1JlY2VpdmVkVGltZVNlY29uZHMsXG4gICAgfTtcbiAgfVxufVxuIl19