okx-api 2.0.4 → 2.0.6
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 +43 -1
- package/lib/types/rest/client.d.ts +10 -0
- package/lib/util/BaseRestClient.js +10 -0
- package/lib/util/BaseRestClient.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -34,7 +34,7 @@ npm install okx-api
|
|
|
34
34
|
|
|
35
35
|
- Issues? Check the [issues tab](https://github.com/tiagosiebler/okx-api/issues).
|
|
36
36
|
- Discuss & collaborate with other node devs? Join our [Node.js Algo Traders](https://t.me/nodetraders) engineering community on telegram.
|
|
37
|
-
- Follow our announcement channel for real-time updates on [X/Twitter](https://x.com/
|
|
37
|
+
- Follow our announcement channel for real-time updates on [X/Twitter](https://x.com/sieblyio)
|
|
38
38
|
|
|
39
39
|
<!-- template_related_projects -->
|
|
40
40
|
|
|
@@ -104,6 +104,48 @@ Create API credentials at okx
|
|
|
104
104
|
- If the response looks successful (HTTP 200 and "code" in the response body === "0"), only the `data` property is directly (without the `code`, `data` & `msg` properties).
|
|
105
105
|
- If the response looks like an error (HTTP error OR the "code" property in the response does not equal "0"), the full response is thrown (including `code` and `msg` properties). See the interface for [APIResponse<T>](./src/types/rest/shared.ts).
|
|
106
106
|
|
|
107
|
+
### Example
|
|
108
|
+
|
|
109
|
+
```ts
|
|
110
|
+
import { RestClient } from 'okx-api';
|
|
111
|
+
|
|
112
|
+
const client = new RestClient({
|
|
113
|
+
apiKey: 'apiKeyHere',
|
|
114
|
+
apiSecret: 'apiSecretHere',
|
|
115
|
+
apiPass: 'apiPassHere',
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
// Submit a buy and sell market order
|
|
119
|
+
(async () => {
|
|
120
|
+
try {
|
|
121
|
+
const allBalances = await client.getBalance();
|
|
122
|
+
console.log('All balances: ', allBalances);
|
|
123
|
+
|
|
124
|
+
const buyResult = await client.submitOrder({
|
|
125
|
+
instId: 'BTC-USDT',
|
|
126
|
+
ordType: 'market',
|
|
127
|
+
side: 'buy',
|
|
128
|
+
sz: '0.1',
|
|
129
|
+
tdMode: 'cash',
|
|
130
|
+
tgtCcy: 'base_ccy',
|
|
131
|
+
});
|
|
132
|
+
console.log('buy order result: ', buyResult);
|
|
133
|
+
|
|
134
|
+
const sellResult = await client.submitOrder({
|
|
135
|
+
instId: 'BTC-USDT',
|
|
136
|
+
ordType: 'market',
|
|
137
|
+
side: 'sell',
|
|
138
|
+
sz: '0.1',
|
|
139
|
+
tdMode: 'cash',
|
|
140
|
+
tgtCcy: 'base_ccy',
|
|
141
|
+
});
|
|
142
|
+
console.log('Sell order result: ', sellResult);
|
|
143
|
+
} catch (e) {
|
|
144
|
+
console.error('request failed: ', e);
|
|
145
|
+
}
|
|
146
|
+
})();
|
|
147
|
+
```
|
|
148
|
+
|
|
107
149
|
## Websocket Client
|
|
108
150
|
|
|
109
151
|
This connector includes a high-performance node.js & typescript websocket client for the OKX public & private websockets.
|
|
@@ -7,4 +7,14 @@ export interface RestClientOptions {
|
|
|
7
7
|
strict_param_validation?: boolean;
|
|
8
8
|
baseUrl?: string;
|
|
9
9
|
parse_exceptions?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Enable keep alive for REST API requests (via axios).
|
|
12
|
+
*/
|
|
13
|
+
keepAlive?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* When using HTTP KeepAlive, how often to send TCP KeepAlive packets over sockets being kept alive. Default = 1000.
|
|
16
|
+
* Only relevant if keepAlive is set to true.
|
|
17
|
+
* Default: 1000 (defaults comes from https agent)
|
|
18
|
+
*/
|
|
19
|
+
keepAliveMsecs?: number;
|
|
10
20
|
}
|
|
@@ -14,6 +14,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.MISSING_CREDENTIALS_ERROR = void 0;
|
|
16
16
|
const axios_1 = __importDefault(require("axios"));
|
|
17
|
+
const https_1 = __importDefault(require("https"));
|
|
17
18
|
const node_support_1 = require("./node-support");
|
|
18
19
|
const requestUtils_1 = require("./requestUtils");
|
|
19
20
|
const typeGuards_1 = require("./typeGuards");
|
|
@@ -63,6 +64,15 @@ class BaseRestClient {
|
|
|
63
64
|
}
|
|
64
65
|
this.globalRequestOptions.headers['Content-Type'] = 'application/json';
|
|
65
66
|
this.globalRequestOptions.headers['Accept'] = 'application/json';
|
|
67
|
+
// If enabled, configure a https agent with keepAlive enabled
|
|
68
|
+
if (this.options.keepAlive) {
|
|
69
|
+
// Extract existing https agent parameters, if provided, to prevent the keepAlive flag from overwriting an existing https agent completely
|
|
70
|
+
const existingHttpsAgent = this.globalRequestOptions.httpsAgent;
|
|
71
|
+
const existingAgentOptions = (existingHttpsAgent === null || existingHttpsAgent === void 0 ? void 0 : existingHttpsAgent.options) || {};
|
|
72
|
+
// For more advanced configuration, raise an issue on GitHub or use the "requestOptions"
|
|
73
|
+
// parameter to define a custom httpsAgent with the desired properties
|
|
74
|
+
this.globalRequestOptions.httpsAgent = new https_1.default.Agent(Object.assign(Object.assign({}, existingAgentOptions), { keepAlive: true, keepAliveMsecs: this.options.keepAliveMsecs }));
|
|
75
|
+
}
|
|
66
76
|
this.apiKey = options === null || options === void 0 ? void 0 : options.apiKey;
|
|
67
77
|
this.apiSecret = options === null || options === void 0 ? void 0 : options.apiSecret;
|
|
68
78
|
this.apiPassphrase = options === null || options === void 0 ? void 0 : options.apiPass;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseRestClient.js","sourceRoot":"","sources":["../../src/util/BaseRestClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAAyE;
|
|
1
|
+
{"version":3,"file":"BaseRestClient.js","sourceRoot":"","sources":["../../src/util/BaseRestClient.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED