hashMessage static method

Uint8List hashMessage({
  1. required String jsonData,
  2. required TypedDataVersion version,
  3. int? chainId,
})

Implementation

static Uint8List hashMessage(
    {required String jsonData,
    required TypedDataVersion version,
    int? chainId}) {
  late final rawTypedData;
  try {
    rawTypedData = jsonDecode(jsonData);
  } catch (_) {
    throw ArgumentError('jsonData format must be correct');
  }
  if (version == TypedDataVersion.V1) {
    late final List<EIP712TypedData> typedData;
    try {
      if (rawTypedData is List) {
        typedData =
            rawTypedData.map((e) => EIP712TypedData.fromJson(e)).toList();
      } else {
        typedData = [EIP712TypedData.fromJson(rawTypedData)];
      }
    } catch (_) {
      throw ArgumentError(
          'jsonData format is not corresponding to EIP712TypedData');
    }
    return TypedDataUtil.hashTypedDataV1(typedData);
  } else {
    late final typedData;
    try {
      typedData = TypedMessage.fromJson(rawTypedData);
    } catch (_) {
      throw ArgumentError(
          'jsonData format is not corresponding to TypedMessage');
    }
    return version == TypedDataVersion.V4
        ? TypedDataUtil.hashTypedDataV4(typedData)
        : TypedDataUtil.hashTypedDataV3(typedData);
  }
}