diff --git a/pkg/eth/backend.go b/pkg/eth/backend.go index ba9d91e1..d45baf4e 100644 --- a/pkg/eth/backend.go +++ b/pkg/eth/backend.go @@ -349,8 +349,21 @@ func (b *Backend) BlockByHash(ctx context.Context, hash common.Hash) (*types.Blo return nil, err } + // Placeholder for withdrawal processing (TODO) + var withdrawals types.Withdrawals + if b.Config.ChainConfig.IsShanghai(header.Number, header.Time) { + // All blocks after Shanghai must include a withdrawals root. + if withdrawals == nil { + withdrawals = make(types.Withdrawals, 0) + } + } else { + if len(withdrawals) > 0 { + return nil, errors.New("withdrawals set before Shanghai activation") + } + } + // Compose everything together into a complete block - return types.NewBlock(header, transactions, uncles, receipts, trie.NewEmpty(nil)), err + return types.NewBlockWithWithdrawals(header, transactions, uncles, receipts, withdrawals, trie.NewEmpty(nil)), err } // GetHeaderByBlockHash retrieves header for a provided block hash