mirror of
https://gitlab.com/pulsechaincom/erigon-pulse.git
synced 2024-12-22 19:50:36 +00:00
Allow NewPayloadV2 for pre-Shanghai blocks (#6604)
This is a fix for [withdrawal-devnet-3](https://forkmon.withdrawal-devnet-3.ethpandaops.io/). The problem was that CL calls `NewPayloadV2` for pre-Shanghai blocks with `nil` withdrawals, which is OK, but that `nil` was erroneously converted into an empty array, causing block hash mismatch.
This commit is contained in:
parent
a6f75bddf1
commit
7fb5cecce8
@ -663,17 +663,12 @@ func (s *EthBackendServer) engineForkChoiceUpdated(ctx context.Context, reqForkc
|
|||||||
// payload IDs start from 1 (0 signifies null)
|
// payload IDs start from 1 (0 signifies null)
|
||||||
s.payloadId++
|
s.payloadId++
|
||||||
|
|
||||||
var withdrawals []*types.Withdrawal
|
|
||||||
if reqWithdrawals != nil {
|
|
||||||
withdrawals = ConvertWithdrawalsFromRpc(reqWithdrawals)
|
|
||||||
}
|
|
||||||
|
|
||||||
param := core.BlockBuilderParameters{
|
param := core.BlockBuilderParameters{
|
||||||
ParentHash: forkChoice.HeadBlockHash,
|
ParentHash: forkChoice.HeadBlockHash,
|
||||||
Timestamp: payloadAttributes.Timestamp,
|
Timestamp: payloadAttributes.Timestamp,
|
||||||
PrevRandao: gointerfaces.ConvertH256ToHash(payloadAttributes.PrevRandao),
|
PrevRandao: gointerfaces.ConvertH256ToHash(payloadAttributes.PrevRandao),
|
||||||
SuggestedFeeRecipient: gointerfaces.ConvertH160toAddress(payloadAttributes.SuggestedFeeRecipient),
|
SuggestedFeeRecipient: gointerfaces.ConvertH160toAddress(payloadAttributes.SuggestedFeeRecipient),
|
||||||
Withdrawals: withdrawals,
|
Withdrawals: ConvertWithdrawalsFromRpc(reqWithdrawals),
|
||||||
PayloadId: s.payloadId,
|
PayloadId: s.payloadId,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -718,6 +713,9 @@ func (s *EthBackendServer) SubscribeLogs(server remote.ETHBACKEND_SubscribeLogsS
|
|||||||
}
|
}
|
||||||
|
|
||||||
func ConvertWithdrawalsFromRpc(in []*types2.Withdrawal) []*types.Withdrawal {
|
func ConvertWithdrawalsFromRpc(in []*types2.Withdrawal) []*types.Withdrawal {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
out := make([]*types.Withdrawal, 0, len(in))
|
out := make([]*types.Withdrawal, 0, len(in))
|
||||||
for _, w := range in {
|
for _, w := range in {
|
||||||
out = append(out, &types.Withdrawal{
|
out = append(out, &types.Withdrawal{
|
||||||
@ -731,6 +729,9 @@ func ConvertWithdrawalsFromRpc(in []*types2.Withdrawal) []*types.Withdrawal {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func ConvertWithdrawalsToRpc(in []*types.Withdrawal) []*types2.Withdrawal {
|
func ConvertWithdrawalsToRpc(in []*types.Withdrawal) []*types2.Withdrawal {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
out := make([]*types2.Withdrawal, 0, len(in))
|
out := make([]*types2.Withdrawal, 0, len(in))
|
||||||
for _, w := range in {
|
for _, w := range in {
|
||||||
out = append(out, &types2.Withdrawal{
|
out = append(out, &types2.Withdrawal{
|
||||||
|
Loading…
Reference in New Issue
Block a user