ECDSARecoverableSignature.fromCompact constructor
ECDSARecoverableSignature.fromCompact(
- Uint8List compact
Takes a 65-byte compact recoverable signature representation. InvalidECDSARecoverableSignature will be thrown if the signature is not valid.
Implementation
factory ECDSARecoverableSignature.fromCompact(Uint8List compact) {
checkBytes(compact, compactLength, name: "Compact recoverable signature");
// Extract recid and public key compression from first byte
final bits = (compact[0] - 27);
final recid = bits & 3;
final compressed = (bits & 4) != 0;
final signature = compact.sublist(1);
if (!secp256k1.ecdsaCompactRecoverableSignatureVerify(signature, recid)) {
throw InvalidECDSARecoverableSignature();
}
return ECDSARecoverableSignature._(signature, recid, compressed);
}