@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.
Files changed (43) hide show
  1. package/README.md +74 -40
  2. package/dist/cli.js +17 -3
  3. package/dist/cli.js.map +1 -1
  4. package/dist/client/data_service_client.d.ts +1 -0
  5. package/dist/client/data_service_client.js +1 -0
  6. package/dist/client/data_service_client.js.map +1 -1
  7. package/dist/client/por_client.d.ts +3 -3
  8. package/dist/client/por_client.js +16 -12
  9. package/dist/client/por_client.js.map +1 -1
  10. package/dist/client/prover_client.d.ts +12 -6
  11. package/dist/client/prover_client.js +15 -18
  12. package/dist/client/prover_client.js.map +1 -1
  13. package/dist/client/zktls_client.d.ts +3 -3
  14. package/dist/client/zktls_client.js +42 -25
  15. package/dist/client/zktls_client.js.map +1 -1
  16. package/dist/config_schema.d.ts +167 -0
  17. package/dist/config_schema.js +88 -0
  18. package/dist/config_schema.js.map +1 -0
  19. package/dist/datasource/aster.d.ts +24 -0
  20. package/dist/datasource/aster.js +51 -0
  21. package/dist/datasource/aster.js.map +1 -0
  22. package/dist/datasource/base_exchange.d.ts +9 -0
  23. package/dist/datasource/base_exchange.js +13 -0
  24. package/dist/datasource/base_exchange.js.map +1 -0
  25. package/dist/datasource/binance.d.ts +40 -13
  26. package/dist/datasource/binance.js +46 -39
  27. package/dist/datasource/binance.js.map +1 -1
  28. package/dist/datasource/exchange_manager.d.ts +15 -0
  29. package/dist/datasource/exchange_manager.js +20 -0
  30. package/dist/datasource/exchange_manager.js.map +1 -0
  31. package/dist/datasource/helper.d.ts +1 -0
  32. package/dist/datasource/helper.js +6 -0
  33. package/dist/datasource/helper.js.map +1 -1
  34. package/dist/datasource/index.d.ts +2 -0
  35. package/dist/datasource/index.js +2 -0
  36. package/dist/datasource/index.js.map +1 -1
  37. package/dist/index.d.ts +1 -0
  38. package/dist/index.js +1 -0
  39. package/dist/index.js.map +1 -1
  40. package/dist/types.d.ts +4 -2
  41. package/dist/types.js +1 -1
  42. package/dist/types.js.map +1 -1
  43. package/package.json +6 -3
@@ -1 +1 @@
1
- {"version":3,"file":"zktls_client.js","sourceRoot":"","sources":["../../src/client/zktls_client.ts"],"names":[],"mappings":"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"}
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, RequestParams } from "../types.js";
2
- export interface BinanceAccount {
3
- key: string;
4
- secret: string;
5
- }
6
- export declare class Binance {
7
- private accounts;
8
- private readonly recvWindow;
9
- constructor();
10
- private loadAccounts;
11
- getUnifiedAccountRequests(verifyType?: VERIFY_TYPE): RequestParams;
12
- getSpotAccountRequests(verifyType?: VERIFY_TYPE): RequestParams;
13
- getAccounts(): BinanceAccount[];
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
- export class Binance {
4
- accounts;
5
- recvWindow;
6
- constructor() {
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
- loadAccounts() {
11
- const accounts = [];
12
- const _add = (key, secret) => {
13
- if (key && secret)
14
- accounts.push({ key, secret });
15
- };
16
- _add(process.env.BINANCE_API_KEY, process.env.BINANCE_API_SECRET);
17
- for (let i = 1; i <= 100; i++) {
18
- _add(process.env[`BINANCE_API_KEY${i}`], process.env[`BINANCE_API_SECRET${i}`]);
19
- }
20
- if (accounts.length === 0) {
21
- throw new Error("Please configure at least one set of BINANCE_API_KEY{i} / BINANCE_API_SECRET{i} in .env.");
22
- }
23
- const seen = new Set();
24
- for (const acc of accounts) {
25
- const key = `${acc.key}${acc.secret}`;
26
- if (seen.has(key))
27
- throw new Error("Duplicate BINANCE_API_KEY{i} detected");
28
- seen.add(key);
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 accounts;
32
+ return makeHashComparisonParams(origRequests, verifyType);
31
33
  }
32
- getUnifiedAccountRequests(verifyType = 'HASH_COMPARISON') {
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.accounts) {
36
- const exchange = new ccxt.binance({ apiKey: acc.key, secret: acc.secret });
37
- origRequests.push(exchange.sign("um/positionRisk", "papi", "GET", signParams));
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
- getSpotAccountRequests(verifyType = 'HASH_COMPARISON') {
43
- const origRequests = [];
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
- for (const acc of this.accounts) {
46
- const exchange = new ccxt.binance({ apiKey: acc.key, secret: acc.secret });
47
- origRequests.push(exchange.sign("account", "private", "GET", { ...signParams, omitZeroBalances: true }));
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":"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"}
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