From 8e89b6938e3a168aea2ab4a1657c640e0c6967a8 Mon Sep 17 00:00:00 2001 From: "ilinikh.a1" Date: Fri, 13 Oct 2023 04:43:22 +0600 Subject: [PATCH 1/2] feat: implement switch margin mode #40 --- src/bingx-client/services/trade.service.ts | 13 +++++ .../account/default-signature-parameters.ts | 2 +- .../bingx-switch-leverage-endpoint.ts | 48 +++++++++++++++++++ 3 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 src/bingx/endpoints/bingx-switch-leverage-endpoint.ts diff --git a/src/bingx-client/services/trade.service.ts b/src/bingx-client/services/trade.service.ts index ff8bdac..b915f20 100644 --- a/src/bingx-client/services/trade.service.ts +++ b/src/bingx-client/services/trade.service.ts @@ -8,6 +8,8 @@ import { BingxSwitchMarginModeEndpoint, MarginType, } from '@app/bingx/endpoints/bingx-switch-margin-mode-endpoint'; +import { BingxSwitchLeverageEndpoint } from '@app/bingx/endpoints/bingx-switch-leverage-endpoint'; +import { OrderPositionSideEnum } from '@app/bingx'; export class TradeService { constructor(private readonly requestExecutor: RequestExecutorInterface) {} @@ -42,4 +44,15 @@ export class TradeService { new BingxSwitchMarginModeEndpoint(symbol, marginType, account), ); } + + public switchLeverage( + symbol: string, + leverage: number, + side: OrderPositionSideEnum, + account: AccountInterface, + ) { + return this.requestExecutor.execute( + new BingxSwitchLeverageEndpoint(symbol, leverage, side, account), + ); + } } diff --git a/src/bingx/account/default-signature-parameters.ts b/src/bingx/account/default-signature-parameters.ts index 6a553ff..14c9fc2 100644 --- a/src/bingx/account/default-signature-parameters.ts +++ b/src/bingx/account/default-signature-parameters.ts @@ -5,7 +5,7 @@ export class DefaultSignatureParameters { constructor( private readonly parameters: - | Record + | Record | string | URLSearchParams = {}, private readonly overrideTimestamp: number = Date.now(), diff --git a/src/bingx/endpoints/bingx-switch-leverage-endpoint.ts b/src/bingx/endpoints/bingx-switch-leverage-endpoint.ts new file mode 100644 index 0000000..474197b --- /dev/null +++ b/src/bingx/endpoints/bingx-switch-leverage-endpoint.ts @@ -0,0 +1,48 @@ +import { + AccountInterface, + DefaultSignatureParameters, + Endpoint, + EndpointInterface, + OrderPositionSideEnum, + SignatureParametersInterface, +} from '@app/bingx'; + +export interface SwitchLeverageResponse {} + +export interface SwitchLeverageInterface { + symbol: string; + leverage: number; + side: OrderPositionSideEnum; +} + +export class BingxSwitchLeverageEndpoint + extends Endpoint + implements EndpointInterface +{ + constructor( + private readonly symbol: string, + private readonly leverage: number, + private readonly side: OrderPositionSideEnum, + readonly account: AccountInterface, + ) { + super(account); + } + + method(): 'get' | 'post' | 'put' | 'patch' | 'delete' { + return 'post'; + } + + parameters(): SignatureParametersInterface { + return new DefaultSignatureParameters({ + symbol: this.symbol, + leverage: this.leverage, + side: this.side, + }); + } + + path(): string { + return '/openApi/swap/v2/trade/leverage'; + } + + readonly t!: SwitchLeverageResponse; +} From 65ab81d769870a73b1b59d4928dc8d2aea2c8d53 Mon Sep 17 00:00:00 2001 From: "ilinikh.a1" Date: Fri, 13 Oct 2023 04:44:30 +0600 Subject: [PATCH 2/2] feat: implement switch margin mode #40 --- src/bingx/account/default-signature-parameters.ts | 2 +- src/bingx/endpoints/bingx-switch-leverage-endpoint.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bingx/account/default-signature-parameters.ts b/src/bingx/account/default-signature-parameters.ts index 14c9fc2..6a553ff 100644 --- a/src/bingx/account/default-signature-parameters.ts +++ b/src/bingx/account/default-signature-parameters.ts @@ -5,7 +5,7 @@ export class DefaultSignatureParameters { constructor( private readonly parameters: - | Record + | Record | string | URLSearchParams = {}, private readonly overrideTimestamp: number = Date.now(), diff --git a/src/bingx/endpoints/bingx-switch-leverage-endpoint.ts b/src/bingx/endpoints/bingx-switch-leverage-endpoint.ts index 474197b..f39e8a5 100644 --- a/src/bingx/endpoints/bingx-switch-leverage-endpoint.ts +++ b/src/bingx/endpoints/bingx-switch-leverage-endpoint.ts @@ -35,7 +35,7 @@ export class BingxSwitchLeverageEndpoint parameters(): SignatureParametersInterface { return new DefaultSignatureParameters({ symbol: this.symbol, - leverage: this.leverage, + leverage: this.leverage.toString(10), side: this.side, }); }