code: func (r FutureGetBestBlockResult) Receive() (*chainhash.Hash, int32, error) {
  	res, err := receiveFuture(r)
  	if err != nil {
  		return nil, 0, err
  	}
  
  	// Unmarshal result as a getbestblock result object.
  	var bestBlock btcjson.GetBestBlockResult
  	err = json.Unmarshal(res, &bestBlock)
  	if err != nil {
  		return nil, 0, err
  	}
  
  	// Convert to hash from string.
  	hash, err := chainhash.NewHashFromStr(bestBlock.Hash)
  	if err != nil {
  		return nil, 0, err
  	}
  
  	return hash, bestBlock.Height, nil
  }
docs: // Receive waits for the response promised by the future and returns the hash
  // and height of the block in the longest (best) chain.