forked from Zilliqa/zilliqa-js
-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathelliptic.d.ts
50 lines (43 loc) · 1.38 KB
/
elliptic.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
declare module 'elliptic' {
import BN from 'bn.js';
namespace elliptic {
type CurveTypes = 'short' | 'edwards' | 'mont';
type PrivateKey =
| string
| Buffer
| {x: Buffer; y: Buffer}
| {x: string; y: string};
interface Curve {
type: CurveTypes;
n: BN;
g: Point;
decodePoint(msg: Buffer | Array<any> | string, enc?: string): Point;
}
interface Point {
x: BN;
y: BN;
inf: boolean;
encode(enc: string, compressed?: boolean): Array<number>;
encodeCompressed(enc?: string): Array<number>;
add(k: BN | Number | Point): Point;
mul(k: BN | Number | Point): Point;
}
interface EC {
curve: Curve;
keyFromPrivate(priv: string, enc: string): KeyPair;
keyFromPublic(pub: BN, enc: string): KeyPair;
}
interface KeyPair {
fromPublic(ec: Curve, pub: BN, enc: string): KeyPair;
fromPrivate(ec: Curve, priv: BN, enc: string): KeyPair;
// this is broken, but we can't fix it without changing the upstream
// library; compact is optional, but optional parameters should always
// _follow_ mandatory ones.
getPublic(compact: boolean, enc: string): string;
getPrivate(enc: string): Array<number>;
validate(): { result: boolean; reason: string | null };
}
export function ec(curve: string): EC;
}
export = elliptic;
}