Skip to content

Commit 95ff501

Browse files
committed
More changes
1 parent 4076081 commit 95ff501

File tree

1 file changed

+73
-19
lines changed

1 file changed

+73
-19
lines changed

docs/checklist_templates/eip_testing_checklist_template.md

Lines changed: 73 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,10 @@ The EIP introduces one or more new opcodes to the EVM.
6464
- [ ] Top-level call termination
6565
- [ ] Sub-level call termination
6666
- [ ] Initcode termination
67+
- [ ] Out-of-bounds checks
68+
- [ ] Verify if the opcode has out-of-bounds conditions in its parameters and verify:
69+
- [ ] Max value for each parameter
70+
- [ ] Max value + 1 for each parameter
6771
- [ ] Exeptional Abort
6872
- [ ] Verify behavior that is supposed to cause an exeptional abort, other than stack over or underflow, or out-of-gas errors.
6973
- [ ] Data portion
@@ -101,6 +105,10 @@ The EIP introduces one or more new opcodes to the EVM.
101105
- [ ] If precompile performs cryptographic operations, verify behavior on all inputs that have special cryptographic properties.
102106
- [ ] Verify all zeros input.
103107
- [ ] Verify 2^N-1 where N is a single or multiple valid bit-lengths.
108+
- [ ] Out-of-bounds checks
109+
- [ ] Verify if the precompile has out-of-bounds conditions in its inputs and verify:
110+
- [ ] Max value for each input
111+
- [ ] Max value + 1 for each input
104112
- [ ] Input Lengths
105113
- [ ] Zero-length calldata.
106114
- [ ] Precompile has static-length input
@@ -147,6 +155,10 @@ The EIP introduces one or more new opcodes to the EVM.
147155
- [ ] Verify interesting edge values given the system contract functionality.
148156
- [ ] Verify all zeros input.
149157
- [ ] Verify 2^N-1 where N is a single or multiple valid bit-lengths.
158+
- [ ] Out-of-bounds checks
159+
- [ ] Verify if the system contract has out-of-bounds conditions in its inputs and verify:
160+
- [ ] Max value for each input
161+
- [ ] Max value + 1 for each input
150162
- [ ] Input Lengths
151163
- [ ] Zero-length calldata.
152164
- [ ] System contract has static-length input
@@ -175,48 +187,69 @@ The EIP introduces one or more new opcodes to the EVM.
175187
### Framework Changes
176188

177189
- [ ] Add system contract address to relevant methods in the fork where the EIP is introduced in `src/ethereum_test_forks/forks/forks.py`
190+
- [ ] Add system contract bytecode to the returned value of `pre_allocation_blockchain` in the fork where the EIP is introduced in `src/ethereum_test_forks/forks/forks.py`
178191

179-
## New Block Header Field
192+
## New Transaction Type
180193

181194
### Test Vectors
182195

183-
**TBD**
196+
- [ ] Intrinsic Gas Costs
197+
- [ ] Transaction validity: For each new field that affects the intrinsic gas cost of the transaction:
198+
- [ ] Verify the transaction (and the block it is included in) is valid by providing the exact intrinsic gas as `gas_limit` value to the transaction with all multiple combinations of values to the field.
199+
- [ ] Verify the transaction (and the block it is included in) is invalid by providing the exact intrinsic gas minus one as `gas_limit` value to the transaction with all multiple combinations of values to the field.
200+
- [ ] Encoding Tests
201+
- [ ] Verify correct transaction rejection due to incorrect field sizes
202+
- [ ] RPC Tests
203+
- [ ] * Verify `eth_estimateGas` behavior for different valid combinations of the new transaction type
204+
- [ ] Verify `eth_sendRawTransaction` using `execute`
205+
- [ ] Out-of-bounds checks
206+
- [ ] Verify if the transaction has out-of-bounds conditions in its fields and verify:
207+
- [ ] Max value for each field
208+
- [ ] Max value + 1 for each field
209+
- [ ] Contract creation
210+
- [ ] Verify that the transaction can create new contracts, or that it fails to do so if it's not allowed
211+
- [ ] Sender account modifications
212+
- [ ] Verify that the sender account of the new transaction type transaction has its nonce incremented by one after the transaction is included in a block
213+
- [ ] Verify that the sender account of the new transaction type transaction has its balance reduced by the correct amount (gas consumed and value) after the transaction is included in a block
214+
- [ ] Fork transition
215+
- [ ] Verify that a block prior to fork activation where the new transaction type is introduced and containing the new transaction type is invalid.
216+
217+
218+
* Tests must be added to [`execution-apis`](https://github.com/ethereum/execution-apis) repository.
184219

185220
### Framework Changes
186221

187-
**TBD**
222+
- [ ] Modify `transaction_intrinsic_cost_calculator` in the fork where the EIP is introduced in `src/ethereum_test_forks/forks/forks.py`, adding the appropriate new fields that the transaction introduced and the logic to the intrinsic gas cost calculation, if any.
223+
- [ ] Add the transaction type number to `tx_types` response in the fork where the EIP is introduced in `src/ethereum_test_forks/forks/forks.py` (If applicable add also to `contract_creating_tx_types`).
188224

189225

190-
## New Block Body Field
226+
## New Block Header Field
191227

192228
### Test Vectors
193229

194-
**TBD**
230+
- [ ] Genesis value
231+
- [ ] Verify, if possible, that the value can be set at genesis if the network starting fork is the activation fork, and that clients can consume such genesis.
232+
- [ ] Value behavior
233+
- [ ] Verify, given multiple initial values, that the value is correctly modified for the current and subsequent blocks as expected, depending on the circumstances that affect the value as defined in the EIP.
234+
- [ ] Fork transition
235+
- [ ] Verify initial value of the field at the first block of the activation fork.
236+
- [ ] Verify that a block containing the new header field before the activation of the fork is invalid.
237+
- [ ] Verify that a block lacking the new header field at the activation of the fork is invalid.
238+
195239

196240
### Framework Changes
197241

198242
**TBD**
199243

200-
201-
## New Transaction Type
244+
## New Block Body Field
202245

203246
### Test Vectors
204247

205-
- [ ] Intrinsic Gas Costs
206-
- [ ] Transaction validity
207-
- [ ] Verify the transaction (and the block it is included in) is valid by providing the exact intrinsic gas as `gas_limit` value to the transaction.
208-
- [ ] Verify the transaction (and the block it is included in) is invalid by providing the exact intrinsic gas minus one as `gas_limit` value to the transaction.
209-
- [ ] Encoding Tests
210-
- [ ] Verify correct transaction rejection due to incorrect field sizes
211-
- [ ] RPC Tests*
212-
- [ ] Verify `eth_estimateGas` behavior for different valid combinations of the new transaction type.
213-
214-
215-
* Tests must be added to [`execution-apis`](https://github.com/ethereum/execution-apis) repository.
248+
**TBD**
216249

217250
### Framework Changes
218251

219-
- [ ] Modify `transaction_intrinsic_cost_calculator` in the fork where the EIP is introduced in `src/ethereum_test_forks/forks/forks.py`, adding the appropriate new fields that the transaction introduced and the logic to the intrinsic gas cost calculation, if any.
252+
**TBD**
220253

221254
## Gas Cost Changes
222255

@@ -230,3 +263,24 @@ The EIP introduces one or more new opcodes to the EVM.
230263
- [ ] Modify `transaction_data_floor_cost_calculator` in the fork where the EIP is introduced in `src/ethereum_test_forks/forks/forks.py` if the EIP affects calldata floor cost.
231264
- [ ] Modify `memory_expansion_gas_calculator` in the fork where the EIP is introduced in `src/ethereum_test_forks/forks/forks.py` if the EIP affects memory expansion gas cost calculation.
232265
- [ ] Modify `gas_costs` in the fork where the EIP is introduced in `src/ethereum_test_forks/forks/forks.py` if the EIP affects specific opcode gas costs.
266+
267+
## Blob Count Changes
268+
269+
### Test Vectors
270+
271+
- [ ] Verify tests in `tests/cancun/eip4844_blobs` were correctly and automatically updated to take into account the new blob count values at the new fork activation block.
272+
273+
### Framework Changes
274+
275+
- [ ] Modify `blob_base_fee_update_fraction`, `target_blobs_per_block`, `max_blobs_per_block` in the fork where the EIP is introduced in `src/ethereum_test_forks/forks/forks.py` if the EIP affects any of the values returned by each function.
276+
277+
## New Execution Layer Request
278+
279+
### Test Vectors
280+
281+
- [ ] Cross-Request-Type Interaction
282+
- [ ] Update `tests/prague/eip7685_general_purpose_el_requests` tests to include the new request type in the tests combinations
283+
284+
### Framework Changes
285+
286+
- [ ] Increment `max_request_type` in the fork where the EIP is introduced in `src/ethereum_test_forks/forks/forks.py` to the new maximum request type number after the EIP is activated.

0 commit comments

Comments
 (0)