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
+47-7Lines changed: 47 additions & 7 deletions
Original file line number
Diff line number
Diff line change
@@ -193,30 +193,70 @@ The EIP introduces one or more new opcodes to the EVM.
193
193
194
194
### Test Vectors
195
195
196
-
-[ ] Intrinsic Gas Costs
197
-
-[ ]Transaction validity: For each new field that affects the intrinsic gas cost of the transaction:
196
+
-[ ] Intrinsic Validity
197
+
-[ ]Gas Limit: For each new field that affects the intrinsic gas cost of the transaction:
198
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
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
+
-[ ] Max fee per gas:
201
+
-[ ] Verify the transaction (and the block it is included in) is invalid if its max-priority-fee-per-gas value is lower than the max-fee-per-gas.
202
+
-[ ] Verify the transaction (and the block it is included in) is invalid if its max-fee-per-gas value is lower than the blocks base-fee-per-gas.
203
+
-[ ] Chain ID:
204
+
-[ ] Verify the transaction (and the block it is included in) is invalid if its chain-id value does not match the network configuration.
205
+
-[ ] Nonce:
206
+
-[ ] Verify the transaction (and the block it is included in) is invalid if its nonce value does not match the account's current nonce.
207
+
-[ ] To:
208
+
-[ ] Verify the transaction (and the block it is included in) is invalid if the transaction type does not allow contract creation and the to-address field is empty.
209
+
-[ ] Value:
210
+
-[ ] Verify the transaction (and the block it is included in) is invalid if the transaction contains a value of 1 and the account does not contain enough funds to cover the intrinsic transaction cost plus 1.
211
+
-[ ] Data:
212
+
-[ ] Verify the transaction (and the block it is included in) is invalid if the transaction contains enough data so the data floor cost is higher than the intrinsic gas cost and the gas_limit is equal to the intrinsic gas gost.
213
+
-[ ] Signature:
214
+
-[ ] Verify the transaction is correctly rejected if it contains an invalid signature:
215
+
- [] V, R, S represent a value that is inside of the field but outside of the curve.
216
+
- [] V (yParity) is any of the following invalid values:
217
+
- []`2`
218
+
- []`27` (Type-0 transaction valid value)
219
+
- []`28` (Type-0 transaction valid value)
220
+
- []`35` (Type-0 replay-protected transaction valid value for chain id 1)
221
+
- []`36` (Type-0 replay-protected transaction valid value for chain id 1)
222
+
- []`2**8-1`
223
+
- [] R is any of the following invalid values:
224
+
- []`0`
225
+
- []`SECP256K1N-1`
226
+
- []`SECP256K1N`
227
+
- []`SECP256K1N+1`
228
+
- []`2**256-1`
229
+
- []`2**256`
230
+
- [] S is any of the following invalid values:
231
+
- []`0`
232
+
- []`SECP256K1N//2-1`
233
+
- []`SECP256K1N//2`
234
+
- []`SECP256K1N//2+1`
235
+
- []`SECP256K1N-1`
236
+
- []`SECP256K1N`
237
+
- []`SECP256K1N+1`
238
+
- []`2**256-1`
239
+
- []`2**256`
240
+
- []`SECP256K1N - S` of a valid signature
200
241
-[ ] Encoding Tests (RLP, SSZ)
201
242
-[ ] Verify correct transaction rejection due to incorrect field sizes
202
243
-[ ] Verify correct transaction rejection if the fields particular to the new transaction types are missing
203
244
-[ ] Verify correct transaction rejection if the transaction type contains extra fields
204
245
-[ ] If the transaction contains fields with new serializable types, perform all previous tests on the new type/field
205
-
-[ ] RPC Tests
206
-
-[ ]* Verify `eth_estimateGas` behavior for different valid combinations of the new transaction type
207
-
-[ ] Verify `eth_sendRawTransaction` using `execute`
208
246
-[ ] Out-of-bounds checks
209
247
-[ ] Verify if the transaction has out-of-bounds conditions in its fields and verify:
210
248
- [] Max value for each field
211
249
- [] Max value + 1 for each field
212
250
-[ ] Contract creation
213
-
-[ ] Verify that the transaction can create new contracts, or that it fails to do so if it's not allowed
251
+
-[ ] Verify that the transaction can create new contracts if the transaction type supports it.
214
252
-[ ] Sender account modifications
215
253
-[ ] 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
216
254
-[ ] 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
217
255
-[ ] Fork transition
218
256
-[ ] Verify that a block prior to fork activation where the new transaction type is introduced and containing the new transaction type is invalid.
219
-
257
+
-[ ] RPC Tests
258
+
-[ ]* Verify `eth_estimateGas` behavior for different valid combinations of the new transaction type
259
+
-[ ] Verify `eth_sendRawTransaction` using `execute`
220
260
221
261
* Tests must be added to [`execution-apis`](https://github.com/ethereum/execution-apis) repository.
0 commit comments