@gainsnetwork/sdk 0.1.28-rc1 → 0.2.0-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 (66) hide show
  1. package/lib/constants.d.ts +1 -8
  2. package/lib/constants.js +3 -9
  3. package/lib/contracts/addresses.json +8 -44
  4. package/lib/contracts/index.js +1 -4
  5. package/lib/contracts/types/generated/GNSMultiCollatDiamond.d.ts +4608 -1133
  6. package/lib/contracts/types/generated/factories/GNSMultiCollatDiamond__factory.d.ts +190 -43
  7. package/lib/contracts/types/generated/factories/GNSMultiCollatDiamond__factory.js +9988 -1722
  8. package/lib/contracts/types/generated/factories/index.d.ts +0 -7
  9. package/lib/contracts/types/generated/factories/index.js +1 -15
  10. package/lib/contracts/types/generated/index.d.ts +0 -14
  11. package/lib/contracts/types/generated/index.js +1 -15
  12. package/lib/contracts/types/index.d.ts +2 -10
  13. package/lib/contracts/utils/borrowingFees.d.ts +4 -4
  14. package/lib/contracts/utils/borrowingFees.js +9 -5
  15. package/lib/contracts/utils/index.d.ts +0 -1
  16. package/lib/contracts/utils/index.js +0 -1
  17. package/lib/contracts/utils/openTrades.d.ts +1 -1
  18. package/lib/contracts/utils/openTrades.js +330 -138
  19. package/lib/contracts/utils/pairs.d.ts +1 -1
  20. package/lib/contracts/utils/pairs.js +27 -23
  21. package/lib/trade/fees/borrowing/converter.d.ts +12 -10
  22. package/lib/trade/fees/borrowing/converter.js +18 -24
  23. package/lib/trade/fees/borrowing/index.d.ts +3 -4
  24. package/lib/trade/fees/borrowing/index.js +12 -18
  25. package/lib/trade/fees/borrowing/types.d.ts +14 -20
  26. package/lib/trade/fees/index.js +2 -2
  27. package/lib/trade/index.d.ts +0 -1
  28. package/lib/trade/index.js +0 -1
  29. package/lib/trade/liquidation.d.ts +3 -3
  30. package/lib/trade/liquidation.js +4 -5
  31. package/lib/trade/pnl.js +12 -12
  32. package/lib/trade/types.d.ts +33 -69
  33. package/lib/trade/types.js +9 -16
  34. package/package.json +1 -1
  35. package/lib/contracts/types/generated/GFarmTradingStorageV5.d.ts +0 -1911
  36. package/lib/contracts/types/generated/GFarmTradingStorageV5.js +0 -2
  37. package/lib/contracts/types/generated/GNSBorrowingFees.d.ts +0 -1067
  38. package/lib/contracts/types/generated/GNSBorrowingFees.js +0 -2
  39. package/lib/contracts/types/generated/GNSNftRewardsV6.d.ts +0 -533
  40. package/lib/contracts/types/generated/GNSNftRewardsV6.js +0 -2
  41. package/lib/contracts/types/generated/GNSNftRewardsV6_3_1.d.ts +0 -613
  42. package/lib/contracts/types/generated/GNSNftRewardsV6_3_1.js +0 -2
  43. package/lib/contracts/types/generated/GNSTrading.d.ts +0 -758
  44. package/lib/contracts/types/generated/GNSTrading.js +0 -2
  45. package/lib/contracts/types/generated/GNSTradingCallbacks.d.ts +0 -875
  46. package/lib/contracts/types/generated/GNSTradingCallbacks.js +0 -2
  47. package/lib/contracts/types/generated/GNSTradingStorage.d.ts +0 -1387
  48. package/lib/contracts/types/generated/GNSTradingStorage.js +0 -2
  49. package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.d.ts +0 -83
  50. package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.js +0 -2691
  51. package/lib/contracts/types/generated/factories/GNSBorrowingFees__factory.d.ts +0 -124
  52. package/lib/contracts/types/generated/factories/GNSBorrowingFees__factory.js +0 -1784
  53. package/lib/contracts/types/generated/factories/GNSNftRewardsV6_3_1__factory.d.ts +0 -100
  54. package/lib/contracts/types/generated/factories/GNSNftRewardsV6_3_1__factory.js +0 -1116
  55. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.d.ts +0 -100
  56. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.js +0 -1003
  57. package/lib/contracts/types/generated/factories/GNSTradingCallbacks__factory.d.ts +0 -113
  58. package/lib/contracts/types/generated/factories/GNSTradingCallbacks__factory.js +0 -1428
  59. package/lib/contracts/types/generated/factories/GNSTradingStorage__factory.d.ts +0 -96
  60. package/lib/contracts/types/generated/factories/GNSTradingStorage__factory.js +0 -2241
  61. package/lib/contracts/types/generated/factories/GNSTrading__factory.d.ts +0 -95
  62. package/lib/contracts/types/generated/factories/GNSTrading__factory.js +0 -1071
  63. package/lib/contracts/utils/openLimitOrders.d.ts +0 -8
  64. package/lib/contracts/utils/openLimitOrders.js +0 -88
  65. package/lib/trade/openLimitOrder.d.ts +0 -2
  66. package/lib/trade/openLimitOrder.js +0 -23
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.convertGroupBorrowingFees = exports.convertGroupBorrowingFee = exports.convertPairBorrowingFees = exports.convertPairBorrowingFee = exports.convertPairGroupBorrowingFee = void 0;
3
+ exports.convertGroupBorrowingFees = exports.convertGroupBorrowingData = exports.convertGroupBorrowingFee = exports.convertPairBorrowingFees = exports.convertPairBorrowingFee = exports.convertPairGroupBorrowingFee = void 0;
4
4
  const convertPairGroupBorrowingFee = (pairGroup) => ({
5
5
  groupIndex: pairGroup.groupIndex,
6
6
  initialAccFeeLong: parseFloat(pairGroup.initialAccFeeLong.toString()) / 1e10,
@@ -12,30 +12,24 @@ const convertPairGroupBorrowingFee = (pairGroup) => ({
12
12
  block: pairGroup.block,
13
13
  });
14
14
  exports.convertPairGroupBorrowingFee = convertPairGroupBorrowingFee;
15
- const convertPairBorrowingFee = (pair, pairOi) => ({
16
- feePerBlock: pair.feePerBlock / 1e10,
17
- accFeeLong: parseFloat(pair.accFeeLong.toString()) / 1e10,
18
- accFeeShort: parseFloat(pair.accFeeShort.toString()) / 1e10,
19
- accLastUpdatedBlock: pair.accLastUpdatedBlock,
20
- lastAccBlockWeightedMarketCap: parseFloat(pair.lastAccBlockWeightedMarketCap.toString()) / 1e40,
21
- groups: pair.groups.map(value => (0, exports.convertPairGroupBorrowingFee)(value)),
22
- feeExponent: pair.feeExponent,
23
- maxOi: parseFloat(pairOi.max.toString()) / 1e10,
24
- });
15
+ const convertPairBorrowingFee = (pair, pairOi, pairGroup) => (Object.assign(Object.assign({}, (0, exports.convertGroupBorrowingData)(pair, pairOi)), { groups: pairGroup.map(value => (0, exports.convertPairGroupBorrowingFee)(value)) }));
25
16
  exports.convertPairBorrowingFee = convertPairBorrowingFee;
26
- const convertPairBorrowingFees = ([pairs, pairOi]) => pairs.map((value, ix) => (0, exports.convertPairBorrowingFee)(value, pairOi[ix]));
17
+ const convertPairBorrowingFees = ([pairs, pairOi, pairGroups]) => pairs.map((value, ix) => (0, exports.convertPairBorrowingFee)(value, pairOi[ix], pairGroups[ix]));
27
18
  exports.convertPairBorrowingFees = convertPairBorrowingFees;
28
- const convertGroupBorrowingFee = (group, groupFeeExponent) => ({
29
- oiLong: parseFloat(group.oiLong.toString()) / 1e10,
30
- oiShort: parseFloat(group.oiShort.toString()) / 1e10,
31
- feePerBlock: group.feePerBlock / 1e10,
32
- accFeeLong: parseFloat(group.accFeeLong.toString()) / 1e10,
33
- accFeeShort: parseFloat(group.accFeeShort.toString()) / 1e10,
34
- accLastUpdatedBlock: group.accLastUpdatedBlock,
35
- lastAccBlockWeightedMarketCap: parseFloat(group.lastAccBlockWeightedMarketCap.toString()) / 1e40,
36
- maxOi: parseFloat(group.maxOi.toString()) / 1e10,
37
- feeExponent: groupFeeExponent,
38
- });
19
+ const convertGroupBorrowingFee = (group, groupOi) => (0, exports.convertGroupBorrowingData)(group, groupOi);
39
20
  exports.convertGroupBorrowingFee = convertGroupBorrowingFee;
40
- const convertGroupBorrowingFees = ([groups, groupFeeExponents]) => groups.map((value, ix) => (0, exports.convertGroupBorrowingFee)(value, groupFeeExponents[ix]));
21
+ const convertGroupBorrowingData = (obj, oi) => ({
22
+ oi: {
23
+ long: parseFloat(oi.long.toString()) / 1e10,
24
+ short: parseFloat(oi.short.toString()) / 1e10,
25
+ max: parseFloat(oi.max.toString()) / 1e10,
26
+ },
27
+ feePerBlock: obj.feePerBlock / 1e10,
28
+ accFeeLong: parseFloat(obj.accFeeLong.toString()) / 1e10,
29
+ accFeeShort: parseFloat(obj.accFeeShort.toString()) / 1e10,
30
+ accLastUpdatedBlock: obj.accLastUpdatedBlock,
31
+ feeExponent: obj.feeExponent,
32
+ });
33
+ exports.convertGroupBorrowingData = convertGroupBorrowingData;
34
+ const convertGroupBorrowingFees = ([groups, groupOis]) => groups.map((value, ix) => (0, exports.convertGroupBorrowingFee)(value, groupOis[ix]));
41
35
  exports.convertGroupBorrowingFees = convertGroupBorrowingFees;
@@ -7,7 +7,7 @@ export type GetBorrowingFeeContext = {
7
7
  openInterest: OpenInterest;
8
8
  };
9
9
  export declare const getBorrowingFee: (posDai: number, pairIndex: PairIndex, long: boolean, initialAccFees: BorrowingFee.InitialAccFees, context: GetBorrowingFeeContext) => number;
10
- export declare const withinMaxGroupOi: (pairIndex: PairIndex, long: boolean, positionSizeDai: number, context: {
10
+ export declare const withinMaxGroupOi: (pairIndex: PairIndex, long: boolean, positionSizeCollateral: number, context: {
11
11
  groups: BorrowingFee.Group[];
12
12
  pairs: BorrowingFee.Pair[];
13
13
  }) => boolean;
@@ -44,9 +44,8 @@ export declare const borrowingFeeUtils: {
44
44
  accFeeShort: number;
45
45
  delta: number;
46
46
  };
47
- getActivePairFeePerBlock: (pair: BorrowingFee.Pair, openInterest: OpenInterest) => number;
48
- getActiveGroupFeePerBlock: (group: BorrowingFee.Group) => number;
49
- getActiveFeePerBlock: (pair: BorrowingFee.Pair, group: BorrowingFee.Group | undefined, pairOpenInterest: OpenInterest) => number;
47
+ getActiveFeePerBlock: (pair: BorrowingFee.Pair, group: BorrowingFee.Group | undefined) => number;
48
+ getBorrowingDataActiveFeePerBlock: (val: BorrowingFee.Pair | BorrowingFee.Group) => number;
50
49
  getPairGroupIndex: (pairIndex: PairIndex, context: {
51
50
  pairs: BorrowingFee.Pair[];
52
51
  }) => number;
@@ -56,13 +56,13 @@ const getBorrowingFee = (posDai, pairIndex, long, initialAccFees, context) => {
56
56
  return (posDai * fee) / 100;
57
57
  };
58
58
  exports.getBorrowingFee = getBorrowingFee;
59
- const withinMaxGroupOi = (pairIndex, long, positionSizeDai, context) => {
59
+ const withinMaxGroupOi = (pairIndex, long, positionSizeCollateral, context) => {
60
60
  const { groups, pairs } = context;
61
61
  if (!groups || !pairs) {
62
62
  return false;
63
63
  }
64
- const g = groups[getPairGroupIndex(pairIndex, { pairs })];
65
- return (g.maxOi == 0 || (long ? g.oiLong : g.oiShort) + positionSizeDai <= g.maxOi);
64
+ const g = groups[getPairGroupIndex(pairIndex, { pairs })].oi;
65
+ return (g.max == 0 || (long ? g.long : g.short) + positionSizeCollateral <= g.max);
66
66
  };
67
67
  exports.withinMaxGroupOi = withinMaxGroupOi;
68
68
  const getPairGroupIndex = (pairIndex, context) => {
@@ -76,7 +76,7 @@ const getPairGroupIndex = (pairIndex, context) => {
76
76
  const getPairPendingAccFees = (pairIndex, currentBlock, context) => {
77
77
  const { pairs, openInterest: { long, short }, } = context;
78
78
  const pair = pairs[pairIndex];
79
- return getPendingAccFees(pair.accFeeLong, pair.accFeeShort, long, short, pair.feePerBlock, currentBlock, pair.accLastUpdatedBlock, pair.maxOi, pair.feeExponent);
79
+ return getPendingAccFees(pair.accFeeLong, pair.accFeeShort, long, short, pair.feePerBlock, currentBlock, pair.accLastUpdatedBlock, pair.oi.max, pair.feeExponent);
80
80
  };
81
81
  const getPairPendingAccFee = (pairIndex, currentBlock, long, context) => {
82
82
  const { accFeeLong, accFeeShort } = getPairPendingAccFees(pairIndex, currentBlock, context);
@@ -85,7 +85,7 @@ const getPairPendingAccFee = (pairIndex, currentBlock, long, context) => {
85
85
  const getGroupPendingAccFees = (groupIndex, currentBlock, context) => {
86
86
  const { groups } = context;
87
87
  const group = groups[groupIndex];
88
- return getPendingAccFees(group.accFeeLong, group.accFeeShort, group.oiLong, group.oiShort, group.feePerBlock, currentBlock, group.accLastUpdatedBlock, group.maxOi, group.feeExponent);
88
+ return getPendingAccFees(group.accFeeLong, group.accFeeShort, group.oi.long, group.oi.short, group.feePerBlock, currentBlock, group.accLastUpdatedBlock, group.oi.max, group.feeExponent);
89
89
  };
90
90
  const getGroupPendingAccFee = (groupIndex, currentBlock, long, context) => {
91
91
  const { accFeeLong, accFeeShort } = getGroupPendingAccFees(groupIndex, currentBlock, context);
@@ -137,22 +137,17 @@ const getPendingAccFees = (accFeeLong, accFeeShort, oiLong, oiShort, feePerBlock
137
137
  const newAccFeeShort = moreShorts ? accFeeShort + delta : accFeeShort;
138
138
  return { accFeeLong: newAccFeeLong, accFeeShort: newAccFeeShort, delta };
139
139
  };
140
- const getActivePairFeePerBlock = (pair, openInterest) => {
141
- const { long, short } = openInterest;
140
+ const getBorrowingDataActiveFeePerBlock = (val) => {
141
+ const { long, short, max } = val.oi;
142
142
  const netOi = Math.abs(long - short);
143
- return pair.feePerBlock * Math.pow((netOi / pair.maxOi), pair.feeExponent);
143
+ return val.feePerBlock * Math.pow((netOi / max), val.feeExponent);
144
144
  };
145
- const getActiveGroupFeePerBlock = (group) => {
146
- const { oiLong, oiShort } = group;
147
- const netOi = Math.abs(oiLong - oiShort);
148
- return group.feePerBlock * Math.pow((netOi / group.maxOi), group.feeExponent);
149
- };
150
- const getActiveFeePerBlock = (pair, group, pairOpenInterest) => {
151
- const pairFeePerBlock = getActivePairFeePerBlock(pair, pairOpenInterest);
145
+ const getActiveFeePerBlock = (pair, group) => {
146
+ const pairFeePerBlock = getBorrowingDataActiveFeePerBlock(pair);
152
147
  if (!group) {
153
148
  return pairFeePerBlock;
154
149
  }
155
- const groupFeePerBlock = getActiveGroupFeePerBlock(group);
150
+ const groupFeePerBlock = getBorrowingDataActiveFeePerBlock(group);
156
151
  return Math.max(pairFeePerBlock, groupFeePerBlock);
157
152
  };
158
153
  exports.borrowingFeeUtils = {
@@ -162,9 +157,8 @@ exports.borrowingFeeUtils = {
162
157
  getGroupPendingAccFees,
163
158
  getGroupPendingAccFee,
164
159
  getPendingAccFees,
165
- getActivePairFeePerBlock,
166
- getActiveGroupFeePerBlock,
167
160
  getActiveFeePerBlock,
161
+ getBorrowingDataActiveFeePerBlock,
168
162
  getPairGroupIndex,
169
163
  };
170
164
  exports.BorrowingFee = __importStar(require("./types"));
@@ -1,34 +1,28 @@
1
+ import { OpenInterest } from "../../types";
2
+ export type BorrowingData = {
3
+ feePerBlock: number;
4
+ accFeeLong: number;
5
+ accFeeShort: number;
6
+ accLastUpdatedBlock: number;
7
+ feeExponent: number;
8
+ };
1
9
  export type PairGroup = {
2
10
  groupIndex: number;
11
+ block: number;
3
12
  initialAccFeeLong: number;
4
13
  initialAccFeeShort: number;
5
14
  prevGroupAccFeeLong: number;
6
15
  prevGroupAccFeeShort: number;
7
16
  pairAccFeeLong: number;
8
17
  pairAccFeeShort: number;
9
- block: number;
10
18
  };
11
- export type Pair = {
12
- groups: PairGroup[];
13
- feePerBlock: number;
14
- accFeeLong: number;
15
- accFeeShort: number;
16
- accLastUpdatedBlock: number;
17
- maxOi: number;
18
- lastAccBlockWeightedMarketCap: number;
19
- feeExponent: number;
19
+ export type BorrowingOi = {
20
+ oi: OpenInterest;
20
21
  };
21
- export type Group = {
22
- oiLong: number;
23
- oiShort: number;
24
- feePerBlock: number;
25
- accFeeLong: number;
26
- accFeeShort: number;
27
- accLastUpdatedBlock: number;
28
- maxOi: number;
29
- lastAccBlockWeightedMarketCap: number;
30
- feeExponent: number;
22
+ export type Pair = BorrowingData & BorrowingOi & {
23
+ groups: PairGroup[];
31
24
  };
25
+ export type Group = BorrowingData & BorrowingOi;
32
26
  export type InitialAccFees = {
33
27
  accPairFee: number;
34
28
  accGroupFee: number;
@@ -22,8 +22,8 @@ const getClosingFee = (posDai, leverage, pairIndex, pairFee) => {
22
22
  pairFee === undefined) {
23
23
  return 0;
24
24
  }
25
- const { closeFeeP, nftLimitOrderFeeP } = pairFee;
26
- return (closeFeeP + nftLimitOrderFeeP) * posDai * leverage;
25
+ const { closeFeeP, triggerOrderFeeP } = pairFee;
26
+ return (closeFeeP + triggerOrderFeeP) * posDai * leverage;
27
27
  };
28
28
  exports.getClosingFee = getClosingFee;
29
29
  __exportStar(require("./borrowing"), exports);
@@ -1,7 +1,6 @@
1
1
  export * from "./fees";
2
2
  export * from "./pnl";
3
3
  export * from "./spread";
4
- export * from "./openLimitOrder";
5
4
  export * from "./liquidation";
6
5
  export * from "./fees";
7
6
  export * from "./types";
@@ -17,7 +17,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./fees"), exports);
18
18
  __exportStar(require("./pnl"), exports);
19
19
  __exportStar(require("./spread"), exports);
20
- __exportStar(require("./openLimitOrder"), exports);
21
20
  __exportStar(require("./liquidation"), exports);
22
21
  __exportStar(require("./fees"), exports);
23
22
  __exportStar(require("./types"), exports);
@@ -1,3 +1,3 @@
1
- import { GetBorrowingFeeContext } from "./fees";
2
- import { Trade, TradeInfo, TradeInitialAccFees } from "./types";
3
- export declare const getLiquidationPrice: (trade: Trade, tradeInfo: TradeInfo, initialAccFees: TradeInitialAccFees, context: GetBorrowingFeeContext) => number;
1
+ import { GetBorrowingFeeContext, BorrowingFee } from "./fees";
2
+ import { Trade, TradeInfo } from "./types";
3
+ export declare const getLiquidationPrice: (trade: Trade, tradeInfo: TradeInfo, initialAccFees: BorrowingFee.InitialAccFees, context: GetBorrowingFeeContext) => number;
@@ -3,13 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getLiquidationPrice = void 0;
4
4
  const fees_1 = require("./fees");
5
5
  const getLiquidationPrice = (trade, tradeInfo, initialAccFees, context) => {
6
- const posDai = trade.initialPosToken * tradeInfo.tokenPriceDai;
7
6
  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 /
7
+ (trade.collateralAmount * 0.9 -
8
+ (0, fees_1.getBorrowingFee)(trade.collateralAmount * trade.leverage, trade.pairIndex, trade.long, initialAccFees, context))) /
9
+ trade.collateralAmount /
11
10
  trade.leverage;
12
- return trade.buy
11
+ return trade.long
13
12
  ? Math.max(trade.openPrice - liqPriceDistance, 0)
14
13
  : Math.max(trade.openPrice + liqPriceDistance, 0);
15
14
  };
package/lib/trade/pnl.js CHANGED
@@ -6,28 +6,28 @@ const getPnl = (price, trade, tradeInfo, initialAccFees, useFees, context) => {
6
6
  if (!price) {
7
7
  return;
8
8
  }
9
- const posDai = trade.initialPosToken * tradeInfo.tokenPriceDai;
9
+ const posCollat = trade.collateralAmount;
10
10
  const { openPrice, leverage } = trade;
11
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;
12
+ const maxGain = maxGainP === undefined ? Infinity : (maxGainP / 100) * posCollat;
13
+ let pnlCollat = trade.long
14
+ ? ((price - openPrice) / openPrice) * leverage * posCollat
15
+ : ((openPrice - price) / openPrice) * leverage * posCollat;
16
+ pnlCollat = pnlCollat > maxGain ? maxGain : pnlCollat;
17
17
  if (useFees) {
18
- pnlDai -= (0, fees_1.getBorrowingFee)(posDai * trade.leverage, trade.pairIndex, trade.buy, initialAccFees.borrowing, context);
18
+ pnlCollat -= (0, fees_1.getBorrowingFee)(posCollat * trade.leverage, trade.pairIndex, trade.long, initialAccFees, context);
19
19
  }
20
- let pnlPercentage = (pnlDai / posDai) * 100;
20
+ let pnlPercentage = (pnlCollat / posCollat) * 100;
21
21
  // Can be liquidated
22
22
  if (pnlPercentage <= -90) {
23
23
  pnlPercentage = -100;
24
24
  }
25
25
  else {
26
- pnlDai -= (0, fees_1.getClosingFee)(posDai, trade.leverage, trade.pairIndex, fee);
27
- pnlPercentage = (pnlDai / posDai) * 100;
26
+ pnlCollat -= (0, fees_1.getClosingFee)(posCollat, trade.leverage, trade.pairIndex, fee);
27
+ pnlPercentage = (pnlCollat / posCollat) * 100;
28
28
  }
29
29
  pnlPercentage = pnlPercentage < -100 ? -100 : pnlPercentage;
30
- pnlDai = (posDai * pnlPercentage) / 100;
31
- return [pnlDai, pnlPercentage];
30
+ pnlCollat = (posCollat * pnlPercentage) / 100;
31
+ return [pnlCollat, pnlPercentage];
32
32
  };
33
33
  exports.getPnl = getPnl;
@@ -1,6 +1,4 @@
1
- import { GFarmTradingStorageV5 } from "../contracts/types/generated";
2
- import { IGNSTradingCallbacks } from "../contracts/types/generated/GNSTradingCallbacks";
3
- import { BigNumber } from "ethers";
1
+ import { ITradingStorage, IBorrowingFees } from "../contracts/types/generated/GNSMultiCollatDiamond";
4
2
  import { BorrowingFee } from "./fees/borrowing";
5
3
  import { FeeTier, TraderInfo } from "./fees/tiers/types";
6
4
  export type PairIndexes = {
@@ -10,30 +8,26 @@ export type TradeContainer = {
10
8
  trade: Trade;
11
9
  tradeInfo: TradeInfo;
12
10
  initialAccFees: TradeInitialAccFees;
13
- tradeData: TradeData;
14
11
  receivedAt?: number;
15
12
  };
16
13
  export type Trade = {
17
- buy: boolean;
14
+ user: string;
18
15
  index: number;
19
- initialPosToken: number;
16
+ pairIndex: PairIndex;
20
17
  leverage: number;
18
+ long: boolean;
19
+ isOpen: boolean;
20
+ collateralIndex: number;
21
+ tradeType: TradeType;
22
+ collateralAmount: number;
21
23
  openPrice: number;
22
- pairIndex: PairIndex;
23
24
  sl: number;
24
25
  tp: number;
25
- trader: string;
26
26
  };
27
27
  export type TradeInfo = {
28
- openInterestDai: number;
29
- slLastUpdated: number;
30
- tokenPriceDai: number;
31
- tpLastUpdated: number;
32
- };
33
- export type TradeInitialAccFees = {
34
- borrowing: BorrowingFee.InitialAccFees;
35
- };
36
- export type TradeData = {
28
+ createdBlock: number;
29
+ tpLastUpdatedBlock: number;
30
+ slLastUpdatedBlock: number;
37
31
  maxSlippageP: number;
38
32
  lastOiUpdateTs: number;
39
33
  collateralPriceUsd: number;
@@ -43,36 +37,11 @@ export type TradingGroup = {
43
37
  minLeverage: number;
44
38
  name: string;
45
39
  };
46
- export type LimitOrder = {
47
- block: number;
48
- buy: boolean;
49
- index: number;
50
- leverage: number;
51
- maxPrice: number;
52
- minPrice: number;
53
- pairIndex: PairIndex;
54
- positionSize: number;
55
- sl: number;
56
- spreadReductionP: number;
57
- tp: number;
58
- trader: string;
59
- type: number;
60
- maxSlippageP: number;
61
- };
62
- export type LimitOrderRaw = GFarmTradingStorageV5.OpenLimitOrderStructOutput & {
63
- type: number;
64
- maxSlippageP: BigNumber;
65
- };
66
40
  export type Fee = {
67
- closeFeeP: number;
68
- minLevPosUsd: number;
69
- nftLimitOrderFeeP: number;
70
41
  openFeeP: number;
71
- };
72
- export type OpenInterest = {
73
- long: number;
74
- max: number;
75
- short: number;
42
+ closeFeeP: number;
43
+ minPositionSizeUsd: number;
44
+ triggerOrderFeeP: number;
76
45
  };
77
46
  export type PairDepth = {
78
47
  onePercentDepthAboveUsd: number;
@@ -97,6 +66,7 @@ export type TradeHistoryRecord = {
97
66
  address: string;
98
67
  buy: number;
99
68
  collateralPriceUsd: number;
69
+ collateralIndex: number;
100
70
  date: string;
101
71
  leverage: number;
102
72
  pair: string;
@@ -147,22 +117,10 @@ export declare enum PositionType {
147
117
  SHORT = "SHORT"
148
118
  }
149
119
  export type TradeContainerRaw = {
150
- trade: GFarmTradingStorageV5.TradeStruct;
151
- tradeInfo: GFarmTradingStorageV5.TradeInfoStruct;
152
- tradeData: IGNSTradingCallbacks.TradeDataStruct;
153
- initialAccFees: {
154
- borrowing: {
155
- accPairFee: number;
156
- accGroupFee: number;
157
- block: number;
158
- };
159
- };
120
+ trade: ITradingStorage.TradeStruct;
121
+ tradeInfo: ITradingStorage.TradeInfoStruct;
122
+ initialAccFees: IBorrowingFees.BorrowingInitialAccFeesStruct;
160
123
  };
161
- export declare enum OpenLimitOrderType {
162
- LEGACY = 0,
163
- REVERSAL = 1,
164
- MOMENTUM = 2
165
- }
166
124
  export type OiWindowsSettings = {
167
125
  startTs: number;
168
126
  windowsDuration: number;
@@ -177,6 +135,8 @@ export type OiWindows = {
177
135
  [key: string]: OiWindow;
178
136
  };
179
137
  export type CollateralConfig = {
138
+ collateral: string;
139
+ isActive: boolean;
180
140
  precision: number;
181
141
  precisionDelta: number;
182
142
  decimals?: number;
@@ -193,6 +153,17 @@ export type TraderFeeTiers = {
193
153
  lastDayUpdatedPoints: number;
194
154
  expiredPoints: number[];
195
155
  };
156
+ export declare enum TradeType {
157
+ TRADE = 0,
158
+ LIMIT = 1,
159
+ STOP = 2
160
+ }
161
+ export type OpenInterest = {
162
+ long: number;
163
+ short: number;
164
+ max: number;
165
+ };
166
+ export type TradeInitialAccFees = BorrowingFee.InitialAccFees;
196
167
  export declare enum PairIndex {
197
168
  BTCUSD = 0,
198
169
  ETHUSD = 1,
@@ -415,13 +386,6 @@ export declare enum PairIndex {
415
386
  RONINUSD = 218,
416
387
  ENAUSD = 219,
417
388
  WUSD = 220,
418
- ZEUSUSD = 221,
419
- TNSRUSD = 222,
420
- TAOUSD = 223,
421
- OMNIUSD = 224,
422
- PRCLUSD = 225,
423
- MERLUSD = 226,
424
- SAFEUSD = 227,
425
- SAGAUSD = 228,
426
- LLUSD = 229
389
+ TNSRUSD = 221,
390
+ ZEUSUSD = 222
427
391
  }
@@ -1,17 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PairIndex = exports.OpenLimitOrderType = exports.PositionType = void 0;
3
+ exports.PairIndex = exports.TradeType = exports.PositionType = void 0;
4
4
  var PositionType;
5
5
  (function (PositionType) {
6
6
  PositionType["LONG"] = "LONG";
7
7
  PositionType["SHORT"] = "SHORT";
8
8
  })(PositionType = exports.PositionType || (exports.PositionType = {}));
9
- var OpenLimitOrderType;
10
- (function (OpenLimitOrderType) {
11
- OpenLimitOrderType[OpenLimitOrderType["LEGACY"] = 0] = "LEGACY";
12
- OpenLimitOrderType[OpenLimitOrderType["REVERSAL"] = 1] = "REVERSAL";
13
- OpenLimitOrderType[OpenLimitOrderType["MOMENTUM"] = 2] = "MOMENTUM";
14
- })(OpenLimitOrderType = exports.OpenLimitOrderType || (exports.OpenLimitOrderType = {}));
9
+ var TradeType;
10
+ (function (TradeType) {
11
+ TradeType[TradeType["TRADE"] = 0] = "TRADE";
12
+ TradeType[TradeType["LIMIT"] = 1] = "LIMIT";
13
+ TradeType[TradeType["STOP"] = 2] = "STOP";
14
+ })(TradeType = exports.TradeType || (exports.TradeType = {}));
15
15
  var PairIndex;
16
16
  (function (PairIndex) {
17
17
  PairIndex[PairIndex["BTCUSD"] = 0] = "BTCUSD";
@@ -235,13 +235,6 @@ var PairIndex;
235
235
  PairIndex[PairIndex["RONINUSD"] = 218] = "RONINUSD";
236
236
  PairIndex[PairIndex["ENAUSD"] = 219] = "ENAUSD";
237
237
  PairIndex[PairIndex["WUSD"] = 220] = "WUSD";
238
- PairIndex[PairIndex["ZEUSUSD"] = 221] = "ZEUSUSD";
239
- PairIndex[PairIndex["TNSRUSD"] = 222] = "TNSRUSD";
240
- PairIndex[PairIndex["TAOUSD"] = 223] = "TAOUSD";
241
- PairIndex[PairIndex["OMNIUSD"] = 224] = "OMNIUSD";
242
- PairIndex[PairIndex["PRCLUSD"] = 225] = "PRCLUSD";
243
- PairIndex[PairIndex["MERLUSD"] = 226] = "MERLUSD";
244
- PairIndex[PairIndex["SAFEUSD"] = 227] = "SAFEUSD";
245
- PairIndex[PairIndex["SAGAUSD"] = 228] = "SAGAUSD";
246
- PairIndex[PairIndex["LLUSD"] = 229] = "LLUSD";
238
+ PairIndex[PairIndex["TNSRUSD"] = 221] = "TNSRUSD";
239
+ PairIndex[PairIndex["ZEUSUSD"] = 222] = "ZEUSUSD";
247
240
  })(PairIndex = exports.PairIndex || (exports.PairIndex = {}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gainsnetwork/sdk",
3
- "version": "0.1.28-rc1",
3
+ "version": "0.2.0-rc1",
4
4
  "description": "Gains Network SDK",
5
5
  "main": "./lib/index.js",
6
6
  "files": [