test_request_overpayment()
Documentation for tests/amsterdam/eip8282_builder_execution_requests/test_request_predeploys.py::test_request_overpayment@ffe48572.
Generate fixtures for these test cases for Bogota with:
fill -v tests/amsterdam/eip8282_builder_execution_requests/test_request_predeploys.py::test_request_overpayment --fork Bogota
A request paying one wei more than required is queued and the surplus
stays in the predeploy.
Source code in tests/amsterdam/eip8282_builder_execution_requests/test_request_predeploys.py
| @EIPChecklist.SystemContract.Test.ValueTransfer.Fee.Over()
def test_request_overpayment(
blockchain_test: BlockchainTestFiller,
pre: Alloc,
request_class: Type[FeeSystemContractRequest],
) -> None:
"""
A request paying one wei more than required is queued and the surplus
stays in the predeploy.
"""
request = request_class.from_index(0).copy(
fee=request_class.get_fee(0) + 1
)
predeploy = request_class.system_contract_address
sender = pre.fund_eoa()
txs = SystemContractInteractionTransaction(
sender_account=sender, requests=[request]
).transactions()
blockchain_test(
pre=pre,
blocks=[
Block(
txs=txs,
header_verify=Header(
requests_hash=Requests(request.with_source_address(sender))
),
expected_block_access_list=BlockAccessListExpectation(
account_expectations={
predeploy: BalAccountExpectation(
balance_changes=[
BalBalanceChange(
block_access_index=1,
post_balance=request.value,
)
],
storage_changes=[
queued_count_changes(request_class, 1, 2)
],
),
}
),
)
],
post={predeploy: Account(balance=request.value)},
)
|
Parametrized Test Cases
This test generates 4 parametrized test cases across 2 forks.