code: func (msg *MsgCFilter) BtcEncode(w io.Writer, pver uint32, _ MessageEncoding) error {
  	size := len(msg.Data)
  	if size > MaxCFilterDataSize {
  		str := fmt.Sprintf("cfilter size too large for message "+
  			"[size %v, max %v]", size, MaxCFilterDataSize)
  		return messageError("MsgCFilter.BtcEncode", str)
  	}
  
  	err := writeElement(w, msg.FilterType)
  	if err != nil {
  		return err
  	}
  
  	err = writeElement(w, msg.BlockHash)
  	if err != nil {
  		return err
  	}
  
  	return WriteVarBytes(w, pver, msg.Data)
  }
docs: // BtcEncode encodes the receiver to w using the bitcoin protocol encoding.
  // This is part of the Message interface implementation.