@lodestar/state-transition 1.12.0-dev.c6291ada65 → 1.12.0-dev.cf13ce9d15
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/processExecutionPayload.d.ts +1 -2
- package/lib/block/processExecutionPayload.js +1 -30
- package/lib/block/processExecutionPayload.js.map +1 -1
- package/lib/cache/epochCache.js +2 -2
- package/lib/index.d.ts +0 -1
- package/lib/index.js +0 -1
- package/lib/index.js.map +1 -1
- package/lib/stateTransition.js +1 -1
- package/lib/stateTransition.js.map +1 -1
- package/lib/util/blindedBlock.d.ts +5 -1
- package/lib/util/blindedBlock.js +44 -1
- package/lib/util/blindedBlock.js.map +1 -1
- package/lib/util/execution.d.ts +2 -0
- package/lib/util/execution.js +29 -0
- package/lib/util/execution.js.map +1 -1
- package/package.json +6 -6
|
@@ -2,6 +2,5 @@ import { allForks } from "@lodestar/types";
|
|
|
2
2
|
import { ForkSeq } from "@lodestar/params";
|
|
3
3
|
import { CachedBeaconStateBellatrix, CachedBeaconStateCapella } from "../types.js";
|
|
4
4
|
import { BlockExternalData } from "./externalData.js";
|
|
5
|
-
export declare function processExecutionPayload(fork: ForkSeq, state: CachedBeaconStateBellatrix | CachedBeaconStateCapella, body: allForks.FullOrBlindedBeaconBlockBody, externalData: BlockExternalData): void;
|
|
6
|
-
export declare function executionPayloadToPayloadHeader(fork: ForkSeq, payload: allForks.ExecutionPayload): allForks.ExecutionPayloadHeader;
|
|
5
|
+
export declare function processExecutionPayload(fork: ForkSeq, state: CachedBeaconStateBellatrix | CachedBeaconStateCapella, body: allForks.FullOrBlindedBeaconBlockBody, externalData: Omit<BlockExternalData, "dataAvailableStatus">): void;
|
|
7
6
|
//# sourceMappingURL=processExecutionPayload.d.ts.map
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { toHexString, byteArrayEquals } from "@chainsafe/ssz";
|
|
2
|
-
import { ssz } from "@lodestar/types";
|
|
3
2
|
import { ForkSeq, MAX_BLOBS_PER_BLOCK } from "@lodestar/params";
|
|
4
3
|
import { getRandaoMix } from "../util/index.js";
|
|
5
|
-
import { isExecutionPayload, isMergeTransitionComplete, getFullOrBlindedPayloadFromBody } from "../util/execution.js";
|
|
4
|
+
import { isExecutionPayload, isMergeTransitionComplete, getFullOrBlindedPayloadFromBody, executionPayloadToPayloadHeader, } from "../util/execution.js";
|
|
6
5
|
import { ExecutionPayloadStatus } from "./externalData.js";
|
|
7
6
|
export function processExecutionPayload(fork, state, body, externalData) {
|
|
8
7
|
const payload = getFullOrBlindedPayloadFromBody(body);
|
|
@@ -58,32 +57,4 @@ export function processExecutionPayload(fork, state, body, externalData) {
|
|
|
58
57
|
.getExecutionForkTypes(state.slot)
|
|
59
58
|
.ExecutionPayloadHeader.toViewDU(payloadHeader);
|
|
60
59
|
}
|
|
61
|
-
export function executionPayloadToPayloadHeader(fork, payload) {
|
|
62
|
-
const transactionsRoot = ssz.bellatrix.Transactions.hashTreeRoot(payload.transactions);
|
|
63
|
-
const bellatrixPayloadFields = {
|
|
64
|
-
parentHash: payload.parentHash,
|
|
65
|
-
feeRecipient: payload.feeRecipient,
|
|
66
|
-
stateRoot: payload.stateRoot,
|
|
67
|
-
receiptsRoot: payload.receiptsRoot,
|
|
68
|
-
logsBloom: payload.logsBloom,
|
|
69
|
-
prevRandao: payload.prevRandao,
|
|
70
|
-
blockNumber: payload.blockNumber,
|
|
71
|
-
gasLimit: payload.gasLimit,
|
|
72
|
-
gasUsed: payload.gasUsed,
|
|
73
|
-
timestamp: payload.timestamp,
|
|
74
|
-
extraData: payload.extraData,
|
|
75
|
-
baseFeePerGas: payload.baseFeePerGas,
|
|
76
|
-
blockHash: payload.blockHash,
|
|
77
|
-
transactionsRoot,
|
|
78
|
-
};
|
|
79
|
-
if (fork >= ForkSeq.capella) {
|
|
80
|
-
bellatrixPayloadFields.withdrawalsRoot = ssz.capella.Withdrawals.hashTreeRoot(payload.withdrawals);
|
|
81
|
-
}
|
|
82
|
-
if (fork >= ForkSeq.deneb) {
|
|
83
|
-
// https://github.com/ethereum/consensus-specs/blob/dev/specs/eip4844/beacon-chain.md#process_execution_payload
|
|
84
|
-
bellatrixPayloadFields.blobGasUsed = payload.blobGasUsed;
|
|
85
|
-
bellatrixPayloadFields.excessBlobGas = payload.excessBlobGas;
|
|
86
|
-
}
|
|
87
|
-
return bellatrixPayloadFields;
|
|
88
|
-
}
|
|
89
60
|
//# sourceMappingURL=processExecutionPayload.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processExecutionPayload.js","sourceRoot":"","sources":["../../src/block/processExecutionPayload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,eAAe,EAAC,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"processExecutionPayload.js","sourceRoot":"","sources":["../../src/block/processExecutionPayload.ts"],"names":[],"mappings":"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"}
|
package/lib/cache/epochCache.js
CHANGED
|
@@ -164,7 +164,7 @@ export class EpochCache {
|
|
|
164
164
|
// ```
|
|
165
165
|
// So the returned value of is_active_validator(epoch) is guaranteed to not change during `MAX_SEED_LOOKAHEAD` epochs.
|
|
166
166
|
//
|
|
167
|
-
// activeIndices size is
|
|
167
|
+
// activeIndices size is dependent on the state epoch. The epoch is advanced after running the epoch transition, and
|
|
168
168
|
// the first block of the epoch process_block() call. So churnLimit must be computed at the end of the before epoch
|
|
169
169
|
// transition and the result is valid until the end of the next epoch transition
|
|
170
170
|
const churnLimit = getChurnLimit(config, currentShuffling.activeIndices.length);
|
|
@@ -278,7 +278,7 @@ export class EpochCache {
|
|
|
278
278
|
// ```
|
|
279
279
|
// So the returned value of is_active_validator(epoch) is guaranteed to not change during `MAX_SEED_LOOKAHEAD` epochs.
|
|
280
280
|
//
|
|
281
|
-
// activeIndices size is
|
|
281
|
+
// activeIndices size is dependent on the state epoch. The epoch is advanced after running the epoch transition, and
|
|
282
282
|
// the first block of the epoch process_block() call. So churnLimit must be computed at the end of the before epoch
|
|
283
283
|
// transition and the result is valid until the end of the next epoch transition
|
|
284
284
|
this.churnLimit = getChurnLimit(this.config, this.currentShuffling.activeIndices.length);
|
package/lib/index.d.ts
CHANGED
|
@@ -16,5 +16,4 @@ export { assertValidAttesterSlashing } from "./block/processAttesterSlashing.js"
|
|
|
16
16
|
export { ExecutionPayloadStatus, DataAvailableStatus, type BlockExternalData } from "./block/externalData.js";
|
|
17
17
|
export { becomesNewEth1Data } from "./block/processEth1Data.js";
|
|
18
18
|
export { getExpectedWithdrawals } from "./block/processWithdrawals.js";
|
|
19
|
-
export { executionPayloadToPayloadHeader } from "./block/processExecutionPayload.js";
|
|
20
19
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.js
CHANGED
|
@@ -19,5 +19,4 @@ export { ExecutionPayloadStatus, DataAvailableStatus } from "./block/externalDat
|
|
|
19
19
|
export { becomesNewEth1Data } from "./block/processEth1Data.js";
|
|
20
20
|
// Withdrawals for new blocks
|
|
21
21
|
export { getExpectedWithdrawals } from "./block/processWithdrawals.js";
|
|
22
|
-
export { executionPayloadToPayloadHeader } from "./block/processExecutionPayload.js";
|
|
23
22
|
//# 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,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AAqBzC,oBAAoB;AACpB,OAAO,EACL,uBAAuB,EAEvB,mBAAmB,EACnB,6BAA6B,EAC7B,+BAA+B,GAChC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,UAAU,EAEV,kCAAkC,EAClC,eAAe,EACf,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAA4B,kBAAkB,EAAC,MAAM,iCAAiC,CAAC;AAE9F,sBAAsB;AACtB,OAAO,EAAC,cAAc,EAAyB,MAAM,wBAAwB,CAAC;AAE9E,OAAO,EAEL,mCAAmC,EACnC,oCAAoC,GACrC,MAAM,uCAAuC,CAAC;AAE/C,yBAAyB;AACzB,OAAO,EAAC,oBAAoB,EAAC,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAC,2BAA2B,EAAC,MAAM,wCAAwC,CAAC;AACnF,OAAO,EAAC,2BAA2B,EAAC,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAC,2BAA2B,EAAC,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAC,sBAAsB,EAAE,mBAAmB,EAAyB,MAAM,yBAAyB,CAAC;AAE5G,qCAAqC;AACrC,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAC9D,6BAA6B;AAC7B,OAAO,EAAC,sBAAsB,EAAC,MAAM,+BAA+B,CAAC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AAqBzC,oBAAoB;AACpB,OAAO,EACL,uBAAuB,EAEvB,mBAAmB,EACnB,6BAA6B,EAC7B,+BAA+B,GAChC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,UAAU,EAEV,kCAAkC,EAClC,eAAe,EACf,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAA4B,kBAAkB,EAAC,MAAM,iCAAiC,CAAC;AAE9F,sBAAsB;AACtB,OAAO,EAAC,cAAc,EAAyB,MAAM,wBAAwB,CAAC;AAE9E,OAAO,EAEL,mCAAmC,EACnC,oCAAoC,GACrC,MAAM,uCAAuC,CAAC;AAE/C,yBAAyB;AACzB,OAAO,EAAC,oBAAoB,EAAC,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAC,2BAA2B,EAAC,MAAM,wCAAwC,CAAC;AACnF,OAAO,EAAC,2BAA2B,EAAC,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAC,2BAA2B,EAAC,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAC,sBAAsB,EAAE,mBAAmB,EAAyB,MAAM,yBAAyB,CAAC;AAE5G,qCAAqC;AACrC,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAC9D,6BAA6B;AAC7B,OAAO,EAAC,sBAAsB,EAAC,MAAM,+BAA+B,CAAC"}
|
package/lib/stateTransition.js
CHANGED
|
@@ -13,7 +13,7 @@ import { DataAvailableStatus, ExecutionPayloadStatus } from "./block/externalDat
|
|
|
13
13
|
* Implementation Note: follows the optimizations in protolambda's eth2fastspec (https://github.com/protolambda/eth2fastspec)
|
|
14
14
|
*/
|
|
15
15
|
export function stateTransition(state, signedBlock, options = {
|
|
16
|
-
//
|
|
16
|
+
// Assume default to be valid and available
|
|
17
17
|
executionPayloadStatus: ExecutionPayloadStatus.valid,
|
|
18
18
|
dataAvailableStatus: DataAvailableStatus.available,
|
|
19
19
|
}, metrics) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stateTransition.js","sourceRoot":"","sources":["../src/stateTransition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAiB,GAAG,EAAC,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAA+B,kBAAkB,EAAE,mBAAmB,EAAC,MAAM,cAAc,CAAC;AACnG,OAAO,EAAC,kBAAkB,EAA2B,MAAM,iCAAiC,CAAC;AAQ7F,OAAO,EAAC,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAC,uBAAuB,EAAC,MAAM,0BAA0B,CAAC;AACjE,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAoB,mBAAmB,EAAE,sBAAsB,EAAC,MAAM,yBAAyB,CAAC;AAevG;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAgC,EAChC,WAAoD,EACpD,UAA+B;IAC7B,
|
|
1
|
+
{"version":3,"file":"stateTransition.js","sourceRoot":"","sources":["../src/stateTransition.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { ChainForkConfig } from "@lodestar/config";
|
|
2
|
-
import { allForks, phase0, Root } from "@lodestar/types";
|
|
2
|
+
import { allForks, phase0, Root, deneb } from "@lodestar/types";
|
|
3
3
|
export declare function blindedOrFullBlockHashTreeRoot(config: ChainForkConfig, blindedOrFull: allForks.FullOrBlindedBeaconBlock): Root;
|
|
4
4
|
export declare function blindedOrFullBlobSidecarHashTreeRoot(config: ChainForkConfig, blindedOrFull: allForks.FullOrBlindedBlobSidecar): Root;
|
|
5
5
|
export declare function blindedOrFullBlockToHeader(config: ChainForkConfig, blindedOrFull: allForks.FullOrBlindedBeaconBlock): phase0.BeaconBlockHeader;
|
|
6
|
+
export declare function beaconBlockToBlinded(config: ChainForkConfig, block: allForks.AllForksExecution["BeaconBlock"]): allForks.BlindedBeaconBlock;
|
|
7
|
+
export declare function blobSidecarsToBlinded(blobSidecars: deneb.BlobSidecars): deneb.BlindedBlobSidecars;
|
|
8
|
+
export declare function signedBlindedBlockToFull(signedBlindedBlock: allForks.SignedBlindedBeaconBlock, executionPayload: allForks.ExecutionPayload | null): allForks.SignedBeaconBlock;
|
|
9
|
+
export declare function signedBlindedBlobSidecarsToFull(signedBlindedBlobSidecars: deneb.SignedBlindedBlobSidecars, blobs: deneb.Blobs): deneb.SignedBlobSidecars;
|
|
6
10
|
//# sourceMappingURL=blindedBlock.d.ts.map
|
package/lib/util/blindedBlock.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ForkSeq } from "@lodestar/params";
|
|
2
|
+
import { isBlindedBeaconBlock, isBlindedBlobSidecar, ssz } from "@lodestar/types";
|
|
3
|
+
import { executionPayloadToPayloadHeader } from "./execution.js";
|
|
2
4
|
export function blindedOrFullBlockHashTreeRoot(config, blindedOrFull) {
|
|
3
5
|
return isBlindedBeaconBlock(blindedOrFull)
|
|
4
6
|
? // Blinded
|
|
@@ -27,4 +29,45 @@ export function blindedOrFullBlockToHeader(config, blindedOrFull) {
|
|
|
27
29
|
bodyRoot,
|
|
28
30
|
};
|
|
29
31
|
}
|
|
32
|
+
export function beaconBlockToBlinded(config, block) {
|
|
33
|
+
const fork = config.getForkName(block.slot);
|
|
34
|
+
const executionPayloadHeader = executionPayloadToPayloadHeader(ForkSeq[fork], block.body.executionPayload);
|
|
35
|
+
const blindedBlock = { ...block, body: { ...block.body, executionPayloadHeader } };
|
|
36
|
+
return blindedBlock;
|
|
37
|
+
}
|
|
38
|
+
export function blobSidecarsToBlinded(blobSidecars) {
|
|
39
|
+
return blobSidecars.map((blobSidecar) => {
|
|
40
|
+
const blobRoot = ssz.deneb.Blob.hashTreeRoot(blobSidecar.blob);
|
|
41
|
+
return { ...blobSidecar, blobRoot };
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
export function signedBlindedBlockToFull(signedBlindedBlock, executionPayload) {
|
|
45
|
+
const signedBlock = {
|
|
46
|
+
...signedBlindedBlock,
|
|
47
|
+
message: {
|
|
48
|
+
...signedBlindedBlock.message,
|
|
49
|
+
body: {
|
|
50
|
+
...signedBlindedBlock.message.body,
|
|
51
|
+
// state transition doesn't handle null value for executionPayload in pre-bellatrix blocks
|
|
52
|
+
executionPayload: executionPayload ?? undefined,
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
// state transition can't seem to handle executionPayloadHeader presense in merge block
|
|
57
|
+
// so just delete the extra field we don't require
|
|
58
|
+
delete signedBlock.message.body
|
|
59
|
+
.executionPayloadHeader;
|
|
60
|
+
return signedBlock;
|
|
61
|
+
}
|
|
62
|
+
export function signedBlindedBlobSidecarsToFull(signedBlindedBlobSidecars, blobs) {
|
|
63
|
+
const signedBlobSidecars = signedBlindedBlobSidecars.map((signedBlindedBlobSidecar, index) => {
|
|
64
|
+
const signedBlobSidecar = {
|
|
65
|
+
...signedBlindedBlobSidecar,
|
|
66
|
+
message: { ...signedBlindedBlobSidecar.message, blob: blobs[index] },
|
|
67
|
+
};
|
|
68
|
+
delete signedBlobSidecar.message.blobRoot;
|
|
69
|
+
return signedBlobSidecar;
|
|
70
|
+
});
|
|
71
|
+
return signedBlobSidecars;
|
|
72
|
+
}
|
|
30
73
|
//# sourceMappingURL=blindedBlock.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blindedBlock.js","sourceRoot":"","sources":["../../src/util/blindedBlock.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,oBAAoB,EAAE,oBAAoB,EAAC,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"blindedBlock.js","sourceRoot":"","sources":["../../src/util/blindedBlock.ts"],"names":[],"mappings":"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"}
|
package/lib/util/execution.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { allForks, bellatrix, capella } from "@lodestar/types";
|
|
2
|
+
import { ForkSeq } from "@lodestar/params";
|
|
2
3
|
import { BeaconStateCapella, BeaconStateAllForks, BeaconStateExecutions, CachedBeaconStateAllForks, CachedBeaconStateExecutions } from "../types.js";
|
|
3
4
|
/**
|
|
4
5
|
* Execution enabled = merge is done.
|
|
@@ -28,4 +29,5 @@ export declare function getFullOrBlindedPayloadFromBody(body: allForks.FullOrBli
|
|
|
28
29
|
export declare function isExecutionPayload(payload: allForks.FullOrBlindedExecutionPayload): payload is allForks.ExecutionPayload;
|
|
29
30
|
export declare function isCapellaPayload(payload: allForks.FullOrBlindedExecutionPayload): payload is capella.FullOrBlindedExecutionPayload;
|
|
30
31
|
export declare function isCapellaPayloadHeader(payload: capella.FullOrBlindedExecutionPayload): payload is capella.ExecutionPayloadHeader;
|
|
32
|
+
export declare function executionPayloadToPayloadHeader(fork: ForkSeq, payload: allForks.ExecutionPayload): allForks.ExecutionPayloadHeader;
|
|
31
33
|
//# sourceMappingURL=execution.d.ts.map
|
package/lib/util/execution.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { isBlindedBeaconBlockBody, ssz } from "@lodestar/types";
|
|
2
|
+
import { ForkSeq } from "@lodestar/params";
|
|
2
3
|
/**
|
|
3
4
|
* Execution enabled = merge is done.
|
|
4
5
|
* When (A) state has execution data OR (B) block has execution data
|
|
@@ -85,4 +86,32 @@ export function isCapellaPayload(payload) {
|
|
|
85
86
|
export function isCapellaPayloadHeader(payload) {
|
|
86
87
|
return payload.withdrawalsRoot !== undefined;
|
|
87
88
|
}
|
|
89
|
+
export function executionPayloadToPayloadHeader(fork, payload) {
|
|
90
|
+
const transactionsRoot = ssz.bellatrix.Transactions.hashTreeRoot(payload.transactions);
|
|
91
|
+
const bellatrixPayloadFields = {
|
|
92
|
+
parentHash: payload.parentHash,
|
|
93
|
+
feeRecipient: payload.feeRecipient,
|
|
94
|
+
stateRoot: payload.stateRoot,
|
|
95
|
+
receiptsRoot: payload.receiptsRoot,
|
|
96
|
+
logsBloom: payload.logsBloom,
|
|
97
|
+
prevRandao: payload.prevRandao,
|
|
98
|
+
blockNumber: payload.blockNumber,
|
|
99
|
+
gasLimit: payload.gasLimit,
|
|
100
|
+
gasUsed: payload.gasUsed,
|
|
101
|
+
timestamp: payload.timestamp,
|
|
102
|
+
extraData: payload.extraData,
|
|
103
|
+
baseFeePerGas: payload.baseFeePerGas,
|
|
104
|
+
blockHash: payload.blockHash,
|
|
105
|
+
transactionsRoot,
|
|
106
|
+
};
|
|
107
|
+
if (fork >= ForkSeq.capella) {
|
|
108
|
+
bellatrixPayloadFields.withdrawalsRoot = ssz.capella.Withdrawals.hashTreeRoot(payload.withdrawals);
|
|
109
|
+
}
|
|
110
|
+
if (fork >= ForkSeq.deneb) {
|
|
111
|
+
// https://github.com/ethereum/consensus-specs/blob/dev/specs/eip4844/beacon-chain.md#process_execution_payload
|
|
112
|
+
bellatrixPayloadFields.blobGasUsed = payload.blobGasUsed;
|
|
113
|
+
bellatrixPayloadFields.excessBlobGas = payload.excessBlobGas;
|
|
114
|
+
}
|
|
115
|
+
return bellatrixPayloadFields;
|
|
116
|
+
}
|
|
88
117
|
//# sourceMappingURL=execution.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution.js","sourceRoot":"","sources":["../../src/util/execution.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"execution.js","sourceRoot":"","sources":["../../src/util/execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,wBAAwB,EAAE,GAAG,EAAC,MAAM,iBAAiB,CAAC;AACnG,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAC;AAWzC;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAA4B,EAAE,KAAwC;IACvG,IAAI,yBAAyB,CAAC,KAAK,CAAC,EAAE;QACpC,OAAO,IAAI,CAAC;KACb;IAED,wGAAwG;IACxG,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC/C,iHAAiH;IACjH,oFAAoF;IACpF,yDAAyD;IAEzD,oGAAoG;IACpG,0DAA0D;IAC1D,OAAO,kBAAkB,CAAC,OAAO,CAAC;QAChC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;QAChG,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,sBAAsB,CAAC,MAAM,CAC1C,KAAK,CAAC,4BAA4B;QAClC,oBAAoB;QACpB,GAAG,CAAC,SAAS,CAAC,sBAAsB,CAAC,YAAY,EAAE,CACpD,CAAC;AACR,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAA4B,EAAE,IAA+B;IAClG,OAAO,CACL,CAAC,yBAAyB,CAAC,KAAK,CAAC;QACjC,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,CAC7G,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAA4B;IACpE,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE;QAC9B,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,sBAAsB,CAAC,MAAM,CAChD,KAA8B,CAAC,4BAA4B;QAC5D,oBAAoB;QACpB,GAAG,CAAC,SAAS,CAAC,sBAAsB,CAAC,YAAY,EAAE,CACpD,CAAC;KACH;SAAM;QACL,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,sBAAsB,CAAC,MAAM,CAC/C,KAAK,CAAC,4BAA4B;QAClC,oBAAoB;QACpB,GAAG,CAAC,OAAO,CAAC,sBAAsB,CAAC,YAAY,EAAE,CAClD,CAAC;KACH;AACH,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,oBAAoB,CAAC,KAA0B;IAC7D,OAAQ,KAA+B,CAAC,4BAA4B,KAAK,SAAS,CAAC;AACrF,CAAC;AAED,yCAAyC;AACzC,MAAM,UAAU,kBAAkB,CAAC,KAA0B;IAC3D,OAAO,CACJ,KAA4B,CAAC,4BAA4B,KAAK,SAAS;QACvE,KAA4B,CAAC,4BAA4B,CAAC,eAAe,KAAK,SAAS,CACzF,CAAC;AACJ,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,0BAA0B,CAAC,KAAgC;IACzE,OAAQ,KAAqC,CAAC,4BAA4B,KAAK,SAAS,CAAC;AAC3F,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,wBAAwB,CACtC,SAAmC;IAEnC,OAAQ,SAAyC,CAAC,gBAAgB,KAAK,SAAS,CAAC;AACnF,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,KAAwC;IAExC,OAAO,+BAA+B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,IAA2C;IAE3C,IAAI,wBAAwB,CAAC,IAAI,CAAC,EAAE;QAClC,OAAO,IAAI,CAAC,sBAAsB,CAAC;KACpC;SAAM,IAAK,IAAkC,CAAC,gBAAgB,KAAK,SAAS,EAAE;QAC7E,OAAQ,IAAkC,CAAC,gBAAgB,CAAC;KAC7D;SAAM;QACL,MAAM,KAAK,CAAC,uCAAuC,CAAC,CAAC;KACtD;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,OAA+C;IAE/C,OAAQ,OAAqC,CAAC,YAAY,KAAK,SAAS,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,OAA+C;IAE/C,OAAO,CACJ,OAAoC,CAAC,WAAW,KAAK,SAAS;QAC9D,OAA0C,CAAC,eAAe,KAAK,SAAS,CAC1E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,OAA8C;IAE9C,OAAQ,OAA0C,CAAC,eAAe,KAAK,SAAS,CAAC;AACnF,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,IAAa,EACb,OAAkC;IAElC,MAAM,gBAAgB,GAAG,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAEvF,MAAM,sBAAsB,GAAoC;QAC9D,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,gBAAgB;KACjB,CAAC;IAEF,IAAI,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE;QAC1B,sBAAyD,CAAC,eAAe,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,CAC9G,OAAoC,CAAC,WAAW,CAClD,CAAC;KACH;IAED,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE;QACzB,+GAA+G;QAC9G,sBAAuD,CAAC,WAAW,GAClE,OACD,CAAC,WAAW,CAAC;QACb,sBAAuD,CAAC,aAAa,GACpE,OACD,CAAC,aAAa,CAAC;KACjB;IAED,OAAO,sBAAsB,CAAC;AAChC,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.12.0-dev.
|
|
14
|
+
"version": "1.12.0-dev.cf13ce9d15",
|
|
15
15
|
"type": "module",
|
|
16
16
|
"exports": {
|
|
17
17
|
".": {
|
|
@@ -62,10 +62,10 @@
|
|
|
62
62
|
"@chainsafe/persistent-merkle-tree": "^0.6.1",
|
|
63
63
|
"@chainsafe/persistent-ts": "^0.19.1",
|
|
64
64
|
"@chainsafe/ssz": "^0.13.0",
|
|
65
|
-
"@lodestar/config": "1.12.0-dev.
|
|
66
|
-
"@lodestar/params": "1.12.0-dev.
|
|
67
|
-
"@lodestar/types": "1.12.0-dev.
|
|
68
|
-
"@lodestar/utils": "1.12.0-dev.
|
|
65
|
+
"@lodestar/config": "1.12.0-dev.cf13ce9d15",
|
|
66
|
+
"@lodestar/params": "1.12.0-dev.cf13ce9d15",
|
|
67
|
+
"@lodestar/types": "1.12.0-dev.cf13ce9d15",
|
|
68
|
+
"@lodestar/utils": "1.12.0-dev.cf13ce9d15",
|
|
69
69
|
"bigint-buffer": "^1.1.5",
|
|
70
70
|
"buffer-xor": "^2.0.2"
|
|
71
71
|
},
|
|
@@ -81,5 +81,5 @@
|
|
|
81
81
|
"beacon",
|
|
82
82
|
"blockchain"
|
|
83
83
|
],
|
|
84
|
-
"gitHead": "
|
|
84
|
+
"gitHead": "b180ef4e4c543646d4b56c73424dd36cc393de74"
|
|
85
85
|
}
|