pointAddScalar function

Uint8List? pointAddScalar(
  1. Uint8List p,
  2. Uint8List tweak,
  3. bool compressed
)

Implementation

Uint8List? pointAddScalar(Uint8List p, Uint8List tweak, bool compressed) {
  if (!isPoint(p)) throw ArgumentError(throwBadPoint);
  if (!isOrderScalar(tweak)) throw ArgumentError(throwBadTweak);
  bool c = assumeCompression(compressed, p);
  ECPoint? pp = decodeFrom(p);
  if (_compare(tweak, zero32) == 0) return getEncoded(pp, c);
  BigInt tt = fromBuffer(tweak);
  ECPoint qq = (G * tt) as ECPoint;
  ECPoint uu = (pp! + qq) as ECPoint;
  if (uu.isInfinity) return null;
  return getEncoded(uu, c);
}