Kit
Type aliases

AffinePoint

AffinePoint<T, TValidity> = NominalType<"affinePoint", TValidity> & T

Use this to produce a new type that satisfies the original type, but adds extra type information that marks the type as being an affine point over a field that either lies on a given curve (is valid) or does not (is invalid).

Type Parameters

Type ParameterDescription
TThe underlying type
TValidity extends AffinePointValidityWhether the point is valid or invalid

Example

const address = 'dv1ZAGvdsz5hHLwWXsVnM94hWf1pjbKVau1QVkaMJ92';
const onCurveAddress = address as AffinePoint<typeof address, 'valid'>;
 
onCurveAddress satisfies AffinePoint<'dv1ZAGvdsz5hHLwWXsVnM94hWf1pjbKVau1QVkaMJ92', 'valid'>; // OK
onCurveAddress satisfies AffinePoint<string, 'valid'>; // OK
onCurveAddress satisfies AffinePoint<string, 'invalid'>; // ERROR
address satisfies AffinePoint<string, 'valid'>; // ERROR
address satisfies AffinePoint<string, 'invalid'>; // ERROR

On this page