Skip to content

test_selfdestruct_mainnet()

Documentation for tests/amsterdam/eip7708_eth_transfer_logs/test_eip_mainnet.py::test_selfdestruct_mainnet@b314d18e.

Generate fixtures for these test cases for Amsterdam with:

fill -v tests/amsterdam/eip7708_eth_transfer_logs/test_eip_mainnet.py::test_selfdestruct_mainnet --fork Amsterdam

Test that SELFDESTRUCT emits a transfer log on mainnet.

Source code in tests/amsterdam/eip7708_eth_transfer_logs/test_eip_mainnet.py
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
def test_selfdestruct_mainnet(
    state_test: StateTestFiller,
    pre: Alloc,
    fork: Fork,
) -> None:
    """Test that SELFDESTRUCT emits a transfer log on mainnet."""
    sender = pre.fund_eoa()
    beneficiary = pre.nonexistent_account()

    contract_code = Op.SELFDESTRUCT(beneficiary)
    contract = pre.deploy_contract(contract_code, balance=500)

    gas_limit = 100_000
    if fork.is_eip_enabled(8037):
        gas_limit = 500_000

    tx = Transaction(
        ty=0x02,
        sender=sender,
        to=contract,
        value=0,
        gas_limit=gas_limit,
        expected_receipt=TransactionReceipt(
            logs=[transfer_log(contract, beneficiary, 500)]
        ),
    )

    post = {beneficiary: Account(balance=500)}
    state_test(pre=pre, post=post, tx=tx)

Parametrized Test Cases

This test generates 1 parametrized test case across 1 fork.