code: func (r *Request) GetDigest() (result common.Hash, err error) {
  	hasher := hashPool.Get().(hash.Hash)
  	defer hashPool.Put(hasher)
  	hasher.Reset()
  	dataLength := r.Update.binaryLength()
  	if r.binaryData == nil {
  		r.binaryData = make([]byte, dataLength+signatureLength)
  		if err := r.Update.binaryPut(r.binaryData[:dataLength]); err != nil {
  			return result, err
  		}
  	}
  	hasher.Write(r.binaryData[:dataLength]) //everything except the signature.
  
  	return common.BytesToHash(hasher.Sum(nil)), nil
  }
docs: // GetDigest creates the feed update digest used in signatures
  // the serialized payload is cached in .binaryData