|
|
|
@ -32,7 +32,6 @@ import ( |
|
|
|
|
"github.com/ethereum/go-ethereum/common" |
|
|
|
|
"github.com/ethereum/go-ethereum/common/hexutil" |
|
|
|
|
"github.com/ethereum/go-ethereum/common/math" |
|
|
|
|
"github.com/ethereum/go-ethereum/consensus" |
|
|
|
|
"github.com/ethereum/go-ethereum/consensus/clique" |
|
|
|
|
"github.com/ethereum/go-ethereum/consensus/ethash" |
|
|
|
|
"github.com/ethereum/go-ethereum/consensus/misc" |
|
|
|
@ -1176,8 +1175,7 @@ func FormatLogs(logs []vm.StructLog) []StructLogRes { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// RPCMarshalHeader converts the given header to the RPC output .
|
|
|
|
|
func RPCMarshalHeader(head *types.Header, engine consensus.Engine) map[string]interface{} { |
|
|
|
|
miner, _ := engine.Author(head) |
|
|
|
|
func RPCMarshalHeader(head *types.Header) map[string]interface{} { |
|
|
|
|
result := map[string]interface{}{ |
|
|
|
|
"number": (*hexutil.Big)(head.Number), |
|
|
|
|
"hash": head.Hash(), |
|
|
|
@ -1187,7 +1185,7 @@ func RPCMarshalHeader(head *types.Header, engine consensus.Engine) map[string]in |
|
|
|
|
"sha3Uncles": head.UncleHash, |
|
|
|
|
"logsBloom": head.Bloom, |
|
|
|
|
"stateRoot": head.Root, |
|
|
|
|
"miner": miner, |
|
|
|
|
"miner": head.Coinbase, |
|
|
|
|
"difficulty": (*hexutil.Big)(head.Difficulty), |
|
|
|
|
"extraData": hexutil.Bytes(head.Extra), |
|
|
|
|
"size": hexutil.Uint64(head.Size()), |
|
|
|
@ -1208,8 +1206,8 @@ func RPCMarshalHeader(head *types.Header, engine consensus.Engine) map[string]in |
|
|
|
|
// RPCMarshalBlock converts the given block to the RPC output which depends on fullTx. If inclTx is true transactions are
|
|
|
|
|
// returned. When fullTx is true the returned block contains full transaction details, otherwise it will only contain
|
|
|
|
|
// transaction hashes.
|
|
|
|
|
func RPCMarshalBlock(block *types.Block, inclTx bool, fullTx bool, engine consensus.Engine) (map[string]interface{}, error) { |
|
|
|
|
fields := RPCMarshalHeader(block.Header(), engine) |
|
|
|
|
func RPCMarshalBlock(block *types.Block, inclTx bool, fullTx bool) (map[string]interface{}, error) { |
|
|
|
|
fields := RPCMarshalHeader(block.Header()) |
|
|
|
|
fields["size"] = hexutil.Uint64(block.Size()) |
|
|
|
|
|
|
|
|
|
if inclTx { |
|
|
|
@ -1244,7 +1242,7 @@ func RPCMarshalBlock(block *types.Block, inclTx bool, fullTx bool, engine consen |
|
|
|
|
// rpcMarshalHeader uses the generalized output filler, then adds the total difficulty field, which requires
|
|
|
|
|
// a `PublicBlockchainAPI`.
|
|
|
|
|
func (s *PublicBlockChainAPI) rpcMarshalHeader(ctx context.Context, header *types.Header) map[string]interface{} { |
|
|
|
|
fields := RPCMarshalHeader(header, s.b.Engine()) |
|
|
|
|
fields := RPCMarshalHeader(header) |
|
|
|
|
fields["totalDifficulty"] = (*hexutil.Big)(s.b.GetTd(ctx, header.Hash())) |
|
|
|
|
return fields |
|
|
|
|
} |
|
|
|
@ -1252,7 +1250,7 @@ func (s *PublicBlockChainAPI) rpcMarshalHeader(ctx context.Context, header *type |
|
|
|
|
// rpcMarshalBlock uses the generalized output filler, then adds the total difficulty field, which requires
|
|
|
|
|
// a `PublicBlockchainAPI`.
|
|
|
|
|
func (s *PublicBlockChainAPI) rpcMarshalBlock(ctx context.Context, b *types.Block, inclTx bool, fullTx bool) (map[string]interface{}, error) { |
|
|
|
|
fields, err := RPCMarshalBlock(b, inclTx, fullTx, s.b.Engine()) |
|
|
|
|
fields, err := RPCMarshalBlock(b, inclTx, fullTx) |
|
|
|
|
if err != nil { |
|
|
|
|
return nil, err |
|
|
|
|
} |
|
|
|
|