Skip to content

test_point_evaluation_precompile_gas_usage()

Documentation for tests/cancun/eip4844_blobs/test_point_evaluation_precompile_gas.py::test_point_evaluation_precompile_gas_usage@49a16fac.

Generate fixtures for these test cases for Prague with:

fill -v tests/cancun/eip4844_blobs/test_point_evaluation_precompile_gas.py::test_point_evaluation_precompile_gas_usage --fork Prague

Test point evaluation precompile gas usage under different call contexts and gas limits.

  • Test using all call types (CALL, DELEGATECALL, CALLCODE, STATICCALL)
  • Test using different gas limits (exact gas, insufficient gas, extra gas)
  • Test using correct and incorrect proofs
Source code in tests/cancun/eip4844_blobs/test_point_evaluation_precompile_gas.py
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
@pytest.mark.parametrize(
    "call_type",
    [Op.CALL, Op.DELEGATECALL, Op.CALLCODE, Op.STATICCALL],
)
@pytest.mark.parametrize(
    "call_gas",
    [
        Spec.POINT_EVALUATION_PRECOMPILE_GAS,
        Spec.POINT_EVALUATION_PRECOMPILE_GAS - 1,
        Spec.POINT_EVALUATION_PRECOMPILE_GAS + 1,
    ],
    ids=["exact_gas", "insufficient_gas", "extra_gas"],
)
@pytest.mark.parametrize("proof", ["correct", "incorrect"])
@pytest.mark.valid_from("Cancun")
def test_point_evaluation_precompile_gas_usage(
    state_test: StateTestFiller,
    pre: Dict,
    tx: Transaction,
    post: Dict,
):
    """
    Test point evaluation precompile gas usage under different call contexts and gas limits.

    - Test using all call types (CALL, DELEGATECALL, CALLCODE, STATICCALL)
    - Test using different gas limits (exact gas, insufficient gas, extra gas)
    - Test using correct and incorrect proofs
    """
    state_test(
        env=Environment(),
        pre=pre,
        post=post,
        tx=tx,
    )

Parametrized Test Cases

The interactive table below is also available as a standalone page.

Test ID (Abbreviated) proof call_gas call_type
...fork_Cancun-blockchain_test-proof_correct-exact_gas-call_type_CALL correct 50000 CALL
...fork_Cancun-blockchain_test-proof_correct-exact_gas-call_type_DELEGATECALL correct 50000 DELEGATECALL
...fork_Cancun-blockchain_test-proof_correct-exact_gas-call_type_CALLCODE correct 50000 CALLCODE
...fork_Cancun-blockchain_test-proof_correct-exact_gas-call_type_STATICCALL correct 50000 STATICCALL
...fork_Cancun-blockchain_test-proof_correct-insufficient_gas-call_type_CALL correct 49999 CALL
...fork_Cancun-blockchain_test-proof_correct-insufficient_gas-call_type_DELEGATECALL correct 49999 DELEGATECALL
...fork_Cancun-blockchain_test-proof_correct-insufficient_gas-call_type_CALLCODE correct 49999 CALLCODE
...fork_Cancun-blockchain_test-proof_correct-insufficient_gas-call_type_STATICCALL correct 49999 STATICCALL
...fork_Cancun-blockchain_test-proof_correct-extra_gas-call_type_CALL correct 50001 CALL
...fork_Cancun-blockchain_test-proof_correct-extra_gas-call_type_DELEGATECALL correct 50001 DELEGATECALL
...fork_Cancun-blockchain_test-proof_correct-extra_gas-call_type_CALLCODE correct 50001 CALLCODE
...fork_Cancun-blockchain_test-proof_correct-extra_gas-call_type_STATICCALL correct 50001 STATICCALL
...fork_Cancun-blockchain_test-proof_incorrect-exact_gas-call_type_CALL incorrect 50000 CALL
...fork_Cancun-blockchain_test-proof_incorrect-exact_gas-call_type_DELEGATECALL incorrect 50000 DELEGATECALL
...fork_Cancun-blockchain_test-proof_incorrect-exact_gas-call_type_CALLCODE incorrect 50000 CALLCODE
...fork_Cancun-blockchain_test-proof_incorrect-exact_gas-call_type_STATICCALL incorrect 50000 STATICCALL
...fork_Cancun-blockchain_test-proof_incorrect-insufficient_gas-call_type_CALL incorrect 49999 CALL
...fork_Cancun-blockchain_test-proof_incorrect-insufficient_gas-call_type_DELEGATECALL incorrect 49999 DELEGATECALL
...fork_Cancun-blockchain_test-proof_incorrect-insufficient_gas-call_type_CALLCODE incorrect 49999 CALLCODE
...fork_Cancun-blockchain_test-proof_incorrect-insufficient_gas-call_type_STATICCALL incorrect 49999 STATICCALL
...fork_Cancun-blockchain_test-proof_incorrect-extra_gas-call_type_CALL incorrect 50001 CALL
...fork_Cancun-blockchain_test-proof_incorrect-extra_gas-call_type_DELEGATECALL incorrect 50001 DELEGATECALL
...fork_Cancun-blockchain_test-proof_incorrect-extra_gas-call_type_CALLCODE incorrect 50001 CALLCODE
...fork_Cancun-blockchain_test-proof_incorrect-extra_gas-call_type_STATICCALL incorrect 50001 STATICCALL
...fork_Cancun-state_test-proof_correct-exact_gas-call_type_CALL correct 50000 CALL
...fork_Cancun-state_test-proof_correct-exact_gas-call_type_DELEGATECALL correct 50000 DELEGATECALL
...fork_Cancun-state_test-proof_correct-exact_gas-call_type_CALLCODE correct 50000 CALLCODE
...fork_Cancun-state_test-proof_correct-exact_gas-call_type_STATICCALL correct 50000 STATICCALL
...fork_Cancun-state_test-proof_correct-insufficient_gas-call_type_CALL correct 49999 CALL
...fork_Cancun-state_test-proof_correct-insufficient_gas-call_type_DELEGATECALL correct 49999 DELEGATECALL
...fork_Cancun-state_test-proof_correct-insufficient_gas-call_type_CALLCODE correct 49999 CALLCODE
...fork_Cancun-state_test-proof_correct-insufficient_gas-call_type_STATICCALL correct 49999 STATICCALL
...fork_Cancun-state_test-proof_correct-extra_gas-call_type_CALL correct 50001 CALL
...fork_Cancun-state_test-proof_correct-extra_gas-call_type_DELEGATECALL correct 50001 DELEGATECALL
...fork_Cancun-state_test-proof_correct-extra_gas-call_type_CALLCODE correct 50001 CALLCODE
...fork_Cancun-state_test-proof_correct-extra_gas-call_type_STATICCALL correct 50001 STATICCALL
...fork_Cancun-state_test-proof_incorrect-exact_gas-call_type_CALL incorrect 50000 CALL
...fork_Cancun-state_test-proof_incorrect-exact_gas-call_type_DELEGATECALL incorrect 50000 DELEGATECALL
...fork_Cancun-state_test-proof_incorrect-exact_gas-call_type_CALLCODE incorrect 50000 CALLCODE
...fork_Cancun-state_test-proof_incorrect-exact_gas-call_type_STATICCALL incorrect 50000 STATICCALL
...fork_Cancun-state_test-proof_incorrect-insufficient_gas-call_type_CALL incorrect 49999 CALL
...fork_Cancun-state_test-proof_incorrect-insufficient_gas-call_type_DELEGATECALL incorrect 49999 DELEGATECALL
...fork_Cancun-state_test-proof_incorrect-insufficient_gas-call_type_CALLCODE incorrect 49999 CALLCODE
...fork_Cancun-state_test-proof_incorrect-insufficient_gas-call_type_STATICCALL incorrect 49999 STATICCALL
...fork_Cancun-state_test-proof_incorrect-extra_gas-call_type_CALL incorrect 50001 CALL
...fork_Cancun-state_test-proof_incorrect-extra_gas-call_type_DELEGATECALL incorrect 50001 DELEGATECALL
...fork_Cancun-state_test-proof_incorrect-extra_gas-call_type_CALLCODE incorrect 50001 CALLCODE
...fork_Cancun-state_test-proof_incorrect-extra_gas-call_type_STATICCALL incorrect 50001 STATICCALL
...fork_Prague-blockchain_test-proof_correct-exact_gas-call_type_CALL correct 50000 CALL
...fork_Prague-blockchain_test-proof_correct-exact_gas-call_type_DELEGATECALL correct 50000 DELEGATECALL
...fork_Prague-blockchain_test-proof_correct-exact_gas-call_type_CALLCODE correct 50000 CALLCODE
...fork_Prague-blockchain_test-proof_correct-exact_gas-call_type_STATICCALL correct 50000 STATICCALL
...fork_Prague-blockchain_test-proof_correct-insufficient_gas-call_type_CALL correct 49999 CALL
...fork_Prague-blockchain_test-proof_correct-insufficient_gas-call_type_DELEGATECALL correct 49999 DELEGATECALL
...fork_Prague-blockchain_test-proof_correct-insufficient_gas-call_type_CALLCODE correct 49999 CALLCODE
...fork_Prague-blockchain_test-proof_correct-insufficient_gas-call_type_STATICCALL correct 49999 STATICCALL
...fork_Prague-blockchain_test-proof_correct-extra_gas-call_type_CALL correct 50001 CALL
...fork_Prague-blockchain_test-proof_correct-extra_gas-call_type_DELEGATECALL correct 50001 DELEGATECALL
...fork_Prague-blockchain_test-proof_correct-extra_gas-call_type_CALLCODE correct 50001 CALLCODE
...fork_Prague-blockchain_test-proof_correct-extra_gas-call_type_STATICCALL correct 50001 STATICCALL
...fork_Prague-blockchain_test-proof_incorrect-exact_gas-call_type_CALL incorrect 50000 CALL
...fork_Prague-blockchain_test-proof_incorrect-exact_gas-call_type_DELEGATECALL incorrect 50000 DELEGATECALL
...fork_Prague-blockchain_test-proof_incorrect-exact_gas-call_type_CALLCODE incorrect 50000 CALLCODE
...fork_Prague-blockchain_test-proof_incorrect-exact_gas-call_type_STATICCALL incorrect 50000 STATICCALL
...fork_Prague-blockchain_test-proof_incorrect-insufficient_gas-call_type_CALL incorrect 49999 CALL
...fork_Prague-blockchain_test-proof_incorrect-insufficient_gas-call_type_DELEGATECALL incorrect 49999 DELEGATECALL
...fork_Prague-blockchain_test-proof_incorrect-insufficient_gas-call_type_CALLCODE incorrect 49999 CALLCODE
...fork_Prague-blockchain_test-proof_incorrect-insufficient_gas-call_type_STATICCALL incorrect 49999 STATICCALL
...fork_Prague-blockchain_test-proof_incorrect-extra_gas-call_type_CALL incorrect 50001 CALL
...fork_Prague-blockchain_test-proof_incorrect-extra_gas-call_type_DELEGATECALL incorrect 50001 DELEGATECALL
...fork_Prague-blockchain_test-proof_incorrect-extra_gas-call_type_CALLCODE incorrect 50001 CALLCODE
...fork_Prague-blockchain_test-proof_incorrect-extra_gas-call_type_STATICCALL incorrect 50001 STATICCALL
...fork_Prague-state_test-proof_correct-exact_gas-call_type_CALL correct 50000 CALL
...fork_Prague-state_test-proof_correct-exact_gas-call_type_DELEGATECALL correct 50000 DELEGATECALL
...fork_Prague-state_test-proof_correct-exact_gas-call_type_CALLCODE correct 50000 CALLCODE
...fork_Prague-state_test-proof_correct-exact_gas-call_type_STATICCALL correct 50000 STATICCALL
...fork_Prague-state_test-proof_correct-insufficient_gas-call_type_CALL correct 49999 CALL
...fork_Prague-state_test-proof_correct-insufficient_gas-call_type_DELEGATECALL correct 49999 DELEGATECALL
...fork_Prague-state_test-proof_correct-insufficient_gas-call_type_CALLCODE correct 49999 CALLCODE
...fork_Prague-state_test-proof_correct-insufficient_gas-call_type_STATICCALL correct 49999 STATICCALL
...fork_Prague-state_test-proof_correct-extra_gas-call_type_CALL correct 50001 CALL
...fork_Prague-state_test-proof_correct-extra_gas-call_type_DELEGATECALL correct 50001 DELEGATECALL
...fork_Prague-state_test-proof_correct-extra_gas-call_type_CALLCODE correct 50001 CALLCODE
...fork_Prague-state_test-proof_correct-extra_gas-call_type_STATICCALL correct 50001 STATICCALL
...fork_Prague-state_test-proof_incorrect-exact_gas-call_type_CALL incorrect 50000 CALL
...fork_Prague-state_test-proof_incorrect-exact_gas-call_type_DELEGATECALL incorrect 50000 DELEGATECALL
...fork_Prague-state_test-proof_incorrect-exact_gas-call_type_CALLCODE incorrect 50000 CALLCODE
...fork_Prague-state_test-proof_incorrect-exact_gas-call_type_STATICCALL incorrect 50000 STATICCALL
...fork_Prague-state_test-proof_incorrect-insufficient_gas-call_type_CALL incorrect 49999 CALL
...fork_Prague-state_test-proof_incorrect-insufficient_gas-call_type_DELEGATECALL incorrect 49999 DELEGATECALL
...fork_Prague-state_test-proof_incorrect-insufficient_gas-call_type_CALLCODE incorrect 49999 CALLCODE
...fork_Prague-state_test-proof_incorrect-insufficient_gas-call_type_STATICCALL incorrect 49999 STATICCALL
...fork_Prague-state_test-proof_incorrect-extra_gas-call_type_CALL incorrect 50001 CALL
...fork_Prague-state_test-proof_incorrect-extra_gas-call_type_DELEGATECALL incorrect 50001 DELEGATECALL
...fork_Prague-state_test-proof_incorrect-extra_gas-call_type_CALLCODE incorrect 50001 CALLCODE
...fork_Prague-state_test-proof_incorrect-extra_gas-call_type_STATICCALL incorrect 50001 STATICCALL
...fork_Osaka-blockchain_test-proof_correct-exact_gas-call_type_CALL correct 50000 CALL
...fork_Osaka-blockchain_test-proof_correct-exact_gas-call_type_DELEGATECALL correct 50000 DELEGATECALL
...fork_Osaka-blockchain_test-proof_correct-exact_gas-call_type_CALLCODE correct 50000 CALLCODE
...fork_Osaka-blockchain_test-proof_correct-exact_gas-call_type_STATICCALL correct 50000 STATICCALL
...fork_Osaka-blockchain_test-proof_correct-insufficient_gas-call_type_CALL correct 49999 CALL
...fork_Osaka-blockchain_test-proof_correct-insufficient_gas-call_type_DELEGATECALL correct 49999 DELEGATECALL
...fork_Osaka-blockchain_test-proof_correct-insufficient_gas-call_type_CALLCODE correct 49999 CALLCODE
...fork_Osaka-blockchain_test-proof_correct-insufficient_gas-call_type_STATICCALL correct 49999 STATICCALL
...fork_Osaka-blockchain_test-proof_correct-extra_gas-call_type_CALL correct 50001 CALL
...fork_Osaka-blockchain_test-proof_correct-extra_gas-call_type_DELEGATECALL correct 50001 DELEGATECALL
...fork_Osaka-blockchain_test-proof_correct-extra_gas-call_type_CALLCODE correct 50001 CALLCODE
...fork_Osaka-blockchain_test-proof_correct-extra_gas-call_type_STATICCALL correct 50001 STATICCALL
...fork_Osaka-blockchain_test-proof_incorrect-exact_gas-call_type_CALL incorrect 50000 CALL
...fork_Osaka-blockchain_test-proof_incorrect-exact_gas-call_type_DELEGATECALL incorrect 50000 DELEGATECALL
...fork_Osaka-blockchain_test-proof_incorrect-exact_gas-call_type_CALLCODE incorrect 50000 CALLCODE
...fork_Osaka-blockchain_test-proof_incorrect-exact_gas-call_type_STATICCALL incorrect 50000 STATICCALL
...fork_Osaka-blockchain_test-proof_incorrect-insufficient_gas-call_type_CALL incorrect 49999 CALL
...fork_Osaka-blockchain_test-proof_incorrect-insufficient_gas-call_type_DELEGATECALL incorrect 49999 DELEGATECALL
...fork_Osaka-blockchain_test-proof_incorrect-insufficient_gas-call_type_CALLCODE incorrect 49999 CALLCODE
...fork_Osaka-blockchain_test-proof_incorrect-insufficient_gas-call_type_STATICCALL incorrect 49999 STATICCALL
...fork_Osaka-blockchain_test-proof_incorrect-extra_gas-call_type_CALL incorrect 50001 CALL
...fork_Osaka-blockchain_test-proof_incorrect-extra_gas-call_type_DELEGATECALL incorrect 50001 DELEGATECALL
...fork_Osaka-blockchain_test-proof_incorrect-extra_gas-call_type_CALLCODE incorrect 50001 CALLCODE
...fork_Osaka-blockchain_test-proof_incorrect-extra_gas-call_type_STATICCALL incorrect 50001 STATICCALL
...fork_Osaka-state_test-proof_correct-exact_gas-call_type_CALL correct 50000 CALL
...fork_Osaka-state_test-proof_correct-exact_gas-call_type_DELEGATECALL correct 50000 DELEGATECALL
...fork_Osaka-state_test-proof_correct-exact_gas-call_type_CALLCODE correct 50000 CALLCODE
...fork_Osaka-state_test-proof_correct-exact_gas-call_type_STATICCALL correct 50000 STATICCALL
...fork_Osaka-state_test-proof_correct-insufficient_gas-call_type_CALL correct 49999 CALL
...fork_Osaka-state_test-proof_correct-insufficient_gas-call_type_DELEGATECALL correct 49999 DELEGATECALL
...fork_Osaka-state_test-proof_correct-insufficient_gas-call_type_CALLCODE correct 49999 CALLCODE
...fork_Osaka-state_test-proof_correct-insufficient_gas-call_type_STATICCALL correct 49999 STATICCALL
...fork_Osaka-state_test-proof_correct-extra_gas-call_type_CALL correct 50001 CALL
...fork_Osaka-state_test-proof_correct-extra_gas-call_type_DELEGATECALL correct 50001 DELEGATECALL
...fork_Osaka-state_test-proof_correct-extra_gas-call_type_CALLCODE correct 50001 CALLCODE
...fork_Osaka-state_test-proof_correct-extra_gas-call_type_STATICCALL correct 50001 STATICCALL
...fork_Osaka-state_test-proof_incorrect-exact_gas-call_type_CALL incorrect 50000 CALL
...fork_Osaka-state_test-proof_incorrect-exact_gas-call_type_DELEGATECALL incorrect 50000 DELEGATECALL
...fork_Osaka-state_test-proof_incorrect-exact_gas-call_type_CALLCODE incorrect 50000 CALLCODE
...fork_Osaka-state_test-proof_incorrect-exact_gas-call_type_STATICCALL incorrect 50000 STATICCALL
...fork_Osaka-state_test-proof_incorrect-insufficient_gas-call_type_CALL incorrect 49999 CALL
...fork_Osaka-state_test-proof_incorrect-insufficient_gas-call_type_DELEGATECALL incorrect 49999 DELEGATECALL
...fork_Osaka-state_test-proof_incorrect-insufficient_gas-call_type_CALLCODE incorrect 49999 CALLCODE
...fork_Osaka-state_test-proof_incorrect-insufficient_gas-call_type_STATICCALL incorrect 49999 STATICCALL
...fork_Osaka-state_test-proof_incorrect-extra_gas-call_type_CALL incorrect 50001 CALL
...fork_Osaka-state_test-proof_incorrect-extra_gas-call_type_DELEGATECALL incorrect 50001 DELEGATECALL
...fork_Osaka-state_test-proof_incorrect-extra_gas-call_type_CALLCODE incorrect 50001 CALLCODE
...fork_Osaka-state_test-proof_incorrect-extra_gas-call_type_STATICCALL incorrect 50001 STATICCALL