From ba1f5a7b2c812f1a5c9f191336f588e8d660abcb Mon Sep 17 00:00:00 2001 From: HAOYUatHZ Date: Tue, 5 Jun 2018 15:23:05 +0800 Subject: [PATCH] move BlockHeaderJSON type --- api/miner.go | 34 ++++++---------------------------- protocol/bc/types/block_header.go | 12 ++++++++++++ 2 files changed, 18 insertions(+), 28 deletions(-) diff --git a/api/miner.go b/api/miner.go index b6e3a681..5613bcfa 100644 --- a/api/miner.go +++ b/api/miner.go @@ -8,18 +8,6 @@ import ( "github.com/bytom/protocol/bc/types" ) -// BlockHeaderJSON struct provides support for get work in json format, when it also follows -// protocol/bc/types.BlockHeader structure -type BlockHeaderJSON struct { - Version uint64 `json:"version"` // The version of the block. - Height uint64 `json:"height"` // The height of the block. - PreviousBlockHash bc.Hash `json:"previous_block_hash"` // The hash of the previous block. - Timestamp uint64 `json:"timestamp"` // The time of the block in seconds. - Nonce uint64 `json:"nonce"` // Nonce used to generate the block. - Bits uint64 `json:"bits"` // Difficulty target for the block. - BlockCommitment *types.BlockCommitment `json:"block_commitment"` //Block commitment -} - // getWork gets work in compressed protobuf format func (a *API) getWork() Response { work, err := a.GetWork() @@ -53,16 +41,11 @@ func (a *API) submitWork(ctx context.Context, req *SubmitWorkReq) Response { // SubmitWorkJSONReq is req struct for submit-work-json API type SubmitWorkJSONReq struct { - BlockHeader *BlockHeaderJSON `json:"block_header"` + BlockHeader *types.BlockHeaderJSON `json:"block_header"` } // submitWorkJSON submits work in json format func (a *API) submitWorkJSON(ctx context.Context, req *SubmitWorkJSONReq) Response { - blockCommitment := types.BlockCommitment{ - TransactionsMerkleRoot: req.BlockHeader.BlockCommitment.TransactionsMerkleRoot, - TransactionStatusHash: req.BlockHeader.BlockCommitment.TransactionStatusHash, - } - bh := &types.BlockHeader{ Version: req.BlockHeader.Version, Height: req.BlockHeader.Height, @@ -70,7 +53,7 @@ func (a *API) submitWorkJSON(ctx context.Context, req *SubmitWorkJSONReq) Respon Timestamp: req.BlockHeader.Timestamp, Nonce: req.BlockHeader.Nonce, Bits: req.BlockHeader.Bits, - BlockCommitment: blockCommitment, + BlockCommitment: req.BlockHeader.BlockCommitment, } if err := a.SubmitWork(bh); err != nil { @@ -105,8 +88,8 @@ func (a *API) GetWork() (*GetWorkResp, error) { // GetWorkJSONResp is resp struct for get-work-json API type GetWorkJSONResp struct { - BlockHeader *BlockHeaderJSON `json:"block_header"` - Seed *bc.Hash `json:"seed"` + BlockHeader *types.BlockHeaderJSON `json:"block_header"` + Seed *bc.Hash `json:"seed"` } // GetWorkJSON gets work in json format @@ -121,20 +104,15 @@ func (a *API) GetWorkJSON() (*GetWorkJSONResp, error) { return nil, err } - blockCommitment := &types.BlockCommitment{ - TransactionsMerkleRoot: bh.BlockCommitment.TransactionsMerkleRoot, - TransactionStatusHash: bh.BlockCommitment.TransactionStatusHash, - } - return &GetWorkJSONResp{ - BlockHeader: &BlockHeaderJSON{ + BlockHeader: &types.BlockHeaderJSON{ Version: bh.Version, Height: bh.Height, PreviousBlockHash: bh.PreviousBlockHash, Timestamp: bh.Timestamp, Nonce: bh.Nonce, Bits: bh.Bits, - BlockCommitment: blockCommitment, + BlockCommitment: bh.BlockCommitment, }, Seed: seed, }, nil diff --git a/protocol/bc/types/block_header.go b/protocol/bc/types/block_header.go index f15184bc..b0279676 100644 --- a/protocol/bc/types/block_header.go +++ b/protocol/bc/types/block_header.go @@ -23,6 +23,18 @@ type BlockHeader struct { BlockCommitment } +// BlockHeaderJSON struct provides support for get work in json format, when it also follows +// BlockHeader structure +type BlockHeaderJSON struct { + Version uint64 `json:"version"` // The version of the block. + Height uint64 `json:"height"` // The height of the block. + PreviousBlockHash bc.Hash `json:"previous_block_hash"` // The hash of the previous block. + Timestamp uint64 `json:"timestamp"` // The time of the block in seconds. + Nonce uint64 `json:"nonce"` // Nonce used to generate the block. + Bits uint64 `json:"bits"` // Difficulty target for the block. + BlockCommitment `json:"block_commitment"` //Block commitment +} + // Time returns the time represented by the Timestamp in block header. func (bh *BlockHeader) Time() time.Time { return time.Unix(int64(bh.Timestamp), 0).UTC() -- 2.11.0