@gainsnetwork/sdk 0.0.0-v10.rc18 → 0.0.0-v10.rc19
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/trade/counterTrade/index.d.ts +2 -0
- package/lib/trade/counterTrade/index.js +18 -0
- package/lib/trade/counterTrade/types.d.ts +7 -0
- package/lib/trade/counterTrade/types.js +2 -0
- package/lib/trade/counterTrade/validateCounterTrade.d.ts +10 -0
- package/lib/trade/counterTrade/validateCounterTrade.js +29 -0
- package/lib/trade/index.d.ts +1 -0
- package/lib/trade/index.js +1 -0
- package/lib/trade/priceImpact/close/index.js +0 -5
- package/package.json +1 -1
|
@@ -0,0 +1,18 @@
|
|
|
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("./validateCounterTrade"), exports);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Trade } from "../types";
|
|
2
|
+
import { ValidateCounterTradeContext, ValidateCounterTradeResult } from "./types";
|
|
3
|
+
/**
|
|
4
|
+
* Validates a counter trade based on pair OI skew, matching the contract's validateCounterTrade logic
|
|
5
|
+
* @param trade Trade object
|
|
6
|
+
* @param positionSizeCollateral Position size in collateral tokens
|
|
7
|
+
* @param context Context containing the pair OI skew
|
|
8
|
+
* @returns Validation result with exceeding collateral amount if applicable
|
|
9
|
+
*/
|
|
10
|
+
export declare function validateCounterTrade(trade: Trade, positionSizeCollateral: number, context: ValidateCounterTradeContext): ValidateCounterTradeResult;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateCounterTrade = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Validates a counter trade based on pair OI skew, matching the contract's validateCounterTrade logic
|
|
6
|
+
* @param trade Trade object
|
|
7
|
+
* @param positionSizeCollateral Position size in collateral tokens
|
|
8
|
+
* @param context Context containing the pair OI skew
|
|
9
|
+
* @returns Validation result with exceeding collateral amount if applicable
|
|
10
|
+
*/
|
|
11
|
+
function validateCounterTrade(trade, positionSizeCollateral, context) {
|
|
12
|
+
const { pairOiSkewCollateral } = context;
|
|
13
|
+
// Calculate signed position size based on trade direction
|
|
14
|
+
const positionSizeCollateralSigned = positionSizeCollateral * (trade.long ? 1 : -1);
|
|
15
|
+
// Check if position improves skew (opposite signs)
|
|
16
|
+
if (pairOiSkewCollateral === 0 ||
|
|
17
|
+
(pairOiSkewCollateral > 0 && positionSizeCollateralSigned > 0) ||
|
|
18
|
+
(pairOiSkewCollateral < 0 && positionSizeCollateralSigned < 0)) {
|
|
19
|
+
return { isValidated: false, exceedingPositionSizeCollateral: 0 };
|
|
20
|
+
}
|
|
21
|
+
// Calculate maximum position size that brings skew to 0
|
|
22
|
+
const maxPositionSizeCollateral = Math.abs(pairOiSkewCollateral);
|
|
23
|
+
// Calculate exceeding amount
|
|
24
|
+
const exceedingPositionSizeCollateral = positionSizeCollateral > maxPositionSizeCollateral
|
|
25
|
+
? positionSizeCollateral - maxPositionSizeCollateral
|
|
26
|
+
: 0;
|
|
27
|
+
return { isValidated: true, exceedingPositionSizeCollateral };
|
|
28
|
+
}
|
|
29
|
+
exports.validateCounterTrade = validateCounterTrade;
|
package/lib/trade/index.d.ts
CHANGED
package/lib/trade/index.js
CHANGED
|
@@ -53,11 +53,6 @@ const getTradeClosingPriceImpact = (input, context) => {
|
|
|
53
53
|
const positionSizeToken = input.trade.positionSizeToken
|
|
54
54
|
? calculateClosingPositionSizeToken(input.positionSizeCollateral, input.trade.positionSizeToken, input.trade.collateralAmount, input.trade.leverage)
|
|
55
55
|
: 0;
|
|
56
|
-
console.log("positionSizeToken", positionSizeToken);
|
|
57
|
-
console.log("input.positionSizeCollateral", input.positionSizeCollateral);
|
|
58
|
-
console.log("input.trade.positionSizeToken", input.trade.positionSizeToken);
|
|
59
|
-
console.log("input.trade.collateralAmount", input.trade.collateralAmount);
|
|
60
|
-
console.log("input.trade.leverage", input.trade.leverage);
|
|
61
56
|
// Calculate fixed spread (reversed for closing)
|
|
62
57
|
const fixedSpreadP = (0, cumulVol_1.getFixedSpreadP)(input.pairSpreadP, input.trade.long, false // closing
|
|
63
58
|
);
|