AMAXPublicKey.fromString constructor
AMAXPublicKey.fromString(
- String keyStr
Construct AMAX public key from string
Implementation
factory AMAXPublicKey.fromString(String keyStr) {
RegExp publicRegex = RegExp(r"^PUB_([A-Za-z0-9]+)_([A-Za-z0-9]+)", caseSensitive: true, multiLine: false);
Iterable<Match> match = publicRegex.allMatches(keyStr);
if (match.isEmpty) {
RegExp amaRegex = RegExp(r"^AM", caseSensitive: true, multiLine: false);
if (!amaRegex.hasMatch(keyStr)) {
throw InvalidKey("No leading AM");
}
String publicKeyStr = keyStr.substring(2);
Uint8List buffer = AMAXKey.decodeKey(publicKeyStr);
return AMAXPublicKey.fromBuffer(buffer);
} else if (match.length == 1) {
Match m = match.first;
String? keyType = m.group(1);
Uint8List buffer = AMAXKey.decodeKey(m.group(2)!, keyType);
return AMAXPublicKey.fromBuffer(buffer);
} else {
throw InvalidKey('Invalid public key format');
}
}