@yuants/vendor-turboflow 1.1.0 → 1.2.0

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 (51) hide show
  1. package/.rush/temp/chunked-rush-logs/vendor-turboflow.build.chunks.jsonl +6 -6
  2. package/.rush/temp/operation/build/all.log +6 -6
  3. package/.rush/temp/operation/build/log-chunks.jsonl +6 -6
  4. package/.rush/temp/operation/build/state.json +1 -1
  5. package/.rush/temp/shrinkwrap-deps.json +1 -1
  6. package/CHANGELOG.json +37 -0
  7. package/CHANGELOG.md +13 -1
  8. package/README.md +134 -0
  9. package/lib/api/private-api.d.ts +2 -2
  10. package/lib/api/private-api.d.ts.map +1 -1
  11. package/lib/api/private-api.js +12 -15
  12. package/lib/api/private-api.js.map +1 -1
  13. package/lib/index.d.ts +2 -0
  14. package/lib/index.d.ts.map +1 -1
  15. package/lib/index.js +4 -0
  16. package/lib/index.js.map +1 -1
  17. package/lib/services/account-actions-with-credential.d.ts +2 -0
  18. package/lib/services/account-actions-with-credential.d.ts.map +1 -0
  19. package/lib/services/account-actions-with-credential.js +60 -0
  20. package/lib/services/account-actions-with-credential.js.map +1 -0
  21. package/lib/services/order-actions-with-credential.d.ts +2 -0
  22. package/lib/services/order-actions-with-credential.d.ts.map +1 -0
  23. package/lib/services/order-actions-with-credential.js +25 -0
  24. package/lib/services/order-actions-with-credential.js.map +1 -0
  25. package/lib/services/orders/cancelOrder.d.ts +4 -0
  26. package/lib/services/orders/cancelOrder.d.ts.map +1 -0
  27. package/lib/services/orders/cancelOrder.js +42 -0
  28. package/lib/services/orders/cancelOrder.js.map +1 -0
  29. package/lib/services/orders/listOrders.d.ts +7 -0
  30. package/lib/services/orders/listOrders.d.ts.map +1 -0
  31. package/lib/services/orders/listOrders.js +78 -0
  32. package/lib/services/orders/listOrders.js.map +1 -0
  33. package/lib/services/orders/modifyOrder.d.ts +4 -0
  34. package/lib/services/orders/modifyOrder.d.ts.map +1 -0
  35. package/lib/services/orders/modifyOrder.js +46 -0
  36. package/lib/services/orders/modifyOrder.js.map +1 -0
  37. package/lib/services/orders/submitOrder.d.ts +6 -0
  38. package/lib/services/orders/submitOrder.d.ts.map +1 -0
  39. package/lib/services/orders/submitOrder.js +61 -0
  40. package/lib/services/orders/submitOrder.js.map +1 -0
  41. package/package.json +5 -3
  42. package/rush-logs/vendor-turboflow.build.log +6 -6
  43. package/src/api/private-api.ts +25 -18
  44. package/src/index.ts +3 -0
  45. package/src/services/account-actions-with-credential.ts +76 -0
  46. package/src/services/order-actions-with-credential.ts +30 -0
  47. package/src/services/orders/cancelOrder.ts +43 -0
  48. package/src/services/orders/listOrders.ts +84 -0
  49. package/src/services/orders/modifyOrder.ts +46 -0
  50. package/src/services/orders/submitOrder.ts +63 -0
  51. package/temp/package-deps.json +17 -8
@@ -9,15 +9,15 @@
9
9
  {"kind":"O","text":" ---- Pre-compile finished (0ms) ---- \n"}
10
10
  {"kind":"O","text":" ---- Compile started ---- \n"}
11
11
  {"kind":"O","text":"[typescript] Using TypeScript version 4.7.4\n"}
12
- {"kind":"O","text":" ---- Compile finished (3767ms) ---- \n"}
12
+ {"kind":"O","text":" ---- Compile finished (3001ms) ---- \n"}
13
13
  {"kind":"O","text":" ---- Bundle started ---- \n"}
14
- {"kind":"O","text":" ---- Bundle finished (1ms) ---- \n"}
14
+ {"kind":"O","text":" ---- Bundle finished (2ms) ---- \n"}
15
15
  {"kind":"O","text":" ---- Post-build started ---- \n"}
16
16
  {"kind":"O","text":" ---- Post-build finished (0ms) ---- \n"}
17
17
  {"kind":"O","text":" ---- Test started ---- \n"}
18
- {"kind":"O","text":" ---- Test finished (1ms) ---- \n"}
19
- {"kind":"O","text":"-------------------- Finished (4.142s) --------------------\n"}
20
- {"kind":"O","text":"Project: @yuants/vendor-turboflow@1.1.0\n"}
18
+ {"kind":"O","text":" ---- Test finished (2ms) ---- \n"}
19
+ {"kind":"O","text":"-------------------- Finished (3.313s) --------------------\n"}
20
+ {"kind":"O","text":"Project: @yuants/vendor-turboflow@1.2.0\n"}
21
21
  {"kind":"O","text":"Heft version: 0.47.11\n"}
22
22
  {"kind":"O","text":"Node version: v22.14.0\n"}
23
- {"kind":"O","text":"2025-11-24T12:01:48.890Z no Dockerfile found, skip building docker image\n"}
23
+ {"kind":"O","text":"2025-11-25T11:54:42.712Z no Dockerfile found, skip building docker image\n"}
@@ -9,15 +9,15 @@ Starting test
9
9
  ---- Pre-compile finished (0ms) ----
10
10
  ---- Compile started ----
11
11
  [typescript] Using TypeScript version 4.7.4
12
- ---- Compile finished (3767ms) ----
12
+ ---- Compile finished (3001ms) ----
13
13
  ---- Bundle started ----
14
- ---- Bundle finished (1ms) ----
14
+ ---- Bundle finished (2ms) ----
15
15
  ---- Post-build started ----
16
16
  ---- Post-build finished (0ms) ----
17
17
  ---- Test started ----
18
- ---- Test finished (1ms) ----
19
- -------------------- Finished (4.142s) --------------------
20
- Project: @yuants/vendor-turboflow@1.1.0
18
+ ---- Test finished (2ms) ----
19
+ -------------------- Finished (3.313s) --------------------
20
+ Project: @yuants/vendor-turboflow@1.2.0
21
21
  Heft version: 0.47.11
22
22
  Node version: v22.14.0
23
- 2025-11-24T12:01:48.890Z no Dockerfile found, skip building docker image
23
+ 2025-11-25T11:54:42.712Z no Dockerfile found, skip building docker image
@@ -9,15 +9,15 @@
9
9
  {"kind":"O","text":" ---- Pre-compile finished (0ms) ---- \n"}
10
10
  {"kind":"O","text":" ---- Compile started ---- \n"}
11
11
  {"kind":"O","text":"[typescript] Using TypeScript version 4.7.4\n"}
12
- {"kind":"O","text":" ---- Compile finished (3767ms) ---- \n"}
12
+ {"kind":"O","text":" ---- Compile finished (3001ms) ---- \n"}
13
13
  {"kind":"O","text":" ---- Bundle started ---- \n"}
14
- {"kind":"O","text":" ---- Bundle finished (1ms) ---- \n"}
14
+ {"kind":"O","text":" ---- Bundle finished (2ms) ---- \n"}
15
15
  {"kind":"O","text":" ---- Post-build started ---- \n"}
16
16
  {"kind":"O","text":" ---- Post-build finished (0ms) ---- \n"}
17
17
  {"kind":"O","text":" ---- Test started ---- \n"}
18
- {"kind":"O","text":" ---- Test finished (1ms) ---- \n"}
19
- {"kind":"O","text":"-------------------- Finished (4.142s) --------------------\n"}
20
- {"kind":"O","text":"Project: @yuants/vendor-turboflow@1.1.0\n"}
18
+ {"kind":"O","text":" ---- Test finished (2ms) ---- \n"}
19
+ {"kind":"O","text":"-------------------- Finished (3.313s) --------------------\n"}
20
+ {"kind":"O","text":"Project: @yuants/vendor-turboflow@1.2.0\n"}
21
21
  {"kind":"O","text":"Heft version: 0.47.11\n"}
22
22
  {"kind":"O","text":"Node version: v22.14.0\n"}
23
- {"kind":"O","text":"2025-11-24T12:01:48.890Z no Dockerfile found, skip building docker image\n"}
23
+ {"kind":"O","text":"2025-11-25T11:54:42.712Z no Dockerfile found, skip building docker image\n"}
@@ -1,3 +1,3 @@
1
1
  {
2
- "nonCachedDurationMs": 5675.623949000001
2
+ "nonCachedDurationMs": 4859.224072
3
3
  }
@@ -1,5 +1,5 @@
1
1
  {
2
- "../../apps/vendor-turboflow": "../../apps/vendor-turboflow:UYuzw3mo4rSRWj24oWOgT4CO7jNqFTv20Aq/dbsgW9Q=:",
2
+ "../../apps/vendor-turboflow": "../../apps/vendor-turboflow:T86fyux3S3EQvD5Lnyd0lT389JKxuKPyH95d7oXembU=:",
3
3
  "/@aashutoshrathi/word-wrap/1.2.6": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==",
4
4
  "/@ampproject/remapping/2.2.1": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
5
5
  "/@babel/code-frame/7.22.13": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
package/CHANGELOG.json CHANGED
@@ -1,6 +1,43 @@
1
1
  {
2
2
  "name": "@yuants/vendor-turboflow",
3
3
  "entries": [
4
+ {
5
+ "version": "1.2.0",
6
+ "tag": "@yuants/vendor-turboflow_v1.2.0",
7
+ "date": "Tue, 25 Nov 2025 11:53:28 GMT",
8
+ "comments": {
9
+ "minor": [
10
+ {
11
+ "comment": "fix account actions"
12
+ }
13
+ ],
14
+ "none": [
15
+ {
16
+ "comment": "Bump Version"
17
+ }
18
+ ]
19
+ }
20
+ },
21
+ {
22
+ "version": "1.1.1",
23
+ "tag": "@yuants/vendor-turboflow_v1.1.1",
24
+ "date": "Tue, 25 Nov 2025 07:08:44 GMT",
25
+ "comments": {
26
+ "none": [
27
+ {
28
+ "comment": "Bump Version"
29
+ }
30
+ ],
31
+ "dependency": [
32
+ {
33
+ "comment": "Updating dependency \"@yuants/protocol\" to `0.53.0`"
34
+ },
35
+ {
36
+ "comment": "Updating dependency \"@yuants/utils\" to `0.13.0`"
37
+ }
38
+ ]
39
+ }
40
+ },
4
41
  {
5
42
  "version": "1.1.0",
6
43
  "tag": "@yuants/vendor-turboflow_v1.1.0",
package/CHANGELOG.md CHANGED
@@ -1,6 +1,18 @@
1
1
  # Change Log - @yuants/vendor-turboflow
2
2
 
3
- This log was last generated on Mon, 24 Nov 2025 11:58:37 GMT and should not be manually modified.
3
+ This log was last generated on Tue, 25 Nov 2025 11:53:28 GMT and should not be manually modified.
4
+
5
+ ## 1.2.0
6
+ Tue, 25 Nov 2025 11:53:28 GMT
7
+
8
+ ### Minor changes
9
+
10
+ - fix account actions
11
+
12
+ ## 1.1.1
13
+ Tue, 25 Nov 2025 07:08:44 GMT
14
+
15
+ _Version update only_
4
16
 
5
17
  ## 1.1.0
6
18
  Mon, 24 Nov 2025 11:58:37 GMT
package/README.md ADDED
@@ -0,0 +1,134 @@
1
+ # @yuants/vendor-turboflow
2
+
3
+ TurboFlow DEX vendor integration for Yuan trading system.
4
+
5
+ ## Overview
6
+
7
+ This package provides integration with TurboFlow DEX, implementing both account and order management services with credential-based authentication.
8
+
9
+ ## Features
10
+
11
+ - **Account Actions**: List accounts and retrieve account information including positions
12
+ - **Order Actions**: Submit, cancel, modify, and list orders
13
+ - **Credential-based Authentication**: Uses ED25519 private key for secure API access
14
+
15
+ ## Credentials
16
+
17
+ The TurboFlow vendor requires the following credential:
18
+
19
+ ```json
20
+ {
21
+ "private_key": "base58-encoded-ed25519-private-key"
22
+ }
23
+ ```
24
+
25
+ ## Account Actions
26
+
27
+ ### List Accounts
28
+
29
+ Lists all accounts associated with the credential.
30
+
31
+ **Returns**: Array of account objects with `account_id` in the format `turboflow/{account_id}`
32
+
33
+ ### Get Account Info
34
+
35
+ Retrieves detailed account information including:
36
+
37
+ - Asset balances
38
+ - Open positions with:
39
+ - Position ID
40
+ - Product ID (PERPETUAL market)
41
+ - Direction (LONG/SHORT)
42
+ - Volume and free volume
43
+ - Position price and closable price
44
+ - Floating profit
45
+ - Valuation and margin
46
+ - Additional metadata (pool_id, leverage, margin_type, etc.)
47
+
48
+ ## Order Actions
49
+
50
+ ### Submit Order
51
+
52
+ Submits a new order to TurboFlow.
53
+
54
+ **Parameters**:
55
+
56
+ - `order`: IOrder object containing:
57
+ - `product_id`: Product identifier
58
+ - `order_type`: LIMIT or MARKET
59
+ - `order_direction`: OPEN_LONG, CLOSE_SHORT, OPEN_SHORT, or CLOSE_LONG
60
+ - `volume`: Order size
61
+ - `price`: Order price (for limit orders)
62
+ - `comment`: JSON string with additional parameters (pool_id, coin_code, leverage, etc.)
63
+
64
+ **Returns**: Object with `order_id`
65
+
66
+ ### Cancel Order
67
+
68
+ Cancels an existing order.
69
+
70
+ **Parameters**:
71
+
72
+ - `order`: IOrder object with `order_id` and `product_id`
73
+
74
+ ### Modify Order
75
+
76
+ Modifies an existing order (position-based).
77
+
78
+ **Parameters**:
79
+
80
+ - `order`: IOrder object with:
81
+ - `order_id`
82
+ - `price`: New price
83
+ - `volume`: New volume
84
+ - `comment`: JSON string with `position_id` and optional `tp_order`/`sl_order`
85
+
86
+ ### List Orders
87
+
88
+ Lists all pending orders for an account.
89
+
90
+ **Returns**: Array of IOrder objects
91
+
92
+ ## Order Direction Mapping
93
+
94
+ TurboFlow uses numeric order_way values:
95
+
96
+ - `1`: Open Long (开多)
97
+ - `2`: Close Short (平空)
98
+ - `3`: Open Short (开空)
99
+ - `4`: Close Long (平多)
100
+
101
+ ## Usage
102
+
103
+ The vendor is automatically registered when the package is imported:
104
+
105
+ ```typescript
106
+ import '@yuants/vendor-turboflow';
107
+ ```
108
+
109
+ The services will be available through the Yuan terminal with datasource ID `TURBOFLOW`.
110
+
111
+ ## API Documentation
112
+
113
+ For detailed API documentation, refer to `TurboFlow_API_Key_认证接口文档.txt` in the `src/api` directory.
114
+
115
+ ## Development
116
+
117
+ ### Build
118
+
119
+ ```bash
120
+ rushx build
121
+ ```
122
+
123
+ ### Run
124
+
125
+ ```bash
126
+ rushx dev
127
+ ```
128
+
129
+ ## Dependencies
130
+
131
+ - `@yuants/data-account`: Account data management
132
+ - `@yuants/data-order`: Order data management
133
+ - `@yuants/protocol`: Yuan protocol definitions
134
+ - `@yuants/utils`: Utility functions including ED25519 signing
@@ -4,7 +4,7 @@ export interface ICredential {
4
4
  */
5
5
  private_key: string;
6
6
  }
7
- export declare const privateRequest: (credential: ICredential, method: string, path: string, params: any) => Promise<any>;
7
+ export declare const privateRequest: (credential: ICredential, method: string, path: string, params?: any) => Promise<any>;
8
8
  export declare const createPrivateApi: <T, K>(method: string, path: string) => (credential: ICredential, params: T) => Promise<K>;
9
9
  /**
10
10
  * 获取账户信息
@@ -355,7 +355,7 @@ export declare const getPositionList: (credential: ICredential, params: {
355
355
  page_num: number;
356
356
  count: number;
357
357
  page_count: number;
358
- data: Array<{
358
+ data?: Array<{
359
359
  id: string;
360
360
  pool_id: number;
361
361
  pair_id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"private-api.d.ts","sourceRoot":"","sources":["../../src/api/private-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"private-api.d.ts","sourceRoot":"","sources":["../../src/api/private-api.ts"],"names":[],"mappings":"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"}
@@ -3,16 +3,24 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getPairShareFees = exports.getTradingConfigs = exports.getCollateralList = exports.getDecimalConfig = exports.getKline = exports.getPairPrice = exports.getPositionHistory = exports.getPositionList = exports.getCashTradeList = exports.getTradeList = exports.getOrderList = exports.getOrderConfigs = exports.simulateTransferMargin = exports.transferMargin = exports.quickOrder = exports.cancelOrder = exports.remendOrder = exports.submitOrder = exports.getAccountAssets = exports.getAccountInfo = exports.createPrivateApi = exports.privateRequest = void 0;
4
4
  const utils_1 = require("@yuants/utils");
5
5
  const BASE_URL = 'https://surfv2-api.surf.one';
6
- const privateRequest = async (credential, method, path, params) => {
6
+ const privateRequest = async (credential, method, path, params = {}) => {
7
7
  const url = new URL(BASE_URL);
8
8
  url.pathname = path;
9
+ if (method === 'GET') {
10
+ for (const [key, value] of Object.entries(params)) {
11
+ url.searchParams.set(key, `${value}`);
12
+ }
13
+ }
9
14
  const publicKey = (0, utils_1.fromPrivateKey)(credential.private_key).public_key;
10
15
  const publicKeyBinary = (0, utils_1.decodeBase58)(publicKey);
11
16
  const publicKeyHex = Buffer.from(publicKeyBinary).toString('hex');
12
17
  const privateKeyBinary = (0, utils_1.decodeBase58)(credential.private_key);
13
18
  const headers = {};
14
19
  const timestamp = Math.floor(Date.now() / 1000).toString();
15
- const data = `method=${method}&path=${path}&timestamp=${timestamp}&access-key=${publicKeyHex}`;
20
+ // 除了 host 之外的所有内容
21
+ const _path = url.pathname + url.search;
22
+ const data = `method=${method}&path=${_path}&timestamp=${timestamp}&access-key=${publicKeyHex}` +
23
+ (method === 'POST' ? `&body=${JSON.stringify(params)}` : '');
16
24
  const hashData = await (0, utils_1.HmacSHA256)(new TextEncoder().encode(data), publicKeyBinary);
17
25
  const signature = (0, utils_1.signMessageByEd25519)(hashData, privateKeyBinary);
18
26
  const signatureHex = Buffer.from(signature).toString('hex');
@@ -20,25 +28,14 @@ const privateRequest = async (credential, method, path, params) => {
20
28
  headers['TIMESTAMP'] = timestamp;
21
29
  headers['SIGN'] = signatureHex;
22
30
  headers['LANG'] = 'zh-cn';
23
- console.info(url.toString(), headers);
24
- if (method === 'GET') {
25
- for (const [key, value] of Object.entries(params)) {
26
- url.searchParams.set(key, `${value}`);
27
- }
28
- }
29
31
  const response = await fetch(url.toString(), {
30
32
  method,
31
33
  headers,
32
34
  body: method === 'POST' ? JSON.stringify(params) : undefined,
33
35
  });
34
36
  const text = await response.text();
35
- try {
36
- const res = JSON.parse(text);
37
- return res;
38
- }
39
- catch (e) {
40
- throw `APIError: ${response.status} ${response.statusText} ${text}`;
41
- }
37
+ console.info(url.toString(), headers, text);
38
+ return (0, utils_1.scopeError)('TurboAPIError', { status: response.status, statusText: response.statusText, text }, () => JSON.parse(text));
42
39
  };
43
40
  exports.privateRequest = privateRequest;
44
41
  const createPrivateApi = (method, path) => (credential, params) => (0, exports.privateRequest)(credential, method, path, params);
@@ -1 +1 @@
1
- {"version":3,"file":"private-api.js","sourceRoot":"","sources":["../../src/api/private-api.ts"],"names":[],"mappings":"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","sourcesContent":["import { decodeBase58, fromPrivateKey, HmacSHA256, signMessageByEd25519 } from '@yuants/utils';\n\nexport interface ICredential {\n /**\n * ED25519 Private KEY (base58)\n */\n private_key: string;\n}\n\nconst BASE_URL = 'https://surfv2-api.surf.one';\n\nexport const privateRequest = async (credential: ICredential, method: string, path: string, params: any) => {\n const url = new URL(BASE_URL);\n url.pathname = path;\n\n const publicKey = fromPrivateKey(credential.private_key).public_key;\n const publicKeyBinary = decodeBase58(publicKey);\n const publicKeyHex = Buffer.from(publicKeyBinary).toString('hex');\n\n const privateKeyBinary = decodeBase58(credential.private_key);\n\n const headers: Record<string, string> = {};\n\n const timestamp = Math.floor(Date.now() / 1000).toString();\n\n const data = `method=${method}&path=${path}&timestamp=${timestamp}&access-key=${publicKeyHex}`;\n const hashData = await HmacSHA256(new TextEncoder().encode(data), publicKeyBinary);\n\n const signature = signMessageByEd25519(hashData, privateKeyBinary);\n const signatureHex = Buffer.from(signature).toString('hex');\n\n headers['API-KEY'] = publicKeyHex;\n headers['TIMESTAMP'] = timestamp;\n headers['SIGN'] = signatureHex;\n headers['LANG'] = 'zh-cn';\n\n console.info(url.toString(), headers);\n\n if (method === 'GET') {\n for (const [key, value] of Object.entries(params)) {\n url.searchParams.set(key, `${value}`);\n }\n }\n\n const response = await fetch(url.toString(), {\n method,\n headers,\n body: method === 'POST' ? JSON.stringify(params) : undefined,\n });\n\n const text = await response.text();\n\n try {\n const res = JSON.parse(text);\n return res;\n } catch (e) {\n throw `APIError: ${response.status} ${response.statusText} ${text}`;\n }\n};\n\nexport const createPrivateApi =\n <T, K>(method: string, path: string) =>\n (credential: ICredential, params: T): Promise<K> =>\n privateRequest(credential, method, path, params);\n\n/**\n * 获取账户信息\n */\nexport const getAccountInfo = createPrivateApi<\n void,\n {\n errno: string;\n msg: string;\n data: {\n account_id: string;\n referral_code: string;\n email: string;\n sign_up_type: string;\n address: string;\n user_name: string;\n agr_state: boolean;\n new_user_guide: boolean;\n can_survey: boolean;\n is_referrer: boolean;\n rebate_agent_level: number;\n is_rebate_admin: boolean;\n is_rebate_login: boolean;\n x_related: {\n nick_name: string;\n profile_url: string;\n };\n svm_account: string;\n svm_approve_hash: string;\n svm_approve_state: boolean;\n svm_approve_stage: number;\n voucher_pro_state: boolean;\n stock_code: string;\n };\n }\n>('GET', '/account/info');\n\n/**\n * 获取账户资产\n */\nexport const getAccountAssets = createPrivateApi<\n { fill_coin_sub_info?: string },\n {\n errno: number;\n msg: string;\n data: {\n list: Array<{\n coin_address: string;\n coin_code: string;\n available_balance: string;\n freeze_balance: string;\n max_withdraw_amount: string;\n simulation_balance: string;\n un_pnl: string;\n wd_frz: string;\n internal_wd_freeze: string;\n cro_un_pnl: string;\n isol_un_pnl: string;\n isol_frz: string;\n coin_name: string;\n coin_sub_info?: {\n price: string;\n logo: string;\n };\n type: number;\n }>;\n };\n }\n>('GET', '/account/assets');\n\n/**\n * 提交订单\n */\nexport const submitOrder = createPrivateApi<\n {\n request_id: number;\n pair_id: string;\n pool_id: number;\n coin_code: string;\n order_type: 'limit' | 'market' | 'stop_limit' | 'stop_market';\n order_way: 1 | 2 | 3 | 4; // 1:开多 2:平空 3:开空 4:平多\n margin_type: 1 | 2; // 1:逐仓 2:全仓\n leverage: number;\n size: string; // 交易数量\n position_mode: 1 | 2 | 3; // 1:单向 2:双向 3:原子\n time_in_force: 'GTC' | 'IOC' | 'FOK';\n fee_mode: 1 | 2; // 1:固定 2:利润分层\n order_mode: 1 | 2; // 1:普通 2:条件\n price?: string; // 限价单价格\n position_id?: string; // 平仓时需要\n },\n {\n errno: string;\n msg: string;\n data: {\n request_id: string;\n account_id: string;\n order: {\n id: string;\n pool_id: number;\n pair_id: string;\n order_type: string;\n order_status: string;\n };\n };\n }\n>('POST', '/account/order/submit');\n\n/**\n * 修改订单\n */\nexport const remendOrder = createPrivateApi<\n {\n position_id: string;\n price?: string;\n vol?: string;\n tp_order?: {\n order_type: string;\n close_pos: boolean;\n stop_price: string;\n };\n sl_order?: {\n order_type: string;\n close_pos: boolean;\n stop_price: string;\n };\n },\n {\n errno: string;\n msg: string;\n data: {\n request_id: string;\n account_id: string;\n };\n }\n>('POST', '/account/order/remend');\n\n/**\n * 取消订单\n */\nexport const cancelOrder = createPrivateApi<\n {\n pair_id: string;\n order_id: string;\n pool_id: number;\n },\n {\n errno: string;\n msg: string;\n data: any;\n }\n>('POST', '/account/order/cancel');\n\n/**\n * 快速订单 (反向)\n */\nexport const quickOrder = createPrivateApi<\n {\n position_id: string;\n quick_type: 'Reverse';\n },\n {\n errno: string;\n msg: string;\n data: any;\n }\n>('POST', '/account/order/quick');\n\n/**\n * 保证金转账\n */\nexport const transferMargin = createPrivateApi<\n {\n margin: string;\n position_id: string;\n },\n {\n errno: string;\n msg: string;\n data: any;\n }\n>('POST', '/account/order/transfer');\n\n/**\n * 模拟保证金转账\n */\nexport const simulateTransferMargin = createPrivateApi<\n {\n position_id: string;\n margin: string;\n },\n {\n errno: string;\n msg: string;\n data: {\n max_add_margin: string;\n min_remove_margin: string;\n liq_price: string;\n leverage: string;\n };\n }\n>('GET', '/account/order/transfer/simulate');\n\n/**\n * 获取交易配置\n */\nexport const getOrderConfigs = createPrivateApi<\n void,\n {\n errno: string;\n msg: string;\n data: {\n max_add_margin: string;\n min_remove_margin: string;\n };\n }\n>('GET', '/account/order/configs');\n\n/**\n * 获取订单列表\n */\nexport const getOrderList = createPrivateApi<\n {\n page_num?: number;\n page_size?: number;\n status?: string; // All, Pending, Filled, Cancelled, Rejected\n },\n {\n errno: string;\n msg: string;\n data: {\n page_size: number;\n page_num: number;\n count: number;\n page_count: number;\n data: Array<{\n id: string;\n pool_id: number;\n pair_id: string;\n coin_code: string;\n coin_name: string;\n price: string;\n size: string;\n vol: string;\n leverage: string;\n order_type: string;\n order_way: number;\n margin_type: number;\n dual_side: boolean;\n fee_mode: number;\n pos_mode: number;\n done_vol: string;\n deal_price: string;\n done_amount: string;\n done_size: string;\n done_pnl: string;\n biz_code: number;\n order_status: string;\n view_type: string;\n position_id: string;\n close_pos: boolean;\n tp_price: string;\n sl_price: string;\n stop_price: string;\n updated_at: string;\n created_at: string;\n }>;\n };\n }\n>('GET', '/account/order/list');\n\n/**\n * 获取交易列表\n */\nexport const getTradeList = createPrivateApi<\n {\n page_num?: number;\n page_size?: number;\n },\n {\n errno: string;\n msg: string;\n data: {\n page_size: number;\n page_num: number;\n count: number;\n page_count: number;\n data: Array<{\n id: string;\n pool_id: number;\n pair_id: string;\n symbol: string;\n pair_logo: string;\n coin_code: string;\n coin_name: string;\n coin_logo: string;\n account_id: string;\n leverage: string;\n fee_mode: number;\n order_way: number;\n order_mode: number;\n view_type: string;\n entry_price: string;\n maker_coin: string;\n maker_coin_name: string;\n maker_coin_logo: string;\n done_price: string;\n done_vol: string;\n done_vol_usd: string;\n done_amount: string;\n done_size: string;\n share_pnl: string;\n done_pnl: string;\n done_pnl_usd: string;\n done_fee: string;\n funding_fee: string;\n coin_price: string;\n fee_saved_usd: string;\n liq_price: string;\n created_at: string;\n margin_type: number;\n order_price: string;\n roe: string;\n x_related: {\n nick_name: string;\n profile_url: string;\n };\n }>;\n };\n }\n>('GET', '/account/trade/list');\n\n/**\n * 获取交易现金列表\n */\nexport const getCashTradeList = createPrivateApi<\n {\n page_num?: number;\n page_size?: number;\n },\n {\n errno: string;\n msg: string;\n data: {\n page_size: number;\n page_num: number;\n count: number;\n page_count: number;\n data: Array<{\n id: string;\n pool_id: number;\n pair_id: string;\n order_way: number;\n order_mode: number;\n symbol: string;\n pair_logo: string;\n share_rate: string;\n pair_profit_size: string;\n margin_type: number;\n volume: string;\n size: string;\n leverage: string;\n collateral_coin: string;\n entry_price: string;\n done_pnl: string;\n share_pnl: string;\n fee_mode: number;\n account_id: string;\n action: number;\n coin_code: string;\n coin_name: string;\n coin_logo: string;\n coin_price: string;\n amount: string;\n available_balance: string;\n created_at: string;\n }>;\n };\n }\n>('GET', '/account/trade/cash/list');\n\n/**\n * 获取持仓列表\n */\nexport const getPositionList = createPrivateApi<\n {\n status?: 'Holding' | 'Closed';\n page_num?: number;\n page_size?: number;\n },\n {\n errno: string;\n msg: string;\n data: {\n page_size: number;\n page_num: number;\n count: number;\n page_count: number;\n data: Array<{\n id: string;\n pool_id: number;\n pair_id: string;\n symbol: string;\n pair_logo: string;\n coin_code: string;\n coin_name: string;\n coin_logo: string;\n side: number;\n hold_size: string;\n hold_av: string;\n fee_mode: number;\n margin_type: number;\n im: string;\n mm: string;\n em: string;\n dual_side: boolean;\n pos_mode: number;\n leverage: string;\n liq_price: string;\n tp_price: string;\n tp_size: string;\n sl_price: string;\n sl_size: string;\n unpnl: string;\n realize_pnl: string;\n acc_ff: string;\n status: number;\n updated_at: string;\n created_at: string;\n account_id: string;\n base_fee_rate: string;\n rate_multi: string;\n rate_exp: string;\n pos_multi: string;\n pnl_base_rate: string;\n max_order_size: string;\n max_slippage: string;\n buffer_rate: string;\n price_factor: string;\n hair_cut: string;\n cross_leverage?: string;\n cross_mm?: string;\n cross_unpnl?: string;\n cross_coin_unpnl?: string;\n cross_health?: string;\n frozen_vol?: string;\n isolated_available?: string;\n cross_available?: string;\n cross_risk_im?: string;\n cross_risk_mm?: string;\n cross_equity?: string;\n }>;\n };\n }\n>('GET', '/account/position/list');\n\n/**\n * 获取仓位历史\n */\nexport const getPositionHistory = createPrivateApi<\n {\n page_num?: number;\n page_size?: number;\n },\n {\n errno: string;\n msg: string;\n data: {\n page_size: number;\n page_num: number;\n count: number;\n page_count: number;\n data: Array<{\n id: string;\n pool_id: number;\n pair_id: string;\n symbol: string;\n pair_logo: string;\n coin_code: string;\n coin_name: string;\n coin_logo: string;\n account_id: string;\n side: number;\n fee_mode: number;\n margin_type: number;\n pos_mode: number;\n leverage: string;\n im: string;\n status: number;\n realize_pnl: string;\n realize_pnl_usd: string;\n roe: string;\n entry_price: string;\n open_max_size: string;\n exit_price: string;\n closed_size: string;\n closed_at: string;\n created_at: string;\n maker_coin: string;\n maker_coin_name: string;\n maker_coin_logo: string;\n maker_coin_pnl: string;\n }>;\n };\n }\n>('GET', '/account/position/history');\n\n/**\n * 获取交易对价格\n */\nexport const getPairPrice = createPrivateApi<\n {\n spot_token_key: string;\n },\n {\n errno: string;\n msg: string;\n data: {\n price: string;\n tm: number;\n };\n }\n>('GET', '/market/pair/price');\n\n/**\n * 获取K线数据\n */\nexport const getKline = createPrivateApi<\n {\n spot_token_key: string;\n granularity: string;\n limit?: number;\n end_time?: number;\n },\n {\n errno: string;\n msg: string;\n data: Array<{\n t: number;\n o: string;\n h: string;\n l: string;\n c: string;\n g: string;\n }>;\n }\n>('GET', '/market/kline');\n\n/**\n * 获取交易对小数配置\n */\nexport const getDecimalConfig = createPrivateApi<\n void,\n {\n errno: string;\n msg: string;\n data: Array<{\n coin_code: string;\n balance_decimal: number;\n price_decimal: number;\n coin_name: string;\n }>;\n }\n>('GET', '/market/pair/decimal/config');\n\n/**\n * 获取抵押品列表\n */\nexport const getCollateralList = createPrivateApi<\n {\n pair_id: number;\n },\n {\n errno: string;\n msg: string;\n data: Array<{\n id: number;\n pool_id: number;\n coin_code: string;\n coin_name: string;\n collateral_logo: string;\n balance: string;\n hair_cut: string;\n trade_pair_count: number;\n max_hold_volume: string;\n trader_max_hold_volume: string;\n }>;\n }\n>('GET', '/pool/collateral/list');\n\n/**\n * 获取交易配置 (Public)\n */\nexport const getTradingConfigs = createPrivateApi<\n void,\n {\n errno: string;\n msg: string;\n data: {\n liquidate_configs: any;\n isolated_configs: any;\n cross_configs: Array<{\n imr: string;\n mmr: string;\n min_size: string;\n max_size: string;\n }>;\n is_shareprofit_active: boolean;\n shareprofit_configs: {\n start_time: string;\n end_time: string;\n pair_configs: Array<{\n pair_id: number;\n threshold: string;\n default_threshold: string;\n }>;\n };\n };\n }\n>('GET', '/public/trading/configs');\n\n/**\n * 获取交易对分享费用 (Public)\n */\nexport const getPairShareFees = createPrivateApi<\n {\n pair_id: string;\n order_way: number;\n price: string;\n vol: string;\n leverage: number;\n },\n {\n errno: string;\n msg: string;\n data: {\n list: Array<{\n price: string;\n roi: string;\n unpnl: string;\n share_pnl: string;\n fee_rate: string;\n }>;\n };\n }\n>('GET', '/public/pair/share/fees');\n"]}
1
+ {"version":3,"file":"private-api.js","sourceRoot":"","sources":["../../src/api/private-api.ts"],"names":[],"mappings":"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","sourcesContent":["import { decodeBase58, fromPrivateKey, HmacSHA256, scopeError, signMessageByEd25519 } from '@yuants/utils';\n\nexport interface ICredential {\n /**\n * ED25519 Private KEY (base58)\n */\n private_key: string;\n}\n\nconst BASE_URL = 'https://surfv2-api.surf.one';\n\nexport const privateRequest = async (\n credential: ICredential,\n method: string,\n path: string,\n params: any = {},\n) => {\n const url = new URL(BASE_URL);\n url.pathname = path;\n\n if (method === 'GET') {\n for (const [key, value] of Object.entries(params)) {\n url.searchParams.set(key, `${value}`);\n }\n }\n\n const publicKey = fromPrivateKey(credential.private_key).public_key;\n const publicKeyBinary = decodeBase58(publicKey);\n const publicKeyHex = Buffer.from(publicKeyBinary).toString('hex');\n\n const privateKeyBinary = decodeBase58(credential.private_key);\n\n const headers: Record<string, string> = {};\n\n const timestamp = Math.floor(Date.now() / 1000).toString();\n\n // 除了 host 之外的所有内容\n const _path = url.pathname + url.search;\n\n const data =\n `method=${method}&path=${_path}&timestamp=${timestamp}&access-key=${publicKeyHex}` +\n (method === 'POST' ? `&body=${JSON.stringify(params)}` : '');\n const hashData = await HmacSHA256(new TextEncoder().encode(data), publicKeyBinary);\n\n const signature = signMessageByEd25519(hashData, privateKeyBinary);\n const signatureHex = Buffer.from(signature).toString('hex');\n\n headers['API-KEY'] = publicKeyHex;\n headers['TIMESTAMP'] = timestamp;\n headers['SIGN'] = signatureHex;\n headers['LANG'] = 'zh-cn';\n\n const response = await fetch(url.toString(), {\n method,\n headers,\n body: method === 'POST' ? JSON.stringify(params) : undefined,\n });\n\n const text = await response.text();\n\n console.info(url.toString(), headers, text);\n\n return scopeError('TurboAPIError', { status: response.status, statusText: response.statusText, text }, () =>\n JSON.parse(text),\n );\n};\n\nexport const createPrivateApi =\n <T, K>(method: string, path: string) =>\n (credential: ICredential, params: T): Promise<K> =>\n privateRequest(credential, method, path, params);\n\n/**\n * 获取账户信息\n */\nexport const getAccountInfo = createPrivateApi<\n void,\n {\n errno: string;\n msg: string;\n data: {\n account_id: string;\n referral_code: string;\n email: string;\n sign_up_type: string;\n address: string;\n user_name: string;\n agr_state: boolean;\n new_user_guide: boolean;\n can_survey: boolean;\n is_referrer: boolean;\n rebate_agent_level: number;\n is_rebate_admin: boolean;\n is_rebate_login: boolean;\n x_related: {\n nick_name: string;\n profile_url: string;\n };\n svm_account: string;\n svm_approve_hash: string;\n svm_approve_state: boolean;\n svm_approve_stage: number;\n voucher_pro_state: boolean;\n stock_code: string;\n };\n }\n>('GET', '/account/info');\n\n/**\n * 获取账户资产\n */\nexport const getAccountAssets = createPrivateApi<\n { fill_coin_sub_info?: string },\n {\n errno: number;\n msg: string;\n data: {\n list: Array<{\n coin_address: string;\n coin_code: string;\n available_balance: string;\n freeze_balance: string;\n max_withdraw_amount: string;\n simulation_balance: string;\n un_pnl: string;\n wd_frz: string;\n internal_wd_freeze: string;\n cro_un_pnl: string;\n isol_un_pnl: string;\n isol_frz: string;\n coin_name: string;\n coin_sub_info?: {\n price: string;\n logo: string;\n };\n type: number;\n }>;\n };\n }\n>('GET', '/account/assets');\n\n/**\n * 提交订单\n */\nexport const submitOrder = createPrivateApi<\n {\n request_id: number;\n pair_id: string;\n pool_id: number;\n coin_code: string;\n order_type: 'limit' | 'market' | 'stop_limit' | 'stop_market';\n order_way: 1 | 2 | 3 | 4; // 1:开多 2:平空 3:开空 4:平多\n margin_type: 1 | 2; // 1:逐仓 2:全仓\n leverage: number;\n size: string; // 交易数量\n position_mode: 1 | 2 | 3; // 1:单向 2:双向 3:原子\n time_in_force: 'GTC' | 'IOC' | 'FOK';\n fee_mode: 1 | 2; // 1:固定 2:利润分层\n order_mode: 1 | 2; // 1:普通 2:条件\n price?: string; // 限价单价格\n position_id?: string; // 平仓时需要\n },\n {\n errno: string;\n msg: string;\n data: {\n request_id: string;\n account_id: string;\n order: {\n id: string;\n pool_id: number;\n pair_id: string;\n order_type: string;\n order_status: string;\n };\n };\n }\n>('POST', '/account/order/submit');\n\n/**\n * 修改订单\n */\nexport const remendOrder = createPrivateApi<\n {\n position_id: string;\n price?: string;\n vol?: string;\n tp_order?: {\n order_type: string;\n close_pos: boolean;\n stop_price: string;\n };\n sl_order?: {\n order_type: string;\n close_pos: boolean;\n stop_price: string;\n };\n },\n {\n errno: string;\n msg: string;\n data: {\n request_id: string;\n account_id: string;\n };\n }\n>('POST', '/account/order/remend');\n\n/**\n * 取消订单\n */\nexport const cancelOrder = createPrivateApi<\n {\n pair_id: string;\n order_id: string;\n pool_id: number;\n },\n {\n errno: string;\n msg: string;\n data: any;\n }\n>('POST', '/account/order/cancel');\n\n/**\n * 快速订单 (反向)\n */\nexport const quickOrder = createPrivateApi<\n {\n position_id: string;\n quick_type: 'Reverse';\n },\n {\n errno: string;\n msg: string;\n data: any;\n }\n>('POST', '/account/order/quick');\n\n/**\n * 保证金转账\n */\nexport const transferMargin = createPrivateApi<\n {\n margin: string;\n position_id: string;\n },\n {\n errno: string;\n msg: string;\n data: any;\n }\n>('POST', '/account/order/transfer');\n\n/**\n * 模拟保证金转账\n */\nexport const simulateTransferMargin = createPrivateApi<\n {\n position_id: string;\n margin: string;\n },\n {\n errno: string;\n msg: string;\n data: {\n max_add_margin: string;\n min_remove_margin: string;\n liq_price: string;\n leverage: string;\n };\n }\n>('GET', '/account/order/transfer/simulate');\n\n/**\n * 获取交易配置\n */\nexport const getOrderConfigs = createPrivateApi<\n void,\n {\n errno: string;\n msg: string;\n data: {\n max_add_margin: string;\n min_remove_margin: string;\n };\n }\n>('GET', '/account/order/configs');\n\n/**\n * 获取订单列表\n */\nexport const getOrderList = createPrivateApi<\n {\n page_num?: number;\n page_size?: number;\n status?: string; // All, Pending, Filled, Cancelled, Rejected\n },\n {\n errno: string;\n msg: string;\n data: {\n page_size: number;\n page_num: number;\n count: number;\n page_count: number;\n data: Array<{\n id: string;\n pool_id: number;\n pair_id: string;\n coin_code: string;\n coin_name: string;\n price: string;\n size: string;\n vol: string;\n leverage: string;\n order_type: string;\n order_way: number;\n margin_type: number;\n dual_side: boolean;\n fee_mode: number;\n pos_mode: number;\n done_vol: string;\n deal_price: string;\n done_amount: string;\n done_size: string;\n done_pnl: string;\n biz_code: number;\n order_status: string;\n view_type: string;\n position_id: string;\n close_pos: boolean;\n tp_price: string;\n sl_price: string;\n stop_price: string;\n updated_at: string;\n created_at: string;\n }>;\n };\n }\n>('GET', '/account/order/list');\n\n/**\n * 获取交易列表\n */\nexport const getTradeList = createPrivateApi<\n {\n page_num?: number;\n page_size?: number;\n },\n {\n errno: string;\n msg: string;\n data: {\n page_size: number;\n page_num: number;\n count: number;\n page_count: number;\n data: Array<{\n id: string;\n pool_id: number;\n pair_id: string;\n symbol: string;\n pair_logo: string;\n coin_code: string;\n coin_name: string;\n coin_logo: string;\n account_id: string;\n leverage: string;\n fee_mode: number;\n order_way: number;\n order_mode: number;\n view_type: string;\n entry_price: string;\n maker_coin: string;\n maker_coin_name: string;\n maker_coin_logo: string;\n done_price: string;\n done_vol: string;\n done_vol_usd: string;\n done_amount: string;\n done_size: string;\n share_pnl: string;\n done_pnl: string;\n done_pnl_usd: string;\n done_fee: string;\n funding_fee: string;\n coin_price: string;\n fee_saved_usd: string;\n liq_price: string;\n created_at: string;\n margin_type: number;\n order_price: string;\n roe: string;\n x_related: {\n nick_name: string;\n profile_url: string;\n };\n }>;\n };\n }\n>('GET', '/account/trade/list');\n\n/**\n * 获取交易现金列表\n */\nexport const getCashTradeList = createPrivateApi<\n {\n page_num?: number;\n page_size?: number;\n },\n {\n errno: string;\n msg: string;\n data: {\n page_size: number;\n page_num: number;\n count: number;\n page_count: number;\n data: Array<{\n id: string;\n pool_id: number;\n pair_id: string;\n order_way: number;\n order_mode: number;\n symbol: string;\n pair_logo: string;\n share_rate: string;\n pair_profit_size: string;\n margin_type: number;\n volume: string;\n size: string;\n leverage: string;\n collateral_coin: string;\n entry_price: string;\n done_pnl: string;\n share_pnl: string;\n fee_mode: number;\n account_id: string;\n action: number;\n coin_code: string;\n coin_name: string;\n coin_logo: string;\n coin_price: string;\n amount: string;\n available_balance: string;\n created_at: string;\n }>;\n };\n }\n>('GET', '/account/trade/cash/list');\n\n/**\n * 获取持仓列表\n */\nexport const getPositionList = createPrivateApi<\n {\n status?: 'Holding' | 'Closed';\n page_num?: number;\n page_size?: number;\n },\n {\n errno: string;\n msg: string;\n data: {\n page_size: number;\n page_num: number;\n count: number;\n page_count: number;\n data?: Array<{\n id: string;\n pool_id: number;\n pair_id: string;\n symbol: string;\n pair_logo: string;\n coin_code: string;\n coin_name: string;\n coin_logo: string;\n side: number;\n hold_size: string;\n hold_av: string;\n fee_mode: number;\n margin_type: number;\n im: string;\n mm: string;\n em: string;\n dual_side: boolean;\n pos_mode: number;\n leverage: string;\n liq_price: string;\n tp_price: string;\n tp_size: string;\n sl_price: string;\n sl_size: string;\n unpnl: string;\n realize_pnl: string;\n acc_ff: string;\n status: number;\n updated_at: string;\n created_at: string;\n account_id: string;\n base_fee_rate: string;\n rate_multi: string;\n rate_exp: string;\n pos_multi: string;\n pnl_base_rate: string;\n max_order_size: string;\n max_slippage: string;\n buffer_rate: string;\n price_factor: string;\n hair_cut: string;\n cross_leverage?: string;\n cross_mm?: string;\n cross_unpnl?: string;\n cross_coin_unpnl?: string;\n cross_health?: string;\n frozen_vol?: string;\n isolated_available?: string;\n cross_available?: string;\n cross_risk_im?: string;\n cross_risk_mm?: string;\n cross_equity?: string;\n }>;\n };\n }\n>('GET', '/account/position/list');\n\n/**\n * 获取仓位历史\n */\nexport const getPositionHistory = createPrivateApi<\n {\n page_num?: number;\n page_size?: number;\n },\n {\n errno: string;\n msg: string;\n data: {\n page_size: number;\n page_num: number;\n count: number;\n page_count: number;\n data: Array<{\n id: string;\n pool_id: number;\n pair_id: string;\n symbol: string;\n pair_logo: string;\n coin_code: string;\n coin_name: string;\n coin_logo: string;\n account_id: string;\n side: number;\n fee_mode: number;\n margin_type: number;\n pos_mode: number;\n leverage: string;\n im: string;\n status: number;\n realize_pnl: string;\n realize_pnl_usd: string;\n roe: string;\n entry_price: string;\n open_max_size: string;\n exit_price: string;\n closed_size: string;\n closed_at: string;\n created_at: string;\n maker_coin: string;\n maker_coin_name: string;\n maker_coin_logo: string;\n maker_coin_pnl: string;\n }>;\n };\n }\n>('GET', '/account/position/history');\n\n/**\n * 获取交易对价格\n */\nexport const getPairPrice = createPrivateApi<\n {\n spot_token_key: string;\n },\n {\n errno: string;\n msg: string;\n data: {\n price: string;\n tm: number;\n };\n }\n>('GET', '/market/pair/price');\n\n/**\n * 获取K线数据\n */\nexport const getKline = createPrivateApi<\n {\n spot_token_key: string;\n granularity: string;\n limit?: number;\n end_time?: number;\n },\n {\n errno: string;\n msg: string;\n data: Array<{\n t: number;\n o: string;\n h: string;\n l: string;\n c: string;\n g: string;\n }>;\n }\n>('GET', '/market/kline');\n\n/**\n * 获取交易对小数配置\n */\nexport const getDecimalConfig = createPrivateApi<\n void,\n {\n errno: string;\n msg: string;\n data: Array<{\n coin_code: string;\n balance_decimal: number;\n price_decimal: number;\n coin_name: string;\n }>;\n }\n>('GET', '/market/pair/decimal/config');\n\n/**\n * 获取抵押品列表\n */\nexport const getCollateralList = createPrivateApi<\n {\n pair_id: number;\n },\n {\n errno: string;\n msg: string;\n data: Array<{\n id: number;\n pool_id: number;\n coin_code: string;\n coin_name: string;\n collateral_logo: string;\n balance: string;\n hair_cut: string;\n trade_pair_count: number;\n max_hold_volume: string;\n trader_max_hold_volume: string;\n }>;\n }\n>('GET', '/pool/collateral/list');\n\n/**\n * 获取交易配置 (Public)\n */\nexport const getTradingConfigs = createPrivateApi<\n void,\n {\n errno: string;\n msg: string;\n data: {\n liquidate_configs: any;\n isolated_configs: any;\n cross_configs: Array<{\n imr: string;\n mmr: string;\n min_size: string;\n max_size: string;\n }>;\n is_shareprofit_active: boolean;\n shareprofit_configs: {\n start_time: string;\n end_time: string;\n pair_configs: Array<{\n pair_id: number;\n threshold: string;\n default_threshold: string;\n }>;\n };\n };\n }\n>('GET', '/public/trading/configs');\n\n/**\n * 获取交易对分享费用 (Public)\n */\nexport const getPairShareFees = createPrivateApi<\n {\n pair_id: string;\n order_way: number;\n price: string;\n vol: string;\n leverage: number;\n },\n {\n errno: string;\n msg: string;\n data: {\n list: Array<{\n price: string;\n roi: string;\n unpnl: string;\n share_pnl: string;\n fee_rate: string;\n }>;\n };\n }\n>('GET', '/public/pair/share/fees');\n"]}
package/lib/index.d.ts CHANGED
@@ -1 +1,3 @@
1
+ import './services/account-actions-with-credential';
2
+ import './services/order-actions-with-credential';
1
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,4CAA4C,CAAC;AACpD,OAAO,0CAA0C,CAAC"}
package/lib/index.js CHANGED
@@ -1,2 +1,6 @@
1
1
  "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // Import services
4
+ require("./services/account-actions-with-credential");
5
+ require("./services/order-actions-with-credential");
2
6
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"","sourcesContent":[""]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAAA,kBAAkB;AAClB,sDAAoD;AACpD,oDAAkD","sourcesContent":["// Import services\nimport './services/account-actions-with-credential';\nimport './services/order-actions-with-credential';\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=account-actions-with-credential.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-actions-with-credential.d.ts","sourceRoot":"","sources":["../../src/services/account-actions-with-credential.ts"],"names":[],"mappings":""}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const data_account_1 = require("@yuants/data-account");
4
+ const protocol_1 = require("@yuants/protocol");
5
+ const utils_1 = require("@yuants/utils");
6
+ const private_api_1 = require("../api/private-api");
7
+ (0, data_account_1.provideAccountActionsWithCredential)(protocol_1.Terminal.fromNodeEnv(), 'TURBOFLOW', {
8
+ type: 'object',
9
+ required: ['private_key'],
10
+ properties: {
11
+ private_key: {
12
+ type: 'string',
13
+ description: 'ED25519 Private Key (base58 encoded)',
14
+ },
15
+ },
16
+ }, {
17
+ listAccounts: async (credential) => {
18
+ const accountInfo = await (0, private_api_1.getAccountInfo)(credential, undefined);
19
+ return (0, utils_1.scopeError)('ListAccountsError::TurboFlow', { error: accountInfo.errno, message: accountInfo.msg }, () => [
20
+ {
21
+ account_id: `turboflow/${accountInfo.data.account_id}`,
22
+ },
23
+ ]);
24
+ },
25
+ getAccountInfo: async (credential, account_id) => {
26
+ const assetsResponse = await (0, private_api_1.getAccountAssets)(credential, {
27
+ fill_coin_sub_info: '1',
28
+ });
29
+ const assetPositions = assetsResponse.data.list.map((x) => (0, data_account_1.makeSpotPosition)({
30
+ position_id: x.coin_code,
31
+ product_id: (0, utils_1.encodePath)('SPOT', x.coin_name),
32
+ volume: parseFloat(x.available_balance),
33
+ free_volume: parseFloat(x.available_balance),
34
+ closable_price: 1,
35
+ }));
36
+ const positionsResponse = await (0, private_api_1.getPositionList)(credential, { status: 'Holding' });
37
+ const positions = (positionsResponse.data.data || []).map((position) => {
38
+ const side = position.side === 1 ? 'LONG' : 'SHORT';
39
+ const holdSize = parseFloat(position.hold_size);
40
+ const holdAv = parseFloat(position.hold_av);
41
+ const unpnl = parseFloat(position.unpnl);
42
+ const im = parseFloat(position.im);
43
+ return {
44
+ position_id: position.id,
45
+ datasource_id: 'TURBOFLOW',
46
+ product_id: (0, utils_1.encodePath)('PERP', position.symbol),
47
+ direction: side,
48
+ volume: holdSize,
49
+ free_volume: holdSize,
50
+ position_price: holdAv,
51
+ closable_price: holdAv,
52
+ floating_profit: unpnl,
53
+ valuation: holdSize * holdAv,
54
+ margin: im,
55
+ };
56
+ });
57
+ return [...assetPositions, ...positions];
58
+ },
59
+ });
60
+ //# sourceMappingURL=account-actions-with-credential.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-actions-with-credential.js","sourceRoot":"","sources":["../../src/services/account-actions-with-credential.ts"],"names":[],"mappings":";;AAAA,uDAAwG;AACxG,+CAA4C;AAC5C,yCAAuD;AACvD,oDAAoG;AAEpG,IAAA,kDAAmC,EACjC,mBAAQ,CAAC,WAAW,EAAE,EACtB,WAAW,EACX;IACE,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,CAAC,aAAa,CAAC;IACzB,UAAU,EAAE;QACV,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,sCAAsC;SACpD;KACF;CACF,EACD;IACE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;QACjC,MAAM,WAAW,GAAG,MAAM,IAAA,4BAAc,EAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAEhE,OAAO,IAAA,kBAAU,EACf,8BAA8B,EAC9B,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,GAAG,EAAE,EACtD,GAAG,EAAE,CAAC;YACJ;gBACE,UAAU,EAAE,aAAa,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE;aACvD;SACF,CACF,CAAC;IACJ,CAAC;IAED,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE;QAC/C,MAAM,cAAc,GAAG,MAAM,IAAA,8BAAgB,EAAC,UAAU,EAAE;YACxD,kBAAkB,EAAE,GAAG;SACxB,CAAC,CAAC;QAEH,MAAM,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACxD,IAAA,+BAAgB,EAAC;YACf,WAAW,EAAE,CAAC,CAAC,SAAS;YACxB,UAAU,EAAE,IAAA,kBAAU,EAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC;YAC3C,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC;YACvC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC;YAC5C,cAAc,EAAE,CAAC;SAClB,CAAC,CACH,CAAC;QAEF,MAAM,iBAAiB,GAAG,MAAM,IAAA,6BAAe,EAAC,UAAU,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAEnF,MAAM,SAAS,GAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YAClF,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YACpD,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACzC,MAAM,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAEnC,OAAO;gBACL,WAAW,EAAE,QAAQ,CAAC,EAAE;gBACxB,aAAa,EAAE,WAAW;gBAC1B,UAAU,EAAE,IAAA,kBAAU,EAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC;gBAC/C,SAAS,EAAE,IAAI;gBACf,MAAM,EAAE,QAAQ;gBAChB,WAAW,EAAE,QAAQ;gBACrB,cAAc,EAAE,MAAM;gBACtB,cAAc,EAAE,MAAM;gBACtB,eAAe,EAAE,KAAK;gBACtB,SAAS,EAAE,QAAQ,GAAG,MAAM;gBAC5B,MAAM,EAAE,EAAE;aACX,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,cAAc,EAAE,GAAG,SAAS,CAAC,CAAC;IAC3C,CAAC;CACF,CACF,CAAC","sourcesContent":["import { IPosition, makeSpotPosition, provideAccountActionsWithCredential } from '@yuants/data-account';\nimport { Terminal } from '@yuants/protocol';\nimport { encodePath, scopeError } from '@yuants/utils';\nimport { getAccountAssets, getAccountInfo, getPositionList, ICredential } from '../api/private-api';\n\nprovideAccountActionsWithCredential<ICredential>(\n Terminal.fromNodeEnv(),\n 'TURBOFLOW',\n {\n type: 'object',\n required: ['private_key'],\n properties: {\n private_key: {\n type: 'string',\n description: 'ED25519 Private Key (base58 encoded)',\n },\n },\n },\n {\n listAccounts: async (credential) => {\n const accountInfo = await getAccountInfo(credential, undefined);\n\n return scopeError(\n 'ListAccountsError::TurboFlow',\n { error: accountInfo.errno, message: accountInfo.msg },\n () => [\n {\n account_id: `turboflow/${accountInfo.data.account_id}`,\n },\n ],\n );\n },\n\n getAccountInfo: async (credential, account_id) => {\n const assetsResponse = await getAccountAssets(credential, {\n fill_coin_sub_info: '1',\n });\n\n const assetPositions = assetsResponse.data.list.map((x) =>\n makeSpotPosition({\n position_id: x.coin_code,\n product_id: encodePath('SPOT', x.coin_name),\n volume: parseFloat(x.available_balance),\n free_volume: parseFloat(x.available_balance),\n closable_price: 1,\n }),\n );\n\n const positionsResponse = await getPositionList(credential, { status: 'Holding' });\n\n const positions: IPosition[] = (positionsResponse.data.data || []).map((position) => {\n const side = position.side === 1 ? 'LONG' : 'SHORT';\n const holdSize = parseFloat(position.hold_size);\n const holdAv = parseFloat(position.hold_av);\n const unpnl = parseFloat(position.unpnl);\n const im = parseFloat(position.im);\n\n return {\n position_id: position.id,\n datasource_id: 'TURBOFLOW',\n product_id: encodePath('PERP', position.symbol),\n direction: side,\n volume: holdSize,\n free_volume: holdSize, // Assuming all volume is free\n position_price: holdAv,\n closable_price: holdAv,\n floating_profit: unpnl,\n valuation: holdSize * holdAv,\n margin: im,\n };\n });\n\n return [...assetPositions, ...positions];\n },\n },\n);\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=order-actions-with-credential.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order-actions-with-credential.d.ts","sourceRoot":"","sources":["../../src/services/order-actions-with-credential.ts"],"names":[],"mappings":""}