@lodestar/logger 1.51.0-dev.2593063a82 → 1.51.0-dev.83da04fef3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/interface.d.ts +2 -0
- package/lib/interface.d.ts.map +1 -1
- package/lib/interface.js.map +1 -1
- package/lib/utils/timeFormat.d.ts.map +1 -1
- package/lib/utils/timeFormat.js +16 -6
- package/lib/utils/timeFormat.js.map +1 -1
- package/package.json +4 -4
- package/src/interface.ts +2 -0
- package/src/utils/timeFormat.ts +15 -6
package/lib/interface.d.ts
CHANGED
|
@@ -12,6 +12,8 @@ export type EpochSlotOpts = {
|
|
|
12
12
|
genesisTime: number;
|
|
13
13
|
secondsPerSlot: number;
|
|
14
14
|
slotsPerEpoch: number;
|
|
15
|
+
/** Slot durations by activation epoch, ascending */
|
|
16
|
+
slotDurations?: [epoch: number, secondsPerSlot: number][];
|
|
15
17
|
};
|
|
16
18
|
export declare enum TimestampFormatCode {
|
|
17
19
|
DateRegular = "regular",
|
package/lib/interface.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../src/interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,OAAO,EAAC,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAEtE,OAAO,EAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAC,CAAC;AAClC,YAAY,EAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAC,CAAC;AAE1C,eAAO,MAAM,WAAW,EAAE;KAAE,CAAC,IAAI,QAAQ,GAAG,MAAM;CAQjD,CAAC;AAEF,eAAO,MAAM,SAAS,YAA0B,CAAC;AAEjD,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AACzC,eAAO,MAAM,UAAU,EAAE,SAAS,EAAsB,CAAC;AAEzD,MAAM,MAAM,aAAa,GAAG;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../src/interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,OAAO,EAAC,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAEtE,OAAO,EAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAC,CAAC;AAClC,YAAY,EAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAC,CAAC;AAE1C,eAAO,MAAM,WAAW,EAAE;KAAE,CAAC,IAAI,QAAQ,GAAG,MAAM;CAQjD,CAAC;AAEF,eAAO,MAAM,SAAS,YAA0B,CAAC;AAEjD,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AACzC,eAAO,MAAM,UAAU,EAAE,SAAS,EAAsB,CAAC;AAEzD,MAAM,MAAM,aAAa,GAAG;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,CAAC;CAC3D,CAAC;AACF,oBAAY,mBAAmB;IAC7B,WAAW,YAAY;IACvB,MAAM,WAAW;IACjB,SAAS,UAAU;CACpB;AACD,MAAM,MAAM,eAAe,GACvB;IAAC,MAAM,EAAE,mBAAmB,CAAC,WAAW,CAAA;CAAC,GACzC;IAAC,MAAM,EAAE,mBAAmB,CAAC,MAAM,CAAA;CAAC,GACpC,CAAC;IAAC,MAAM,EAAE,mBAAmB,CAAC,SAAS,CAAA;CAAC,GAAG,aAAa,CAAC,CAAC;AAE9D,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;IAClB,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CACnB"}
|
package/lib/interface.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interface.js","sourceRoot":"","sources":["../src/interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,OAAO,EAAC,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAsB,QAAQ,EAAS,MAAM,iBAAiB,CAAC;AAEtE,OAAO,EAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAC,CAAC;AAGlC,MAAM,CAAC,MAAM,WAAW,GAA8B;IACpD,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;IACnB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IAClB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IAClB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;IACrB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;IACnB,iFAAiF;IACjF,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;CACpB,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAGjD,MAAM,CAAC,MAAM,UAAU,GAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"interface.js","sourceRoot":"","sources":["../src/interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,OAAO,EAAC,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAsB,QAAQ,EAAS,MAAM,iBAAiB,CAAC;AAEtE,OAAO,EAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAC,CAAC;AAGlC,MAAM,CAAC,MAAM,WAAW,GAA8B;IACpD,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;IACnB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IAClB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IAClB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;IACrB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;IACnB,iFAAiF;IACjF,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;CACpB,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAGjD,MAAM,CAAC,MAAM,UAAU,GAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AASzD,MAAM,CAAN,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,8CAAuB,CAAA;IACvB,wCAAiB,CAAA;IACjB,0CAAmB,CAAA;AACrB,CAAC,EAJW,mBAAmB,KAAnB,mBAAmB,QAI9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeFormat.d.ts","sourceRoot":"","sources":["../../src/utils/timeFormat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAE9C;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,SAAa,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"timeFormat.d.ts","sourceRoot":"","sources":["../../src/utils/timeFormat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAE9C;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,SAAa,GAAG,MAAM,CAkBjF"}
|
package/lib/utils/timeFormat.js
CHANGED
|
@@ -3,12 +3,22 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export function formatEpochSlotTime(opts, now = Date.now()) {
|
|
5
5
|
const nowSec = now / 1000;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
let eraStartSlot = 0;
|
|
7
|
+
let eraStartSec = opts.genesisTime;
|
|
8
|
+
let secondsPerSlot = opts.secondsPerSlot;
|
|
9
|
+
for (const [forkEpoch, forkSecondsPerSlot] of opts.slotDurations ?? []) {
|
|
10
|
+
const forkSlot = forkEpoch * opts.slotsPerEpoch;
|
|
11
|
+
const forkSec = eraStartSec + (forkSlot - eraStartSlot) * secondsPerSlot;
|
|
12
|
+
if (nowSec < forkSec)
|
|
13
|
+
break;
|
|
14
|
+
eraStartSlot = forkSlot;
|
|
15
|
+
eraStartSec = forkSec;
|
|
16
|
+
secondsPerSlot = forkSecondsPerSlot;
|
|
17
|
+
}
|
|
18
|
+
const slot = eraStartSlot + Math.floor((nowSec - eraStartSec) / secondsPerSlot);
|
|
19
|
+
const epoch = Math.floor(slot / opts.slotsPerEpoch);
|
|
20
|
+
const slotIndex = slot - epoch * opts.slotsPerEpoch;
|
|
21
|
+
const slotSec = nowSec - (eraStartSec + (slot - eraStartSlot) * secondsPerSlot);
|
|
12
22
|
return `Eph ${epoch}/${slotIndex} ${slotSec.toFixed(3)}`;
|
|
13
23
|
}
|
|
14
24
|
//# sourceMappingURL=timeFormat.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeFormat.js","sourceRoot":"","sources":["../../src/utils/timeFormat.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAmB,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IACvE,MAAM,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC;IAC1B,
|
|
1
|
+
{"version":3,"file":"timeFormat.js","sourceRoot":"","sources":["../../src/utils/timeFormat.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAmB,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IACvE,MAAM,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC;IAC1B,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACnC,IAAI,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;IACzC,KAAK,MAAM,CAAC,SAAS,EAAE,kBAAkB,CAAC,IAAI,IAAI,CAAC,aAAa,IAAI,EAAE,EAAE,CAAC;QACvE,MAAM,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;QAChD,MAAM,OAAO,GAAG,WAAW,GAAG,CAAC,QAAQ,GAAG,YAAY,CAAC,GAAG,cAAc,CAAC;QACzE,IAAI,MAAM,GAAG,OAAO;YAAE,MAAM;QAC5B,YAAY,GAAG,QAAQ,CAAC;QACxB,WAAW,GAAG,OAAO,CAAC;QACtB,cAAc,GAAG,kBAAkB,CAAC;IACtC,CAAC;IACD,MAAM,IAAI,GAAG,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,WAAW,CAAC,GAAG,cAAc,CAAC,CAAC;IAChF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;IACpD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,WAAW,GAAG,CAAC,IAAI,GAAG,YAAY,CAAC,GAAG,cAAc,CAAC,CAAC;IAChF,OAAO,OAAO,KAAK,IAAI,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3D,CAAC"}
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"bugs": {
|
|
12
12
|
"url": "https://github.com/ChainSafe/lodestar/issues"
|
|
13
13
|
},
|
|
14
|
-
"version": "1.51.0-dev.
|
|
14
|
+
"version": "1.51.0-dev.83da04fef3",
|
|
15
15
|
"type": "module",
|
|
16
16
|
"exports": {
|
|
17
17
|
".": {
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
},
|
|
68
68
|
"types": "lib/index.d.ts",
|
|
69
69
|
"dependencies": {
|
|
70
|
-
"@lodestar/utils": "^1.51.0-dev.
|
|
70
|
+
"@lodestar/utils": "^1.51.0-dev.83da04fef3",
|
|
71
71
|
"triple-beam": "^1.3.0",
|
|
72
72
|
"winston": "^3.8.2",
|
|
73
73
|
"winston-daily-rotate-file": "^4.7.1",
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
"devDependencies": {
|
|
77
77
|
"@chainsafe/ssz": "^1.8.1",
|
|
78
78
|
"@chainsafe/threads": "^1.11.3",
|
|
79
|
-
"@lodestar/test-utils": "^1.51.0-dev.
|
|
79
|
+
"@lodestar/test-utils": "^1.51.0-dev.83da04fef3",
|
|
80
80
|
"@types/triple-beam": "^1.3.2"
|
|
81
81
|
},
|
|
82
82
|
"keywords": [
|
|
@@ -85,5 +85,5 @@
|
|
|
85
85
|
"beacon",
|
|
86
86
|
"blockchain"
|
|
87
87
|
],
|
|
88
|
-
"gitHead": "
|
|
88
|
+
"gitHead": "a4704bf70137c28bc318d6417e6a7f2cf37c0111"
|
|
89
89
|
}
|
package/src/interface.ts
CHANGED
|
@@ -23,6 +23,8 @@ export type EpochSlotOpts = {
|
|
|
23
23
|
genesisTime: number;
|
|
24
24
|
secondsPerSlot: number;
|
|
25
25
|
slotsPerEpoch: number;
|
|
26
|
+
/** Slot durations by activation epoch, ascending */
|
|
27
|
+
slotDurations?: [epoch: number, secondsPerSlot: number][];
|
|
26
28
|
};
|
|
27
29
|
export enum TimestampFormatCode {
|
|
28
30
|
DateRegular = "regular",
|
package/src/utils/timeFormat.ts
CHANGED
|
@@ -5,11 +5,20 @@ import {EpochSlotOpts} from "../interface.js";
|
|
|
5
5
|
*/
|
|
6
6
|
export function formatEpochSlotTime(opts: EpochSlotOpts, now = Date.now()): string {
|
|
7
7
|
const nowSec = now / 1000;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
let eraStartSlot = 0;
|
|
9
|
+
let eraStartSec = opts.genesisTime;
|
|
10
|
+
let secondsPerSlot = opts.secondsPerSlot;
|
|
11
|
+
for (const [forkEpoch, forkSecondsPerSlot] of opts.slotDurations ?? []) {
|
|
12
|
+
const forkSlot = forkEpoch * opts.slotsPerEpoch;
|
|
13
|
+
const forkSec = eraStartSec + (forkSlot - eraStartSlot) * secondsPerSlot;
|
|
14
|
+
if (nowSec < forkSec) break;
|
|
15
|
+
eraStartSlot = forkSlot;
|
|
16
|
+
eraStartSec = forkSec;
|
|
17
|
+
secondsPerSlot = forkSecondsPerSlot;
|
|
18
|
+
}
|
|
19
|
+
const slot = eraStartSlot + Math.floor((nowSec - eraStartSec) / secondsPerSlot);
|
|
20
|
+
const epoch = Math.floor(slot / opts.slotsPerEpoch);
|
|
21
|
+
const slotIndex = slot - epoch * opts.slotsPerEpoch;
|
|
22
|
+
const slotSec = nowSec - (eraStartSec + (slot - eraStartSlot) * secondsPerSlot);
|
|
14
23
|
return `Eph ${epoch}/${slotIndex} ${slotSec.toFixed(3)}`;
|
|
15
24
|
}
|