Skip to content

Commit a4ae4cc

Browse files
committed
More cases
1 parent 2468227 commit a4ae4cc

File tree

1 file changed

+47
-7
lines changed

1 file changed

+47
-7
lines changed

docs/checklist_templates/eip_testing_checklist_template.md

Lines changed: 47 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -193,30 +193,70 @@ The EIP introduces one or more new opcodes to the EVM.
193193

194194
### Test Vectors
195195

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:
198198
- [ ] 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.
199199
- [ ] 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
200241
- [ ] Encoding Tests (RLP, SSZ)
201242
- [ ] Verify correct transaction rejection due to incorrect field sizes
202243
- [ ] Verify correct transaction rejection if the fields particular to the new transaction types are missing
203244
- [ ] Verify correct transaction rejection if the transaction type contains extra fields
204245
- [ ] 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`
208246
- [ ] Out-of-bounds checks
209247
- [ ] Verify if the transaction has out-of-bounds conditions in its fields and verify:
210248
- [ ] Max value for each field
211249
- [ ] Max value + 1 for each field
212250
- [ ] 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.
214252
- [ ] Sender account modifications
215253
- [ ] 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
216254
- [ ] 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
217255
- [ ] Fork transition
218256
- [ ] 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`
220260

221261
* Tests must be added to [`execution-apis`](https://github.com/ethereum/execution-apis) repository.
222262

0 commit comments

Comments
 (0)