6 "github.com/bytom/protocol/bc"
7 "github.com/bytom/protocol/bc/types"
10 // BlockHeaderByHeight is resp struct for API
11 type BlockHeaderByHeight struct {
12 BlockHeader *types.BlockHeader `json:"block_header"`
13 Reward uint64 `json:"reward"`
16 // GetWorkResp is resp struct for API
17 type GetWorkResp struct {
18 BlockHeader *types.BlockHeader `json:"block_header"`
19 Seed *bc.Hash `json:"seed"`
22 func (a *API) getWork() Response {
23 bh, err := a.bcr.miningPool.GetWork()
25 return NewErrorResponse(err)
28 seed, err := a.bcr.chain.GetSeed(bh.Height, &bh.PreviousBlockHash)
30 return NewErrorResponse(err)
37 return NewSuccessResponse(resp)
40 func (a *API) submitWork(bh *types.BlockHeader) Response {
41 success := a.bcr.miningPool.SubmitWork(bh)
42 return NewSuccessResponse(success)
45 func (a *API) getBlockHeaderByHeight(ctx context.Context, req struct {
46 Height uint64 `json:"block_height"`
48 block, err := a.bcr.chain.GetBlockByHeight(req.Height)
50 return NewErrorResponse(err)
53 resp := &BlockHeaderByHeight{
54 BlockHeader: &block.BlockHeader,
55 Reward: block.Transactions[0].Outputs[0].Amount,
57 return NewSuccessResponse(resp)