SteemPublicKey.fromString constructor

SteemPublicKey.fromString(
  1. String keyStr
)

Construct public key from string

Implementation

factory SteemPublicKey.fromString(String keyStr) {
  var 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) {
    var Regex = RegExp(r'^', caseSensitive: true, multiLine: false);
    if (!Regex.hasMatch(keyStr)) {
      throw InvalidKey('No leading ');
    }
    var publicKeyStr = keyStr.substring(3);
    var buffer = SteemKey.decodeKey(publicKeyStr);
    return SteemPublicKey.fromBuffer(buffer);
  } else if (match.length == 1) {
    var m = match.first;
    var keyType = m.group(1);
    var buffer = SteemKey.decodeKey(m.group(2)!, keyType);
    return SteemPublicKey.fromBuffer(buffer);
  } else {
    throw InvalidKey('Invalid public key format');
  }
}