PublicKey.fromHex constructor

PublicKey.fromHex(
  1. Curve curve,
  2. String hex
)

fromHex will auto detect the hex type, which means hex can be compressed or not

Implementation

PublicKey.fromHex(this.curve, String hex) {
  if (hex.length <= 2) {
    throw ErrInvalidPublicKeyHexLength;
  }

  late PublicKey pub;
  var prefix = hex.substring(0, 2);
  switch (prefix) {
    case '02':
      pub = curve.compressedHexToPublicKey(hex);
      break;
    case '03':
      pub = curve.compressedHexToPublicKey(hex);
      break;
    case '04':
      pub = curve.hexToPublicKey(hex);
      break;
    default:
      throw ErrInvalidPublicKeyHexPrefix;
  }

  X = pub.X;
  Y = pub.Y;
}