Skip to content

Commit

Permalink
Merge pull request ethereum#435 from maticnetwork/POS-553
Browse files Browse the repository at this point in the history
Adding correct miner address on API at the RPC level (POS-553)
  • Loading branch information
pratikspatil024 authored Jun 29, 2022
2 parents 88dbfa1 + 473e09c commit 657d262
Showing 1 changed file with 25 additions and 0 deletions.
25 changes: 25 additions & 0 deletions internal/ethapi/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -814,6 +814,20 @@ func (s *PublicBlockChainAPI) GetHeaderByHash(ctx context.Context, hash common.H
return nil
}

// getAuthor: returns the author of the Block
func (s *PublicBlockChainAPI) getAuthor(head *types.Header) *common.Address {
// get author using Author() function from: /consensus/clique/clique.go
// In Production: get author using Author() function from: /consensus/bor/bor.go
author, err := s.b.Engine().Author(head)
// make sure we don't send error to the user, return 0x0 instead
if err != nil {
add := common.HexToAddress("0x0000000000000000000000000000000000000000")
return &add
}
// change the coinbase (0x0) with the miner address
return &author
}

// GetBlockByNumber returns the requested canonical block.
// * When blockNr is -1 the chain head is returned.
// * When blockNr is -2 the pending chain head is returned.
Expand All @@ -822,6 +836,7 @@ func (s *PublicBlockChainAPI) GetHeaderByHash(ctx context.Context, hash common.H
func (s *PublicBlockChainAPI) GetBlockByNumber(ctx context.Context, number rpc.BlockNumber, fullTx bool) (map[string]interface{}, error) {
block, err := s.b.BlockByNumber(ctx, number)
if block != nil && err == nil {

response, err := s.rpcMarshalBlock(ctx, block, true, fullTx)
if err == nil && number == rpc.PendingBlockNumber {
// Pending blocks need to nil out a few fields
Expand All @@ -830,6 +845,12 @@ func (s *PublicBlockChainAPI) GetBlockByNumber(ctx context.Context, number rpc.B
}
}

if err == nil && number != rpc.PendingBlockNumber {
author := s.getAuthor(block.Header())

response["miner"] = author
}

// append marshalled bor transaction
if err == nil && response != nil {
response = s.appendRPCMarshalBorTransaction(ctx, block, response, fullTx)
Expand All @@ -848,6 +869,10 @@ func (s *PublicBlockChainAPI) GetBlockByHash(ctx context.Context, hash common.Ha
response, err := s.rpcMarshalBlock(ctx, block, true, fullTx)
// append marshalled bor transaction
if err == nil && response != nil {
author := s.getAuthor(block.Header())

response["miner"] = author

return s.appendRPCMarshalBorTransaction(ctx, block, response, fullTx), err
}
return response, err
Expand Down

0 comments on commit 657d262

Please sign in to comment.