@gainsnetwork/sdk 1.4.2-rc1 → 1.4.2-rc2

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 (94) hide show
  1. package/lib/constants.js +0 -1
  2. package/lib/trade/liquidation.d.ts +12 -0
  3. package/lib/trade/liquidation.js +55 -0
  4. package/lib/trade/pnl.d.ts +10 -0
  5. package/lib/trade/pnl.js +33 -0
  6. package/package.json +1 -1
  7. package/lib/contracts/types/generated/GFarmTradingStorageV5.d.ts +0 -1911
  8. package/lib/contracts/types/generated/GFarmTradingStorageV5.js +0 -2
  9. package/lib/contracts/types/generated/GNSBorrowingFees.d.ts +0 -1067
  10. package/lib/contracts/types/generated/GNSBorrowingFees.js +0 -2
  11. package/lib/contracts/types/generated/GNSBorrowingFeesV6_3_2.d.ts +0 -979
  12. package/lib/contracts/types/generated/GNSBorrowingFeesV6_3_2.js +0 -2
  13. package/lib/contracts/types/generated/GNSBorrowingFeesV6_4.d.ts +0 -1058
  14. package/lib/contracts/types/generated/GNSBorrowingFeesV6_4.js +0 -2
  15. package/lib/contracts/types/generated/GNSNftRewardsV6.d.ts +0 -533
  16. package/lib/contracts/types/generated/GNSNftRewardsV6.js +0 -2
  17. package/lib/contracts/types/generated/GNSNftRewardsV6_3_1.d.ts +0 -613
  18. package/lib/contracts/types/generated/GNSNftRewardsV6_3_1.js +0 -2
  19. package/lib/contracts/types/generated/GNSPairInfosV6_1.d.ts +0 -911
  20. package/lib/contracts/types/generated/GNSPairInfosV6_1.js +0 -2
  21. package/lib/contracts/types/generated/GNSPairsStorageV6.d.ts +0 -660
  22. package/lib/contracts/types/generated/GNSPairsStorageV6.js +0 -2
  23. package/lib/contracts/types/generated/GNSTrading.d.ts +0 -758
  24. package/lib/contracts/types/generated/GNSTrading.js +0 -2
  25. package/lib/contracts/types/generated/GNSTradingCallbacks.d.ts +0 -875
  26. package/lib/contracts/types/generated/GNSTradingCallbacks.js +0 -2
  27. package/lib/contracts/types/generated/GNSTradingCallbacksV6_3_2.d.ts +0 -806
  28. package/lib/contracts/types/generated/GNSTradingCallbacksV6_3_2.js +0 -2
  29. package/lib/contracts/types/generated/GNSTradingCallbacksV6_4.d.ts +0 -821
  30. package/lib/contracts/types/generated/GNSTradingCallbacksV6_4.js +0 -2
  31. package/lib/contracts/types/generated/GNSTradingStorage.d.ts +0 -1387
  32. package/lib/contracts/types/generated/GNSTradingStorage.js +0 -2
  33. package/lib/contracts/types/generated/GTokenV6_3_2.d.ts +0 -1838
  34. package/lib/contracts/types/generated/GTokenV6_3_2.js +0 -2
  35. package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.d.ts +0 -83
  36. package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.js +0 -2691
  37. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_3_2__factory.d.ts +0 -88
  38. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_3_2__factory.js +0 -1654
  39. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_4__factory.d.ts +0 -113
  40. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_4__factory.js +0 -1742
  41. package/lib/contracts/types/generated/factories/GNSBorrowingFees__factory.d.ts +0 -124
  42. package/lib/contracts/types/generated/factories/GNSBorrowingFees__factory.js +0 -1784
  43. package/lib/contracts/types/generated/factories/GNSNftRewardsV6_3_1__factory.d.ts +0 -100
  44. package/lib/contracts/types/generated/factories/GNSNftRewardsV6_3_1__factory.js +0 -1116
  45. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.d.ts +0 -100
  46. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.js +0 -1003
  47. package/lib/contracts/types/generated/factories/GNSPairInfosV6_1__factory.d.ts +0 -98
  48. package/lib/contracts/types/generated/factories/GNSPairInfosV6_1__factory.js +0 -1485
  49. package/lib/contracts/types/generated/factories/GNSPairsStorageV6__factory.d.ts +0 -117
  50. package/lib/contracts/types/generated/factories/GNSPairsStorageV6__factory.js +0 -1265
  51. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_3_2__factory.d.ts +0 -82
  52. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_3_2__factory.js +0 -1273
  53. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_4__factory.d.ts +0 -82
  54. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_4__factory.js +0 -1326
  55. package/lib/contracts/types/generated/factories/GNSTradingCallbacks__factory.d.ts +0 -113
  56. package/lib/contracts/types/generated/factories/GNSTradingCallbacks__factory.js +0 -1428
  57. package/lib/contracts/types/generated/factories/GNSTradingStorage__factory.d.ts +0 -96
  58. package/lib/contracts/types/generated/factories/GNSTradingStorage__factory.js +0 -2241
  59. package/lib/contracts/types/generated/factories/GNSTrading__factory.d.ts +0 -95
  60. package/lib/contracts/types/generated/factories/GNSTrading__factory.js +0 -1071
  61. package/lib/contracts/types/generated/factories/GTokenV6_3_2__factory.d.ts +0 -110
  62. package/lib/contracts/types/generated/factories/GTokenV6_3_2__factory.js +0 -2682
  63. package/lib/markets/oi/fetcher.d.ts +0 -58
  64. package/lib/markets/oi/fetcher.js +0 -181
  65. package/lib/markets/oi/validation.d.ts +0 -80
  66. package/lib/markets/oi/validation.js +0 -172
  67. package/lib/pricing/depthBands/converter.d.ts +0 -65
  68. package/lib/pricing/depthBands/converter.js +0 -155
  69. package/lib/pricing/depthBands/decoder.d.ts +0 -32
  70. package/lib/pricing/depthBands/decoder.js +0 -109
  71. package/lib/pricing/depthBands/encoder.d.ts +0 -19
  72. package/lib/pricing/depthBands/encoder.js +0 -105
  73. package/lib/pricing/depthBands/index.d.ts +0 -8
  74. package/lib/pricing/depthBands/index.js +0 -26
  75. package/lib/pricing/depthBands/types.d.ts +0 -49
  76. package/lib/pricing/depthBands/types.js +0 -10
  77. package/lib/pricing/depthBands/validator.d.ts +0 -22
  78. package/lib/pricing/depthBands/validator.js +0 -113
  79. package/lib/pricing/depthBands.d.ts +0 -39
  80. package/lib/pricing/depthBands.js +0 -94
  81. package/lib/pricing/index.d.ts +0 -4
  82. package/lib/pricing/index.js +0 -20
  83. package/lib/trade/effectiveLeverage/builder.d.ts +0 -23
  84. package/lib/trade/effectiveLeverage/builder.js +0 -30
  85. package/lib/trade/fees/holdingFees/index.d.ts +0 -46
  86. package/lib/trade/fees/holdingFees/index.js +0 -105
  87. package/lib/trade/fees/holdingFees/types.d.ts +0 -23
  88. package/lib/trade/fees/holdingFees/types.js +0 -5
  89. package/lib/trade/fees/trading/holdingFees.d.ts +0 -28
  90. package/lib/trade/fees/trading/holdingFees.js +0 -66
  91. package/lib/trade/fees/trading/holdingFeesStructured.d.ts +0 -28
  92. package/lib/trade/fees/trading/holdingFeesStructured.js +0 -66
  93. package/lib/trade/priceImpact/cumulVol/types.d.ts +0 -11
  94. package/lib/trade/priceImpact/cumulVol/types.js +0 -2
package/lib/constants.js CHANGED
@@ -478,7 +478,6 @@ exports.delistedPairIxs = new Set([
478
478
  160, 163, 170, 179, 182, 183, 188, 189, 190, 208, 209, 225, 229, 230, 231,
479
479
  238, 239, 241, 250, 253, 254, 258, 270, 275, 276, 278, 279, 282, 285, 290,
480
480
  294, 296, 305, 311, 330, 349, 352, 353, 354, 355, 357, 365, 366, 395, 396,
481
- 414, 415, 416, 417,
482
481
  ]);
483
482
  exports.delistedGroupsIxs = new Set([]);
484
483
  exports.DEFAULT_PROTECTION_CLOSE_FACTOR = 1;
@@ -0,0 +1,12 @@
1
+ import { GetBorrowingFeeContext, BorrowingFee } from "./fees";
2
+ import { Fee, LiquidationParams, Trade, UserPriceImpact } from "./types";
3
+ import { ContractsVersion } from "../contracts/types";
4
+ export type GetLiquidationPriceContext = GetBorrowingFeeContext & {
5
+ liquidationParams: LiquidationParams | undefined;
6
+ pairSpreadP: number | undefined;
7
+ collateralPriceUsd: number | undefined;
8
+ contractsVersion: ContractsVersion | undefined;
9
+ userPriceImpact?: UserPriceImpact | undefined;
10
+ };
11
+ export declare const getLiquidationPrice: (trade: Trade, fee: Fee, initialAccFees: BorrowingFee.InitialAccFees, context: GetLiquidationPriceContext) => number;
12
+ export declare const getLiqPnlThresholdP: (liquidationParams: LiquidationParams | undefined, leverage: number | undefined) => number;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getLiqPnlThresholdP = exports.getLiquidationPrice = void 0;
4
+ const fees_1 = require("./fees");
5
+ const spread_1 = require("./spread");
6
+ const types_1 = require("../contracts/types");
7
+ const getLiquidationPrice = (trade, fee, initialAccFees, context) => {
8
+ var _a, _b;
9
+ const closingFee = (0, fees_1.getClosingFee)(trade.collateralAmount, trade.leverage, trade.pairIndex, fee, context.collateralPriceUsd);
10
+ const borrowingFee = (0, fees_1.getBorrowingFee)(trade.collateralAmount * trade.leverage, trade.pairIndex, trade.long, initialAccFees, context);
11
+ const liqThresholdP = (0, exports.getLiqPnlThresholdP)(context.liquidationParams, trade.leverage);
12
+ let liqPriceDistance = (trade.openPrice *
13
+ (trade.collateralAmount * liqThresholdP - (borrowingFee + closingFee))) /
14
+ trade.collateralAmount /
15
+ trade.leverage;
16
+ if ((context === null || context === void 0 ? void 0 : context.contractsVersion) !== undefined &&
17
+ context.contractsVersion >= types_1.ContractsVersion.V9_2 &&
18
+ ((((_a = context === null || context === void 0 ? void 0 : context.liquidationParams) === null || _a === void 0 ? void 0 : _a.maxLiqSpreadP) !== undefined &&
19
+ context.liquidationParams.maxLiqSpreadP > 0) ||
20
+ (((_b = context === null || context === void 0 ? void 0 : context.userPriceImpact) === null || _b === void 0 ? void 0 : _b.fixedSpreadP) !== undefined &&
21
+ context.userPriceImpact.fixedSpreadP > 0))) {
22
+ const closingSpreadP = (0, spread_1.getSpreadP)(context.pairSpreadP, true, context.liquidationParams, context.userPriceImpact);
23
+ liqPriceDistance -= trade.openPrice * closingSpreadP;
24
+ }
25
+ return trade.long
26
+ ? Math.max(trade.openPrice - liqPriceDistance, 0)
27
+ : Math.max(trade.openPrice + liqPriceDistance, 0);
28
+ };
29
+ exports.getLiquidationPrice = getLiquidationPrice;
30
+ const getLiqPnlThresholdP = (liquidationParams, leverage) => {
31
+ if (liquidationParams === undefined ||
32
+ leverage === undefined ||
33
+ liquidationParams.maxLiqSpreadP === 0 ||
34
+ liquidationParams.startLiqThresholdP === 0 ||
35
+ liquidationParams.endLiqThresholdP === 0 ||
36
+ liquidationParams.startLeverage === 0 ||
37
+ liquidationParams.endLeverage === 0) {
38
+ return 0.9;
39
+ }
40
+ if (leverage < liquidationParams.startLeverage) {
41
+ return liquidationParams.startLiqThresholdP;
42
+ }
43
+ if (leverage > liquidationParams.endLeverage) {
44
+ return liquidationParams.endLiqThresholdP;
45
+ }
46
+ if (liquidationParams.startLiqThresholdP === liquidationParams.endLiqThresholdP) {
47
+ return liquidationParams.endLiqThresholdP;
48
+ }
49
+ return (liquidationParams.startLiqThresholdP -
50
+ ((leverage - liquidationParams.startLeverage) *
51
+ (liquidationParams.startLiqThresholdP -
52
+ liquidationParams.endLiqThresholdP)) /
53
+ (liquidationParams.endLeverage - liquidationParams.startLeverage));
54
+ };
55
+ exports.getLiqPnlThresholdP = getLiqPnlThresholdP;
@@ -0,0 +1,10 @@
1
+ import { GetBorrowingFeeContext } from "./fees";
2
+ import { Fee, LiquidationParams, Trade, TradeInfo, TradeInitialAccFees } from "./types";
3
+ import { ContractsVersion } from "../contracts/types";
4
+ export type GetPnlContext = GetBorrowingFeeContext & {
5
+ fee: Fee | undefined;
6
+ collateralPriceUsd: number | undefined;
7
+ contractsVersion: ContractsVersion | undefined;
8
+ feeMultiplier: number | undefined;
9
+ };
10
+ export declare const getPnl: (price: number | undefined, trade: Trade, tradeInfo: TradeInfo, initialAccFees: TradeInitialAccFees, liquidationParams: LiquidationParams, useFees: boolean, context: GetPnlContext) => number[] | undefined;
@@ -0,0 +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 liquidation_1 = require("./liquidation");
6
+ const getPnl = (price, trade, tradeInfo, initialAccFees, liquidationParams, useFees, context) => {
7
+ if (!price) {
8
+ return;
9
+ }
10
+ const posCollat = trade.collateralAmount;
11
+ const { openPrice, leverage } = trade;
12
+ const { fee } = context;
13
+ let pnlCollat = trade.long
14
+ ? ((price - openPrice) / openPrice) * leverage * posCollat
15
+ : ((openPrice - price) / openPrice) * leverage * posCollat;
16
+ if (useFees) {
17
+ pnlCollat -= (0, fees_1.getBorrowingFee)(posCollat * trade.leverage, trade.pairIndex, trade.long, initialAccFees, context);
18
+ }
19
+ let pnlPercentage = (pnlCollat / posCollat) * 100;
20
+ // Can be liquidated
21
+ if (pnlPercentage <=
22
+ (0, liquidation_1.getLiqPnlThresholdP)(liquidationParams, leverage) * -100) {
23
+ pnlPercentage = -100;
24
+ }
25
+ else {
26
+ pnlCollat -= (0, fees_1.getClosingFee)(posCollat, trade.leverage, trade.pairIndex, fee, context.collateralPriceUsd, context.feeMultiplier);
27
+ pnlPercentage = (pnlCollat / posCollat) * 100;
28
+ }
29
+ pnlPercentage = pnlPercentage < -100 ? -100 : pnlPercentage;
30
+ pnlCollat = (posCollat * pnlPercentage) / 100;
31
+ return [pnlCollat, pnlPercentage];
32
+ };
33
+ exports.getPnl = getPnl;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gainsnetwork/sdk",
3
- "version": "1.4.2-rc1",
3
+ "version": "1.4.2-rc2",
4
4
  "description": "Gains Network SDK",
5
5
  "main": "./lib/index.js",
6
6
  "files": [