@primuslabs/por-client-sdk 0.1.0 → 0.1.2
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 +74 -40
- package/dist/cli.js +17 -3
- package/dist/cli.js.map +1 -1
- package/dist/client/data_service_client.d.ts +1 -0
- package/dist/client/data_service_client.js +1 -0
- package/dist/client/data_service_client.js.map +1 -1
- package/dist/client/por_client.d.ts +3 -3
- package/dist/client/por_client.js +16 -12
- package/dist/client/por_client.js.map +1 -1
- package/dist/client/prover_client.d.ts +12 -6
- package/dist/client/prover_client.js +15 -18
- package/dist/client/prover_client.js.map +1 -1
- package/dist/client/zktls_client.d.ts +3 -3
- package/dist/client/zktls_client.js +42 -25
- package/dist/client/zktls_client.js.map +1 -1
- package/dist/config_schema.d.ts +167 -0
- package/dist/config_schema.js +88 -0
- package/dist/config_schema.js.map +1 -0
- package/dist/datasource/aster.d.ts +24 -0
- package/dist/datasource/aster.js +51 -0
- package/dist/datasource/aster.js.map +1 -0
- package/dist/datasource/base_exchange.d.ts +9 -0
- package/dist/datasource/base_exchange.js +13 -0
- package/dist/datasource/base_exchange.js.map +1 -0
- package/dist/datasource/binance.d.ts +40 -13
- package/dist/datasource/binance.js +46 -39
- package/dist/datasource/binance.js.map +1 -1
- package/dist/datasource/exchange_manager.d.ts +15 -0
- package/dist/datasource/exchange_manager.js +20 -0
- package/dist/datasource/exchange_manager.js.map +1 -0
- package/dist/datasource/helper.d.ts +1 -0
- package/dist/datasource/helper.js +6 -0
- package/dist/datasource/helper.js.map +1 -1
- package/dist/datasource/index.d.ts +2 -0
- package/dist/datasource/index.js +2 -0
- package/dist/datasource/index.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +4 -2
- package/dist/types.js +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +6 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zktls_client.js","sourceRoot":"","sources":["../../src/client/zktls_client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAW,iBAAiB,
|
|
1
|
+
{"version":3,"file":"zktls_client.js","sourceRoot":"","sources":["../../src/client/zktls_client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export type Exchanges = "binance" | "aster";
|
|
3
|
+
declare const BinanceKindSchema: z.ZodEnum<{
|
|
4
|
+
spot: "spot";
|
|
5
|
+
"usds-futures": "usds-futures";
|
|
6
|
+
"coin-futures": "coin-futures";
|
|
7
|
+
unified: "unified";
|
|
8
|
+
}>;
|
|
9
|
+
declare const AsterKindSchema: z.ZodEnum<{
|
|
10
|
+
spot: "spot";
|
|
11
|
+
"usds-futures": "usds-futures";
|
|
12
|
+
}>;
|
|
13
|
+
export type AsterKind = z.infer<typeof AsterKindSchema>;
|
|
14
|
+
export type BinanceKind = z.infer<typeof BinanceKindSchema>;
|
|
15
|
+
export declare const BinanceAccountSchema: z.ZodObject<{
|
|
16
|
+
apiKey: z.ZodString;
|
|
17
|
+
apiSecret: z.ZodString;
|
|
18
|
+
enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
19
|
+
description: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
20
|
+
kind: z.ZodArray<z.ZodEnum<{
|
|
21
|
+
spot: "spot";
|
|
22
|
+
"usds-futures": "usds-futures";
|
|
23
|
+
"coin-futures": "coin-futures";
|
|
24
|
+
unified: "unified";
|
|
25
|
+
}>>;
|
|
26
|
+
}, z.core.$strip>;
|
|
27
|
+
export type BinanceAccount = z.infer<typeof BinanceAccountSchema>;
|
|
28
|
+
export declare const AsterAccountSchema: z.ZodObject<{
|
|
29
|
+
apiKey: z.ZodString;
|
|
30
|
+
apiSecret: z.ZodString;
|
|
31
|
+
enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
32
|
+
description: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
33
|
+
kind: z.ZodArray<z.ZodEnum<{
|
|
34
|
+
spot: "spot";
|
|
35
|
+
"usds-futures": "usds-futures";
|
|
36
|
+
}>>;
|
|
37
|
+
}, z.core.$strip>;
|
|
38
|
+
export type AsterAccount = z.infer<typeof AsterAccountSchema>;
|
|
39
|
+
declare const AppConfigSchema: z.ZodObject<{
|
|
40
|
+
identity: z.ZodObject<{
|
|
41
|
+
token: z.ZodString;
|
|
42
|
+
projectId: z.ZodString;
|
|
43
|
+
programId: z.ZodString;
|
|
44
|
+
}, z.core.$strip>;
|
|
45
|
+
runtime: z.ZodObject<{
|
|
46
|
+
version: z.ZodString;
|
|
47
|
+
env: z.ZodDefault<z.ZodEnum<{
|
|
48
|
+
development: "development";
|
|
49
|
+
production: "production";
|
|
50
|
+
}>>;
|
|
51
|
+
mode: z.ZodDefault<z.ZodEnum<{
|
|
52
|
+
POR: "POR";
|
|
53
|
+
DVC: "DVC";
|
|
54
|
+
}>>;
|
|
55
|
+
logVerbose: z.ZodDefault<z.ZodNumber>;
|
|
56
|
+
}, z.core.$strip>;
|
|
57
|
+
services: z.ZodObject<{
|
|
58
|
+
zkvm: z.ZodObject<{
|
|
59
|
+
url: z.ZodURL;
|
|
60
|
+
}, z.core.$strip>;
|
|
61
|
+
data: z.ZodObject<{
|
|
62
|
+
url: z.ZodURL;
|
|
63
|
+
}, z.core.$strip>;
|
|
64
|
+
}, z.core.$strip>;
|
|
65
|
+
blockchain: z.ZodObject<{
|
|
66
|
+
network: z.ZodDefault<z.ZodEnum<{
|
|
67
|
+
base: "base";
|
|
68
|
+
"base-sepolia": "base-sepolia";
|
|
69
|
+
}>>;
|
|
70
|
+
rpcUrl: z.ZodOptional<z.ZodURL>;
|
|
71
|
+
signer: z.ZodOptional<z.ZodObject<{
|
|
72
|
+
privateKey: z.ZodString;
|
|
73
|
+
}, z.core.$strip>>;
|
|
74
|
+
}, z.core.$strip>;
|
|
75
|
+
}, z.core.$strip>;
|
|
76
|
+
declare const ExchangesConfigSchema: z.ZodObject<{
|
|
77
|
+
binance: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
78
|
+
apiKey: z.ZodString;
|
|
79
|
+
apiSecret: z.ZodString;
|
|
80
|
+
enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
81
|
+
description: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
82
|
+
kind: z.ZodArray<z.ZodEnum<{
|
|
83
|
+
spot: "spot";
|
|
84
|
+
"usds-futures": "usds-futures";
|
|
85
|
+
"coin-futures": "coin-futures";
|
|
86
|
+
unified: "unified";
|
|
87
|
+
}>>;
|
|
88
|
+
}, z.core.$strip>>>;
|
|
89
|
+
aster: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
90
|
+
apiKey: z.ZodString;
|
|
91
|
+
apiSecret: z.ZodString;
|
|
92
|
+
enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
93
|
+
description: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
94
|
+
kind: z.ZodArray<z.ZodEnum<{
|
|
95
|
+
spot: "spot";
|
|
96
|
+
"usds-futures": "usds-futures";
|
|
97
|
+
}>>;
|
|
98
|
+
}, z.core.$strip>>>;
|
|
99
|
+
}, z.core.$strict>;
|
|
100
|
+
declare const ConfigSchema: z.ZodObject<{
|
|
101
|
+
app: z.ZodObject<{
|
|
102
|
+
identity: z.ZodObject<{
|
|
103
|
+
token: z.ZodString;
|
|
104
|
+
projectId: z.ZodString;
|
|
105
|
+
programId: z.ZodString;
|
|
106
|
+
}, z.core.$strip>;
|
|
107
|
+
runtime: z.ZodObject<{
|
|
108
|
+
version: z.ZodString;
|
|
109
|
+
env: z.ZodDefault<z.ZodEnum<{
|
|
110
|
+
development: "development";
|
|
111
|
+
production: "production";
|
|
112
|
+
}>>;
|
|
113
|
+
mode: z.ZodDefault<z.ZodEnum<{
|
|
114
|
+
POR: "POR";
|
|
115
|
+
DVC: "DVC";
|
|
116
|
+
}>>;
|
|
117
|
+
logVerbose: z.ZodDefault<z.ZodNumber>;
|
|
118
|
+
}, z.core.$strip>;
|
|
119
|
+
services: z.ZodObject<{
|
|
120
|
+
zkvm: z.ZodObject<{
|
|
121
|
+
url: z.ZodURL;
|
|
122
|
+
}, z.core.$strip>;
|
|
123
|
+
data: z.ZodObject<{
|
|
124
|
+
url: z.ZodURL;
|
|
125
|
+
}, z.core.$strip>;
|
|
126
|
+
}, z.core.$strip>;
|
|
127
|
+
blockchain: z.ZodObject<{
|
|
128
|
+
network: z.ZodDefault<z.ZodEnum<{
|
|
129
|
+
base: "base";
|
|
130
|
+
"base-sepolia": "base-sepolia";
|
|
131
|
+
}>>;
|
|
132
|
+
rpcUrl: z.ZodOptional<z.ZodURL>;
|
|
133
|
+
signer: z.ZodOptional<z.ZodObject<{
|
|
134
|
+
privateKey: z.ZodString;
|
|
135
|
+
}, z.core.$strip>>;
|
|
136
|
+
}, z.core.$strip>;
|
|
137
|
+
}, z.core.$strip>;
|
|
138
|
+
exchanges: z.ZodObject<{
|
|
139
|
+
binance: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
140
|
+
apiKey: z.ZodString;
|
|
141
|
+
apiSecret: z.ZodString;
|
|
142
|
+
enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
143
|
+
description: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
144
|
+
kind: z.ZodArray<z.ZodEnum<{
|
|
145
|
+
spot: "spot";
|
|
146
|
+
"usds-futures": "usds-futures";
|
|
147
|
+
"coin-futures": "coin-futures";
|
|
148
|
+
unified: "unified";
|
|
149
|
+
}>>;
|
|
150
|
+
}, z.core.$strip>>>;
|
|
151
|
+
aster: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
152
|
+
apiKey: z.ZodString;
|
|
153
|
+
apiSecret: z.ZodString;
|
|
154
|
+
enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
155
|
+
description: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
156
|
+
kind: z.ZodArray<z.ZodEnum<{
|
|
157
|
+
spot: "spot";
|
|
158
|
+
"usds-futures": "usds-futures";
|
|
159
|
+
}>>;
|
|
160
|
+
}, z.core.$strip>>>;
|
|
161
|
+
}, z.core.$strict>;
|
|
162
|
+
}, z.core.$strip>;
|
|
163
|
+
export type AppConfig = z.infer<typeof AppConfigSchema>;
|
|
164
|
+
export type ExchangesConfig = z.infer<typeof ExchangesConfigSchema>;
|
|
165
|
+
export type Config = z.infer<typeof ConfigSchema>;
|
|
166
|
+
export declare function loadConfigFromFile(filePath?: string): Config;
|
|
167
|
+
export {};
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
import yaml from "js-yaml";
|
|
5
|
+
const BinanceKindSchema = z.enum(["spot", "usds-futures", "coin-futures", "unified"]);
|
|
6
|
+
const AsterKindSchema = z.enum(["spot", "usds-futures"]);
|
|
7
|
+
const BaseAccountSchema = z.object({
|
|
8
|
+
apiKey: z.string().min(1),
|
|
9
|
+
apiSecret: z.string().min(1),
|
|
10
|
+
enabled: z.boolean().optional().default(true),
|
|
11
|
+
description: z.string().optional().default(""),
|
|
12
|
+
});
|
|
13
|
+
const AccountSchema = (kind) => BaseAccountSchema.extend({
|
|
14
|
+
kind: z.array(kind).min(1).refine(arr => new Set(arr).size === arr.length, { message: "kind must be unique" }),
|
|
15
|
+
});
|
|
16
|
+
export const BinanceAccountSchema = AccountSchema(BinanceKindSchema);
|
|
17
|
+
export const AsterAccountSchema = AccountSchema(AsterKindSchema);
|
|
18
|
+
const AppIdentitySchema = z.object({
|
|
19
|
+
token: z.string().min(1),
|
|
20
|
+
projectId: z.string().min(1),
|
|
21
|
+
programId: z.string().min(1),
|
|
22
|
+
});
|
|
23
|
+
const AppRuntimeSchema = z.object({
|
|
24
|
+
version: z.string().regex(/^\d+\.\d+\.\d+$/),
|
|
25
|
+
env: z.enum(["development", "production"]).default("production"),
|
|
26
|
+
mode: z.enum(["POR", "DVC"]).default("POR"),
|
|
27
|
+
logVerbose: z.number().int().min(0).max(5).default(0),
|
|
28
|
+
});
|
|
29
|
+
const ZkvmServiceSchema = z.object({
|
|
30
|
+
url: z.url(),
|
|
31
|
+
});
|
|
32
|
+
const DataServiceSchema = z.object({
|
|
33
|
+
url: z.url(),
|
|
34
|
+
});
|
|
35
|
+
const AppServicesSchema = z.object({
|
|
36
|
+
zkvm: ZkvmServiceSchema,
|
|
37
|
+
data: DataServiceSchema,
|
|
38
|
+
});
|
|
39
|
+
const BlockchainSignerSchema = z.object({
|
|
40
|
+
privateKey: z.string(),
|
|
41
|
+
});
|
|
42
|
+
const BlockchainSchema = z.object({
|
|
43
|
+
network: z.enum(["base", "base-sepolia"]).default("base"),
|
|
44
|
+
rpcUrl: z.url().optional(),
|
|
45
|
+
signer: BlockchainSignerSchema.optional(),
|
|
46
|
+
});
|
|
47
|
+
const AppConfigSchema = z.object({
|
|
48
|
+
identity: AppIdentitySchema,
|
|
49
|
+
runtime: AppRuntimeSchema,
|
|
50
|
+
services: AppServicesSchema,
|
|
51
|
+
blockchain: BlockchainSchema,
|
|
52
|
+
});
|
|
53
|
+
const ExchangesConfigSchema = z.object({
|
|
54
|
+
binance: z.array(BinanceAccountSchema).optional(),
|
|
55
|
+
aster: z.array(AsterAccountSchema).optional(),
|
|
56
|
+
}).strict().refine((data) => (data.binance?.length ?? 0) > 0 || (data.aster?.length ?? 0) > 0, {
|
|
57
|
+
message: "At least one exchange account of [binance,aster] must be configured",
|
|
58
|
+
path: ["exchanges"],
|
|
59
|
+
});
|
|
60
|
+
const ConfigSchema = z.object({
|
|
61
|
+
app: AppConfigSchema,
|
|
62
|
+
exchanges: ExchangesConfigSchema,
|
|
63
|
+
}).refine((data) => {
|
|
64
|
+
if (data.app.runtime.mode === "DVC" && !data.app.blockchain.signer) {
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
return true;
|
|
68
|
+
}, {
|
|
69
|
+
message: "signer is required when mode is DVC",
|
|
70
|
+
path: ["app", "blockchain", "signer"],
|
|
71
|
+
});
|
|
72
|
+
export function loadConfigFromFile(filePath = ".config.yml") {
|
|
73
|
+
const absolutePath = path.resolve(filePath);
|
|
74
|
+
if (!fs.existsSync(absolutePath)) {
|
|
75
|
+
throw new Error(`Config file not found: ${absolutePath}`);
|
|
76
|
+
}
|
|
77
|
+
const raw = fs.readFileSync(absolutePath, "utf-8");
|
|
78
|
+
let parsed;
|
|
79
|
+
try {
|
|
80
|
+
parsed = yaml.load(raw);
|
|
81
|
+
}
|
|
82
|
+
catch (err) {
|
|
83
|
+
throw new Error(`Failed to parse JSON config: ${err.message}`);
|
|
84
|
+
}
|
|
85
|
+
const config = ConfigSchema.parse(parsed);
|
|
86
|
+
return config;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=config_schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config_schema.js","sourceRoot":"","sources":["../src/config_schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { VERIFY_TYPE, RequestParamsOutput } from "../types.js";
|
|
2
|
+
import { AsterKind, AsterAccount, ExchangesConfig } from "../config_schema.js";
|
|
3
|
+
import { BaseExchange } from "./base_exchange.js";
|
|
4
|
+
export declare class Aster extends BaseExchange<AsterAccount, AsterKind> {
|
|
5
|
+
constructor(accounts?: ExchangesConfig["aster"]);
|
|
6
|
+
get hasSpot(): boolean;
|
|
7
|
+
get hasUsdSFutures(): boolean;
|
|
8
|
+
get spotAccounts(): {
|
|
9
|
+
apiKey: string;
|
|
10
|
+
apiSecret: string;
|
|
11
|
+
enabled: boolean;
|
|
12
|
+
description: string;
|
|
13
|
+
kind: ("spot" | "usds-futures")[];
|
|
14
|
+
}[];
|
|
15
|
+
get usdSFuturesAccounts(): {
|
|
16
|
+
apiKey: string;
|
|
17
|
+
apiSecret: string;
|
|
18
|
+
enabled: boolean;
|
|
19
|
+
description: string;
|
|
20
|
+
kind: ("spot" | "usds-futures")[];
|
|
21
|
+
}[];
|
|
22
|
+
getSpotAccountRequests(verifyType?: VERIFY_TYPE): RequestParamsOutput;
|
|
23
|
+
getUsdSFutureBalanceRequests(verifyType?: VERIFY_TYPE): RequestParamsOutput;
|
|
24
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { makeHashComparisonParams, signQuery } from "./helper.js";
|
|
2
|
+
import { BaseExchange } from "./base_exchange.js";
|
|
3
|
+
// TODO: make as utility
|
|
4
|
+
function makerAsterOrigRequests(url, accounts, params = {}) {
|
|
5
|
+
const recvWindow = 60; // Number(process.env.RECV_WINDOW) || 60;
|
|
6
|
+
let signParams = { ...params, recvWindow: recvWindow * 1000 };
|
|
7
|
+
let origRequests = [];
|
|
8
|
+
for (const acc of accounts) {
|
|
9
|
+
const timestamp = Date.now();
|
|
10
|
+
const query = signQuery(acc.apiSecret, { ...signParams, timestamp });
|
|
11
|
+
const origRequest = {
|
|
12
|
+
url: `${url}?${query}`,
|
|
13
|
+
headers: { "X-MBX-APIKEY": acc.apiKey }
|
|
14
|
+
};
|
|
15
|
+
origRequests.push(origRequest);
|
|
16
|
+
}
|
|
17
|
+
return origRequests;
|
|
18
|
+
}
|
|
19
|
+
export class Aster extends BaseExchange {
|
|
20
|
+
constructor(accounts) {
|
|
21
|
+
super(accounts);
|
|
22
|
+
}
|
|
23
|
+
get hasSpot() { return this.spotAccounts.length > 0; }
|
|
24
|
+
get hasUsdSFutures() { return this.usdSFuturesAccounts.length > 0; }
|
|
25
|
+
get spotAccounts() { return this.getAccounts("spot"); }
|
|
26
|
+
get usdSFuturesAccounts() { return this.getAccounts("usds-futures"); }
|
|
27
|
+
///
|
|
28
|
+
/// =======================================================================
|
|
29
|
+
///
|
|
30
|
+
/// TODO: more general interfaces
|
|
31
|
+
/// a map for any api
|
|
32
|
+
/// doc: https://github.com/asterdex/api-docs/blob/master/aster-finance-spot-api.md#account-information-user_data
|
|
33
|
+
/// api: https://sapi.asterdex.com/api/v1/account
|
|
34
|
+
getSpotAccountRequests(verifyType = 'HASH_COMPARISON') {
|
|
35
|
+
if (!this.hasSpot)
|
|
36
|
+
return undefined;
|
|
37
|
+
const url = "https://sapi.asterdex.com/api/v1/account";
|
|
38
|
+
const origRequests = makerAsterOrigRequests(url, this.spotAccounts);
|
|
39
|
+
return makeHashComparisonParams(origRequests, verifyType);
|
|
40
|
+
}
|
|
41
|
+
/// doc: https://github.com/asterdex/api-docs/blob/master/aster-finance-futures-api.md#futures-account-balance-v2-user_data
|
|
42
|
+
/// api: https://fapi.asterdex.com/fapi/v2/balance
|
|
43
|
+
getUsdSFutureBalanceRequests(verifyType = 'HASH_COMPARISON') {
|
|
44
|
+
if (!this.hasUsdSFutures)
|
|
45
|
+
return undefined;
|
|
46
|
+
const url = "https://fapi.asterdex.com/fapi/v2/balance";
|
|
47
|
+
const origRequests = makerAsterOrigRequests(url, this.usdSFuturesAccounts);
|
|
48
|
+
return makeHashComparisonParams(origRequests, verifyType);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=aster.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aster.js","sourceRoot":"","sources":["../../src/datasource/aster.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGlE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,wBAAwB;AACxB,SAAS,sBAAsB,CAAC,GAAW,EAAE,QAAwB,EAAE,MAAM,GAAG,EAAE;IAChF,MAAM,UAAU,GAAG,EAAE,CAAC,CAAC,yCAAyC;IAChE,IAAI,UAAU,GAAG,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,EAAE,CAAC;IAE9D,IAAI,YAAY,GAAG,EAAE,CAAA;IACrB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,GAAG,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;QAErE,MAAM,WAAW,GAAG;YAClB,GAAG,EAAE,GAAG,GAAG,IAAI,KAAK,EAAE;YACtB,OAAO,EAAE,EAAE,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE;SACxC,CAAC;QAEF,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAGD,MAAM,OAAO,KAAM,SAAQ,YAAqC;IAC9D,YAAY,QAAmC;QAC7C,KAAK,CAAC,QAAQ,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,OAAO,KAAK,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IACtD,IAAI,cAAc,KAAK,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IACpE,IAAI,YAAY,KAAK,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACvD,IAAI,mBAAmB,KAAK,OAAO,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAEtE,GAAG;IACH,2EAA2E;IAC3E,GAAG;IAEH,iCAAiC;IACjC,2BAA2B;IAE3B,iHAAiH;IACjH,iDAAiD;IAC1C,sBAAsB,CAAC,aAA0B,iBAAiB;QACvE,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAEpC,MAAM,GAAG,GAAG,0CAA0C,CAAC;QACvD,MAAM,YAAY,GAAG,sBAAsB,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACpE,OAAO,wBAAwB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAC5D,CAAC;IAED,2HAA2H;IAC3H,kDAAkD;IAC3C,4BAA4B,CAAC,aAA0B,iBAAiB;QAC7E,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO,SAAS,CAAC;QAE3C,MAAM,GAAG,GAAG,2CAA2C,CAAC;QACxD,MAAM,YAAY,GAAG,sBAAsB,CAAC,GAAG,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC3E,OAAO,wBAAwB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAC5D,CAAC;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare abstract class BaseExchange<T extends {
|
|
2
|
+
kind: readonly K[];
|
|
3
|
+
enabled?: boolean;
|
|
4
|
+
}, K extends string> {
|
|
5
|
+
protected readonly accounts: readonly T[];
|
|
6
|
+
protected readonly recvWindow: number;
|
|
7
|
+
constructor(accounts?: readonly T[]);
|
|
8
|
+
protected getAccounts(kind?: K): T[];
|
|
9
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export class BaseExchange {
|
|
2
|
+
accounts;
|
|
3
|
+
recvWindow = 60;
|
|
4
|
+
constructor(accounts) {
|
|
5
|
+
this.accounts = (accounts ?? []).filter(acc => acc.enabled ?? true); // only enabled account
|
|
6
|
+
}
|
|
7
|
+
getAccounts(kind) {
|
|
8
|
+
if (!kind)
|
|
9
|
+
return [...this.accounts];
|
|
10
|
+
return this.accounts.filter(acc => acc.kind.includes(kind));
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=base_exchange.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base_exchange.js","sourceRoot":"","sources":["../../src/datasource/base_exchange.ts"],"names":[],"mappings":"AAAA,MAAM,OAAgB,YAAY;IAIb,QAAQ,CAAe;IACvB,UAAU,GAAW,EAAE,CAAC;IAE3C,YAAY,QAAuB;QACjC,IAAI,CAAC,QAAQ,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,uBAAuB;IAC9F,CAAC;IAES,WAAW,CAAC,IAAQ;QAC5B,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,CAAC;CACF"}
|
|
@@ -1,14 +1,41 @@
|
|
|
1
|
-
import { VERIFY_TYPE,
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
1
|
+
import { VERIFY_TYPE, RequestParamsOutput } from "../types.js";
|
|
2
|
+
import { BinanceKind, BinanceAccount, ExchangesConfig } from "../config_schema.js";
|
|
3
|
+
import { BaseExchange } from "./base_exchange.js";
|
|
4
|
+
export declare class Binance extends BaseExchange<BinanceAccount, BinanceKind> {
|
|
5
|
+
constructor(accounts?: ExchangesConfig["binance"]);
|
|
6
|
+
get hasSpot(): boolean;
|
|
7
|
+
get hasUsdSFutures(): boolean;
|
|
8
|
+
get hasCoinFutures(): boolean;
|
|
9
|
+
get hasUnified(): boolean;
|
|
10
|
+
get spotAccounts(): {
|
|
11
|
+
apiKey: string;
|
|
12
|
+
apiSecret: string;
|
|
13
|
+
enabled: boolean;
|
|
14
|
+
description: string;
|
|
15
|
+
kind: ("spot" | "usds-futures" | "coin-futures" | "unified")[];
|
|
16
|
+
}[];
|
|
17
|
+
get usdSFuturesAccounts(): {
|
|
18
|
+
apiKey: string;
|
|
19
|
+
apiSecret: string;
|
|
20
|
+
enabled: boolean;
|
|
21
|
+
description: string;
|
|
22
|
+
kind: ("spot" | "usds-futures" | "coin-futures" | "unified")[];
|
|
23
|
+
}[];
|
|
24
|
+
get coinFuturesAccounts(): {
|
|
25
|
+
apiKey: string;
|
|
26
|
+
apiSecret: string;
|
|
27
|
+
enabled: boolean;
|
|
28
|
+
description: string;
|
|
29
|
+
kind: ("spot" | "usds-futures" | "coin-futures" | "unified")[];
|
|
30
|
+
}[];
|
|
31
|
+
get unifiedAccounts(): {
|
|
32
|
+
apiKey: string;
|
|
33
|
+
apiSecret: string;
|
|
34
|
+
enabled: boolean;
|
|
35
|
+
description: string;
|
|
36
|
+
kind: ("spot" | "usds-futures" | "coin-futures" | "unified")[];
|
|
37
|
+
}[];
|
|
38
|
+
getSpotAccountInfoRequests(verifyType?: VERIFY_TYPE): RequestParamsOutput;
|
|
39
|
+
getUsdSFutureAccountBalanceV3Requests(verifyType?: VERIFY_TYPE): RequestParamsOutput;
|
|
40
|
+
getUnifiedAccountBalanceRequests(verifyType?: VERIFY_TYPE): RequestParamsOutput;
|
|
14
41
|
}
|
|
@@ -1,55 +1,62 @@
|
|
|
1
1
|
import ccxt from "ccxt";
|
|
2
2
|
import { makeHashComparisonParams } from "./helper.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
this.recvWindow = Number(process.env.BINANCE_RECV_WINDOW || 60) * 1000;
|
|
8
|
-
this.accounts = this.loadAccounts();
|
|
3
|
+
import { BaseExchange } from "./base_exchange.js";
|
|
4
|
+
export class Binance extends BaseExchange {
|
|
5
|
+
constructor(accounts) {
|
|
6
|
+
super(accounts);
|
|
9
7
|
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
8
|
+
get hasSpot() { return this.spotAccounts.length > 0; }
|
|
9
|
+
get hasUsdSFutures() { return this.usdSFuturesAccounts.length > 0; }
|
|
10
|
+
get hasCoinFutures() { return this.coinFuturesAccounts.length > 0; }
|
|
11
|
+
get hasUnified() { return this.unifiedAccounts.length > 0; }
|
|
12
|
+
get spotAccounts() { return this.getAccounts("spot"); }
|
|
13
|
+
get usdSFuturesAccounts() { return this.getAccounts("usds-futures"); }
|
|
14
|
+
get coinFuturesAccounts() { return this.getAccounts("coin-futures"); }
|
|
15
|
+
get unifiedAccounts() { return this.getAccounts("unified"); }
|
|
16
|
+
///
|
|
17
|
+
/// =======================================================================
|
|
18
|
+
///
|
|
19
|
+
/// TODO: more general interfaces
|
|
20
|
+
/// a map for any api
|
|
21
|
+
/// doc: https://developers.binance.com/docs/binance-spot-api-docs/rest-api/account-endpoints#account-information-user_data
|
|
22
|
+
/// api: https://api.binance.com/api/v3/account
|
|
23
|
+
getSpotAccountInfoRequests(verifyType = 'HASH_COMPARISON') {
|
|
24
|
+
if (!this.hasSpot)
|
|
25
|
+
return undefined;
|
|
26
|
+
const signParams = { recvWindow: this.recvWindow };
|
|
27
|
+
const origRequests = [];
|
|
28
|
+
for (const acc of this.spotAccounts) {
|
|
29
|
+
const exchange = new ccxt.binance({ apiKey: acc.apiKey, secret: acc.apiSecret });
|
|
30
|
+
origRequests.push(exchange.sign("account", "private", "GET", { ...signParams, omitZeroBalances: true }));
|
|
29
31
|
}
|
|
30
|
-
return
|
|
32
|
+
return makeHashComparisonParams(origRequests, verifyType);
|
|
31
33
|
}
|
|
32
|
-
|
|
34
|
+
/// doc: https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Futures-Account-Balance-V3
|
|
35
|
+
/// api: https://fapi.binance.com/fapi/v3/balance
|
|
36
|
+
getUsdSFutureAccountBalanceV3Requests(verifyType = 'HASH_COMPARISON') {
|
|
37
|
+
if (!this.hasUsdSFutures)
|
|
38
|
+
return undefined;
|
|
33
39
|
const signParams = { recvWindow: this.recvWindow };
|
|
34
40
|
const origRequests = [];
|
|
35
|
-
for (const acc of this.
|
|
36
|
-
const exchange = new ccxt.binance({ apiKey: acc.
|
|
37
|
-
origRequests.push(exchange.sign("
|
|
38
|
-
origRequests.push(exchange.sign("balance", "papi", "GET", signParams));
|
|
41
|
+
for (const acc of this.usdSFuturesAccounts) {
|
|
42
|
+
const exchange = new ccxt.binance({ apiKey: acc.apiKey, secret: acc.apiSecret });
|
|
43
|
+
origRequests.push(exchange.sign("balance", "fapiPrivateV3", "GET", { ...signParams }));
|
|
39
44
|
}
|
|
40
45
|
return makeHashComparisonParams(origRequests, verifyType);
|
|
41
46
|
}
|
|
42
|
-
|
|
43
|
-
|
|
47
|
+
/// doc: https://developers.binance.com/docs/derivatives/portfolio-margin/account
|
|
48
|
+
/// api: https://papi.binance.com/papi/v1/balance
|
|
49
|
+
getUnifiedAccountBalanceRequests(verifyType = 'HASH_COMPARISON') {
|
|
50
|
+
if (!this.hasUnified)
|
|
51
|
+
return undefined;
|
|
44
52
|
const signParams = { recvWindow: this.recvWindow };
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
53
|
+
const origRequests = [];
|
|
54
|
+
for (const acc of this.unifiedAccounts) {
|
|
55
|
+
const exchange = new ccxt.binance({ apiKey: acc.apiKey, secret: acc.apiSecret });
|
|
56
|
+
origRequests.push(exchange.sign("um/positionRisk", "papi", "GET", signParams));
|
|
57
|
+
origRequests.push(exchange.sign("balance", "papi", "GET", { ...signParams }));
|
|
48
58
|
}
|
|
49
59
|
return makeHashComparisonParams(origRequests, verifyType);
|
|
50
60
|
}
|
|
51
|
-
getAccounts() {
|
|
52
|
-
return this.accounts;
|
|
53
|
-
}
|
|
54
61
|
}
|
|
55
62
|
//# sourceMappingURL=binance.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binance.js","sourceRoot":"","sources":["../../src/datasource/binance.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"binance.js","sourceRoot":"","sources":["../../src/datasource/binance.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ExchangesConfig } from "../config_schema.js";
|
|
2
|
+
import { Binance } from "./binance.js";
|
|
3
|
+
import { Aster } from "./aster.js";
|
|
4
|
+
/**
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* const manager = new ExchangeManager(exchange_config);
|
|
8
|
+
* manager.aster?.hasSpot; // boolean
|
|
9
|
+
* manager.binance?.usdSFuturesAccounts; // BinanceAccount[]
|
|
10
|
+
*/
|
|
11
|
+
export declare class ExchangeManager {
|
|
12
|
+
readonly binance?: Binance;
|
|
13
|
+
readonly aster?: Aster;
|
|
14
|
+
constructor(config: ExchangesConfig);
|
|
15
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Binance } from "./binance.js";
|
|
2
|
+
import { Aster } from "./aster.js";
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
* Usage:
|
|
6
|
+
* const manager = new ExchangeManager(exchange_config);
|
|
7
|
+
* manager.aster?.hasSpot; // boolean
|
|
8
|
+
* manager.binance?.usdSFuturesAccounts; // BinanceAccount[]
|
|
9
|
+
*/
|
|
10
|
+
export class ExchangeManager {
|
|
11
|
+
binance;
|
|
12
|
+
aster;
|
|
13
|
+
constructor(config) {
|
|
14
|
+
if (config.binance)
|
|
15
|
+
this.binance = new Binance(config.binance);
|
|
16
|
+
if (config.aster)
|
|
17
|
+
this.aster = new Aster(config.aster);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=exchange_manager.js.map
|