You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/checklist_templates/eip_testing_checklist_template.md
+73-19Lines changed: 73 additions & 19 deletions
Original file line number
Diff line number
Diff line change
@@ -64,6 +64,10 @@ The EIP introduces one or more new opcodes to the EVM.
64
64
- [] Top-level call termination
65
65
- [] Sub-level call termination
66
66
- [] 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
67
71
-[ ] Exeptional Abort
68
72
-[ ] Verify behavior that is supposed to cause an exeptional abort, other than stack over or underflow, or out-of-gas errors.
69
73
-[ ] Data portion
@@ -101,6 +105,10 @@ The EIP introduces one or more new opcodes to the EVM.
101
105
- [] If precompile performs cryptographic operations, verify behavior on all inputs that have special cryptographic properties.
102
106
-[ ] Verify all zeros input.
103
107
-[ ] 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
104
112
-[ ] Input Lengths
105
113
-[ ] Zero-length calldata.
106
114
-[ ] Precompile has static-length input
@@ -147,6 +155,10 @@ The EIP introduces one or more new opcodes to the EVM.
147
155
- [] Verify interesting edge values given the system contract functionality.
148
156
-[ ] Verify all zeros input.
149
157
-[ ] 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
150
162
-[ ] Input Lengths
151
163
-[ ] Zero-length calldata.
152
164
-[ ] System contract has static-length input
@@ -175,48 +187,69 @@ The EIP introduces one or more new opcodes to the EVM.
175
187
### Framework Changes
176
188
177
189
-[ ] 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`
178
191
179
-
## New Block Header Field
192
+
## New Transaction Type
180
193
181
194
### Test Vectors
182
195
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.
184
219
185
220
### Framework Changes
186
221
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`).
188
224
189
225
190
-
## New Block Body Field
226
+
## New Block Header Field
191
227
192
228
### Test Vectors
193
229
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
+
195
239
196
240
### Framework Changes
197
241
198
242
**TBD**
199
243
200
-
201
-
## New Transaction Type
244
+
## New Block Body Field
202
245
203
246
### Test Vectors
204
247
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**
216
249
217
250
### Framework Changes
218
251
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**
220
253
221
254
## Gas Cost Changes
222
255
@@ -230,3 +263,24 @@ The EIP introduces one or more new opcodes to the EVM.
230
263
-[ ] 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.
231
264
-[ ] 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.
232
265
-[ ] 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