UNPKG

2.39 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const utils_1 = require("@neo-one/utils");
4class ConsensusContext {
5 constructor() {
6 this.mutableFastForwardSeconds = 0;
7 }
8 nowSeconds() {
9 return utils_1.utils.nowSeconds() + this.mutableFastForwardSeconds;
10 }
11 fastForwardOffset(seconds) {
12 if (seconds >= 0) {
13 this.mutableFastForwardSeconds += seconds;
14 }
15 else {
16 throw new Error('Can only fast forward to future time.');
17 }
18 }
19 fastForwardToTime(seconds) {
20 this.fastForwardOffset(seconds - this.nowSeconds());
21 }
22}
23exports.ConsensusContext = ConsensusContext;
24
25//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbnNlbnN1c0NvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwQ0FBdUM7QUFFdkMsTUFBYSxnQkFBZ0I7SUFHM0I7UUFDRSxJQUFJLENBQUMseUJBQXlCLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFTSxVQUFVO1FBQ2YsT0FBTyxhQUFLLENBQUMsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDO0lBQzdELENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxPQUFlO1FBQ3RDLElBQUksT0FBTyxJQUFJLENBQUMsRUFBRTtZQUNoQixJQUFJLENBQUMseUJBQXlCLElBQUksT0FBTyxDQUFDO1NBQzNDO2FBQU07WUFDTCxNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7U0FDMUQ7SUFDSCxDQUFDO0lBRU0saUJBQWlCLENBQUMsT0FBZTtRQUN0QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7Q0FDRjtBQXRCRCw0Q0FzQkMiLCJmaWxlIjoibmVvLW9uZS1ub2RlLWNvbnNlbnN1cy9zcmMvQ29uc2Vuc3VzQ29udGV4dC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHV0aWxzIH0gZnJvbSAnQG5lby1vbmUvdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgQ29uc2Vuc3VzQ29udGV4dCB7XG4gIHByaXZhdGUgbXV0YWJsZUZhc3RGb3J3YXJkU2Vjb25kczogbnVtYmVyO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLm11dGFibGVGYXN0Rm9yd2FyZFNlY29uZHMgPSAwO1xuICB9XG5cbiAgcHVibGljIG5vd1NlY29uZHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdXRpbHMubm93U2Vjb25kcygpICsgdGhpcy5tdXRhYmxlRmFzdEZvcndhcmRTZWNvbmRzO1xuICB9XG5cbiAgcHVibGljIGZhc3RGb3J3YXJkT2Zmc2V0KHNlY29uZHM6IG51bWJlcikge1xuICAgIGlmIChzZWNvbmRzID49IDApIHtcbiAgICAgIHRoaXMubXV0YWJsZUZhc3RGb3J3YXJkU2Vjb25kcyArPSBzZWNvbmRzO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NhbiBvbmx5IGZhc3QgZm9yd2FyZCB0byBmdXR1cmUgdGltZS4nKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZmFzdEZvcndhcmRUb1RpbWUoc2Vjb25kczogbnVtYmVyKSB7XG4gICAgdGhpcy5mYXN0Rm9yd2FyZE9mZnNldChzZWNvbmRzIC0gdGhpcy5ub3dTZWNvbmRzKCkpO1xuICB9XG59XG4iXX0=