@lodestar/state-transition 1.50.0-dev.033e6b7138 → 1.50.0-dev.040a952dd7
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/block/indexedBuilderState.d.ts +19 -0
- package/lib/block/indexedBuilderState.d.ts.map +1 -0
- package/lib/block/indexedBuilderState.js +60 -0
- package/lib/block/indexedBuilderState.js.map +1 -0
- package/lib/block/processBuilderDepositRequest.d.ts +2 -2
- package/lib/block/processBuilderDepositRequest.d.ts.map +1 -1
- package/lib/block/processBuilderDepositRequest.js +5 -4
- package/lib/block/processBuilderDepositRequest.js.map +1 -1
- package/lib/block/processBuilderExitRequest.d.ts +2 -2
- package/lib/block/processBuilderExitRequest.d.ts.map +1 -1
- package/lib/block/processBuilderExitRequest.js +4 -3
- package/lib/block/processBuilderExitRequest.js.map +1 -1
- package/lib/block/processParentExecutionPayload.d.ts.map +1 -1
- package/lib/block/processParentExecutionPayload.js +23 -18
- package/lib/block/processParentExecutionPayload.js.map +1 -1
- package/lib/index.d.ts +3 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -1
- package/lib/rewards/attestationsRewards.d.ts.map +1 -1
- package/lib/rewards/attestationsRewards.js +8 -1
- package/lib/rewards/attestationsRewards.js.map +1 -1
- package/lib/stateView/beaconStateView.d.ts +22 -21
- package/lib/stateView/beaconStateView.d.ts.map +1 -1
- package/lib/stateView/beaconStateView.js +71 -71
- package/lib/stateView/beaconStateView.js.map +1 -1
- package/lib/stateView/interface.d.ts +34 -21
- package/lib/stateView/interface.d.ts.map +1 -1
- package/lib/stateView/interface.js.map +1 -1
- package/lib/stateView/nativeBeaconStateView.d.ts +92 -100
- package/lib/stateView/nativeBeaconStateView.d.ts.map +1 -1
- package/lib/stateView/nativeBeaconStateView.js +339 -368
- package/lib/stateView/nativeBeaconStateView.js.map +1 -1
- package/lib/stateView/stateViewFactory.d.ts +10 -17
- package/lib/stateView/stateViewFactory.d.ts.map +1 -1
- package/lib/stateView/stateViewFactory.js +17 -13
- package/lib/stateView/stateViewFactory.js.map +1 -1
- package/lib/util/gloas.d.ts +11 -14
- package/lib/util/gloas.d.ts.map +1 -1
- package/lib/util/gloas.js +2 -42
- package/lib/util/gloas.js.map +1 -1
- package/lib/util/index.d.ts +1 -0
- package/lib/util/index.d.ts.map +1 -1
- package/lib/util/index.js +1 -0
- package/lib/util/index.js.map +1 -1
- package/lib/util/sszBytes.d.ts +16 -17
- package/lib/util/sszBytes.d.ts.map +1 -1
- package/lib/util/sszBytes.js +93 -20
- package/lib/util/sszBytes.js.map +1 -1
- package/lib/util/weakSubjectivity.d.ts +11 -6
- package/lib/util/weakSubjectivity.d.ts.map +1 -1
- package/lib/util/weakSubjectivity.js +22 -28
- package/lib/util/weakSubjectivity.js.map +1 -1
- package/package.json +7 -7
- package/src/block/indexedBuilderState.ts +65 -0
- package/src/block/processBuilderDepositRequest.ts +6 -17
- package/src/block/processBuilderExitRequest.ts +5 -9
- package/src/block/processParentExecutionPayload.ts +27 -23
- package/src/index.ts +4 -1
- package/src/rewards/attestationsRewards.ts +8 -1
- package/src/stateView/beaconStateView.ts +75 -76
- package/src/stateView/interface.ts +61 -21
- package/src/stateView/nativeBeaconStateView.ts +354 -375
- package/src/stateView/stateViewFactory.ts +29 -27
- package/src/util/gloas.ts +2 -53
- package/src/util/index.ts +6 -0
- package/src/util/sszBytes.ts +129 -22
- package/src/util/weakSubjectivity.ts +43 -40
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { BuilderIndex } from "@lodestar/types";
|
|
2
|
+
import { CachedBeaconStateGloas } from "../types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Block-scoped pubkey -> index map and ascending reuse candidates for `state.builders`, built in one pass.
|
|
5
|
+
* Only valid while builder pubkeys change exclusively via `addBuilderToRegistry()` and no builder becomes
|
|
6
|
+
* newly reusable (candidates are re-checked lazily, never added). Do not use across blocks/slots.
|
|
7
|
+
*/
|
|
8
|
+
export declare class IndexedBuilderState {
|
|
9
|
+
readonly state: CachedBeaconStateGloas;
|
|
10
|
+
private readonly currentEpoch;
|
|
11
|
+
private readonly indexByPubkey;
|
|
12
|
+
private readonly reusableIndexCandidates;
|
|
13
|
+
private candidateCursor;
|
|
14
|
+
constructor(state: CachedBeaconStateGloas);
|
|
15
|
+
findBuilderIndexByPubkey(pubkey: Uint8Array): BuilderIndex | null;
|
|
16
|
+
addBuilderToRegistry(pubkey: Uint8Array, version: number, executionAddress: Uint8Array, amount: number): void;
|
|
17
|
+
private findReusableBuilderIndex;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=indexedBuilderState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexedBuilderState.d.ts","sourceRoot":"","sources":["../../src/block/indexedBuilderState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAmB,MAAM,iBAAiB,CAAC;AAG/D,OAAO,EAAC,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAInD;;;;GAIG;AACH,qBAAa,mBAAmB;IAMlB,QAAQ,CAAC,KAAK,EAAE,sBAAsB;IALlD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsC;IACpE,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAsB;IAC9D,OAAO,CAAC,eAAe,CAAK;IAE5B,YAAqB,KAAK,EAAE,sBAAsB,EAWjD;IAED,wBAAwB,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY,GAAG,IAAI,CAEhE;IAED,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAY5G;IAED,OAAO,CAAC,wBAAwB;CAWjC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { toPubkeyHex } from "@lodestar/utils";
|
|
2
|
+
import { computeEpochAtSlot } from "../util/epoch.js";
|
|
3
|
+
import { createBuilderView } from "../util/gloas.js";
|
|
4
|
+
/**
|
|
5
|
+
* Block-scoped pubkey -> index map and ascending reuse candidates for `state.builders`, built in one pass.
|
|
6
|
+
* Only valid while builder pubkeys change exclusively via `addBuilderToRegistry()` and no builder becomes
|
|
7
|
+
* newly reusable (candidates are re-checked lazily, never added). Do not use across blocks/slots.
|
|
8
|
+
*/
|
|
9
|
+
export class IndexedBuilderState {
|
|
10
|
+
state;
|
|
11
|
+
currentEpoch;
|
|
12
|
+
indexByPubkey = new Map();
|
|
13
|
+
reusableIndexCandidates = [];
|
|
14
|
+
candidateCursor = 0;
|
|
15
|
+
constructor(state) {
|
|
16
|
+
this.state = state;
|
|
17
|
+
state.builders.commit();
|
|
18
|
+
const builders = state.builders.getAllReadonlyValues();
|
|
19
|
+
this.currentEpoch = computeEpochAtSlot(state.slot);
|
|
20
|
+
for (const [index, builder] of builders.entries()) {
|
|
21
|
+
const pubkeyHex = toPubkeyHex(builder.pubkey);
|
|
22
|
+
this.indexByPubkey.set(pubkeyHex, index);
|
|
23
|
+
if (canReuseBuilder(builder, this.currentEpoch)) {
|
|
24
|
+
this.reusableIndexCandidates.push(index);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
findBuilderIndexByPubkey(pubkey) {
|
|
29
|
+
return this.indexByPubkey.get(toPubkeyHex(pubkey)) ?? null;
|
|
30
|
+
}
|
|
31
|
+
addBuilderToRegistry(pubkey, version, executionAddress, amount) {
|
|
32
|
+
const builder = createBuilderView(pubkey, version, executionAddress, amount, this.currentEpoch);
|
|
33
|
+
const reusableIndex = this.findReusableBuilderIndex();
|
|
34
|
+
const index = reusableIndex ?? this.state.builders.length;
|
|
35
|
+
if (reusableIndex !== null) {
|
|
36
|
+
const oldBuilder = this.state.builders.getReadonly(index);
|
|
37
|
+
this.indexByPubkey.delete(toPubkeyHex(oldBuilder.pubkey));
|
|
38
|
+
this.state.builders.set(index, builder);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
this.state.builders.push(builder);
|
|
42
|
+
}
|
|
43
|
+
this.indexByPubkey.set(toPubkeyHex(pubkey), index);
|
|
44
|
+
}
|
|
45
|
+
findReusableBuilderIndex() {
|
|
46
|
+
while (this.candidateCursor < this.reusableIndexCandidates.length) {
|
|
47
|
+
const index = this.reusableIndexCandidates[this.candidateCursor++];
|
|
48
|
+
const builder = this.state.builders.getReadonly(index);
|
|
49
|
+
// Top-ups can invalidate initial candidates
|
|
50
|
+
if (canReuseBuilder(builder, this.currentEpoch)) {
|
|
51
|
+
return index;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
function canReuseBuilder(builder, currentEpoch) {
|
|
58
|
+
return builder.withdrawableEpoch <= currentEpoch && builder.balance === 0;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=indexedBuilderState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexedBuilderState.js","sourceRoot":"","sources":["../../src/block/indexedBuilderState.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { gloas } from "@lodestar/types";
|
|
2
|
-
import {
|
|
2
|
+
import { IndexedBuilderState } from "./indexedBuilderState.js";
|
|
3
3
|
/**
|
|
4
4
|
* Process a builder deposit request from the execution layer: register a new builder
|
|
5
5
|
* (proof-of-possession gated) or top up an existing builder's balance.
|
|
6
6
|
*
|
|
7
7
|
* Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.11/specs/gloas/beacon-chain.md#new-process_builder_deposit_request
|
|
8
8
|
*/
|
|
9
|
-
export declare function processBuilderDepositRequest(
|
|
9
|
+
export declare function processBuilderDepositRequest(indexedState: IndexedBuilderState, request: gloas.BuilderDepositRequest): void;
|
|
10
10
|
//# sourceMappingURL=processBuilderDepositRequest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processBuilderDepositRequest.d.ts","sourceRoot":"","sources":["../../src/block/processBuilderDepositRequest.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"processBuilderDepositRequest.d.ts","sourceRoot":"","sources":["../../src/block/processBuilderDepositRequest.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAGtC,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAE7D;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,YAAY,EAAE,mBAAmB,EACjC,OAAO,EAAE,KAAK,CAAC,qBAAqB,GACnC,IAAI,CA6BN"}
|
|
@@ -1,22 +1,23 @@
|
|
|
1
1
|
import { FAR_FUTURE_EPOCH, PAYLOAD_BUILDER_VERSION } from "@lodestar/params";
|
|
2
2
|
import { computeEpochAtSlot } from "../util/epoch.js";
|
|
3
|
-
import {
|
|
3
|
+
import { isBuilderWithdrawalCredential, isValidBuilderDepositSignature } from "../util/gloas.js";
|
|
4
4
|
/**
|
|
5
5
|
* Process a builder deposit request from the execution layer: register a new builder
|
|
6
6
|
* (proof-of-possession gated) or top up an existing builder's balance.
|
|
7
7
|
*
|
|
8
8
|
* Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.11/specs/gloas/beacon-chain.md#new-process_builder_deposit_request
|
|
9
9
|
*/
|
|
10
|
-
export function processBuilderDepositRequest(
|
|
10
|
+
export function processBuilderDepositRequest(indexedState, request) {
|
|
11
|
+
const { state } = indexedState;
|
|
11
12
|
const { pubkey, withdrawalCredentials, amount, signature } = request;
|
|
12
13
|
// Ignore deposits with unexpected withdrawal credential prefixes.
|
|
13
14
|
if (!isBuilderWithdrawalCredential(withdrawalCredentials)) {
|
|
14
15
|
return;
|
|
15
16
|
}
|
|
16
|
-
const builderIndex = findBuilderIndexByPubkey(
|
|
17
|
+
const builderIndex = indexedState.findBuilderIndexByPubkey(pubkey);
|
|
17
18
|
if (builderIndex === null) {
|
|
18
19
|
if (isValidBuilderDepositSignature(state.config, pubkey, withdrawalCredentials, amount, signature)) {
|
|
19
|
-
addBuilderToRegistry(
|
|
20
|
+
indexedState.addBuilderToRegistry(pubkey, PAYLOAD_BUILDER_VERSION, withdrawalCredentials.subarray(12), amount);
|
|
20
21
|
}
|
|
21
22
|
return;
|
|
22
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processBuilderDepositRequest.js","sourceRoot":"","sources":["../../src/block/processBuilderDepositRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAE,uBAAuB,EAAC,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"processBuilderDepositRequest.js","sourceRoot":"","sources":["../../src/block/processBuilderDepositRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAE,uBAAuB,EAAC,MAAM,kBAAkB,CAAC;AAE3E,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAC,6BAA6B,EAAE,8BAA8B,EAAC,MAAM,kBAAkB,CAAC;AAG/F;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAC1C,YAAiC,EACjC,OAAoC;IAEpC,MAAM,EAAC,KAAK,EAAC,GAAG,YAAY,CAAC;IAC7B,MAAM,EAAC,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,SAAS,EAAC,GAAG,OAAO,CAAC;IAEnE,kEAAkE;IAClE,IAAI,CAAC,6BAA6B,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAC1D,OAAO;IACT,CAAC;IAED,MAAM,YAAY,GAAG,YAAY,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAEnE,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QAC1B,IAAI,8BAA8B,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;YACnG,YAAY,CAAC,oBAAoB,CAAC,MAAM,EAAE,uBAAuB,EAAE,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QACjH,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAEjD,mFAAmF;IACnF,oFAAoF;IACpF,6EAA6E;IAC7E,IAAI,OAAO,CAAC,iBAAiB,KAAK,gBAAgB,IAAI,OAAO,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QAC5E,OAAO,CAAC,iBAAiB,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,iCAAiC,CAAC;IAC9G,CAAC;IAED,qCAAqC;IACrC,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC;AAC5B,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { gloas } from "@lodestar/types";
|
|
2
|
-
import {
|
|
2
|
+
import { IndexedBuilderState } from "./indexedBuilderState.js";
|
|
3
3
|
/**
|
|
4
4
|
* Apply a builder exit request. Authorizes the exit via `source_address` (the builder's
|
|
5
5
|
* execution_address), not the BLS key — mirroring EIP-7002's 0x01 credential exit.
|
|
@@ -9,5 +9,5 @@ import { CachedBeaconStateGloas } from "../types.js";
|
|
|
9
9
|
*
|
|
10
10
|
* Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.11/specs/gloas/beacon-chain.md#new-process_builder_exit_request
|
|
11
11
|
*/
|
|
12
|
-
export declare function processBuilderExitRequest(
|
|
12
|
+
export declare function processBuilderExitRequest(indexedState: IndexedBuilderState, request: gloas.BuilderExitRequest): void;
|
|
13
13
|
//# sourceMappingURL=processBuilderExitRequest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processBuilderExitRequest.d.ts","sourceRoot":"","sources":["../../src/block/processBuilderExitRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"processBuilderExitRequest.d.ts","sourceRoot":"","sources":["../../src/block/processBuilderExitRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAGtC,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAE7D;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,mBAAmB,EAAE,OAAO,EAAE,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAoBpH"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { byteArrayEquals } from "@lodestar/utils";
|
|
2
|
-
import {
|
|
2
|
+
import { getPendingBalanceToWithdrawForBuilder, initiateBuilderExit, isActiveBuilder } from "../util/gloas.js";
|
|
3
3
|
/**
|
|
4
4
|
* Apply a builder exit request. Authorizes the exit via `source_address` (the builder's
|
|
5
5
|
* execution_address), not the BLS key — mirroring EIP-7002's 0x01 credential exit.
|
|
@@ -9,8 +9,9 @@ import { findBuilderIndexByPubkey, getPendingBalanceToWithdrawForBuilder, initia
|
|
|
9
9
|
*
|
|
10
10
|
* Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.11/specs/gloas/beacon-chain.md#new-process_builder_exit_request
|
|
11
11
|
*/
|
|
12
|
-
export function processBuilderExitRequest(
|
|
13
|
-
const
|
|
12
|
+
export function processBuilderExitRequest(indexedState, request) {
|
|
13
|
+
const { state } = indexedState;
|
|
14
|
+
const builderIndex = indexedState.findBuilderIndexByPubkey(request.pubkey);
|
|
14
15
|
if (builderIndex === null) {
|
|
15
16
|
return;
|
|
16
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processBuilderExitRequest.js","sourceRoot":"","sources":["../../src/block/processBuilderExitRequest.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"processBuilderExitRequest.js","sourceRoot":"","sources":["../../src/block/processBuilderExitRequest.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAC,qCAAqC,EAAE,mBAAmB,EAAE,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAG7G;;;;;;;;GAQG;AACH,MAAM,UAAU,yBAAyB,CAAC,YAAiC,EAAE,OAAiC;IAC5G,MAAM,EAAC,KAAK,EAAC,GAAG,YAAY,CAAC;IAC7B,MAAM,YAAY,GAAG,YAAY,CAAC,wBAAwB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3E,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QAC1B,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAEzD,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/D,OAAO;IACT,CAAC;IACD,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QACtE,OAAO;IACT,CAAC;IACD,IAAI,qCAAqC,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;QACrE,OAAO;IACT,CAAC;IAED,mBAAmB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;AAC3C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processParentExecutionPayload.d.ts","sourceRoot":"","sources":["../../src/block/processParentExecutionPayload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAA6C,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAC,WAAW,EAAE,KAAK,EAAM,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAC,sBAAsB,EAAC,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"processParentExecutionPayload.d.ts","sourceRoot":"","sources":["../../src/block/processParentExecutionPayload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAA6C,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAC,WAAW,EAAE,KAAK,EAAM,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAC,sBAAsB,EAAC,MAAM,aAAa,CAAC;AASnD;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,WAAW,CAAC,aAAa,CAAC,GAAG,IAAI,CAqBpH;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,sBAAsB,EAAE,QAAQ,EAAE,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAoDlH"}
|
|
@@ -2,6 +2,7 @@ import { SLOTS_PER_EPOCH, SLOTS_PER_HISTORICAL_ROOT } from "@lodestar/params";
|
|
|
2
2
|
import { ssz } from "@lodestar/types";
|
|
3
3
|
import { byteArrayEquals, toRootHex } from "@lodestar/utils";
|
|
4
4
|
import { computeEpochAtSlot } from "../util/epoch.js";
|
|
5
|
+
import { IndexedBuilderState } from "./indexedBuilderState.js";
|
|
5
6
|
import { processBuilderDepositRequest } from "./processBuilderDepositRequest.js";
|
|
6
7
|
import { processBuilderExitRequest } from "./processBuilderExitRequest.js";
|
|
7
8
|
import { processConsolidationRequest } from "./processConsolidationRequest.js";
|
|
@@ -44,24 +45,8 @@ export function applyParentExecutionPayload(state, requests) {
|
|
|
44
45
|
const parentSlot = state.latestBlockHeader.slot;
|
|
45
46
|
const parentEpoch = computeEpochAtSlot(parentSlot);
|
|
46
47
|
const currentEpoch = computeEpochAtSlot(state.slot);
|
|
47
|
-
//
|
|
48
|
-
//
|
|
49
|
-
for (const deposit of requests.deposits) {
|
|
50
|
-
processDepositRequest(fork, state, deposit);
|
|
51
|
-
}
|
|
52
|
-
for (const withdrawal of requests.withdrawals) {
|
|
53
|
-
processWithdrawalRequest(fork, state, withdrawal);
|
|
54
|
-
}
|
|
55
|
-
for (const consolidation of requests.consolidations) {
|
|
56
|
-
processConsolidationRequest(state, consolidation);
|
|
57
|
-
}
|
|
58
|
-
for (const builderDeposit of requests.builderDeposits) {
|
|
59
|
-
processBuilderDepositRequest(state, builderDeposit);
|
|
60
|
-
}
|
|
61
|
-
for (const builderExit of requests.builderExits) {
|
|
62
|
-
processBuilderExitRequest(state, builderExit);
|
|
63
|
-
}
|
|
64
|
-
// Settle the builder payment
|
|
48
|
+
// Settle the builder payment before the requests so that a builder exit request
|
|
49
|
+
// is rejected while the payment is pending
|
|
65
50
|
if (parentEpoch === currentEpoch) {
|
|
66
51
|
settleBuilderPayment(state, SLOTS_PER_EPOCH + (parentSlot % SLOTS_PER_EPOCH));
|
|
67
52
|
}
|
|
@@ -77,6 +62,26 @@ export function applyParentExecutionPayload(state, requests) {
|
|
|
77
62
|
builderIndex: parentBid.builderIndex,
|
|
78
63
|
}));
|
|
79
64
|
}
|
|
65
|
+
// Process execution requests from parent's payload. The execution
|
|
66
|
+
// requests are processed at state.slot (child's slot), not the parent's slot.
|
|
67
|
+
for (const deposit of requests.deposits) {
|
|
68
|
+
processDepositRequest(fork, state, deposit);
|
|
69
|
+
}
|
|
70
|
+
for (const withdrawal of requests.withdrawals) {
|
|
71
|
+
processWithdrawalRequest(fork, state, withdrawal);
|
|
72
|
+
}
|
|
73
|
+
for (const consolidation of requests.consolidations) {
|
|
74
|
+
processConsolidationRequest(state, consolidation);
|
|
75
|
+
}
|
|
76
|
+
if (requests.builderDeposits.length > 0 || requests.builderExits.length > 0) {
|
|
77
|
+
const indexedState = new IndexedBuilderState(state);
|
|
78
|
+
for (const builderDeposit of requests.builderDeposits) {
|
|
79
|
+
processBuilderDepositRequest(indexedState, builderDeposit);
|
|
80
|
+
}
|
|
81
|
+
for (const builderExit of requests.builderExits) {
|
|
82
|
+
processBuilderExitRequest(indexedState, builderExit);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
80
85
|
// Update parent payload availability and latest block hash
|
|
81
86
|
state.executionPayloadAvailability.set(parentSlot % SLOTS_PER_HISTORICAL_ROOT, true);
|
|
82
87
|
state.latestBlockHash = parentBid.blockHash;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processParentExecutionPayload.js","sourceRoot":"","sources":["../../src/block/processParentExecutionPayload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,eAAe,EAAE,yBAAyB,EAAC,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAqB,GAAG,EAAC,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAC,eAAe,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAC,4BAA4B,EAAC,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAC,yBAAyB,EAAC,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAC,2BAA2B,EAAC,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAC,qBAAqB,EAAC,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAC,wBAAwB,EAAC,MAAM,+BAA+B,CAAC;AAEvE;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAAC,KAA6B,EAAE,KAAiC;IAC5G,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC;IACzD,MAAM,SAAS,GAAG,KAAK,CAAC,yBAAyB,CAAC;IAClD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC;IAEpD,MAAM,iBAAiB,GAAG,eAAe,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACpF,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,qDAAqD;QACrD,4BAA4B,CAAC,QAAQ,CAAC,CAAC;QACvC,OAAO;IACT,CAAC;IAED,qEAAqE;IACrE,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IACxE,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,SAAS,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CACb,kDAAkD,SAAS,CAAC,YAAY,CAAC,aAAa,SAAS,CAAC,SAAS,CAAC,qBAAqB,CAAC,EAAE,CACnI,CAAC;IACJ,CAAC;IAED,2BAA2B,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,2BAA2B,CAAC,KAA6B,EAAE,QAAiC;IAC1G,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,KAAK,CAAC,yBAAyB,CAAC;IAClD,MAAM,UAAU,GAAG,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC;IAChD,MAAM,WAAW,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEpD,
|
|
1
|
+
{"version":3,"file":"processParentExecutionPayload.js","sourceRoot":"","sources":["../../src/block/processParentExecutionPayload.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { type BlockExternalData, DataAvailabilityStatus, ExecutionPayloadStatus } from "./block/externalData.js";
|
|
2
|
+
export { IndexedBuilderState } from "./block/indexedBuilderState.js";
|
|
2
3
|
export { getAttestationParticipationStatus, processAttestationsAltair } from "./block/processAttestationsAltair.js";
|
|
3
4
|
export { assertValidAttesterSlashing } from "./block/processAttesterSlashing.js";
|
|
4
5
|
export { isValidBlsToExecutionChange } from "./block/processBlsToExecutionChange.js";
|
|
@@ -19,7 +20,8 @@ export * from "./rewards/index.js";
|
|
|
19
20
|
export * from "./signatureSets/index.js";
|
|
20
21
|
export * from "./stateTransition.js";
|
|
21
22
|
export { BeaconStateView } from "./stateView/beaconStateView.js";
|
|
22
|
-
export { type
|
|
23
|
+
export { type BlockSTFInput, type ComputeNewStateRootResult, type IBeaconStateView, type IBeaconStateViewAltair, type IBeaconStateViewBellatrix, type IBeaconStateViewCapella, type IBeaconStateViewDeneb, type IBeaconStateViewElectra, type IBeaconStateViewFulu, type IBeaconStateViewGloas, type IBeaconStateViewHeze, type IBeaconStateViewNative, isStatePostAltair, isStatePostBellatrix, isStatePostCapella, isStatePostDeneb, isStatePostElectra, isStatePostFulu, isStatePostGloas, isStatePostHeze, } from "./stateView/interface.js";
|
|
24
|
+
export { NativeBeaconStateView } from "./stateView/nativeBeaconStateView.js";
|
|
23
25
|
export { createBeaconStateView, createBeaconStateViewForHistoricalRegen } from "./stateView/stateViewFactory.js";
|
|
24
26
|
export type { BeaconStateAllForks, BeaconStateAltair, BeaconStateBellatrix, BeaconStateCapella, BeaconStateDeneb, BeaconStateElectra, BeaconStateExecutions, BeaconStateFulu, BeaconStateGloas, BeaconStateHeze, BeaconStatePhase0, CachedBeaconStateAllForks, CachedBeaconStateAltair, CachedBeaconStateBellatrix, CachedBeaconStateCapella, CachedBeaconStateDeneb, CachedBeaconStateElectra, CachedBeaconStateExecutions, CachedBeaconStateFulu, CachedBeaconStateGloas, CachedBeaconStateHeze, CachedBeaconStatePhase0, } from "./types.js";
|
|
25
27
|
export * from "./util/index.js";
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,iBAAiB,EAAE,sBAAsB,EAAE,sBAAsB,EAAC,MAAM,yBAAyB,CAAC;AAC/G,OAAO,EAAC,iCAAiC,EAAE,yBAAyB,EAAC,MAAM,sCAAsC,CAAC;AAClH,OAAO,EAAC,2BAA2B,EAAC,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAC,2BAA2B,EAAC,MAAM,wCAAwC,CAAC;AAEnF,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAC,2BAA2B,EAAC,MAAM,oCAAoC,CAAC;AAE/E,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAC,sBAAsB,EAAC,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAC,gBAAgB,EAAE,qBAAqB,EAAE,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAC7F,OAAO,EACL,KAAK,0BAA0B,EAC/B,oCAAoC,EACpC,mCAAmC,GACpC,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,UAAU,EACV,KAAK,uBAAuB,EAC5B,kCAAkC,GACnC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAC,KAAK,oBAAoB,EAAE,kBAAkB,EAAC,MAAM,iCAAiC,CAAC;AAE9F,OAAO,EACL,KAAK,gBAAgB,EACrB,uBAAuB,EACvB,mBAAmB,EACnB,6BAA6B,EAC7B,+BAA+B,EAC/B,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAC,KAAK,kBAAkB,EAAE,uBAAuB,EAAC,MAAM,+BAA+B,CAAC;AAC/F,cAAc,sBAAsB,CAAC;AACrC,YAAY,EAAC,mBAAmB,EAAC,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAC,KAAK,4BAA4B,EAAE,UAAU,EAAC,MAAM,cAAc,CAAC;AAC3E,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EACL,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,iBAAiB,EAAE,sBAAsB,EAAE,sBAAsB,EAAC,MAAM,yBAAyB,CAAC;AAC/G,OAAO,EAAC,mBAAmB,EAAC,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAC,iCAAiC,EAAE,yBAAyB,EAAC,MAAM,sCAAsC,CAAC;AAClH,OAAO,EAAC,2BAA2B,EAAC,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAC,2BAA2B,EAAC,MAAM,wCAAwC,CAAC;AAEnF,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAC,2BAA2B,EAAC,MAAM,oCAAoC,CAAC;AAE/E,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAC,sBAAsB,EAAC,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAC,gBAAgB,EAAE,qBAAqB,EAAE,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAC7F,OAAO,EACL,KAAK,0BAA0B,EAC/B,oCAAoC,EACpC,mCAAmC,GACpC,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,UAAU,EACV,KAAK,uBAAuB,EAC5B,kCAAkC,GACnC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAC,KAAK,oBAAoB,EAAE,kBAAkB,EAAC,MAAM,iCAAiC,CAAC;AAE9F,OAAO,EACL,KAAK,gBAAgB,EACrB,uBAAuB,EACvB,mBAAmB,EACnB,6BAA6B,EAC7B,+BAA+B,EAC/B,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAC,KAAK,kBAAkB,EAAE,uBAAuB,EAAC,MAAM,+BAA+B,CAAC;AAC/F,cAAc,sBAAsB,CAAC;AACrC,YAAY,EAAC,mBAAmB,EAAC,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAC,KAAK,4BAA4B,EAAE,UAAU,EAAC,MAAM,cAAc,CAAC;AAC3E,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,yBAAyB,EAC9B,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAC,qBAAqB,EAAC,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAC,qBAAqB,EAAE,uCAAuC,EAAC,MAAM,iCAAiC,CAAC;AAC/G,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,eAAe,EAEf,iBAAiB,EACjB,yBAAyB,EACzB,uBAAuB,EACvB,0BAA0B,EAC1B,wBAAwB,EACxB,sBAAsB,EACtB,wBAAwB,EACxB,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AACpB,cAAc,iBAAiB,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { DataAvailabilityStatus, ExecutionPayloadStatus } from "./block/externalData.js";
|
|
2
|
+
export { IndexedBuilderState } from "./block/indexedBuilderState.js";
|
|
2
3
|
export { getAttestationParticipationStatus, processAttestationsAltair } from "./block/processAttestationsAltair.js";
|
|
3
4
|
export { assertValidAttesterSlashing } from "./block/processAttesterSlashing.js";
|
|
4
5
|
export { isValidBlsToExecutionChange } from "./block/processBlsToExecutionChange.js";
|
|
@@ -23,6 +24,7 @@ export * from "./signatureSets/index.js";
|
|
|
23
24
|
export * from "./stateTransition.js";
|
|
24
25
|
export { BeaconStateView } from "./stateView/beaconStateView.js";
|
|
25
26
|
export { isStatePostAltair, isStatePostBellatrix, isStatePostCapella, isStatePostDeneb, isStatePostElectra, isStatePostFulu, isStatePostGloas, isStatePostHeze, } from "./stateView/interface.js";
|
|
27
|
+
export { NativeBeaconStateView } from "./stateView/nativeBeaconStateView.js";
|
|
26
28
|
export { createBeaconStateView, createBeaconStateViewForHistoricalRegen } from "./stateView/stateViewFactory.js";
|
|
27
29
|
export * from "./util/index.js";
|
|
28
30
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,sBAAsB,EAAE,sBAAsB,EAAC,MAAM,yBAAyB,CAAC;AAC/G,OAAO,EAAC,iCAAiC,EAAE,yBAAyB,EAAC,MAAM,sCAAsC,CAAC;AAClH,OAAO,EAAC,2BAA2B,EAAC,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAC,2BAA2B,EAAC,MAAM,wCAAwC,CAAC;AACnF,qCAAqC;AACrC,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAC,2BAA2B,EAAC,MAAM,oCAAoC,CAAC;AAC/E,yBAAyB;AACzB,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,iCAAiC,CAAC;AACzC,6BAA6B;AAC7B,OAAO,EAAC,sBAAsB,EAAC,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAC,gBAAgB,EAAE,qBAAqB,EAAE,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAC7F,OAAO,EAEL,oCAAoC,EACpC,mCAAmC,GACpC,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,UAAU,EAEV,kCAAkC,GACnC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAA4B,kBAAkB,EAAC,MAAM,iCAAiC,CAAC;AAC9F,oBAAoB;AACpB,OAAO,EAEL,uBAAuB,EACvB,mBAAmB,EACnB,6BAA6B,EAC7B,+BAA+B,EAC/B,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAA0B,uBAAuB,EAAC,MAAM,+BAA+B,CAAC;AAC/F,cAAc,sBAAsB,CAAC;AAErC,OAAO,EAAoC,UAAU,EAAC,MAAM,cAAc,CAAC;AAC3E,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAC/D,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,sBAAsB,EAAE,sBAAsB,EAAC,MAAM,yBAAyB,CAAC;AAC/G,OAAO,EAAC,mBAAmB,EAAC,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAC,iCAAiC,EAAE,yBAAyB,EAAC,MAAM,sCAAsC,CAAC;AAClH,OAAO,EAAC,2BAA2B,EAAC,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAC,2BAA2B,EAAC,MAAM,wCAAwC,CAAC;AACnF,qCAAqC;AACrC,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAC,2BAA2B,EAAC,MAAM,oCAAoC,CAAC;AAC/E,yBAAyB;AACzB,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,iCAAiC,CAAC;AACzC,6BAA6B;AAC7B,OAAO,EAAC,sBAAsB,EAAC,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAC,gBAAgB,EAAE,qBAAqB,EAAE,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAC7F,OAAO,EAEL,oCAAoC,EACpC,mCAAmC,GACpC,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,UAAU,EAEV,kCAAkC,GACnC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAA4B,kBAAkB,EAAC,MAAM,iCAAiC,CAAC;AAC9F,oBAAoB;AACpB,OAAO,EAEL,uBAAuB,EACvB,mBAAmB,EACnB,6BAA6B,EAC7B,+BAA+B,EAC/B,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAA0B,uBAAuB,EAAC,MAAM,+BAA+B,CAAC;AAC/F,cAAc,sBAAsB,CAAC;AAErC,OAAO,EAAoC,UAAU,EAAC,MAAM,cAAc,CAAC;AAC3E,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAaL,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAC,qBAAqB,EAAC,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAC,qBAAqB,EAAE,uCAAuC,EAAC,MAAM,iCAAiC,CAAC;AA0B/G,cAAc,iBAAiB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attestationsRewards.d.ts","sourceRoot":"","sources":["../../src/rewards/attestationsRewards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,WAAW,EAAC,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAgB9C,OAAO,EAAC,cAAc,EAAE,OAAO,EAAC,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"attestationsRewards.d.ts","sourceRoot":"","sources":["../../src/rewards/attestationsRewards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,WAAW,EAAC,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAgB9C,OAAO,EAAC,cAAc,EAAE,OAAO,EAAC,MAAM,iBAAiB,CAAC;AAKxD,OAAO,EAAC,yBAAyB,EAA0B,MAAM,aAAa,CAAC;AAgB/E,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,yBAAyB,EAChC,YAAY,CAAC,EAAE,CAAC,cAAc,GAAG,MAAM,CAAC,EAAE,GACzC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CA8BtC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { EFFECTIVE_BALANCE_INCREMENT, ForkName, ForkSeq, INACTIVITY_PENALTY_QUOTIENT_ALTAIR, INACTIVITY_PENALTY_QUOTIENT_BELLATRIX, MAX_EFFECTIVE_BALANCE, MAX_EFFECTIVE_BALANCE_ELECTRA, PARTICIPATION_FLAG_WEIGHTS, TIMELY_HEAD_FLAG_INDEX, TIMELY_SOURCE_FLAG_INDEX, TIMELY_TARGET_FLAG_INDEX, WEIGHT_DENOMINATOR, isForkPostElectra, } from "@lodestar/params";
|
|
2
2
|
import { fromHex } from "@lodestar/utils";
|
|
3
3
|
import { beforeProcessEpoch } from "../cache/epochTransitionCache.js";
|
|
4
|
+
import { processInactivityUpdates } from "../epoch/processInactivityUpdates.js";
|
|
5
|
+
import { processJustificationAndFinalization } from "../epoch/processJustificationAndFinalization.js";
|
|
4
6
|
import { FLAG_ELIGIBLE_ATTESTER, FLAG_PREV_HEAD_ATTESTER_UNSLASHED, FLAG_PREV_SOURCE_ATTESTER_UNSLASHED, FLAG_PREV_TARGET_ATTESTER_UNSLASHED, hasMarkers, isInInactivityLeak, } from "../util/index.js";
|
|
5
7
|
const defaultAttestationsReward = { head: 0, target: 0, source: 0, inclusionDelay: 0, inactivity: 0 };
|
|
6
8
|
const defaultAttestationsPenalty = { target: 0, source: 0 };
|
|
@@ -9,8 +11,13 @@ export async function computeAttestationsRewards(config, pubkeyCache, state, val
|
|
|
9
11
|
if (fork === ForkName.phase0) {
|
|
10
12
|
throw Error("Unsupported fork. Attestations rewards calculation is not available in phase0");
|
|
11
13
|
}
|
|
12
|
-
|
|
14
|
+
// Rewards are computed after justification and inactivity updates in epoch processing, so apply both to a clone
|
|
15
|
+
// before reading finality and inactivity scores, see
|
|
16
|
+
// https://github.com/ethereum/consensus-specs/blob/v1.7.0-beta.2/specs/altair/beacon-chain.md#epoch-processing
|
|
17
|
+
const stateAltair = state.clone();
|
|
13
18
|
const transitionCache = beforeProcessEpoch(stateAltair);
|
|
19
|
+
processJustificationAndFinalization(stateAltair, transitionCache);
|
|
20
|
+
processInactivityUpdates(stateAltair, transitionCache);
|
|
14
21
|
const [idealRewards, penalties] = computeIdealAttestationsRewardsAndPenaltiesAltair(config, stateAltair, transitionCache);
|
|
15
22
|
const totalRewards = computeTotalAttestationsRewardsAltair(config, pubkeyCache, stateAltair, transitionCache, idealRewards, penalties, validatorIds);
|
|
16
23
|
return { idealRewards, totalRewards };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attestationsRewards.js","sourceRoot":"","sources":["../../src/rewards/attestationsRewards.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,2BAA2B,EAC3B,QAAQ,EACR,OAAO,EACP,kCAAkC,EAClC,qCAAqC,EACrC,qBAAqB,EACrB,6BAA6B,EAC7B,0BAA0B,EAC1B,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,EACxB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAC,OAAO,EAAC,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAuB,kBAAkB,EAAC,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"attestationsRewards.js","sourceRoot":"","sources":["../../src/rewards/attestationsRewards.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CompactMultiProof } from "@chainsafe/persistent-merkle-tree";
|
|
2
2
|
import { BitArray, ByteViews } from "@chainsafe/ssz";
|
|
3
3
|
import { ForkName, ForkSeq } from "@lodestar/params";
|
|
4
|
-
import { BeaconBlock, BeaconState, BlindedBeaconBlock, BuilderIndex, Bytes32, CommitteeIndex, Epoch, ExecutionPayloadBid, ExecutionPayloadHeader, Root, RootHex,
|
|
4
|
+
import { BeaconBlock, BeaconState, BlindedBeaconBlock, BuilderIndex, Bytes32, CommitteeIndex, Epoch, ExecutionPayloadBid, ExecutionPayloadHeader, Root, RootHex, Slot, SyncCommittee, ValidatorIndex, capella, electra, fulu, gloas, phase0, rewards } from "@lodestar/types";
|
|
5
5
|
import { Checkpoint, Fork } from "@lodestar/types/phase0";
|
|
6
6
|
import { VoluntaryExitValidity } from "../block/processVoluntaryExit.js";
|
|
7
7
|
import { EffectiveBalanceIncrements } from "../cache/effectiveBalanceIncrements.js";
|
|
@@ -12,28 +12,29 @@ import { SyncCommitteeWitness } from "../lightClient/types.js";
|
|
|
12
12
|
import { StateTransitionModules, StateTransitionOpts } from "../stateTransition.js";
|
|
13
13
|
import { EpochShuffling } from "../util/epochShuffling.js";
|
|
14
14
|
import { PreVerifyBuilderDepositsResult } from "../util/preVerifyBuilderDeposits.js";
|
|
15
|
-
import {
|
|
15
|
+
import { BlockSTFInput, ComputeNewStateRootResult, IBeaconStateView, IBeaconStateViewGloas, IBeaconStateViewLatestFork } from "./interface.js";
|
|
16
16
|
export declare class BeaconStateView implements IBeaconStateViewLatestFork {
|
|
17
17
|
readonly cachedState: CachedBeaconStateAllForks;
|
|
18
18
|
private readonly config;
|
|
19
|
-
private
|
|
20
|
-
private
|
|
21
|
-
private
|
|
22
|
-
private
|
|
23
|
-
private
|
|
24
|
-
private
|
|
25
|
-
private
|
|
26
|
-
private
|
|
27
|
-
private
|
|
28
|
-
private
|
|
29
|
-
private
|
|
30
|
-
private
|
|
31
|
-
private
|
|
32
|
-
private
|
|
33
|
-
private
|
|
34
|
-
private
|
|
35
|
-
private
|
|
19
|
+
private cachedFork;
|
|
20
|
+
private cachedLatestBlockHeader;
|
|
21
|
+
private cachedCurrentSyncCommittee;
|
|
22
|
+
private cachedNextSyncCommittee;
|
|
23
|
+
private cachedPreviousEpochParticipation;
|
|
24
|
+
private cachedCurrentEpochParticipation;
|
|
25
|
+
private cachedLatestExecutionPayloadHeader;
|
|
26
|
+
private cachedHistoricalSummaries;
|
|
27
|
+
private cachedPendingPartialWithdrawals;
|
|
28
|
+
private cachedPendingConsolidations;
|
|
29
|
+
private cachedPendingDeposits;
|
|
30
|
+
private cachedProposerLookahead;
|
|
31
|
+
private cachedExecutionPayloadAvailability;
|
|
32
|
+
private cachedLatestExecutionPayloadBid;
|
|
33
|
+
private cachedPayloadExpectedWithdrawals;
|
|
34
|
+
private cachedBuilderPendingPayments;
|
|
35
|
+
private cachedBuilderPendingWithdrawals;
|
|
36
36
|
constructor(cachedState: CachedBeaconStateAllForks);
|
|
37
|
+
release(): void;
|
|
37
38
|
get forkName(): ForkName;
|
|
38
39
|
get forkSeq(): ForkSeq;
|
|
39
40
|
get slot(): number;
|
|
@@ -171,8 +172,8 @@ export declare class BeaconStateView implements IBeaconStateViewLatestFork {
|
|
|
171
172
|
serializedValidatorsSize(): number;
|
|
172
173
|
serializeValidatorsToBytes(output: ByteViews, offset: number): number;
|
|
173
174
|
hashTreeRoot(): Uint8Array;
|
|
174
|
-
computeNewStateRoot({ block }:
|
|
175
|
-
stateTransition(
|
|
175
|
+
computeNewStateRoot({ block }: BlockSTFInput, modules: StateTransitionModules): ComputeNewStateRootResult;
|
|
176
|
+
stateTransition({ block }: BlockSTFInput, options: StateTransitionOpts, modules: StateTransitionModules): IBeaconStateView;
|
|
176
177
|
processSlots(slot: Slot, opts?: {
|
|
177
178
|
dontTransferCache?: boolean;
|
|
178
179
|
}, modules?: StateTransitionModules): IBeaconStateView;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"beaconStateView.d.ts","sourceRoot":"","sources":["../../src/stateView/beaconStateView.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAA+B,MAAM,mCAAmC,CAAC;AAClG,OAAO,EAAC,QAAQ,EAAE,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAC,QAAQ,EAAE,OAAO,EAA4B,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EACL,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,OAAO,EACP,cAAc,EACd,KAAK,EACL,mBAAmB,EACnB,sBAAsB,EACtB,IAAI,EACJ,OAAO,EACP,
|
|
1
|
+
{"version":3,"file":"beaconStateView.d.ts","sourceRoot":"","sources":["../../src/stateView/beaconStateView.ts"],"names":[],"mappings":"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"}
|