return resp.RawBlock, n.request(url, payload, resp)
}
-func (n *Node) GetVoteByHash(hash string) ([]api.VoteInfo, error) {
+func (n *Node) GetVoteByHash(hash string) ([]*api.VoteInfo, error) {
return n.getVoteResult(&getVoteResultReq{BlockHash: hash})
}
-func (n *Node) GetVoteByHeight(height uint64) ([]api.VoteInfo, error) {
+func (n *Node) GetVoteByHeight(height uint64) ([]*api.VoteInfo, error) {
return n.getVoteResult(&getVoteResultReq{BlockHeight: height})
}
BlockHash string `json:"block_hash"`
}
-func (n *Node) getVoteResult(req *getVoteResultReq) ([]api.VoteInfo, error) {
+func (n *Node) getVoteResult(req *getVoteResultReq) ([]*api.VoteInfo, error) {
url := "/get-vote-result"
payload, err := json.Marshal(req)
if err != nil {
return nil, errors.Wrap(err, "json marshal")
}
- resp := []api.VoteInfo{}
+ resp := []*api.VoteInfo{}
return resp, n.request(url, payload, &resp)
}
const NumOfBPNode = 42
-func CalcStandByNodes(voteResult []api.VoteInfo) []api.VoteInfo {
+func CalcStandByNodes(voteResult []*api.VoteInfo) []*api.VoteInfo {
sort.Slice(voteResult, func(i, j int) bool {
return voteResult[i].VoteNum > voteResult[j].VoteNum
})
- result := []api.VoteInfo{}
+ result := []*api.VoteInfo{}
for i := int(consensus.ActiveNetParams.NumOfConsensusNode); i < NumOfBPNode && i < len(voteResult); i++ {
if voteResult[i].VoteNum < consensus.ActiveNetParams.MinConsensusNodeVoteNum {
break