@lodestar/state-transition 1.35.0-dev.fcf8d024ea → 1.35.0-dev.fd1dac853d
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.
|
@@ -3,7 +3,7 @@ import { ForkName, ForkSeq, isForkPostDeneb } from "@lodestar/params";
|
|
|
3
3
|
import { isExecutionPayload } from "@lodestar/types";
|
|
4
4
|
import { toHex, toRootHex } from "@lodestar/utils";
|
|
5
5
|
import { executionPayloadToPayloadHeader, getFullOrBlindedPayloadFromBody, isMergeTransitionComplete, } from "../util/execution.js";
|
|
6
|
-
import { computeEpochAtSlot, getRandaoMix } from "../util/index.js";
|
|
6
|
+
import { computeEpochAtSlot, computeTimeAtSlot, getRandaoMix } from "../util/index.js";
|
|
7
7
|
import { ExecutionPayloadStatus } from "./externalData.js";
|
|
8
8
|
export function processExecutionPayload(fork, state, body, externalData) {
|
|
9
9
|
const payload = getFullOrBlindedPayloadFromBody(body);
|
|
@@ -26,8 +26,8 @@ export function processExecutionPayload(fork, state, body, externalData) {
|
|
|
26
26
|
// Note: inlined function in if statement
|
|
27
27
|
// def compute_timestamp_at_slot(state: BeaconState, slot: Slot) -> uint64:
|
|
28
28
|
// slots_since_genesis = slot - GENESIS_SLOT
|
|
29
|
-
// return uint64(state.genesis_time + slots_since_genesis *
|
|
30
|
-
if (payload.timestamp !== state.
|
|
29
|
+
// return uint64(state.genesis_time + slots_since_genesis * SLOT_DURATION_MS / 1000)
|
|
30
|
+
if (payload.timestamp !== computeTimeAtSlot(state.config, state.slot, state.genesisTime)) {
|
|
31
31
|
throw Error(`Invalid timestamp ${payload.timestamp} genesisTime=${state.genesisTime} slot=${state.slot}`);
|
|
32
32
|
}
|
|
33
33
|
if (isForkPostDeneb(forkName)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processExecutionPayload.js","sourceRoot":"","sources":["../../src/block/processExecutionPayload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAC,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAiD,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AACnG,OAAO,EAAC,KAAK,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EACL,+BAA+B,EAC/B,+BAA+B,EAC/B,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAC,kBAAkB,EAAE,YAAY,EAAC,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"processExecutionPayload.js","sourceRoot":"","sources":["../../src/block/processExecutionPayload.ts"],"names":[],"mappings":"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"}
|
package/lib/util/slot.js
CHANGED
|
@@ -2,7 +2,7 @@ import { GENESIS_SLOT } from "@lodestar/params";
|
|
|
2
2
|
import { computeEpochAtSlot, computeStartSlotAtEpoch } from "./epoch.js";
|
|
3
3
|
export function getSlotsSinceGenesis(config, genesisTime) {
|
|
4
4
|
const diffInSeconds = Date.now() / 1000 - genesisTime;
|
|
5
|
-
return Math.floor(diffInSeconds / config.
|
|
5
|
+
return Math.floor(diffInSeconds / (config.SLOT_DURATION_MS / 1000));
|
|
6
6
|
}
|
|
7
7
|
export function getCurrentSlot(config, genesisTime) {
|
|
8
8
|
return GENESIS_SLOT + getSlotsSinceGenesis(config, genesisTime);
|
|
@@ -12,6 +12,6 @@ export function computeSlotsSinceEpochStart(slot, epoch) {
|
|
|
12
12
|
return slot - computeStartSlotAtEpoch(computeEpoch);
|
|
13
13
|
}
|
|
14
14
|
export function computeTimeAtSlot(config, slot, genesisTime) {
|
|
15
|
-
return genesisTime + slot * config.
|
|
15
|
+
return genesisTime + slot * (config.SLOT_DURATION_MS / 1000);
|
|
16
16
|
}
|
|
17
17
|
//# sourceMappingURL=slot.js.map
|
package/lib/util/slot.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slot.js","sourceRoot":"","sources":["../../src/util/slot.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAC,kBAAkB,EAAE,uBAAuB,EAAC,MAAM,YAAY,CAAC;AAEvE,MAAM,UAAU,oBAAoB,CAAC,MAAmB,EAAE,WAAwB;IAChF,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,WAAW,CAAC;IACtD,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"slot.js","sourceRoot":"","sources":["../../src/util/slot.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAC,kBAAkB,EAAE,uBAAuB,EAAC,MAAM,YAAY,CAAC;AAEvE,MAAM,UAAU,oBAAoB,CAAC,MAAmB,EAAE,WAAwB;IAChF,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,WAAW,CAAC;IACtD,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAmB,EAAE,WAAwB;IAC1E,OAAO,YAAY,GAAG,oBAAoB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,IAAU,EAAE,KAAa;IACnE,MAAM,YAAY,GAAG,KAAK,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACvD,OAAO,IAAI,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAmB,EAAE,IAAU,EAAE,WAAwB;IACzF,OAAO,WAAW,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;AAC/D,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.35.0-dev.
|
|
14
|
+
"version": "1.35.0-dev.fd1dac853d",
|
|
15
15
|
"type": "module",
|
|
16
16
|
"exports": {
|
|
17
17
|
".": {
|
|
@@ -67,10 +67,10 @@
|
|
|
67
67
|
"@chainsafe/pubkey-index-map": "^3.0.0",
|
|
68
68
|
"@chainsafe/ssz": "^1.2.2",
|
|
69
69
|
"@chainsafe/swap-or-not-shuffle": "^1.2.1",
|
|
70
|
-
"@lodestar/config": "1.35.0-dev.
|
|
71
|
-
"@lodestar/params": "1.35.0-dev.
|
|
72
|
-
"@lodestar/types": "1.35.0-dev.
|
|
73
|
-
"@lodestar/utils": "1.35.0-dev.
|
|
70
|
+
"@lodestar/config": "1.35.0-dev.fd1dac853d",
|
|
71
|
+
"@lodestar/params": "1.35.0-dev.fd1dac853d",
|
|
72
|
+
"@lodestar/types": "1.35.0-dev.fd1dac853d",
|
|
73
|
+
"@lodestar/utils": "1.35.0-dev.fd1dac853d",
|
|
74
74
|
"bigint-buffer": "^1.1.5"
|
|
75
75
|
},
|
|
76
76
|
"keywords": [
|
|
@@ -79,5 +79,5 @@
|
|
|
79
79
|
"beacon",
|
|
80
80
|
"blockchain"
|
|
81
81
|
],
|
|
82
|
-
"gitHead": "
|
|
82
|
+
"gitHead": "f06d12a7e66a85186ef97b1f6da57c22536e4a18"
|
|
83
83
|
}
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
getFullOrBlindedPayloadFromBody,
|
|
9
9
|
isMergeTransitionComplete,
|
|
10
10
|
} from "../util/execution.js";
|
|
11
|
-
import {computeEpochAtSlot, getRandaoMix} from "../util/index.js";
|
|
11
|
+
import {computeEpochAtSlot, computeTimeAtSlot, getRandaoMix} from "../util/index.js";
|
|
12
12
|
import {BlockExternalData, ExecutionPayloadStatus} from "./externalData.js";
|
|
13
13
|
|
|
14
14
|
export function processExecutionPayload(
|
|
@@ -43,8 +43,8 @@ export function processExecutionPayload(
|
|
|
43
43
|
// Note: inlined function in if statement
|
|
44
44
|
// def compute_timestamp_at_slot(state: BeaconState, slot: Slot) -> uint64:
|
|
45
45
|
// slots_since_genesis = slot - GENESIS_SLOT
|
|
46
|
-
// return uint64(state.genesis_time + slots_since_genesis *
|
|
47
|
-
if (payload.timestamp !== state.
|
|
46
|
+
// return uint64(state.genesis_time + slots_since_genesis * SLOT_DURATION_MS / 1000)
|
|
47
|
+
if (payload.timestamp !== computeTimeAtSlot(state.config, state.slot, state.genesisTime)) {
|
|
48
48
|
throw Error(`Invalid timestamp ${payload.timestamp} genesisTime=${state.genesisTime} slot=${state.slot}`);
|
|
49
49
|
}
|
|
50
50
|
|
package/src/util/slot.ts
CHANGED
|
@@ -5,7 +5,7 @@ import {computeEpochAtSlot, computeStartSlotAtEpoch} from "./epoch.js";
|
|
|
5
5
|
|
|
6
6
|
export function getSlotsSinceGenesis(config: ChainConfig, genesisTime: TimeSeconds): Slot {
|
|
7
7
|
const diffInSeconds = Date.now() / 1000 - genesisTime;
|
|
8
|
-
return Math.floor(diffInSeconds / config.
|
|
8
|
+
return Math.floor(diffInSeconds / (config.SLOT_DURATION_MS / 1000));
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
export function getCurrentSlot(config: ChainConfig, genesisTime: TimeSeconds): Slot {
|
|
@@ -18,5 +18,5 @@ export function computeSlotsSinceEpochStart(slot: Slot, epoch?: Epoch): Slot {
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
export function computeTimeAtSlot(config: ChainConfig, slot: Slot, genesisTime: TimeSeconds): TimeSeconds {
|
|
21
|
-
return genesisTime + slot * config.
|
|
21
|
+
return genesisTime + slot * (config.SLOT_DURATION_MS / 1000);
|
|
22
22
|
}
|