Skip to content

internal/ethapi/api.go

Type MOD
Upstream Lines 2169
Changed +9 -6

rpcMarshalHeader/Block become ctx-taking methods so the block's totalDifficulty can be fetched via the backend

diff --git a/internal/ethapi/api.go b/internal/ethapi/api.go
index 6fc43a370..b9be3383e 100644
--- a/internal/ethapi/api.go
+++ b/internal/ethapi/api.go
@@ -475,7 +475,7 @@ func decodeStorageKey(s string) (h common.Hash, inputLength int, err error) {
 func (api *BlockChainAPI) GetHeaderByNumber(ctx context.Context, number rpc.BlockNumber) (map[string]interface{}, error) {
    header, err := api.b.HeaderByNumber(ctx, number)
    if header != nil && err == nil {
-       response := RPCMarshalHeader(header)
+       response := api.rpcMarshalHeader(ctx, header)
        if number == rpc.PendingBlockNumber {
            // Pending header need to nil out a few fields
            for _, field := range []string{"hash", "nonce", "miner"} {
@@ -491,7 +491,7 @@ func (api *BlockChainAPI) GetHeaderByNumber(ctx context.Context, number rpc.Bloc
 func (api *BlockChainAPI) GetHeaderByHash(ctx context.Context, hash common.Hash) map[string]interface{} {
    header, _ := api.b.HeaderByHash(ctx, hash)
    if header != nil {
-       return RPCMarshalHeader(header)
+       return api.rpcMarshalHeader(ctx, header)
    }
    return nil
 }
@@ -506,7 +506,10 @@ func (api *BlockChainAPI) GetHeaderByHash(ctx context.Context, hash common.Hash)
 func (api *BlockChainAPI) GetBlockByNumber(ctx context.Context, number rpc.BlockNumber, fullTx bool) (map[string]interface{}, error) {
    block, err := api.b.BlockByNumber(ctx, number)
    if block != nil && err == nil {
-       response := RPCMarshalBlock(block, true, fullTx, api.b.ChainConfig())
+       response, err := api.rpcMarshalBlock(ctx, block, true, fullTx)
+       if err != nil {
+           return nil, err
+       }
        if number == rpc.PendingBlockNumber {
            // Pending blocks need to nil out a few fields
            for _, field := range []string{"hash", "nonce", "miner"} {
@@ -523,7 +526,7 @@ func (api *BlockChainAPI) GetBlockByNumber(ctx context.Context, number rpc.Block
 func (api *BlockChainAPI) GetBlockByHash(ctx context.Context, hash common.Hash, fullTx bool) (map[string]interface{}, error) {
    block, err := api.b.BlockByHash(ctx, hash)
    if block != nil {
-       return RPCMarshalBlock(block, true, fullTx, api.b.ChainConfig()), nil
+       return api.rpcMarshalBlock(ctx, block, true, fullTx)
    }
    return nil, err
 }
@@ -538,7 +541,7 @@ func (api *BlockChainAPI) GetUncleByBlockNumberAndIndex(ctx context.Context, blo
            return nil, nil
        }
        block = types.NewBlockWithHeader(uncles[index])
-       return RPCMarshalBlock(block, false, false, api.b.ChainConfig()), nil
+       return api.rpcMarshalBlock(ctx, block, false, false)
    }
    return nil, err
 }
@@ -553,7 +556,7 @@ func (api *BlockChainAPI) GetUncleByBlockHashAndIndex(ctx context.Context, block
            return nil, nil
        }
        block = types.NewBlockWithHeader(uncles[index])
-       return RPCMarshalBlock(block, false, false, api.b.ChainConfig()), nil
+       return api.rpcMarshalBlock(ctx, block, false, false)
    }
    return nil, err
 }

← Back to RPC & API