code: func ValidateSignatureValues(v byte, r, s *big.Int, homestead bool) bool {
  	if r.Cmp(common.Big1) < 0 || s.Cmp(common.Big1) < 0 {
  		return false
  	}
  	// reject upper range of s values (ECDSA malleability)
  	// see discussion in secp256k1/libsecp256k1/include/secp256k1.h
  	if homestead && s.Cmp(secp256k1halfN) > 0 {
  		return false
  	}
  	// Frontier: allow s to be in full N range
  	return r.Cmp(secp256k1N) < 0 && s.Cmp(secp256k1N) < 0 && (v == 0 || v == 1)
  }
docs: // ValidateSignatureValues verifies whether the signature values are valid with
  // the given chain rules. The v value is assumed to be either 0 or 1.