getPublicFromMainnetAddress function

Uint8List? getPublicFromMainnetAddress(
  1. String address
)

Implementation

Uint8List? getPublicFromMainnetAddress(String address) {
  try {
    if (!address.startsWith(kMainAddressPrefix)) {
      return null;
    }
    final data = base58.decode(address.substring(kMainAddressPrefix.length));
    if (data.length != 68) {
      return null;
    }
    final payload = Uint8List.sublistView(data, 0, data.length - 4);
    final msg = Uint8List.fromList([
      ...utf8.encode(kMainAddressPrefix),
      ...payload,
    ]);
    final checksum = sha3Hash(msg);
    if (!Uint8List.sublistView(checksum, 0, 4)
        .equals(Uint8List.sublistView(data, 64))) {
      return null;
    }
    return Uint8List.fromList(payload);
  } catch (_) {
    return null;
  }
}