@lodestar/state-transition 1.40.0-dev.3be9500fa9 → 1.40.0-dev.45b04262dc

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 (183) hide show
  1. package/lib/block/index.d.ts +1 -0
  2. package/lib/block/index.d.ts.map +1 -1
  3. package/lib/block/index.js +1 -0
  4. package/lib/block/index.js.map +1 -1
  5. package/lib/block/isValidIndexedAttestation.d.ts.map +1 -1
  6. package/lib/block/isValidIndexedAttestation.js +2 -2
  7. package/lib/block/isValidIndexedAttestation.js.map +1 -1
  8. package/lib/block/isValidIndexedPayloadAttestation.d.ts.map +1 -1
  9. package/lib/block/isValidIndexedPayloadAttestation.js +1 -1
  10. package/lib/block/isValidIndexedPayloadAttestation.js.map +1 -1
  11. package/lib/block/processAttestationsAltair.d.ts.map +1 -1
  12. package/lib/block/processAttestationsAltair.js +3 -4
  13. package/lib/block/processAttestationsAltair.js.map +1 -1
  14. package/lib/block/processBlockHeader.d.ts.map +1 -1
  15. package/lib/block/processBlockHeader.js +1 -2
  16. package/lib/block/processBlockHeader.js.map +1 -1
  17. package/lib/block/processBlsToExecutionChange.d.ts.map +1 -1
  18. package/lib/block/processBlsToExecutionChange.js +1 -2
  19. package/lib/block/processBlsToExecutionChange.js.map +1 -1
  20. package/lib/block/processConsolidationRequest.d.ts +1 -2
  21. package/lib/block/processConsolidationRequest.d.ts.map +1 -1
  22. package/lib/block/processConsolidationRequest.js +5 -4
  23. package/lib/block/processConsolidationRequest.js.map +1 -1
  24. package/lib/block/processDepositRequest.d.ts +8 -2
  25. package/lib/block/processDepositRequest.d.ts.map +1 -1
  26. package/lib/block/processDepositRequest.js +81 -8
  27. package/lib/block/processDepositRequest.js.map +1 -1
  28. package/lib/block/processExecutionPayload.d.ts.map +1 -1
  29. package/lib/block/processExecutionPayload.js +1 -2
  30. package/lib/block/processExecutionPayload.js.map +1 -1
  31. package/lib/block/processExecutionPayloadBid.d.ts.map +1 -1
  32. package/lib/block/processExecutionPayloadBid.js +17 -31
  33. package/lib/block/processExecutionPayloadBid.js.map +1 -1
  34. package/lib/block/processExecutionPayloadEnvelope.d.ts.map +1 -1
  35. package/lib/block/processExecutionPayloadEnvelope.js +27 -27
  36. package/lib/block/processExecutionPayloadEnvelope.js.map +1 -1
  37. package/lib/block/processOperations.js +2 -2
  38. package/lib/block/processOperations.js.map +1 -1
  39. package/lib/block/processPayloadAttestation.d.ts.map +1 -1
  40. package/lib/block/processPayloadAttestation.js +1 -1
  41. package/lib/block/processPayloadAttestation.js.map +1 -1
  42. package/lib/block/processProposerSlashing.js +2 -2
  43. package/lib/block/processProposerSlashing.js.map +1 -1
  44. package/lib/block/processSyncCommittee.d.ts +1 -2
  45. package/lib/block/processSyncCommittee.d.ts.map +1 -1
  46. package/lib/block/processSyncCommittee.js +6 -6
  47. package/lib/block/processSyncCommittee.js.map +1 -1
  48. package/lib/block/processVoluntaryExit.d.ts +1 -1
  49. package/lib/block/processVoluntaryExit.d.ts.map +1 -1
  50. package/lib/block/processVoluntaryExit.js +45 -3
  51. package/lib/block/processVoluntaryExit.js.map +1 -1
  52. package/lib/block/processWithdrawalRequest.js +1 -1
  53. package/lib/block/processWithdrawalRequest.js.map +1 -1
  54. package/lib/block/processWithdrawals.d.ts +1 -0
  55. package/lib/block/processWithdrawals.d.ts.map +1 -1
  56. package/lib/block/processWithdrawals.js +122 -68
  57. package/lib/block/processWithdrawals.js.map +1 -1
  58. package/lib/epoch/processBuilderPendingPayments.d.ts.map +1 -1
  59. package/lib/epoch/processBuilderPendingPayments.js +1 -4
  60. package/lib/epoch/processBuilderPendingPayments.js.map +1 -1
  61. package/lib/epoch/processPendingAttestations.d.ts.map +1 -1
  62. package/lib/epoch/processPendingAttestations.js +1 -1
  63. package/lib/epoch/processPendingAttestations.js.map +1 -1
  64. package/lib/signatureSets/attesterSlashings.d.ts +3 -4
  65. package/lib/signatureSets/attesterSlashings.d.ts.map +1 -1
  66. package/lib/signatureSets/attesterSlashings.js +6 -6
  67. package/lib/signatureSets/attesterSlashings.js.map +1 -1
  68. package/lib/signatureSets/blsToExecutionChange.d.ts +3 -3
  69. package/lib/signatureSets/blsToExecutionChange.d.ts.map +1 -1
  70. package/lib/signatureSets/blsToExecutionChange.js.map +1 -1
  71. package/lib/signatureSets/executionPayloadBid.d.ts +4 -0
  72. package/lib/signatureSets/executionPayloadBid.d.ts.map +1 -0
  73. package/lib/signatureSets/executionPayloadBid.js +8 -0
  74. package/lib/signatureSets/executionPayloadBid.js.map +1 -0
  75. package/lib/signatureSets/executionPayloadEnvelope.d.ts +4 -0
  76. package/lib/signatureSets/executionPayloadEnvelope.d.ts.map +1 -0
  77. package/lib/signatureSets/executionPayloadEnvelope.js +8 -0
  78. package/lib/signatureSets/executionPayloadEnvelope.js.map +1 -0
  79. package/lib/signatureSets/index.d.ts +3 -2
  80. package/lib/signatureSets/index.d.ts.map +1 -1
  81. package/lib/signatureSets/index.js +10 -8
  82. package/lib/signatureSets/index.js.map +1 -1
  83. package/lib/signatureSets/indexedAttestation.d.ts +3 -4
  84. package/lib/signatureSets/indexedAttestation.d.ts.map +1 -1
  85. package/lib/signatureSets/indexedAttestation.js +6 -6
  86. package/lib/signatureSets/indexedAttestation.js.map +1 -1
  87. package/lib/signatureSets/indexedPayloadAttestation.d.ts +5 -4
  88. package/lib/signatureSets/indexedPayloadAttestation.d.ts.map +1 -1
  89. package/lib/signatureSets/indexedPayloadAttestation.js +3 -3
  90. package/lib/signatureSets/indexedPayloadAttestation.js.map +1 -1
  91. package/lib/signatureSets/proposer.d.ts +3 -3
  92. package/lib/signatureSets/proposer.d.ts.map +1 -1
  93. package/lib/signatureSets/proposer.js +12 -12
  94. package/lib/signatureSets/proposer.js.map +1 -1
  95. package/lib/signatureSets/proposerSlashings.d.ts +2 -3
  96. package/lib/signatureSets/proposerSlashings.d.ts.map +1 -1
  97. package/lib/signatureSets/proposerSlashings.js +6 -6
  98. package/lib/signatureSets/proposerSlashings.js.map +1 -1
  99. package/lib/signatureSets/randao.d.ts +1 -1
  100. package/lib/signatureSets/randao.d.ts.map +1 -1
  101. package/lib/signatureSets/randao.js +4 -4
  102. package/lib/signatureSets/randao.js.map +1 -1
  103. package/lib/signatureSets/voluntaryExits.d.ts +2 -2
  104. package/lib/signatureSets/voluntaryExits.d.ts.map +1 -1
  105. package/lib/signatureSets/voluntaryExits.js +6 -6
  106. package/lib/signatureSets/voluntaryExits.js.map +1 -1
  107. package/lib/slot/index.d.ts.map +1 -1
  108. package/lib/slot/index.js +1 -1
  109. package/lib/slot/index.js.map +1 -1
  110. package/lib/util/electra.d.ts.map +1 -1
  111. package/lib/util/electra.js +1 -2
  112. package/lib/util/electra.js.map +1 -1
  113. package/lib/util/gloas.d.ts +46 -5
  114. package/lib/util/gloas.d.ts.map +1 -1
  115. package/lib/util/gloas.js +92 -6
  116. package/lib/util/gloas.js.map +1 -1
  117. package/lib/util/index.d.ts +1 -0
  118. package/lib/util/index.d.ts.map +1 -1
  119. package/lib/util/index.js +1 -0
  120. package/lib/util/index.js.map +1 -1
  121. package/lib/util/interop.js +1 -1
  122. package/lib/util/interop.js.map +1 -1
  123. package/lib/util/loadState/findModifiedInactivityScores.d.ts +1 -1
  124. package/lib/util/loadState/findModifiedInactivityScores.d.ts.map +1 -1
  125. package/lib/util/loadState/findModifiedInactivityScores.js +3 -2
  126. package/lib/util/loadState/findModifiedInactivityScores.js.map +1 -1
  127. package/lib/util/loadState/findModifiedValidators.d.ts +2 -2
  128. package/lib/util/loadState/findModifiedValidators.d.ts.map +1 -1
  129. package/lib/util/loadState/findModifiedValidators.js +4 -3
  130. package/lib/util/loadState/findModifiedValidators.js.map +1 -1
  131. package/lib/util/loadState/loadValidator.d.ts.map +1 -1
  132. package/lib/util/loadState/loadValidator.js +3 -2
  133. package/lib/util/loadState/loadValidator.js.map +1 -1
  134. package/lib/util/signatureSets.d.ts +38 -5
  135. package/lib/util/signatureSets.d.ts.map +1 -1
  136. package/lib/util/signatureSets.js +48 -6
  137. package/lib/util/signatureSets.js.map +1 -1
  138. package/lib/util/validator.d.ts +6 -1
  139. package/lib/util/validator.d.ts.map +1 -1
  140. package/lib/util/validator.js +26 -16
  141. package/lib/util/validator.js.map +1 -1
  142. package/package.json +8 -8
  143. package/src/block/index.ts +1 -0
  144. package/src/block/isValidIndexedAttestation.ts +3 -2
  145. package/src/block/isValidIndexedPayloadAttestation.ts +4 -1
  146. package/src/block/processAttestationsAltair.ts +3 -10
  147. package/src/block/processBlockHeader.ts +1 -2
  148. package/src/block/processBlsToExecutionChange.ts +1 -2
  149. package/src/block/processConsolidationRequest.ts +5 -5
  150. package/src/block/processDepositRequest.ts +101 -8
  151. package/src/block/processExecutionPayload.ts +1 -2
  152. package/src/block/processExecutionPayloadBid.ts +21 -44
  153. package/src/block/processExecutionPayloadEnvelope.ts +35 -32
  154. package/src/block/processOperations.ts +2 -2
  155. package/src/block/processPayloadAttestation.ts +1 -1
  156. package/src/block/processProposerSlashing.ts +2 -2
  157. package/src/block/processSyncCommittee.ts +4 -7
  158. package/src/block/processVoluntaryExit.ts +60 -5
  159. package/src/block/processWithdrawalRequest.ts +1 -1
  160. package/src/block/processWithdrawals.ts +169 -72
  161. package/src/epoch/processBuilderPendingPayments.ts +1 -5
  162. package/src/epoch/processPendingAttestations.ts +1 -1
  163. package/src/signatureSets/attesterSlashings.ts +3 -7
  164. package/src/signatureSets/blsToExecutionChange.ts +3 -3
  165. package/src/signatureSets/executionPayloadBid.ts +14 -0
  166. package/src/signatureSets/executionPayloadEnvelope.ts +13 -0
  167. package/src/signatureSets/index.ts +8 -9
  168. package/src/signatureSets/indexedAttestation.ts +2 -7
  169. package/src/signatureSets/indexedPayloadAttestation.ts +9 -7
  170. package/src/signatureSets/proposer.ts +8 -12
  171. package/src/signatureSets/proposerSlashings.ts +4 -7
  172. package/src/signatureSets/randao.ts +4 -8
  173. package/src/signatureSets/voluntaryExits.ts +5 -10
  174. package/src/slot/index.ts +1 -1
  175. package/src/util/electra.ts +1 -4
  176. package/src/util/gloas.ts +117 -11
  177. package/src/util/index.ts +1 -0
  178. package/src/util/interop.ts +1 -1
  179. package/src/util/loadState/findModifiedInactivityScores.ts +4 -2
  180. package/src/util/loadState/findModifiedValidators.ts +4 -3
  181. package/src/util/loadState/loadValidator.ts +3 -2
  182. package/src/util/signatureSets.ts +84 -8
  183. package/src/util/validator.ts +31 -16
@@ -1,9 +1,8 @@
1
- import { byteArrayEquals } from "@chainsafe/ssz";
2
- import { FAR_FUTURE_EPOCH, ForkSeq, MAX_EFFECTIVE_BALANCE, MAX_PENDING_PARTIALS_PER_WITHDRAWALS_SWEEP, MAX_VALIDATORS_PER_WITHDRAWALS_SWEEP, MAX_WITHDRAWALS_PER_PAYLOAD, MIN_ACTIVATION_BALANCE, } from "@lodestar/params";
1
+ import { FAR_FUTURE_EPOCH, ForkSeq, MAX_BUILDERS_PER_WITHDRAWALS_SWEEP, MAX_EFFECTIVE_BALANCE, MAX_PENDING_PARTIALS_PER_WITHDRAWALS_SWEEP, MAX_VALIDATORS_PER_WITHDRAWALS_SWEEP, MAX_WITHDRAWALS_PER_PAYLOAD, MIN_ACTIVATION_BALANCE, } from "@lodestar/params";
3
2
  import { ssz } from "@lodestar/types";
4
- import { toRootHex } from "@lodestar/utils";
5
- import { isBuilderPaymentWithdrawable, isParentBlockFull } from "../util/gloas.js";
6
- import { decreaseBalance, getMaxEffectiveBalance, hasEth1WithdrawalCredential, hasExecutionWithdrawalCredential, isCapellaPayloadHeader, } from "../util/index.js";
3
+ import { byteArrayEquals, toRootHex } from "@lodestar/utils";
4
+ import { convertBuilderIndexToValidatorIndex, convertValidatorIndexToBuilderIndex, isBuilderIndex, isParentBlockFull, } from "../util/gloas.js";
5
+ import { decreaseBalance, getMaxEffectiveBalance, hasEth1WithdrawalCredential, hasExecutionWithdrawalCredential, isCapellaPayloadHeader, isPartiallyWithdrawableValidator, } from "../util/index.js";
7
6
  export function processWithdrawals(fork, state, payload) {
8
7
  // Return early if the parent block is empty
9
8
  if (fork >= ForkSeq.gloas && !isParentBlockFull(state)) {
@@ -11,8 +10,9 @@ export function processWithdrawals(fork, state, payload) {
11
10
  }
12
11
  // processedBuilderWithdrawalsCount is withdrawals coming from builder payment since gloas (EIP-7732)
13
12
  // processedPartialWithdrawalsCount is withdrawals coming from EL since electra (EIP-7002)
13
+ // processedBuildersSweepCount is withdrawals from builder sweep since gloas (EIP-7732)
14
14
  // processedValidatorSweepCount is withdrawals coming from validator sweep
15
- const { expectedWithdrawals, processedBuilderWithdrawalsCount, processedPartialWithdrawalsCount } = getExpectedWithdrawals(fork, state);
15
+ const { expectedWithdrawals, processedBuilderWithdrawalsCount, processedPartialWithdrawalsCount, processedBuildersSweepCount, } = getExpectedWithdrawals(fork, state);
16
16
  const numWithdrawals = expectedWithdrawals.length;
17
17
  // After gloas, withdrawals are verified later in processExecutionPayloadEnvelope
18
18
  if (fork < ForkSeq.gloas) {
@@ -46,18 +46,15 @@ export function processWithdrawals(fork, state, payload) {
46
46
  }
47
47
  if (fork >= ForkSeq.gloas) {
48
48
  const stateGloas = state;
49
- stateGloas.latestWithdrawalsRoot = ssz.capella.Withdrawals.hashTreeRoot(expectedWithdrawals);
50
- const unprocessedWithdrawals = stateGloas.builderPendingWithdrawals
51
- .getAllReadonly()
52
- .slice(0, processedBuilderWithdrawalsCount)
53
- .filter((w) => !isBuilderPaymentWithdrawable(stateGloas, w));
54
- const remainingWithdrawals = stateGloas.builderPendingWithdrawals
55
- .sliceFrom(processedBuilderWithdrawalsCount)
56
- .getAllReadonly();
57
- stateGloas.builderPendingWithdrawals = ssz.gloas.BeaconState.fields.builderPendingWithdrawals.toViewDU([
58
- ...unprocessedWithdrawals,
59
- ...remainingWithdrawals,
60
- ]);
49
+ // Store expected withdrawals for verification
50
+ stateGloas.payloadExpectedWithdrawals = ssz.capella.Withdrawals.toViewDU(expectedWithdrawals);
51
+ // Update builder pending withdrawals queue
52
+ stateGloas.builderPendingWithdrawals = stateGloas.builderPendingWithdrawals.sliceFrom(processedBuilderWithdrawalsCount);
53
+ // Update next builder index for sweep
54
+ if (stateGloas.builders.length > 0) {
55
+ const nextIndex = stateGloas.nextWithdrawalBuilderIndex + processedBuildersSweepCount;
56
+ stateGloas.nextWithdrawalBuilderIndex = nextIndex % stateGloas.builders.length;
57
+ }
61
58
  }
62
59
  // Update the nextWithdrawalIndex
63
60
  // https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.0/specs/capella/beacon-chain.md#new-update_next_withdrawal_index
@@ -78,52 +75,89 @@ export function processWithdrawals(fork, state, payload) {
78
75
  (state.nextWithdrawalValidatorIndex + MAX_VALIDATORS_PER_WITHDRAWALS_SWEEP) % state.validators.length;
79
76
  }
80
77
  }
81
- function getBuilderWithdrawals(state, withdrawalIndex, balanceAfterWithdrawals) {
78
+ function getBuilderWithdrawals(state, withdrawalIndex, priorWithdrawals, builderBalanceAfterWithdrawals) {
79
+ const withdrawalsLimit = MAX_WITHDRAWALS_PER_PAYLOAD - 1;
80
+ if (priorWithdrawals.length > withdrawalsLimit) {
81
+ throw Error(`Prior withdrawals exceed limit: ${priorWithdrawals.length} > ${withdrawalsLimit}`);
82
+ }
82
83
  const builderWithdrawals = [];
83
- const epoch = state.epochCtx.epoch;
84
84
  const allBuilderPendingWithdrawals = state.builderPendingWithdrawals.length <= MAX_WITHDRAWALS_PER_PAYLOAD
85
85
  ? state.builderPendingWithdrawals.getAllReadonly()
86
86
  : null;
87
87
  let processedCount = 0;
88
88
  for (let i = 0; i < state.builderPendingWithdrawals.length; i++) {
89
+ // Check combined length against limit
90
+ const allWithdrawals = priorWithdrawals.length + builderWithdrawals.length;
91
+ if (allWithdrawals >= withdrawalsLimit) {
92
+ break;
93
+ }
89
94
  const withdrawal = allBuilderPendingWithdrawals
90
95
  ? allBuilderPendingWithdrawals[i]
91
96
  : state.builderPendingWithdrawals.getReadonly(i);
92
- if (withdrawal.withdrawableEpoch > epoch || builderWithdrawals.length === MAX_WITHDRAWALS_PER_PAYLOAD) {
97
+ const builderIndex = withdrawal.builderIndex;
98
+ // Get builder balance (from builder.balance, not state.balances)
99
+ let balance = builderBalanceAfterWithdrawals.get(builderIndex);
100
+ if (balance === undefined) {
101
+ balance = state.builders.getReadonly(builderIndex).balance;
102
+ builderBalanceAfterWithdrawals.set(builderIndex, balance);
103
+ }
104
+ // Use the withdrawal amount directly as specified in the spec
105
+ builderWithdrawals.push({
106
+ index: withdrawalIndex,
107
+ validatorIndex: convertBuilderIndexToValidatorIndex(builderIndex),
108
+ address: withdrawal.feeRecipient,
109
+ amount: BigInt(withdrawal.amount),
110
+ });
111
+ withdrawalIndex++;
112
+ builderBalanceAfterWithdrawals.set(builderIndex, balance - withdrawal.amount);
113
+ processedCount++;
114
+ }
115
+ return { builderWithdrawals, withdrawalIndex, processedCount };
116
+ }
117
+ function getBuildersSweepWithdrawals(state, withdrawalIndex, numPriorWithdrawal, builderBalanceAfterWithdrawals) {
118
+ const withdrawalsLimit = MAX_WITHDRAWALS_PER_PAYLOAD - 1;
119
+ if (numPriorWithdrawal > withdrawalsLimit) {
120
+ throw Error(`Prior withdrawals exceed limit: ${numPriorWithdrawal} > ${withdrawalsLimit}`);
121
+ }
122
+ const buildersSweepWithdrawals = [];
123
+ const epoch = state.epochCtx.epoch;
124
+ const builders = state.builders;
125
+ // Return early if no builders
126
+ if (builders.length === 0) {
127
+ return { buildersSweepWithdrawals, withdrawalIndex, processedCount: 0 };
128
+ }
129
+ const buildersLimit = Math.min(builders.length, MAX_BUILDERS_PER_WITHDRAWALS_SWEEP);
130
+ let processedCount = 0;
131
+ for (let n = 0; n < buildersLimit; n++) {
132
+ if (buildersSweepWithdrawals.length + numPriorWithdrawal >= withdrawalsLimit) {
93
133
  break;
94
134
  }
95
- if (isBuilderPaymentWithdrawable(state, withdrawal)) {
96
- const builderIndex = withdrawal.builderIndex;
97
- const builder = state.validators.get(withdrawal.builderIndex);
98
- let balance = balanceAfterWithdrawals.get(builderIndex);
99
- if (balance === undefined) {
100
- balance = state.balances.get(builderIndex);
101
- balanceAfterWithdrawals.set(builderIndex, balance);
102
- }
103
- let withdrawableBalance = 0;
104
- if (builder.slashed) {
105
- withdrawableBalance = balance < withdrawal.amount ? balance : withdrawal.amount;
106
- }
107
- else if (balance > MIN_ACTIVATION_BALANCE) {
108
- withdrawableBalance =
109
- balance - MIN_ACTIVATION_BALANCE < withdrawal.amount ? balance - MIN_ACTIVATION_BALANCE : withdrawal.amount;
110
- }
111
- if (withdrawableBalance > 0) {
112
- builderWithdrawals.push({
113
- index: withdrawalIndex,
114
- validatorIndex: withdrawal.builderIndex,
115
- address: withdrawal.feeRecipient,
116
- amount: BigInt(withdrawableBalance),
117
- });
118
- withdrawalIndex++;
119
- balanceAfterWithdrawals.set(builderIndex, balance - withdrawableBalance);
120
- }
135
+ // Get next builder in turn
136
+ const builderIndex = (state.nextWithdrawalBuilderIndex + n) % builders.length;
137
+ const builder = builders.getReadonly(builderIndex);
138
+ // Get builder balance
139
+ let balance = builderBalanceAfterWithdrawals.get(builderIndex);
140
+ if (balance === undefined) {
141
+ balance = builder.balance;
142
+ builderBalanceAfterWithdrawals.set(builderIndex, balance);
143
+ }
144
+ // Check if builder is withdrawable and has balance
145
+ if (builder.withdrawableEpoch <= epoch && balance > 0) {
146
+ // Withdraw full balance to builder's execution address
147
+ buildersSweepWithdrawals.push({
148
+ index: withdrawalIndex,
149
+ validatorIndex: convertBuilderIndexToValidatorIndex(builderIndex),
150
+ address: builder.executionAddress,
151
+ amount: BigInt(balance),
152
+ });
153
+ withdrawalIndex++;
154
+ builderBalanceAfterWithdrawals.set(builderIndex, 0);
121
155
  }
122
156
  processedCount++;
123
157
  }
124
- return { builderWithdrawals, withdrawalIndex, processedCount };
158
+ return { buildersSweepWithdrawals, withdrawalIndex, processedCount };
125
159
  }
126
- function getPendingPartialWithdrawals(state, withdrawalIndex, numPriorWithdrawal, balanceAfterWithdrawals) {
160
+ function getPendingPartialWithdrawals(state, withdrawalIndex, numPriorWithdrawal, validatorBalanceAfterWithdrawals) {
127
161
  const epoch = state.epochCtx.epoch;
128
162
  const pendingPartialWithdrawals = [];
129
163
  const validators = state.validators;
@@ -142,15 +176,15 @@ function getPendingPartialWithdrawals(state, withdrawalIndex, numPriorWithdrawal
142
176
  ? allPendingPartialWithdrawals[i]
143
177
  : state.pendingPartialWithdrawals.getReadonly(i);
144
178
  if (withdrawal.withdrawableEpoch > epoch ||
145
- pendingPartialWithdrawals.length + numPriorWithdrawal === partialWithdrawalBound) {
179
+ pendingPartialWithdrawals.length + numPriorWithdrawal >= partialWithdrawalBound) {
146
180
  break;
147
181
  }
148
182
  const validatorIndex = withdrawal.validatorIndex;
149
183
  const validator = validators.getReadonly(validatorIndex);
150
- let balance = balanceAfterWithdrawals.get(validatorIndex);
184
+ let balance = validatorBalanceAfterWithdrawals.get(validatorIndex);
151
185
  if (balance === undefined) {
152
186
  balance = state.balances.get(validatorIndex);
153
- balanceAfterWithdrawals.set(validatorIndex, balance);
187
+ validatorBalanceAfterWithdrawals.set(validatorIndex, balance);
154
188
  }
155
189
  if (validator.exitEpoch === FAR_FUTURE_EPOCH &&
156
190
  validator.effectiveBalance >= MIN_ACTIVATION_BALANCE &&
@@ -164,13 +198,13 @@ function getPendingPartialWithdrawals(state, withdrawalIndex, numPriorWithdrawal
164
198
  amount: withdrawableBalance,
165
199
  });
166
200
  withdrawalIndex++;
167
- balanceAfterWithdrawals.set(validatorIndex, balance - Number(withdrawableBalance));
201
+ validatorBalanceAfterWithdrawals.set(validatorIndex, balance - Number(withdrawableBalance));
168
202
  }
169
203
  processedCount++;
170
204
  }
171
205
  return { pendingPartialWithdrawals, withdrawalIndex, processedCount };
172
206
  }
173
- function getValidatorsSweepWithdrawals(fork, state, withdrawalIndex, numPriorWithdrawal, balanceAfterWithdrawals) {
207
+ function getValidatorsSweepWithdrawals(fork, state, withdrawalIndex, numPriorWithdrawal, validatorBalanceAfterWithdrawals) {
174
208
  const sweepWithdrawals = [];
175
209
  const epoch = state.epochCtx.epoch;
176
210
  const { validators, balances, nextWithdrawalValidatorIndex } = state;
@@ -186,12 +220,12 @@ function getValidatorsSweepWithdrawals(fork, state, withdrawalIndex, numPriorWit
186
220
  // Get next validator in turn
187
221
  const validatorIndex = (nextWithdrawalValidatorIndex + n) % validators.length;
188
222
  const validator = validators.getReadonly(validatorIndex);
189
- let balance = balanceAfterWithdrawals.get(validatorIndex);
223
+ let balance = validatorBalanceAfterWithdrawals.get(validatorIndex);
190
224
  if (balance === undefined) {
191
225
  balance = balances.get(validatorIndex);
192
- balanceAfterWithdrawals.set(validatorIndex, balance);
226
+ validatorBalanceAfterWithdrawals.set(validatorIndex, balance);
193
227
  }
194
- const { withdrawableEpoch, withdrawalCredentials, effectiveBalance } = validator;
228
+ const { withdrawableEpoch, withdrawalCredentials } = validator;
195
229
  const hasWithdrawableCredentials = isPostElectra
196
230
  ? hasExecutionWithdrawalCredential(withdrawalCredentials)
197
231
  : hasEth1WithdrawalCredential(withdrawalCredentials);
@@ -210,12 +244,12 @@ function getValidatorsSweepWithdrawals(fork, state, withdrawalIndex, numPriorWit
210
244
  amount: BigInt(balance),
211
245
  });
212
246
  withdrawalIndex++;
213
- balanceAfterWithdrawals.set(validatorIndex, 0);
247
+ validatorBalanceAfterWithdrawals.set(validatorIndex, 0);
214
248
  }
215
- else if (effectiveBalance === (isPostElectra ? getMaxEffectiveBalance(withdrawalCredentials) : MAX_EFFECTIVE_BALANCE) &&
216
- balance > effectiveBalance) {
249
+ else if (isPartiallyWithdrawableValidator(fork, validator, balance)) {
217
250
  // capella partial withdrawal
218
- const partialAmount = balance - effectiveBalance;
251
+ const maxEffectiveBalance = isPostElectra ? getMaxEffectiveBalance(withdrawalCredentials) : MAX_EFFECTIVE_BALANCE;
252
+ const partialAmount = balance - maxEffectiveBalance;
219
253
  sweepWithdrawals.push({
220
254
  index: withdrawalIndex,
221
255
  validatorIndex,
@@ -223,7 +257,7 @@ function getValidatorsSweepWithdrawals(fork, state, withdrawalIndex, numPriorWit
223
257
  amount: BigInt(partialAmount),
224
258
  });
225
259
  withdrawalIndex++;
226
- balanceAfterWithdrawals.set(validatorIndex, balance - partialAmount);
260
+ validatorBalanceAfterWithdrawals.set(validatorIndex, balance - partialAmount);
227
261
  }
228
262
  processedCount++;
229
263
  }
@@ -231,7 +265,17 @@ function getValidatorsSweepWithdrawals(fork, state, withdrawalIndex, numPriorWit
231
265
  }
232
266
  function applyWithdrawals(state, withdrawals) {
233
267
  for (const withdrawal of withdrawals) {
234
- decreaseBalance(state, withdrawal.validatorIndex, Number(withdrawal.amount));
268
+ if (isBuilderIndex(withdrawal.validatorIndex)) {
269
+ // Handle builder withdrawal
270
+ const builderIndex = convertValidatorIndexToBuilderIndex(withdrawal.validatorIndex);
271
+ const builder = state.builders.get(builderIndex);
272
+ const withdrawalAmount = Number(withdrawal.amount);
273
+ builder.balance -= Math.min(withdrawalAmount, builder.balance);
274
+ }
275
+ else {
276
+ // Handle validator withdrawal
277
+ decreaseBalance(state, withdrawal.validatorIndex, Number(withdrawal.amount));
278
+ }
235
279
  }
236
280
  }
237
281
  export function getExpectedWithdrawals(fork, state) {
@@ -240,31 +284,41 @@ export function getExpectedWithdrawals(fork, state) {
240
284
  }
241
285
  let withdrawalIndex = state.nextWithdrawalIndex;
242
286
  const expectedWithdrawals = [];
243
- // Map to track balances after applying withdrawals
287
+ // Separate maps to track balances after applying withdrawals
244
288
  // https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.0/specs/capella/beacon-chain.md#new-get_balance_after_withdrawals
245
- const balanceAfterWithdrawals = new Map();
289
+ const builderBalanceAfterWithdrawals = new Map();
290
+ const validatorBalanceAfterWithdrawals = new Map();
246
291
  // partialWithdrawalsCount is withdrawals coming from EL since electra (EIP-7002)
247
292
  let processedPartialWithdrawalsCount = 0;
248
293
  // builderWithdrawalsCount is withdrawals coming from builder payments since Gloas (EIP-7732)
249
294
  let processedBuilderWithdrawalsCount = 0;
295
+ // buildersSweepCount is withdrawals from builder sweep since Gloas (EIP-7732)
296
+ let processedBuildersSweepCount = 0;
250
297
  if (fork >= ForkSeq.gloas) {
251
- const { builderWithdrawals, withdrawalIndex: newWithdrawalIndex, processedCount, } = getBuilderWithdrawals(state, withdrawalIndex, balanceAfterWithdrawals);
298
+ const { builderWithdrawals, withdrawalIndex: newWithdrawalIndex, processedCount, } = getBuilderWithdrawals(state, withdrawalIndex, expectedWithdrawals, builderBalanceAfterWithdrawals);
252
299
  expectedWithdrawals.push(...builderWithdrawals);
253
300
  withdrawalIndex = newWithdrawalIndex;
254
301
  processedBuilderWithdrawalsCount = processedCount;
255
302
  }
256
303
  if (fork >= ForkSeq.electra) {
257
- const { pendingPartialWithdrawals, withdrawalIndex: newWithdrawalIndex, processedCount, } = getPendingPartialWithdrawals(state, withdrawalIndex, expectedWithdrawals.length, balanceAfterWithdrawals);
304
+ const { pendingPartialWithdrawals, withdrawalIndex: newWithdrawalIndex, processedCount, } = getPendingPartialWithdrawals(state, withdrawalIndex, expectedWithdrawals.length, validatorBalanceAfterWithdrawals);
258
305
  expectedWithdrawals.push(...pendingPartialWithdrawals);
259
306
  withdrawalIndex = newWithdrawalIndex;
260
307
  processedPartialWithdrawalsCount = processedCount;
261
308
  }
262
- const { sweepWithdrawals, processedCount: processedValidatorSweepCount } = getValidatorsSweepWithdrawals(fork, state, withdrawalIndex, expectedWithdrawals.length, balanceAfterWithdrawals);
309
+ if (fork >= ForkSeq.gloas) {
310
+ const { buildersSweepWithdrawals, withdrawalIndex: newWithdrawalIndex, processedCount, } = getBuildersSweepWithdrawals(state, withdrawalIndex, expectedWithdrawals.length, builderBalanceAfterWithdrawals);
311
+ expectedWithdrawals.push(...buildersSweepWithdrawals);
312
+ withdrawalIndex = newWithdrawalIndex;
313
+ processedBuildersSweepCount = processedCount;
314
+ }
315
+ const { sweepWithdrawals, processedCount: processedValidatorSweepCount } = getValidatorsSweepWithdrawals(fork, state, withdrawalIndex, expectedWithdrawals.length, validatorBalanceAfterWithdrawals);
263
316
  expectedWithdrawals.push(...sweepWithdrawals);
264
317
  return {
265
318
  expectedWithdrawals,
266
319
  processedBuilderWithdrawalsCount,
267
320
  processedPartialWithdrawalsCount,
321
+ processedBuildersSweepCount,
268
322
  processedValidatorSweepCount,
269
323
  };
270
324
  }
@@ -1 +1 @@
1
- {"version":3,"file":"processWithdrawals.js","sourceRoot":"","sources":["../../src/block/processWithdrawals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processWithdrawals.js","sourceRoot":"","sources":["../../src/block/processWithdrawals.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"processBuilderPendingPayments.d.ts","sourceRoot":"","sources":["../../src/epoch/processBuilderPendingPayments.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAInD;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,sBAAsB,GAAG,IAAI,CAqBjF"}
1
+ {"version":3,"file":"processBuilderPendingPayments.d.ts","sourceRoot":"","sources":["../../src/epoch/processBuilderPendingPayments.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAGnD;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,sBAAsB,GAAG,IAAI,CAkBjF"}
@@ -1,6 +1,5 @@
1
1
  import { SLOTS_PER_EPOCH } from "@lodestar/params";
2
2
  import { ssz } from "@lodestar/types";
3
- import { computeExitEpochAndUpdateChurn } from "../util/epoch.js";
4
3
  import { getBuilderPaymentQuorumThreshold } from "../util/gloas.js";
5
4
  /**
6
5
  * Processes the builder pending payments from the previous epoch.
@@ -9,9 +8,7 @@ export function processBuilderPendingPayments(state) {
9
8
  const quorum = getBuilderPaymentQuorumThreshold(state);
10
9
  for (let i = 0; i < SLOTS_PER_EPOCH; i++) {
11
10
  const payment = state.builderPendingPayments.get(i);
12
- if (payment.weight > quorum) {
13
- const exitQueueEpoch = computeExitEpochAndUpdateChurn(state, BigInt(payment.withdrawal.amount));
14
- payment.withdrawal.withdrawableEpoch = exitQueueEpoch + state.config.MIN_VALIDATOR_WITHDRAWABILITY_DELAY;
11
+ if (payment.weight >= quorum) {
15
12
  state.builderPendingWithdrawals.push(payment.withdrawal);
16
13
  }
17
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"processBuilderPendingPayments.js","sourceRoot":"","sources":["../../src/epoch/processBuilderPendingPayments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAEpC,OAAO,EAAC,8BAA8B,EAAC,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAC,gCAAgC,EAAC,MAAM,kBAAkB,CAAC;AAElE;;GAEG;AACH,MAAM,UAAU,6BAA6B,CAAC,KAA6B;IACzE,MAAM,MAAM,GAAG,gCAAgC,CAAC,KAAK,CAAC,CAAC;IAEvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,KAAK,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACpD,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;YAC5B,MAAM,cAAc,GAAG,8BAA8B,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;YAChG,OAAO,CAAC,UAAU,CAAC,iBAAiB,GAAG,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,mCAAmC,CAAC;YAEzG,KAAK,CAAC,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,sBAAsB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7D,IAAI,CAAC,GAAG,eAAe,EAAE,CAAC;YACxB,KAAK,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACrG,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,qBAAqB,CAAC,aAAa,EAAE,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"processBuilderPendingPayments.js","sourceRoot":"","sources":["../../src/epoch/processBuilderPendingPayments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAEpC,OAAO,EAAC,gCAAgC,EAAC,MAAM,kBAAkB,CAAC;AAElE;;GAEG;AACH,MAAM,UAAU,6BAA6B,CAAC,KAA6B;IACzE,MAAM,MAAM,GAAG,gCAAgC,CAAC,KAAK,CAAC,CAAC;IAEvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,KAAK,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACpD,IAAI,OAAO,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;YAC7B,KAAK,CAAC,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,sBAAsB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7D,IAAI,CAAC,GAAG,eAAe,EAAE,CAAC;YACxB,KAAK,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACrG,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,qBAAqB,CAAC,aAAa,EAAE,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"processPendingAttestations.d.ts","sourceRoot":"","sources":["../../src/epoch/processPendingAttestations.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,KAAK,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,uBAAuB,EAAC,MAAM,aAAa,CAAC;AAGpD;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,uBAAuB,EAC9B,eAAe,EAAE,MAAM,EAAE,EACzB,eAAe,EAAE,MAAM,EAAE,EACzB,KAAK,EAAE,MAAM,EAAE,EACf,YAAY,EAAE,MAAM,CAAC,kBAAkB,EAAE,EACzC,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,IAAI,CAgDN"}
1
+ {"version":3,"file":"processPendingAttestations.d.ts","sourceRoot":"","sources":["../../src/epoch/processPendingAttestations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAC,uBAAuB,EAAC,MAAM,aAAa,CAAC;AAGpD;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,uBAAuB,EAC9B,eAAe,EAAE,MAAM,EAAE,EACzB,eAAe,EAAE,MAAM,EAAE,EACzB,KAAK,EAAE,MAAM,EAAE,EACf,YAAY,EAAE,MAAM,CAAC,kBAAkB,EAAE,EACzC,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,IAAI,CAgDN"}
@@ -1,4 +1,4 @@
1
- import { byteArrayEquals } from "@chainsafe/ssz";
1
+ import { byteArrayEquals } from "@lodestar/utils";
2
2
  import { computeStartSlotAtEpoch, getBlockRootAtSlot } from "../util/index.js";
3
3
  /**
4
4
  * Mutates `proposerIndices`, `inclusionDelays` and `flags` from all pending attestations.
@@ -1 +1 @@
1
- {"version":3,"file":"processPendingAttestations.js","sourceRoot":"","sources":["../../src/epoch/processPendingAttestations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAG/C,OAAO,EAAC,uBAAuB,EAAE,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAE7E;;;;;;;;;;GAUG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAA8B,EAC9B,eAAyB,EACzB,eAAyB,EACzB,KAAe,EACf,YAAyC,EACzC,KAAY,EACZ,UAAkB,EAClB,UAAkB,EAClB,QAAgB;IAEhB,MAAM,EAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAC,GAAG,KAAK,CAAC;IAC1C,MAAM,SAAS,GAAG,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC;IACnD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO;IACT,CAAC;IAED,gEAAgE;IAChE,MAAM,iBAAiB,GAAG,eAAe,CAAC;IAE1C,MAAM,qBAAqB,GAAG,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC;IAExF,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,kIAAkI;QAClI,8DAA8D;QAC9D,IAAI,GAAG,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,SAAS;QACX,CAAC;QAED,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC;QACzB,MAAM,cAAc,GAAG,GAAG,CAAC,cAAc,CAAC;QAC1C,MAAM,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC;QACxC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;QAC7B,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;QACzF,MAAM,gBAAgB,GACpB,OAAO,GAAG,SAAS,IAAI,iBAAiB,CAAC,OAAO,CAAC,eAAe,EAAE,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QACxG,MAAM,SAAS,GAAG,QAAQ,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACtE,MAAM,YAAY,GAAG,GAAG,CAAC,eAAe,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAEpE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;gBAC7B,IAAI,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG,cAAc,EAAE,CAAC;oBACrE,eAAe,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC;oBACnC,eAAe,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC;gBACtC,CAAC;YACH,CAAC;QACH,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;YAC7B,KAAK,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC;YACvB,IAAI,kBAAkB,EAAE,CAAC;gBACvB,KAAK,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC;gBACvB,IAAI,gBAAgB,EAAE,CAAC;oBACrB,KAAK,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;gBACvB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"processPendingAttestations.js","sourceRoot":"","sources":["../../src/epoch/processPendingAttestations.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAC,uBAAuB,EAAE,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAE7E;;;;;;;;;;GAUG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAA8B,EAC9B,eAAyB,EACzB,eAAyB,EACzB,KAAe,EACf,YAAyC,EACzC,KAAY,EACZ,UAAkB,EAClB,UAAkB,EAClB,QAAgB;IAEhB,MAAM,EAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAC,GAAG,KAAK,CAAC;IAC1C,MAAM,SAAS,GAAG,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC;IACnD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO;IACT,CAAC;IAED,gEAAgE;IAChE,MAAM,iBAAiB,GAAG,eAAe,CAAC;IAE1C,MAAM,qBAAqB,GAAG,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC;IAExF,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,kIAAkI;QAClI,8DAA8D;QAC9D,IAAI,GAAG,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,SAAS;QACX,CAAC;QAED,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC;QACzB,MAAM,cAAc,GAAG,GAAG,CAAC,cAAc,CAAC;QAC1C,MAAM,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC;QACxC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;QAC7B,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;QACzF,MAAM,gBAAgB,GACpB,OAAO,GAAG,SAAS,IAAI,iBAAiB,CAAC,OAAO,CAAC,eAAe,EAAE,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QACxG,MAAM,SAAS,GAAG,QAAQ,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACtE,MAAM,YAAY,GAAG,GAAG,CAAC,eAAe,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAEpE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;gBAC7B,IAAI,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG,cAAc,EAAE,CAAC;oBACrE,eAAe,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC;oBACnC,eAAe,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC;gBACtC,CAAC;YACH,CAAC;QACH,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;YAC7B,KAAK,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC;YACvB,IAAI,kBAAkB,EAAE,CAAC;gBACvB,KAAK,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC;gBACvB,IAAI,gBAAgB,EAAE,CAAC;oBACrB,KAAK,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;gBACvB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1,10 +1,9 @@
1
1
  import { BeaconConfig } from "@lodestar/config";
2
2
  import { AttesterSlashing, IndexedAttestationBigint, SignedBeaconBlock, Slot } from "@lodestar/types";
3
- import { Index2PubkeyCache } from "../cache/pubkeyCache.js";
4
3
  import { ISignatureSet } from "../util/index.js";
5
4
  /** Get signature sets from all AttesterSlashing objects in a block */
6
- export declare function getAttesterSlashingsSignatureSets(config: BeaconConfig, index2pubkey: Index2PubkeyCache, signedBlock: SignedBeaconBlock): ISignatureSet[];
5
+ export declare function getAttesterSlashingsSignatureSets(config: BeaconConfig, signedBlock: SignedBeaconBlock): ISignatureSet[];
7
6
  /** Get signature sets from a single AttesterSlashing object */
8
- export declare function getAttesterSlashingSignatureSets(config: BeaconConfig, index2pubkey: Index2PubkeyCache, stateSlot: Slot, attesterSlashing: AttesterSlashing): ISignatureSet[];
9
- export declare function getIndexedAttestationBigintSignatureSet(config: BeaconConfig, index2pubkey: Index2PubkeyCache, stateSlot: Slot, indexedAttestation: IndexedAttestationBigint): ISignatureSet;
7
+ export declare function getAttesterSlashingSignatureSets(config: BeaconConfig, stateSlot: Slot, attesterSlashing: AttesterSlashing): ISignatureSet[];
8
+ export declare function getIndexedAttestationBigintSignatureSet(config: BeaconConfig, stateSlot: Slot, indexedAttestation: IndexedAttestationBigint): ISignatureSet;
10
9
  //# sourceMappingURL=attesterSlashings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"attesterSlashings.d.ts","sourceRoot":"","sources":["../../src/signatureSets/attesterSlashings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAC,gBAAgB,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,IAAI,EAAM,MAAM,iBAAiB,CAAC;AACzG,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAC,aAAa,EAAgE,MAAM,kBAAkB,CAAC;AAE9G,sEAAsE;AACtE,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,iBAAiB,EAC/B,WAAW,EAAE,iBAAiB,GAC7B,aAAa,EAAE,CAOjB;AAED,+DAA+D;AAC/D,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,iBAAiB,EAC/B,SAAS,EAAE,IAAI,EACf,gBAAgB,EAAE,gBAAgB,GACjC,aAAa,EAAE,CAIjB;AAED,wBAAgB,uCAAuC,CACrD,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,iBAAiB,EAC/B,SAAS,EAAE,IAAI,EACf,kBAAkB,EAAE,wBAAwB,GAC3C,aAAa,CAUf"}
1
+ {"version":3,"file":"attesterSlashings.d.ts","sourceRoot":"","sources":["../../src/signatureSets/attesterSlashings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAC,gBAAgB,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,IAAI,EAAM,MAAM,iBAAiB,CAAC;AACzG,OAAO,EAAC,aAAa,EAAgE,MAAM,kBAAkB,CAAC;AAE9G,sEAAsE;AACtE,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,iBAAiB,GAC7B,aAAa,EAAE,CAOjB;AAED,+DAA+D;AAC/D,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,IAAI,EACf,gBAAgB,EAAE,gBAAgB,GACjC,aAAa,EAAE,CAIjB;AAED,wBAAgB,uCAAuC,CACrD,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,IAAI,EACf,kBAAkB,EAAE,wBAAwB,GAC3C,aAAa,CAUf"}
@@ -2,22 +2,22 @@ import { DOMAIN_BEACON_ATTESTER } from "@lodestar/params";
2
2
  import { ssz } from "@lodestar/types";
3
3
  import { SignatureSetType, computeSigningRoot, computeStartSlotAtEpoch } from "../util/index.js";
4
4
  /** Get signature sets from all AttesterSlashing objects in a block */
5
- export function getAttesterSlashingsSignatureSets(config, index2pubkey, signedBlock) {
5
+ export function getAttesterSlashingsSignatureSets(config, signedBlock) {
6
6
  // the getDomain() api requires the state slot as 1st param, however it's the same to block.slot in state-transition
7
7
  // and the same epoch when we verify blocks in batch in beacon-node. So we can safely use block.slot here.
8
8
  const blockSlot = signedBlock.message.slot;
9
- return signedBlock.message.body.attesterSlashings.flatMap((attesterSlashing) => getAttesterSlashingSignatureSets(config, index2pubkey, blockSlot, attesterSlashing));
9
+ return signedBlock.message.body.attesterSlashings.flatMap((attesterSlashing) => getAttesterSlashingSignatureSets(config, blockSlot, attesterSlashing));
10
10
  }
11
11
  /** Get signature sets from a single AttesterSlashing object */
12
- export function getAttesterSlashingSignatureSets(config, index2pubkey, stateSlot, attesterSlashing) {
13
- return [attesterSlashing.attestation1, attesterSlashing.attestation2].map((attestation) => getIndexedAttestationBigintSignatureSet(config, index2pubkey, stateSlot, attestation));
12
+ export function getAttesterSlashingSignatureSets(config, stateSlot, attesterSlashing) {
13
+ return [attesterSlashing.attestation1, attesterSlashing.attestation2].map((attestation) => getIndexedAttestationBigintSignatureSet(config, stateSlot, attestation));
14
14
  }
15
- export function getIndexedAttestationBigintSignatureSet(config, index2pubkey, stateSlot, indexedAttestation) {
15
+ export function getIndexedAttestationBigintSignatureSet(config, stateSlot, indexedAttestation) {
16
16
  const messageSlot = computeStartSlotAtEpoch(Number(indexedAttestation.data.target.epoch));
17
17
  const domain = config.getDomain(stateSlot, DOMAIN_BEACON_ATTESTER, messageSlot);
18
18
  return {
19
19
  type: SignatureSetType.aggregate,
20
- pubkeys: indexedAttestation.attestingIndices.map((i) => index2pubkey[i]),
20
+ indices: indexedAttestation.attestingIndices.map((i) => Number(i)),
21
21
  signingRoot: computeSigningRoot(ssz.phase0.AttestationDataBigint, indexedAttestation.data, domain),
22
22
  signature: indexedAttestation.signature,
23
23
  };
@@ -1 +1 @@
1
- {"version":3,"file":"attesterSlashings.js","sourceRoot":"","sources":["../../src/signatureSets/attesterSlashings.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,sBAAsB,EAAC,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAsE,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAEzG,OAAO,EAAgB,gBAAgB,EAAE,kBAAkB,EAAE,uBAAuB,EAAC,MAAM,kBAAkB,CAAC;AAE9G,sEAAsE;AACtE,MAAM,UAAU,iCAAiC,CAC/C,MAAoB,EACpB,YAA+B,EAC/B,WAA8B;IAE9B,oHAAoH;IACpH,0GAA0G;IAC1G,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3C,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,gBAAgB,EAAE,EAAE,CAC7E,gCAAgC,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,gBAAgB,CAAC,CACpF,CAAC;AACJ,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,gCAAgC,CAC9C,MAAoB,EACpB,YAA+B,EAC/B,SAAe,EACf,gBAAkC;IAElC,OAAO,CAAC,gBAAgB,CAAC,YAAY,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CACxF,uCAAuC,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,CAAC,CACtF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uCAAuC,CACrD,MAAoB,EACpB,YAA+B,EAC/B,SAAe,EACf,kBAA4C;IAE5C,MAAM,WAAW,GAAG,uBAAuB,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAe,CAAC,CAAC,CAAC;IACpG,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,sBAAsB,EAAE,WAAW,CAAC,CAAC;IAEhF,OAAO;QACL,IAAI,EAAE,gBAAgB,CAAC,SAAS;QAChC,OAAO,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACxE,WAAW,EAAE,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC;QAClG,SAAS,EAAE,kBAAkB,CAAC,SAAS;KACxC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"attesterSlashings.js","sourceRoot":"","sources":["../../src/signatureSets/attesterSlashings.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,sBAAsB,EAAC,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAsE,GAAG,EAAC,MAAM,iBAAiB,CAAC;AACzG,OAAO,EAAgB,gBAAgB,EAAE,kBAAkB,EAAE,uBAAuB,EAAC,MAAM,kBAAkB,CAAC;AAE9G,sEAAsE;AACtE,MAAM,UAAU,iCAAiC,CAC/C,MAAoB,EACpB,WAA8B;IAE9B,oHAAoH;IACpH,0GAA0G;IAC1G,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3C,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,gBAAgB,EAAE,EAAE,CAC7E,gCAAgC,CAAC,MAAM,EAAE,SAAS,EAAE,gBAAgB,CAAC,CACtE,CAAC;AACJ,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,gCAAgC,CAC9C,MAAoB,EACpB,SAAe,EACf,gBAAkC;IAElC,OAAO,CAAC,gBAAgB,CAAC,YAAY,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CACxF,uCAAuC,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,CACxE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uCAAuC,CACrD,MAAoB,EACpB,SAAe,EACf,kBAA4C;IAE5C,MAAM,WAAW,GAAG,uBAAuB,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAe,CAAC,CAAC,CAAC;IACpG,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,sBAAsB,EAAE,WAAW,CAAC,CAAC;IAEhF,OAAO;QACL,IAAI,EAAE,gBAAgB,CAAC,SAAS;QAChC,OAAO,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAClE,WAAW,EAAE,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC;QAClG,SAAS,EAAE,kBAAkB,CAAC,SAAS;KACxC,CAAC;AACJ,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import { BeaconConfig } from "@lodestar/config";
2
2
  import { capella } from "@lodestar/types";
3
- import { ISignatureSet } from "../util/index.js";
3
+ import { SingleSignatureSet } from "../util/index.js";
4
4
  export declare function verifyBlsToExecutionChangeSignature(config: BeaconConfig, signedBLSToExecutionChange: capella.SignedBLSToExecutionChange): boolean;
5
5
  /**
6
6
  * Extract signatures to allow validating all block signatures at once
7
7
  */
8
- export declare function getBlsToExecutionChangeSignatureSet(config: BeaconConfig, signedBLSToExecutionChange: capella.SignedBLSToExecutionChange): ISignatureSet;
9
- export declare function getBlsToExecutionChangeSignatureSets(config: BeaconConfig, signedBlock: capella.SignedBeaconBlock): ISignatureSet[];
8
+ export declare function getBlsToExecutionChangeSignatureSet(config: BeaconConfig, signedBLSToExecutionChange: capella.SignedBLSToExecutionChange): SingleSignatureSet;
9
+ export declare function getBlsToExecutionChangeSignatureSets(config: BeaconConfig, signedBlock: capella.SignedBeaconBlock): SingleSignatureSet[];
10
10
  //# sourceMappingURL=blsToExecutionChange.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"blsToExecutionChange.d.ts","sourceRoot":"","sources":["../../src/signatureSets/blsToExecutionChange.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAC,OAAO,EAAM,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAC,aAAa,EAA2D,MAAM,kBAAkB,CAAC;AAEzG,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,YAAY,EACpB,0BAA0B,EAAE,OAAO,CAAC,0BAA0B,GAC7D,OAAO,CAET;AAED;;GAEG;AACH,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,YAAY,EACpB,0BAA0B,EAAE,OAAO,CAAC,0BAA0B,GAC7D,aAAa,CAaf;AAED,wBAAgB,oCAAoC,CAClD,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,OAAO,CAAC,iBAAiB,GACrC,aAAa,EAAE,CAIjB"}
1
+ {"version":3,"file":"blsToExecutionChange.d.ts","sourceRoot":"","sources":["../../src/signatureSets/blsToExecutionChange.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAC,OAAO,EAAM,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAmB,kBAAkB,EAAyC,MAAM,kBAAkB,CAAC;AAE9G,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,YAAY,EACpB,0BAA0B,EAAE,OAAO,CAAC,0BAA0B,GAC7D,OAAO,CAET;AAED;;GAEG;AACH,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,YAAY,EACpB,0BAA0B,EAAE,OAAO,CAAC,0BAA0B,GAC7D,kBAAkB,CAapB;AAED,wBAAgB,oCAAoC,CAClD,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,OAAO,CAAC,iBAAiB,GACrC,kBAAkB,EAAE,CAItB"}
@@ -1 +1 @@
1
- {"version":3,"file":"blsToExecutionChange.js","sourceRoot":"","sources":["../../src/signatureSets/blsToExecutionChange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAC,8BAA8B,EAAE,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAU,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAgB,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAEzG,MAAM,UAAU,mCAAmC,CACjD,MAAoB,EACpB,0BAA8D;IAE9D,OAAO,kBAAkB,CAAC,mCAAmC,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC,CAAC;AACrG,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mCAAmC,CACjD,MAAoB,EACpB,0BAA8D;IAE9D,4CAA4C;IAC5C,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC;IACtC,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,aAAa,EAAE,8BAA8B,CAAC,CAAC;IAErF,OAAO;QACL,IAAI,EAAE,gBAAgB,CAAC,MAAM;QAC7B,+FAA+F;QAC/F,yDAAyD;QACzD,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,0BAA0B,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC;QACnF,WAAW,EAAE,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,0BAA0B,CAAC,OAAO,EAAE,MAAM,CAAC;QAC7G,SAAS,EAAE,0BAA0B,CAAC,SAAS;KAChD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oCAAoC,CAClD,MAAoB,EACpB,WAAsC;IAEtC,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,oBAAoB,EAAE,EAAE,CACjF,mCAAmC,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAClE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"blsToExecutionChange.js","sourceRoot":"","sources":["../../src/signatureSets/blsToExecutionChange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAC,8BAA8B,EAAE,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAU,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAC,gBAAgB,EAAsB,kBAAkB,EAAE,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAE9G,MAAM,UAAU,mCAAmC,CACjD,MAAoB,EACpB,0BAA8D;IAE9D,OAAO,kBAAkB,CAAC,mCAAmC,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC,CAAC;AACrG,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mCAAmC,CACjD,MAAoB,EACpB,0BAA8D;IAE9D,4CAA4C;IAC5C,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC;IACtC,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,aAAa,EAAE,8BAA8B,CAAC,CAAC;IAErF,OAAO;QACL,IAAI,EAAE,gBAAgB,CAAC,MAAM;QAC7B,+FAA+F;QAC/F,yDAAyD;QACzD,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,0BAA0B,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC;QACnF,WAAW,EAAE,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,0BAA0B,CAAC,OAAO,EAAE,MAAM,CAAC;QAC7G,SAAS,EAAE,0BAA0B,CAAC,SAAS;KAChD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oCAAoC,CAClD,MAAoB,EACpB,WAAsC;IAEtC,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,oBAAoB,EAAE,EAAE,CACjF,mCAAmC,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAClE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { BeaconConfig } from "@lodestar/config";
2
+ import { Slot, gloas } from "@lodestar/types";
3
+ export declare function getExecutionPayloadBidSigningRoot(config: BeaconConfig, stateSlot: Slot, bid: gloas.ExecutionPayloadBid): Uint8Array;
4
+ //# sourceMappingURL=executionPayloadBid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executionPayloadBid.d.ts","sourceRoot":"","sources":["../../src/signatureSets/executionPayloadBid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAC,IAAI,EAAE,KAAK,EAAM,MAAM,iBAAiB,CAAC;AAGjD,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,IAAI,EACf,GAAG,EAAE,KAAK,CAAC,mBAAmB,GAC7B,UAAU,CAIZ"}
@@ -0,0 +1,8 @@
1
+ import { DOMAIN_BEACON_BUILDER } from "@lodestar/params";
2
+ import { ssz } from "@lodestar/types";
3
+ import { computeSigningRoot } from "../util/index.js";
4
+ export function getExecutionPayloadBidSigningRoot(config, stateSlot, bid) {
5
+ const domain = config.getDomain(stateSlot, DOMAIN_BEACON_BUILDER);
6
+ return computeSigningRoot(ssz.gloas.ExecutionPayloadBid, bid, domain);
7
+ }
8
+ //# sourceMappingURL=executionPayloadBid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executionPayloadBid.js","sourceRoot":"","sources":["../../src/signatureSets/executionPayloadBid.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,qBAAqB,EAAC,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAc,GAAG,EAAC,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAEpD,MAAM,UAAU,iCAAiC,CAC/C,MAAoB,EACpB,SAAe,EACf,GAA8B;IAE9B,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;IAElE,OAAO,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AACxE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { BeaconConfig } from "@lodestar/config";
2
+ import { gloas } from "@lodestar/types";
3
+ export declare function getExecutionPayloadEnvelopeSigningRoot(config: BeaconConfig, envelope: gloas.ExecutionPayloadEnvelope): Uint8Array;
4
+ //# sourceMappingURL=executionPayloadEnvelope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executionPayloadEnvelope.d.ts","sourceRoot":"","sources":["../../src/signatureSets/executionPayloadEnvelope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAC,KAAK,EAAM,MAAM,iBAAiB,CAAC;AAG3C,wBAAgB,sCAAsC,CACpD,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,KAAK,CAAC,wBAAwB,GACvC,UAAU,CAIZ"}
@@ -0,0 +1,8 @@
1
+ import { DOMAIN_BEACON_BUILDER } from "@lodestar/params";
2
+ import { ssz } from "@lodestar/types";
3
+ import { computeSigningRoot } from "../util/index.js";
4
+ export function getExecutionPayloadEnvelopeSigningRoot(config, envelope) {
5
+ const domain = config.getDomain(envelope.slot, DOMAIN_BEACON_BUILDER);
6
+ return computeSigningRoot(ssz.gloas.ExecutionPayloadEnvelope, envelope, domain);
7
+ }
8
+ //# sourceMappingURL=executionPayloadEnvelope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executionPayloadEnvelope.js","sourceRoot":"","sources":["../../src/signatureSets/executionPayloadEnvelope.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,qBAAqB,EAAC,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAQ,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAEpD,MAAM,UAAU,sCAAsC,CACpD,MAAoB,EACpB,QAAwC;IAExC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;IAEtE,OAAO,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,wBAAwB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAClF,CAAC"}
@@ -1,10 +1,11 @@
1
1
  import { BeaconConfig } from "@lodestar/config";
2
2
  import { IndexedAttestation, SignedBeaconBlock } from "@lodestar/types";
3
- import { Index2PubkeyCache } from "../cache/pubkeyCache.js";
4
3
  import { SyncCommitteeCache } from "../cache/syncCommitteeCache.js";
5
4
  import { ISignatureSet } from "../util/index.js";
6
5
  export * from "./attesterSlashings.js";
7
6
  export * from "./blsToExecutionChange.js";
7
+ export * from "./executionPayloadBid.js";
8
+ export * from "./executionPayloadEnvelope.js";
8
9
  export * from "./indexedAttestation.js";
9
10
  export * from "./indexedPayloadAttestation.js";
10
11
  export * from "./proposer.js";
@@ -15,7 +16,7 @@ export * from "./voluntaryExits.js";
15
16
  * Includes all signatures on the block (except the deposit signatures) for verification.
16
17
  * Deposits are not included because they can legally have invalid signatures.
17
18
  */
18
- export declare function getBlockSignatureSets(config: BeaconConfig, index2pubkey: Index2PubkeyCache, currentSyncCommitteeIndexed: SyncCommitteeCache, signedBlock: SignedBeaconBlock, indexedAttestations: IndexedAttestation[], opts?: {
19
+ export declare function getBlockSignatureSets(config: BeaconConfig, currentSyncCommitteeIndexed: SyncCommitteeCache, signedBlock: SignedBeaconBlock, indexedAttestations: IndexedAttestation[], opts?: {
19
20
  /** Useful since block proposer signature is verified beforehand on gossip validation */
20
21
  skipProposerSignature?: boolean;
21
22
  }): ISignatureSet[];
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/signatureSets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAC,kBAAkB,EAAE,iBAAiB,EAAkB,MAAM,iBAAiB,CAAC;AAEvF,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAC,kBAAkB,EAAC,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAC;AAS/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AAEpC;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,iBAAiB,EAC/B,2BAA2B,EAAE,kBAAkB,EAC/C,WAAW,EAAE,iBAAiB,EAC9B,mBAAmB,EAAE,kBAAkB,EAAE,EACzC,IAAI,CAAC,EAAE;IACL,wFAAwF;IACxF,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,GACA,aAAa,EAAE,CA0CjB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/signatureSets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAC,kBAAkB,EAAE,iBAAiB,EAAkB,MAAM,iBAAiB,CAAC;AAEvF,OAAO,EAAC,kBAAkB,EAAC,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAC;AAS/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AAEpC;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,YAAY,EACpB,2BAA2B,EAAE,kBAAkB,EAC/C,WAAW,EAAE,iBAAiB,EAC9B,mBAAmB,EAAE,kBAAkB,EAAE,EACzC,IAAI,CAAC,EAAE;IACL,wFAAwF;IACxF,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,GACA,aAAa,EAAE,CAyCjB"}