typedSignatureHash static method
Implementation
static Uint8List typedSignatureHash(List<EIP712TypedData> typedData) {
final data = typedData.map((e) {
if (e.type == 'bytes') {
if (isHexString(e.value)) {
return hexToBytes(e.value);
} else {
return Uint8List.fromList(utf8.encode(e.value));
}
}
return e.value;
}).toList();
final types = typedData.map((e) {
return e.type;
}).toList();
final schema = typedData.map((e) {
return '${e.type} ${e.name}';
}).toList();
return AbiUtil.soliditySHA3(
['bytes32', 'bytes32'],
[
AbiUtil.soliditySHA3(
List.generate(typedData.length, (index) => 'string'), schema),
AbiUtil.soliditySHA3(types, data),
],
);
}