diff options
Diffstat (limited to 'rpc/responses.go')
-rw-r--r-- | rpc/responses.go | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/rpc/responses.go b/rpc/responses.go index 3e9293fbb..45a2fa18b 100644 --- a/rpc/responses.go +++ b/rpc/responses.go @@ -29,12 +29,15 @@ type BlockRes struct { Uncles []*hexdata `json:"uncles"` } -func NewBlockRes(block *types.Block) *BlockRes { +func NewBlockRes(block *types.Block, fullTx bool) *BlockRes { + // TODO respect fullTx flag + if block == nil { return &BlockRes{} } res := new(BlockRes) + res.fullTx = fullTx res.BlockNumber = newHexNum(block.Number()) res.BlockHash = newHexData(block.Hash()) res.ParentHash = newHexData(block.ParentHash()) @@ -52,11 +55,20 @@ func NewBlockRes(block *types.Block) *BlockRes { // res.MinGasPrice = res.GasUsed = newHexNum(block.GasUsed()) res.UnixTimestamp = newHexNum(block.Time()) - res.Transactions = NewTransactionsRes(block.Transactions()) + + res.Transactions = make([]*TransactionRes, len(block.Transactions())) + for i, tx := range block.Transactions() { + res.Transactions[i] = NewTransactionRes(tx) + res.Transactions[i].BlockHash = res.BlockHash + res.Transactions[i].BlockNumber = res.BlockNumber + res.Transactions[i].TxIndex = newHexNum(i) + } + res.Uncles = make([]*hexdata, len(block.Uncles())) for i, uncle := range block.Uncles() { res.Uncles[i] = newHexData(uncle.Hash()) } + return res } @@ -91,14 +103,6 @@ func NewTransactionRes(tx *types.Transaction) *TransactionRes { return v } -func NewTransactionsRes(txs []*types.Transaction) []*TransactionRes { - v := make([]*TransactionRes, len(txs)) - for i, tx := range txs { - v[i] = NewTransactionRes(tx) - } - return v -} - // type FilterLogRes struct { // Hash string `json:"hash"` // Address string `json:"address"` |