@lodestar/params 1.35.0-dev.feed916580 → 1.35.0-rc.1
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.
- package/lib/forkName.d.ts.map +1 -0
- package/lib/index.d.ts +11 -1
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +9 -1
- package/lib/index.js.map +1 -1
- package/lib/json.d.ts.map +1 -0
- package/lib/presetName.d.ts.map +1 -0
- package/lib/presetStatus.d.ts.map +1 -0
- package/lib/presets/gnosis.d.ts.map +1 -0
- package/lib/presets/mainnet.d.ts.map +1 -0
- package/lib/presets/mainnet.js +4 -0
- package/lib/presets/mainnet.js.map +1 -1
- package/lib/presets/minimal.d.ts.map +1 -0
- package/lib/presets/minimal.js +4 -0
- package/lib/presets/minimal.js.map +1 -1
- package/lib/setPreset.d.ts.map +1 -0
- package/lib/types.d.ts +3 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +4 -0
- package/lib/types.js.map +1 -1
- package/package.json +10 -7
- package/src/forkName.ts +195 -0
- package/src/index.ts +313 -0
- package/src/json.ts +58 -0
- package/src/presetName.ts +5 -0
- package/src/presetStatus.ts +3 -0
- package/src/presets/gnosis.ts +22 -0
- package/src/presets/mainnet.ts +149 -0
- package/src/presets/minimal.ts +150 -0
- package/src/setPreset.ts +48 -0
- package/src/types.ts +228 -0
package/src/setPreset.ts
ADDED
|
@@ -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
|
+
};
|