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

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 (191) 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 +18 -9
  4. package/lib/block/index.js.map +1 -1
  5. package/lib/block/isValidIndexedAttestation.d.ts +3 -2
  6. package/lib/block/isValidIndexedAttestation.d.ts.map +1 -1
  7. package/lib/block/isValidIndexedAttestation.js +4 -4
  8. package/lib/block/isValidIndexedAttestation.js.map +1 -1
  9. package/lib/block/isValidIndexedPayloadAttestation.d.ts +4 -0
  10. package/lib/block/isValidIndexedPayloadAttestation.d.ts.map +1 -0
  11. package/lib/block/isValidIndexedPayloadAttestation.js +14 -0
  12. package/lib/block/isValidIndexedPayloadAttestation.js.map +1 -0
  13. package/lib/block/processAttestationPhase0.d.ts.map +1 -1
  14. package/lib/block/processAttestationPhase0.js +7 -2
  15. package/lib/block/processAttestationPhase0.js.map +1 -1
  16. package/lib/block/processAttestationsAltair.d.ts +3 -3
  17. package/lib/block/processAttestationsAltair.d.ts.map +1 -1
  18. package/lib/block/processAttestationsAltair.js +47 -5
  19. package/lib/block/processAttestationsAltair.js.map +1 -1
  20. package/lib/block/processAttesterSlashing.d.ts +2 -1
  21. package/lib/block/processAttesterSlashing.d.ts.map +1 -1
  22. package/lib/block/processAttesterSlashing.js +5 -4
  23. package/lib/block/processAttesterSlashing.js.map +1 -1
  24. package/lib/block/processConsolidationRequest.d.ts +3 -2
  25. package/lib/block/processConsolidationRequest.d.ts.map +1 -1
  26. package/lib/block/processConsolidationRequest.js +2 -2
  27. package/lib/block/processConsolidationRequest.js.map +1 -1
  28. package/lib/block/processDepositRequest.d.ts +2 -2
  29. package/lib/block/processDepositRequest.d.ts.map +1 -1
  30. package/lib/block/processDepositRequest.js.map +1 -1
  31. package/lib/block/processExecutionPayload.d.ts.map +1 -1
  32. package/lib/block/processExecutionPayload.js +4 -6
  33. package/lib/block/processExecutionPayload.js.map +1 -1
  34. package/lib/block/processExecutionPayloadBid.d.ts +5 -0
  35. package/lib/block/processExecutionPayloadBid.d.ts.map +1 -0
  36. package/lib/block/processExecutionPayloadBid.js +89 -0
  37. package/lib/block/processExecutionPayloadBid.js.map +1 -0
  38. package/lib/block/processExecutionPayloadEnvelope.d.ts +4 -0
  39. package/lib/block/processExecutionPayloadEnvelope.d.ts.map +1 -0
  40. package/lib/block/processExecutionPayloadEnvelope.js +118 -0
  41. package/lib/block/processExecutionPayloadEnvelope.js.map +1 -0
  42. package/lib/block/processOperations.d.ts.map +1 -1
  43. package/lib/block/processOperations.js +8 -2
  44. package/lib/block/processOperations.js.map +1 -1
  45. package/lib/block/processPayloadAttestation.d.ts +4 -0
  46. package/lib/block/processPayloadAttestation.d.ts.map +1 -0
  47. package/lib/block/processPayloadAttestation.js +16 -0
  48. package/lib/block/processPayloadAttestation.js.map +1 -0
  49. package/lib/block/processProposerSlashing.d.ts.map +1 -1
  50. package/lib/block/processProposerSlashing.js +17 -2
  51. package/lib/block/processProposerSlashing.js.map +1 -1
  52. package/lib/block/processRandao.js +1 -1
  53. package/lib/block/processRandao.js.map +1 -1
  54. package/lib/block/processSyncCommittee.d.ts +2 -1
  55. package/lib/block/processSyncCommittee.d.ts.map +1 -1
  56. package/lib/block/processSyncCommittee.js +3 -4
  57. package/lib/block/processSyncCommittee.js.map +1 -1
  58. package/lib/block/processVoluntaryExit.js +2 -2
  59. package/lib/block/processVoluntaryExit.js.map +1 -1
  60. package/lib/block/processWithdrawalRequest.d.ts +2 -2
  61. package/lib/block/processWithdrawalRequest.d.ts.map +1 -1
  62. package/lib/block/processWithdrawalRequest.js +1 -1
  63. package/lib/block/processWithdrawalRequest.js.map +1 -1
  64. package/lib/block/processWithdrawals.d.ts +4 -3
  65. package/lib/block/processWithdrawals.d.ts.map +1 -1
  66. package/lib/block/processWithdrawals.js +89 -19
  67. package/lib/block/processWithdrawals.js.map +1 -1
  68. package/lib/cache/epochCache.d.ts +5 -1
  69. package/lib/cache/epochCache.d.ts.map +1 -1
  70. package/lib/cache/epochCache.js +34 -1
  71. package/lib/cache/epochCache.js.map +1 -1
  72. package/lib/epoch/index.d.ts +4 -2
  73. package/lib/epoch/index.d.ts.map +1 -1
  74. package/lib/epoch/index.js +10 -1
  75. package/lib/epoch/index.js.map +1 -1
  76. package/lib/epoch/processBuilderPendingPayments.d.ts +6 -0
  77. package/lib/epoch/processBuilderPendingPayments.d.ts.map +1 -0
  78. package/lib/epoch/processBuilderPendingPayments.js +28 -0
  79. package/lib/epoch/processBuilderPendingPayments.js.map +1 -0
  80. package/lib/index.d.ts +1 -1
  81. package/lib/index.d.ts.map +1 -1
  82. package/lib/index.js.map +1 -1
  83. package/lib/signatureSets/attesterSlashings.d.ts +4 -3
  84. package/lib/signatureSets/attesterSlashings.d.ts.map +1 -1
  85. package/lib/signatureSets/attesterSlashings.js +6 -6
  86. package/lib/signatureSets/attesterSlashings.js.map +1 -1
  87. package/lib/signatureSets/index.d.ts +3 -1
  88. package/lib/signatureSets/index.d.ts.map +1 -1
  89. package/lib/signatureSets/index.js +9 -8
  90. package/lib/signatureSets/index.js.map +1 -1
  91. package/lib/signatureSets/indexedAttestation.d.ts +4 -3
  92. package/lib/signatureSets/indexedAttestation.d.ts.map +1 -1
  93. package/lib/signatureSets/indexedAttestation.js +6 -6
  94. package/lib/signatureSets/indexedAttestation.js.map +1 -1
  95. package/lib/signatureSets/indexedPayloadAttestation.d.ts +6 -0
  96. package/lib/signatureSets/indexedPayloadAttestation.d.ts.map +1 -0
  97. package/lib/signatureSets/indexedPayloadAttestation.js +11 -0
  98. package/lib/signatureSets/indexedPayloadAttestation.js.map +1 -0
  99. package/lib/signatureSets/proposer.d.ts +5 -4
  100. package/lib/signatureSets/proposer.d.ts.map +1 -1
  101. package/lib/signatureSets/proposer.js +12 -12
  102. package/lib/signatureSets/proposer.js.map +1 -1
  103. package/lib/signatureSets/proposerSlashings.d.ts +3 -2
  104. package/lib/signatureSets/proposerSlashings.d.ts.map +1 -1
  105. package/lib/signatureSets/proposerSlashings.js +4 -5
  106. package/lib/signatureSets/proposerSlashings.js.map +1 -1
  107. package/lib/signatureSets/randao.d.ts +3 -2
  108. package/lib/signatureSets/randao.d.ts.map +1 -1
  109. package/lib/signatureSets/randao.js +4 -5
  110. package/lib/signatureSets/randao.js.map +1 -1
  111. package/lib/signatureSets/voluntaryExits.d.ts +4 -3
  112. package/lib/signatureSets/voluntaryExits.d.ts.map +1 -1
  113. package/lib/signatureSets/voluntaryExits.js +6 -7
  114. package/lib/signatureSets/voluntaryExits.js.map +1 -1
  115. package/lib/slot/index.d.ts +2 -1
  116. package/lib/slot/index.d.ts.map +1 -1
  117. package/lib/slot/index.js +6 -2
  118. package/lib/slot/index.js.map +1 -1
  119. package/lib/slot/upgradeStateToAltair.js +1 -1
  120. package/lib/slot/upgradeStateToAltair.js.map +1 -1
  121. package/lib/slot/upgradeStateToGloas.d.ts +0 -1
  122. package/lib/slot/upgradeStateToGloas.d.ts.map +1 -1
  123. package/lib/slot/upgradeStateToGloas.js +47 -5
  124. package/lib/slot/upgradeStateToGloas.js.map +1 -1
  125. package/lib/stateTransition.js +5 -4
  126. package/lib/stateTransition.js.map +1 -1
  127. package/lib/util/electra.d.ts +5 -5
  128. package/lib/util/electra.d.ts.map +1 -1
  129. package/lib/util/electra.js +2 -1
  130. package/lib/util/electra.js.map +1 -1
  131. package/lib/util/epoch.d.ts +3 -3
  132. package/lib/util/epoch.d.ts.map +1 -1
  133. package/lib/util/epoch.js.map +1 -1
  134. package/lib/util/execution.d.ts +1 -16
  135. package/lib/util/execution.d.ts.map +1 -1
  136. package/lib/util/execution.js +1 -44
  137. package/lib/util/execution.js.map +1 -1
  138. package/lib/util/gloas.d.ts +11 -0
  139. package/lib/util/gloas.d.ts.map +1 -0
  140. package/lib/util/gloas.js +35 -0
  141. package/lib/util/gloas.js.map +1 -0
  142. package/lib/util/seed.d.ts +5 -1
  143. package/lib/util/seed.d.ts.map +1 -1
  144. package/lib/util/seed.js +33 -1
  145. package/lib/util/seed.js.map +1 -1
  146. package/lib/util/validator.d.ts +2 -2
  147. package/lib/util/validator.d.ts.map +1 -1
  148. package/lib/util/validator.js +14 -1
  149. package/lib/util/validator.js.map +1 -1
  150. package/package.json +6 -6
  151. package/src/block/index.ts +32 -15
  152. package/src/block/isValidIndexedAttestation.ts +5 -2
  153. package/src/block/isValidIndexedPayloadAttestation.ts +23 -0
  154. package/src/block/processAttestationPhase0.ts +13 -2
  155. package/src/block/processAttestationsAltair.ts +63 -6
  156. package/src/block/processAttesterSlashing.ts +6 -3
  157. package/src/block/processConsolidationRequest.ts +6 -5
  158. package/src/block/processDepositRequest.ts +5 -2
  159. package/src/block/processExecutionPayload.ts +8 -14
  160. package/src/block/processExecutionPayloadBid.ts +120 -0
  161. package/src/block/processExecutionPayloadEnvelope.ts +181 -0
  162. package/src/block/processOperations.ts +16 -4
  163. package/src/block/processPayloadAttestation.ts +25 -0
  164. package/src/block/processProposerSlashing.ts +25 -4
  165. package/src/block/processRandao.ts +1 -1
  166. package/src/block/processSyncCommittee.ts +4 -3
  167. package/src/block/processVoluntaryExit.ts +2 -2
  168. package/src/block/processWithdrawalRequest.ts +4 -4
  169. package/src/block/processWithdrawals.ts +118 -27
  170. package/src/cache/epochCache.ts +58 -1
  171. package/src/epoch/index.ts +12 -0
  172. package/src/epoch/processBuilderPendingPayments.ts +31 -0
  173. package/src/index.ts +2 -0
  174. package/src/signatureSets/attesterSlashings.ts +7 -3
  175. package/src/signatureSets/index.ts +10 -6
  176. package/src/signatureSets/indexedAttestation.ts +14 -3
  177. package/src/signatureSets/indexedPayloadAttestation.ts +24 -0
  178. package/src/signatureSets/proposer.ts +13 -7
  179. package/src/signatureSets/proposerSlashings.ts +5 -3
  180. package/src/signatureSets/randao.ts +13 -5
  181. package/src/signatureSets/voluntaryExits.ts +7 -4
  182. package/src/slot/index.ts +11 -3
  183. package/src/slot/upgradeStateToAltair.ts +2 -1
  184. package/src/slot/upgradeStateToGloas.ts +49 -5
  185. package/src/stateTransition.ts +5 -5
  186. package/src/util/electra.ts +15 -6
  187. package/src/util/epoch.ts +6 -3
  188. package/src/util/execution.ts +0 -60
  189. package/src/util/gloas.ts +58 -0
  190. package/src/util/seed.ts +57 -1
  191. package/src/util/validator.ts +21 -2
@@ -7,7 +7,7 @@ import {
7
7
  } from "@lodestar/params";
8
8
  import {Epoch, ValidatorIndex, phase0} from "@lodestar/types";
9
9
  import {intDiv} from "@lodestar/utils";
10
- import {BeaconStateAllForks, CachedBeaconStateElectra, EpochCache} from "../types.js";
10
+ import {BeaconStateAllForks, CachedBeaconStateElectra, CachedBeaconStateGloas, EpochCache} from "../types.js";
11
11
  import {hasCompoundingWithdrawalCredential} from "./electra.js";
12
12
 
13
13
  /**
@@ -94,12 +94,31 @@ export function getMaxEffectiveBalance(withdrawalCredentials: Uint8Array): numbe
94
94
  return MIN_ACTIVATION_BALANCE;
95
95
  }
96
96
 
97
- export function getPendingBalanceToWithdraw(state: CachedBeaconStateElectra, validatorIndex: ValidatorIndex): number {
97
+ export function getPendingBalanceToWithdraw(
98
+ fork: ForkSeq,
99
+ state: CachedBeaconStateElectra | CachedBeaconStateGloas,
100
+ validatorIndex: ValidatorIndex
101
+ ): number {
98
102
  let total = 0;
99
103
  for (const item of state.pendingPartialWithdrawals.getAllReadonly()) {
100
104
  if (item.validatorIndex === validatorIndex) {
101
105
  total += Number(item.amount);
102
106
  }
103
107
  }
108
+
109
+ if (fork >= ForkSeq.gloas) {
110
+ const stateGloas = state as CachedBeaconStateGloas;
111
+ for (const item of stateGloas.builderPendingWithdrawals.getAllReadonly()) {
112
+ if (item.builderIndex === validatorIndex) {
113
+ total += item.amount;
114
+ }
115
+ }
116
+ for (const item of stateGloas.builderPendingPayments.getAllReadonly()) {
117
+ if (item.withdrawal.builderIndex === validatorIndex) {
118
+ total += item.withdrawal.amount;
119
+ }
120
+ }
121
+ }
122
+
104
123
  return total;
105
124
  }