test_recipient_new_account_refilled_on_dispatch_halt_with_reservoir()¶
Documentation for tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_authorization_oog.py::test_recipient_new_account_refilled_on_dispatch_halt_with_reservoir@26332146.
Generate fixtures for these test cases for Amsterdam with:
fill -v tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_authorization_oog.py::test_recipient_new_account_refilled_on_dispatch_halt_with_reservoir --fork Amsterdam
The recipient NEW_ACCOUNT charge is refilled when the dispatch
fails, because the recipient's account creation rolls back with it
-- unlike an authorization's state gas, whose delegation persists.
Value moves to an empty precompile (a recipient that is empty
yet still executes): the top frame charges NEW_ACCOUNT,
dispatch moves the value -- materializing the leaf -- and the
precompile then halts (the bn254 pairing rejects a 1-byte input),
rolling the leaf back. The state did not grow, so the charge
refills.
The gas limit exceeds the EIP-7825 cap so the charge draws from a
state-gas reservoir; the halt consumes the full execution budget (the
cap) but the entire reservoir returns, pinning the refill in the
receipt's gas used. This is the counterpart of
test_auth_state_charges_survive_dispatch_halt_with_reservoir,
which pins that an authorization's state gas does NOT return.
Source code in tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_authorization_oog.py
1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 | |
Parametrized Test Cases¶
This test generates 1 parametrized test case across 1 fork.