internal/ethapi/api.go¶
| Type | MOD |
| Upstream Lines | 2195 |
| 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 2eb4dee3c..a2c3c3f77 100644
--- a/internal/ethapi/api.go
+++ b/internal/ethapi/api.go
@@ -494,7 +494,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"} {
@@ -510,7 +510,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
}
@@ -525,7 +525,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"} {
@@ -542,7 +545,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
}
@@ -557,7 +560,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
}
@@ -572,7 +575,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
}