@gainsnetwork/sdk 0.1.11-rc2 → 0.1.13

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.
Files changed (137) hide show
  1. package/README.md +11 -11
  2. package/lib/constants.d.ts +234 -229
  3. package/lib/constants.js +251 -246
  4. package/lib/contracts/addresses.d.ts +3 -3
  5. package/lib/contracts/addresses.js +31 -31
  6. package/lib/contracts/addresses.json +89 -89
  7. package/lib/contracts/index.d.ts +8 -8
  8. package/lib/contracts/index.js +40 -40
  9. package/lib/contracts/types/generated/GFarmTradingStorageV5.d.ts +1911 -1911
  10. package/lib/contracts/types/generated/GFarmTradingStorageV5.js +2 -2
  11. package/lib/contracts/types/generated/GNSBorrowingFees.d.ts +1067 -1067
  12. package/lib/contracts/types/generated/GNSBorrowingFees.js +2 -2
  13. package/lib/contracts/types/generated/GNSBorrowingFeesV6_3_2.d.ts +979 -0
  14. package/lib/contracts/types/generated/GNSBorrowingFeesV6_3_2.js +2 -0
  15. package/lib/contracts/types/generated/GNSBorrowingFeesV6_4.d.ts +1058 -0
  16. package/lib/contracts/types/generated/GNSBorrowingFeesV6_4.js +2 -0
  17. package/lib/contracts/types/generated/GNSMultiCollatDiamond.d.ts +1740 -1740
  18. package/lib/contracts/types/generated/GNSMultiCollatDiamond.js +2 -2
  19. package/lib/contracts/types/generated/GNSNftRewardsV6.d.ts +533 -533
  20. package/lib/contracts/types/generated/GNSNftRewardsV6.js +2 -2
  21. package/lib/contracts/types/generated/GNSNftRewardsV6_3_1.d.ts +613 -613
  22. package/lib/contracts/types/generated/GNSNftRewardsV6_3_1.js +2 -2
  23. package/lib/contracts/types/generated/GNSPairInfosV6_1.d.ts +911 -0
  24. package/lib/contracts/types/generated/GNSPairInfosV6_1.js +2 -0
  25. package/lib/contracts/types/generated/GNSPairsStorageV6.d.ts +660 -0
  26. package/lib/contracts/types/generated/GNSPairsStorageV6.js +2 -0
  27. package/lib/contracts/types/generated/GNSTrading.d.ts +758 -758
  28. package/lib/contracts/types/generated/GNSTrading.js +2 -2
  29. package/lib/contracts/types/generated/GNSTradingCallbacks.d.ts +875 -875
  30. package/lib/contracts/types/generated/GNSTradingCallbacks.js +2 -2
  31. package/lib/contracts/types/generated/GNSTradingCallbacksV6_3_2.d.ts +806 -0
  32. package/lib/contracts/types/generated/GNSTradingCallbacksV6_3_2.js +2 -0
  33. package/lib/contracts/types/generated/GNSTradingCallbacksV6_4.d.ts +821 -0
  34. package/lib/contracts/types/generated/GNSTradingCallbacksV6_4.js +2 -0
  35. package/lib/contracts/types/generated/GNSTradingStorage.d.ts +1387 -1387
  36. package/lib/contracts/types/generated/GNSTradingStorage.js +2 -2
  37. package/lib/contracts/types/generated/GToken.d.ts +1946 -1946
  38. package/lib/contracts/types/generated/GToken.js +2 -2
  39. package/lib/contracts/types/generated/GTokenOpenPnlFeed.d.ts +557 -557
  40. package/lib/contracts/types/generated/GTokenOpenPnlFeed.js +2 -2
  41. package/lib/contracts/types/generated/GTokenV6_3_2.d.ts +1838 -0
  42. package/lib/contracts/types/generated/GTokenV6_3_2.js +2 -0
  43. package/lib/contracts/types/generated/common.d.ts +22 -22
  44. package/lib/contracts/types/generated/common.js +2 -2
  45. package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.d.ts +83 -83
  46. package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.js +2691 -2691
  47. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_3_2__factory.d.ts +88 -0
  48. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_3_2__factory.js +1654 -0
  49. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_4__factory.d.ts +113 -0
  50. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_4__factory.js +1742 -0
  51. package/lib/contracts/types/generated/factories/GNSBorrowingFees__factory.d.ts +124 -124
  52. package/lib/contracts/types/generated/factories/GNSBorrowingFees__factory.js +1784 -1784
  53. package/lib/contracts/types/generated/factories/GNSMultiCollatDiamond__factory.d.ts +144 -144
  54. package/lib/contracts/types/generated/factories/GNSMultiCollatDiamond__factory.js +3094 -3094
  55. package/lib/contracts/types/generated/factories/GNSNftRewardsV6_3_1__factory.d.ts +100 -100
  56. package/lib/contracts/types/generated/factories/GNSNftRewardsV6_3_1__factory.js +1116 -1116
  57. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.d.ts +100 -100
  58. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.js +1003 -1003
  59. package/lib/contracts/types/generated/factories/GNSPairInfosV6_1__factory.d.ts +98 -0
  60. package/lib/contracts/types/generated/factories/GNSPairInfosV6_1__factory.js +1485 -0
  61. package/lib/contracts/types/generated/factories/GNSPairsStorageV6__factory.d.ts +117 -0
  62. package/lib/contracts/types/generated/factories/GNSPairsStorageV6__factory.js +1265 -0
  63. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_3_2__factory.d.ts +82 -0
  64. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_3_2__factory.js +1273 -0
  65. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_4__factory.d.ts +82 -0
  66. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_4__factory.js +1326 -0
  67. package/lib/contracts/types/generated/factories/GNSTradingCallbacks__factory.d.ts +113 -113
  68. package/lib/contracts/types/generated/factories/GNSTradingCallbacks__factory.js +1428 -1428
  69. package/lib/contracts/types/generated/factories/GNSTradingStorage__factory.d.ts +96 -96
  70. package/lib/contracts/types/generated/factories/GNSTradingStorage__factory.js +2241 -2241
  71. package/lib/contracts/types/generated/factories/GNSTrading__factory.d.ts +95 -95
  72. package/lib/contracts/types/generated/factories/GNSTrading__factory.js +1071 -1071
  73. package/lib/contracts/types/generated/factories/GTokenOpenPnlFeed__factory.d.ts +59 -59
  74. package/lib/contracts/types/generated/factories/GTokenOpenPnlFeed__factory.js +765 -765
  75. package/lib/contracts/types/generated/factories/GTokenV6_3_2__factory.d.ts +110 -0
  76. package/lib/contracts/types/generated/factories/GTokenV6_3_2__factory.js +2682 -0
  77. package/lib/contracts/types/generated/factories/GToken__factory.d.ts +121 -121
  78. package/lib/contracts/types/generated/factories/GToken__factory.js +2944 -2944
  79. package/lib/contracts/types/generated/factories/index.d.ts +10 -10
  80. package/lib/contracts/types/generated/factories/index.js +26 -26
  81. package/lib/contracts/types/generated/index.d.ts +21 -21
  82. package/lib/contracts/types/generated/index.js +47 -47
  83. package/lib/contracts/types/index.d.ts +27 -27
  84. package/lib/contracts/types/index.js +10 -10
  85. package/lib/contracts/utils/borrowingFees.d.ts +8 -8
  86. package/lib/contracts/utils/borrowingFees.js +28 -28
  87. package/lib/contracts/utils/index.d.ts +4 -4
  88. package/lib/contracts/utils/index.js +20 -20
  89. package/lib/contracts/utils/openLimitOrders.d.ts +8 -8
  90. package/lib/contracts/utils/openLimitOrders.js +88 -88
  91. package/lib/contracts/utils/openTrades.d.ts +9 -9
  92. package/lib/contracts/utils/openTrades.js +188 -188
  93. package/lib/contracts/utils/pairs.d.ts +7 -7
  94. package/lib/contracts/utils/pairs.js +310 -297
  95. package/lib/index.d.ts +7 -7
  96. package/lib/index.js +24 -24
  97. package/lib/markets/commodities.d.ts +1 -1
  98. package/lib/markets/commodities.js +31 -31
  99. package/lib/markets/crypto.d.ts +1 -1
  100. package/lib/markets/crypto.js +6 -6
  101. package/lib/markets/forex.d.ts +3 -3
  102. package/lib/markets/forex.js +45 -45
  103. package/lib/markets/index.d.ts +5 -5
  104. package/lib/markets/index.js +21 -21
  105. package/lib/markets/indices.d.ts +1 -1
  106. package/lib/markets/indices.js +6 -6
  107. package/lib/markets/stocks.d.ts +3 -3
  108. package/lib/markets/stocks.js +54 -54
  109. package/lib/trade/fees/borrowing/converter.d.ts +13 -13
  110. package/lib/trade/fees/borrowing/converter.js +41 -41
  111. package/lib/trade/fees/borrowing/index.d.ts +55 -55
  112. package/lib/trade/fees/borrowing/index.js +171 -171
  113. package/lib/trade/fees/borrowing/types.d.ts +36 -36
  114. package/lib/trade/fees/borrowing/types.js +2 -2
  115. package/lib/trade/fees/index.d.ts +3 -3
  116. package/lib/trade/fees/index.js +29 -29
  117. package/lib/trade/index.d.ts +8 -8
  118. package/lib/trade/index.js +24 -24
  119. package/lib/trade/liquidation.d.ts +3 -3
  120. package/lib/trade/liquidation.js +16 -16
  121. package/lib/trade/oiWindows.d.ts +3 -3
  122. package/lib/trade/oiWindows.js +20 -20
  123. package/lib/trade/openLimitOrder.d.ts +2 -2
  124. package/lib/trade/openLimitOrder.js +23 -23
  125. package/lib/trade/pnl.d.ts +7 -7
  126. package/lib/trade/pnl.js +33 -33
  127. package/lib/trade/spread.d.ts +2 -2
  128. package/lib/trade/spread.js +22 -22
  129. package/lib/trade/types.d.ts +389 -376
  130. package/lib/trade/types.js +222 -209
  131. package/lib/utils/index.d.ts +1 -1
  132. package/lib/utils/index.js +17 -17
  133. package/lib/utils/packing.d.ts +2 -2
  134. package/lib/utils/packing.js +39 -39
  135. package/lib/vault/index.d.ts +8 -8
  136. package/lib/vault/index.js +10 -10
  137. package/package.json +105 -105
@@ -1,24 +1,24 @@
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("./fees"), exports);
18
- __exportStar(require("./pnl"), exports);
19
- __exportStar(require("./spread"), exports);
20
- __exportStar(require("./openLimitOrder"), exports);
21
- __exportStar(require("./liquidation"), exports);
22
- __exportStar(require("./fees"), exports);
23
- __exportStar(require("./types"), exports);
24
- __exportStar(require("./oiWindows"), exports);
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("./fees"), exports);
18
+ __exportStar(require("./pnl"), exports);
19
+ __exportStar(require("./spread"), exports);
20
+ __exportStar(require("./openLimitOrder"), exports);
21
+ __exportStar(require("./liquidation"), exports);
22
+ __exportStar(require("./fees"), exports);
23
+ __exportStar(require("./types"), exports);
24
+ __exportStar(require("./oiWindows"), exports);
@@ -1,3 +1,3 @@
1
- import { GetBorrowingFeeContext } from "./fees";
2
- import { Trade, TradeInfo, TradeInitialAccFees } from "./types";
3
- export declare const getLiquidationPrice: (trade: Trade, tradeInfo: TradeInfo, initialAccFees: TradeInitialAccFees, context: GetBorrowingFeeContext) => number;
1
+ import { GetBorrowingFeeContext } from "./fees";
2
+ import { Trade, TradeInfo, TradeInitialAccFees } from "./types";
3
+ export declare const getLiquidationPrice: (trade: Trade, tradeInfo: TradeInfo, initialAccFees: TradeInitialAccFees, context: GetBorrowingFeeContext) => number;
@@ -1,16 +1,16 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getLiquidationPrice = void 0;
4
- const fees_1 = require("./fees");
5
- const getLiquidationPrice = (trade, tradeInfo, initialAccFees, context) => {
6
- const posDai = trade.initialPosToken * tradeInfo.tokenPriceDai;
7
- const liqPriceDistance = (trade.openPrice *
8
- (posDai * 0.9 -
9
- (0, fees_1.getBorrowingFee)(posDai * trade.leverage, trade.pairIndex, trade.buy, initialAccFees.borrowing, context))) /
10
- posDai /
11
- trade.leverage;
12
- return trade.buy
13
- ? Math.max(trade.openPrice - liqPriceDistance, 0)
14
- : Math.max(trade.openPrice + liqPriceDistance, 0);
15
- };
16
- exports.getLiquidationPrice = getLiquidationPrice;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getLiquidationPrice = void 0;
4
+ const fees_1 = require("./fees");
5
+ const getLiquidationPrice = (trade, tradeInfo, initialAccFees, context) => {
6
+ const posDai = trade.initialPosToken * tradeInfo.tokenPriceDai;
7
+ const liqPriceDistance = (trade.openPrice *
8
+ (posDai * 0.9 -
9
+ (0, fees_1.getBorrowingFee)(posDai * trade.leverage, trade.pairIndex, trade.buy, initialAccFees.borrowing, context))) /
10
+ posDai /
11
+ trade.leverage;
12
+ return trade.buy
13
+ ? Math.max(trade.openPrice - liqPriceDistance, 0)
14
+ : Math.max(trade.openPrice + liqPriceDistance, 0);
15
+ };
16
+ exports.getLiquidationPrice = getLiquidationPrice;
@@ -1,3 +1,3 @@
1
- import { OiWindows, OiWindowsSettings } from "../trade/types";
2
- export declare const getCurrentOiWindowId: (oiWindowSettings: OiWindowsSettings) => number;
3
- export declare const getActiveOi: (currentOiWindowId: number, windowsCount: number, oiWindows: OiWindows | undefined, buy: boolean) => number;
1
+ import { OiWindows, OiWindowsSettings } from "../trade/types";
2
+ export declare const getCurrentOiWindowId: (oiWindowSettings: OiWindowsSettings) => number;
3
+ export declare const getActiveOi: (currentOiWindowId: number, windowsCount: number, oiWindows: OiWindows | undefined, buy: boolean) => number;
@@ -1,20 +1,20 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getActiveOi = exports.getCurrentOiWindowId = void 0;
4
- const getCurrentOiWindowId = (oiWindowSettings) => {
5
- return Math.floor((Math.floor(Date.now() / 1000) - oiWindowSettings.startTs) /
6
- oiWindowSettings.windowsDuration);
7
- };
8
- exports.getCurrentOiWindowId = getCurrentOiWindowId;
9
- const getActiveOi = (currentOiWindowId, windowsCount, oiWindows, buy) => {
10
- var _a, _b;
11
- if (oiWindows === undefined || windowsCount === 0)
12
- return 0;
13
- let activeOi = 0;
14
- for (let id = currentOiWindowId - (windowsCount - 1); id <= currentOiWindowId; id++) {
15
- activeOi +=
16
- (buy ? (_a = oiWindows === null || oiWindows === void 0 ? void 0 : oiWindows[id]) === null || _a === void 0 ? void 0 : _a.oiLongUsd : (_b = oiWindows === null || oiWindows === void 0 ? void 0 : oiWindows[id]) === null || _b === void 0 ? void 0 : _b.oiShortUsd) || 0;
17
- }
18
- return activeOi;
19
- };
20
- exports.getActiveOi = getActiveOi;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getActiveOi = exports.getCurrentOiWindowId = void 0;
4
+ const getCurrentOiWindowId = (oiWindowSettings) => {
5
+ return Math.floor((Math.floor(Date.now() / 1000) - oiWindowSettings.startTs) /
6
+ oiWindowSettings.windowsDuration);
7
+ };
8
+ exports.getCurrentOiWindowId = getCurrentOiWindowId;
9
+ const getActiveOi = (currentOiWindowId, windowsCount, oiWindows, buy) => {
10
+ var _a, _b;
11
+ if (oiWindows === undefined || windowsCount === 0)
12
+ return 0;
13
+ let activeOi = 0;
14
+ for (let id = currentOiWindowId - (windowsCount - 1); id <= currentOiWindowId; id++) {
15
+ activeOi +=
16
+ (buy ? (_a = oiWindows === null || oiWindows === void 0 ? void 0 : oiWindows[id]) === null || _a === void 0 ? void 0 : _a.oiLongUsd : (_b = oiWindows === null || oiWindows === void 0 ? void 0 : oiWindows[id]) === null || _b === void 0 ? void 0 : _b.oiShortUsd) || 0;
17
+ }
18
+ return activeOi;
19
+ };
20
+ exports.getActiveOi = getActiveOi;
@@ -1,2 +1,2 @@
1
- import { LimitOrder, Pair, PairDepth, OiWindowsSettings, OiWindows } from "./types";
2
- export declare const getFulfillmentPrice: (order: LimitOrder, pair: Pair, pairDepth: PairDepth, oiWindowsSettings?: OiWindowsSettings, oiWindows?: OiWindows) => number;
1
+ import { LimitOrder, Pair, PairDepth, OiWindowsSettings, OiWindows } from "./types";
2
+ export declare const getFulfillmentPrice: (order: LimitOrder, pair: Pair, pairDepth: PairDepth, oiWindowsSettings?: OiWindowsSettings, oiWindows?: OiWindows) => number;
@@ -1,23 +1,23 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getFulfillmentPrice = void 0;
4
- const spread_1 = require("./spread");
5
- const types_1 = require("./types");
6
- const getFulfillmentPrice = (order, pair, pairDepth, oiWindowsSettings, oiWindows) => {
7
- if (!order || !pair) {
8
- return 0;
9
- }
10
- // Get spread percentage
11
- const spreadWithPriceImpactP = (0, spread_1.getSpreadWithPriceImpactP)(pair.spreadP, order.buy, order.positionSize, order.leverage, pairDepth, oiWindowsSettings, oiWindows);
12
- if (spreadWithPriceImpactP === 0) {
13
- return 0;
14
- }
15
- const askingPrice = (order.buy && order.type === types_1.OpenLimitOrderType.REVERSAL) ||
16
- (!order.buy && order.type === types_1.OpenLimitOrderType.MOMENTUM)
17
- ? order.maxPrice
18
- : order.minPrice;
19
- return order.buy
20
- ? askingPrice * (1 + spreadWithPriceImpactP)
21
- : askingPrice * (1 - spreadWithPriceImpactP);
22
- };
23
- exports.getFulfillmentPrice = getFulfillmentPrice;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getFulfillmentPrice = void 0;
4
+ const spread_1 = require("./spread");
5
+ const types_1 = require("./types");
6
+ const getFulfillmentPrice = (order, pair, pairDepth, oiWindowsSettings, oiWindows) => {
7
+ if (!order || !pair) {
8
+ return 0;
9
+ }
10
+ // Get spread percentage
11
+ const spreadWithPriceImpactP = (0, spread_1.getSpreadWithPriceImpactP)(pair.spreadP, order.buy, order.positionSize, order.leverage, pairDepth, oiWindowsSettings, oiWindows);
12
+ if (spreadWithPriceImpactP === 0) {
13
+ return 0;
14
+ }
15
+ const askingPrice = (order.buy && order.type === types_1.OpenLimitOrderType.REVERSAL) ||
16
+ (!order.buy && order.type === types_1.OpenLimitOrderType.MOMENTUM)
17
+ ? order.maxPrice
18
+ : order.minPrice;
19
+ return order.buy
20
+ ? askingPrice * (1 + spreadWithPriceImpactP)
21
+ : askingPrice * (1 - spreadWithPriceImpactP);
22
+ };
23
+ exports.getFulfillmentPrice = getFulfillmentPrice;
@@ -1,7 +1,7 @@
1
- import { GetBorrowingFeeContext } from "./fees";
2
- import { Fee, Trade, TradeInfo, TradeInitialAccFees } from "./types";
3
- export type GetPnlContext = GetBorrowingFeeContext & {
4
- fee: Fee | undefined;
5
- maxGainP: number | undefined;
6
- };
7
- export declare const getPnl: (price: number | undefined, trade: Trade, tradeInfo: TradeInfo, initialAccFees: TradeInitialAccFees, useFees: boolean, context: GetPnlContext) => number[] | undefined;
1
+ import { GetBorrowingFeeContext } from "./fees";
2
+ import { Fee, Trade, TradeInfo, TradeInitialAccFees } from "./types";
3
+ export type GetPnlContext = GetBorrowingFeeContext & {
4
+ fee: Fee | undefined;
5
+ maxGainP: number | undefined;
6
+ };
7
+ export declare const getPnl: (price: number | undefined, trade: Trade, tradeInfo: TradeInfo, initialAccFees: TradeInitialAccFees, useFees: boolean, context: GetPnlContext) => number[] | undefined;
package/lib/trade/pnl.js CHANGED
@@ -1,33 +1,33 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getPnl = void 0;
4
- const fees_1 = require("./fees");
5
- const getPnl = (price, trade, tradeInfo, initialAccFees, useFees, context) => {
6
- if (!price) {
7
- return;
8
- }
9
- const posDai = trade.initialPosToken * tradeInfo.tokenPriceDai;
10
- const { openPrice, leverage } = trade;
11
- const { maxGainP, fee } = context;
12
- const maxGain = maxGainP === undefined ? Infinity : (maxGainP / 100) * posDai;
13
- let pnlDai = trade.buy
14
- ? ((price - openPrice) / openPrice) * leverage * posDai
15
- : ((openPrice - price) / openPrice) * leverage * posDai;
16
- pnlDai = pnlDai > maxGain ? maxGain : pnlDai;
17
- if (useFees) {
18
- pnlDai -= (0, fees_1.getBorrowingFee)(posDai * trade.leverage, trade.pairIndex, trade.buy, initialAccFees.borrowing, context);
19
- }
20
- let pnlPercentage = (pnlDai / posDai) * 100;
21
- // Can be liquidated
22
- if (pnlPercentage <= -90) {
23
- pnlPercentage = -100;
24
- }
25
- else {
26
- pnlDai -= (0, fees_1.getClosingFee)(posDai, trade.leverage, trade.pairIndex, fee);
27
- pnlPercentage = (pnlDai / posDai) * 100;
28
- }
29
- pnlPercentage = pnlPercentage < -100 ? -100 : pnlPercentage;
30
- pnlDai = (posDai * pnlPercentage) / 100;
31
- return [pnlDai, pnlPercentage];
32
- };
33
- exports.getPnl = getPnl;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPnl = void 0;
4
+ const fees_1 = require("./fees");
5
+ const getPnl = (price, trade, tradeInfo, initialAccFees, useFees, context) => {
6
+ if (!price) {
7
+ return;
8
+ }
9
+ const posDai = trade.initialPosToken * tradeInfo.tokenPriceDai;
10
+ const { openPrice, leverage } = trade;
11
+ const { maxGainP, fee } = context;
12
+ const maxGain = maxGainP === undefined ? Infinity : (maxGainP / 100) * posDai;
13
+ let pnlDai = trade.buy
14
+ ? ((price - openPrice) / openPrice) * leverage * posDai
15
+ : ((openPrice - price) / openPrice) * leverage * posDai;
16
+ pnlDai = pnlDai > maxGain ? maxGain : pnlDai;
17
+ if (useFees) {
18
+ pnlDai -= (0, fees_1.getBorrowingFee)(posDai * trade.leverage, trade.pairIndex, trade.buy, initialAccFees.borrowing, context);
19
+ }
20
+ let pnlPercentage = (pnlDai / posDai) * 100;
21
+ // Can be liquidated
22
+ if (pnlPercentage <= -90) {
23
+ pnlPercentage = -100;
24
+ }
25
+ else {
26
+ pnlDai -= (0, fees_1.getClosingFee)(posDai, trade.leverage, trade.pairIndex, fee);
27
+ pnlPercentage = (pnlDai / posDai) * 100;
28
+ }
29
+ pnlPercentage = pnlPercentage < -100 ? -100 : pnlPercentage;
30
+ pnlDai = (posDai * pnlPercentage) / 100;
31
+ return [pnlDai, pnlPercentage];
32
+ };
33
+ exports.getPnl = getPnl;
@@ -1,2 +1,2 @@
1
- import { OiWindows, OiWindowsSettings, PairDepth } from "./types";
2
- export declare const getSpreadWithPriceImpactP: (pairSpreadP: number, buy: boolean, collateral: number, leverage: number, pairDepth: PairDepth | undefined, oiWindowsSettings?: OiWindowsSettings | undefined, oiWindows?: OiWindows | undefined) => number;
1
+ import { OiWindows, OiWindowsSettings, PairDepth } from "./types";
2
+ export declare const getSpreadWithPriceImpactP: (pairSpreadP: number, buy: boolean, collateral: number, leverage: number, pairDepth: PairDepth | undefined, oiWindowsSettings?: OiWindowsSettings | undefined, oiWindows?: OiWindows | undefined) => number;
@@ -1,22 +1,22 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getSpreadWithPriceImpactP = void 0;
4
- const oiWindows_1 = require("./oiWindows");
5
- const getSpreadWithPriceImpactP = (pairSpreadP, buy, collateral, leverage, pairDepth, oiWindowsSettings, oiWindows) => {
6
- if (pairSpreadP === undefined) {
7
- return 0;
8
- }
9
- const onePercentDepth = buy
10
- ? pairDepth === null || pairDepth === void 0 ? void 0 : pairDepth.onePercentDepthAboveUsd
11
- : pairDepth === null || pairDepth === void 0 ? void 0 : pairDepth.onePercentDepthBelowUsd;
12
- let activeOi = undefined;
13
- if (oiWindowsSettings !== undefined && (oiWindowsSettings === null || oiWindowsSettings === void 0 ? void 0 : oiWindowsSettings.windowsCount) > 0) {
14
- activeOi = (0, oiWindows_1.getActiveOi)((0, oiWindows_1.getCurrentOiWindowId)(oiWindowsSettings), oiWindowsSettings.windowsCount, oiWindows, buy);
15
- }
16
- if (!onePercentDepth || activeOi === undefined || collateral === undefined) {
17
- return pairSpreadP;
18
- }
19
- return (pairSpreadP +
20
- (activeOi + (collateral * leverage) / 2) / onePercentDepth / 100);
21
- };
22
- exports.getSpreadWithPriceImpactP = getSpreadWithPriceImpactP;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSpreadWithPriceImpactP = void 0;
4
+ const oiWindows_1 = require("./oiWindows");
5
+ const getSpreadWithPriceImpactP = (pairSpreadP, buy, collateral, leverage, pairDepth, oiWindowsSettings, oiWindows) => {
6
+ if (pairSpreadP === undefined) {
7
+ return 0;
8
+ }
9
+ const onePercentDepth = buy
10
+ ? pairDepth === null || pairDepth === void 0 ? void 0 : pairDepth.onePercentDepthAboveUsd
11
+ : pairDepth === null || pairDepth === void 0 ? void 0 : pairDepth.onePercentDepthBelowUsd;
12
+ let activeOi = undefined;
13
+ if (oiWindowsSettings !== undefined && (oiWindowsSettings === null || oiWindowsSettings === void 0 ? void 0 : oiWindowsSettings.windowsCount) > 0) {
14
+ activeOi = (0, oiWindows_1.getActiveOi)((0, oiWindows_1.getCurrentOiWindowId)(oiWindowsSettings), oiWindowsSettings.windowsCount, oiWindows, buy);
15
+ }
16
+ if (!onePercentDepth || activeOi === undefined || collateral === undefined) {
17
+ return pairSpreadP;
18
+ }
19
+ return (pairSpreadP +
20
+ (activeOi + (collateral * leverage) / 2) / onePercentDepth / 100);
21
+ };
22
+ exports.getSpreadWithPriceImpactP = getSpreadWithPriceImpactP;