This is a placeholder ticker, Im not entirely sure we want to implement this since we have to support new RPC methods. It shouldn't be too much work though.
These are Hive the tests for a post-merge network.
Bad Hash on NewPayload (Syncing=false, Sidechain=false) (Paris)
Bad Hash on NewPayload (Syncing=false, Sidechain=true) (Paris)
Bad Hash on NewPayload (Syncing=true, Sidechain=false) (Paris)
Bad Hash on NewPayload (Syncing=true, Sidechain=true) (Paris)
ParentHash equals BlockHash on NewPayload, Syncing=False (Paris)
ParentHash equals BlockHash on NewPayload, Syncing=True (Paris)
RPC: Latest Block on NewPayload (Paris)
RPC: Latest Block on HeadBlockHash Update (Paris)
RPC: Safe Block on SafeBlockHash Update (Paris)
RPC: Finalized Block on FinalizedBlockHash Update (Paris)
Inconsistent Head in ForkchoiceState (Paris)
Unknown HeadBlockHash (Paris)
Inconsistent Safe in ForkchoiceState (Paris)
Unknown SafeBlockHash (Paris)
Inconsistent Finalized in ForkchoiceState (Paris)
Unknown FinalizedBlockHash (Paris)
Invalid PayloadAttributes, Zero timestamp, Syncing=False (Paris)
Invalid PayloadAttributes, Zero timestamp, Syncing=True (Paris)
Invalid PayloadAttributes, Parent timestamp, Syncing=False (Paris)
Invalid PayloadAttributes, Parent timestamp, Syncing=True (Paris)
Unique Payload ID, Increase Timestamp (Paris)
Unique Payload ID, Modify Random (Paris)
Unique Payload ID, Modify SuggestedFeeRecipient (Paris)
Re-Execute Payload (Paris)
In-Order Consecutive Payload Execution (Paris)
Multiple New Payloads Extending Canonical Chain, Set Head to First Payload Received (Paris)
Multiple New Payloads Extending Canonical Chain, Wait for Canonical Payload (Paris)
Valid NewPayload->ForkchoiceUpdated on Syncing Client (Paris)
NewPayload with Missing ForkchoiceUpdated (Paris)
Invalid NewPayload, ParentHash, Syncing=False, EmptyTxs=False, DynFeeTxs=False (Paris)
Invalid NewPayload, ParentHash, Syncing=True, EmptyTxs=False, DynFeeTxs=False (Paris)
Invalid NewPayload, StateRoot, Syncing=False, EmptyTxs=True, DynFeeTxs=False (Paris)
Invalid NewPayload, StateRoot, Syncing=False, EmptyTxs=False, DynFeeTxs=False (Paris)
Invalid NewPayload, StateRoot, Syncing=True, EmptyTxs=True, DynFeeTxs=False (Paris)
Invalid NewPayload, StateRoot, Syncing=True, EmptyTxs=False, DynFeeTxs=False (Paris)
Invalid NewPayload, ReceiptsRoot, Syncing=False, EmptyTxs=False, DynFeeTxs=False (Paris)
Invalid NewPayload, ReceiptsRoot, Syncing=True, EmptyTxs=False, DynFeeTxs=False (Paris)
Invalid NewPayload, Number, Syncing=False, EmptyTxs=False, DynFeeTxs=False (Paris)
Invalid NewPayload, Number, Syncing=True, EmptyTxs=False, DynFeeTxs=False (Paris)
Invalid NewPayload, GasLimit, Syncing=False, EmptyTxs=False, DynFeeTxs=False (Paris)
Invalid NewPayload, GasLimit, Syncing=True, EmptyTxs=False, DynFeeTxs=False (Paris)
Invalid NewPayload, GasUsed, Syncing=False, EmptyTxs=False, DynFeeTxs=False (Paris)
Invalid NewPayload, GasUsed, Syncing=True, EmptyTxs=False, DynFeeTxs=False (Paris)
Invalid NewPayload, Timestamp, Syncing=False, EmptyTxs=False, DynFeeTxs=False (Paris)
Invalid NewPayload, Timestamp, Syncing=True, EmptyTxs=False, DynFeeTxs=False (Paris)
Invalid NewPayload, PrevRandao, Syncing=False, EmptyTxs=False, DynFeeTxs=False (Paris)
Invalid NewPayload, PrevRandao, Syncing=True, EmptyTxs=False, DynFeeTxs=False (Paris)
Invalid NewPayload, Incomplete Transactions, Syncing=False, EmptyTxs=False, DynFeeTxs=False (Paris)
Invalid NewPayload, Incomplete Transactions, Syncing=True, EmptyTxs=False, DynFeeTxs=False (Paris)
Payload Build after New Invalid Payload: Invalid StateRoot (Paris)
Invalid NewPayload, Transaction Signature, Syncing=False, EmptyTxs=False, DynFeeTxs=False (Paris)
Invalid NewPayload, Transaction Signature, Syncing=False, EmptyTxs=False, DynFeeTxs=True (Paris)
Invalid NewPayload, Transaction Signature, Syncing=True, EmptyTxs=False, DynFeeTxs=False (Paris)
Invalid NewPayload, Transaction Signature, Syncing=True, EmptyTxs=False, DynFeeTxs=True (Paris)
Invalid NewPayload, Transaction Nonce, Syncing=False, EmptyTxs=False, DynFeeTxs=False (Paris)
Invalid NewPayload, Transaction Nonce, Syncing=False, EmptyTxs=False, DynFeeTxs=True (Paris)
Invalid NewPayload, Transaction Nonce, Syncing=True, EmptyTxs=False, DynFeeTxs=False (Paris)
Invalid NewPayload, Transaction Nonce, Syncing=True, EmptyTxs=False, DynFeeTxs=True (Paris)
Invalid NewPayload, Transaction GasPrice, Syncing=False, EmptyTxs=False, DynFeeTxs=False (Paris)
Invalid NewPayload, Transaction GasPrice, Syncing=False, EmptyTxs=False, DynFeeTxs=True (Paris)
Invalid NewPayload, Transaction GasPrice, Syncing=True, EmptyTxs=False, DynFeeTxs=False (Paris)
Invalid NewPayload, Transaction GasPrice, Syncing=True, EmptyTxs=False, DynFeeTxs=True (Paris)
Invalid NewPayload, Transaction GasTipCapPrice, Syncing=False, EmptyTxs=False, DynFeeTxs=True (Paris)
Invalid NewPayload, Transaction GasTipCapPrice, Syncing=True, EmptyTxs=False, DynFeeTxs=True (Paris)
Invalid NewPayload, Transaction Gas, Syncing=False, EmptyTxs=False, DynFeeTxs=False (Paris)
Invalid NewPayload, Transaction Gas, Syncing=False, EmptyTxs=False, DynFeeTxs=True (Paris)
Invalid NewPayload, Transaction Gas, Syncing=True, EmptyTxs=False, DynFeeTxs=False (Paris)
Invalid NewPayload, Transaction Gas, Syncing=True, EmptyTxs=False, DynFeeTxs=True (Paris)
Invalid NewPayload, Transaction Value, Syncing=False, EmptyTxs=False, DynFeeTxs=False (Paris)
Invalid NewPayload, Transaction Value, Syncing=False, EmptyTxs=False, DynFeeTxs=True (Paris)
Invalid NewPayload, Transaction Value, Syncing=True, EmptyTxs=False, DynFeeTxs=False (Paris)
Invalid NewPayload, Transaction Value, Syncing=True, EmptyTxs=False, DynFeeTxs=True (Paris)
Invalid NewPayload, Transaction ChainID, Syncing=False, EmptyTxs=False, DynFeeTxs=False (Paris)
Invalid NewPayload, Transaction ChainID, Syncing=False, EmptyTxs=False, DynFeeTxs=True (Paris)
Invalid NewPayload, Transaction ChainID, Syncing=True, EmptyTxs=False, DynFeeTxs=False (Paris)
Invalid NewPayload, Transaction ChainID, Syncing=True, EmptyTxs=False, DynFeeTxs=True (Paris)
Build Payload with Invalid ChainID Transaction, LegacyTransactions (Paris)
Build Payload with Invalid ChainID Transaction, DynamicFeeTransactions (Paris)
Invalid Missing Ancestor ReOrg, StateRoot, EmptyTxs=False, Invalid P1 (Paris)
Invalid Missing Ancestor ReOrg, StateRoot, EmptyTxs=True, Invalid P1 (Paris)
Invalid Missing Ancestor ReOrg, StateRoot, EmptyTxs=False, Invalid P9 (Paris)
Invalid Missing Ancestor ReOrg, StateRoot, EmptyTxs=True, Invalid P9 (Paris)
Invalid Missing Ancestor ReOrg, StateRoot, EmptyTxs=False, Invalid P10 (Paris)
Invalid Missing Ancestor ReOrg, StateRoot, EmptyTxs=True, Invalid P10 (Paris)
Invalid Missing Ancestor Syncing ReOrg, StateRoot, EmptyTxs=True, CanonicalReOrg=False, Invalid P9 (Paris)
Invalid Missing Ancestor Syncing ReOrg, StateRoot, EmptyTxs=False, CanonicalReOrg=False, Invalid P9 (Paris)
Invalid Missing Ancestor Syncing ReOrg, StateRoot, EmptyTxs=True, CanonicalReOrg=True, Invalid P9 (Paris)
Invalid Missing Ancestor Syncing ReOrg, StateRoot, EmptyTxs=False, CanonicalReOrg=True, Invalid P9 (Paris)
Invalid Missing Ancestor Syncing ReOrg, ReceiptsRoot, EmptyTxs=False, CanonicalReOrg=False, Invalid P8 (Paris)
Invalid Missing Ancestor Syncing ReOrg, ReceiptsRoot, EmptyTxs=False, CanonicalReOrg=True, Invalid P8 (Paris)
Invalid Missing Ancestor Syncing ReOrg, GasLimit, EmptyTxs=False, CanonicalReOrg=False, Invalid P8 (Paris)
Invalid Missing Ancestor Syncing ReOrg, GasLimit, EmptyTxs=False, CanonicalReOrg=True, Invalid P8 (Paris)
Invalid Missing Ancestor Syncing ReOrg, GasUsed, EmptyTxs=False, CanonicalReOrg=False, Invalid P8 (Paris)
Invalid Missing Ancestor Syncing ReOrg, GasUsed, EmptyTxs=False, CanonicalReOrg=True, Invalid P8 (Paris)
Invalid Missing Ancestor Syncing ReOrg, Timestamp, EmptyTxs=False, CanonicalReOrg=False, Invalid P8 (Paris)
Invalid Missing Ancestor Syncing ReOrg, Timestamp, EmptyTxs=False, CanonicalReOrg=True, Invalid P8 (Paris)
Invalid Missing Ancestor Syncing ReOrg, Incomplete Transactions, EmptyTxs=False, CanonicalReOrg=False, Invalid P9 (Paris)
Invalid Missing Ancestor Syncing ReOrg, Incomplete Transactions, EmptyTxs=False, CanonicalReOrg=True, Invalid P9 (Paris)
Invalid Missing Ancestor Syncing ReOrg, Transaction Signature, EmptyTxs=False, CanonicalReOrg=False, Invalid P9 (Paris)
Invalid Missing Ancestor Syncing ReOrg, Transaction Signature, EmptyTxs=False, CanonicalReOrg=True, Invalid P9 (Paris)
Invalid Missing Ancestor Syncing ReOrg, Transaction Nonce, EmptyTxs=False, CanonicalReOrg=False, Invalid P9 (Paris)
Invalid Missing Ancestor Syncing ReOrg, Transaction Nonce, EmptyTxs=False, CanonicalReOrg=True, Invalid P9 (Paris)
Invalid Missing Ancestor Syncing ReOrg, Transaction Gas, EmptyTxs=False, CanonicalReOrg=False, Invalid P9 (Paris)
Invalid Missing Ancestor Syncing ReOrg, Transaction Gas, EmptyTxs=False, CanonicalReOrg=True, Invalid P9 (Paris)
Invalid Missing Ancestor Syncing ReOrg, Transaction GasPrice, EmptyTxs=False, CanonicalReOrg=False, Invalid P9 (Paris)
Invalid Missing Ancestor Syncing ReOrg, Transaction GasPrice, EmptyTxs=False, CanonicalReOrg=True, Invalid P9 (Paris)
Invalid Missing Ancestor Syncing ReOrg, Transaction Value, EmptyTxs=False, CanonicalReOrg=False, Invalid P9 (Paris)
Invalid Missing Ancestor Syncing ReOrg, Transaction Value, EmptyTxs=False, CanonicalReOrg=True, Invalid P9 (Paris)
Sidechain Reorg (Paris)
Re-Org Back to Canonical Chain From Syncing Chain (Paris)
Re-org to Previously Validated Sidechain Payload (Paris)
Safe Re-Org to Side Chain (Paris)
Transaction Re-Org, Re-Org Out (Paris)
Transaction Re-Org, Re-Org to Different Block (Paris)
Transaction Re-Org, New Payload on Revert Back (Paris)
Transaction Re-Org, Re-Org Back In (Paris)
Re-Org Back into Canonical Chain, Depth=5 (Paris)
Re-Org Back into Canonical Chain, Depth=10, Execute Side Payload on Re-Org (Paris)
Suggested Fee Recipient Test, LegacyTransactions (Paris)
Suggested Fee Recipient Test, DynamicFeeTransactions (Paris)
PrevRandao Opcode Transactions Test, LegacyTransactions (Paris)
PrevRandao Opcode Transactions Test, DynamicFeeTransactions (Paris)
Fork ID: Genesis=0, Paris=0 (Paris)
Fork ID: Genesis=0, Paris=0, BlocksBeforePeering=1 (Paris)
Fork ID: Genesis=1, Paris=0 (Paris)
Fork ID: Genesis=1, Paris=0, BlocksBeforePeering=1 (Paris)
Fork ID: Genesis=1, Paris=1 (Paris)
Fork ID: Genesis=1, Paris=1, BlocksBeforePeering=1 (Paris)
This is a placeholder ticker, Im not entirely sure we want to implement this since we have to support new RPC methods. It shouldn't be too much work though.
These are Hive the tests for a post-merge network.
See amount of tests and support by other clients: https://hivetests2.ethdevops.io/#suite=engine-api
Here are the tests: https://github.com/ethereum/hive/tree/master/simulators/ethereum/engine/suites/engine
Doing a
grepon the output of the tests, I see that the following endpoints need to be supported:This is the list of tests: