Skip to content

test_precompile_as_coinbase()

Documentation for tests/frontier/precompiles/test_precompiles.py::test_precompile_as_coinbase@ffe48572.

Generate fixtures for these test cases for Bogota with:

fill -v tests/frontier/precompiles/test_precompiles.py::test_precompile_as_coinbase --fork Bogota

Verify that an enabled precompile as block coinbase yields a valid state transition.

Source code in tests/frontier/precompiles/test_precompiles.py
@pytest.mark.valid_from("Frontier")
@pytest.mark.with_all_precompiles
def test_precompile_as_coinbase(
    blockchain_test: BlockchainTestFiller,
    pre: Alloc,
    fork: Fork,
    precompile: int,
) -> None:
    """
    Verify that an enabled precompile as block coinbase yields a valid
    state transition.
    """
    sender = pre.fund_eoa()
    coinbase = Address(precompile)

    blocks = [
        Block(
            fee_recipient=coinbase,
            txs=[
                Transaction(
                    sender=sender,
                    to=sender,
                    protected=fork.supports_protected_txs(),
                ),
            ],
        ),
        Block(
            fee_recipient=coinbase,
            txs=[
                Transaction(
                    sender=sender,
                    to=coinbase,
                    protected=fork.supports_protected_txs(),
                ),
            ],
        ),
    ]
    blockchain_test(pre=pre, post={}, blocks=blocks)

Parametrized Test Cases

This test generates 18 parametrized test cases across 17 forks.