code: func SignV4(r *enr.Record, privkey *ecdsa.PrivateKey) error {
  	// Copy r to avoid modifying it if signing fails.
  	cpy := *r
  	cpy.Set(enr.ID("v4"))
  	cpy.Set(Secp256k1(privkey.PublicKey))
  
  	h := sha3.NewLegacyKeccak256()
  	rlp.Encode(h, cpy.AppendElements(nil))
  	sig, err := crypto.Sign(h.Sum(nil), privkey)
  	if err != nil {
  		return err
  	}
  	sig = sig[:len(sig)-1] // remove v
  	if err = cpy.SetSig(V4ID{}, sig); err == nil {
  		*r = cpy
  	}
  	return err
  }
docs: // SignV4 signs a record using the v4 scheme.