@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.
@@ -0,0 +1,2 @@
1
+ export * from "./types";
2
+ export * from "./validateCounterTrade";
@@ -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,7 @@
1
+ export type ValidateCounterTradeContext = {
2
+ pairOiSkewCollateral: number;
3
+ };
4
+ export type ValidateCounterTradeResult = {
5
+ isValidated: boolean;
6
+ exceedingPositionSizeCollateral: number;
7
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -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;
@@ -7,3 +7,4 @@ export * from "./oiWindows";
7
7
  export * from "./priceImpact";
8
8
  export * from "./utils";
9
9
  export * from "./effectiveLeverage";
10
+ export * from "./counterTrade";
@@ -23,3 +23,4 @@ __exportStar(require("./oiWindows"), exports);
23
23
  __exportStar(require("./priceImpact"), exports);
24
24
  __exportStar(require("./utils"), exports);
25
25
  __exportStar(require("./effectiveLeverage"), exports);
26
+ __exportStar(require("./counterTrade"), exports);
@@ -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
  );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gainsnetwork/sdk",
3
- "version": "0.0.0-v10.rc18",
3
+ "version": "0.0.0-v10.rc19",
4
4
  "description": "Gains Network SDK",
5
5
  "main": "./lib/index.js",
6
6
  "files": [