|
5 | 5 | Remove this file afterwards. |
6 | 6 | """ |
7 | 7 |
|
| 8 | +from typing import Dict, List |
| 9 | + |
| 10 | +from ethereum_test_forks import Cancun, Fork, Osaka, Prague |
| 11 | + |
| 12 | + |
| 13 | +def get_blob_schedule_entries(fork: Fork) -> Dict[str, int]: |
| 14 | + """ |
| 15 | + Generate blob schedule entries for each fork (and respective parent forks). |
| 16 | +
|
| 17 | + Adds the following entries to the ruleset for the given fork (and parent forks): |
| 18 | + HIVE_{FORK}_BLOB_TARGET: target_blobs_per_block() |
| 19 | + HIVE_{FORK}_BLOB_MAX: max_blobs_per_block() |
| 20 | + HIVE_{FORK}_BLOB_BASE_FEE_UPDATE_FRACTION: blob_base_fee_update_fraction() |
| 21 | + """ |
| 22 | + entries: Dict = {} |
| 23 | + forks_with_blobs: List[Fork] = [] |
| 24 | + current_fork = fork |
| 25 | + while current_fork.supports_blobs(): |
| 26 | + forks_with_blobs.append(current_fork) |
| 27 | + current_fork = current_fork.parent() # type: ignore |
| 28 | + |
| 29 | + for fork_to_process in forks_with_blobs: |
| 30 | + prefix = fork_to_process.__name__.upper() |
| 31 | + entries[f"HIVE_{prefix}_BLOB_TARGET"] = fork_to_process.target_blobs_per_block() |
| 32 | + entries[f"HIVE_{prefix}_BLOB_MAX"] = fork_to_process.max_blobs_per_block() |
| 33 | + entries[f"HIVE_{prefix}_BLOB_BASE_FEE_UPDATE_FRACTION"] = ( |
| 34 | + fork_to_process.blob_base_fee_update_fraction() |
| 35 | + ) |
| 36 | + return entries |
| 37 | + |
| 38 | + |
8 | 39 | ruleset = { |
9 | 40 | "Frontier": { |
10 | 41 | "HIVE_FORK_HOMESTEAD": 2000, |
|
121 | 152 | }, |
122 | 153 | "HomesteadToEIP150At5": { |
123 | 154 | "HIVE_FORK_HOMESTEAD": 0, |
124 | | - # "HIVE_FORK_DAO_BLOCK": 2000, |
125 | 155 | "HIVE_FORK_TANGERINE": 5, |
126 | 156 | "HIVE_FORK_SPURIOUS": 2000, |
127 | 157 | "HIVE_FORK_BYZANTIUM": 2000, |
|
145 | 175 | }, |
146 | 176 | "EIP158ToByzantiumAt5": { |
147 | 177 | "HIVE_FORK_HOMESTEAD": 0, |
148 | | - # "HIVE_FORK_DAO_BLOCK": 2000, |
149 | 178 | "HIVE_FORK_TANGERINE": 0, |
150 | 179 | "HIVE_FORK_SPURIOUS": 0, |
151 | 180 | "HIVE_FORK_BYZANTIUM": 5, |
|
157 | 186 | }, |
158 | 187 | "ByzantiumToConstantinopleAt5": { |
159 | 188 | "HIVE_FORK_HOMESTEAD": 0, |
160 | | - # "HIVE_FORK_DAO_BLOCK": 2000, |
161 | 189 | "HIVE_FORK_TANGERINE": 0, |
162 | 190 | "HIVE_FORK_SPURIOUS": 0, |
163 | 191 | "HIVE_FORK_BYZANTIUM": 0, |
|
169 | 197 | }, |
170 | 198 | "ByzantiumToConstantinopleFixAt5": { |
171 | 199 | "HIVE_FORK_HOMESTEAD": 0, |
172 | | - # "HIVE_FORK_DAO_BLOCK": 2000, |
173 | 200 | "HIVE_FORK_TANGERINE": 0, |
174 | 201 | "HIVE_FORK_SPURIOUS": 0, |
175 | 202 | "HIVE_FORK_BYZANTIUM": 0, |
|
181 | 208 | }, |
182 | 209 | "ConstantinopleFixToIstanbulAt5": { |
183 | 210 | "HIVE_FORK_HOMESTEAD": 0, |
184 | | - # "HIVE_FORK_DAO_BLOCK": 2000, |
185 | 211 | "HIVE_FORK_TANGERINE": 0, |
186 | 212 | "HIVE_FORK_SPURIOUS": 0, |
187 | 213 | "HIVE_FORK_BYZANTIUM": 0, |
|
193 | 219 | }, |
194 | 220 | "IstanbulToBerlinAt5": { |
195 | 221 | "HIVE_FORK_HOMESTEAD": 0, |
196 | | - # "HIVE_FORK_DAO_BLOCK": 2000, |
197 | 222 | "HIVE_FORK_TANGERINE": 0, |
198 | 223 | "HIVE_FORK_SPURIOUS": 0, |
199 | 224 | "HIVE_FORK_BYZANTIUM": 0, |
|
205 | 230 | }, |
206 | 231 | "BerlinToLondonAt5": { |
207 | 232 | "HIVE_FORK_HOMESTEAD": 0, |
208 | | - # "HIVE_FORK_DAO_BLOCK": 2000, |
209 | 233 | "HIVE_FORK_TANGERINE": 0, |
210 | 234 | "HIVE_FORK_SPURIOUS": 0, |
211 | 235 | "HIVE_FORK_BYZANTIUM": 0, |
|
306 | 330 | "HIVE_TERMINAL_TOTAL_DIFFICULTY": 0, |
307 | 331 | "HIVE_SHANGHAI_TIMESTAMP": 0, |
308 | 332 | "HIVE_CANCUN_TIMESTAMP": 0, |
309 | | - "HIVE_CANCUN_BLOB_TARGET": 3, |
310 | | - "HIVE_CANCUN_BLOB_MAX": 6, |
311 | | - "HIVE_CANCUN_BLOB_BASE_FEE_UPDATE_FRACTION": 3338477, |
| 333 | + **get_blob_schedule_entries(Cancun), |
312 | 334 | }, |
313 | 335 | "ShanghaiToCancunAtTime15k": { |
314 | 336 | "HIVE_FORK_HOMESTEAD": 0, |
|
324 | 346 | "HIVE_TERMINAL_TOTAL_DIFFICULTY": 0, |
325 | 347 | "HIVE_SHANGHAI_TIMESTAMP": 0, |
326 | 348 | "HIVE_CANCUN_TIMESTAMP": 15000, |
327 | | - "HIVE_CANCUN_BLOB_TARGET": 3, |
328 | | - "HIVE_CANCUN_BLOB_MAX": 6, |
329 | | - "HIVE_CANCUN_BLOB_BASE_FEE_UPDATE_FRACTION": 3338477, |
| 349 | + **get_blob_schedule_entries(Cancun), |
330 | 350 | }, |
331 | 351 | "Prague": { |
332 | 352 | "HIVE_FORK_HOMESTEAD": 0, |
|
342 | 362 | "HIVE_TERMINAL_TOTAL_DIFFICULTY": 0, |
343 | 363 | "HIVE_SHANGHAI_TIMESTAMP": 0, |
344 | 364 | "HIVE_CANCUN_TIMESTAMP": 0, |
345 | | - "HIVE_CANCUN_BLOB_TARGET": 3, |
346 | | - "HIVE_CANCUN_BLOB_MAX": 6, |
347 | | - "HIVE_CANCUN_BLOB_BASE_FEE_UPDATE_FRACTION": 3338477, |
348 | 365 | "HIVE_PRAGUE_TIMESTAMP": 0, |
349 | | - "HIVE_PRAGUE_BLOB_TARGET": 6, |
350 | | - "HIVE_PRAGUE_BLOB_MAX": 9, |
351 | | - "HIVE_PRAGUE_BLOB_BASE_FEE_UPDATE_FRACTION": 5007716, |
| 366 | + **get_blob_schedule_entries(Prague), |
352 | 367 | }, |
353 | 368 | "CancunToPragueAtTime15k": { |
354 | 369 | "HIVE_FORK_HOMESTEAD": 0, |
|
364 | 379 | "HIVE_TERMINAL_TOTAL_DIFFICULTY": 0, |
365 | 380 | "HIVE_SHANGHAI_TIMESTAMP": 0, |
366 | 381 | "HIVE_CANCUN_TIMESTAMP": 0, |
367 | | - "HIVE_CANCUN_BLOB_TARGET": 3, |
368 | | - "HIVE_CANCUN_BLOB_MAX": 6, |
369 | | - "HIVE_CANCUN_BLOB_BASE_FEE_UPDATE_FRACTION": 3338477, |
370 | 382 | "HIVE_PRAGUE_TIMESTAMP": 15000, |
371 | | - "HIVE_PRAGUE_BLOB_TARGET": 6, |
372 | | - "HIVE_PRAGUE_BLOB_MAX": 9, |
373 | | - "HIVE_PRAGUE_BLOB_BASE_FEE_UPDATE_FRACTION": 5007716, |
| 383 | + **get_blob_schedule_entries(Prague), |
| 384 | + }, |
| 385 | + "Osaka": { |
| 386 | + "HIVE_FORK_HOMESTEAD": 0, |
| 387 | + "HIVE_FORK_TANGERINE": 0, |
| 388 | + "HIVE_FORK_SPURIOUS": 0, |
| 389 | + "HIVE_FORK_BYZANTIUM": 0, |
| 390 | + "HIVE_FORK_CONSTANTINOPLE": 0, |
| 391 | + "HIVE_FORK_PETERSBURG": 0, |
| 392 | + "HIVE_FORK_ISTANBUL": 0, |
| 393 | + "HIVE_FORK_BERLIN": 0, |
| 394 | + "HIVE_FORK_LONDON": 0, |
| 395 | + "HIVE_FORK_MERGE": 0, |
| 396 | + "HIVE_TERMINAL_TOTAL_DIFFICULTY": 0, |
| 397 | + "HIVE_SHANGHAI_TIMESTAMP": 0, |
| 398 | + "HIVE_CANCUN_TIMESTAMP": 0, |
| 399 | + "HIVE_PRAGUE_TIMESTAMP": 0, |
| 400 | + "HIVE_OSAKA_TIMESTAMP": 0, |
| 401 | + **get_blob_schedule_entries(Osaka), |
| 402 | + }, |
| 403 | + "PragueToOsakaAtTime15k": { |
| 404 | + "HIVE_FORK_HOMESTEAD": 0, |
| 405 | + "HIVE_FORK_TANGERINE": 0, |
| 406 | + "HIVE_FORK_SPURIOUS": 0, |
| 407 | + "HIVE_FORK_BYZANTIUM": 0, |
| 408 | + "HIVE_FORK_CONSTANTINOPLE": 0, |
| 409 | + "HIVE_FORK_PETERSBURG": 0, |
| 410 | + "HIVE_FORK_ISTANBUL": 0, |
| 411 | + "HIVE_FORK_BERLIN": 0, |
| 412 | + "HIVE_FORK_LONDON": 0, |
| 413 | + "HIVE_FORK_MERGE": 0, |
| 414 | + "HIVE_TERMINAL_TOTAL_DIFFICULTY": 0, |
| 415 | + "HIVE_SHANGHAI_TIMESTAMP": 0, |
| 416 | + "HIVE_CANCUN_TIMESTAMP": 0, |
| 417 | + "HIVE_PRAGUE_TIMESTAMP": 0, |
| 418 | + "HIVE_OSAKA_TIMESTAMP": 15000, |
| 419 | + **get_blob_schedule_entries(Osaka), |
374 | 420 | }, |
375 | 421 | } |
0 commit comments