|
2 | 2 |
|
3 | 3 | | Function Name | Goal | Setup | Expectation | Status | |
4 | 4 | |---------------|------|-------|-------------|--------| |
5 | | -| **Inclusion List Building** | |
6 | | -| `test_il_builder_creates_valid_list_from_txs` | Ensure the IL builder can build a valid `InclusionList` from the mempool. | Alice and Bob submit valid transactions to the mempool | The builder MUST produce a structurally valid `InclusionList`. The list must be properly encoded. | 🟡 Planned | |
7 | | -| `test_il_builder_respects_size_limit` | Ensure the IL builder does not create a list that exceeds the `MAX_BYTES_PER_INCLUSION_LIST` limit. | Provide the builder with more transactions than can fit within the size limit. | The builder MUST create an `InclusionList` that is less than or equal to the size limit. It MUST NOT produce an oversized list. | 🟡 Planned | |
| 5 | +| **Inclusion list Building** | |
| 6 | +| `test_focil_inclusion_list_builder_respects_size_limit` | Ensure the inclusion list builder does not create a list that exceeds the `MAX_BYTES_PER_INCLUSION_LIST` limit. | Provide the builder with more transactions than can fit within the size limit. | The builder MUST create an `InclusionList` that is less than or equal to the size limit. It MUST NOT produce an oversized list. | 🟡 Planned | |
8 | 7 | | **Block Validation** | |
9 | | -| `test_block_validation_accepts_empty_il` | Verify the EL correctly validates a payload with an empty Inclusion List. | The EL receives a payload with an empty `inclusion_list`. | The payload MUST be considered valid. | 🟡 Planned | |
10 | | -| `test_block_validation_accepts_full_il` | Verify the EL validates a payload correctly including transactions from a maximally sized IL. | The EL receives a payload with an `inclusion_list` filled to the `MAX_BYTES_PER_INCLUSION_LIST` * Inclusion List Committee Size limit. All valid IL txs are included. | The payload MUST be considered valid. | 🟡 Planned | |
11 | | -| `test_block_validation_ignores_invalid_txs_in_il` | Ensure the EL validates a block that correctly omits invalid transactions found in the IL. | The EL receives a payload where the IL contains entries with invalid transactions (bad nonce, etc.). These are correctly *not* included in the block body. | The payload MUST be considered valid. | 🟡 Planned | |
12 | | -| `test_block_validation_fails_if_valid_il_tx_is_omitted` | Verify a block is invalid if it fails to include a valid transaction from the IL. | A payload's IL contains a transaction that is valid against the parent block's state. The block body, however, omits this transaction. | The block MUST be rejected as invalid. | 🟡 Planned | |
13 | | -| `test_block_validation_succeeds_with_interdependent_il_txs` | Verify a block is valid when it includes a sequence of IL txs where later ones depend on earlier ones. | IL is `[tx_A, tx_B]`. `tx_A` funds a new account. `tx_B` is a transaction sent from that new account. Both are included in the correct order. | The block MUST be considered valid. | 🟡 Planned | |
| 8 | +| `test_focil_block_validation_accepts_empty_inclusion_list` | Verify the EL correctly validates a payload with an empty inclusion list. | The EL receives a payload and an empty `inclusionListTransactions`. | The payload MUST be considered valid. | 🟡 Planned | |
| 9 | +| `test_focil_block_validation_accepts_full_inclusion_list` | Verify the EL validates a payload correctly including transactions from a maximally sized inclusion list. | The EL receives a payload and an `inclusionListTransactions` filled to the `MAX_BYTES_PER_INCLUSION_LIST` * inclusion list Committee Size limit. All valid inclusion list txs are included. | The payload MUST include all txs. | 🟡 Planned | |
| 10 | +| `test_focil_block_validation_ignores_invalid_txs_in_inclusion_list` | Ensure the EL validates a block that correctly omits invalid transactions found in the inclusion list. | The EL receives a payload and an inclusion list which contains entries with invalid transactions (intrinsically invalid, bad nonce, sender cannot afford the gas, bad encoding, eip-4844 txs, etc.). | These invalid txs MUST *not* be included in the block body. | 🟡 Planned | |
| 11 | +| `test_focil_block_validation_reorgs_if_valid_inclusion_list_tx_is_omitted` | Verify a block is reorged if it omits a transaction that is valid against the current state and referenced by corresponding inclusion list for that slot. | The inclusion list references a transaction valid against the current state, but the block body omits it. | The block MUST be reorged. | 🟡 Planned | |
| 12 | +| `test_focil_block_validation_succeeds_with_interdependent_inclusion_list_txs` | Verify that when an inclusion list contains txs where later ones depend on earlier ones. | Inclusion list is `[tx_A, tx_B]`. `tx_A` funds a new account. `tx_B` is a transaction sent from that new account. | Both txs MUST be included. | 🟡 Planned | |
14 | 13 | | **Block Building** | |
15 | | -| `test_builder_includes_valid_il_txs` | Ensure the produced block includes all valid transactions from the provided Inclusion List. | The EL is asked to build a block with an IL containing several valid transactions. The mempool also has transactions. | The produced block's transaction list MUST contain all the valid transactions from the IL. | 🟡 Planned || `test_builder_ignores_invalid_il_txs` | Ensure `produce_execution_payload` does not include IL transactions that are invalid against the parent state. | The EL is asked to build a block with an IL containing a mix of valid and invalid (e.g., bad nonce) transactions. | The produced block MUST include the valid IL transactions in the prefix and MUST NOT include the invalid ones. | 🟡 Planned | |
16 | | -| `test_builder_handles_empty_il` | Ensure a correct block is built when the IL is empty. | The EL is asked to build a block with an empty IL. | The builder MUST produce a valid block. | 🟡 Planned | |
17 | | -| `test_builder_handles_il_tx_becoming_invalid` | Ensure builder correctly omits an IL transaction that becomes invalid due to a preceding IL transaction. | The IL is `[tx_A, tx_B]`. Both are from the same EOA with nonce `N`. Both are valid against the parent state. | The builder MUST include `tx_A`. `tx_B` (with nonce `N`) becomes invalid and MUST be omitted from the block. | 🟡 Planned | |
| 14 | +| `test_focil_builder_includes_valid_inclusion_list_txs` | Ensure the produced block includes all valid transactions from the provided inclusion list. | The EL is asked to build a block with an inclusion list containing several valid transactions. | The produced block MUST contain all the valid transactions from the inclusion list. | 🟡 Planned | |
| 15 | +| `test_focil_builder_ignores_invalid_inclusion_list_txs` | Ensure `produce_execution_payload` does not include inclusion list transactions that are invalid against the parent state. | The EL is asked to build a block with an inclusion list containing a mix of valid and invalid (e.g., bad nonce) transactions. | The produced block MUST include the valid inclusion list transactions and MUST NOT include the invalid ones. | 🟡 Planned | |
| 16 | +| `test_focil_builder_handles_empty_inclusion_list` | Ensure a valid block is built when the inclusion list is empty. | The EL is asked to build a block with an empty inclusion list. | The builder MUST produce a valid block. | 🟡 Planned | |
| 17 | +| `test_focil_builder_handles_inclusion_list_tx_becoming_invalid` | Ensure builder correctly omits an inclusion list transaction that becomes invalid due to a preceding inclusion list transaction. | The inclusion list is `[tx_A, tx_B]`. Both are from the same EOA with nonce `N`. Both are valid against the parent state. | The builder MUST include `tx_A`. `tx_B` (with nonce `N`) becomes invalid and MUST be omitted from the block. | 🟡 Planned | |
0 commit comments