bor: make withdrawals nil

This commit is contained in:
Anshal Shukla 2023-10-20 15:05:41 +05:30
parent d104b38245
commit 9f4457958d
3 changed files with 15 additions and 11 deletions

View file

@ -816,14 +816,14 @@ func (c *Bor) Finalize(chain consensus.ChainHeaderReader, header *types.Header,
headerNumber := header.Number.Uint64()
if len(withdrawals) > 0 {
if withdrawals != nil {
withdrawals = nil
log.Error("Bor does not support withdrawals", "number", headerNumber)
return
}
if header.WithdrawalsHash != nil {
header.WithdrawalsHash = nil
log.Error("Bor does not support withdrawalHash", "number", headerNumber)
return
}
if IsSprintStart(headerNumber, c.config.CalculateSprint(headerNumber)) {
@ -898,18 +898,18 @@ func (c *Bor) FinalizeAndAssemble(ctx context.Context, chain consensus.ChainHead
finalizeCtx, finalizeSpan := tracing.StartSpan(ctx, "bor.FinalizeAndAssemble")
defer tracing.EndSpan(finalizeSpan)
if len(withdrawals) > 0 {
return nil, errors.New("Bor does not support withdrawals")
headerNumber := header.Number.Uint64()
if withdrawals != nil {
log.Error("Bor does not support withdrawals", "number", headerNumber)
}
if header.WithdrawalsHash != nil {
return nil, errors.New("Bor does not support withdrawalHash")
log.Error("Bor does not support withdrawalHash", "number", headerNumber)
}
stateSyncData := []*types.StateSyncData{}
headerNumber := header.Number.Uint64()
var err error
if IsSprintStart(headerNumber, c.config.CalculateSprint(headerNumber)) {

View file

@ -529,8 +529,8 @@ func (g *Genesis) ToBlock() *types.Block {
var withdrawals []*types.Withdrawal
if g.Config != nil && g.Config.IsShanghai(new(big.Int).SetUint64(g.Number)) {
head.WithdrawalsHash = &types.EmptyWithdrawalsHash
withdrawals = make([]*types.Withdrawal, 0)
head.WithdrawalsHash = nil
withdrawals = nil
}
return types.NewBlock(head, nil, nil, nil, trie.NewStackTrie(nil)).WithWithdrawals(withdrawals)

View file

@ -101,9 +101,13 @@ func (p *StateProcessor) Process(block *types.Block, statedb *state.StateDB, cfg
}
// Fail if Shanghai not enabled and len(withdrawals) is non-zero.
withdrawals := block.Withdrawals()
if len(withdrawals) > 0 && !p.config.IsShanghai(block.Number()) {
if !p.config.IsShanghai(block.Number()) && withdrawals != nil {
return nil, nil, 0, fmt.Errorf("withdrawals before shanghai")
}
// Bor does not support withdrawals
if withdrawals != nil {
withdrawals = nil
}
// Finalize the block, applying any consensus engine specific extras (e.g. block rewards)
p.engine.Finalize(p.bc, header, statedb, block.Transactions(), block.Uncles(), withdrawals)