|
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() |
| 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