Merge pull request #7 from tiagosiebler/trailfut

v1.0.4: feat(#6) add futures trailing stop endpoint, add missing types for new order endpoint
This commit is contained in:
Tiago
2023-02-10 18:34:09 +00:00
committed by GitHub
5 changed files with 31 additions and 6 deletions

View File

@@ -1,6 +1,6 @@
{
"name": "bitget-api",
"version": "1.0.3",
"version": "1.0.4",
"description": "Node.js connector for Bitget REST APIs and WebSockets, with TypeScript & end-to-end tests.",
"main": "lib/index.js",
"types": "lib/index.d.ts",

View File

@@ -9,6 +9,7 @@ export const API_ERROR_CODE = {
INSUFFICIENT_BALANCE: '40754',
QTY_GREATER_THAN_MAX_OPEN: '40762',
FUTURES_ORDER_CANCEL_NOT_FOUND: '40768',
FUTURES_INSUFFICIENT_POSITION_NO_TPSL: '40891',
QTY_LESS_THAN_MINIMUM: '43006',
/** Parameter verification exception margin mode == FIXED */
PARAMETER_EXCEPTION: '40808',

View File

@@ -19,6 +19,7 @@ import {
FuturesSymbolRule,
FuturesMarginMode,
FuturesPosition,
NewFuturesPlanTrailingStopOrder,
} from './types';
import { REST_CLIENT_TYPE_ENUM } from './util';
import BaseRestClient from './util/BaseRestClient';
@@ -417,6 +418,13 @@ export class FuturesClient extends BaseRestClient {
return this.postPrivate('/api/mix/v1/plan/placeTPSL', params);
}
/** Place Trailing Stop order */
submitTrailingStopOrder(
params: NewFuturesPlanTrailingStopOrder
): Promise<APIResponse<any>> {
return this.postPrivate('/api/mix/v1/plan/placeTrailStop', params);
}
/** Place Position TPSL */
submitPositionTPSL(
params: NewFuturesPlanPositionTPSL

View File

@@ -38,7 +38,9 @@ export type FuturesOrderSide =
| 'open_long'
| 'open_short'
| 'close_long'
| 'close_short';
| 'close_short'
| 'buy_single'
| 'sell_single';
export interface NewFuturesOrder {
symbol: string;
@@ -100,15 +102,27 @@ export interface ModifyFuturesPlanOrderTPSL {
presetStopLossPrice?: string;
}
export type FuturesPlanType = 'profit_plan' | 'loss_plan';
export type FuturesPlanType = 'profit_plan' | 'loss_plan' | 'moving_plan';
export interface NewFuturesPlanStopOrder {
symbol: string;
marginCoin: string;
planType: FuturesPlanType;
triggerPrice: string;
holdSide?: FuturesHoldSide;
triggerType?: 'fill_price' | 'market_price';
holdSide: FuturesHoldSide;
size?: string;
rangeRate?: string;
}
export interface NewFuturesPlanTrailingStopOrder {
symbol: string;
marginCoin: string;
triggerPrice: string;
triggerType?: 'fill_price' | 'market_price';
size?: string;
side: FuturesOrderSide;
rangeRate?: string;
}
export interface NewFuturesPlanPositionTPSL {

View File

@@ -82,7 +82,7 @@ describe('Private Futures REST API POST Endpoints', () => {
data: {},
});
} catch (e) {
console.log(`submitOrder() exception: `, e.body);
// console.log(`submitOrder() exception: `, e.body);
expect(e.body).toMatchObject({
// seems to be the new "insufficient balance" error, informed bitget on 7th feb
code: API_ERROR_CODE.QTY_GREATER_THAN_MAX_OPEN,
@@ -227,6 +227,7 @@ describe('Private Futures REST API POST Endpoints', () => {
marginCoin,
symbol,
planType: 'profit_plan',
holdSide: 'long',
triggerPrice: '100',
})
).toMatchObject({
@@ -234,8 +235,9 @@ describe('Private Futures REST API POST Endpoints', () => {
data: {},
});
} catch (e) {
// console.log(e.body);
expect(e.body).toMatchObject({
code: API_ERROR_CODE.FUTURES_POSITION_DIRECTION_EMPTY,
code: API_ERROR_CODE.FUTURES_INSUFFICIENT_POSITION_NO_TPSL,
});
}
});