@gainsnetwork/sdk 0.0.50 → 0.0.51-multi-collat-rc1

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 (122) hide show
  1. package/README.md +11 -11
  2. package/lib/constants.d.ts +220 -221
  3. package/lib/constants.js +238 -239
  4. package/lib/contracts/addresses.d.ts +2 -2
  5. package/lib/contracts/addresses.js +19 -15
  6. package/lib/contracts/addresses.json +60 -35
  7. package/lib/contracts/index.d.ts +6 -6
  8. package/lib/contracts/index.js +34 -35
  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 -1341
  12. package/lib/contracts/types/generated/GNSBorrowingFees.js +2 -2
  13. package/lib/contracts/types/generated/GNSMultiCollatDiamond.d.ts +1740 -0
  14. package/lib/contracts/types/generated/{GNSPairsStorageV6.js → GNSMultiCollatDiamond.js} +2 -2
  15. package/lib/contracts/types/generated/GNSNftRewardsV6.d.ts +533 -533
  16. package/lib/contracts/types/generated/GNSNftRewardsV6.js +2 -2
  17. package/lib/contracts/types/generated/GNSNftRewardsV6_3_1.d.ts +613 -613
  18. package/lib/contracts/types/generated/GNSNftRewardsV6_3_1.js +2 -2
  19. package/lib/contracts/types/generated/GNSTrading.d.ts +758 -0
  20. package/lib/contracts/types/generated/{GNSBorrowingFeesV6_4.js → GNSTrading.js} +2 -2
  21. package/lib/contracts/types/generated/{GNSTradingCallbacksV6_4.d.ts → GNSTradingCallbacks.d.ts} +875 -821
  22. package/lib/contracts/types/generated/{GNSTradingCallbacksV6_4.js → GNSTradingCallbacks.js} +2 -2
  23. package/lib/contracts/types/generated/GNSTradingStorage.d.ts +1387 -0
  24. package/lib/contracts/types/generated/{GNSPairInfosV6_1.js → GNSTradingStorage.js} +2 -2
  25. package/lib/contracts/types/generated/GTokenOpenPnlFeed.d.ts +557 -557
  26. package/lib/contracts/types/generated/GTokenOpenPnlFeed.js +2 -2
  27. package/lib/contracts/types/generated/GTokenV6_3_2.d.ts +1838 -1838
  28. package/lib/contracts/types/generated/GTokenV6_3_2.js +2 -2
  29. package/lib/contracts/types/generated/common.d.ts +22 -22
  30. package/lib/contracts/types/generated/common.js +2 -2
  31. package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.d.ts +83 -83
  32. package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.js +2691 -2691
  33. package/lib/contracts/types/generated/factories/GNSBorrowingFees__factory.d.ts +124 -128
  34. package/lib/contracts/types/generated/factories/GNSBorrowingFees__factory.js +1789 -2206
  35. package/lib/contracts/types/generated/factories/GNSMultiCollatDiamond__factory.d.ts +144 -0
  36. package/lib/contracts/types/generated/factories/GNSMultiCollatDiamond__factory.js +3094 -0
  37. package/lib/contracts/types/generated/factories/GNSNftRewardsV6_3_1__factory.d.ts +100 -100
  38. package/lib/contracts/types/generated/factories/GNSNftRewardsV6_3_1__factory.js +1116 -1116
  39. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.d.ts +100 -100
  40. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.js +1003 -1003
  41. package/lib/contracts/types/generated/factories/GNSTradingCallbacks__factory.d.ts +113 -0
  42. package/lib/contracts/types/generated/factories/GNSTradingCallbacks__factory.js +1428 -0
  43. package/lib/contracts/types/generated/factories/GNSTradingStorage__factory.d.ts +96 -0
  44. package/lib/contracts/types/generated/factories/GNSTradingStorage__factory.js +2241 -0
  45. package/lib/contracts/types/generated/factories/GNSTrading__factory.d.ts +95 -0
  46. package/lib/contracts/types/generated/factories/GNSTrading__factory.js +1071 -0
  47. package/lib/contracts/types/generated/factories/GTokenOpenPnlFeed__factory.d.ts +59 -59
  48. package/lib/contracts/types/generated/factories/GTokenOpenPnlFeed__factory.js +765 -765
  49. package/lib/contracts/types/generated/factories/GTokenV6_3_2__factory.d.ts +110 -110
  50. package/lib/contracts/types/generated/factories/GTokenV6_3_2__factory.js +2682 -2682
  51. package/lib/contracts/types/generated/factories/index.d.ts +10 -9
  52. package/lib/contracts/types/generated/factories/index.js +26 -24
  53. package/lib/contracts/types/generated/index.d.ts +21 -19
  54. package/lib/contracts/types/generated/index.js +47 -45
  55. package/lib/contracts/types/index.d.ts +27 -23
  56. package/lib/contracts/types/index.js +10 -2
  57. package/lib/contracts/utils/borrowingFees.d.ts +8 -8
  58. package/lib/contracts/utils/borrowingFees.js +28 -28
  59. package/lib/contracts/utils/index.d.ts +4 -4
  60. package/lib/contracts/utils/index.js +20 -20
  61. package/lib/contracts/utils/openLimitOrders.d.ts +8 -8
  62. package/lib/contracts/utils/openLimitOrders.js +88 -88
  63. package/lib/contracts/utils/openTrades.d.ts +9 -9
  64. package/lib/contracts/utils/openTrades.js +186 -172
  65. package/lib/contracts/utils/pairs.d.ts +6 -7
  66. package/lib/contracts/utils/pairs.js +94 -115
  67. package/lib/index.d.ts +7 -7
  68. package/lib/index.js +24 -24
  69. package/lib/markets/commodities.d.ts +1 -1
  70. package/lib/markets/commodities.js +31 -31
  71. package/lib/markets/crypto.d.ts +1 -1
  72. package/lib/markets/crypto.js +6 -6
  73. package/lib/markets/forex.d.ts +2 -2
  74. package/lib/markets/forex.js +38 -38
  75. package/lib/markets/index.d.ts +5 -5
  76. package/lib/markets/index.js +21 -21
  77. package/lib/markets/indices.d.ts +1 -1
  78. package/lib/markets/indices.js +6 -6
  79. package/lib/markets/stocks.d.ts +3 -3
  80. package/lib/markets/stocks.js +54 -54
  81. package/lib/trade/fees/borrowing/converter.d.ts +13 -13
  82. package/lib/trade/fees/borrowing/converter.js +41 -41
  83. package/lib/trade/fees/borrowing/index.d.ts +55 -55
  84. package/lib/trade/fees/borrowing/index.js +171 -171
  85. package/lib/trade/fees/borrowing/types.d.ts +36 -36
  86. package/lib/trade/fees/borrowing/types.js +2 -2
  87. package/lib/trade/fees/index.d.ts +3 -16
  88. package/lib/trade/fees/index.js +29 -60
  89. package/lib/trade/index.d.ts +8 -8
  90. package/lib/trade/index.js +24 -24
  91. package/lib/trade/liquidation.d.ts +7 -7
  92. package/lib/trade/liquidation.js +16 -18
  93. package/lib/trade/oiWindows.d.ts +3 -3
  94. package/lib/trade/oiWindows.js +20 -19
  95. package/lib/trade/openLimitOrder.d.ts +2 -2
  96. package/lib/trade/openLimitOrder.js +23 -24
  97. package/lib/trade/pnl.d.ts +9 -9
  98. package/lib/trade/pnl.js +33 -44
  99. package/lib/trade/spread.d.ts +2 -3
  100. package/lib/trade/spread.js +22 -32
  101. package/lib/trade/types.d.ts +178 -185
  102. package/lib/trade/types.js +14 -14
  103. package/lib/utils/index.d.ts +1 -1
  104. package/lib/utils/index.js +17 -17
  105. package/lib/utils/packing.d.ts +2 -2
  106. package/lib/utils/packing.js +39 -39
  107. package/lib/vault/index.d.ts +8 -7
  108. package/lib/vault/index.js +10 -11
  109. package/package.json +104 -104
  110. package/lib/contracts/types/generated/GNSBorrowingFeesV6_4.d.ts +0 -1058
  111. package/lib/contracts/types/generated/GNSPairInfosV6_1.d.ts +0 -911
  112. package/lib/contracts/types/generated/GNSPairsStorageV6.d.ts +0 -660
  113. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_4__factory.d.ts +0 -113
  114. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_4__factory.js +0 -1742
  115. package/lib/contracts/types/generated/factories/GNSPairInfosV6_1__factory.d.ts +0 -98
  116. package/lib/contracts/types/generated/factories/GNSPairInfosV6_1__factory.js +0 -1485
  117. package/lib/contracts/types/generated/factories/GNSPairsStorageV6__factory.d.ts +0 -117
  118. package/lib/contracts/types/generated/factories/GNSPairsStorageV6__factory.js +0 -1265
  119. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_4__factory.d.ts +0 -82
  120. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_4__factory.js +0 -1326
  121. package/lib/trade/fees.d.ts +0 -15
  122. package/lib/trade/fees.js +0 -45
@@ -1,8 +1,8 @@
1
- export * from "./fees";
2
- export * from "./pnl";
3
- export * from "./spread";
4
- export * from "./openLimitOrder";
5
- export * from "./liquidation";
6
- export * from "./fees";
7
- export * from "./types";
8
- export * from "./oiWindows";
1
+ export * from "./fees";
2
+ export * from "./pnl";
3
+ export * from "./spread";
4
+ export * from "./openLimitOrder";
5
+ export * from "./liquidation";
6
+ export * from "./fees";
7
+ export * from "./types";
8
+ export * from "./oiWindows";
@@ -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,7 +1,7 @@
1
- import { GetFundingFeeContext, GetRolloverFeeContext, GetBorrowingFeeContext } from "./fees";
2
- import { Trade, TradeInfo, TradeInitialAccFees } from "./types";
3
- export type GetLiqPriceContext = GetFundingFeeContext & GetRolloverFeeContext & GetBorrowingFeeContext & {
4
- currentBlock: number;
5
- currentL1Block: number;
6
- };
7
- export declare const getLiquidationPrice: (trade: Trade, tradeInfo: TradeInfo, initialAccFees: TradeInitialAccFees, context: GetLiqPriceContext) => number;
1
+ import { GetBorrowingFeeContext } from "./fees";
2
+ import { Trade, TradeInfo, TradeInitialAccFees } from "./types";
3
+ export type GetLiqPriceContext = GetBorrowingFeeContext & {
4
+ currentBlock: number;
5
+ currentL1Block: number;
6
+ };
7
+ export declare const getLiquidationPrice: (trade: Trade, tradeInfo: TradeInfo, initialAccFees: TradeInitialAccFees, context: GetLiqPriceContext) => number;
@@ -1,18 +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.getRolloverFee)(posDai, initialAccFees.rollover, initialAccFees.openedAfterUpdate, Object.assign(Object.assign({}, context), { currentBlock: context.currentL1Block })) -
10
- (0, fees_1.getBorrowingFee)(posDai * trade.leverage, trade.pairIndex, trade.buy, initialAccFees.borrowing, context) -
11
- (0, fees_1.getFundingFee)(posDai * trade.leverage, initialAccFees.funding, trade.buy, initialAccFees.openedAfterUpdate, Object.assign(Object.assign({}, context), { currentBlock: context.currentL1Block })))) /
12
- posDai /
13
- trade.leverage;
14
- return trade.buy
15
- ? Math.max(trade.openPrice - liqPriceDistance, 0)
16
- : Math.max(trade.openPrice + liqPriceDistance, 0);
17
- };
18
- 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,19 +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 += (buy ? (_a = oiWindows === null || oiWindows === void 0 ? void 0 : oiWindows[id]) === null || _a === void 0 ? void 0 : _a.long : (_b = oiWindows === null || oiWindows === void 0 ? void 0 : oiWindows[id]) === null || _b === void 0 ? void 0 : _b.short) || 0;
16
- }
17
- return activeOi;
18
- };
19
- 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, OpenInterest, Pair, PairParams, OiWindowsSettings, OiWindows } from "./types";
2
- export declare const getFulfillmentPrice: (order: LimitOrder, pair: Pair, pairParams: PairParams, openInterest: OpenInterest, 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,24 +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, pairParams, openInterest, oiWindowsSettings, oiWindows) => {
7
- if (!order || !pair) {
8
- return 0;
9
- }
10
- // Get spread percentage
11
- const baseSpreadP = (0, spread_1.getBaseSpreadP)(pair.spreadP, order.spreadReductionP);
12
- const spreadWithPriceImpactP = (0, spread_1.getSpreadWithPriceImpactP)(baseSpreadP, order.buy, order.positionSize, order.leverage, pairParams, openInterest, oiWindowsSettings, oiWindows);
13
- if (spreadWithPriceImpactP === 0) {
14
- return 0;
15
- }
16
- const askingPrice = (order.buy && order.type === types_1.OpenLimitOrderType.REVERSAL) ||
17
- (!order.buy && order.type === types_1.OpenLimitOrderType.MOMENTUM)
18
- ? order.maxPrice
19
- : order.minPrice;
20
- return order.buy
21
- ? askingPrice * (1 + spreadWithPriceImpactP)
22
- : askingPrice * (1 - spreadWithPriceImpactP);
23
- };
24
- 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,9 +1,9 @@
1
- import { GetBorrowingFeeContext, GetFundingFeeContext, GetRolloverFeeContext } from "./fees";
2
- import { Fee, Trade, TradeInfo, TradeInitialAccFees } from "./types";
3
- export type GetPnlContext = GetRolloverFeeContext & GetFundingFeeContext & GetBorrowingFeeContext & {
4
- currentBlock: number;
5
- currentL1Block: number;
6
- fee: Fee | undefined;
7
- maxGainP: number | undefined;
8
- };
9
- 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
+ currentBlock: number;
5
+ currentL1Block: number;
6
+ fee: Fee | undefined;
7
+ maxGainP: number | undefined;
8
+ };
9
+ 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,44 +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, pairParams, pairRolloverFees, pairFundingFees, openInterest, fee, currentL1Block, } = 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.getRolloverFee)(posDai, initialAccFees.rollover, initialAccFees.openedAfterUpdate, {
19
- currentBlock: currentL1Block,
20
- pairParams,
21
- pairRolloverFees,
22
- });
23
- pnlDai -= (0, fees_1.getFundingFee)(posDai * trade.leverage, initialAccFees.funding, trade.buy, initialAccFees.openedAfterUpdate, {
24
- currentBlock: currentL1Block,
25
- pairParams,
26
- pairFundingFees,
27
- openInterest,
28
- });
29
- pnlDai -= (0, fees_1.getBorrowingFee)(posDai * trade.leverage, trade.pairIndex, trade.buy, initialAccFees.borrowing, context);
30
- }
31
- let pnlPercentage = (pnlDai / posDai) * 100;
32
- // Can be liquidated
33
- if (pnlPercentage <= -90) {
34
- pnlPercentage = -100;
35
- }
36
- else {
37
- pnlDai -= (0, fees_1.getClosingFee)(posDai, trade.leverage, trade.pairIndex, fee);
38
- pnlPercentage = (pnlDai / posDai) * 100;
39
- }
40
- pnlPercentage = pnlPercentage < -100 ? -100 : pnlPercentage;
41
- pnlDai = (posDai * pnlPercentage) / 100;
42
- return [pnlDai, pnlPercentage];
43
- };
44
- 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,3 +1,2 @@
1
- import { OiWindows, OiWindowsSettings, OpenInterest, PairParams } from "./types";
2
- export declare const getBaseSpreadP: (pairSpreadP: number | undefined, spreadReductionP: number | undefined) => number;
3
- export declare const getSpreadWithPriceImpactP: (baseSpreadP: number, buy: boolean, collateral: number, leverage: number, pairParams: PairParams | undefined, openInterest: OpenInterest | 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,32 +1,22 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getSpreadWithPriceImpactP = exports.getBaseSpreadP = void 0;
4
- const oiWindows_1 = require("./oiWindows");
5
- const getBaseSpreadP = (pairSpreadP, spreadReductionP) => {
6
- if (!pairSpreadP) {
7
- return 0;
8
- }
9
- if (!spreadReductionP) {
10
- return pairSpreadP;
11
- }
12
- return (pairSpreadP * (100 - spreadReductionP)) / 100;
13
- };
14
- exports.getBaseSpreadP = getBaseSpreadP;
15
- const getSpreadWithPriceImpactP = (baseSpreadP, buy, collateral, leverage, pairParams, openInterest, oiWindowsSettings, oiWindows) => {
16
- if (baseSpreadP === undefined) {
17
- return 0;
18
- }
19
- const onePercentDepth = buy
20
- ? pairParams === null || pairParams === void 0 ? void 0 : pairParams.onePercentDepthAbove
21
- : pairParams === null || pairParams === void 0 ? void 0 : pairParams.onePercentDepthBelow;
22
- let activeOi = buy ? openInterest === null || openInterest === void 0 ? void 0 : openInterest.long : openInterest === null || openInterest === void 0 ? void 0 : openInterest.short;
23
- if (oiWindowsSettings !== undefined && (oiWindowsSettings === null || oiWindowsSettings === void 0 ? void 0 : oiWindowsSettings.windowsCount) > 0) {
24
- activeOi = (0, oiWindows_1.getActiveOi)((0, oiWindows_1.getCurrentOiWindowId)(oiWindowsSettings), oiWindowsSettings.windowsCount, oiWindows, buy);
25
- }
26
- if (!onePercentDepth || activeOi === undefined || collateral === undefined) {
27
- return baseSpreadP;
28
- }
29
- return (baseSpreadP +
30
- (activeOi + (collateral * leverage) / 2) / onePercentDepth / 100);
31
- };
32
- 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;