Commit 4c5cc3a
authored
refactor(revme): separate bytecode from account in test state (#3803)
* fix(handler): derive 7702 delegated_before_tx from the code hash
The EIP-8037 auth-refund bookkeeping read the authority's pre-transaction
bytecode from the account's original info, which carries no code when the
database serves bytecode separately from the account (code only via
code_by_hash). A pre-existing delegation was then missed and the clearing
refund under-counted. Derive the fact from the original code hash instead:
an accepted authorization's code is guaranteed empty-or-delegation, so a
non-empty hash is necessarily a delegation.
* refactor(revme): serve test bytecode through code_by_hash
Seed statetest and blockchaintest pre-state with the bytecode stored
separately from the account (contracts map keyed by code hash) instead of
inlined in AccountInfo. Execution now has to fetch code through
Database::code_by_hash, the way a node's state provider serves it, so the
fixtures exercise every code-loading path and catch loads that forget to
fetch bytecode.
Post-state code validation in blockchaintest falls back to code_by_hash
when the account carries only a hash, and the debug pre-state keeps the
code inlined for readable output.1 parent a094a93 commit 4c5cc3a
3 files changed
Lines changed: 82 additions & 41 deletions
File tree
- bins/revme/src/cmd
- crates
- handler/src
- statetest-types/src
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
337 | 337 | | |
338 | 338 | | |
339 | 339 | | |
340 | | - | |
341 | | - | |
342 | | - | |
343 | | - | |
344 | | - | |
345 | | - | |
346 | | - | |
347 | | - | |
348 | | - | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
349 | 352 | | |
350 | 353 | | |
351 | 354 | | |
| |||
376 | 379 | | |
377 | 380 | | |
378 | 381 | | |
379 | | - | |
| 382 | + | |
| 383 | + | |
380 | 384 | | |
381 | | - | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
382 | 395 | | |
383 | 396 | | |
384 | 397 | | |
| |||
405 | 418 | | |
406 | 419 | | |
407 | 420 | | |
408 | | - | |
409 | | - | |
410 | | - | |
411 | | - | |
412 | | - | |
413 | | - | |
414 | | - | |
415 | | - | |
416 | | - | |
417 | | - | |
418 | | - | |
419 | | - | |
420 | | - | |
421 | | - | |
422 | | - | |
423 | | - | |
424 | | - | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
425 | 436 | | |
426 | 437 | | |
427 | 438 | | |
| |||
669 | 680 | | |
670 | 681 | | |
671 | 682 | | |
672 | | - | |
| 683 | + | |
| 684 | + | |
| 685 | + | |
| 686 | + | |
673 | 687 | | |
674 | 688 | | |
| 689 | + | |
| 690 | + | |
675 | 691 | | |
676 | 692 | | |
677 | 693 | | |
678 | | - | |
679 | | - | |
| 694 | + | |
| 695 | + | |
680 | 696 | | |
681 | 697 | | |
682 | 698 | | |
683 | | - | |
| 699 | + | |
| 700 | + | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
684 | 704 | | |
685 | | - | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
| 708 | + | |
| 709 | + | |
| 710 | + | |
| 711 | + | |
| 712 | + | |
| 713 | + | |
| 714 | + | |
686 | 715 | | |
687 | 716 | | |
688 | 717 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
311 | 311 | | |
312 | 312 | | |
313 | 313 | | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
314 | 321 | | |
315 | 322 | | |
316 | 323 | | |
317 | 324 | | |
318 | 325 | | |
319 | 326 | | |
320 | | - | |
| 327 | + | |
321 | 328 | | |
322 | 329 | | |
323 | | - | |
324 | | - | |
325 | | - | |
| 330 | + | |
326 | 331 | | |
327 | 332 | | |
328 | 333 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
60 | 60 | | |
61 | 61 | | |
62 | 62 | | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
63 | 67 | | |
64 | 68 | | |
65 | | - | |
| 69 | + | |
66 | 70 | | |
67 | 71 | | |
68 | 72 | | |
69 | 73 | | |
70 | | - | |
71 | | - | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
72 | 79 | | |
73 | 80 | | |
74 | 81 | | |
75 | | - | |
| 82 | + | |
76 | 83 | | |
77 | 84 | | |
78 | 85 | | |
| |||
0 commit comments