@gainsnetwork/sdk 0.0.0-v10.rc17 → 0.0.0-v10.rc18

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.
@@ -7,3 +7,4 @@ export * from "./oi";
7
7
  export * from "./collateral";
8
8
  export * from "./price";
9
9
  export * from "./holdingFees";
10
+ export * from "./leverage";
@@ -23,3 +23,4 @@ __exportStar(require("./oi"), exports);
23
23
  __exportStar(require("./collateral"), exports);
24
24
  __exportStar(require("./price"), exports);
25
25
  __exportStar(require("./holdingFees"), exports);
26
+ __exportStar(require("./leverage"), exports);
@@ -0,0 +1,12 @@
1
+ import { GlobalTradingVariablesType } from "../../backend/tradingVariables/types";
2
+ import { GetMarketLeverageRestrictionsContext } from "./types";
3
+ /**
4
+ * Builds the context needed for getMarketLeverageRestrictions from global trading variables
5
+ * @param globalTradingVariables Global trading variables containing pairs, groups, etc.
6
+ * @param pairIndex The index of the trading pair
7
+ * @param pairMaxLeverages Map of pair-specific max leverage overrides
8
+ * @returns Context for leverage restrictions calculation
9
+ */
10
+ export declare const buildMarketLeverageRestrictionsContext: (globalTradingVariables: GlobalTradingVariablesType, pairIndex: number, pairMaxLeverages?: {
11
+ [key: number]: number;
12
+ } | undefined) => GetMarketLeverageRestrictionsContext;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildMarketLeverageRestrictionsContext = void 0;
4
+ /**
5
+ * Builds the context needed for getMarketLeverageRestrictions from global trading variables
6
+ * @param globalTradingVariables Global trading variables containing pairs, groups, etc.
7
+ * @param pairIndex The index of the trading pair
8
+ * @param pairMaxLeverages Map of pair-specific max leverage overrides
9
+ * @returns Context for leverage restrictions calculation
10
+ */
11
+ const buildMarketLeverageRestrictionsContext = (globalTradingVariables, pairIndex, pairMaxLeverages) => {
12
+ const { pairs, groups, counterTradeSettings } = globalTradingVariables;
13
+ if (!pairs || !groups || !pairs[pairIndex]) {
14
+ throw new Error("Invalid global trading variables or pair index");
15
+ }
16
+ const pair = pairs[pairIndex];
17
+ const group = groups[pair.groupIndex];
18
+ return {
19
+ groupMinLeverage: group.minLeverage,
20
+ groupMaxLeverage: group.maxLeverage,
21
+ pairMaxLeverage: pairMaxLeverages === null || pairMaxLeverages === void 0 ? void 0 : pairMaxLeverages[pairIndex],
22
+ counterTradeSettings: counterTradeSettings === null || counterTradeSettings === void 0 ? void 0 : counterTradeSettings[pairIndex],
23
+ };
24
+ };
25
+ exports.buildMarketLeverageRestrictionsContext = buildMarketLeverageRestrictionsContext;
@@ -0,0 +1,7 @@
1
+ import { GetMarketLeverageRestrictionsContext, MarketLeverageRestrictions } from "./types";
2
+ /**
3
+ * Gets the leverage restrictions for a trading pair, including both regular and counter trade limits
4
+ * @param context Context containing group limits, pair overrides, and counter trade settings
5
+ * @returns Object with regular and counter trade leverage restrictions
6
+ */
7
+ export declare const getMarketLeverageRestrictions: (context: GetMarketLeverageRestrictionsContext) => MarketLeverageRestrictions;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getMarketLeverageRestrictions = void 0;
4
+ /**
5
+ * Gets the leverage restrictions for a trading pair, including both regular and counter trade limits
6
+ * @param context Context containing group limits, pair overrides, and counter trade settings
7
+ * @returns Object with regular and counter trade leverage restrictions
8
+ */
9
+ const getMarketLeverageRestrictions = (context) => {
10
+ const { groupMinLeverage, groupMaxLeverage, pairMaxLeverage, counterTradeSettings, } = context;
11
+ // Calculate regular trade leverage limits
12
+ let regularMin = groupMinLeverage;
13
+ let regularMax = pairMaxLeverage === undefined || pairMaxLeverage === 0
14
+ ? groupMaxLeverage
15
+ : pairMaxLeverage;
16
+ // If max is less than min, set both to 0 (pair is effectively disabled)
17
+ if (regularMax < regularMin) {
18
+ regularMin = 0;
19
+ regularMax = 0;
20
+ }
21
+ // Calculate counter trade leverage limits if settings exist
22
+ let counterTradeLimits = null;
23
+ if (counterTradeSettings) {
24
+ // Counter trades use the group's min leverage but have their own max leverage
25
+ counterTradeLimits = {
26
+ min: groupMinLeverage,
27
+ max: counterTradeSettings.maxLeverage,
28
+ };
29
+ }
30
+ return {
31
+ regular: {
32
+ min: regularMin,
33
+ max: regularMax,
34
+ },
35
+ counterTrade: counterTradeLimits,
36
+ };
37
+ };
38
+ exports.getMarketLeverageRestrictions = getMarketLeverageRestrictions;
@@ -0,0 +1,3 @@
1
+ export * from "./types";
2
+ export * from "./getMarketLeverageRestrictions";
3
+ export * from "./builder";
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./types"), exports);
18
+ __exportStar(require("./getMarketLeverageRestrictions"), exports);
19
+ __exportStar(require("./builder"), exports);
@@ -0,0 +1,15 @@
1
+ import { CounterTradeSettings } from "../../trade/types";
2
+ export type LeverageRestrictions = {
3
+ min: number;
4
+ max: number;
5
+ };
6
+ export type MarketLeverageRestrictions = {
7
+ regular: LeverageRestrictions;
8
+ counterTrade: LeverageRestrictions | null;
9
+ };
10
+ export type GetMarketLeverageRestrictionsContext = {
11
+ groupMinLeverage: number;
12
+ groupMaxLeverage: number;
13
+ pairMaxLeverage?: number;
14
+ counterTradeSettings?: CounterTradeSettings;
15
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gainsnetwork/sdk",
3
- "version": "0.0.0-v10.rc17",
3
+ "version": "0.0.0-v10.rc18",
4
4
  "description": "Gains Network SDK",
5
5
  "main": "./lib/index.js",
6
6
  "files": [