@gainsnetwork/sdk 1.4.2-rc3 → 1.4.2-rc5
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.
- package/lib/constants.js +0 -1
- package/package.json +1 -1
- package/lib/trade/liquidation.d.ts +0 -12
- package/lib/trade/liquidation.js +0 -55
- package/lib/trade/pnl.d.ts +0 -10
- package/lib/trade/pnl.js +0 -33
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
|
-
415, 416, 417,
|
|
482
481
|
]);
|
|
483
482
|
exports.delistedGroupsIxs = new Set([]);
|
|
484
483
|
exports.DEFAULT_PROTECTION_CLOSE_FACTOR = 1;
|
package/package.json
CHANGED
|
@@ -1,12 +0,0 @@
|
|
|
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;
|
package/lib/trade/liquidation.js
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
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;
|
package/lib/trade/pnl.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
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;
|
package/lib/trade/pnl.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
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;
|