code: def check_value_error_for_parity(value_error: ValueError, call_type: ParityCallType) -> bool:
      
      try:
          error_data = json.loads(str(value_error).replace("'", '"'))
      except json.JSONDecodeError:
          return False
  
      if call_type == ParityCallType.ESTIMATE_GAS:
          code_checks_out = error_data['code'] == -32016
          message_checks_out = 'The execution failed due to an exception' in error_data['message']
      elif call_type == ParityCallType.CALL:
          code_checks_out = error_data['code'] == -32015
          message_checks_out = 'VM execution error' in error_data['message']
      else:
          raise ValueError('Called check_value_error_for_parity() with illegal call type')
  
      if code_checks_out and message_checks_out:
          return True
  
      return False
docs: For parity failing calls and functions do not return None if the transaction
      will fail but instead throw a ValueError exception.
  
      This function checks the thrown exception to see if it's the correct one and
      if yes returns True, if not returns False