mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-06-19 21:31:37 +00:00
eth/catalyst: allow getPayloadV2 for pre-shanghai payloads
This commit is contained in:
parent
d318e8eba9
commit
53bf8d11e7
2 changed files with 36 additions and 1 deletions
|
|
@ -435,7 +435,7 @@ func (api *ConsensusAPI) GetPayloadV2(payloadID engine.PayloadID) (*engine.Execu
|
|||
payloadID,
|
||||
false,
|
||||
[]engine.PayloadVersion{engine.PayloadV1, engine.PayloadV2},
|
||||
[]forks.Fork{forks.Shanghai},
|
||||
[]forks.Fork{forks.Paris, forks.Shanghai},
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1108,6 +1108,41 @@ func TestWithdrawals(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestGetPayloadV2AllowsPreShanghaiPayload(t *testing.T) {
|
||||
genesis, blocks := generateMergeChain(10, true)
|
||||
// Set shanghai time to be after the next payload timestamp.
|
||||
time := blocks[len(blocks)-1].Time() + 10
|
||||
genesis.Config.ShanghaiTime = &time
|
||||
|
||||
n, ethservice := startEthService(t, genesis, blocks)
|
||||
defer n.Close()
|
||||
|
||||
api := newConsensusAPIWithoutHeartbeat(ethservice)
|
||||
parent := ethservice.BlockChain().CurrentHeader()
|
||||
blockParams := engine.PayloadAttributes{
|
||||
Timestamp: parent.Time + 5,
|
||||
}
|
||||
fcState := engine.ForkchoiceStateV1{
|
||||
HeadBlockHash: parent.Hash(),
|
||||
}
|
||||
resp, err := api.ForkchoiceUpdatedV2(fcState, &blockParams)
|
||||
if err != nil {
|
||||
t.Fatalf("error preparing payload, err=%v", err)
|
||||
}
|
||||
if resp.PayloadStatus.Status != engine.VALID {
|
||||
t.Fatalf("unexpected status (got: %s, want: %s)", resp.PayloadStatus.Status, engine.VALID)
|
||||
}
|
||||
if resp.PayloadID == nil {
|
||||
t.Fatal("missing payload id")
|
||||
}
|
||||
if got, want := resp.PayloadID.Version(), engine.PayloadV2; got != want {
|
||||
t.Fatalf("unexpected payload id version (got: %d, want: %d)", got, want)
|
||||
}
|
||||
if _, err := api.GetPayloadV2(*resp.PayloadID); err != nil {
|
||||
t.Fatalf("GetPayloadV2 rejected pre-shanghai payload: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestNilWithdrawals(t *testing.T) {
|
||||
genesis, blocks := generateMergeChain(10, true)
|
||||
// Set shanghai time to last block + 4 seconds (first post-merge block)
|
||||
|
|
|
|||
Loading…
Reference in a new issue