-// NextLeaderTime returns the start time of the specified public key as the next leader node
-func (c *Chain) IsBlocker(prevBlockHash *bc.Hash, pubkey string, timeStamp uint64) (bool, error) {
- return c.consensusNodeManager.isBlocker(prevBlockHash, pubkey, timeStamp)
+// GetVoteResultByHash return vote result by block hash
+func (c *Chain) GetVoteResultByHash(blockHash *bc.Hash) (*state.VoteResult, error) {
+ blockHeader, err := c.store.GetBlockHeader(blockHash)
+ if err != nil {
+ return nil, err
+ }
+ return c.getVoteResult(state.CalcVoteSeq(blockHeader.Height), blockHeader)
+}
+
+// IsBlocker returns whether the consensus node is a blocker at the specified time
+func (c *Chain) IsBlocker(prevBlockHash *bc.Hash, pubKey string, timeStamp uint64) (bool, error) {
+ xPub, err := c.GetBlocker(prevBlockHash, timeStamp)
+ if err != nil {
+ return false, err
+ }
+ return xPub == pubKey, nil