ccxt-ir 4.9.19 → 4.9.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/ccxt.browser.min.js +2 -2
- package/dist/cjs/ccxt.js +1 -1
- package/dist/cjs/src/abstract/bitunix.js +1 -1
- package/dist/cjs/src/bitunix.js +317 -317
- package/dist/cjs/src/kcex.js +4 -4
- package/dist/cjs/src/xt.js +5171 -5171
- package/js/ccxt.d.ts +1 -1
- package/js/ccxt.js +1 -1
- package/js/src/abstract/bitunix.d.ts +9 -9
- package/js/src/abstract/bitunix.js +5 -5
- package/js/src/abstract/kcex.d.ts +10 -10
- package/js/src/bitunix.d.ts +21 -21
- package/js/src/bitunix.js +320 -320
- package/js/src/kcex.d.ts +21 -21
- package/js/src/kcex.js +4 -4
- package/js/src/static_dependencies/noble-curves/abstract/weierstrass.d.ts +204 -204
- package/js/src/xt.js +5178 -5178
- package/package.json +1 -1
package/js/src/kcex.d.ts
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import Exchange from './abstract/kcex.js';
|
|
2
|
-
import { Market, Strings, Ticker, Tickers } from './base/types.js';
|
|
3
|
-
/**
|
|
4
|
-
* @class kcex
|
|
5
|
-
* @augments Exchange
|
|
6
|
-
* @description Set rateLimit to 1000 if fully verified
|
|
7
|
-
*/
|
|
8
|
-
export default class kcex extends Exchange {
|
|
9
|
-
describe(): any;
|
|
10
|
-
fetchMarkets(params?: {}): Promise<Market[]>;
|
|
11
|
-
parseMarket(market: any): Market;
|
|
12
|
-
fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
|
|
13
|
-
fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
|
|
14
|
-
parseTicker(ticker: any, market?: Market): Ticker;
|
|
15
|
-
sign(path: any, api?: string, method?: string, params?: {}, headers?: any, body?: any): {
|
|
16
|
-
url: string;
|
|
17
|
-
method: string;
|
|
18
|
-
body: any;
|
|
19
|
-
headers: any;
|
|
20
|
-
};
|
|
21
|
-
}
|
|
1
|
+
import Exchange from './abstract/kcex.js';
|
|
2
|
+
import { Market, Strings, Ticker, Tickers } from './base/types.js';
|
|
3
|
+
/**
|
|
4
|
+
* @class kcex
|
|
5
|
+
* @augments Exchange
|
|
6
|
+
* @description Set rateLimit to 1000 if fully verified
|
|
7
|
+
*/
|
|
8
|
+
export default class kcex extends Exchange {
|
|
9
|
+
describe(): any;
|
|
10
|
+
fetchMarkets(params?: {}): Promise<Market[]>;
|
|
11
|
+
parseMarket(market: any): Market;
|
|
12
|
+
fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
|
|
13
|
+
fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
|
|
14
|
+
parseTicker(ticker: any, market?: Market): Ticker;
|
|
15
|
+
sign(path: any, api?: string, method?: string, params?: {}, headers?: any, body?: any): {
|
|
16
|
+
url: string;
|
|
17
|
+
method: string;
|
|
18
|
+
body: any;
|
|
19
|
+
headers: any;
|
|
20
|
+
};
|
|
21
|
+
}
|
package/js/src/kcex.js
CHANGED
|
@@ -173,14 +173,14 @@ export default class kcex extends Exchange {
|
|
|
173
173
|
baseId = baseId.toLowerCase();
|
|
174
174
|
quoteId = quoteId.toLowerCase();
|
|
175
175
|
return {
|
|
176
|
-
'id':
|
|
176
|
+
'id': base + '/' + quote,
|
|
177
177
|
'symbol': base + '/' + quote,
|
|
178
178
|
'base': base,
|
|
179
179
|
'quote': quote,
|
|
180
180
|
'settle': undefined,
|
|
181
181
|
'baseId': baseId,
|
|
182
182
|
'quoteId': quoteId,
|
|
183
|
-
'settleId':
|
|
183
|
+
'settleId': id,
|
|
184
184
|
'type': 'spot',
|
|
185
185
|
'spot': true,
|
|
186
186
|
'margin': false,
|
|
@@ -244,12 +244,12 @@ export default class kcex extends Exchange {
|
|
|
244
244
|
const marketList = Object.values(this.markets);
|
|
245
245
|
for (let i = 0; i < marketList.length; i++) {
|
|
246
246
|
const market = marketList[i];
|
|
247
|
-
idToMarket[market['
|
|
247
|
+
idToMarket[market['settleId']] = market;
|
|
248
248
|
}
|
|
249
249
|
for (let i = 0; i < tickers.length; i++) {
|
|
250
250
|
const ticker = tickers[i];
|
|
251
251
|
const id = this.safeString(ticker, 'id');
|
|
252
|
-
const market = idToMarket
|
|
252
|
+
const market = this.safeValue(idToMarket, id);
|
|
253
253
|
ticker['timestamp'] = timestamp;
|
|
254
254
|
if (market !== undefined) {
|
|
255
255
|
const parsedTicker = this.parseTicker(ticker, market);
|
|
@@ -1,204 +1,204 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
3
|
-
import * as mod from './modular.js';
|
|
4
|
-
import * as ut from './utils.js';
|
|
5
|
-
import { CHash, Hex, PrivKey } from './utils.js';
|
|
6
|
-
import { Group, GroupConstructor, BasicCurve, AffinePoint } from './curve.js';
|
|
7
|
-
export type { AffinePoint };
|
|
8
|
-
declare type HmacFnSync = (key: Uint8Array, ...messages: Uint8Array[]) => Uint8Array;
|
|
9
|
-
declare type EndomorphismOpts = {
|
|
10
|
-
beta: bigint;
|
|
11
|
-
splitScalar: (k: bigint) => {
|
|
12
|
-
k1neg: boolean;
|
|
13
|
-
k1: bigint;
|
|
14
|
-
k2neg: boolean;
|
|
15
|
-
k2: bigint;
|
|
16
|
-
};
|
|
17
|
-
};
|
|
18
|
-
export declare type BasicWCurve<T> = BasicCurve<T> & {
|
|
19
|
-
a: T;
|
|
20
|
-
b: T;
|
|
21
|
-
allowedPrivateKeyLengths?: readonly number[];
|
|
22
|
-
wrapPrivateKey?: boolean;
|
|
23
|
-
endo?: EndomorphismOpts;
|
|
24
|
-
isTorsionFree?: (c: ProjConstructor<T>, point: ProjPointType<T>) => boolean;
|
|
25
|
-
clearCofactor?: (c: ProjConstructor<T>, point: ProjPointType<T>) => ProjPointType<T>;
|
|
26
|
-
};
|
|
27
|
-
declare type Entropy = Hex | true;
|
|
28
|
-
export declare type SignOpts = {
|
|
29
|
-
lowS?: boolean;
|
|
30
|
-
extraEntropy?: Entropy;
|
|
31
|
-
prehash?: boolean;
|
|
32
|
-
};
|
|
33
|
-
export declare type VerOpts = {
|
|
34
|
-
lowS?: boolean;
|
|
35
|
-
prehash?: boolean;
|
|
36
|
-
};
|
|
37
|
-
/**
|
|
38
|
-
* ### Design rationale for types
|
|
39
|
-
*
|
|
40
|
-
* * Interaction between classes from different curves should fail:
|
|
41
|
-
* `k256.Point.BASE.add(p256.Point.BASE)`
|
|
42
|
-
* * For this purpose we want to use `instanceof` operator, which is fast and works during runtime
|
|
43
|
-
* * Different calls of `curve()` would return different classes -
|
|
44
|
-
* `curve(params) !== curve(params)`: if somebody decided to monkey-patch their curve,
|
|
45
|
-
* it won't affect others
|
|
46
|
-
*
|
|
47
|
-
* TypeScript can't infer types for classes created inside a function. Classes is one instance of nominative types in TypeScript and interfaces only check for shape, so it's hard to create unique type for every function call.
|
|
48
|
-
*
|
|
49
|
-
* We can use generic types via some param, like curve opts, but that would:
|
|
50
|
-
* 1. Enable interaction between `curve(params)` and `curve(params)` (curves of same params)
|
|
51
|
-
* which is hard to debug.
|
|
52
|
-
* 2. Params can be generic and we can't enforce them to be constant value:
|
|
53
|
-
* if somebody creates curve from non-constant params,
|
|
54
|
-
* it would be allowed to interact with other curves with non-constant params
|
|
55
|
-
*
|
|
56
|
-
* TODO: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-7.html#unique-symbol
|
|
57
|
-
*/
|
|
58
|
-
export interface ProjPointType<T> extends Group<ProjPointType<T>> {
|
|
59
|
-
readonly px: T;
|
|
60
|
-
readonly py: T;
|
|
61
|
-
readonly pz: T;
|
|
62
|
-
multiply(scalar: bigint): ProjPointType<T>;
|
|
63
|
-
toAffine(iz?: T): AffinePoint<T>;
|
|
64
|
-
isTorsionFree(): boolean;
|
|
65
|
-
clearCofactor(): ProjPointType<T>;
|
|
66
|
-
assertValidity(): void;
|
|
67
|
-
hasEvenY(): boolean;
|
|
68
|
-
toRawBytes(isCompressed?: boolean): Uint8Array;
|
|
69
|
-
toHex(isCompressed?: boolean): string;
|
|
70
|
-
multiplyUnsafe(scalar: bigint): ProjPointType<T>;
|
|
71
|
-
multiplyAndAddUnsafe(Q: ProjPointType<T>, a: bigint, b: bigint): ProjPointType<T> | undefined;
|
|
72
|
-
_setWindowSize(windowSize: number): void;
|
|
73
|
-
}
|
|
74
|
-
export interface ProjConstructor<T> extends GroupConstructor<ProjPointType<T>> {
|
|
75
|
-
new (x: T, y: T, z: T): ProjPointType<T>;
|
|
76
|
-
fromAffine(p: AffinePoint<T>): ProjPointType<T>;
|
|
77
|
-
fromHex(hex: Hex): ProjPointType<T>;
|
|
78
|
-
fromPrivateKey(privateKey: PrivKey): ProjPointType<T>;
|
|
79
|
-
normalizeZ(points: ProjPointType<T>[]): ProjPointType<T>[];
|
|
80
|
-
}
|
|
81
|
-
export declare type CurvePointsType<T> = BasicWCurve<T> & {
|
|
82
|
-
fromBytes: (bytes: Uint8Array) => AffinePoint<T>;
|
|
83
|
-
toBytes: (c: ProjConstructor<T>, point: ProjPointType<T>, compressed: boolean) => Uint8Array;
|
|
84
|
-
};
|
|
85
|
-
export declare type CurvePointsRes<T> = {
|
|
86
|
-
ProjectivePoint: ProjConstructor<T>;
|
|
87
|
-
normPrivateKeyToScalar: (key: PrivKey) => bigint;
|
|
88
|
-
weierstrassEquation: (x: T) => T;
|
|
89
|
-
isWithinCurveOrder: (num: bigint) => boolean;
|
|
90
|
-
};
|
|
91
|
-
export declare const DER: {
|
|
92
|
-
Err: {
|
|
93
|
-
new (m?: string): {
|
|
94
|
-
name: string;
|
|
95
|
-
message: string;
|
|
96
|
-
stack?: string;
|
|
97
|
-
};
|
|
98
|
-
captureStackTrace(targetObject: object, constructorOpt?: Function): void;
|
|
99
|
-
prepareStackTrace?: (err: Error, stackTraces: NodeJS.CallSite[]) => any;
|
|
100
|
-
stackTraceLimit: number;
|
|
101
|
-
};
|
|
102
|
-
_parseInt(data: Uint8Array): {
|
|
103
|
-
d: bigint;
|
|
104
|
-
l: Uint8Array;
|
|
105
|
-
};
|
|
106
|
-
toSig(hex: string | Uint8Array): {
|
|
107
|
-
r: bigint;
|
|
108
|
-
s: bigint;
|
|
109
|
-
};
|
|
110
|
-
hexFromSig(sig: {
|
|
111
|
-
r: bigint;
|
|
112
|
-
s: bigint;
|
|
113
|
-
}): string;
|
|
114
|
-
};
|
|
115
|
-
export declare function weierstrassPoints<T>(opts: CurvePointsType<T>): {
|
|
116
|
-
ProjectivePoint: ProjConstructor<T>;
|
|
117
|
-
normPrivateKeyToScalar: (key: PrivKey) => bigint;
|
|
118
|
-
weierstrassEquation: (x: T) => T;
|
|
119
|
-
isWithinCurveOrder: (num: bigint) => boolean;
|
|
120
|
-
};
|
|
121
|
-
export interface SignatureType {
|
|
122
|
-
readonly r: bigint;
|
|
123
|
-
readonly s: bigint;
|
|
124
|
-
readonly recovery?: number;
|
|
125
|
-
assertValidity(): void;
|
|
126
|
-
addRecoveryBit(recovery: number): SignatureType;
|
|
127
|
-
hasHighS(): boolean;
|
|
128
|
-
normalizeS(): SignatureType;
|
|
129
|
-
recoverPublicKey(msgHash: Hex): ProjPointType<bigint>;
|
|
130
|
-
toCompactRawBytes(): Uint8Array;
|
|
131
|
-
toCompactHex(): string;
|
|
132
|
-
toDERRawBytes(isCompressed?: boolean): Uint8Array;
|
|
133
|
-
toDERHex(isCompressed?: boolean): string;
|
|
134
|
-
}
|
|
135
|
-
export declare type SignatureConstructor = {
|
|
136
|
-
new (r: bigint, s: bigint): SignatureType;
|
|
137
|
-
fromCompact(hex: Hex): SignatureType;
|
|
138
|
-
fromDER(hex: Hex): SignatureType;
|
|
139
|
-
};
|
|
140
|
-
declare type SignatureLike = {
|
|
141
|
-
r: bigint;
|
|
142
|
-
s: bigint;
|
|
143
|
-
};
|
|
144
|
-
export declare type PubKey = Hex | ProjPointType<bigint>;
|
|
145
|
-
export declare type CurveType = BasicWCurve<bigint> & {
|
|
146
|
-
hash: CHash;
|
|
147
|
-
hmac: HmacFnSync;
|
|
148
|
-
randomBytes: (bytesLength?: number) => Uint8Array;
|
|
149
|
-
lowS?: boolean;
|
|
150
|
-
bits2int?: (bytes: Uint8Array) => bigint;
|
|
151
|
-
bits2int_modN?: (bytes: Uint8Array) => bigint;
|
|
152
|
-
};
|
|
153
|
-
declare function validateOpts(curve: CurveType): Readonly<{
|
|
154
|
-
readonly nBitLength: number;
|
|
155
|
-
readonly nByteLength: number;
|
|
156
|
-
readonly Fp: mod.Field<bigint>;
|
|
157
|
-
readonly n: bigint;
|
|
158
|
-
readonly h: bigint;
|
|
159
|
-
readonly hEff?: bigint;
|
|
160
|
-
readonly Gx: bigint;
|
|
161
|
-
readonly Gy: bigint;
|
|
162
|
-
readonly allowInfinityPoint?: boolean;
|
|
163
|
-
readonly a: bigint;
|
|
164
|
-
readonly b: bigint;
|
|
165
|
-
readonly allowedPrivateKeyLengths?: readonly number[];
|
|
166
|
-
readonly wrapPrivateKey?: boolean;
|
|
167
|
-
readonly endo?: EndomorphismOpts;
|
|
168
|
-
readonly isTorsionFree?: (c: ProjConstructor<bigint>, point: ProjPointType<bigint>) => boolean;
|
|
169
|
-
readonly clearCofactor?: (c: ProjConstructor<bigint>, point: ProjPointType<bigint>) => ProjPointType<bigint>;
|
|
170
|
-
readonly hash: ut.CHash;
|
|
171
|
-
readonly hmac: HmacFnSync;
|
|
172
|
-
readonly randomBytes: (bytesLength?: number) => Uint8Array;
|
|
173
|
-
lowS: boolean;
|
|
174
|
-
readonly bits2int?: (bytes: Uint8Array) => bigint;
|
|
175
|
-
readonly bits2int_modN?: (bytes: Uint8Array) => bigint;
|
|
176
|
-
}>;
|
|
177
|
-
export declare type CurveFn = {
|
|
178
|
-
CURVE: ReturnType<typeof validateOpts>;
|
|
179
|
-
getPublicKey: (privateKey: PrivKey, isCompressed?: boolean) => Uint8Array;
|
|
180
|
-
getSharedSecret: (privateA: PrivKey, publicB: Hex, isCompressed?: boolean) => Uint8Array;
|
|
181
|
-
sign: (msgHash: Hex, privKey: PrivKey, opts?: SignOpts) => SignatureType;
|
|
182
|
-
verify: (signature: Hex | SignatureLike, msgHash: Hex, publicKey: Hex, opts?: VerOpts) => boolean;
|
|
183
|
-
ProjectivePoint: ProjConstructor<bigint>;
|
|
184
|
-
Signature: SignatureConstructor;
|
|
185
|
-
utils: {
|
|
186
|
-
normPrivateKeyToScalar: (key: PrivKey) => bigint;
|
|
187
|
-
isValidPrivateKey(privateKey: PrivKey): boolean;
|
|
188
|
-
randomPrivateKey: () => Uint8Array;
|
|
189
|
-
precompute: (windowSize?: number, point?: ProjPointType<bigint>) => ProjPointType<bigint>;
|
|
190
|
-
};
|
|
191
|
-
};
|
|
192
|
-
export declare function weierstrass(curveDef: CurveType): CurveFn;
|
|
193
|
-
export declare function SWUFpSqrtRatio<T>(Fp: mod.Field<T>, Z: T): (u: T, v: T) => {
|
|
194
|
-
isValid: boolean;
|
|
195
|
-
value: T;
|
|
196
|
-
};
|
|
197
|
-
export declare function mapToCurveSimpleSWU<T>(Fp: mod.Field<T>, opts: {
|
|
198
|
-
A: T;
|
|
199
|
-
B: T;
|
|
200
|
-
Z: T;
|
|
201
|
-
}): (u: T) => {
|
|
202
|
-
x: T;
|
|
203
|
-
y: T;
|
|
204
|
-
};
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
3
|
+
import * as mod from './modular.js';
|
|
4
|
+
import * as ut from './utils.js';
|
|
5
|
+
import { CHash, Hex, PrivKey } from './utils.js';
|
|
6
|
+
import { Group, GroupConstructor, BasicCurve, AffinePoint } from './curve.js';
|
|
7
|
+
export type { AffinePoint };
|
|
8
|
+
declare type HmacFnSync = (key: Uint8Array, ...messages: Uint8Array[]) => Uint8Array;
|
|
9
|
+
declare type EndomorphismOpts = {
|
|
10
|
+
beta: bigint;
|
|
11
|
+
splitScalar: (k: bigint) => {
|
|
12
|
+
k1neg: boolean;
|
|
13
|
+
k1: bigint;
|
|
14
|
+
k2neg: boolean;
|
|
15
|
+
k2: bigint;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
export declare type BasicWCurve<T> = BasicCurve<T> & {
|
|
19
|
+
a: T;
|
|
20
|
+
b: T;
|
|
21
|
+
allowedPrivateKeyLengths?: readonly number[];
|
|
22
|
+
wrapPrivateKey?: boolean;
|
|
23
|
+
endo?: EndomorphismOpts;
|
|
24
|
+
isTorsionFree?: (c: ProjConstructor<T>, point: ProjPointType<T>) => boolean;
|
|
25
|
+
clearCofactor?: (c: ProjConstructor<T>, point: ProjPointType<T>) => ProjPointType<T>;
|
|
26
|
+
};
|
|
27
|
+
declare type Entropy = Hex | true;
|
|
28
|
+
export declare type SignOpts = {
|
|
29
|
+
lowS?: boolean;
|
|
30
|
+
extraEntropy?: Entropy;
|
|
31
|
+
prehash?: boolean;
|
|
32
|
+
};
|
|
33
|
+
export declare type VerOpts = {
|
|
34
|
+
lowS?: boolean;
|
|
35
|
+
prehash?: boolean;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* ### Design rationale for types
|
|
39
|
+
*
|
|
40
|
+
* * Interaction between classes from different curves should fail:
|
|
41
|
+
* `k256.Point.BASE.add(p256.Point.BASE)`
|
|
42
|
+
* * For this purpose we want to use `instanceof` operator, which is fast and works during runtime
|
|
43
|
+
* * Different calls of `curve()` would return different classes -
|
|
44
|
+
* `curve(params) !== curve(params)`: if somebody decided to monkey-patch their curve,
|
|
45
|
+
* it won't affect others
|
|
46
|
+
*
|
|
47
|
+
* TypeScript can't infer types for classes created inside a function. Classes is one instance of nominative types in TypeScript and interfaces only check for shape, so it's hard to create unique type for every function call.
|
|
48
|
+
*
|
|
49
|
+
* We can use generic types via some param, like curve opts, but that would:
|
|
50
|
+
* 1. Enable interaction between `curve(params)` and `curve(params)` (curves of same params)
|
|
51
|
+
* which is hard to debug.
|
|
52
|
+
* 2. Params can be generic and we can't enforce them to be constant value:
|
|
53
|
+
* if somebody creates curve from non-constant params,
|
|
54
|
+
* it would be allowed to interact with other curves with non-constant params
|
|
55
|
+
*
|
|
56
|
+
* TODO: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-7.html#unique-symbol
|
|
57
|
+
*/
|
|
58
|
+
export interface ProjPointType<T> extends Group<ProjPointType<T>> {
|
|
59
|
+
readonly px: T;
|
|
60
|
+
readonly py: T;
|
|
61
|
+
readonly pz: T;
|
|
62
|
+
multiply(scalar: bigint): ProjPointType<T>;
|
|
63
|
+
toAffine(iz?: T): AffinePoint<T>;
|
|
64
|
+
isTorsionFree(): boolean;
|
|
65
|
+
clearCofactor(): ProjPointType<T>;
|
|
66
|
+
assertValidity(): void;
|
|
67
|
+
hasEvenY(): boolean;
|
|
68
|
+
toRawBytes(isCompressed?: boolean): Uint8Array;
|
|
69
|
+
toHex(isCompressed?: boolean): string;
|
|
70
|
+
multiplyUnsafe(scalar: bigint): ProjPointType<T>;
|
|
71
|
+
multiplyAndAddUnsafe(Q: ProjPointType<T>, a: bigint, b: bigint): ProjPointType<T> | undefined;
|
|
72
|
+
_setWindowSize(windowSize: number): void;
|
|
73
|
+
}
|
|
74
|
+
export interface ProjConstructor<T> extends GroupConstructor<ProjPointType<T>> {
|
|
75
|
+
new (x: T, y: T, z: T): ProjPointType<T>;
|
|
76
|
+
fromAffine(p: AffinePoint<T>): ProjPointType<T>;
|
|
77
|
+
fromHex(hex: Hex): ProjPointType<T>;
|
|
78
|
+
fromPrivateKey(privateKey: PrivKey): ProjPointType<T>;
|
|
79
|
+
normalizeZ(points: ProjPointType<T>[]): ProjPointType<T>[];
|
|
80
|
+
}
|
|
81
|
+
export declare type CurvePointsType<T> = BasicWCurve<T> & {
|
|
82
|
+
fromBytes: (bytes: Uint8Array) => AffinePoint<T>;
|
|
83
|
+
toBytes: (c: ProjConstructor<T>, point: ProjPointType<T>, compressed: boolean) => Uint8Array;
|
|
84
|
+
};
|
|
85
|
+
export declare type CurvePointsRes<T> = {
|
|
86
|
+
ProjectivePoint: ProjConstructor<T>;
|
|
87
|
+
normPrivateKeyToScalar: (key: PrivKey) => bigint;
|
|
88
|
+
weierstrassEquation: (x: T) => T;
|
|
89
|
+
isWithinCurveOrder: (num: bigint) => boolean;
|
|
90
|
+
};
|
|
91
|
+
export declare const DER: {
|
|
92
|
+
Err: {
|
|
93
|
+
new (m?: string): {
|
|
94
|
+
name: string;
|
|
95
|
+
message: string;
|
|
96
|
+
stack?: string;
|
|
97
|
+
};
|
|
98
|
+
captureStackTrace(targetObject: object, constructorOpt?: Function): void;
|
|
99
|
+
prepareStackTrace?: (err: Error, stackTraces: NodeJS.CallSite[]) => any;
|
|
100
|
+
stackTraceLimit: number;
|
|
101
|
+
};
|
|
102
|
+
_parseInt(data: Uint8Array): {
|
|
103
|
+
d: bigint;
|
|
104
|
+
l: Uint8Array;
|
|
105
|
+
};
|
|
106
|
+
toSig(hex: string | Uint8Array): {
|
|
107
|
+
r: bigint;
|
|
108
|
+
s: bigint;
|
|
109
|
+
};
|
|
110
|
+
hexFromSig(sig: {
|
|
111
|
+
r: bigint;
|
|
112
|
+
s: bigint;
|
|
113
|
+
}): string;
|
|
114
|
+
};
|
|
115
|
+
export declare function weierstrassPoints<T>(opts: CurvePointsType<T>): {
|
|
116
|
+
ProjectivePoint: ProjConstructor<T>;
|
|
117
|
+
normPrivateKeyToScalar: (key: PrivKey) => bigint;
|
|
118
|
+
weierstrassEquation: (x: T) => T;
|
|
119
|
+
isWithinCurveOrder: (num: bigint) => boolean;
|
|
120
|
+
};
|
|
121
|
+
export interface SignatureType {
|
|
122
|
+
readonly r: bigint;
|
|
123
|
+
readonly s: bigint;
|
|
124
|
+
readonly recovery?: number;
|
|
125
|
+
assertValidity(): void;
|
|
126
|
+
addRecoveryBit(recovery: number): SignatureType;
|
|
127
|
+
hasHighS(): boolean;
|
|
128
|
+
normalizeS(): SignatureType;
|
|
129
|
+
recoverPublicKey(msgHash: Hex): ProjPointType<bigint>;
|
|
130
|
+
toCompactRawBytes(): Uint8Array;
|
|
131
|
+
toCompactHex(): string;
|
|
132
|
+
toDERRawBytes(isCompressed?: boolean): Uint8Array;
|
|
133
|
+
toDERHex(isCompressed?: boolean): string;
|
|
134
|
+
}
|
|
135
|
+
export declare type SignatureConstructor = {
|
|
136
|
+
new (r: bigint, s: bigint): SignatureType;
|
|
137
|
+
fromCompact(hex: Hex): SignatureType;
|
|
138
|
+
fromDER(hex: Hex): SignatureType;
|
|
139
|
+
};
|
|
140
|
+
declare type SignatureLike = {
|
|
141
|
+
r: bigint;
|
|
142
|
+
s: bigint;
|
|
143
|
+
};
|
|
144
|
+
export declare type PubKey = Hex | ProjPointType<bigint>;
|
|
145
|
+
export declare type CurveType = BasicWCurve<bigint> & {
|
|
146
|
+
hash: CHash;
|
|
147
|
+
hmac: HmacFnSync;
|
|
148
|
+
randomBytes: (bytesLength?: number) => Uint8Array;
|
|
149
|
+
lowS?: boolean;
|
|
150
|
+
bits2int?: (bytes: Uint8Array) => bigint;
|
|
151
|
+
bits2int_modN?: (bytes: Uint8Array) => bigint;
|
|
152
|
+
};
|
|
153
|
+
declare function validateOpts(curve: CurveType): Readonly<{
|
|
154
|
+
readonly nBitLength: number;
|
|
155
|
+
readonly nByteLength: number;
|
|
156
|
+
readonly Fp: mod.Field<bigint>;
|
|
157
|
+
readonly n: bigint;
|
|
158
|
+
readonly h: bigint;
|
|
159
|
+
readonly hEff?: bigint;
|
|
160
|
+
readonly Gx: bigint;
|
|
161
|
+
readonly Gy: bigint;
|
|
162
|
+
readonly allowInfinityPoint?: boolean;
|
|
163
|
+
readonly a: bigint;
|
|
164
|
+
readonly b: bigint;
|
|
165
|
+
readonly allowedPrivateKeyLengths?: readonly number[];
|
|
166
|
+
readonly wrapPrivateKey?: boolean;
|
|
167
|
+
readonly endo?: EndomorphismOpts;
|
|
168
|
+
readonly isTorsionFree?: (c: ProjConstructor<bigint>, point: ProjPointType<bigint>) => boolean;
|
|
169
|
+
readonly clearCofactor?: (c: ProjConstructor<bigint>, point: ProjPointType<bigint>) => ProjPointType<bigint>;
|
|
170
|
+
readonly hash: ut.CHash;
|
|
171
|
+
readonly hmac: HmacFnSync;
|
|
172
|
+
readonly randomBytes: (bytesLength?: number) => Uint8Array;
|
|
173
|
+
lowS: boolean;
|
|
174
|
+
readonly bits2int?: (bytes: Uint8Array) => bigint;
|
|
175
|
+
readonly bits2int_modN?: (bytes: Uint8Array) => bigint;
|
|
176
|
+
}>;
|
|
177
|
+
export declare type CurveFn = {
|
|
178
|
+
CURVE: ReturnType<typeof validateOpts>;
|
|
179
|
+
getPublicKey: (privateKey: PrivKey, isCompressed?: boolean) => Uint8Array;
|
|
180
|
+
getSharedSecret: (privateA: PrivKey, publicB: Hex, isCompressed?: boolean) => Uint8Array;
|
|
181
|
+
sign: (msgHash: Hex, privKey: PrivKey, opts?: SignOpts) => SignatureType;
|
|
182
|
+
verify: (signature: Hex | SignatureLike, msgHash: Hex, publicKey: Hex, opts?: VerOpts) => boolean;
|
|
183
|
+
ProjectivePoint: ProjConstructor<bigint>;
|
|
184
|
+
Signature: SignatureConstructor;
|
|
185
|
+
utils: {
|
|
186
|
+
normPrivateKeyToScalar: (key: PrivKey) => bigint;
|
|
187
|
+
isValidPrivateKey(privateKey: PrivKey): boolean;
|
|
188
|
+
randomPrivateKey: () => Uint8Array;
|
|
189
|
+
precompute: (windowSize?: number, point?: ProjPointType<bigint>) => ProjPointType<bigint>;
|
|
190
|
+
};
|
|
191
|
+
};
|
|
192
|
+
export declare function weierstrass(curveDef: CurveType): CurveFn;
|
|
193
|
+
export declare function SWUFpSqrtRatio<T>(Fp: mod.Field<T>, Z: T): (u: T, v: T) => {
|
|
194
|
+
isValid: boolean;
|
|
195
|
+
value: T;
|
|
196
|
+
};
|
|
197
|
+
export declare function mapToCurveSimpleSWU<T>(Fp: mod.Field<T>, opts: {
|
|
198
|
+
A: T;
|
|
199
|
+
B: T;
|
|
200
|
+
Z: T;
|
|
201
|
+
}): (u: T) => {
|
|
202
|
+
x: T;
|
|
203
|
+
y: T;
|
|
204
|
+
};
|