Skip to content

test_selfdestruct_mainnet()

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

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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
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.