@lodestar/params 1.35.0-dev.b42a298a7c → 1.35.0-dev.be3c5220f4

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forkName.d.ts","sourceRoot":"","sources":["../src/forkName.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -202,7 +202,9 @@ export declare const MAX_REQUEST_LIGHT_CLIENT_COMMITTEE_HASHES = 128;
202
202
  * Optimistic sync
203
203
  */
204
204
  export declare const SAFE_SLOTS_TO_IMPORT_OPTIMISTICALLY = 128;
205
+ /** @deprecated */
205
206
  export declare const INTERVALS_PER_SLOT = 3;
207
+ export declare const BASIS_POINTS = 10000;
206
208
  export declare const BYTES_PER_FIELD_ELEMENT = 32;
207
209
  export declare const BLOB_TX_TYPE = 3;
208
210
  export declare const VERSIONED_HASH_VERSION_KZG = 1;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/lib/index.js CHANGED
@@ -157,7 +157,9 @@ export const MAX_REQUEST_LIGHT_CLIENT_COMMITTEE_HASHES = 128;
157
157
  * Optimistic sync
158
158
  */
159
159
  export const SAFE_SLOTS_TO_IMPORT_OPTIMISTICALLY = 128;
160
+ /** @deprecated */
160
161
  export const INTERVALS_PER_SLOT = 3;
162
+ export const BASIS_POINTS = 10000;
161
163
  // EIP-4844: Crypto const
162
164
  export const BYTES_PER_FIELD_ELEMENT = 32;
163
165
  export const BLOB_TX_TYPE = 0x03;
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAC,aAAa,EAAE,kBAAkB,EAAC,MAAM,gBAAgB,CAAC;AAEjE,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAC,YAAY,EAAC,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAC,UAAU,EAAC,CAAC;AAEpB,MAAM,OAAO,GAAG;IACd,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,aAAa;IACnC,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,aAAa;IACnC,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,YAAY;CAClC,CAAC;AAEF,iGAAiG;AACjG,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC;AAE3B;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GACxB,kBAAkB;IAClB,CAAC,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,eAA6B,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtG,UAAU,CAAC,OAAO,CAAC;AACrB,MAAM,CAAC,MAAM,YAAY,GAAG,EAAC,GAAG,OAAO,CAAC,aAAa,CAAC,EAAE,GAAG,aAAa,EAAC,CAAC;AAE1E,+DAA+D;AAC/D,iDAAiD;AACjD,MAAM,CAAC,MAAM,EACX,uBAAuB,EACvB,qBAAqB,EACrB,4BAA4B,EAC5B,mBAAmB,EACnB,mBAAmB,EACnB,8BAA8B,EAC9B,4BAA4B,EAC5B,kBAAkB,EAClB,qBAAqB,EACrB,2BAA2B,EAC3B,+BAA+B,EAC/B,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,6BAA6B,EAC7B,yBAAyB,EACzB,gCAAgC,EAChC,4BAA4B,EAC5B,2BAA2B,EAC3B,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,EAClB,6BAA6B,EAC7B,wBAAwB,EACxB,2BAA2B,EAC3B,6BAA6B,EAC7B,gCAAgC,EAChC,sBAAsB,EACtB,sBAAsB,EACtB,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EAEnB,mBAAmB,EACnB,gCAAgC,EAChC,kCAAkC,EAClC,oCAAoC,EACpC,uCAAuC,EACvC,+BAA+B,EAC/B,cAAc,EAEd,qCAAqC,EACrC,uCAAuC,EACvC,0CAA0C,EAC1C,yBAAyB,EACzB,4BAA4B,EAC5B,oBAAoB,EACpB,oBAAoB,EAEpB,4BAA4B,EAC5B,2BAA2B,EAC3B,oCAAoC,EAEpC,uBAAuB,EACvB,8BAA8B,EAC9B,oCAAoC,EAEpC,6BAA6B,EAC7B,sBAAsB,EACtB,sBAAsB,EACtB,iCAAiC,EACjC,4BAA4B,EAC5B,qCAAqC,EACrC,sCAAsC,EAEtC,gCAAgC,EAChC,mCAAmC,EACnC,8BAA8B,EAC9B,wBAAwB,EACxB,0CAA0C,EAC1C,8BAA8B,EAC9B,qCAAqC,EAErC,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,2BAA2B,EAC3B,qCAAqC,EAErC,QAAQ,EACR,wBAAwB,EACxB,iCAAiC,GAClC,GAAG,YAAY,CAAC;AAEjB,YAAY;AACZ,YAAY;AACZ,YAAY;AAEZ,wGAAwG;AAExG,OAAO;AAEP,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC;AAC9B,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC;AAC/B,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAC;AACzC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACxC,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;AACxD,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAC3C,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7C,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAEpD,sBAAsB;AACtB,uEAAuE;AACvE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AACvC,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAChD,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC;AAC/C,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAE3C,eAAe;AAEf,MAAM,CAAC,MAAM,sBAAsB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpE,MAAM,CAAC,MAAM,sBAAsB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpE,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3D,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5D,MAAM,CAAC,MAAM,qBAAqB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACnE,MAAM,CAAC,MAAM,sBAAsB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpE,MAAM,CAAC,MAAM,0BAA0B,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACxE,MAAM,CAAC,MAAM,qBAAqB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACnE,MAAM,CAAC,MAAM,qCAAqC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACnF,MAAM,CAAC,MAAM,6BAA6B,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3E,MAAM,CAAC,MAAM,8BAA8B,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7E,MAAM,CAAC,MAAM,qBAAqB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpE,MAAM,CAAC,MAAM,mBAAmB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAElE,+BAA+B;AAE/B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACrE,MAAM,CAAC,MAAM,0BAA0B,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAExE,6BAA6B;AAE7B,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAC1C,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAC1C,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAExC,0BAA0B;AAE1B,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AACvC,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AACvC,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AACrC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AACpC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AACjC,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAErC,cAAc;AAEd,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,oBAAoB,EAAE,oBAAoB,EAAE,kBAAkB,CAAC,CAAC;AAE3G,mBAAmB;AAEnB,MAAM,CAAC,MAAM,gCAAgC,GAAG,EAAE,CAAC;AACnD,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC;AAC9C,MAAM,CAAC,MAAM,qCAAqC,GAAG,GAAG,CAAC;AACzD,mKAAmK;AACnK,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAC3C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAClC,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC;AAChC,MAAM,CAAC,MAAM,8BAA8B,GAAG,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;AAClF,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAG,CAAC;AAElD,mBAAmB;AAEnB,MAAM,CAAC,MAAM,wCAAwC,GAAG,EAAE,CAAC;AAC3D,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAC7C,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAG,2BAA2B,CAAC,CAAC;AAExG,2BAA2B;AAC3B;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AACzC;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AACtC,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEvC;;;;GAIG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,EAAE,CAAC;AACtD;;;;GAIG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,CAAC;AACpD,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,CAAC;AAEpD;;;;GAIG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAC;AAChD;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC;AAC9C,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAC/C;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAC7C;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAC3C,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAC5C,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAAG,CAAC;AACpD,MAAM,CAAC,MAAM,yCAAyC,GAAG,GAAG,CAAC;AAE7D;;GAEG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,GAAG,CAAC;AACvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAEpC,yBAAyB;AACzB,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAC1C,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC;AACjC,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAC;AAE/C,yEAAyE;AACzE,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC;AAC7C,MAAM,CAAC,MAAM,6BAA6B,GAAG,sBAAsB,GAAG,CAAC,IAAI,oCAAoC,CAAC;AAEhH,+CAA+C;AAC/C,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC;AAE7C,eAAe;AACf,MAAM,CAAC,MAAM,kCAAkC,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC;AACjE,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAC1C,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAG,CAAC;AACjD,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC;AAC9C,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAC/C,MAAM,CAAC,MAAM,qCAAqC,GAAG,EAAE,CAAC;AACxD,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC,CAAC;AACtD,MAAM,CAAC,MAAM,oCAAoC,GAAG,EAAE,CAAC;AACvD,MAAM,CAAC,MAAM,kCAAkC,GAAG,EAAE,CAAC;AACrD,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC;AACnD,MAAM,CAAC,MAAM,iCAAiC,GAAG,EAAE,CAAC;AACpD,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AACzC,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAC5C,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAC;AAE/C,MAAM,CAAC,MAAM,cAAc,GAAG,uBAAuB,GAAG,uBAAuB,CAAC;AAEhF,sEAAsE;AACtE,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AACzC,MAAM,CAAC,MAAM,6BAA6B,GAAG,sBAAsB,GAAG,CAAC,IAAI,qCAAqC,CAAC;AAEjH,aAAa;AACb,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,CAAC;AACrD,MAAM,CAAC,MAAM,qCAAqC,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../src/json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAoB,MAAM,YAAY,CAAC;AAE3D;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQzE;AAUD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAWnF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presetName.d.ts","sourceRoot":"","sources":["../src/presetName.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU;IACpB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,MAAM,WAAW;CAClB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presetStatus.d.ts","sourceRoot":"","sources":["../src/presetStatus.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY;;CAExB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gnosis.d.ts","sourceRoot":"","sources":["../../src/presets/gnosis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAMzC,eAAO,MAAM,YAAY,EAAE,YAe1B,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mainnet.d.ts","sourceRoot":"","sources":["../../src/presets/mainnet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAKzC,eAAO,MAAM,aAAa,EAAE,YA+I3B,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"minimal.d.ts","sourceRoot":"","sources":["../../src/presets/minimal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAKzC,eAAO,MAAM,aAAa,EAAE,YAgJ3B,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setPreset.d.ts","sourceRoot":"","sources":["../src/setPreset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,WAAW,CAAC;AACzC,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAC,YAAY,EAAC,MAAM,YAAY,CAAC;AAExC,OAAO,EAAC,UAAU,EAAE,cAAc,EAAC,CAAC;AAEpC;;;;;;;GAOG;AACH,eAAO,IAAI,kBAAkB,EAAE,UAAU,GAAG,IAAW,CAAC;AAExD,eAAO,IAAI,aAAa,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,SAAqB,CAAC;AAExE;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAkBtG"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lodestar/params",
3
- "version": "1.35.0-dev.b42a298a7c",
3
+ "version": "1.35.0-dev.be3c5220f4",
4
4
  "description": "Chain parameters required for lodestar",
5
5
  "author": "ChainSafe Systems",
6
6
  "license": "Apache-2.0",
@@ -33,11 +33,9 @@
33
33
  },
34
34
  "types": "lib/index.d.ts",
35
35
  "files": [
36
- "lib/**/*.js",
37
- "lib/**/*.js.map",
38
- "lib/**/*.d.ts",
39
- "*.d.ts",
40
- "*.js"
36
+ "src",
37
+ "lib",
38
+ "!**/*.tsbuildinfo"
41
39
  ],
42
40
  "typesVersions": {
43
41
  "*": {
@@ -78,5 +76,5 @@
78
76
  "axios": "^1.3.4",
79
77
  "js-yaml": "^4.1.0"
80
78
  },
81
- "gitHead": "32a0ff15c72d66483feb4afb5518b46372819b90"
79
+ "gitHead": "cee84cea6083c07740cd8a8d9fb40ecba4260344"
82
80
  }
@@ -0,0 +1,195 @@
1
+ /**
2
+ * Fork code name in order of occurrence
3
+ */
4
+ export enum ForkName {
5
+ phase0 = "phase0",
6
+ altair = "altair",
7
+ bellatrix = "bellatrix",
8
+ capella = "capella",
9
+ deneb = "deneb",
10
+ electra = "electra",
11
+ fulu = "fulu",
12
+ gloas = "gloas",
13
+ }
14
+
15
+ /**
16
+ * Fork sequence number in order of occurrence
17
+ */
18
+ export enum ForkSeq {
19
+ phase0 = 0,
20
+ altair = 1,
21
+ bellatrix = 2,
22
+ capella = 3,
23
+ deneb = 4,
24
+ electra = 5,
25
+ fulu = 6,
26
+ gloas = 7,
27
+ }
28
+
29
+ function exclude<T extends ForkName, U extends T>(coll: T[], val: U[]): Exclude<T, U>[] {
30
+ return coll.filter((f) => !val.includes(f as U)) as Exclude<T, U>[];
31
+ }
32
+
33
+ export function highestFork<F extends ForkName>(forkNames: F[]): F {
34
+ let highest = forkNames[0];
35
+
36
+ for (const forkName of forkNames) {
37
+ if (ForkSeq[forkName] > ForkSeq[highest]) {
38
+ highest = forkName;
39
+ }
40
+ }
41
+
42
+ return highest;
43
+ }
44
+
45
+ export function lowestFork<F extends ForkName>(forkNames: F[]): F {
46
+ let lowest = forkNames[0];
47
+
48
+ for (const forkName of forkNames) {
49
+ if (ForkSeq[forkName] < ForkSeq[lowest]) {
50
+ lowest = forkName;
51
+ }
52
+ }
53
+
54
+ return lowest;
55
+ }
56
+
57
+ export type ForkAll = ForkName;
58
+ export const forkAll = Object.values(ForkName);
59
+
60
+ export type ForkPreAltair = ForkName.phase0;
61
+ export type ForkPostAltair = Exclude<ForkName, ForkPreAltair>;
62
+ export const forkPostAltair = exclude(forkAll, [ForkName.phase0]);
63
+ export function isForkPostAltair(fork: ForkName): fork is ForkPostAltair {
64
+ return fork !== ForkName.phase0;
65
+ }
66
+
67
+ export type ForkPreBellatrix = ForkPreAltair | ForkName.altair;
68
+ export type ForkPostBellatrix = Exclude<ForkName, ForkPreBellatrix>;
69
+ export const forkPostBellatrix = exclude(forkAll, [ForkName.phase0, ForkName.altair]);
70
+ export function isForkPostBellatrix(fork: ForkName): fork is ForkPostBellatrix {
71
+ return isForkPostAltair(fork) && fork !== ForkName.altair;
72
+ }
73
+
74
+ export type ForkPreCapella = ForkPreBellatrix | ForkName.bellatrix;
75
+ export type ForkPostCapella = Exclude<ForkName, ForkPreCapella>;
76
+ export const forkPostCapella = exclude(forkAll, [ForkName.phase0, ForkName.altair, ForkName.bellatrix]);
77
+ export function isForkPostCapella(fork: ForkName): fork is ForkPostCapella {
78
+ return isForkPostBellatrix(fork) && fork !== ForkName.bellatrix;
79
+ }
80
+
81
+ export type ForkPreDeneb = ForkPreCapella | ForkName.capella;
82
+ export type ForkPostDeneb = Exclude<ForkName, ForkPreDeneb>;
83
+ export const forkPostDeneb = exclude(forkAll, [ForkName.phase0, ForkName.altair, ForkName.bellatrix, ForkName.capella]);
84
+ export function isForkPostDeneb(fork: ForkName): fork is ForkPostDeneb {
85
+ return isForkPostCapella(fork) && fork !== ForkName.capella;
86
+ }
87
+
88
+ export type ForkPreElectra = ForkPreDeneb | ForkName.deneb;
89
+ export type ForkPostElectra = Exclude<ForkName, ForkPreElectra>;
90
+ export const forkPostElectra = exclude(forkAll, [
91
+ ForkName.phase0,
92
+ ForkName.altair,
93
+ ForkName.bellatrix,
94
+ ForkName.capella,
95
+ ForkName.deneb,
96
+ ]);
97
+ export function isForkPostElectra(fork: ForkName): fork is ForkPostElectra {
98
+ return isForkPostDeneb(fork) && fork !== ForkName.deneb;
99
+ }
100
+
101
+ export type ForkPreFulu = ForkPreElectra | ForkName.electra;
102
+ export type ForkPostFulu = Exclude<ForkName, ForkPreFulu>;
103
+ export const forkPostFulu = exclude(forkAll, [
104
+ ForkName.phase0,
105
+ ForkName.altair,
106
+ ForkName.bellatrix,
107
+ ForkName.capella,
108
+ ForkName.deneb,
109
+ ForkName.electra,
110
+ ]);
111
+ export function isForkPostFulu(fork: ForkName): fork is ForkPostFulu {
112
+ return isForkPostElectra(fork) && fork !== ForkName.electra;
113
+ }
114
+
115
+ export type ForkPreGloas = ForkPreFulu | ForkName.fulu;
116
+ export type ForkPostGloas = Exclude<ForkName, ForkPreGloas>;
117
+ export const forkPostGloas = exclude(forkAll, [
118
+ ForkName.phase0,
119
+ ForkName.altair,
120
+ ForkName.bellatrix,
121
+ ForkName.capella,
122
+ ForkName.deneb,
123
+ ForkName.electra,
124
+ ForkName.fulu,
125
+ ]);
126
+ export function isForkPostGloas(fork: ForkName): fork is ForkPostGloas {
127
+ return isForkPostFulu(fork) && fork !== ForkName.fulu;
128
+ }
129
+
130
+ /*
131
+ * Aliases only exported for backwards compatibility. This will be removed in
132
+ * lodestar v2.0. The types and guards above should be used in all places as
133
+ * they are more correct than using the "main feature" from a fork.
134
+ */
135
+
136
+ /**
137
+ * @deprecated Use `ForkPostAltair` instead.
138
+ */
139
+ export type ForkLightClient = ForkPostAltair;
140
+ /**
141
+ * @deprecated Use `ForkPreBellatrix` instead.
142
+ */
143
+ export type ForkPreExecution = ForkPreBellatrix;
144
+ /**
145
+ * @deprecated Use `ForkPostBellatrix` instead.
146
+ */
147
+ export type ForkExecution = ForkPostBellatrix;
148
+ /**
149
+ * @deprecated Use `ForkPreCapella` instead.
150
+ */
151
+ export type ForkPreWithdrawals = ForkPreCapella;
152
+ /**
153
+ * @deprecated Use `ForkPostCapella` instead.
154
+ */
155
+ export type ForkWithdrawals = ForkPostCapella;
156
+ /**
157
+ * @deprecated Use `ForkPreDeneb` instead.
158
+ */
159
+ export type ForkPreBlobs = ForkPreDeneb;
160
+ /**
161
+ * @deprecated Use `ForkPostDeneb` instead.
162
+ */
163
+ export type ForkBlobs = ForkPostDeneb;
164
+ /**
165
+ * @deprecated Use `forkPostAltair` instead.
166
+ */
167
+ export const forkLightClient = forkPostAltair;
168
+ /**
169
+ * @deprecated Use `isForkPostAltair` instead.
170
+ */
171
+ export const isForkLightClient = isForkPostAltair;
172
+ /**
173
+ * @deprecated Use `forkPostBellatrix` instead.
174
+ */
175
+ export const forkExecution = forkPostBellatrix;
176
+ /**
177
+ * @deprecated Use `isForkPostBellatrix` instead.
178
+ */
179
+ export const isForkExecution = isForkPostBellatrix;
180
+ /**
181
+ * @deprecated Use `forkPostCapella` instead.
182
+ */
183
+ export const forkWithdrawals = forkPostCapella;
184
+ /**
185
+ * @deprecated Use `isForkPostCapella` instead.
186
+ */
187
+ export const isForkWithdrawals = isForkPostCapella;
188
+ /**
189
+ * @deprecated Use `forkPostDeneb` instead.
190
+ */
191
+ export const forkBlobs = forkPostDeneb;
192
+ /**
193
+ * @deprecated Use `isForkPostDeneb` instead.
194
+ */
195
+ export const isForkBlobs = isForkPostDeneb;
package/src/index.ts ADDED
@@ -0,0 +1,313 @@
1
+ import {PresetName} from "./presetName.js";
2
+ import {presetStatus} from "./presetStatus.js";
3
+ import {gnosisPreset} from "./presets/gnosis.js";
4
+ import {mainnetPreset} from "./presets/mainnet.js";
5
+ import {minimalPreset} from "./presets/minimal.js";
6
+ import {userOverrides, userSelectedPreset} from "./setPreset.js";
7
+
8
+ export * from "./forkName.js";
9
+ export {presetToJson} from "./json.js";
10
+ export type {BeaconPreset} from "./types.js";
11
+ export {PresetName};
12
+
13
+ const presets = {
14
+ [PresetName.mainnet]: mainnetPreset,
15
+ [PresetName.minimal]: minimalPreset,
16
+ [PresetName.gnosis]: gnosisPreset,
17
+ };
18
+
19
+ // Once this file is imported, freeze the preset so calling setActivePreset() will throw an error
20
+ presetStatus.frozen = true;
21
+
22
+ /**
23
+ * The preset name currently exported by this library
24
+ *
25
+ * The `LODESTAR_PRESET` environment variable is used to select the active preset
26
+ * If `LODESTAR_PRESET` is not set, the default is `mainnet`.
27
+ *
28
+ * The active preset can be manually overridden with `setActivePreset`
29
+ */
30
+ export const ACTIVE_PRESET =
31
+ userSelectedPreset ??
32
+ (typeof process !== "undefined" ? PresetName[process?.env?.LODESTAR_PRESET as PresetName] : undefined) ??
33
+ PresetName.mainnet;
34
+ export const activePreset = {...presets[ACTIVE_PRESET], ...userOverrides};
35
+
36
+ // These variables must be exported individually and explicitly
37
+ // in order to be accessible as top-level exports
38
+ export const {
39
+ MAX_COMMITTEES_PER_SLOT,
40
+ TARGET_COMMITTEE_SIZE,
41
+ MAX_VALIDATORS_PER_COMMITTEE,
42
+ SHUFFLE_ROUND_COUNT,
43
+ HYSTERESIS_QUOTIENT,
44
+ HYSTERESIS_DOWNWARD_MULTIPLIER,
45
+ HYSTERESIS_UPWARD_MULTIPLIER,
46
+ MIN_DEPOSIT_AMOUNT,
47
+ MAX_EFFECTIVE_BALANCE,
48
+ EFFECTIVE_BALANCE_INCREMENT,
49
+ MIN_ATTESTATION_INCLUSION_DELAY,
50
+ SLOTS_PER_EPOCH,
51
+ MIN_SEED_LOOKAHEAD,
52
+ MAX_SEED_LOOKAHEAD,
53
+ EPOCHS_PER_ETH1_VOTING_PERIOD,
54
+ SLOTS_PER_HISTORICAL_ROOT,
55
+ MIN_EPOCHS_TO_INACTIVITY_PENALTY,
56
+ EPOCHS_PER_HISTORICAL_VECTOR,
57
+ EPOCHS_PER_SLASHINGS_VECTOR,
58
+ HISTORICAL_ROOTS_LIMIT,
59
+ VALIDATOR_REGISTRY_LIMIT,
60
+ BASE_REWARD_FACTOR,
61
+ WHISTLEBLOWER_REWARD_QUOTIENT,
62
+ PROPOSER_REWARD_QUOTIENT,
63
+ INACTIVITY_PENALTY_QUOTIENT,
64
+ MIN_SLASHING_PENALTY_QUOTIENT,
65
+ PROPORTIONAL_SLASHING_MULTIPLIER,
66
+ MAX_PROPOSER_SLASHINGS,
67
+ MAX_ATTESTER_SLASHINGS,
68
+ MAX_ATTESTATIONS,
69
+ MAX_DEPOSITS,
70
+ MAX_VOLUNTARY_EXITS,
71
+
72
+ SYNC_COMMITTEE_SIZE,
73
+ EPOCHS_PER_SYNC_COMMITTEE_PERIOD,
74
+ INACTIVITY_PENALTY_QUOTIENT_ALTAIR,
75
+ MIN_SLASHING_PENALTY_QUOTIENT_ALTAIR,
76
+ PROPORTIONAL_SLASHING_MULTIPLIER_ALTAIR,
77
+ MIN_SYNC_COMMITTEE_PARTICIPANTS,
78
+ UPDATE_TIMEOUT,
79
+
80
+ INACTIVITY_PENALTY_QUOTIENT_BELLATRIX,
81
+ MIN_SLASHING_PENALTY_QUOTIENT_BELLATRIX,
82
+ PROPORTIONAL_SLASHING_MULTIPLIER_BELLATRIX,
83
+ MAX_BYTES_PER_TRANSACTION,
84
+ MAX_TRANSACTIONS_PER_PAYLOAD,
85
+ BYTES_PER_LOGS_BLOOM,
86
+ MAX_EXTRA_DATA_BYTES,
87
+
88
+ MAX_BLS_TO_EXECUTION_CHANGES,
89
+ MAX_WITHDRAWALS_PER_PAYLOAD,
90
+ MAX_VALIDATORS_PER_WITHDRAWALS_SWEEP,
91
+
92
+ FIELD_ELEMENTS_PER_BLOB,
93
+ MAX_BLOB_COMMITMENTS_PER_BLOCK,
94
+ KZG_COMMITMENT_INCLUSION_PROOF_DEPTH,
95
+
96
+ MAX_EFFECTIVE_BALANCE_ELECTRA,
97
+ MIN_ACTIVATION_BALANCE,
98
+ PENDING_DEPOSITS_LIMIT,
99
+ PENDING_PARTIAL_WITHDRAWALS_LIMIT,
100
+ PENDING_CONSOLIDATIONS_LIMIT,
101
+ MIN_SLASHING_PENALTY_QUOTIENT_ELECTRA,
102
+ MAX_CONSOLIDATION_REQUESTS_PER_PAYLOAD,
103
+
104
+ MAX_DEPOSIT_REQUESTS_PER_PAYLOAD,
105
+ MAX_WITHDRAWAL_REQUESTS_PER_PAYLOAD,
106
+ MAX_ATTESTER_SLASHINGS_ELECTRA,
107
+ MAX_ATTESTATIONS_ELECTRA,
108
+ MAX_PENDING_PARTIALS_PER_WITHDRAWALS_SWEEP,
109
+ MAX_PENDING_DEPOSITS_PER_EPOCH,
110
+ WHISTLEBLOWER_REWARD_QUOTIENT_ELECTRA,
111
+
112
+ NUMBER_OF_COLUMNS,
113
+ CELLS_PER_EXT_BLOB,
114
+ FIELD_ELEMENTS_PER_CELL,
115
+ FIELD_ELEMENTS_PER_EXT_BLOB,
116
+ KZG_COMMITMENTS_INCLUSION_PROOF_DEPTH,
117
+
118
+ PTC_SIZE,
119
+ MAX_PAYLOAD_ATTESTATIONS,
120
+ BUILDER_PENDING_WITHDRAWALS_LIMIT,
121
+ } = activePreset;
122
+
123
+ ////////////
124
+ // Constants
125
+ ////////////
126
+
127
+ // Exported directly on the index for faster accessing without commonjs compiled star import shenanigans
128
+
129
+ // Misc
130
+
131
+ export const GENESIS_SLOT = 0;
132
+ export const GENESIS_EPOCH = 0;
133
+ export const FAR_FUTURE_EPOCH = Infinity;
134
+ export const BASE_REWARDS_PER_EPOCH = 4;
135
+ export const DEPOSIT_CONTRACT_TREE_DEPTH = 2 ** 5; // 32
136
+ export const JUSTIFICATION_BITS_LENGTH = 4;
137
+ export const ZERO_HASH = Buffer.alloc(32, 0);
138
+ export const ZERO_HASH_HEX = "0x" + "00".repeat(32);
139
+
140
+ // Withdrawal prefixes
141
+ // Since the prefixes are just 1 byte, we define and use them as number
142
+ export const BLS_WITHDRAWAL_PREFIX = 0;
143
+ export const ETH1_ADDRESS_WITHDRAWAL_PREFIX = 1;
144
+ export const COMPOUNDING_WITHDRAWAL_PREFIX = 2;
145
+ export const BUILDER_WITHDRAWAL_PREFIX = 3;
146
+
147
+ // Domain types
148
+
149
+ export const DOMAIN_BEACON_PROPOSER = Uint8Array.from([0, 0, 0, 0]);
150
+ export const DOMAIN_BEACON_ATTESTER = Uint8Array.from([1, 0, 0, 0]);
151
+ export const DOMAIN_RANDAO = Uint8Array.from([2, 0, 0, 0]);
152
+ export const DOMAIN_DEPOSIT = Uint8Array.from([3, 0, 0, 0]);
153
+ export const DOMAIN_VOLUNTARY_EXIT = Uint8Array.from([4, 0, 0, 0]);
154
+ export const DOMAIN_SELECTION_PROOF = Uint8Array.from([5, 0, 0, 0]);
155
+ export const DOMAIN_AGGREGATE_AND_PROOF = Uint8Array.from([6, 0, 0, 0]);
156
+ export const DOMAIN_SYNC_COMMITTEE = Uint8Array.from([7, 0, 0, 0]);
157
+ export const DOMAIN_SYNC_COMMITTEE_SELECTION_PROOF = Uint8Array.from([8, 0, 0, 0]);
158
+ export const DOMAIN_CONTRIBUTION_AND_PROOF = Uint8Array.from([9, 0, 0, 0]);
159
+ export const DOMAIN_BLS_TO_EXECUTION_CHANGE = Uint8Array.from([10, 0, 0, 0]);
160
+ export const DOMAIN_BEACON_BUILDER = Uint8Array.from([27, 0, 0, 0]);
161
+ export const DOMAIN_PTC_ATTESTER = Uint8Array.from([12, 0, 0, 0]);
162
+
163
+ // Application specific domains
164
+
165
+ /**
166
+ * `DOMAIN_APPLICATION_MASK` reserves the rest of the bitspace in `DomainType` for application
167
+ * usage. This means for some `DomainType` `DOMAIN_SOME_APPLICATION`, `DOMAIN_SOME_APPLICATION
168
+ * & DOMAIN_APPLICATION_MASK` **MUST** be non-zero. This expression for any other `DomainType`
169
+ * in the consensus specs **MUST** be zero.
170
+ */
171
+ export const DOMAIN_APPLICATION_MASK = Uint8Array.from([0, 0, 0, 1]);
172
+ export const DOMAIN_APPLICATION_BUILDER = Uint8Array.from([0, 0, 0, 1]);
173
+
174
+ // Participation flag indices
175
+
176
+ export const TIMELY_SOURCE_FLAG_INDEX = 0;
177
+ export const TIMELY_TARGET_FLAG_INDEX = 1;
178
+ export const TIMELY_HEAD_FLAG_INDEX = 2;
179
+
180
+ // Incentivization weights
181
+
182
+ export const TIMELY_SOURCE_WEIGHT = 14;
183
+ export const TIMELY_TARGET_WEIGHT = 26;
184
+ export const TIMELY_HEAD_WEIGHT = 14;
185
+ export const SYNC_REWARD_WEIGHT = 2;
186
+ export const PROPOSER_WEIGHT = 8;
187
+ export const WEIGHT_DENOMINATOR = 64;
188
+
189
+ // altair misc
190
+
191
+ export const PARTICIPATION_FLAG_WEIGHTS = [TIMELY_SOURCE_WEIGHT, TIMELY_TARGET_WEIGHT, TIMELY_HEAD_WEIGHT];
192
+
193
+ // phase0 validator
194
+
195
+ export const TARGET_AGGREGATORS_PER_COMMITTEE = 16;
196
+ export const RANDOM_SUBNETS_PER_VALIDATOR = 1;
197
+ export const EPOCHS_PER_RANDOM_SUBNET_SUBSCRIPTION = 256;
198
+ /** Rationale: https://github.com/ethereum/consensus-specs/blob/v1.1.10/specs/phase0/p2p-interface.md#why-are-there-attestation_subnet_count-attestation-subnets */
199
+ export const ATTESTATION_SUBNET_COUNT = 64;
200
+ export const SUBNETS_PER_NODE = 2;
201
+ export const NODE_ID_BITS = 256;
202
+ export const ATTESTATION_SUBNET_PREFIX_BITS = Math.log2(ATTESTATION_SUBNET_COUNT);
203
+ export const EPOCHS_PER_SUBNET_SUBSCRIPTION = 256;
204
+
205
+ // altair validator
206
+
207
+ export const TARGET_AGGREGATORS_PER_SYNC_SUBCOMMITTEE = 16;
208
+ export const SYNC_COMMITTEE_SUBNET_COUNT = 4;
209
+ export const SYNC_COMMITTEE_SUBNET_SIZE = Math.floor(SYNC_COMMITTEE_SIZE / SYNC_COMMITTEE_SUBNET_COUNT);
210
+
211
+ // Lightclient pre-computed
212
+ /**
213
+ * ```ts
214
+ * config.types.altair.BeaconState.getPathGindex(["finalizedCheckpoint", "root"])
215
+ * ```
216
+ */
217
+ export const FINALIZED_ROOT_GINDEX = 105;
218
+ /**
219
+ * ```ts
220
+ * Math.floor(Math.log2(FINALIZED_ROOT_GINDEX))
221
+ * ```
222
+ */
223
+ export const FINALIZED_ROOT_DEPTH = 6;
224
+ export const FINALIZED_ROOT_INDEX = 41;
225
+
226
+ /**
227
+ * ```ts
228
+ * types.ssz.capella.BeaconBlockBody.getPathInfo(['executionPayload']).gindex
229
+ * ```
230
+ */
231
+ export const BLOCK_BODY_EXECUTION_PAYLOAD_GINDEX = 25;
232
+ /**
233
+ * ```ts
234
+ * Math.floor(Math.log2(EXECUTION_PAYLOAD_GINDEX))
235
+ * ```
236
+ */
237
+ export const BLOCK_BODY_EXECUTION_PAYLOAD_DEPTH = 4;
238
+ export const BLOCK_BODY_EXECUTION_PAYLOAD_INDEX = 9;
239
+
240
+ /**
241
+ * ```ts
242
+ * config.types.altair.BeaconState.getPathGindex(["currentSyncCommittee"])
243
+ * ```
244
+ */
245
+ export const CURRENT_SYNC_COMMITTEE_GINDEX = 54;
246
+ /**
247
+ * ```ts
248
+ * Math.floor(Math.log2(CURRENT_SYNC_COMMITTEE_GINDEX))
249
+ * ```
250
+ */
251
+ export const CURRENT_SYNC_COMMITTEE_DEPTH = 5;
252
+ export const CURRENT_SYNC_COMMITTEE_INDEX = 22;
253
+ /**
254
+ * ```ts
255
+ * config.types.altair.BeaconState.getPathGindex(["nextSyncCommittee"])
256
+ * ```
257
+ */
258
+ export const NEXT_SYNC_COMMITTEE_GINDEX = 55;
259
+ /**
260
+ * ```ts
261
+ * Math.floor(Math.log2(NEXT_SYNC_COMMITTEE_GINDEX))
262
+ * ```
263
+ */
264
+ export const NEXT_SYNC_COMMITTEE_DEPTH = 5;
265
+ export const NEXT_SYNC_COMMITTEE_INDEX = 23;
266
+ export const MAX_REQUEST_LIGHT_CLIENT_UPDATES = 128;
267
+ export const MAX_REQUEST_LIGHT_CLIENT_COMMITTEE_HASHES = 128;
268
+
269
+ /**
270
+ * Optimistic sync
271
+ */
272
+ export const SAFE_SLOTS_TO_IMPORT_OPTIMISTICALLY = 128;
273
+ /** @deprecated */
274
+ export const INTERVALS_PER_SLOT = 3;
275
+ export const BASIS_POINTS = 10000;
276
+
277
+ // EIP-4844: Crypto const
278
+ export const BYTES_PER_FIELD_ELEMENT = 32;
279
+ export const BLOB_TX_TYPE = 0x03;
280
+ export const VERSIONED_HASH_VERSION_KZG = 0x01;
281
+
282
+ // ssz.deneb.BeaconBlockBody.getPathInfo(['blobKzgCommitments',0]).gindex
283
+ export const KZG_COMMITMENT_GINDEX0 = 221184;
284
+ export const KZG_COMMITMENT_SUBTREE_INDEX0 = KZG_COMMITMENT_GINDEX0 - 2 ** KZG_COMMITMENT_INCLUSION_PROOF_DEPTH;
285
+
286
+ // ssz.deneb.BlobSidecars.elementType.fixedSize
287
+ export const BLOBSIDECAR_FIXED_SIZE = 131928;
288
+
289
+ // Electra Misc
290
+ export const UNSET_DEPOSIT_REQUESTS_START_INDEX = 2n ** 64n - 1n;
291
+ export const FULL_EXIT_REQUEST_AMOUNT = 0;
292
+ export const FINALIZED_ROOT_GINDEX_ELECTRA = 169;
293
+ export const FINALIZED_ROOT_DEPTH_ELECTRA = 7;
294
+ export const FINALIZED_ROOT_INDEX_ELECTRA = 41;
295
+ export const CURRENT_SYNC_COMMITTEE_GINDEX_ELECTRA = 86;
296
+ export const CURRENT_SYNC_COMMITTEE_DEPTH_ELECTRA = 6;
297
+ export const CURRENT_SYNC_COMMITTEE_INDEX_ELECTRA = 22;
298
+ export const NEXT_SYNC_COMMITTEE_GINDEX_ELECTRA = 87;
299
+ export const NEXT_SYNC_COMMITTEE_DEPTH_ELECTRA = 6;
300
+ export const NEXT_SYNC_COMMITTEE_INDEX_ELECTRA = 23;
301
+ export const DEPOSIT_REQUEST_TYPE = 0x00;
302
+ export const WITHDRAWAL_REQUEST_TYPE = 0x01;
303
+ export const CONSOLIDATION_REQUEST_TYPE = 0x02;
304
+
305
+ export const BYTES_PER_CELL = FIELD_ELEMENTS_PER_CELL * BYTES_PER_FIELD_ELEMENT;
306
+
307
+ // ssz.fulu.BeaconBlockBody.getPathInfo(['blobKzgCommitments']).gindex
308
+ export const KZG_COMMITMENTS_GINDEX = 27;
309
+ export const KZG_COMMITMENTS_SUBTREE_INDEX = KZG_COMMITMENTS_GINDEX - 2 ** KZG_COMMITMENTS_INCLUSION_PROOF_DEPTH;
310
+
311
+ // Gloas Misc
312
+ export const BUILDER_PAYMENT_THRESHOLD_NUMERATOR = 6;
313
+ export const BUILDER_PAYMENT_THRESHOLD_DENOMINATOR = 10;
package/src/json.ts ADDED
@@ -0,0 +1,58 @@
1
+ import {BeaconPreset, beaconPresetTypes} from "./types.js";
2
+
3
+ /**
4
+ * Render BeaconPreset to JSON strings
5
+ * - Numbers: Render as a quoted decimal string
6
+ */
7
+ export function presetToJson(preset: BeaconPreset): Record<string, string> {
8
+ const json: Record<string, string> = {};
9
+
10
+ for (const key of Object.keys(preset) as (keyof BeaconPreset)[]) {
11
+ json[key] = serializePresetValue(preset[key]);
12
+ }
13
+
14
+ return json;
15
+ }
16
+
17
+ /**
18
+ * Type Wrapper to ensure that all values of BeaconPreset are number.
19
+ * If there are more types, expand this function with a type switch
20
+ */
21
+ function serializePresetValue(value: number): string {
22
+ return value.toString(10);
23
+ }
24
+
25
+ /**
26
+ * Parse JSON strings of BeaconPreset
27
+ * - Numbers: Convert quoted decimal string to number
28
+ */
29
+ export function presetFromJson(json: Record<string, unknown>): Partial<BeaconPreset> {
30
+ const beaconPreset = {} as BeaconPreset;
31
+
32
+ for (const key of Object.keys(beaconPresetTypes) as (keyof BeaconPreset)[]) {
33
+ const value = json[key];
34
+ if (value !== undefined) {
35
+ beaconPreset[key] = deserializePresetValue(value, key);
36
+ }
37
+ }
38
+
39
+ return beaconPreset;
40
+ }
41
+
42
+ /**
43
+ * Ensure that all values of parsed BeaconPreset are numbers
44
+ * If there are more types, expand this function with a type switch
45
+ */
46
+ function deserializePresetValue(valueStr: unknown, keyName: string): number {
47
+ if (typeof valueStr !== "string") {
48
+ throw Error(`Invalid ${keyName} value ${valueStr as string} expected string`);
49
+ }
50
+
51
+ const value = parseInt(valueStr, 10);
52
+
53
+ if (Number.isNaN(value)) {
54
+ throw Error(`Invalid ${keyName} value ${valueStr} expected number`);
55
+ }
56
+
57
+ return value;
58
+ }
@@ -0,0 +1,5 @@
1
+ export enum PresetName {
2
+ mainnet = "mainnet",
3
+ minimal = "minimal",
4
+ gnosis = "gnosis",
5
+ }
@@ -0,0 +1,3 @@
1
+ export const presetStatus = {
2
+ frozen: false,
3
+ };
@@ -0,0 +1,22 @@
1
+ import {BeaconPreset} from "../types.js";
2
+ import {mainnetPreset} from "./mainnet.js";
3
+
4
+ // Gnosis preset
5
+ // https://github.com/gnosischain/specs/tree/master/consensus/preset/gnosis
6
+
7
+ export const gnosisPreset: BeaconPreset = {
8
+ ...mainnetPreset,
9
+
10
+ /// NOTE: Only add diff values
11
+
12
+ // phase0
13
+ BASE_REWARD_FACTOR: 25,
14
+ SLOTS_PER_EPOCH: 16,
15
+
16
+ // altair
17
+ EPOCHS_PER_SYNC_COMMITTEE_PERIOD: 512,
18
+
19
+ // capella
20
+ MAX_WITHDRAWALS_PER_PAYLOAD: 8,
21
+ MAX_VALIDATORS_PER_WITHDRAWALS_SWEEP: 8192,
22
+ };
@@ -0,0 +1,149 @@
1
+ import {BeaconPreset} from "../types.js";
2
+
3
+ // Mainnet preset
4
+ // https://github.com/ethereum/consensus-specs/tree/dev/presets/mainnet
5
+
6
+ export const mainnetPreset: BeaconPreset = {
7
+ // Misc
8
+ // ---------------------------------------------------------------
9
+ // 2**6 (= 64)
10
+ MAX_COMMITTEES_PER_SLOT: 64,
11
+ // 2**7 (= 128)
12
+ TARGET_COMMITTEE_SIZE: 128,
13
+ // 2**11 (= 2,048)
14
+ MAX_VALIDATORS_PER_COMMITTEE: 2048,
15
+ // See issue 563
16
+ SHUFFLE_ROUND_COUNT: 90,
17
+ // 4
18
+ HYSTERESIS_QUOTIENT: 4,
19
+ // 1 (minus 0.25)
20
+ HYSTERESIS_DOWNWARD_MULTIPLIER: 1,
21
+ // 5 (plus 1.25)
22
+ HYSTERESIS_UPWARD_MULTIPLIER: 5,
23
+
24
+ // Gwei values
25
+ // ---------------------------------------------------------------
26
+ // 2**0 * 10**9 (= 1,000,000,000) Gwei
27
+ MIN_DEPOSIT_AMOUNT: 1000000000,
28
+ // 2**5 * 10**9 (= 32,000,000,000) Gwei
29
+ MAX_EFFECTIVE_BALANCE: 32000000000,
30
+ // 2**0 * 10**9 (= 1,000,000,000) Gwei
31
+ EFFECTIVE_BALANCE_INCREMENT: 1000000000,
32
+
33
+ // Time parameters
34
+ // ---------------------------------------------------------------
35
+ // 2**0 (= 1) slots 12 seconds
36
+ MIN_ATTESTATION_INCLUSION_DELAY: 1,
37
+ // 2**5 (= 32) slots 6.4 minutes
38
+ SLOTS_PER_EPOCH: 32,
39
+ // 2**0 (= 1) epochs 6.4 minutes
40
+ MIN_SEED_LOOKAHEAD: 1,
41
+ // 2**2 (= 4) epochs 25.6 minutes
42
+ MAX_SEED_LOOKAHEAD: 4,
43
+ // 2**6 (= 64) epochs ~6.8 hours
44
+ EPOCHS_PER_ETH1_VOTING_PERIOD: 64,
45
+ // 2**13 (= 8,192) slots ~13 hours
46
+ SLOTS_PER_HISTORICAL_ROOT: 8192,
47
+ // 2**2 (= 4) epochs 25.6 minutes
48
+ MIN_EPOCHS_TO_INACTIVITY_PENALTY: 4,
49
+
50
+ // State vector lengths
51
+ // ---------------------------------------------------------------
52
+ // 2**16 (= 65,536) epochs ~0.8 years
53
+ EPOCHS_PER_HISTORICAL_VECTOR: 65536,
54
+ // 2**13 (= 8,192) epochs ~36 days
55
+ EPOCHS_PER_SLASHINGS_VECTOR: 8192,
56
+ // 2**24 (= 16,777,216) historical roots, ~26,131 years
57
+ HISTORICAL_ROOTS_LIMIT: 16777216,
58
+ // 2**40 (= 1,099,511,627,776) validator spots
59
+ VALIDATOR_REGISTRY_LIMIT: 1099511627776,
60
+
61
+ // Reward and penalty quotients
62
+ // ---------------------------------------------------------------
63
+ // 2**6 (= 64)
64
+ BASE_REWARD_FACTOR: 64,
65
+ // 2**9 (= 512)
66
+ WHISTLEBLOWER_REWARD_QUOTIENT: 512,
67
+ // 2**3 (= 8)
68
+ PROPOSER_REWARD_QUOTIENT: 8,
69
+ // 2**26 (= 67,108,864)
70
+ INACTIVITY_PENALTY_QUOTIENT: 67108864,
71
+ // 2**7 (= 128) (lower safety margin at Phase 0 genesis)
72
+ MIN_SLASHING_PENALTY_QUOTIENT: 128,
73
+ PROPORTIONAL_SLASHING_MULTIPLIER: 1,
74
+
75
+ // Max operations per block
76
+ // ---------------------------------------------------------------
77
+ // 2**4 (= 16)
78
+ MAX_PROPOSER_SLASHINGS: 16,
79
+ // 2**1 (= 2)
80
+ MAX_ATTESTER_SLASHINGS: 2,
81
+ // 2**7 (= 128)
82
+ MAX_ATTESTATIONS: 128,
83
+ // 2**4 (= 16)
84
+ MAX_DEPOSITS: 16,
85
+ // 2**4 (= 16)
86
+ MAX_VOLUNTARY_EXITS: 16,
87
+
88
+ // ALTAIR
89
+ /////////
90
+ SYNC_COMMITTEE_SIZE: 512,
91
+ EPOCHS_PER_SYNC_COMMITTEE_PERIOD: 256,
92
+ INACTIVITY_PENALTY_QUOTIENT_ALTAIR: 50331648,
93
+ MIN_SLASHING_PENALTY_QUOTIENT_ALTAIR: 64,
94
+ PROPORTIONAL_SLASHING_MULTIPLIER_ALTAIR: 2,
95
+ MIN_SYNC_COMMITTEE_PARTICIPANTS: 1,
96
+ UPDATE_TIMEOUT: 8192,
97
+
98
+ // BELLATRIX
99
+ ////////////
100
+ INACTIVITY_PENALTY_QUOTIENT_BELLATRIX: 16777216,
101
+ MIN_SLASHING_PENALTY_QUOTIENT_BELLATRIX: 32,
102
+ PROPORTIONAL_SLASHING_MULTIPLIER_BELLATRIX: 3,
103
+ MAX_BYTES_PER_TRANSACTION: 1073741824,
104
+ MAX_TRANSACTIONS_PER_PAYLOAD: 1048576,
105
+ BYTES_PER_LOGS_BLOOM: 256,
106
+ MAX_EXTRA_DATA_BYTES: 32,
107
+
108
+ // CAPELLA
109
+ //////////
110
+ MAX_BLS_TO_EXECUTION_CHANGES: 16,
111
+ MAX_WITHDRAWALS_PER_PAYLOAD: 16,
112
+ MAX_VALIDATORS_PER_WITHDRAWALS_SWEEP: 16384,
113
+
114
+ // DENEB
115
+ ///////////
116
+ FIELD_ELEMENTS_PER_BLOB: 4096,
117
+ MAX_BLOB_COMMITMENTS_PER_BLOCK: 4096,
118
+ KZG_COMMITMENT_INCLUSION_PROOF_DEPTH: 17,
119
+
120
+ // ELECTRA
121
+ MAX_DEPOSIT_REQUESTS_PER_PAYLOAD: 8192,
122
+ MAX_WITHDRAWAL_REQUESTS_PER_PAYLOAD: 16,
123
+ MAX_ATTESTER_SLASHINGS_ELECTRA: 1,
124
+ MAX_ATTESTATIONS_ELECTRA: 8,
125
+ MAX_PENDING_PARTIALS_PER_WITHDRAWALS_SWEEP: 8,
126
+ MAX_PENDING_DEPOSITS_PER_EPOCH: 16,
127
+ // 2**11 * 10**9 (= 2,048,000,000,000) Gwei
128
+ MAX_EFFECTIVE_BALANCE_ELECTRA: 2048000000000,
129
+ MIN_SLASHING_PENALTY_QUOTIENT_ELECTRA: 4096,
130
+ MIN_ACTIVATION_BALANCE: 32000000000,
131
+ PENDING_DEPOSITS_LIMIT: 134217728,
132
+ PENDING_PARTIAL_WITHDRAWALS_LIMIT: 134217728,
133
+ PENDING_CONSOLIDATIONS_LIMIT: 262144,
134
+ MAX_CONSOLIDATION_REQUESTS_PER_PAYLOAD: 2,
135
+ WHISTLEBLOWER_REWARD_QUOTIENT_ELECTRA: 4096,
136
+
137
+ // FULU
138
+ ///////////
139
+ NUMBER_OF_COLUMNS: 128,
140
+ CELLS_PER_EXT_BLOB: 128,
141
+ FIELD_ELEMENTS_PER_CELL: 64,
142
+ FIELD_ELEMENTS_PER_EXT_BLOB: 8192,
143
+ KZG_COMMITMENTS_INCLUSION_PROOF_DEPTH: 4,
144
+
145
+ // GLOAS
146
+ PTC_SIZE: 512,
147
+ MAX_PAYLOAD_ATTESTATIONS: 4,
148
+ BUILDER_PENDING_WITHDRAWALS_LIMIT: 1048576, // 2**20
149
+ };
@@ -0,0 +1,150 @@
1
+ import {BeaconPreset} from "../types.js";
2
+
3
+ // Minimal preset
4
+ // https://github.com/ethereum/consensus-specs/tree/dev/presets/minimal
5
+
6
+ export const minimalPreset: BeaconPreset = {
7
+ // Misc
8
+ // ---------------------------------------------------------------
9
+ // [customized] Just 4 committees for slot for testing purposes
10
+ MAX_COMMITTEES_PER_SLOT: 4,
11
+ // [customized] unsecure, but fast
12
+ TARGET_COMMITTEE_SIZE: 4,
13
+ // 2**11 (= 2,048)
14
+ MAX_VALIDATORS_PER_COMMITTEE: 2048,
15
+ // [customized] Faster, but unsecure.
16
+ SHUFFLE_ROUND_COUNT: 10,
17
+ // 4
18
+ HYSTERESIS_QUOTIENT: 4,
19
+ // 1 (minus 0.25)
20
+ HYSTERESIS_DOWNWARD_MULTIPLIER: 1,
21
+ // 5 (plus 1.25)
22
+ HYSTERESIS_UPWARD_MULTIPLIER: 5,
23
+
24
+ // Gwei values
25
+ // ---------------------------------------------------------------
26
+ // 2**0 * 10**9 (= 1,000,000,000) Gwei
27
+ MIN_DEPOSIT_AMOUNT: 1000000000,
28
+ // 2**5 * 10**9 (= 32,000,000,000) Gwei
29
+ MAX_EFFECTIVE_BALANCE: 32000000000,
30
+ // 2**0 * 10**9 (= 1,000,000,000) Gwei
31
+ EFFECTIVE_BALANCE_INCREMENT: 1000000000,
32
+
33
+ // Time parameters
34
+ // ---------------------------------------------------------------
35
+ // 2**0 (= 1) slots 6 seconds
36
+ MIN_ATTESTATION_INCLUSION_DELAY: 1,
37
+ // [customized] fast epochs
38
+ SLOTS_PER_EPOCH: 8,
39
+ // 2**0 (= 1) epochs
40
+ MIN_SEED_LOOKAHEAD: 1,
41
+ // 2**2 (= 4) epochs
42
+ MAX_SEED_LOOKAHEAD: 4,
43
+ // [customized] higher frequency new deposits from eth1 for testing
44
+ EPOCHS_PER_ETH1_VOTING_PERIOD: 4,
45
+ // [customized] smaller state
46
+ SLOTS_PER_HISTORICAL_ROOT: 64,
47
+ // 2**2 (= 4) epochs
48
+ MIN_EPOCHS_TO_INACTIVITY_PENALTY: 4,
49
+
50
+ // State vector lengths
51
+ // ---------------------------------------------------------------
52
+ // [customized] smaller state
53
+ EPOCHS_PER_HISTORICAL_VECTOR: 64,
54
+ // [customized] smaller state
55
+ EPOCHS_PER_SLASHINGS_VECTOR: 64,
56
+ // 2**24 (= 16,777,216) historical roots
57
+ HISTORICAL_ROOTS_LIMIT: 16777216,
58
+ // 2**40 (= 1,099,511,627,776) validator spots
59
+ VALIDATOR_REGISTRY_LIMIT: 1099511627776,
60
+
61
+ // Reward and penalty quotients
62
+ // ---------------------------------------------------------------
63
+ // 2**6 (= 64)
64
+ BASE_REWARD_FACTOR: 64,
65
+ // 2**9 (= 512)
66
+ WHISTLEBLOWER_REWARD_QUOTIENT: 512,
67
+ // 2**3 (= 8)
68
+ PROPOSER_REWARD_QUOTIENT: 8,
69
+ // [customized] 2**25 (= 33,554,432)
70
+ INACTIVITY_PENALTY_QUOTIENT: 33554432,
71
+ // [customized] 2**6 (= 64)
72
+ MIN_SLASHING_PENALTY_QUOTIENT: 64,
73
+ // [customized] 2 (lower safety margin than Phase 0 genesis but different than mainnet config for testing)
74
+ PROPORTIONAL_SLASHING_MULTIPLIER: 2,
75
+
76
+ // Max operations per block
77
+ // ---------------------------------------------------------------
78
+ // 2**4 (= 16)
79
+ MAX_PROPOSER_SLASHINGS: 16,
80
+ // 2**1 (= 2)
81
+ MAX_ATTESTER_SLASHINGS: 2,
82
+ // 2**7 (= 128)
83
+ MAX_ATTESTATIONS: 128,
84
+ // 2**4 (= 16)
85
+ MAX_DEPOSITS: 16,
86
+ // 2**4 (= 16)
87
+ MAX_VOLUNTARY_EXITS: 16,
88
+
89
+ // ALTAIR
90
+ /////////
91
+ SYNC_COMMITTEE_SIZE: 32,
92
+ EPOCHS_PER_SYNC_COMMITTEE_PERIOD: 8,
93
+ INACTIVITY_PENALTY_QUOTIENT_ALTAIR: 50331648,
94
+ MIN_SLASHING_PENALTY_QUOTIENT_ALTAIR: 64,
95
+ PROPORTIONAL_SLASHING_MULTIPLIER_ALTAIR: 2,
96
+ MIN_SYNC_COMMITTEE_PARTICIPANTS: 1,
97
+ UPDATE_TIMEOUT: 64,
98
+
99
+ // BELLATRIX
100
+ ////////////
101
+ INACTIVITY_PENALTY_QUOTIENT_BELLATRIX: 16777216,
102
+ MIN_SLASHING_PENALTY_QUOTIENT_BELLATRIX: 32,
103
+ PROPORTIONAL_SLASHING_MULTIPLIER_BELLATRIX: 3,
104
+ MAX_BYTES_PER_TRANSACTION: 1073741824,
105
+ MAX_TRANSACTIONS_PER_PAYLOAD: 1048576,
106
+ BYTES_PER_LOGS_BLOOM: 256,
107
+ MAX_EXTRA_DATA_BYTES: 32,
108
+
109
+ // CAPELLA
110
+ //////////
111
+ MAX_BLS_TO_EXECUTION_CHANGES: 16,
112
+ MAX_WITHDRAWALS_PER_PAYLOAD: 4,
113
+ MAX_VALIDATORS_PER_WITHDRAWALS_SWEEP: 16,
114
+
115
+ // DENEB
116
+ ///////////
117
+ FIELD_ELEMENTS_PER_BLOB: 4096,
118
+
119
+ // ELECTRA
120
+ MAX_DEPOSIT_REQUESTS_PER_PAYLOAD: 8192,
121
+ MAX_WITHDRAWAL_REQUESTS_PER_PAYLOAD: 16,
122
+ MAX_ATTESTER_SLASHINGS_ELECTRA: 1,
123
+ MAX_ATTESTATIONS_ELECTRA: 8,
124
+ MAX_PENDING_PARTIALS_PER_WITHDRAWALS_SWEEP: 2,
125
+ MAX_PENDING_DEPOSITS_PER_EPOCH: 16,
126
+ // 2**11 * 10**9 (= 2,048,000,000,000) Gwei
127
+ MAX_EFFECTIVE_BALANCE_ELECTRA: 2048000000000,
128
+ MIN_SLASHING_PENALTY_QUOTIENT_ELECTRA: 4096,
129
+ MIN_ACTIVATION_BALANCE: 32000000000,
130
+ PENDING_DEPOSITS_LIMIT: 134217728,
131
+ PENDING_PARTIAL_WITHDRAWALS_LIMIT: 64,
132
+ PENDING_CONSOLIDATIONS_LIMIT: 64,
133
+ MAX_CONSOLIDATION_REQUESTS_PER_PAYLOAD: 2,
134
+ WHISTLEBLOWER_REWARD_QUOTIENT_ELECTRA: 4096,
135
+ MAX_BLOB_COMMITMENTS_PER_BLOCK: 4096,
136
+ KZG_COMMITMENT_INCLUSION_PROOF_DEPTH: 17,
137
+
138
+ // FULU
139
+ ///////////
140
+ NUMBER_OF_COLUMNS: 128,
141
+ CELLS_PER_EXT_BLOB: 128,
142
+ FIELD_ELEMENTS_PER_CELL: 64,
143
+ FIELD_ELEMENTS_PER_EXT_BLOB: 8192,
144
+ KZG_COMMITMENTS_INCLUSION_PROOF_DEPTH: 4,
145
+
146
+ // GLOAS
147
+ PTC_SIZE: 2,
148
+ MAX_PAYLOAD_ATTESTATIONS: 4,
149
+ BUILDER_PENDING_WITHDRAWALS_LIMIT: 1048576, // 2**20
150
+ };
@@ -0,0 +1,48 @@
1
+ import {presetFromJson} from "./json.js";
2
+ import {PresetName} from "./presetName.js";
3
+ import {presetStatus} from "./presetStatus.js";
4
+ import {BeaconPreset} from "./types.js";
5
+
6
+ export {PresetName, presetFromJson};
7
+
8
+ /**
9
+ * The preset name currently exported by this library
10
+ *
11
+ * The `LODESTAR_PRESET` environment variable is used to select the active preset
12
+ * If `LODESTAR_PRESET` is not set, the default is `mainnet`.
13
+ *
14
+ * The active preset can be manually overridden with `setActivePreset`
15
+ */
16
+ export let userSelectedPreset: PresetName | null = null;
17
+
18
+ export let userOverrides: Partial<BeaconPreset> | undefined = undefined;
19
+
20
+ /**
21
+ * Override the active preset
22
+ *
23
+ * WARNING: Lodestar libraries rely on preset values being _constant_, so the active preset must be set _before_ loading any other lodestar libraries.
24
+ *
25
+ * Only call this function if you _really_ know what you are doing.
26
+ *
27
+ * @param presetName - the preset to use as a base
28
+ * @param overrides - customized fields
29
+ */
30
+ export function setActivePreset(presetName: PresetName | null, overrides?: Partial<BeaconPreset>): void {
31
+ if (presetStatus.frozen) {
32
+ throw Error(`Lodestar preset is already frozen. You must call setActivePreset() at the top of your
33
+ application entry point, before importing @lodestar/params, or any library that may import it.
34
+
35
+ \`\`\`
36
+ // index.ts
37
+ import {setActivePreset, PresetName} from "@lodestar/params/setPreset"
38
+ setActivePreset(PresetName.minimal)
39
+ // Now you can safely import from other paths and consume params
40
+ import {SLOTS_PER_EPOCH} from "@lodestar/params"
41
+ console.log({SLOTS_PER_EPOCH})
42
+ \`\`\`
43
+ `);
44
+ }
45
+
46
+ userSelectedPreset = presetName;
47
+ userOverrides = overrides;
48
+ }
package/src/types.ts ADDED
@@ -0,0 +1,228 @@
1
+ /**
2
+ * Compile-time chain configuration
3
+ */
4
+ export type BeaconPreset = {
5
+ // Misc
6
+ MAX_COMMITTEES_PER_SLOT: number;
7
+ TARGET_COMMITTEE_SIZE: number;
8
+ MAX_VALIDATORS_PER_COMMITTEE: number;
9
+
10
+ SHUFFLE_ROUND_COUNT: number;
11
+
12
+ HYSTERESIS_QUOTIENT: number;
13
+ HYSTERESIS_DOWNWARD_MULTIPLIER: number;
14
+ HYSTERESIS_UPWARD_MULTIPLIER: number;
15
+
16
+ // Gwei Values
17
+ MIN_DEPOSIT_AMOUNT: number;
18
+ MAX_EFFECTIVE_BALANCE: number;
19
+ EFFECTIVE_BALANCE_INCREMENT: number;
20
+
21
+ // Time parameters
22
+ MIN_ATTESTATION_INCLUSION_DELAY: number;
23
+ SLOTS_PER_EPOCH: number;
24
+ MIN_SEED_LOOKAHEAD: number;
25
+ MAX_SEED_LOOKAHEAD: number;
26
+ EPOCHS_PER_ETH1_VOTING_PERIOD: number;
27
+ SLOTS_PER_HISTORICAL_ROOT: number;
28
+ MIN_EPOCHS_TO_INACTIVITY_PENALTY: number;
29
+
30
+ // State vector lengths
31
+ EPOCHS_PER_HISTORICAL_VECTOR: number;
32
+ EPOCHS_PER_SLASHINGS_VECTOR: number;
33
+ HISTORICAL_ROOTS_LIMIT: number;
34
+ VALIDATOR_REGISTRY_LIMIT: number;
35
+
36
+ // Reward and penalty quotients
37
+ BASE_REWARD_FACTOR: number;
38
+ WHISTLEBLOWER_REWARD_QUOTIENT: number;
39
+ PROPOSER_REWARD_QUOTIENT: number;
40
+ INACTIVITY_PENALTY_QUOTIENT: number;
41
+ MIN_SLASHING_PENALTY_QUOTIENT: number;
42
+ PROPORTIONAL_SLASHING_MULTIPLIER: number;
43
+
44
+ // Max operations per block
45
+ MAX_PROPOSER_SLASHINGS: number;
46
+ MAX_ATTESTER_SLASHINGS: number;
47
+ MAX_ATTESTATIONS: number;
48
+ MAX_DEPOSITS: number;
49
+ MAX_VOLUNTARY_EXITS: number;
50
+
51
+ // ALTAIR
52
+ /////////
53
+ SYNC_COMMITTEE_SIZE: number;
54
+ EPOCHS_PER_SYNC_COMMITTEE_PERIOD: number;
55
+ INACTIVITY_PENALTY_QUOTIENT_ALTAIR: number;
56
+ MIN_SLASHING_PENALTY_QUOTIENT_ALTAIR: number;
57
+ PROPORTIONAL_SLASHING_MULTIPLIER_ALTAIR: number;
58
+ MIN_SYNC_COMMITTEE_PARTICIPANTS: number;
59
+ UPDATE_TIMEOUT: number;
60
+
61
+ // BELLATRIX
62
+ ////////////
63
+ INACTIVITY_PENALTY_QUOTIENT_BELLATRIX: number;
64
+ MIN_SLASHING_PENALTY_QUOTIENT_BELLATRIX: number;
65
+ PROPORTIONAL_SLASHING_MULTIPLIER_BELLATRIX: number;
66
+ MAX_BYTES_PER_TRANSACTION: number;
67
+ MAX_TRANSACTIONS_PER_PAYLOAD: number;
68
+ BYTES_PER_LOGS_BLOOM: number;
69
+ MAX_EXTRA_DATA_BYTES: number;
70
+
71
+ // CAPELLA
72
+ //////////
73
+ MAX_BLS_TO_EXECUTION_CHANGES: number;
74
+ MAX_WITHDRAWALS_PER_PAYLOAD: number;
75
+ MAX_VALIDATORS_PER_WITHDRAWALS_SWEEP: number;
76
+
77
+ // DENEB
78
+ ///////////
79
+ FIELD_ELEMENTS_PER_BLOB: number;
80
+ MAX_BLOB_COMMITMENTS_PER_BLOCK: number;
81
+ KZG_COMMITMENT_INCLUSION_PROOF_DEPTH: number;
82
+
83
+ // ELECTRA
84
+ MAX_DEPOSIT_REQUESTS_PER_PAYLOAD: number;
85
+ MAX_WITHDRAWAL_REQUESTS_PER_PAYLOAD: number;
86
+ MAX_ATTESTER_SLASHINGS_ELECTRA: number;
87
+ MAX_ATTESTATIONS_ELECTRA: number;
88
+ MAX_PENDING_PARTIALS_PER_WITHDRAWALS_SWEEP: number;
89
+ MAX_PENDING_DEPOSITS_PER_EPOCH: number;
90
+ MAX_EFFECTIVE_BALANCE_ELECTRA: number;
91
+ MIN_SLASHING_PENALTY_QUOTIENT_ELECTRA: number;
92
+ MIN_ACTIVATION_BALANCE: number;
93
+ PENDING_DEPOSITS_LIMIT: number;
94
+ PENDING_PARTIAL_WITHDRAWALS_LIMIT: number;
95
+ PENDING_CONSOLIDATIONS_LIMIT: number;
96
+ MAX_CONSOLIDATION_REQUESTS_PER_PAYLOAD: number;
97
+ WHISTLEBLOWER_REWARD_QUOTIENT_ELECTRA: number;
98
+
99
+ // FULU
100
+ ///////////
101
+ NUMBER_OF_COLUMNS: number;
102
+ CELLS_PER_EXT_BLOB: number;
103
+ FIELD_ELEMENTS_PER_CELL: number;
104
+ FIELD_ELEMENTS_PER_EXT_BLOB: number;
105
+ KZG_COMMITMENTS_INCLUSION_PROOF_DEPTH: number;
106
+
107
+ // GLOAS
108
+ PTC_SIZE: number;
109
+ MAX_PAYLOAD_ATTESTATIONS: number;
110
+ BUILDER_PENDING_WITHDRAWALS_LIMIT: number;
111
+ };
112
+
113
+ /**
114
+ * Presets only contain numbers, just used to filter out extraneous keys
115
+ * when overriding the active preset with custom values from file
116
+ */
117
+ export const beaconPresetTypes: BeaconPresetTypes = {
118
+ // Misc
119
+ MAX_COMMITTEES_PER_SLOT: "number",
120
+ TARGET_COMMITTEE_SIZE: "number",
121
+ MAX_VALIDATORS_PER_COMMITTEE: "number",
122
+
123
+ SHUFFLE_ROUND_COUNT: "number",
124
+
125
+ HYSTERESIS_QUOTIENT: "number",
126
+ HYSTERESIS_DOWNWARD_MULTIPLIER: "number",
127
+ HYSTERESIS_UPWARD_MULTIPLIER: "number",
128
+
129
+ // Gwei Values
130
+ MIN_DEPOSIT_AMOUNT: "number",
131
+ MAX_EFFECTIVE_BALANCE: "number",
132
+ EFFECTIVE_BALANCE_INCREMENT: "number",
133
+
134
+ // Time parameters
135
+ MIN_ATTESTATION_INCLUSION_DELAY: "number",
136
+ SLOTS_PER_EPOCH: "number",
137
+ MIN_SEED_LOOKAHEAD: "number",
138
+ MAX_SEED_LOOKAHEAD: "number",
139
+ EPOCHS_PER_ETH1_VOTING_PERIOD: "number",
140
+ SLOTS_PER_HISTORICAL_ROOT: "number",
141
+ MIN_EPOCHS_TO_INACTIVITY_PENALTY: "number",
142
+
143
+ // State vector lengths
144
+ EPOCHS_PER_HISTORICAL_VECTOR: "number",
145
+ EPOCHS_PER_SLASHINGS_VECTOR: "number",
146
+ HISTORICAL_ROOTS_LIMIT: "number",
147
+ VALIDATOR_REGISTRY_LIMIT: "number",
148
+
149
+ // Reward and penalty quotients
150
+ BASE_REWARD_FACTOR: "number",
151
+ WHISTLEBLOWER_REWARD_QUOTIENT: "number",
152
+ PROPOSER_REWARD_QUOTIENT: "number",
153
+ INACTIVITY_PENALTY_QUOTIENT: "number",
154
+ MIN_SLASHING_PENALTY_QUOTIENT: "number",
155
+ PROPORTIONAL_SLASHING_MULTIPLIER: "number",
156
+
157
+ // Max operations per block
158
+ MAX_PROPOSER_SLASHINGS: "number",
159
+ MAX_ATTESTER_SLASHINGS: "number",
160
+ MAX_ATTESTATIONS: "number",
161
+ MAX_DEPOSITS: "number",
162
+ MAX_VOLUNTARY_EXITS: "number",
163
+
164
+ // ALTAIR
165
+ /////////
166
+ SYNC_COMMITTEE_SIZE: "number",
167
+ EPOCHS_PER_SYNC_COMMITTEE_PERIOD: "number",
168
+ INACTIVITY_PENALTY_QUOTIENT_ALTAIR: "number",
169
+ MIN_SLASHING_PENALTY_QUOTIENT_ALTAIR: "number",
170
+ PROPORTIONAL_SLASHING_MULTIPLIER_ALTAIR: "number",
171
+ MIN_SYNC_COMMITTEE_PARTICIPANTS: "number",
172
+ UPDATE_TIMEOUT: "number",
173
+
174
+ // BELLATRIX
175
+ ////////////
176
+ INACTIVITY_PENALTY_QUOTIENT_BELLATRIX: "number",
177
+ MIN_SLASHING_PENALTY_QUOTIENT_BELLATRIX: "number",
178
+ PROPORTIONAL_SLASHING_MULTIPLIER_BELLATRIX: "number",
179
+ MAX_BYTES_PER_TRANSACTION: "number",
180
+ MAX_TRANSACTIONS_PER_PAYLOAD: "number",
181
+ BYTES_PER_LOGS_BLOOM: "number",
182
+ MAX_EXTRA_DATA_BYTES: "number",
183
+
184
+ // CAPELLA
185
+ //////////
186
+ MAX_BLS_TO_EXECUTION_CHANGES: "number",
187
+ MAX_WITHDRAWALS_PER_PAYLOAD: "number",
188
+ MAX_VALIDATORS_PER_WITHDRAWALS_SWEEP: "number",
189
+
190
+ // DENEB
191
+ ///////////
192
+ FIELD_ELEMENTS_PER_BLOB: "number",
193
+ MAX_BLOB_COMMITMENTS_PER_BLOCK: "number",
194
+ KZG_COMMITMENT_INCLUSION_PROOF_DEPTH: "number",
195
+
196
+ // ELECTRA
197
+ MAX_DEPOSIT_REQUESTS_PER_PAYLOAD: "number",
198
+ MAX_WITHDRAWAL_REQUESTS_PER_PAYLOAD: "number",
199
+ MAX_ATTESTER_SLASHINGS_ELECTRA: "number",
200
+ MAX_ATTESTATIONS_ELECTRA: "number",
201
+ MAX_PENDING_PARTIALS_PER_WITHDRAWALS_SWEEP: "number",
202
+ MAX_PENDING_DEPOSITS_PER_EPOCH: "number",
203
+ MAX_EFFECTIVE_BALANCE_ELECTRA: "number",
204
+ MIN_SLASHING_PENALTY_QUOTIENT_ELECTRA: "number",
205
+ MIN_ACTIVATION_BALANCE: "number",
206
+ PENDING_DEPOSITS_LIMIT: "number",
207
+ PENDING_PARTIAL_WITHDRAWALS_LIMIT: "number",
208
+ PENDING_CONSOLIDATIONS_LIMIT: "number",
209
+ MAX_CONSOLIDATION_REQUESTS_PER_PAYLOAD: "number",
210
+ WHISTLEBLOWER_REWARD_QUOTIENT_ELECTRA: "number",
211
+
212
+ // FULU
213
+ ///////////
214
+ NUMBER_OF_COLUMNS: "number",
215
+ CELLS_PER_EXT_BLOB: "number",
216
+ FIELD_ELEMENTS_PER_CELL: "number",
217
+ FIELD_ELEMENTS_PER_EXT_BLOB: "number",
218
+ KZG_COMMITMENTS_INCLUSION_PROOF_DEPTH: "number",
219
+
220
+ // GLOAS
221
+ PTC_SIZE: "number",
222
+ MAX_PAYLOAD_ATTESTATIONS: "number",
223
+ BUILDER_PENDING_WITHDRAWALS_LIMIT: "number",
224
+ };
225
+
226
+ type BeaconPresetTypes = {
227
+ [K in keyof BeaconPreset]: "number";
228
+ };