@gainsnetwork/sdk 0.0.18 → 0.0.19

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 (146) hide show
  1. package/README.md +11 -11
  2. package/lib/constants.d.ts +135 -0
  3. package/lib/constants.js +123 -0
  4. package/lib/contracts/addresses.d.ts +2 -2
  5. package/lib/contracts/addresses.js +15 -15
  6. package/lib/contracts/addresses.json +23 -23
  7. package/lib/contracts/index.d.ts +6 -6
  8. package/lib/contracts/index.js +32 -32
  9. package/lib/contracts/types/generated/GFarmTradingStorageV5.d.ts +1911 -1911
  10. package/lib/contracts/types/generated/GFarmTradingStorageV5.js +2 -2
  11. package/lib/contracts/types/generated/GNSNftRewardsV6.d.ts +533 -533
  12. package/lib/contracts/types/generated/GNSNftRewardsV6.js +2 -2
  13. package/lib/contracts/types/generated/GNSPairInfosV6_1.d.ts +911 -911
  14. package/lib/contracts/types/generated/GNSPairInfosV6_1.js +2 -2
  15. package/lib/contracts/types/generated/GNSPairsStorageV6.d.ts +660 -660
  16. package/lib/contracts/types/generated/GNSPairsStorageV6.js +2 -2
  17. package/lib/contracts/types/generated/GTokenOpenPnlFeed.d.ts +557 -557
  18. package/lib/contracts/types/generated/GTokenOpenPnlFeed.js +2 -2
  19. package/lib/contracts/types/generated/common.d.ts +22 -22
  20. package/lib/contracts/types/generated/common.js +2 -2
  21. package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.d.ts +83 -83
  22. package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.js +2691 -2691
  23. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.d.ts +100 -100
  24. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.js +1003 -1003
  25. package/lib/contracts/types/generated/factories/GNSPairInfosV6_1__factory.d.ts +98 -98
  26. package/lib/contracts/types/generated/factories/GNSPairInfosV6_1__factory.js +1485 -1485
  27. package/lib/contracts/types/generated/factories/GNSPairsStorageV6__factory.d.ts +117 -117
  28. package/lib/contracts/types/generated/factories/GNSPairsStorageV6__factory.js +1265 -1265
  29. package/lib/contracts/types/generated/factories/GTokenOpenPnlFeed__factory.d.ts +59 -59
  30. package/lib/contracts/types/generated/factories/GTokenOpenPnlFeed__factory.js +765 -765
  31. package/lib/contracts/types/generated/factories/index.d.ts +5 -5
  32. package/lib/contracts/types/generated/factories/index.js +16 -16
  33. package/lib/contracts/types/generated/index.d.ts +11 -11
  34. package/lib/contracts/types/generated/index.js +37 -37
  35. package/lib/contracts/types/index.d.ts +16 -16
  36. package/lib/contracts/types/index.js +2 -2
  37. package/lib/contracts/utils/index.d.ts +3 -3
  38. package/lib/contracts/utils/index.js +19 -19
  39. package/lib/contracts/utils/openLimitOrders.d.ts +8 -8
  40. package/lib/contracts/utils/openLimitOrders.js +77 -77
  41. package/lib/contracts/utils/openTrades.d.ts +9 -9
  42. package/lib/contracts/utils/openTrades.js +193 -169
  43. package/lib/contracts/utils/pairs.d.ts +6 -6
  44. package/lib/contracts/utils/pairs.js +102 -102
  45. package/lib/index.d.ts +4 -3
  46. package/lib/index.js +20 -19
  47. package/lib/markets/commodities.d.ts +1 -1
  48. package/lib/markets/commodities.js +31 -31
  49. package/lib/markets/crypto.d.ts +1 -1
  50. package/lib/markets/crypto.js +6 -6
  51. package/lib/markets/forex.d.ts +2 -2
  52. package/lib/markets/forex.js +38 -38
  53. package/lib/markets/index.d.ts +5 -5
  54. package/lib/markets/index.js +21 -21
  55. package/lib/markets/indices.d.ts +1 -1
  56. package/lib/markets/indices.js +6 -6
  57. package/lib/markets/stocks.d.ts +3 -3
  58. package/lib/markets/stocks.js +54 -54
  59. package/lib/trade/fees.d.ts +15 -15
  60. package/lib/trade/fees.js +45 -45
  61. package/lib/trade/index.d.ts +2 -2
  62. package/lib/trade/index.js +18 -18
  63. package/lib/trade/pnl.d.ts +7 -7
  64. package/lib/trade/pnl.js +43 -43
  65. package/lib/trade/types.d.ts +157 -157
  66. package/lib/trade/types.js +8 -8
  67. package/package.json +104 -104
  68. package/lib/contracts/types/GFarmTradingStorageV5.d.ts +0 -1911
  69. package/lib/contracts/types/GFarmTradingStorageV5.js +0 -2
  70. package/lib/contracts/types/GNSPairInfosV6_1.d.ts +0 -911
  71. package/lib/contracts/types/GNSPairInfosV6_1.js +0 -2
  72. package/lib/contracts/types/GNSPairsStorageV6.d.ts +0 -660
  73. package/lib/contracts/types/GNSPairsStorageV6.js +0 -2
  74. package/lib/contracts/types/common.d.ts +0 -22
  75. package/lib/contracts/types/common.js +0 -2
  76. package/lib/contracts/types/factories/GFarmTradingStorageV5__factory.d.ts +0 -83
  77. package/lib/contracts/types/factories/GFarmTradingStorageV5__factory.js +0 -2691
  78. package/lib/contracts/types/factories/GNSPairInfosV6_1__factory.d.ts +0 -98
  79. package/lib/contracts/types/factories/GNSPairInfosV6_1__factory.js +0 -1485
  80. package/lib/contracts/types/factories/GNSPairsStorageV6__factory.d.ts +0 -117
  81. package/lib/contracts/types/factories/GNSPairsStorageV6__factory.js +0 -1265
  82. package/lib/contracts/types/factories/index.d.ts +0 -3
  83. package/lib/contracts/types/factories/index.js +0 -12
  84. package/lib/contracts/utils/openTradesOriginal.d.ts +0 -3
  85. package/lib/contracts/utils/openTradesOriginal.js +0 -134
  86. package/lib/src/contracts/addresses.d.ts +0 -2
  87. package/lib/src/contracts/addresses.js +0 -15
  88. package/lib/src/contracts/addresses.json +0 -20
  89. package/lib/src/contracts/index.d.ts +0 -6
  90. package/lib/src/contracts/index.js +0 -31
  91. package/lib/src/contracts/types/generated/GFarmTradingStorageV5.d.ts +0 -1911
  92. package/lib/src/contracts/types/generated/GFarmTradingStorageV5.js +0 -2
  93. package/lib/src/contracts/types/generated/GNSPairInfosV6_1.d.ts +0 -911
  94. package/lib/src/contracts/types/generated/GNSPairInfosV6_1.js +0 -2
  95. package/lib/src/contracts/types/generated/GNSPairsStorageV6.d.ts +0 -660
  96. package/lib/src/contracts/types/generated/GNSPairsStorageV6.js +0 -2
  97. package/lib/src/contracts/types/generated/GTokenOpenPnlFeed.d.ts +0 -557
  98. package/lib/src/contracts/types/generated/GTokenOpenPnlFeed.js +0 -2
  99. package/lib/src/contracts/types/generated/common.d.ts +0 -22
  100. package/lib/src/contracts/types/generated/common.js +0 -2
  101. package/lib/src/contracts/types/generated/factories/GFarmTradingStorageV5__factory.d.ts +0 -83
  102. package/lib/src/contracts/types/generated/factories/GFarmTradingStorageV5__factory.js +0 -2691
  103. package/lib/src/contracts/types/generated/factories/GNSPairInfosV6_1__factory.d.ts +0 -98
  104. package/lib/src/contracts/types/generated/factories/GNSPairInfosV6_1__factory.js +0 -1485
  105. package/lib/src/contracts/types/generated/factories/GNSPairsStorageV6__factory.d.ts +0 -117
  106. package/lib/src/contracts/types/generated/factories/GNSPairsStorageV6__factory.js +0 -1265
  107. package/lib/src/contracts/types/generated/factories/GTokenOpenPnlFeed__factory.d.ts +0 -59
  108. package/lib/src/contracts/types/generated/factories/GTokenOpenPnlFeed__factory.js +0 -765
  109. package/lib/src/contracts/types/generated/factories/index.d.ts +0 -4
  110. package/lib/src/contracts/types/generated/factories/index.js +0 -14
  111. package/lib/src/contracts/types/generated/index.d.ts +0 -9
  112. package/lib/src/contracts/types/generated/index.js +0 -35
  113. package/lib/src/contracts/types/index.d.ts +0 -13
  114. package/lib/src/contracts/types/index.js +0 -2
  115. package/lib/src/contracts/utils/index.d.ts +0 -2
  116. package/lib/src/contracts/utils/index.js +0 -18
  117. package/lib/src/contracts/utils/openTrades.d.ts +0 -3
  118. package/lib/src/contracts/utils/openTrades.js +0 -107
  119. package/lib/src/contracts/utils/pairs.d.ts +0 -6
  120. package/lib/src/contracts/utils/pairs.js +0 -102
  121. package/lib/src/index.d.ts +0 -3
  122. package/lib/src/index.js +0 -19
  123. package/lib/src/markets/commodities.d.ts +0 -1
  124. package/lib/src/markets/commodities.js +0 -31
  125. package/lib/src/markets/crypto.d.ts +0 -1
  126. package/lib/src/markets/crypto.js +0 -6
  127. package/lib/src/markets/forex.d.ts +0 -2
  128. package/lib/src/markets/forex.js +0 -38
  129. package/lib/src/markets/index.d.ts +0 -5
  130. package/lib/src/markets/index.js +0 -21
  131. package/lib/src/markets/indices.d.ts +0 -1
  132. package/lib/src/markets/indices.js +0 -6
  133. package/lib/src/markets/stocks.d.ts +0 -3
  134. package/lib/src/markets/stocks.js +0 -54
  135. package/lib/src/trade/fees.d.ts +0 -15
  136. package/lib/src/trade/fees.js +0 -45
  137. package/lib/src/trade/index.d.ts +0 -2
  138. package/lib/src/trade/index.js +0 -18
  139. package/lib/src/trade/pnl.d.ts +0 -7
  140. package/lib/src/trade/pnl.js +0 -43
  141. package/lib/src/trade/types.d.ts +0 -143
  142. package/lib/src/trade/types.js +0 -8
  143. package/lib/test/index.d.ts +0 -1
  144. package/lib/test/index.js +0 -22
  145. package/lib/test.d.ts +0 -1
  146. package/lib/test.js +0 -37
@@ -1,7 +0,0 @@
1
- import { GetFundingFeeContext, GetRolloverFeeContext } from "./fees";
2
- import { Fee, Trade, TradeInfo, TradeInitialAccFees } from "./types";
3
- export type GetPnlContext = {
4
- fee: Fee | undefined;
5
- maxGainP: number | undefined;
6
- } & GetRolloverFeeContext & GetFundingFeeContext;
7
- export declare const getPnl: (price: number | undefined, trade: Trade, tradeInfo: TradeInfo, initialAccFees: TradeInitialAccFees, useFees: boolean, context: GetPnlContext) => number[] | undefined;
@@ -1,43 +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 getPnl = (price, trade, tradeInfo, initialAccFees, useFees, context) => {
6
- if (!price) {
7
- return;
8
- }
9
- const posDai = trade.initialPosToken * tradeInfo.tokenPriceDai;
10
- const { openPrice, leverage } = trade;
11
- const { maxGainP, currentBlock, pairParams, pairRolloverFees, pairFundingFees, openInterest, 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;
17
- if (useFees) {
18
- pnlDai -= (0, fees_1.getRolloverFee)(posDai, initialAccFees.rollover, initialAccFees.openedAfterUpdate, {
19
- currentBlock,
20
- pairParams,
21
- pairRolloverFees,
22
- });
23
- pnlDai -= (0, fees_1.getFundingFee)(posDai * trade.leverage, initialAccFees.funding, trade.buy, initialAccFees.openedAfterUpdate, {
24
- currentBlock,
25
- pairParams,
26
- pairFundingFees,
27
- openInterest,
28
- });
29
- }
30
- let pnlPercentage = (pnlDai / posDai) * 100;
31
- // Can be liquidated
32
- if (pnlPercentage <= -90) {
33
- pnlPercentage = -100;
34
- }
35
- else {
36
- pnlDai -= (0, fees_1.getClosingFee)(posDai, trade.leverage, trade.pairIndex, fee);
37
- pnlPercentage = (pnlDai / posDai) * 100;
38
- }
39
- pnlPercentage = pnlPercentage < -100 ? -100 : pnlPercentage;
40
- pnlDai = (posDai * pnlPercentage) / 100;
41
- return [pnlDai, pnlPercentage];
42
- };
43
- exports.getPnl = getPnl;
@@ -1,143 +0,0 @@
1
- export type PairIndexes = {
2
- [key: string]: number;
3
- };
4
- export type TradeContainer = {
5
- trade: Trade;
6
- tradeInfo: TradeInfo;
7
- initialAccFees: TradeInitialAccFees;
8
- };
9
- export type Trade = {
10
- buy: boolean;
11
- index: number;
12
- initialPosToken: number;
13
- leverage: number;
14
- openPrice: number;
15
- pairIndex: number;
16
- sl: number;
17
- tp: number;
18
- trader: string;
19
- };
20
- export type TradeInfo = {
21
- openInterestDai: number;
22
- slLastUpdated: number;
23
- tokenPriceDai: number;
24
- tpLastUpdated: number;
25
- };
26
- export type TradeInitialAccFees = {
27
- rollover: number;
28
- funding: number;
29
- openedAfterUpdate: boolean;
30
- };
31
- export type TradingGroup = {
32
- maxCollateralP: number;
33
- maxLeverage: number;
34
- minLeverage: number;
35
- name: string;
36
- };
37
- export type LimitOrder = {
38
- block: number;
39
- buy: boolean;
40
- index: number;
41
- leverage: number;
42
- maxPrice: number;
43
- minPrice: number;
44
- pairIndex: number;
45
- positionSize: number;
46
- sl: number;
47
- spreadReductionP: number;
48
- tp: number;
49
- trader: string;
50
- type: number;
51
- };
52
- export type Fee = {
53
- closeFeeP: number;
54
- minLevPosDai: number;
55
- nftLimitOrderFeeP: number;
56
- openFeeP: number;
57
- referralFeeP: number;
58
- };
59
- export type OpenInterest = {
60
- long: number;
61
- max: number;
62
- short: number;
63
- };
64
- export type OpenCollateral = {
65
- long: number;
66
- short: number;
67
- };
68
- export type PairParams = {
69
- onePercentDepthAbove: number;
70
- onePercentDepthBelow: number;
71
- rolloverFeePerBlockP: number;
72
- fundingFeePerBlockP: number;
73
- };
74
- export type PairRolloverFees = {
75
- accPerCollateral: number;
76
- lastUpdateBlock: number;
77
- };
78
- export type PairFundingFees = {
79
- accPerOiLong: number;
80
- accPerOiShort: number;
81
- lastUpdateBlock: number;
82
- };
83
- export type Pair = {
84
- name: string;
85
- from: string;
86
- to: string;
87
- feeIndex: number;
88
- groupIndex: number;
89
- pairIndex: number;
90
- spreadP: number;
91
- };
92
- export type TradeHistoryRecord = {
93
- action: string;
94
- address: string;
95
- buy: number;
96
- date: string;
97
- leverage: number;
98
- pair: string;
99
- pnl_net: number;
100
- price: number;
101
- size: number;
102
- tx: string;
103
- };
104
- export type MarketOrder = {
105
- trader: string;
106
- pairIndex: number;
107
- index: number;
108
- block: number;
109
- open: boolean;
110
- };
111
- export type ChartBar = {
112
- close: number;
113
- high: number;
114
- isBarClosed: boolean;
115
- isLastBar: boolean;
116
- low: number;
117
- open: number;
118
- time: number;
119
- };
120
- export type LeaderboardTrader = {
121
- address: string;
122
- tradesCount: number;
123
- winrate: number;
124
- pnl: number;
125
- volume: number;
126
- score: number;
127
- };
128
- export type OpenTradeParams = [
129
- address: string,
130
- pairIndex: number,
131
- x1: number,
132
- x2: number,
133
- wei: number,
134
- price: string,
135
- buy: boolean,
136
- leverage: number,
137
- takeProfit: string,
138
- stopLoss: string
139
- ];
140
- export declare enum PositionType {
141
- LONG = "LONG",
142
- SHORT = "SHORT"
143
- }
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PositionType = void 0;
4
- var PositionType;
5
- (function (PositionType) {
6
- PositionType["LONG"] = "LONG";
7
- PositionType["SHORT"] = "SHORT";
8
- })(PositionType = exports.PositionType || (exports.PositionType = {}));
@@ -1 +0,0 @@
1
- export {};
package/lib/test/index.js DELETED
@@ -1,22 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- const contracts_1 = require("@/contracts");
13
- const providers_1 = require("@ethersproject/providers");
14
- const provider = new providers_1.WebSocketProvider("wss://blue-muddy-seed.arbitrum-mainnet.quiknode.pro/2124fcf6b4c917a038d881098fd78a57e91ddf82/");
15
- const run = () => __awaiter(void 0, void 0, void 0, function* () {
16
- const contracts = (0, contracts_1.getContractsForChain)(137, provider);
17
- console.log(Date.now());
18
- const openTrades = yield (0, contracts_1.fetchOpenPairTrades)(contracts);
19
- console.log(openTrades.length);
20
- console.log(Date.now());
21
- });
22
- run();
package/lib/test.d.ts DELETED
@@ -1 +0,0 @@
1
- export {};
package/lib/test.js DELETED
@@ -1,37 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- const contracts_1 = require("./contracts");
13
- const providers_1 = require("@ethersproject/providers");
14
- const provider = new providers_1.WebSocketProvider("wss://polygon-mainnet.g.alchemy.com/v2/K-EcmM_0Mwj3wY_P8wACcc157ytPgSkV");
15
- const run = () => __awaiter(void 0, void 0, void 0, function* () {
16
- var _a;
17
- const contracts = (0, contracts_1.getContractsForChain)(137, provider);
18
- console.time("mc");
19
- const openTrades = yield (0, contracts_1.fetchOpenPairTradesRaw)(contracts, {
20
- useMulticall: true,
21
- });
22
- console.log(openTrades.length);
23
- const trade = openTrades.find(t => {
24
- var _a, _b;
25
- return t.trade.trader === "0xe52C5bebF2c16C2604b2Bd811C5e46E61275486c" &&
26
- ((_a = t.trade.pairIndex) === null || _a === void 0 ? void 0 : _a.toString()) === "0" &&
27
- ((_b = t.trade.index) === null || _b === void 0 ? void 0 : _b.toString()) === "1";
28
- });
29
- console.log(trade);
30
- console.log((_a = trade === null || trade === void 0 ? void 0 : trade.tradeInfo.openInterestDai) === null || _a === void 0 ? void 0 : _a.toString());
31
- console.timeEnd("mc");
32
- // console.time("original");
33
- // const openTrades = await fetchOpenPairTradesOriginal(contracts);
34
- // console.log(openTrades.length);
35
- // console.timeEnd("original");
36
- });
37
- void run();