@lodestar/state-transition 1.38.0-dev.bc1fed4d3d → 1.38.0-dev.f231d7e8ff

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.
Files changed (134) hide show
  1. package/lib/block/index.d.ts +4 -1
  2. package/lib/block/index.d.ts.map +1 -1
  3. package/lib/block/index.js +19 -8
  4. package/lib/block/index.js.map +1 -1
  5. package/lib/block/isValidIndexedPayloadAttestation.d.ts +4 -0
  6. package/lib/block/isValidIndexedPayloadAttestation.d.ts.map +1 -0
  7. package/lib/block/isValidIndexedPayloadAttestation.js +14 -0
  8. package/lib/block/isValidIndexedPayloadAttestation.js.map +1 -0
  9. package/lib/block/processAttestationPhase0.d.ts.map +1 -1
  10. package/lib/block/processAttestationPhase0.js +6 -1
  11. package/lib/block/processAttestationPhase0.js.map +1 -1
  12. package/lib/block/processAttestationsAltair.d.ts +3 -3
  13. package/lib/block/processAttestationsAltair.d.ts.map +1 -1
  14. package/lib/block/processAttestationsAltair.js +46 -4
  15. package/lib/block/processAttestationsAltair.js.map +1 -1
  16. package/lib/block/processConsolidationRequest.d.ts +3 -2
  17. package/lib/block/processConsolidationRequest.d.ts.map +1 -1
  18. package/lib/block/processConsolidationRequest.js +2 -2
  19. package/lib/block/processConsolidationRequest.js.map +1 -1
  20. package/lib/block/processDepositRequest.d.ts +2 -2
  21. package/lib/block/processDepositRequest.d.ts.map +1 -1
  22. package/lib/block/processDepositRequest.js.map +1 -1
  23. package/lib/block/processExecutionPayloadBid.d.ts +5 -0
  24. package/lib/block/processExecutionPayloadBid.d.ts.map +1 -0
  25. package/lib/block/processExecutionPayloadBid.js +89 -0
  26. package/lib/block/processExecutionPayloadBid.js.map +1 -0
  27. package/lib/block/processExecutionPayloadEnvelope.d.ts +4 -0
  28. package/lib/block/processExecutionPayloadEnvelope.d.ts.map +1 -0
  29. package/lib/block/processExecutionPayloadEnvelope.js +118 -0
  30. package/lib/block/processExecutionPayloadEnvelope.js.map +1 -0
  31. package/lib/block/processOperations.d.ts.map +1 -1
  32. package/lib/block/processOperations.js +8 -2
  33. package/lib/block/processOperations.js.map +1 -1
  34. package/lib/block/processPayloadAttestation.d.ts +4 -0
  35. package/lib/block/processPayloadAttestation.d.ts.map +1 -0
  36. package/lib/block/processPayloadAttestation.js +16 -0
  37. package/lib/block/processPayloadAttestation.js.map +1 -0
  38. package/lib/block/processProposerSlashing.d.ts.map +1 -1
  39. package/lib/block/processProposerSlashing.js +16 -1
  40. package/lib/block/processProposerSlashing.js.map +1 -1
  41. package/lib/block/processVoluntaryExit.js +1 -1
  42. package/lib/block/processVoluntaryExit.js.map +1 -1
  43. package/lib/block/processWithdrawalRequest.d.ts +2 -2
  44. package/lib/block/processWithdrawalRequest.d.ts.map +1 -1
  45. package/lib/block/processWithdrawalRequest.js +1 -1
  46. package/lib/block/processWithdrawalRequest.js.map +1 -1
  47. package/lib/block/processWithdrawals.d.ts +4 -3
  48. package/lib/block/processWithdrawals.d.ts.map +1 -1
  49. package/lib/block/processWithdrawals.js +89 -19
  50. package/lib/block/processWithdrawals.js.map +1 -1
  51. package/lib/cache/epochCache.d.ts +5 -1
  52. package/lib/cache/epochCache.d.ts.map +1 -1
  53. package/lib/cache/epochCache.js +34 -1
  54. package/lib/cache/epochCache.js.map +1 -1
  55. package/lib/epoch/index.d.ts +4 -2
  56. package/lib/epoch/index.d.ts.map +1 -1
  57. package/lib/epoch/index.js +10 -1
  58. package/lib/epoch/index.js.map +1 -1
  59. package/lib/epoch/processBuilderPendingPayments.d.ts +6 -0
  60. package/lib/epoch/processBuilderPendingPayments.d.ts.map +1 -0
  61. package/lib/epoch/processBuilderPendingPayments.js +28 -0
  62. package/lib/epoch/processBuilderPendingPayments.js.map +1 -0
  63. package/lib/index.d.ts +1 -1
  64. package/lib/index.d.ts.map +1 -1
  65. package/lib/index.js.map +1 -1
  66. package/lib/signatureSets/index.d.ts +1 -0
  67. package/lib/signatureSets/index.d.ts.map +1 -1
  68. package/lib/signatureSets/index.js +1 -0
  69. package/lib/signatureSets/index.js.map +1 -1
  70. package/lib/signatureSets/indexedPayloadAttestation.d.ts +6 -0
  71. package/lib/signatureSets/indexedPayloadAttestation.d.ts.map +1 -0
  72. package/lib/signatureSets/indexedPayloadAttestation.js +11 -0
  73. package/lib/signatureSets/indexedPayloadAttestation.js.map +1 -0
  74. package/lib/slot/index.d.ts +2 -1
  75. package/lib/slot/index.d.ts.map +1 -1
  76. package/lib/slot/index.js +6 -2
  77. package/lib/slot/index.js.map +1 -1
  78. package/lib/slot/upgradeStateToAltair.js +1 -1
  79. package/lib/slot/upgradeStateToAltair.js.map +1 -1
  80. package/lib/slot/upgradeStateToGloas.d.ts +0 -1
  81. package/lib/slot/upgradeStateToGloas.d.ts.map +1 -1
  82. package/lib/slot/upgradeStateToGloas.js +47 -5
  83. package/lib/slot/upgradeStateToGloas.js.map +1 -1
  84. package/lib/stateTransition.js +4 -3
  85. package/lib/stateTransition.js.map +1 -1
  86. package/lib/util/electra.d.ts +5 -5
  87. package/lib/util/electra.d.ts.map +1 -1
  88. package/lib/util/electra.js +2 -1
  89. package/lib/util/electra.js.map +1 -1
  90. package/lib/util/epoch.d.ts +3 -3
  91. package/lib/util/epoch.d.ts.map +1 -1
  92. package/lib/util/epoch.js.map +1 -1
  93. package/lib/util/gloas.d.ts +11 -0
  94. package/lib/util/gloas.d.ts.map +1 -0
  95. package/lib/util/gloas.js +35 -0
  96. package/lib/util/gloas.js.map +1 -0
  97. package/lib/util/seed.d.ts +5 -1
  98. package/lib/util/seed.d.ts.map +1 -1
  99. package/lib/util/seed.js +33 -1
  100. package/lib/util/seed.js.map +1 -1
  101. package/lib/util/validator.d.ts +2 -2
  102. package/lib/util/validator.d.ts.map +1 -1
  103. package/lib/util/validator.js +14 -1
  104. package/lib/util/validator.js.map +1 -1
  105. package/package.json +6 -6
  106. package/src/block/index.ts +35 -14
  107. package/src/block/isValidIndexedPayloadAttestation.ts +23 -0
  108. package/src/block/processAttestationPhase0.ts +5 -1
  109. package/src/block/processAttestationsAltair.ts +62 -5
  110. package/src/block/processConsolidationRequest.ts +6 -5
  111. package/src/block/processDepositRequest.ts +5 -2
  112. package/src/block/processExecutionPayloadBid.ts +120 -0
  113. package/src/block/processExecutionPayloadEnvelope.ts +181 -0
  114. package/src/block/processOperations.ts +16 -4
  115. package/src/block/processPayloadAttestation.ts +25 -0
  116. package/src/block/processProposerSlashing.ts +24 -3
  117. package/src/block/processVoluntaryExit.ts +1 -1
  118. package/src/block/processWithdrawalRequest.ts +4 -4
  119. package/src/block/processWithdrawals.ts +118 -27
  120. package/src/cache/epochCache.ts +58 -1
  121. package/src/epoch/index.ts +12 -0
  122. package/src/epoch/processBuilderPendingPayments.ts +31 -0
  123. package/src/index.ts +2 -0
  124. package/src/signatureSets/index.ts +1 -0
  125. package/src/signatureSets/indexedPayloadAttestation.ts +24 -0
  126. package/src/slot/index.ts +11 -3
  127. package/src/slot/upgradeStateToAltair.ts +2 -1
  128. package/src/slot/upgradeStateToGloas.ts +49 -5
  129. package/src/stateTransition.ts +4 -4
  130. package/src/util/electra.ts +15 -6
  131. package/src/util/epoch.ts +6 -3
  132. package/src/util/gloas.ts +58 -0
  133. package/src/util/seed.ts +57 -1
  134. package/src/util/validator.ts +21 -2
@@ -6,11 +6,14 @@ import { BlockExternalData } from "./externalData.js";
6
6
  import { processBlockHeader } from "./processBlockHeader.js";
7
7
  import { processEth1Data } from "./processEth1Data.js";
8
8
  import { processExecutionPayload } from "./processExecutionPayload.js";
9
+ import { processExecutionPayloadBid } from "./processExecutionPayloadBid.ts";
10
+ import { processExecutionPayloadEnvelope } from "./processExecutionPayloadEnvelope.ts";
11
+ import { processPayloadAttestation } from "./processPayloadAttestation.ts";
9
12
  import { processRandao } from "./processRandao.js";
10
13
  import { processSyncAggregate } from "./processSyncCommittee.js";
11
14
  import { processWithdrawals } from "./processWithdrawals.js";
12
15
  import { ProcessBlockOpts } from "./types.js";
13
- export { processBlockHeader, processExecutionPayload, processRandao, processEth1Data, processSyncAggregate, processWithdrawals, };
16
+ export { processBlockHeader, processExecutionPayload, processRandao, processEth1Data, processSyncAggregate, processWithdrawals, processExecutionPayloadBid, processPayloadAttestation, processExecutionPayloadEnvelope, };
14
17
  export * from "./externalData.js";
15
18
  export * from "./initiateValidatorExit.js";
16
19
  export * from "./isValidIndexedAttestation.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/block/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAC,WAAW,EAAE,kBAAkB,EAAkB,MAAM,iBAAiB,CAAC;AACjF,OAAO,EAAC,4BAA4B,EAAC,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAC,yBAAyB,EAAuD,MAAM,aAAa,CAAC;AAE5G,OAAO,EAAC,iBAAiB,EAAyB,MAAM,mBAAmB,CAAC;AAE5E,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAC,uBAAuB,EAAC,MAAM,8BAA8B,CAAC;AAErE,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAC,gBAAgB,EAAqB,MAAM,YAAY,CAAC;AAGhE,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,kBAAkB,GACnB,CAAC;AAEF,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AAEvC,wBAAgB,YAAY,CAC1B,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,yBAAyB,EAChC,KAAK,EAAE,WAAW,GAAG,kBAAkB,EACvC,YAAY,EAAE,iBAAiB,GAAG,gBAAgB,EAClD,IAAI,CAAC,EAAE,gBAAgB,EACvB,OAAO,CAAC,EAAE,4BAA4B,GAAG,IAAI,GAC5C,IAAI,CA0CN"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/block/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,OAAO,EAAC,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAC,WAAW,EAAE,kBAAkB,EAAkB,MAAM,iBAAiB,CAAC;AACjF,OAAO,EAAC,4BAA4B,EAAC,MAAM,eAAe,CAAC;AAC3D,OAAO,EACL,yBAAyB,EAI1B,MAAM,aAAa,CAAC;AAErB,OAAO,EAAC,iBAAiB,EAAyB,MAAM,mBAAmB,CAAC;AAE5E,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAC,uBAAuB,EAAC,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAC,0BAA0B,EAAC,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAC,+BAA+B,EAAC,MAAM,sCAAsC,CAAC;AAErF,OAAO,EAAC,yBAAyB,EAAC,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAC,gBAAgB,EAAqB,MAAM,YAAY,CAAC;AAGhE,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,0BAA0B,EAC1B,yBAAyB,EACzB,+BAA+B,GAChC,CAAC;AAEF,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AAEvC,wBAAgB,YAAY,CAC1B,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,yBAAyB,EAChC,KAAK,EAAE,WAAW,GAAG,kBAAkB,EACvC,YAAY,EAAE,iBAAiB,GAAG,gBAAgB,EAClD,IAAI,CAAC,EAAE,gBAAgB,EACvB,OAAO,CAAC,EAAE,4BAA4B,GAAG,IAAI,GAC5C,IAAI,CAoDN"}
@@ -5,13 +5,16 @@ import { processBlobKzgCommitments } from "./processBlobKzgCommitments.js";
5
5
  import { processBlockHeader } from "./processBlockHeader.js";
6
6
  import { processEth1Data } from "./processEth1Data.js";
7
7
  import { processExecutionPayload } from "./processExecutionPayload.js";
8
+ import { processExecutionPayloadBid } from "./processExecutionPayloadBid.js";
9
+ import { processExecutionPayloadEnvelope } from "./processExecutionPayloadEnvelope.js";
8
10
  import { processOperations } from "./processOperations.js";
11
+ import { processPayloadAttestation } from "./processPayloadAttestation.js";
9
12
  import { processRandao } from "./processRandao.js";
10
13
  import { processSyncAggregate } from "./processSyncCommittee.js";
11
14
  import { processWithdrawals } from "./processWithdrawals.js";
12
15
  import { ProposerRewardType } from "./types.js";
13
16
  // Spec tests
14
- export { processBlockHeader, processExecutionPayload, processRandao, processEth1Data, processSyncAggregate, processWithdrawals, };
17
+ export { processBlockHeader, processExecutionPayload, processRandao, processEth1Data, processSyncAggregate, processWithdrawals, processExecutionPayloadBid, processPayloadAttestation, processExecutionPayloadEnvelope, };
15
18
  export * from "./externalData.js";
16
19
  export * from "./initiateValidatorExit.js";
17
20
  export * from "./isValidIndexedAttestation.js";
@@ -19,17 +22,25 @@ export * from "./processOperations.js";
19
22
  export function processBlock(fork, state, block, externalData, opts, metrics) {
20
23
  const { verifySignatures = true } = opts ?? {};
21
24
  processBlockHeader(state, block);
25
+ if (fork >= ForkSeq.gloas) {
26
+ // After gloas, processWithdrawals does not take a payload parameter
27
+ processWithdrawals(fork, state);
28
+ }
29
+ else if (fork >= ForkSeq.capella) {
30
+ const fullOrBlindedPayload = getFullOrBlindedPayload(block);
31
+ processWithdrawals(fork, state, fullOrBlindedPayload);
32
+ }
22
33
  // The call to the process_execution_payload must happen before the call to the process_randao as the former depends
23
34
  // on the randao_mix computed with the reveal of the previous block.
24
- if (fork >= ForkSeq.bellatrix && isExecutionEnabled(state, block)) {
25
- const fullOrBlindedPayload = getFullOrBlindedPayload(block);
26
- // TODO Deneb: Allow to disable withdrawals for interop testing
27
- // https://github.com/ethereum/consensus-specs/blob/b62c9e877990242d63aa17a2a59a49bc649a2f2e/specs/eip4844/beacon-chain.md#disabling-withdrawals
28
- if (fork >= ForkSeq.capella) {
29
- processWithdrawals(fork, state, fullOrBlindedPayload);
30
- }
35
+ // TODO GLOAS: We call processExecutionPayload somewhere else post-gloas
36
+ if (fork >= ForkSeq.bellatrix &&
37
+ fork < ForkSeq.gloas &&
38
+ isExecutionEnabled(state, block)) {
31
39
  processExecutionPayload(fork, state, block.body, externalData);
32
40
  }
41
+ if (fork >= ForkSeq.gloas) {
42
+ processExecutionPayloadBid(state, block);
43
+ }
33
44
  processRandao(state, block, verifySignatures);
34
45
  processEth1Data(state, block.body.eth1Data);
35
46
  processOperations(fork, state, block.body, opts, metrics);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/block/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/block/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { gloas } from "@lodestar/types";
2
+ import { CachedBeaconStateGloas } from "../types.js";
3
+ export declare function isValidIndexedPayloadAttestation(state: CachedBeaconStateGloas, indexedPayloadAttestation: gloas.IndexedPayloadAttestation, verifySignature: boolean): boolean;
4
+ //# sourceMappingURL=isValidIndexedPayloadAttestation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isValidIndexedPayloadAttestation.d.ts","sourceRoot":"","sources":["../../src/block/isValidIndexedPayloadAttestation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAC,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAGnD,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,sBAAsB,EAC7B,yBAAyB,EAAE,KAAK,CAAC,yBAAyB,EAC1D,eAAe,EAAE,OAAO,GACvB,OAAO,CAaT"}
@@ -0,0 +1,14 @@
1
+ import { getIndexedPayloadAttestationSignatureSet } from "../signatureSets/index.js";
2
+ import { verifySignatureSet } from "../util/index.js";
3
+ export function isValidIndexedPayloadAttestation(state, indexedPayloadAttestation, verifySignature) {
4
+ const indices = indexedPayloadAttestation.attestingIndices;
5
+ const isSorted = indices.every((val, i, arr) => i === 0 || arr[i - 1] <= val);
6
+ if (indices.length === 0 || !isSorted) {
7
+ return false;
8
+ }
9
+ if (verifySignature) {
10
+ return verifySignatureSet(getIndexedPayloadAttestationSignatureSet(state, indexedPayloadAttestation));
11
+ }
12
+ return true;
13
+ }
14
+ //# sourceMappingURL=isValidIndexedPayloadAttestation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isValidIndexedPayloadAttestation.js","sourceRoot":"","sources":["../../src/block/isValidIndexedPayloadAttestation.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,wCAAwC,EAAC,MAAM,2BAA2B,CAAC;AAEnF,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAEpD,MAAM,UAAU,gCAAgC,CAC9C,KAA6B,EAC7B,yBAA0D,EAC1D,eAAwB;IAExB,MAAM,OAAO,GAAG,yBAAyB,CAAC,gBAAgB,CAAC;IAC3D,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;IAE9E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,kBAAkB,CAAC,wCAAwC,CAAC,KAAK,EAAE,yBAAyB,CAAC,CAAC,CAAC;IACxG,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"processAttestationPhase0.d.ts","sourceRoot":"","sources":["../../src/block/processAttestationPhase0.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAmD,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAC,WAAW,EAAE,IAAI,EAAW,MAAM,EAAM,MAAM,iBAAiB,CAAC;AAExE,OAAO,EAAC,yBAAyB,EAAE,uBAAuB,EAAC,MAAM,aAAa,CAAC;AAI/E;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,uBAAuB,EAC9B,WAAW,EAAE,MAAM,CAAC,WAAW,EAC/B,eAAe,UAAO,GACrB,IAAI,CAqCN;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,yBAAyB,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI,CAuFnH;AAGD,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAE,IAAI,GAAG,OAAO,CAM9E;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAErE"}
1
+ {"version":3,"file":"processAttestationPhase0.d.ts","sourceRoot":"","sources":["../../src/block/processAttestationPhase0.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAmD,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAC,WAAW,EAAE,IAAI,EAAW,MAAM,EAAM,MAAM,iBAAiB,CAAC;AAExE,OAAO,EAAC,yBAAyB,EAAE,uBAAuB,EAAC,MAAM,aAAa,CAAC;AAI/E;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,uBAAuB,EAC9B,WAAW,EAAE,MAAM,CAAC,WAAW,EAC/B,eAAe,UAAO,GACrB,IAAI,CAqCN;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,yBAAyB,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI,CA2FnH;AAGD,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAE,IAAI,GAAG,OAAO,CAM9E;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAErE"}
@@ -58,7 +58,12 @@ export function validateAttestation(fork, state, attestation) {
58
58
  throw new Error(`Attestation slot not within inclusion window: slot=${data.slot} window=${windowStart}..${windowEnd}`);
59
59
  }
60
60
  if (fork >= ForkSeq.electra) {
61
- assert.equal(data.index, 0, `AttestationData.index must be zero: index=${data.index}`);
61
+ if (fork >= ForkSeq.gloas) {
62
+ assert.lt(data.index, 2, `AttestationData.index must be 0 or 1: index=${data.index}`);
63
+ }
64
+ else {
65
+ assert.equal(data.index, 0, `AttestationData.index must be 0: index=${data.index}`);
66
+ }
62
67
  const attestationElectra = attestation;
63
68
  const committeeIndices = attestationElectra.committeeBits.getTrueBitIndexes();
64
69
  const lastCommitteeIndex = committeeIndices.at(-1);
@@ -1 +1 @@
1
- {"version":3,"file":"processAttestationPhase0.js","sourceRoot":"","sources":["../../src/block/processAttestationPhase0.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processAttestationPhase0.js","sourceRoot":"","sources":["../../src/block/processAttestationPhase0.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  import { ForkSeq } from "@lodestar/params";
2
2
  import { Attestation, Epoch, phase0 } from "@lodestar/types";
3
3
  import { BeaconStateTransitionMetrics } from "../metrics.js";
4
- import { CachedBeaconStateAltair } from "../types.js";
4
+ import { CachedBeaconStateAltair, CachedBeaconStateGloas } from "../types.js";
5
5
  import { RootCache } from "../util/rootCache.js";
6
- export declare function processAttestationsAltair(fork: ForkSeq, state: CachedBeaconStateAltair, attestations: Attestation[], verifySignature?: boolean, metrics?: BeaconStateTransitionMetrics | null): void;
6
+ export declare function processAttestationsAltair(fork: ForkSeq, state: CachedBeaconStateAltair | CachedBeaconStateGloas, attestations: Attestation[], verifySignature?: boolean, metrics?: BeaconStateTransitionMetrics | null): void;
7
7
  /**
8
8
  * https://github.com/ethereum/consensus-specs/blob/v1.1.10/specs/altair/beacon-chain.md#get_attestation_participation_flag_indices
9
9
  */
10
- export declare function getAttestationParticipationStatus(fork: ForkSeq, data: phase0.AttestationData, inclusionDelay: number, currentEpoch: Epoch, rootCache: RootCache): number;
10
+ export declare function getAttestationParticipationStatus(fork: ForkSeq, data: phase0.AttestationData, inclusionDelay: number, currentEpoch: Epoch, rootCache: RootCache, executionPayloadAvailability: boolean[] | null): number;
11
11
  export declare function checkpointValueEquals(cp1: phase0.Checkpoint, cp2: phase0.Checkpoint): boolean;
12
12
  //# sourceMappingURL=processAttestationsAltair.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"processAttestationsAltair.d.ts","sourceRoot":"","sources":["../../src/block/processAttestationsAltair.ts"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,EAWR,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAC,WAAW,EAAE,KAAK,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EAAC,4BAA4B,EAAC,MAAM,eAAe,CAAC;AAE3D,OAAO,EAAC,uBAAuB,EAAC,MAAM,aAAa,CAAC;AAEpD,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAC;AAW/C,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,uBAAuB,EAC9B,YAAY,EAAE,WAAW,EAAE,EAC3B,eAAe,UAAO,EACtB,OAAO,CAAC,EAAE,4BAA4B,GAAG,IAAI,GAC5C,IAAI,CAoGN;AAED;;GAEG;AACH,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,MAAM,CAAC,eAAe,EAC5B,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,KAAK,EACnB,SAAS,EAAE,SAAS,GACnB,MAAM,CA+BR;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO,CAE7F"}
1
+ {"version":3,"file":"processAttestationsAltair.d.ts","sourceRoot":"","sources":["../../src/block/processAttestationsAltair.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,OAAO,EAYR,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAC,WAAW,EAAE,KAAK,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EAAC,4BAA4B,EAAC,MAAM,eAAe,CAAC;AAE3D,OAAO,EAAC,uBAAuB,EAAE,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAG5E,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAC;AAW/C,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,uBAAuB,GAAG,sBAAsB,EACvD,YAAY,EAAE,WAAW,EAAE,EAC3B,eAAe,UAAO,EACtB,OAAO,CAAC,EAAE,4BAA4B,GAAG,IAAI,GAC5C,IAAI,CAiIN;AAED;;GAEG;AACH,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,MAAM,CAAC,eAAe,EAC5B,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,KAAK,EACnB,SAAS,EAAE,SAAS,EACpB,4BAA4B,EAAE,OAAO,EAAE,GAAG,IAAI,GAC7C,MAAM,CAuDR;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO,CAE7F"}
@@ -1,7 +1,8 @@
1
1
  import { byteArrayEquals } from "@chainsafe/ssz";
2
- import { MIN_ATTESTATION_INCLUSION_DELAY, PROPOSER_WEIGHT, SLOTS_PER_EPOCH, TIMELY_HEAD_FLAG_INDEX, TIMELY_HEAD_WEIGHT, TIMELY_SOURCE_FLAG_INDEX, TIMELY_SOURCE_WEIGHT, TIMELY_TARGET_FLAG_INDEX, TIMELY_TARGET_WEIGHT, WEIGHT_DENOMINATOR, } from "@lodestar/params";
2
+ import { EFFECTIVE_BALANCE_INCREMENT, ForkSeq, MIN_ATTESTATION_INCLUSION_DELAY, PROPOSER_WEIGHT, SLOTS_PER_EPOCH, SLOTS_PER_HISTORICAL_ROOT, TIMELY_HEAD_FLAG_INDEX, TIMELY_HEAD_WEIGHT, TIMELY_SOURCE_FLAG_INDEX, TIMELY_SOURCE_WEIGHT, TIMELY_TARGET_FLAG_INDEX, TIMELY_TARGET_WEIGHT, WEIGHT_DENOMINATOR, } from "@lodestar/params";
3
3
  import { intSqrt } from "@lodestar/utils";
4
4
  import { getAttestationWithIndicesSignatureSet } from "../signatureSets/indexedAttestation.js";
5
+ import { isAttestationSameSlot, isAttestationSameSlotRootCache } from "../util/gloas.js";
5
6
  import { increaseBalance, verifySignatureSet } from "../util/index.js";
6
7
  import { RootCache } from "../util/rootCache.js";
7
8
  import { checkpointToStr, isTimelyTarget, validateAttestation } from "./processAttestationPhase0.js";
@@ -21,6 +22,7 @@ export function processAttestationsAltair(fork, state, attestations, verifySigna
21
22
  let proposerReward = 0;
22
23
  let newSeenAttesters = 0;
23
24
  let newSeenAttestersEffectiveBalance = 0;
25
+ const builderWeightMap = new Map();
24
26
  for (const attestation of attestations) {
25
27
  const data = attestation.data;
26
28
  validateAttestation(fork, state, attestation);
@@ -37,7 +39,9 @@ export function processAttestationsAltair(fork, state, attestations, verifySigna
37
39
  }
38
40
  const inCurrentEpoch = data.target.epoch === currentEpoch;
39
41
  const epochParticipation = inCurrentEpoch ? state.currentEpochParticipation : state.previousEpochParticipation;
40
- const flagsAttestation = getAttestationParticipationStatus(fork, data, stateSlot - data.slot, epochCtx.epoch, rootCache);
42
+ // Count how much additional weight added to current or previous epoch's builder pending payment (in ETH increment)
43
+ let paymentWeightToAdd = 0;
44
+ const flagsAttestation = getAttestationParticipationStatus(fork, data, stateSlot - data.slot, epochCtx.epoch, rootCache, fork >= ForkSeq.gloas ? state.executionPayloadAvailability.toBoolArray() : null);
41
45
  // For each participant, update their participation
42
46
  // In epoch processing, this participation info is used to calculate balance updates
43
47
  let totalBalanceIncrementsWithWeight = 0;
@@ -82,11 +86,29 @@ export function processAttestationsAltair(fork, state, attestations, verifySigna
82
86
  }
83
87
  }
84
88
  }
89
+ if (fork >= ForkSeq.gloas && flagsNewSet !== 0 && isAttestationSameSlot(state, data)) {
90
+ paymentWeightToAdd += effectiveBalanceIncrements[validatorIndex];
91
+ }
85
92
  }
86
93
  // Do the discrete math inside the loop to ensure a deterministic result
87
94
  const totalIncrements = totalBalanceIncrementsWithWeight;
88
95
  const proposerRewardNumerator = totalIncrements * state.epochCtx.baseRewardPerIncrement;
89
96
  proposerReward += Math.floor(proposerRewardNumerator / PROPOSER_REWARD_DOMINATOR);
97
+ if (fork >= ForkSeq.gloas) {
98
+ const builderPendingPaymentIndex = inCurrentEpoch
99
+ ? SLOTS_PER_EPOCH + (data.slot % SLOTS_PER_EPOCH)
100
+ : data.slot % SLOTS_PER_EPOCH;
101
+ const existingWeight = builderWeightMap.get(builderPendingPaymentIndex) ??
102
+ state.builderPendingPayments.get(builderPendingPaymentIndex).weight;
103
+ const updatedWeight = existingWeight + paymentWeightToAdd * EFFECTIVE_BALANCE_INCREMENT;
104
+ builderWeightMap.set(builderPendingPaymentIndex, updatedWeight);
105
+ }
106
+ }
107
+ for (const [index, weight] of builderWeightMap) {
108
+ const payment = state.builderPendingPayments.get(index);
109
+ if (payment.withdrawal.amount > 0) {
110
+ payment.weight = weight;
111
+ }
90
112
  }
91
113
  metrics?.newSeenAttestersPerBlock.set(newSeenAttesters);
92
114
  metrics?.newSeenAttestersEffectiveBalancePerBlock.set(newSeenAttestersEffectiveBalance);
@@ -97,7 +119,7 @@ export function processAttestationsAltair(fork, state, attestations, verifySigna
97
119
  /**
98
120
  * https://github.com/ethereum/consensus-specs/blob/v1.1.10/specs/altair/beacon-chain.md#get_attestation_participation_flag_indices
99
121
  */
100
- export function getAttestationParticipationStatus(fork, data, inclusionDelay, currentEpoch, rootCache) {
122
+ export function getAttestationParticipationStatus(fork, data, inclusionDelay, currentEpoch, rootCache, executionPayloadAvailability) {
101
123
  const justifiedCheckpoint = data.target.epoch === currentEpoch ? rootCache.currentJustifiedCheckpoint : rootCache.previousJustifiedCheckpoint;
102
124
  // The source and target votes are part of the FFG vote, the head vote is part of the fork choice vote
103
125
  // Both are tracked to properly incentivise validators
@@ -111,7 +133,27 @@ export function getAttestationParticipationStatus(fork, data, inclusionDelay, cu
111
133
  }
112
134
  const isMatchingTarget = byteArrayEquals(data.target.root, rootCache.getBlockRoot(data.target.epoch));
113
135
  // a timely head is only be set if the target is _also_ matching
114
- const isMatchingHead = isMatchingTarget && byteArrayEquals(data.beaconBlockRoot, rootCache.getBlockRootAtSlot(data.slot));
136
+ // In gloas, this is called `head_root_matches`
137
+ let isMatchingHead = isMatchingTarget && byteArrayEquals(data.beaconBlockRoot, rootCache.getBlockRootAtSlot(data.slot));
138
+ if (fork >= ForkSeq.gloas) {
139
+ let isMatchingPayload = false;
140
+ if (isAttestationSameSlotRootCache(rootCache, data)) {
141
+ if (data.index !== 0) {
142
+ throw new Error("Attesting same slot must indicate empty payload");
143
+ }
144
+ isMatchingPayload = true;
145
+ }
146
+ else {
147
+ if (executionPayloadAvailability === null) {
148
+ throw new Error("Must supply executionPayloadAvailability post-gloas");
149
+ }
150
+ if (data.index !== 0 && data.index !== 1) {
151
+ throw new Error(`data index must be 0 or 1 index=${data.index}`);
152
+ }
153
+ isMatchingPayload = Boolean(data.index) === executionPayloadAvailability[data.slot % SLOTS_PER_HISTORICAL_ROOT];
154
+ }
155
+ isMatchingHead = isMatchingHead && isMatchingPayload;
156
+ }
115
157
  let flags = 0;
116
158
  if (isMatchingSource && inclusionDelay <= SLOTS_PER_EPOCH_SQRT)
117
159
  flags |= TIMELY_SOURCE;
@@ -1 +1 @@
1
- {"version":3,"file":"processAttestationsAltair.js","sourceRoot":"","sources":["../../src/block/processAttestationsAltair.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processAttestationsAltair.js","sourceRoot":"","sources":["../../src/block/processAttestationsAltair.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
+ import { ForkSeq } from "@lodestar/params";
1
2
  import { electra } from "@lodestar/types";
2
- import { CachedBeaconStateElectra } from "../types.js";
3
- export declare function processConsolidationRequest(state: CachedBeaconStateElectra, consolidationRequest: electra.ConsolidationRequest): void;
3
+ import { CachedBeaconStateElectra, CachedBeaconStateGloas } from "../types.js";
4
+ export declare function processConsolidationRequest(fork: ForkSeq, state: CachedBeaconStateElectra | CachedBeaconStateGloas, consolidationRequest: electra.ConsolidationRequest): void;
4
5
  //# sourceMappingURL=processConsolidationRequest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"processConsolidationRequest.d.ts","sourceRoot":"","sources":["../../src/block/processConsolidationRequest.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAM,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAC,wBAAwB,EAAC,MAAM,aAAa,CAAC;AAYrD,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,wBAAwB,EAC/B,oBAAoB,EAAE,OAAO,CAAC,oBAAoB,GACjD,IAAI,CAkFN"}
1
+ {"version":3,"file":"processConsolidationRequest.d.ts","sourceRoot":"","sources":["../../src/block/processConsolidationRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,OAAO,EAAuD,MAAM,kBAAkB,CAAC;AACjH,OAAO,EAAC,OAAO,EAAM,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAC,wBAAwB,EAAE,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAY7E,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,wBAAwB,GAAG,sBAAsB,EACxD,oBAAoB,EAAE,OAAO,CAAC,oBAAoB,GACjD,IAAI,CAkFN"}
@@ -5,7 +5,7 @@ import { hasCompoundingWithdrawalCredential, hasExecutionWithdrawalCredential, i
5
5
  import { computeConsolidationEpochAndUpdateChurn } from "../util/epoch.js";
6
6
  import { getConsolidationChurnLimit, getPendingBalanceToWithdraw, isActiveValidator } from "../util/validator.js";
7
7
  // TODO Electra: Clean up necessary as there is a lot of overlap with isValidSwitchToCompoundRequest
8
- export function processConsolidationRequest(state, consolidationRequest) {
8
+ export function processConsolidationRequest(fork, state, consolidationRequest) {
9
9
  const { sourcePubkey, targetPubkey, sourceAddress } = consolidationRequest;
10
10
  if (!isPubkeyKnown(state, sourcePubkey) || !isPubkeyKnown(state, targetPubkey)) {
11
11
  return;
@@ -59,7 +59,7 @@ export function processConsolidationRequest(state, consolidationRequest) {
59
59
  return;
60
60
  }
61
61
  // Verify the source has no pending withdrawals in the queue
62
- if (getPendingBalanceToWithdraw(state, sourceIndex) > 0) {
62
+ if (getPendingBalanceToWithdraw(fork, state, sourceIndex) > 0) {
63
63
  return;
64
64
  }
65
65
  // Initiate source validator exit and append pending consolidation
@@ -1 +1 @@
1
- {"version":3,"file":"processConsolidationRequest.js","sourceRoot":"","sources":["../../src/block/processConsolidationRequest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processConsolidationRequest.js","sourceRoot":"","sources":["../../src/block/processConsolidationRequest.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import { electra } from "@lodestar/types";
2
- import { CachedBeaconStateElectra } from "../types.js";
3
- export declare function processDepositRequest(state: CachedBeaconStateElectra, depositRequest: electra.DepositRequest): void;
2
+ import { CachedBeaconStateElectra, CachedBeaconStateGloas } from "../types.js";
3
+ export declare function processDepositRequest(state: CachedBeaconStateElectra | CachedBeaconStateGloas, depositRequest: electra.DepositRequest): void;
4
4
  //# sourceMappingURL=processDepositRequest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"processDepositRequest.d.ts","sourceRoot":"","sources":["../../src/block/processDepositRequest.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAM,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAC,wBAAwB,EAAC,MAAM,aAAa,CAAC;AAErD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,wBAAwB,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,GAAG,IAAI,CAcnH"}
1
+ {"version":3,"file":"processDepositRequest.d.ts","sourceRoot":"","sources":["../../src/block/processDepositRequest.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAM,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAC,wBAAwB,EAAE,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAE7E,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,wBAAwB,GAAG,sBAAsB,EACxD,cAAc,EAAE,OAAO,CAAC,cAAc,GACrC,IAAI,CAcN"}
@@ -1 +1 @@
1
- {"version":3,"file":"processDepositRequest.js","sourceRoot":"","sources":["../../src/block/processDepositRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kCAAkC,EAAC,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAU,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAG7C,MAAM,UAAU,qBAAqB,CAAC,KAA+B,EAAE,cAAsC;IAC3G,IAAI,KAAK,CAAC,yBAAyB,KAAK,kCAAkC,EAAE,CAAC;QAC3E,KAAK,CAAC,yBAAyB,GAAG,cAAc,CAAC,KAAK,CAAC;IACzD,CAAC;IAED,yBAAyB;IACzB,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC;QACzD,MAAM,EAAE,cAAc,CAAC,MAAM;QAC7B,qBAAqB,EAAE,cAAc,CAAC,qBAAqB;QAC3D,MAAM,EAAE,cAAc,CAAC,MAAM;QAC7B,SAAS,EAAE,cAAc,CAAC,SAAS;QACnC,IAAI,EAAE,KAAK,CAAC,IAAI;KACjB,CAAC,CAAC;IACH,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"processDepositRequest.js","sourceRoot":"","sources":["../../src/block/processDepositRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kCAAkC,EAAC,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAU,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAG7C,MAAM,UAAU,qBAAqB,CACnC,KAAwD,EACxD,cAAsC;IAEtC,IAAI,KAAK,CAAC,yBAAyB,KAAK,kCAAkC,EAAE,CAAC;QAC3E,KAAK,CAAC,yBAAyB,GAAG,cAAc,CAAC,KAAK,CAAC;IACzD,CAAC;IAED,yBAAyB;IACzB,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC;QACzD,MAAM,EAAE,cAAc,CAAC,MAAM;QAC7B,qBAAqB,EAAE,cAAc,CAAC,qBAAqB;QAC3D,MAAM,EAAE,cAAc,CAAC,MAAM;QAC7B,SAAS,EAAE,cAAc,CAAC,SAAS;QACnC,IAAI,EAAE,KAAK,CAAC,IAAI;KACjB,CAAC,CAAC;IACH,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { ForkPostGloas } from "@lodestar/params";
2
+ import { BeaconBlock } from "@lodestar/types";
3
+ import { CachedBeaconStateGloas } from "../types.ts";
4
+ export declare function processExecutionPayloadBid(state: CachedBeaconStateGloas, block: BeaconBlock<ForkPostGloas>): void;
5
+ //# sourceMappingURL=processExecutionPayloadBid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processExecutionPayloadBid.d.ts","sourceRoot":"","sources":["../../src/block/processExecutionPayloadBid.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,aAAa,EAGd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAC,WAAW,EAAa,MAAM,iBAAiB,CAAC;AAGxD,OAAO,EAAC,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAInD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,WAAW,CAAC,aAAa,CAAC,GAAG,IAAI,CAqFjH"}
@@ -0,0 +1,89 @@
1
+ import { PublicKey, Signature, verify } from "@chainsafe/blst";
2
+ import { byteArrayEquals } from "@chainsafe/ssz";
3
+ import { DOMAIN_BEACON_BUILDER, FAR_FUTURE_EPOCH, MIN_ACTIVATION_BALANCE, SLOTS_PER_EPOCH, } from "@lodestar/params";
4
+ import { ssz } from "@lodestar/types";
5
+ import { toHex, toRootHex } from "@lodestar/utils";
6
+ import { G2_POINT_AT_INFINITY } from "../constants/constants.js";
7
+ import { hasBuilderWithdrawalCredential } from "../util/gloas.js";
8
+ import { computeSigningRoot, getCurrentEpoch, getRandaoMix, isActiveValidator } from "../util/index.js";
9
+ export function processExecutionPayloadBid(state, block) {
10
+ const signedBid = block.body.signedExecutionPayloadBid;
11
+ const bid = signedBid.message;
12
+ const { builderIndex, value: amount } = bid;
13
+ const builder = state.validators.getReadonly(builderIndex);
14
+ // For self-builds, amount must be zero regardless of withdrawal credential prefix
15
+ if (builderIndex === block.proposerIndex) {
16
+ if (amount !== 0) {
17
+ throw Error(`Invalid execution payload bid: self-build with non-zero amount ${amount}`);
18
+ }
19
+ if (!byteArrayEquals(signedBid.signature, G2_POINT_AT_INFINITY)) {
20
+ throw Error("Invalid execution payload bid: self-build with non-zero signature");
21
+ }
22
+ // Non-self builds require builder withdrawal credential
23
+ }
24
+ else {
25
+ if (!hasBuilderWithdrawalCredential(builder.withdrawalCredentials)) {
26
+ throw Error(`Invalid execution payload bid: builder ${builderIndex} does not have builder withdrawal credential`);
27
+ }
28
+ if (!verifyExecutionPayloadBidSignature(state, builder.pubkey, signedBid)) {
29
+ throw Error(`Invalid execution payload bid: invalid signature for builder ${builderIndex}`);
30
+ }
31
+ }
32
+ if (!isActiveValidator(builder, getCurrentEpoch(state))) {
33
+ throw Error(`Invalid execution payload bid: builder ${builderIndex} is not active`);
34
+ }
35
+ if (builder.slashed) {
36
+ throw Error(`Invalid execution payload bid: builder ${builderIndex} is slashed`);
37
+ }
38
+ const pendingPayments = state.builderPendingPayments
39
+ .getAllReadonly()
40
+ .filter((payment) => payment.withdrawal.builderIndex === builderIndex)
41
+ .reduce((acc, payment) => acc + payment.withdrawal.amount, 0);
42
+ const pendingWithdrawals = state.builderPendingWithdrawals
43
+ .getAllReadonly()
44
+ .filter((withdrawal) => withdrawal.builderIndex === builderIndex)
45
+ .reduce((acc, withdrawal) => acc + withdrawal.amount, 0);
46
+ if (amount !== 0 &&
47
+ state.balances.get(builderIndex) < amount + pendingPayments + pendingWithdrawals + MIN_ACTIVATION_BALANCE) {
48
+ throw Error("Insufficient builder balance");
49
+ }
50
+ if (bid.slot !== block.slot) {
51
+ throw Error(`Bid slot ${bid.slot} does not match block slot ${block.slot}`);
52
+ }
53
+ if (!byteArrayEquals(bid.parentBlockHash, state.latestBlockHash)) {
54
+ throw Error(`Parent block hash ${toRootHex(bid.parentBlockHash)} of bid does not match state's latest block hash ${toRootHex(state.latestBlockHash)}`);
55
+ }
56
+ if (!byteArrayEquals(bid.parentBlockRoot, block.parentRoot)) {
57
+ throw Error(`Parent block root ${toRootHex(bid.parentBlockRoot)} of bid does not match block's parent root ${toRootHex(block.parentRoot)}`);
58
+ }
59
+ const stateRandao = getRandaoMix(state, getCurrentEpoch(state));
60
+ if (!byteArrayEquals(bid.prevRandao, stateRandao)) {
61
+ throw Error(`Prev randao ${toHex(bid.prevRandao)} of bid does not match state's randao mix ${toHex(stateRandao)}`);
62
+ }
63
+ if (amount > 0) {
64
+ const pendingPaymentView = ssz.gloas.BuilderPendingPayment.toViewDU({
65
+ weight: 0,
66
+ withdrawal: ssz.gloas.BuilderPendingWithdrawal.toViewDU({
67
+ feeRecipient: bid.feeRecipient,
68
+ amount,
69
+ builderIndex,
70
+ withdrawableEpoch: FAR_FUTURE_EPOCH,
71
+ }),
72
+ });
73
+ state.builderPendingPayments.set(SLOTS_PER_EPOCH + (bid.slot % SLOTS_PER_EPOCH), pendingPaymentView);
74
+ }
75
+ state.latestExecutionPayloadBid = ssz.gloas.ExecutionPayloadBid.toViewDU(bid);
76
+ }
77
+ function verifyExecutionPayloadBidSignature(state, pubkey, signedBid) {
78
+ const domain = state.config.getDomain(state.slot, DOMAIN_BEACON_BUILDER);
79
+ const signingRoot = computeSigningRoot(ssz.gloas.ExecutionPayloadBid, signedBid.message, domain);
80
+ try {
81
+ const publicKey = PublicKey.fromBytes(pubkey);
82
+ const signature = Signature.fromBytes(signedBid.signature, true);
83
+ return verify(signingRoot, publicKey, signature);
84
+ }
85
+ catch (_e) {
86
+ return false; // Catch all BLS errors: failed key validation, failed signature validation, invalid signature
87
+ }
88
+ }
89
+ //# sourceMappingURL=processExecutionPayloadBid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processExecutionPayloadBid.js","sourceRoot":"","sources":["../../src/block/processExecutionPayloadBid.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { gloas } from "@lodestar/types";
2
+ import { CachedBeaconStateGloas } from "../types.ts";
3
+ export declare function processExecutionPayloadEnvelope(state: CachedBeaconStateGloas, signedEnvelope: gloas.SignedExecutionPayloadEnvelope, verify: boolean): void;
4
+ //# sourceMappingURL=processExecutionPayloadEnvelope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processExecutionPayloadEnvelope.d.ts","sourceRoot":"","sources":["../../src/block/processExecutionPayloadEnvelope.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,KAAK,EAAM,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAC,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAOnD,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,sBAAsB,EAC7B,cAAc,EAAE,KAAK,CAAC,8BAA8B,EACpD,MAAM,EAAE,OAAO,GACd,IAAI,CAqDN"}