recoverPublicKey static method
Implementation
static Uint8List? recoverPublicKey(
dynamic data, String sig, TypedDataVersion version,
{int? chainId}) {
var sigParams = SignatureUtil.fromRpcSig(sig);
var messageHash;
switch (version) {
case TypedDataVersion.V1:
if (!(data is List<EIP712TypedData>)) {
throw ArgumentError(
'Recover public key version 1 required EIP712TypedData object');
}
messageHash = hashTypedDataV1(data);
break;
case TypedDataVersion.V3:
if (!(data is TypedMessage)) {
throw ArgumentError(
'Recover public key version 3 required TypedMessage object');
}
messageHash = hashTypedDataV3(data);
break;
case TypedDataVersion.V4:
if (!(data is TypedMessage)) {
throw ArgumentError(
'Recover public key version 4 required TypedMessage object');
}
messageHash = hashTypedDataV4(data);
break;
}
return SignatureUtil.recoverPublicKeyFromSignature(
ECDSASignature(sigParams.r, sigParams.s, sigParams.v), messageHash,
chainId: chainId);
}