Merge pull request #216 from tiagosiebler/closecopy
v3.3.9: fix copy trading close order endpoint. add ws log for topic sub request. add example for rest copy closing.
This commit is contained in:
25
examples/rest-copy-private.ts
Normal file
25
examples/rest-copy-private.ts
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
import { CopyTradingClient } from '../src/index';
|
||||||
|
|
||||||
|
// or
|
||||||
|
// import { CopyTradingClient } from 'bybit-api';
|
||||||
|
|
||||||
|
const key = process.env.API_KEY_COM;
|
||||||
|
const secret = process.env.API_SECRET_COM;
|
||||||
|
|
||||||
|
const client = new CopyTradingClient({
|
||||||
|
key,
|
||||||
|
secret,
|
||||||
|
strict_param_validation: true,
|
||||||
|
});
|
||||||
|
|
||||||
|
(async () => {
|
||||||
|
try {
|
||||||
|
const res = await client.closeOrder({
|
||||||
|
symbol: 'BTCUSDT',
|
||||||
|
parentOrderId: '419190fe-016c-469a-810e-936bef2f1234',
|
||||||
|
});
|
||||||
|
console.log('res:', res);
|
||||||
|
} catch (e) {
|
||||||
|
console.error('request failed: ', e);
|
||||||
|
}
|
||||||
|
})();
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "bybit-api",
|
"name": "bybit-api",
|
||||||
"version": "3.3.8",
|
"version": "3.3.9",
|
||||||
"description": "Complete & robust node.js SDK for Bybit's REST APIs and WebSockets, with TypeScript & integration tests.",
|
"description": "Complete & robust node.js SDK for Bybit's REST APIs and WebSockets, with TypeScript & integration tests.",
|
||||||
"main": "lib/index.js",
|
"main": "lib/index.js",
|
||||||
"types": "lib/index.d.ts",
|
"types": "lib/index.d.ts",
|
||||||
|
|||||||
@@ -85,9 +85,10 @@ export class CopyTradingClient extends BaseRestClient {
|
|||||||
closeOrder(
|
closeOrder(
|
||||||
params: CopyTradingCloseOrderRequest
|
params: CopyTradingCloseOrderRequest
|
||||||
): Promise<APIResponseV3<any>> {
|
): Promise<APIResponseV3<any>> {
|
||||||
return this.postPrivate('/contract/v3/private/copytrading/order/close', {
|
return this.postPrivate(
|
||||||
params,
|
'/contract/v3/private/copytrading/order/close',
|
||||||
});
|
params
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** -> Positions API */
|
/** -> Positions API */
|
||||||
|
|||||||
@@ -788,7 +788,13 @@ export class WebsocketClient extends EventEmitter {
|
|||||||
|
|
||||||
// TODO: persistence not working yet for spot v1 topics
|
// TODO: persistence not working yet for spot v1 topics
|
||||||
if (wsKey !== WS_KEY_MAP.spotPublic && wsKey !== WS_KEY_MAP.spotPrivate) {
|
if (wsKey !== WS_KEY_MAP.spotPublic && wsKey !== WS_KEY_MAP.spotPrivate) {
|
||||||
this.requestSubscribeTopics(wsKey, [...this.wsStore.getTopics(wsKey)]);
|
const topics = [...this.wsStore.getTopics(wsKey)];
|
||||||
|
this.logger.info('Subscribing to topics', {
|
||||||
|
...loggerCategory,
|
||||||
|
wsKey,
|
||||||
|
topics,
|
||||||
|
});
|
||||||
|
this.requestSubscribeTopics(wsKey, topics);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.wsStore.get(wsKey, true)!.activePingTimer = setInterval(
|
this.wsStore.get(wsKey, true)!.activePingTimer = setInterval(
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ describe('Private Unified Margin REST API GET Endpoints', () => {
|
|||||||
'fb56c285-02ac-424e-a6b1-d10413b65fab%3A1668178953132%2Cfb56c285-02ac-424e-a6b1-d10413b65fab%3A1668178953132';
|
'fb56c285-02ac-424e-a6b1-d10413b65fab%3A1668178953132%2Cfb56c285-02ac-424e-a6b1-d10413b65fab%3A1668178953132';
|
||||||
expect(await api.getHistoricOrders({ category, cursor })).toMatchObject({
|
expect(await api.getHistoricOrders({ category, cursor })).toMatchObject({
|
||||||
retCode: API_ERROR_CODE.ACCOUNT_NOT_UNIFIED,
|
retCode: API_ERROR_CODE.ACCOUNT_NOT_UNIFIED,
|
||||||
retMsg: expect.stringMatching(/not.*unified margin/gim),
|
// retMsg: expect.stringMatching(/not.*unified margin/gim),
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user