@lodestar/state-transition 1.44.0-dev.6ef8199cfa → 1.44.0-dev.762dd5f186

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 (90) hide show
  1. package/lib/block/index.d.ts +2 -0
  2. package/lib/block/index.d.ts.map +1 -1
  3. package/lib/block/index.js +3 -1
  4. package/lib/block/index.js.map +1 -1
  5. package/lib/block/processBuilderDepositRequest.d.ts +10 -0
  6. package/lib/block/processBuilderDepositRequest.d.ts.map +1 -0
  7. package/lib/block/processBuilderDepositRequest.js +27 -0
  8. package/lib/block/processBuilderDepositRequest.js.map +1 -0
  9. package/lib/block/processBuilderExitRequest.d.ts +13 -0
  10. package/lib/block/processBuilderExitRequest.d.ts.map +1 -0
  11. package/lib/block/processBuilderExitRequest.js +29 -0
  12. package/lib/block/processBuilderExitRequest.js.map +1 -0
  13. package/lib/block/processDepositRequest.d.ts +2 -8
  14. package/lib/block/processDepositRequest.d.ts.map +1 -1
  15. package/lib/block/processDepositRequest.js +3 -98
  16. package/lib/block/processDepositRequest.js.map +1 -1
  17. package/lib/block/processExecutionPayloadBid.d.ts +2 -3
  18. package/lib/block/processExecutionPayloadBid.d.ts.map +1 -1
  19. package/lib/block/processExecutionPayloadBid.js +16 -8
  20. package/lib/block/processExecutionPayloadBid.js.map +1 -1
  21. package/lib/block/processOperations.d.ts.map +1 -1
  22. package/lib/block/processOperations.js +3 -2
  23. package/lib/block/processOperations.js.map +1 -1
  24. package/lib/block/processParentExecutionPayload.d.ts +2 -2
  25. package/lib/block/processParentExecutionPayload.d.ts.map +1 -1
  26. package/lib/block/processParentExecutionPayload.js +16 -8
  27. package/lib/block/processParentExecutionPayload.js.map +1 -1
  28. package/lib/block/processProposerSlashing.d.ts.map +1 -1
  29. package/lib/block/processProposerSlashing.js +9 -1
  30. package/lib/block/processProposerSlashing.js.map +1 -1
  31. package/lib/block/processVoluntaryExit.d.ts +1 -1
  32. package/lib/block/processVoluntaryExit.d.ts.map +1 -1
  33. package/lib/block/processVoluntaryExit.js +1 -35
  34. package/lib/block/processVoluntaryExit.js.map +1 -1
  35. package/lib/cache/epochCache.d.ts.map +1 -1
  36. package/lib/cache/epochCache.js +10 -7
  37. package/lib/cache/epochCache.js.map +1 -1
  38. package/lib/epoch/processPendingDeposits.d.ts.map +1 -1
  39. package/lib/epoch/processPendingDeposits.js +4 -3
  40. package/lib/epoch/processPendingDeposits.js.map +1 -1
  41. package/lib/epoch/processProposerLookahead.d.ts.map +1 -1
  42. package/lib/epoch/processProposerLookahead.js +7 -2
  43. package/lib/epoch/processProposerLookahead.js.map +1 -1
  44. package/lib/slot/upgradeStateToGloas.js +35 -29
  45. package/lib/slot/upgradeStateToGloas.js.map +1 -1
  46. package/lib/stateView/beaconStateView.d.ts +5 -2
  47. package/lib/stateView/beaconStateView.d.ts.map +1 -1
  48. package/lib/stateView/beaconStateView.js +14 -0
  49. package/lib/stateView/beaconStateView.js.map +1 -1
  50. package/lib/stateView/interface.d.ts +30 -2
  51. package/lib/stateView/interface.d.ts.map +1 -1
  52. package/lib/stateView/interface.js.map +1 -1
  53. package/lib/stateView/nativeBeaconStateView.d.ts +230 -0
  54. package/lib/stateView/nativeBeaconStateView.d.ts.map +1 -0
  55. package/lib/stateView/nativeBeaconStateView.js +717 -0
  56. package/lib/stateView/nativeBeaconStateView.js.map +1 -0
  57. package/lib/stateView/stateViewFactory.d.ts.map +1 -1
  58. package/lib/stateView/stateViewFactory.js +2 -0
  59. package/lib/stateView/stateViewFactory.js.map +1 -1
  60. package/lib/util/epochShuffling.js +1 -1
  61. package/lib/util/epochShuffling.js.map +1 -1
  62. package/lib/util/gloas.d.ts +31 -0
  63. package/lib/util/gloas.d.ts.map +1 -1
  64. package/lib/util/gloas.js +83 -1
  65. package/lib/util/gloas.js.map +1 -1
  66. package/lib/util/shuffling.d.ts +2 -2
  67. package/lib/util/shuffling.d.ts.map +1 -1
  68. package/lib/util/shuffling.js +4 -3
  69. package/lib/util/shuffling.js.map +1 -1
  70. package/package.json +7 -8
  71. package/src/block/index.ts +6 -1
  72. package/src/block/processBuilderDepositRequest.ts +43 -0
  73. package/src/block/processBuilderExitRequest.ts +39 -0
  74. package/src/block/processDepositRequest.ts +4 -124
  75. package/src/block/processExecutionPayloadBid.ts +24 -9
  76. package/src/block/processOperations.ts +3 -2
  77. package/src/block/processParentExecutionPayload.ts +23 -11
  78. package/src/block/processProposerSlashing.ts +9 -4
  79. package/src/block/processVoluntaryExit.ts +2 -61
  80. package/src/cache/epochCache.ts +10 -7
  81. package/src/epoch/processPendingDeposits.ts +2 -0
  82. package/src/epoch/processProposerLookahead.ts +8 -1
  83. package/src/slot/upgradeStateToGloas.ts +49 -33
  84. package/src/stateView/beaconStateView.ts +18 -1
  85. package/src/stateView/interface.ts +34 -1
  86. package/src/stateView/nativeBeaconStateView.ts +915 -0
  87. package/src/stateView/stateViewFactory.ts +2 -0
  88. package/src/util/epochShuffling.ts +1 -1
  89. package/src/util/gloas.ts +104 -1
  90. package/src/util/shuffling.ts +4 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nativeBeaconStateView.js","sourceRoot":"","sources":["../../src/stateView/nativeBeaconStateView.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"stateViewFactory.d.ts","sourceRoot":"","sources":["../../src/stateView/stateViewFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAC,WAAW,EAAoB,MAAM,yBAAyB,CAAC;AAEvE,OAAO,EAAC,mBAAmB,EAAC,MAAM,mBAAmB,CAAC;AAGtD,OAAO,EAAC,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAIhD,KAAK,UAAU,GAAG;IAChB,SAAS,EAAE,KAAK,CAAC;IACjB,WAAW,EAAE,mBAAmB,CAAC;IACjC,MAAM,EAAE,YAAY,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,gBAAgB,CAOrF;AAeD,KAAK,eAAe,GAAG;IACrB,SAAS,EAAE,KAAK,CAAC;IACjB,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,uCAAuC,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,GAAG,gBAAgB,CASjH"}
1
+ {"version":3,"file":"stateViewFactory.d.ts","sourceRoot":"","sources":["../../src/stateView/stateViewFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAC,WAAW,EAAoB,MAAM,yBAAyB,CAAC;AAEvE,OAAO,EAAC,mBAAmB,EAAC,MAAM,mBAAmB,CAAC;AAGtD,OAAO,EAAC,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAIhD,KAAK,UAAU,GAAG;IAChB,SAAS,EAAE,KAAK,CAAC;IACjB,WAAW,EAAE,mBAAmB,CAAC;IACjC,MAAM,EAAE,YAAY,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,gBAAgB,CAQrF;AAeD,KAAK,eAAe,GAAG;IACrB,SAAS,EAAE,KAAK,CAAC;IACjB,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,uCAAuC,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,GAAG,gBAAgB,CAUjH"}
@@ -13,6 +13,7 @@ import { BeaconStateView } from "./beaconStateView.js";
13
13
  export function createBeaconStateView(opts) {
14
14
  if (opts.useNative) {
15
15
  throw new Error("Native (Zig) BeaconStateView not yet implemented");
16
+ // TODO: return a new instance of NativeBeaconStateView
16
17
  }
17
18
  const { anchorState, config, pubkeyCache } = opts;
18
19
  const cachedState = createCachedBeaconState(anchorState, { config, pubkeyCache }, { skipSyncPubkeys: true });
@@ -36,6 +37,7 @@ function syncPubkeyCache(state, pubkeyCache) {
36
37
  export function createBeaconStateViewForHistoricalRegen(opts) {
37
38
  if (opts.useNative) {
38
39
  throw new Error("Native (Zig) BeaconStateView not yet implemented");
40
+ // TODO: return a new instance of NativeBeaconStateView
39
41
  }
40
42
  const { config, stateBytes } = opts;
41
43
  const state = getStateTypeFromBytes(config, stateBytes).deserializeToViewDU(stateBytes);
@@ -1 +1 @@
1
- {"version":3,"file":"stateViewFactory.js","sourceRoot":"","sources":["../../src/stateView/stateViewFactory.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAC,uBAAuB,EAAC,MAAM,wBAAwB,CAAC;AAE/D,OAAO,EAAC,qBAAqB,EAAC,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AAiBrD;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAA6B,EAAoB;IACrF,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,EAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAC,GAAG,IAAI,CAAC;IAChD,MAAM,WAAW,GAAG,uBAAuB,CAAC,WAAW,EAAE,EAAC,MAAM,EAAE,WAAW,EAAC,EAAE,EAAC,eAAe,EAAE,IAAI,EAAC,CAAC,CAAC;IACzG,OAAO,IAAI,eAAe,CAAC,WAAW,CAAC,CAAC;AAAA,CACzC;AAED,iEAAiE;AAEjE,sEAAsE;AACtE,MAAM,gBAAgB,GAAG,iBAAiB,EAAE,CAAC;AAE7C,SAAS,eAAe,CAAC,KAA0B,EAAE,WAAwB,EAAQ;IACnF,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;IACzC,KAAK,IAAI,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACtD,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC;AAAA,CACF;AAaD;;;;GAIG;AACH,MAAM,UAAU,uCAAuC,CAAC,IAAuC,EAAoB;IACjH,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,EAAC,MAAM,EAAE,UAAU,EAAC,GAAG,IAAI,CAAC;IAClC,MAAM,KAAK,GAAG,qBAAqB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACxF,eAAe,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;IACzC,MAAM,WAAW,GAAG,uBAAuB,CAAC,KAAK,EAAE,EAAC,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAC,EAAE,EAAC,eAAe,EAAE,IAAI,EAAC,CAAC,CAAC;IACrH,OAAO,IAAI,eAAe,CAAC,WAAW,CAAC,CAAC;AAAA,CACzC"}
1
+ {"version":3,"file":"stateViewFactory.js","sourceRoot":"","sources":["../../src/stateView/stateViewFactory.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAC,uBAAuB,EAAC,MAAM,wBAAwB,CAAC;AAE/D,OAAO,EAAC,qBAAqB,EAAC,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AAiBrD;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAA6B,EAAoB;IACrF,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACpE,uDAAuD;IACzD,CAAC;IACD,MAAM,EAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAC,GAAG,IAAI,CAAC;IAChD,MAAM,WAAW,GAAG,uBAAuB,CAAC,WAAW,EAAE,EAAC,MAAM,EAAE,WAAW,EAAC,EAAE,EAAC,eAAe,EAAE,IAAI,EAAC,CAAC,CAAC;IACzG,OAAO,IAAI,eAAe,CAAC,WAAW,CAAC,CAAC;AAAA,CACzC;AAED,iEAAiE;AAEjE,sEAAsE;AACtE,MAAM,gBAAgB,GAAG,iBAAiB,EAAE,CAAC;AAE7C,SAAS,eAAe,CAAC,KAA0B,EAAE,WAAwB,EAAQ;IACnF,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;IACzC,KAAK,IAAI,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACtD,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC;AAAA,CACF;AAaD;;;;GAIG;AACH,MAAM,UAAU,uCAAuC,CAAC,IAAuC,EAAoB;IACjH,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACpE,uDAAuD;IACzD,CAAC;IACD,MAAM,EAAC,MAAM,EAAE,UAAU,EAAC,GAAG,IAAI,CAAC;IAClC,MAAM,KAAK,GAAG,qBAAqB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACxF,eAAe,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;IACzC,MAAM,WAAW,GAAG,uBAAuB,CAAC,KAAK,EAAE,EAAC,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAC,EAAE,EAAC,eAAe,EAAE,IAAI,EAAC,CAAC,CAAC;IACrH,OAAO,IAAI,eAAe,CAAC,WAAW,CAAC,CAAC;AAAA,CACzC"}
@@ -60,7 +60,7 @@ state, activeIndices, epoch) {
60
60
  };
61
61
  }
62
62
  export function calculateDecisionRoot(state, epoch) {
63
- const pivotSlot = computeStartSlotAtEpoch(epoch - 1) - 1;
63
+ const pivotSlot = Math.max(GENESIS_SLOT, computeStartSlotAtEpoch(epoch - 1) - 1);
64
64
  return toRootHex(getBlockRootAtSlot(state, pivotSlot));
65
65
  }
66
66
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"epochShuffling.js","sourceRoot":"","sources":["../../src/util/epochShuffling.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"epochShuffling.js","sourceRoot":"","sources":["../../src/util/epochShuffling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAE,aAAa,EAAC,MAAM,gCAAgC,CAAC;AAEjF,OAAO,EACL,sBAAsB,EACtB,YAAY,EACZ,uBAAuB,EACvB,mBAAmB,EACnB,eAAe,EACf,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAiC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAC,MAAM,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAC,kBAAkB,EAAC,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAC,uBAAuB,EAAC,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAC,uBAAuB,EAAC,MAAM,YAAY,CAAC;AACnD,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AA0ClC,MAAM,UAAU,qBAAqB,CAAC,oBAA4B,EAAU;IAC1E,MAAM,iBAAiB,GAAG,MAAM,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC;IACxE,MAAM,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,EAAE,qBAAqB,CAAC,CAAC;IAC3E,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,iBAAiB,CAAC,CAAC,CAAC;AAAA,CAC1E;AAED,SAAS,4BAA4B,CAAC,SAAsB,EAAmB;IAC7E,MAAM,oBAAoB,GAAG,SAAS,CAAC,MAAM,CAAC;IAC9C,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,oBAAoB,CAAC,CAAC;IACtE,MAAM,cAAc,GAAG,iBAAiB,GAAG,eAAe,CAAC;IAE3D,MAAM,UAAU,GAAG,IAAI,KAAK,CAAgB,eAAe,CAAC,CAAC;IAC7D,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,eAAe,EAAE,IAAI,EAAE,EAAE,CAAC;QAClD,MAAM,cAAc,GAAG,IAAI,KAAK,CAAc,iBAAiB,CAAC,CAAC;QAEjE,KAAK,IAAI,cAAc,GAAG,CAAC,EAAE,cAAc,GAAG,iBAAiB,EAAE,cAAc,EAAE,EAAE,CAAC;YAClF,MAAM,KAAK,GAAG,IAAI,GAAG,iBAAiB,GAAG,cAAc,CAAC;YACxD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,oBAAoB,GAAG,KAAK,CAAC,GAAG,cAAc,CAAC,CAAC;YAChF,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,oBAAoB,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC;YACpF,IAAI,CAAC,CAAC,WAAW,IAAI,SAAS,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CAAC,0BAA0B,WAAW,mCAAmC,SAAS,EAAE,CAAC,CAAC;YACvG,CAAC;YACD,cAAc,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAC9E,CAAC;QAED,UAAU,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC;IACpC,CAAC;IAED,OAAO,UAAU,CAAC;AAAA,CACnB;AAED,MAAM,UAAU,qBAAqB;AACnC,4EAA4E;AAC5E,KAA0B,EAC1B,aAA0B,EAC1B,KAAY,EACI;IAChB,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,sBAAsB,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,aAAa,CAAC,aAAa,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC;IAC1E,MAAM,UAAU,GAAG,4BAA4B,CAAC,SAAS,CAAC,CAAC;IAC3D,OAAO;QACL,KAAK;QACL,aAAa;QACb,SAAS;QACT,UAAU;QACV,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM;KACxC,CAAC;AAAA,CACH;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B;AAC9C,4EAA4E;AAC5E,KAA0B,EAC1B,aAA0B,EAC1B,KAAY,EACa;IACzB,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,sBAAsB,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,aAAa,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC;IACrF,MAAM,UAAU,GAAG,4BAA4B,CAAC,SAAS,CAAC,CAAC;IAC3D,OAAO;QACL,KAAK;QACL,aAAa;QACb,SAAS;QACT,UAAU;QACV,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM;KACxC,CAAC;AAAA,CACH;AAED,MAAM,UAAU,qBAAqB,CAAC,KAA0B,EAAE,KAAY,EAAW;IACvF,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,uBAAuB,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACjF,OAAO,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;AAAA,CACxD;AAED;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAC5C,MAAoB,EACpB,KAA0B,EAC1B,KAAY,EACH;IACT,OAAO,KAAK,CAAC,IAAI,GAAG,YAAY;QAC9B,CAAC,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC;QACrC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC,uBAAuB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;AAAA,CAC9G"}
@@ -1,3 +1,4 @@
1
+ import { BeaconConfig } from "@lodestar/config";
1
2
  import { BuilderIndex, Epoch, ValidatorIndex, gloas } from "@lodestar/types";
2
3
  import { AttestationData } from "@lodestar/types/phase0";
3
4
  import { CachedBeaconStateFulu, CachedBeaconStateGloas } from "../types.js";
@@ -24,6 +25,20 @@ export declare function convertValidatorIndexToBuilderIndex(validatorIndex: Vali
24
25
  * Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.1/specs/gloas/beacon-chain.md#isactivebuilder
25
26
  */
26
27
  export declare function isActiveBuilder(builder: gloas.Builder, finalizedEpoch: Epoch): boolean;
28
+ /**
29
+ * Compute the gas limit that satisfies the EIP-1559 adjustment rule from `parentGasLimit`,
30
+ * clamping `targetGasLimit` into the allowed window of `±max(parentGasLimit / 1024, 1) - 1`.
31
+ *
32
+ * From https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1559.md
33
+ */
34
+ export declare function getExpectedGasLimit(parentGasLimit: number, targetGasLimit: number): number;
35
+ /**
36
+ * Check if `gasLimit` is compatible with `targetGasLimit` under the EIP-1559 transition rule
37
+ * from `parentGasLimit`. The bid must hit `targetGasLimit` when the target is within one
38
+ * adjustment step of the parent, otherwise it must hit the clamped boundary.
39
+ * Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.8/specs/gloas/builder.md#new-is_gas_limit_target_compatible
40
+ */
41
+ export declare function isGasLimitTargetCompatible(parentGasLimit: number, gasLimit: number, targetGasLimit: number): boolean;
27
42
  /**
28
43
  * Get the total pending balance to withdraw for a builder (from withdrawals + payments).
29
44
  * Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.1/specs/gloas/beacon-chain.md#new-get_pending_balance_to_withdraw_for_builder
@@ -54,4 +69,20 @@ export declare function getPtcWindowEpochCacheData(state: CachedBeaconStateGloas
54
69
  payloadTimelinessCommittees: Uint32Array[];
55
70
  nextPayloadTimelinessCommittees: Uint32Array[];
56
71
  };
72
+ /**
73
+ * Add a new builder to the builders registry. Reuses slots from exited and fully withdrawn
74
+ * builders when available, otherwise appends.
75
+ *
76
+ * Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.11/specs/gloas/beacon-chain.md#new-add_builder_to_registry
77
+ */
78
+ export declare function addBuilderToRegistry(state: CachedBeaconStateGloas, pubkey: Uint8Array, version: number, executionAddress: Uint8Array, amount: number, slot: number): void;
79
+ /**
80
+ * Verify the proof of possession on a builder deposit request.
81
+ *
82
+ * The dedicated `DOMAIN_BUILDER_DEPOSIT` (vs the validator `DOMAIN_DEPOSIT`) prevents replay
83
+ * of validator deposit signatures against the builder deposit contract and vice versa.
84
+ *
85
+ * Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.11/specs/gloas/beacon-chain.md#new-is_valid_builder_deposit_signature
86
+ */
87
+ export declare function isValidBuilderDepositSignature(config: BeaconConfig, pubkey: Uint8Array, withdrawalCredentials: Uint8Array, amount: number, signature: Uint8Array): boolean;
57
88
  //# sourceMappingURL=gloas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gloas.d.ts","sourceRoot":"","sources":["../../src/util/gloas.ts"],"names":[],"mappings":"AAYA,OAAO,EAAC,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EAAC,qBAAqB,EAAE,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAI1E,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAIzC,wBAAgB,6BAA6B,CAAC,qBAAqB,EAAE,UAAU,GAAG,OAAO,CAExF;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM,CAMtF;AAOD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAG9D;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,CAAC,YAAY,EAAE,YAAY,GAAG,cAAc,CAG9F;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,CAAC,cAAc,EAAE,cAAc,GAAG,YAAY,CAGhG;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,GAAG,OAAO,CAEtF;AAED;;;GAGG;AACH,wBAAgB,qCAAqC,CACnD,KAAK,EAAE,sBAAsB,EAC7B,YAAY,EAAE,YAAY,GACzB,MAAM,CAoBR;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,sBAAsB,EAC7B,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,MAAM,GAChB,OAAO,CAUT;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,YAAY,GAAG,IAAI,CAWnG;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAE,UAAU,GAAG,YAAY,GAAG,IAAI,CAO/G;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,sBAAsB,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAOnG;AAED,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAOnG;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,qBAAqB,GAAG,WAAW,EAAE,CAqB/E;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,sBAAsB,GAAG;IACzE,mCAAmC,EAAE,WAAW,EAAE,CAAC;IACnD,2BAA2B,EAAE,WAAW,EAAE,CAAC;IAC3C,+BAA+B,EAAE,WAAW,EAAE,CAAC;CAChD,CAaA"}
1
+ {"version":3,"file":"gloas.d.ts","sourceRoot":"","sources":["../../src/util/gloas.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAc9C,OAAO,EAAC,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAM,MAAM,iBAAiB,CAAC;AAChF,OAAO,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAC;AAGvD,OAAO,EAAC,qBAAqB,EAAE,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAK1E,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAKzC,wBAAgB,6BAA6B,CAAC,qBAAqB,EAAE,UAAU,GAAG,OAAO,CAExF;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM,CAMtF;AAOD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAG9D;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,CAAC,YAAY,EAAE,YAAY,GAAG,cAAc,CAG9F;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,CAAC,cAAc,EAAE,cAAc,GAAG,YAAY,CAGhG;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,GAAG,OAAO,CAEtF;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAU1F;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAEpH;AAED;;;GAGG;AACH,wBAAgB,qCAAqC,CACnD,KAAK,EAAE,sBAAsB,EAC7B,YAAY,EAAE,YAAY,GACzB,MAAM,CAoBR;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,sBAAsB,EAC7B,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,MAAM,GAChB,OAAO,CAUT;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,YAAY,GAAG,IAAI,CAWnG;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAE,UAAU,GAAG,YAAY,GAAG,IAAI,CAO/G;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,sBAAsB,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAOnG;AAED,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAOnG;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,qBAAqB,GAAG,WAAW,EAAE,CAqB/E;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,sBAAsB,GAAG;IACzE,mCAAmC,EAAE,WAAW,EAAE,CAAC;IACnD,2BAA2B,EAAE,WAAW,EAAE,CAAC;IAC3C,+BAA+B,EAAE,WAAW,EAAE,CAAC;CAChD,CAaA;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,sBAAsB,EAC7B,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,UAAU,EAC5B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACX,IAAI,CA2BN;AAED;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,UAAU,EAClB,qBAAqB,EAAE,UAAU,EACjC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,UAAU,GACpB,OAAO,CAWT"}
package/lib/util/gloas.js CHANGED
@@ -1,9 +1,14 @@
1
- import { BUILDER_INDEX_FLAG, BUILDER_PAYMENT_THRESHOLD_DENOMINATOR, BUILDER_PAYMENT_THRESHOLD_NUMERATOR, BUILDER_WITHDRAWAL_PREFIX, EFFECTIVE_BALANCE_INCREMENT, FAR_FUTURE_EPOCH, MIN_DEPOSIT_AMOUNT, MIN_SEED_LOOKAHEAD, PTC_SIZE, SLOTS_PER_EPOCH, } from "@lodestar/params";
1
+ import { PublicKey, Signature, verify } from "@chainsafe/blst";
2
+ import { BUILDER_INDEX_FLAG, BUILDER_PAYMENT_THRESHOLD_DENOMINATOR, BUILDER_PAYMENT_THRESHOLD_NUMERATOR, BUILDER_WITHDRAWAL_PREFIX, DOMAIN_BUILDER_DEPOSIT, EFFECTIVE_BALANCE_INCREMENT, FAR_FUTURE_EPOCH, MIN_DEPOSIT_AMOUNT, MIN_SEED_LOOKAHEAD, PTC_SIZE, SLOTS_PER_EPOCH, } from "@lodestar/params";
3
+ import { ssz } from "@lodestar/types";
2
4
  import { byteArrayEquals } from "@lodestar/utils";
5
+ import { ZERO_HASH } from "../constants/index.js";
3
6
  import { getBlockRootAtSlot } from "./blockRoot.js";
7
+ import { computeDomain } from "./domain.js";
4
8
  import { computeEpochAtSlot } from "./epoch.js";
5
9
  import { computeEpochShuffling } from "./epochShuffling.js";
6
10
  import { computePayloadTimelinessCommitteesForEpoch } from "./seed.js";
11
+ import { computeSigningRoot } from "./signingRoot.js";
7
12
  import { getActiveValidatorIndices } from "./validator.js";
8
13
  export function isBuilderWithdrawalCredential(withdrawalCredentials) {
9
14
  return withdrawalCredentials[0] === BUILDER_WITHDRAWAL_PREFIX;
@@ -48,6 +53,30 @@ export function convertValidatorIndexToBuilderIndex(validatorIndex) {
48
53
  export function isActiveBuilder(builder, finalizedEpoch) {
49
54
  return builder.depositEpoch < finalizedEpoch && builder.withdrawableEpoch === FAR_FUTURE_EPOCH;
50
55
  }
56
+ /**
57
+ * Compute the gas limit that satisfies the EIP-1559 adjustment rule from `parentGasLimit`,
58
+ * clamping `targetGasLimit` into the allowed window of `±max(parentGasLimit / 1024, 1) - 1`.
59
+ *
60
+ * From https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1559.md
61
+ */
62
+ export function getExpectedGasLimit(parentGasLimit, targetGasLimit) {
63
+ const maxGasLimitDifference = Math.max(Math.floor(parentGasLimit / 1024), 1) - 1;
64
+ if (targetGasLimit > parentGasLimit) {
65
+ const gasDiff = targetGasLimit - parentGasLimit;
66
+ return parentGasLimit + Math.min(gasDiff, maxGasLimitDifference);
67
+ }
68
+ const gasDiff = parentGasLimit - targetGasLimit;
69
+ return parentGasLimit - Math.min(gasDiff, maxGasLimitDifference);
70
+ }
71
+ /**
72
+ * Check if `gasLimit` is compatible with `targetGasLimit` under the EIP-1559 transition rule
73
+ * from `parentGasLimit`. The bid must hit `targetGasLimit` when the target is within one
74
+ * adjustment step of the parent, otherwise it must hit the clamped boundary.
75
+ * Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.8/specs/gloas/builder.md#new-is_gas_limit_target_compatible
76
+ */
77
+ export function isGasLimitTargetCompatible(parentGasLimit, gasLimit, targetGasLimit) {
78
+ return gasLimit === getExpectedGasLimit(parentGasLimit, targetGasLimit);
79
+ }
51
80
  /**
52
81
  * Get the total pending balance to withdraw for a builder (from withdrawals + payments).
53
82
  * Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.1/specs/gloas/beacon-chain.md#new-get_pending_balance_to_withdraw_for_builder
@@ -147,4 +176,57 @@ export function getPtcWindowEpochCacheData(state) {
147
176
  nextPayloadTimelinessCommittees: toUint32Arrays(nextPtcWindow),
148
177
  };
149
178
  }
179
+ /**
180
+ * Add a new builder to the builders registry. Reuses slots from exited and fully withdrawn
181
+ * builders when available, otherwise appends.
182
+ *
183
+ * Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.11/specs/gloas/beacon-chain.md#new-add_builder_to_registry
184
+ */
185
+ export function addBuilderToRegistry(state, pubkey, version, executionAddress, amount, slot) {
186
+ const currentEpoch = computeEpochAtSlot(state.slot);
187
+ const depositEpoch = computeEpochAtSlot(slot);
188
+ let builderIndex = state.builders.length;
189
+ for (let i = 0; i < state.builders.length; i++) {
190
+ const builder = state.builders.getReadonly(i);
191
+ if (builder.withdrawableEpoch <= currentEpoch && builder.balance === 0) {
192
+ builderIndex = i;
193
+ break;
194
+ }
195
+ }
196
+ const newBuilder = ssz.gloas.Builder.toViewDU({
197
+ pubkey,
198
+ version,
199
+ executionAddress,
200
+ balance: amount,
201
+ depositEpoch,
202
+ withdrawableEpoch: FAR_FUTURE_EPOCH,
203
+ });
204
+ if (builderIndex < state.builders.length) {
205
+ state.builders.set(builderIndex, newBuilder);
206
+ }
207
+ else {
208
+ state.builders.push(newBuilder);
209
+ }
210
+ }
211
+ /**
212
+ * Verify the proof of possession on a builder deposit request.
213
+ *
214
+ * The dedicated `DOMAIN_BUILDER_DEPOSIT` (vs the validator `DOMAIN_DEPOSIT`) prevents replay
215
+ * of validator deposit signatures against the builder deposit contract and vice versa.
216
+ *
217
+ * Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.11/specs/gloas/beacon-chain.md#new-is_valid_builder_deposit_signature
218
+ */
219
+ export function isValidBuilderDepositSignature(config, pubkey, withdrawalCredentials, amount, signature) {
220
+ const depositMessage = { pubkey, withdrawalCredentials, amount };
221
+ const domain = computeDomain(DOMAIN_BUILDER_DEPOSIT, config.GENESIS_FORK_VERSION, ZERO_HASH);
222
+ const signingRoot = computeSigningRoot(ssz.phase0.DepositMessage, depositMessage, domain);
223
+ try {
224
+ const publicKey = PublicKey.fromBytes(pubkey, true);
225
+ const sig = Signature.fromBytes(signature, true);
226
+ return verify(signingRoot, publicKey, sig);
227
+ }
228
+ catch (_e) {
229
+ return false;
230
+ }
231
+ }
150
232
  //# sourceMappingURL=gloas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gloas.js","sourceRoot":"","sources":["../../src/util/gloas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gloas.js","sourceRoot":"","sources":["../../src/util/gloas.ts"],"names":[],"mappings":"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"}
@@ -9,8 +9,8 @@ import { EpochShuffling } from "./epochShuffling.js";
9
9
  * Computed for the requested epoch, not `state.epoch`, so it is correct when `state` is one
10
10
  * epoch off the requested epoch (e.g. serving next-epoch duties from the current state).
11
11
  *
12
- * Returns `null` when the genesis block decides its own shuffling (caller falls back to the
13
- * genesis block root).
12
+ * Returns `null` when the decision block is not in the state's past (the genesis block decides
13
+ * its own shuffling, or it has not been produced yet); caller supplies the fallback.
14
14
  */
15
15
  export declare function proposerShufflingDecisionRoot(fork: ForkName, state: IBeaconStateView, proposalEpoch: Epoch): Root | null;
16
16
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"shuffling.d.ts","sourceRoot":"","sources":["../../src/util/shuffling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,OAAO,EAAkC,MAAM,kBAAkB,CAAC;AACpF,OAAO,EACL,WAAW,EACX,cAAc,EACd,KAAK,EACL,kBAAkB,EAClB,IAAI,EACJ,IAAI,EACJ,cAAc,EAEf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,yBAAyB,EAAC,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAG3D,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAEnD;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,gBAAgB,EACvB,aAAa,EAAE,KAAK,GACnB,IAAI,GAAG,IAAI,CAMb;AAUD;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,yBAAyB,EAAE,cAAc,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,CAMlH;AAsCD,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,cAAc,CAAC;IAC/B,cAAc,EAAE,cAAc,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,uBAAuB,EAAE,MAAM,CAAC;IAChC,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,wBAAgB,6BAA6B,CAC3C,cAAc,EAAE,cAAc,EAC9B,yBAAyB,EAAE,cAAc,EAAE,GAC1C,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,CAyBnC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,cAAc,EAAE,cAAc,EAC9B,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,WAAW,GACvB,kBAAkB,CAWpB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,GAAG,MAAM,EAAE,CA6BrH;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,GAAG,WAAW,CAEjH;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,cAAc,EAAE,cAAc,EAC9B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,cAAc,EAAE,GACxB,WAAW,EAAE,CAoBf;AAED,oBAAY,kBAAkB;IAC5B,4BAA4B,iDAAiD;CAC9E;AAED,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,kBAAkB,CAAC,4BAA4B,CAAC;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,qBAAa,cAAe,SAAQ,aAAa,CAAC,kBAAkB,CAAC;CAAG"}
1
+ {"version":3,"file":"shuffling.d.ts","sourceRoot":"","sources":["../../src/util/shuffling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,OAAO,EAAkC,MAAM,kBAAkB,CAAC;AACpF,OAAO,EACL,WAAW,EACX,cAAc,EACd,KAAK,EACL,kBAAkB,EAClB,IAAI,EACJ,IAAI,EACJ,cAAc,EAEf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,yBAAyB,EAAC,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAG3D,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAEnD;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,gBAAgB,EACvB,aAAa,EAAE,KAAK,GACnB,IAAI,GAAG,IAAI,CAOb;AAUD;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,yBAAyB,EAAE,cAAc,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,CAMlH;AAsCD,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,cAAc,CAAC;IAC/B,cAAc,EAAE,cAAc,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,uBAAuB,EAAE,MAAM,CAAC;IAChC,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,wBAAgB,6BAA6B,CAC3C,cAAc,EAAE,cAAc,EAC9B,yBAAyB,EAAE,cAAc,EAAE,GAC1C,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,CAyBnC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,cAAc,EAAE,cAAc,EAC9B,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,WAAW,GACvB,kBAAkB,CAWpB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,GAAG,MAAM,EAAE,CA6BrH;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,GAAG,WAAW,CAEjH;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,cAAc,EAAE,cAAc,EAC9B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,cAAc,EAAE,GACxB,WAAW,EAAE,CAoBf;AAED,oBAAY,kBAAkB;IAC5B,4BAA4B,iDAAiD;CAC9E;AAED,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,kBAAkB,CAAC,4BAA4B,CAAC;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,qBAAa,cAAe,SAAQ,aAAa,CAAC,kBAAkB,CAAC;CAAG"}
@@ -7,12 +7,13 @@ import { computeStartSlotAtEpoch } from "./epoch.js";
7
7
  * Computed for the requested epoch, not `state.epoch`, so it is correct when `state` is one
8
8
  * epoch off the requested epoch (e.g. serving next-epoch duties from the current state).
9
9
  *
10
- * Returns `null` when the genesis block decides its own shuffling (caller falls back to the
11
- * genesis block root).
10
+ * Returns `null` when the decision block is not in the state's past (the genesis block decides
11
+ * its own shuffling, or it has not been produced yet); caller supplies the fallback.
12
12
  */
13
13
  export function proposerShufflingDecisionRoot(fork, state, proposalEpoch) {
14
14
  const decisionSlot = proposerShufflingDecisionSlot(fork, proposalEpoch);
15
- if (state.slot === decisionSlot) {
15
+ // Return null when the decision block is not in the state's past or the getBlockRootAtSlot() api will throw
16
+ if (decisionSlot >= state.slot) {
16
17
  return null;
17
18
  }
18
19
  return state.getBlockRootAtSlot(decisionSlot);
@@ -1 +1 @@
1
- {"version":3,"file":"shuffling.js","sourceRoot":"","sources":["../../src/util/shuffling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,OAAO,EAAE,eAAe,EAAE,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAWpF,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAG9C,OAAO,EAAC,kBAAkB,EAAC,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAC,uBAAuB,EAAC,MAAM,YAAY,CAAC;AAGnD;;;;;;;GAOG;AACH,MAAM,UAAU,6BAA6B,CAC3C,IAAc,EACd,KAAuB,EACvB,aAAoB,EACP;IACb,MAAM,YAAY,GAAG,6BAA6B,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACxE,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;AAAA,CAC/C;AAED,6EAA6E;AAC7E,SAAS,6BAA6B,CAAC,IAAc,EAAE,aAAoB,EAAQ;IACjF,0FAA0F;IAC1F,iFAAiF;IACjF,MAAM,aAAa,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;IAC/E,OAAO,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAAA,CAChE;AAED;;;;;;GAMG;AACH,MAAM,UAAU,6BAA6B,CAAC,KAAgC,EAAE,cAAqB,EAAe;IAClH,MAAM,YAAY,GAAG,6BAA6B,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IAC1E,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,kBAAkB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;AAAA,CAChD;AAED;;;GAGG;AACH,SAAS,6BAA6B,CAAC,KAAgC,EAAE,cAAqB,EAAQ;IACpG,MAAM,KAAK,GAAG,8BAA8B,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IACpE,MAAM,IAAI,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC5C,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAAA,CAC9B;AAED;;;;;;;;GAQG;AACH,SAAS,8BAA8B,CAAC,KAAgC,EAAE,cAAqB,EAAS;IACtG,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;IAE1C,OAAO;IACP,IAAI,cAAc,KAAK,YAAY,GAAG,CAAC;QAAE,OAAO,YAAY,CAAC;IAC7D,UAAU;IACV,IAAI,cAAc,KAAK,YAAY;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1E,WAAW;IACX,IAAI,cAAc,KAAK,YAAY,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAE9E,IAAI,cAAc,GAAG,YAAY,EAAE,CAAC;QAClC,MAAM,KAAK,CAAC,wBAAwB,YAAY,cAAc,cAAc,EAAE,CAAC,CAAC;IAClF,CAAC;IACD,MAAM,KAAK,CAAC,yBAAyB,YAAY,cAAc,cAAc,EAAE,CAAC,CAAC;AAAA,CAClF;AAYD,MAAM,UAAU,6BAA6B,CAC3C,cAA8B,EAC9B,yBAA2C,EACR;IACnC,MAAM,4BAA4B,GAAG,IAAI,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACxE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAgC,CAAC;IAEvD,MAAM,eAAe,GAAG,cAAc,CAAC,UAAU,CAAC;IAClD,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC;QACjE,MAAM,cAAc,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;QAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,gBAAgB,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,GAAG,gBAAgB,EAAE,CAAC,EAAE,EAAE,CAAC;YACpF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,eAAe,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrF,MAAM,cAAc,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5C,IAAI,4BAA4B,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;oBACrD,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE;wBACzB,cAAc;wBACd,eAAe;wBACf,gBAAgB;wBAChB,uBAAuB,EAAE,CAAC;wBAC1B,cAAc,EAAE,CAAC;wBACjB,IAAI,EAAE,cAAc,CAAC,KAAK,GAAG,eAAe,GAAG,SAAS;qBACzD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAAA,CACf;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,cAA8B,EAC9B,IAAa,EACb,WAAwB,EACJ;IACpB,MAAM,EAAC,IAAI,EAAC,GAAG,WAAW,CAAC;IAC3B,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,cAAc,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAEhF,gBAAgB;IAChB,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACvC,OAAO;QACL,gBAAgB,EAAE,gBAAgB;QAClC,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,WAAW,CAAC,SAAS;KACjC,CAAC;AAAA,CACH;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,cAA8B,EAAE,IAAa,EAAE,WAAwB,EAAY;IACrH,IAAI,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,MAAM,EAAC,eAAe,EAAE,IAAI,EAAC,GAAG,WAAW,CAAC;QAC5C,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAEnF,OAAO,eAAe,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;IAC3D,CAAC;IACD,MAAM,EAAC,eAAe,EAAE,aAAa,EAAE,IAAI,EAAC,GAAG,WAAkC,CAAC;IAElF,4DAA4D;IAC5D,0FAA0F;IAC1F,8EAA8E;IAC9E,+CAA+C;IAC/C,6CAA6C;IAC7C,MAAM,gBAAgB,GAAG,aAAa,CAAC,iBAAiB,EAAE,CAAC;IAE3D,MAAM,qBAAqB,GAAG,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAE/F,8DAA8D;IAC9D,MAAM,WAAW,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACtF,MAAM,mBAAmB,GAAG,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC;IAEzD,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,SAAS,IAAI,qBAAqB,EAAE,CAAC;QAC9C,mBAAmB,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC3C,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,OAAO,eAAe,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;AAAA,CAC7D;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,cAA8B,EAAE,IAAU,EAAE,KAAqB,EAAe;IACjH,OAAO,mBAAmB,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAAA,CAC9D;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,cAA8B,EAC9B,IAAU,EACV,OAAyB,EACV;IACf,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,cAAc,GAAG,cAAc,CAAC,UAAU,CAAC,IAAI,GAAG,eAAe,CAAC,CAAC;IACzE,MAAM,UAAU,GAAG,EAAE,CAAC;IAEtB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,IAAI,cAAc,CAAC;gBACvB,IAAI,EAAE,kBAAkB,CAAC,4BAA4B;gBACrD,KAAK;gBACL,QAAQ,EAAE,cAAc,CAAC,MAAM;aAChC,CAAC,CAAC;QACL,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,UAAU,CAAC;AAAA,CACnB;SAEW,kBAAkB;AAA9B,IAAY,kBAEX;AAFD,WAAY,kBAAkB;IAC5B,mGAA6E,CAAA;AAAC,CAChF,EAFY,kBAAkB,KAAlB,kBAAkB,QAE7B;AAQD,MAAM,OAAO,cAAe,SAAQ,aAAiC;CAAG"}
1
+ {"version":3,"file":"shuffling.js","sourceRoot":"","sources":["../../src/util/shuffling.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "bugs": {
12
12
  "url": "https://github.com/ChainSafe/lodestar/issues"
13
13
  },
14
- "version": "1.44.0-dev.6ef8199cfa",
14
+ "version": "1.44.0-dev.762dd5f186",
15
15
  "type": "module",
16
16
  "exports": {
17
17
  ".": {
@@ -68,18 +68,17 @@
68
68
  "@chainsafe/as-sha256": "^1.2.0",
69
69
  "@chainsafe/blst": "^2.2.0",
70
70
  "@chainsafe/persistent-merkle-tree": "^1.2.5",
71
- "@chainsafe/persistent-ts": "^1.0.0",
72
71
  "@chainsafe/pubkey-index-map": "^3.0.0",
73
72
  "@chainsafe/ssz": "^1.4.0",
74
73
  "@chainsafe/swap-or-not-shuffle": "^1.2.1",
75
- "@lodestar/config": "^1.44.0-dev.6ef8199cfa",
76
- "@lodestar/params": "^1.44.0-dev.6ef8199cfa",
77
- "@lodestar/types": "^1.44.0-dev.6ef8199cfa",
78
- "@lodestar/utils": "^1.44.0-dev.6ef8199cfa",
74
+ "@lodestar/config": "^1.44.0-dev.762dd5f186",
75
+ "@lodestar/params": "^1.44.0-dev.762dd5f186",
76
+ "@lodestar/types": "^1.44.0-dev.762dd5f186",
77
+ "@lodestar/utils": "^1.44.0-dev.762dd5f186",
79
78
  "@vekexasia/bigint-buffer2": "^1.1.1"
80
79
  },
81
80
  "devDependencies": {
82
- "@lodestar/api": "^1.44.0-dev.6ef8199cfa"
81
+ "@lodestar/api": "^1.44.0-dev.762dd5f186"
83
82
  },
84
83
  "keywords": [
85
84
  "ethereum",
@@ -87,5 +86,5 @@
87
86
  "beacon",
88
87
  "blockchain"
89
88
  ],
90
- "gitHead": "7c7a128e3f8f470901283cae8747f0ea3d9fd031"
89
+ "gitHead": "41dfce7e2fd3c7a5a92733aca66dde85a4c2ab26"
91
90
  }
@@ -38,6 +38,8 @@ export {
38
38
  export * from "./externalData.js";
39
39
  export * from "./initiateValidatorExit.js";
40
40
  export * from "./isValidIndexedAttestation.js";
41
+ export * from "./processBuilderDepositRequest.js";
42
+ export * from "./processBuilderExitRequest.js";
41
43
  export * from "./processDepositRequest.js";
42
44
  export * from "./processOperations.js";
43
45
 
@@ -85,7 +87,10 @@ export function processBlock(
85
87
  }
86
88
 
87
89
  if (fork >= ForkSeq.gloas) {
88
- processExecutionPayloadBid(state as CachedBeaconStateGloas, block as BeaconBlock<ForkPostGloas>);
90
+ processExecutionPayloadBid(
91
+ state as CachedBeaconStateGloas,
92
+ (block as BeaconBlock<ForkPostGloas>).body.signedExecutionPayloadBid
93
+ );
89
94
  }
90
95
 
91
96
  processRandao(state, block, verifySignatures);
@@ -0,0 +1,43 @@
1
+ import {FAR_FUTURE_EPOCH} from "@lodestar/params";
2
+ import {gloas} from "@lodestar/types";
3
+ import {CachedBeaconStateGloas} from "../types.js";
4
+ import {computeEpochAtSlot} from "../util/epoch.js";
5
+ import {addBuilderToRegistry, findBuilderIndexByPubkey, isValidBuilderDepositSignature} from "../util/gloas.js";
6
+
7
+ /**
8
+ * Process a builder deposit request from the execution layer: register a new builder
9
+ * (proof-of-possession gated) or top up an existing builder's balance.
10
+ *
11
+ * Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.11/specs/gloas/beacon-chain.md#new-process_builder_deposit_request
12
+ */
13
+ export function processBuilderDepositRequest(
14
+ state: CachedBeaconStateGloas,
15
+ request: gloas.BuilderDepositRequest
16
+ ): void {
17
+ const {pubkey, withdrawalCredentials, amount, signature} = request;
18
+ const builderIndex = findBuilderIndexByPubkey(state, pubkey);
19
+
20
+ if (builderIndex === null) {
21
+ if (isValidBuilderDepositSignature(state.config, pubkey, withdrawalCredentials, amount, signature)) {
22
+ addBuilderToRegistry(
23
+ state,
24
+ pubkey,
25
+ withdrawalCredentials[0],
26
+ withdrawalCredentials.subarray(12),
27
+ amount,
28
+ state.slot
29
+ );
30
+ }
31
+ return;
32
+ }
33
+
34
+ const builder = state.builders.get(builderIndex);
35
+
36
+ // Increase balance by deposit amount
37
+ builder.balance += amount;
38
+
39
+ // If exited, reset the withdrawable epoch
40
+ if (builder.withdrawableEpoch !== FAR_FUTURE_EPOCH) {
41
+ builder.withdrawableEpoch = computeEpochAtSlot(state.slot) + state.config.MIN_BUILDER_WITHDRAWABILITY_DELAY;
42
+ }
43
+ }
@@ -0,0 +1,39 @@
1
+ import {gloas} from "@lodestar/types";
2
+ import {byteArrayEquals} from "@lodestar/utils";
3
+ import {CachedBeaconStateGloas} from "../types.js";
4
+ import {
5
+ findBuilderIndexByPubkey,
6
+ getPendingBalanceToWithdrawForBuilder,
7
+ initiateBuilderExit,
8
+ isActiveBuilder,
9
+ } from "../util/gloas.js";
10
+
11
+ /**
12
+ * Apply a builder exit request. Authorizes the exit via `source_address` (the builder's
13
+ * execution_address), not the BLS key — mirroring EIP-7002's 0x01 credential exit.
14
+ *
15
+ * Drops the request silently if any precondition fails; the EL has already dequeued it
16
+ * deterministically, so the fee is forfeited but `requests_hash` agreement is unaffected.
17
+ *
18
+ * Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.11/specs/gloas/beacon-chain.md#new-process_builder_exit_request
19
+ */
20
+ export function processBuilderExitRequest(state: CachedBeaconStateGloas, request: gloas.BuilderExitRequest): void {
21
+ const builderIndex = findBuilderIndexByPubkey(state, request.pubkey);
22
+ if (builderIndex === null) {
23
+ return;
24
+ }
25
+
26
+ const builder = state.builders.getReadonly(builderIndex);
27
+
28
+ if (!isActiveBuilder(builder, state.finalizedCheckpoint.epoch)) {
29
+ return;
30
+ }
31
+ if (!byteArrayEquals(builder.executionAddress, request.sourceAddress)) {
32
+ return;
33
+ }
34
+ if (getPendingBalanceToWithdrawForBuilder(state, builderIndex) !== 0) {
35
+ return;
36
+ }
37
+
38
+ initiateBuilderExit(state, builderIndex);
39
+ }