OSDN Git Service

extract api from blockchain (#478)
[bytom/bytom.git] / api / miner.go
1 package api
2
3 import (
4         "context"
5
6         "github.com/bytom/protocol/bc/types"
7 )
8
9 func (a *API) getWork() Response {
10         work, err := a.bcr.GetWork()
11         if err != nil {
12                 return NewErrorResponse(err)
13         }
14         return NewSuccessResponse(work)
15 }
16
17 func (a *API) submitWork(bh *types.BlockHeader) Response {
18         return NewSuccessResponse(a.bcr.SubmitWork(bh))
19 }
20
21 func (a *API) getBlockHeaderByHeight(ctx context.Context, req struct {
22         Height uint64 `json:"block_height"`
23 }) Response {
24         block, err := a.chain.GetBlockByHeight(req.Height)
25         if err != nil {
26                 return NewErrorResponse(err)
27         }
28
29         resp := &BlockHeaderByHeight{
30                 BlockHeader: &block.BlockHeader,
31                 Reward:      block.Transactions[0].Outputs[0].Amount,
32         }
33         return NewSuccessResponse(resp)
34 }