diff --git a/eth/backend.go b/eth/backend.go index 2d5993277a..694d4c35db 100644 --- a/eth/backend.go +++ b/eth/backend.go @@ -473,6 +473,14 @@ func (s *Ethereum) StartMining(threads int) error { } clique.Authorize(eb, wallet.SignData) } + if bor, ok := s.engine.(*bor.Bor); ok { + wallet, err := s.accountManager.Find(accounts.Account{Address: eb}) + if wallet == nil || err != nil { + log.Error("Etherbase account unavailable locally", "err", err) + return fmt.Errorf("signer missing: %v", err) + } + bor.Authorize(eb, wallet.SignData) + } // If mining is started, we can disable the transaction rejection mechanism // introduced to speed sync times. atomic.StoreUint32(&s.protocolManager.acceptTxs, 1) diff --git a/params/config.go b/params/config.go index d998c94918..e3924df144 100644 --- a/params/config.go +++ b/params/config.go @@ -371,6 +371,8 @@ func (c *ChainConfig) String() string { engine = c.Ethash case c.Clique != nil: engine = c.Clique + case c.Bor != nil: + engine = c.Bor default: engine = "unknown" } diff --git a/signer/core/signed_data.go b/signer/core/signed_data.go index 19377a521b..9811178cc7 100644 --- a/signer/core/signed_data.go +++ b/signer/core/signed_data.go @@ -58,6 +58,10 @@ var ( accounts.MimetypeClique, 0x02, } + ApplicationBor = SigFormat{ + accounts.MimetypeBor, + 0x10, + } TextPlain = SigFormat{ accounts.MimetypeTextPlain, 0x45,