net.CurrentBlock = bcr.blockKeeper.chainHeight
net.HighestBlock = bcr.blockKeeper.maxPeerHeight
- return NewSuccessResponse(net)
+ return resWrapper(net)
}
// return best block hash
func (bcr *BlockchainReactor) getBestBlockHash() Response {
blockHash := map[string]string{"blockHash": bcr.chain.BestBlockHash().String()}
- return NewSuccessResponse(blockHash)
+ return resWrapper(blockHash)
}
// return block header by hash
hash := bc.Hash{}
if err := hash.UnmarshalText([]byte(strHash)); err != nil {
log.WithField("error", err).Error("Error occurs when transforming string hash to hash struct")
- return NewErrorResponse(err)
+ return resWrapper(nil, err)
}
block, err := bcr.chain.GetBlockByHash(&hash)
if err != nil {
log.WithField("error", err).Error("Fail to get block by hash")
- return NewErrorResponse(err)
+ return resWrapper(nil, err)
}
bcBlock := legacy.MapBlock(block)
- return NewSuccessResponse(bcBlock.BlockHeader)
+ return resWrapper(bcBlock.BlockHeader)
}
// TxJSON is used for getting block by hash.
hash := bc.Hash{}
if err := hash.UnmarshalText([]byte(strHash)); err != nil {
log.WithField("error", err).Error("Error occurs when transforming string hash to hash struct")
- return NewErrorResponse(err)
+ return resWrapper(nil, err)
}
legacyBlock, err := bcr.chain.GetBlockByHash(&hash)
if err != nil {
log.WithField("error", err).Error("Fail to get block by hash")
- return NewErrorResponse(err)
+ return resWrapper(nil, err)
}
bcBlock := legacy.MapBlock(legacyBlock)
block.Transactions = append(block.Transactions, txJSON)
}
- return NewSuccessResponse(block)
+ return resWrapper(block)
}
// return block by height
legacyBlock, err := bcr.chain.GetBlockByHeight(height)
if err != nil {
log.WithField("error", err).Error("Fail to get block by hash")
- return NewErrorResponse(err)
+ return resWrapper(nil, err)
}
bcBlock := legacy.MapBlock(legacyBlock)
res.Transactions = append(res.Transactions, txJSON)
}
- return NewSuccessResponse(res)
+ return resWrapper(res)
}
// return block transactions count by hash
hash := bc.Hash{}
if err := hash.UnmarshalText([]byte(strHash)); err != nil {
log.WithField("error", err).Error("Error occurs when transforming string hash to hash struct")
- return NewErrorResponse(err)
+ return resWrapper(nil, err)
}
legacyBlock, err := bcr.chain.GetBlockByHash(&hash)
if err != nil {
log.WithField("error", err).Error("Fail to get block by hash")
- return NewErrorResponse(err)
+ return resWrapper(nil, err)
}
count := map[string]int{"count": len(legacyBlock.Transactions)}
- return NewSuccessResponse(count)
+ return resWrapper(count)
}
// return block transactions count by height
legacyBlock, err := bcr.chain.GetBlockByHeight(height)
if err != nil {
log.WithField("error", err).Error("Fail to get block by hash")
- return NewErrorResponse(err)
+ return resWrapper(nil, err)
}
count := map[string]int{"count": len(legacyBlock.Transactions)}
- return NewSuccessResponse(count)
+ return resWrapper(count)
}
// return block height
func (bcr *BlockchainReactor) blockHeight() Response {
blockHeight := map[string]uint64{"blockHeight": bcr.chain.Height()}
- return NewSuccessResponse(blockHeight)
+ return resWrapper(blockHeight)
}
// return is in mining or not
func (bcr *BlockchainReactor) isMining() Response {
IsMining := map[string]bool{"isMining": bcr.mining.IsMining()}
- return NewSuccessResponse(IsMining)
+ return resWrapper(IsMining)
}
// return gasRate
func (bcr *BlockchainReactor) gasRate() Response {
gasrate := map[string]int64{"gasRate": validation.GasRate}
- return NewSuccessResponse(gasrate)
+ return resWrapper(gasrate)
+}
+
+// wrapper json for response
+func resWrapper(data interface{}, errWrapper ...error) Response {
+ var response Response
+
+ if errWrapper != nil {
+ response = Response{Status: FAIL, Msg: errWrapper[0].Error()}
+ } else {
+ response = Response{Status: SUCCESS, Data: data}
+ }
+
+ return response
}