aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ethstats/ethstats.go22
1 files changed, 10 insertions, 12 deletions
diff --git a/ethstats/ethstats.go b/ethstats/ethstats.go
index 007347590..ad77cd1e8 100644
--- a/ethstats/ethstats.go
+++ b/ethstats/ethstats.go
@@ -427,21 +427,15 @@ type blockStats struct {
GasLimit *big.Int `json:"gasLimit"`
Diff string `json:"difficulty"`
TotalDiff string `json:"totalDifficulty"`
- Txs txStats `json:"transactions"`
+ Txs []txStats `json:"transactions"`
TxHash common.Hash `json:"transactionsRoot"`
Root common.Hash `json:"stateRoot"`
Uncles uncleStats `json:"uncles"`
}
-// txStats is a custom wrapper around a transaction array to force serializing
-// empty arrays instead of returning null for them.
-type txStats []*types.Transaction
-
-func (s txStats) MarshalJSON() ([]byte, error) {
- if txs := ([]*types.Transaction)(s); len(txs) > 0 {
- return json.Marshal(txs)
- }
- return []byte("[]"), nil
+// txStats is the information to report about individual transactions.
+type txStats struct {
+ Hash common.Hash `json:"hash"`
}
// uncleStats is a custom wrapper around an uncle array to force serializing
@@ -480,7 +474,7 @@ func (s *Service) assembleBlockStats(block *types.Block) *blockStats {
var (
header *types.Header
td *big.Int
- txs []*types.Transaction
+ txs []txStats
uncles []*types.Header
)
if s.eth != nil {
@@ -491,7 +485,10 @@ func (s *Service) assembleBlockStats(block *types.Block) *blockStats {
header = block.Header()
td = s.eth.BlockChain().GetTd(header.Hash(), header.Number.Uint64())
- txs = block.Transactions()
+ txs = make([]txStats, len(block.Transactions()))
+ for i, tx := range block.Transactions() {
+ txs[i].Hash = tx.Hash()
+ }
uncles = block.Uncles()
} else {
// Light nodes would need on-demand lookups for transactions/uncles, skip
@@ -501,6 +498,7 @@ func (s *Service) assembleBlockStats(block *types.Block) *blockStats {
header = s.les.BlockChain().CurrentHeader()
}
td = s.les.BlockChain().GetTd(header.Hash(), header.Number.Uint64())
+ txs = []txStats{}
}
// Assemble and return the block stats
author, _ := s.engine.Author(header)