@gainsnetwork/sdk 0.0.0-me-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 (236) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +11 -0
  3. package/lib/backend/globalTrades/index.d.ts +11 -0
  4. package/lib/backend/globalTrades/index.js +69 -0
  5. package/lib/backend/index.d.ts +3 -0
  6. package/lib/backend/index.js +28 -0
  7. package/lib/backend/tradingVariables/backend.types.d.ts +337 -0
  8. package/lib/backend/tradingVariables/backend.types.js +2 -0
  9. package/lib/backend/tradingVariables/converter.d.ts +38 -0
  10. package/lib/backend/tradingVariables/converter.js +359 -0
  11. package/lib/backend/tradingVariables/index.d.ts +5 -0
  12. package/lib/backend/tradingVariables/index.js +98 -0
  13. package/lib/backend/tradingVariables/types.d.ts +115 -0
  14. package/lib/backend/tradingVariables/types.js +14 -0
  15. package/lib/constants.d.ts +483 -0
  16. package/lib/constants.js +516 -0
  17. package/lib/contracts/addresses.d.ts +3 -0
  18. package/lib/contracts/addresses.js +35 -0
  19. package/lib/contracts/addresses.json +266 -0
  20. package/lib/contracts/index.d.ts +14 -0
  21. package/lib/contracts/index.js +92 -0
  22. package/lib/contracts/types/generated/GNSMultiCollatDiamond.d.ts +9327 -0
  23. package/lib/contracts/types/generated/GNSMultiCollatDiamond.js +2 -0
  24. package/lib/contracts/types/generated/GToken.d.ts +1917 -0
  25. package/lib/contracts/types/generated/GToken.js +2 -0
  26. package/lib/contracts/types/generated/GTokenOpenPnlFeed.d.ts +557 -0
  27. package/lib/contracts/types/generated/GTokenOpenPnlFeed.js +2 -0
  28. package/lib/contracts/types/generated/common.d.ts +22 -0
  29. package/lib/contracts/types/generated/common.js +2 -0
  30. package/lib/contracts/types/generated/factories/GNSMultiCollatDiamond__factory.d.ts +276 -0
  31. package/lib/contracts/types/generated/factories/GNSMultiCollatDiamond__factory.js +21557 -0
  32. package/lib/contracts/types/generated/factories/GTokenOpenPnlFeed__factory.d.ts +59 -0
  33. package/lib/contracts/types/generated/factories/GTokenOpenPnlFeed__factory.js +765 -0
  34. package/lib/contracts/types/generated/factories/GToken__factory.d.ts +121 -0
  35. package/lib/contracts/types/generated/factories/GToken__factory.js +2867 -0
  36. package/lib/contracts/types/generated/factories/index.d.ts +3 -0
  37. package/lib/contracts/types/generated/factories/index.js +12 -0
  38. package/lib/contracts/types/generated/index.d.ts +7 -0
  39. package/lib/contracts/types/generated/index.js +33 -0
  40. package/lib/contracts/types/index.d.ts +37 -0
  41. package/lib/contracts/types/index.js +30 -0
  42. package/lib/contracts/utils/borrowingFees.d.ts +9 -0
  43. package/lib/contracts/utils/borrowingFees.js +43 -0
  44. package/lib/contracts/utils/index.d.ts +3 -0
  45. package/lib/contracts/utils/index.js +19 -0
  46. package/lib/contracts/utils/openTrades.d.ts +12 -0
  47. package/lib/contracts/utils/openTrades.js +172 -0
  48. package/lib/contracts/utils/pairs.d.ts +18 -0
  49. package/lib/contracts/utils/pairs.js +602 -0
  50. package/lib/index.d.ts +10 -0
  51. package/lib/index.js +30 -0
  52. package/lib/markets/collateral/converter.d.ts +5 -0
  53. package/lib/markets/collateral/converter.js +11 -0
  54. package/lib/markets/collateral/index.d.ts +1 -0
  55. package/lib/markets/collateral/index.js +17 -0
  56. package/lib/markets/collateral/types.d.ts +7 -0
  57. package/lib/markets/collateral/types.js +2 -0
  58. package/lib/markets/commodities.d.ts +1 -0
  59. package/lib/markets/commodities.js +7 -0
  60. package/lib/markets/crypto.d.ts +1 -0
  61. package/lib/markets/crypto.js +6 -0
  62. package/lib/markets/forex.d.ts +3 -0
  63. package/lib/markets/forex.js +8 -0
  64. package/lib/markets/holdingFees/index.d.ts +46 -0
  65. package/lib/markets/holdingFees/index.js +104 -0
  66. package/lib/markets/holdingFees/types.d.ts +23 -0
  67. package/lib/markets/holdingFees/types.js +5 -0
  68. package/lib/markets/index.d.ts +11 -0
  69. package/lib/markets/index.js +27 -0
  70. package/lib/markets/indices.d.ts +1 -0
  71. package/lib/markets/indices.js +6 -0
  72. package/lib/markets/leverage/builder.d.ts +12 -0
  73. package/lib/markets/leverage/builder.js +25 -0
  74. package/lib/markets/leverage/getMarketLeverageRestrictions.d.ts +7 -0
  75. package/lib/markets/leverage/getMarketLeverageRestrictions.js +38 -0
  76. package/lib/markets/leverage/index.d.ts +3 -0
  77. package/lib/markets/leverage/index.js +19 -0
  78. package/lib/markets/leverage/types.d.ts +15 -0
  79. package/lib/markets/leverage/types.js +2 -0
  80. package/lib/markets/oi/converter.d.ts +62 -0
  81. package/lib/markets/oi/converter.js +111 -0
  82. package/lib/markets/oi/index.d.ts +49 -0
  83. package/lib/markets/oi/index.js +77 -0
  84. package/lib/markets/oi/types.d.ts +89 -0
  85. package/lib/markets/oi/types.js +6 -0
  86. package/lib/markets/price/builder.d.ts +25 -0
  87. package/lib/markets/price/builder.js +69 -0
  88. package/lib/markets/price/index.d.ts +7 -0
  89. package/lib/markets/price/index.js +23 -0
  90. package/lib/markets/price/marketPrice.d.ts +13 -0
  91. package/lib/markets/price/marketPrice.js +35 -0
  92. package/lib/markets/price/signedPrices.d.ts +36 -0
  93. package/lib/markets/price/signedPrices.js +181 -0
  94. package/lib/markets/price/types.d.ts +50 -0
  95. package/lib/markets/price/types.js +5 -0
  96. package/lib/markets/schedules/builders.d.ts +7 -0
  97. package/lib/markets/schedules/builders.js +81 -0
  98. package/lib/markets/schedules/checkers.d.ts +7 -0
  99. package/lib/markets/schedules/checkers.js +36 -0
  100. package/lib/markets/schedules/holidays.d.ts +4 -0
  101. package/lib/markets/schedules/holidays.js +77 -0
  102. package/lib/markets/schedules/index.d.ts +9 -0
  103. package/lib/markets/schedules/index.js +45 -0
  104. package/lib/markets/schedules/types.d.ts +43 -0
  105. package/lib/markets/schedules/types.js +37 -0
  106. package/lib/markets/stocks.d.ts +3 -0
  107. package/lib/markets/stocks.js +15 -0
  108. package/lib/pricing/depthBands.d.ts +39 -0
  109. package/lib/pricing/depthBands.js +94 -0
  110. package/lib/pricing/index.d.ts +4 -0
  111. package/lib/pricing/index.js +20 -0
  112. package/lib/trade/counterTrade/index.d.ts +2 -0
  113. package/lib/trade/counterTrade/index.js +18 -0
  114. package/lib/trade/counterTrade/types.d.ts +7 -0
  115. package/lib/trade/counterTrade/types.js +2 -0
  116. package/lib/trade/counterTrade/validateCounterTrade.d.ts +10 -0
  117. package/lib/trade/counterTrade/validateCounterTrade.js +29 -0
  118. package/lib/trade/effectiveLeverage/getTradeNewEffectiveLeverage.d.ts +20 -0
  119. package/lib/trade/effectiveLeverage/getTradeNewEffectiveLeverage.js +42 -0
  120. package/lib/trade/effectiveLeverage/index.d.ts +2 -0
  121. package/lib/trade/effectiveLeverage/index.js +21 -0
  122. package/lib/trade/effectiveLeverage/types.d.ts +30 -0
  123. package/lib/trade/effectiveLeverage/types.js +2 -0
  124. package/lib/trade/fees/borrowing/builder.d.ts +14 -0
  125. package/lib/trade/fees/borrowing/builder.js +33 -0
  126. package/lib/trade/fees/borrowing/converter.d.ts +17 -0
  127. package/lib/trade/fees/borrowing/converter.js +46 -0
  128. package/lib/trade/fees/borrowing/index.d.ts +81 -0
  129. package/lib/trade/fees/borrowing/index.js +259 -0
  130. package/lib/trade/fees/borrowing/types.d.ts +36 -0
  131. package/lib/trade/fees/borrowing/types.js +2 -0
  132. package/lib/trade/fees/borrowingV2/builder.d.ts +6 -0
  133. package/lib/trade/fees/borrowingV2/builder.js +23 -0
  134. package/lib/trade/fees/borrowingV2/converter.d.ts +75 -0
  135. package/lib/trade/fees/borrowingV2/converter.js +132 -0
  136. package/lib/trade/fees/borrowingV2/fetcher.d.ts +76 -0
  137. package/lib/trade/fees/borrowingV2/fetcher.js +179 -0
  138. package/lib/trade/fees/borrowingV2/index.d.ts +48 -0
  139. package/lib/trade/fees/borrowingV2/index.js +112 -0
  140. package/lib/trade/fees/borrowingV2/types.d.ts +95 -0
  141. package/lib/trade/fees/borrowingV2/types.js +5 -0
  142. package/lib/trade/fees/converter.d.ts +48 -0
  143. package/lib/trade/fees/converter.js +114 -0
  144. package/lib/trade/fees/fundingFees/builder.d.ts +9 -0
  145. package/lib/trade/fees/fundingFees/builder.js +38 -0
  146. package/lib/trade/fees/fundingFees/converter.d.ts +102 -0
  147. package/lib/trade/fees/fundingFees/converter.js +196 -0
  148. package/lib/trade/fees/fundingFees/fetcher.d.ts +66 -0
  149. package/lib/trade/fees/fundingFees/fetcher.js +141 -0
  150. package/lib/trade/fees/fundingFees/index.d.ts +124 -0
  151. package/lib/trade/fees/fundingFees/index.js +309 -0
  152. package/lib/trade/fees/fundingFees/pairContext.d.ts +33 -0
  153. package/lib/trade/fees/fundingFees/pairContext.js +17 -0
  154. package/lib/trade/fees/fundingFees/types.d.ts +77 -0
  155. package/lib/trade/fees/fundingFees/types.js +5 -0
  156. package/lib/trade/fees/index.d.ts +11 -0
  157. package/lib/trade/fees/index.js +87 -0
  158. package/lib/trade/fees/tiers/converter.d.ts +64 -0
  159. package/lib/trade/fees/tiers/converter.js +100 -0
  160. package/lib/trade/fees/tiers/index.d.ts +46 -0
  161. package/lib/trade/fees/tiers/index.js +135 -0
  162. package/lib/trade/fees/tiers/types.d.ts +22 -0
  163. package/lib/trade/fees/tiers/types.js +8 -0
  164. package/lib/trade/fees/trading/builder.d.ts +19 -0
  165. package/lib/trade/fees/trading/builder.js +21 -0
  166. package/lib/trade/fees/trading/converter.d.ts +32 -0
  167. package/lib/trade/fees/trading/converter.js +47 -0
  168. package/lib/trade/fees/trading/index.d.ts +62 -0
  169. package/lib/trade/fees/trading/index.js +157 -0
  170. package/lib/trade/fees/trading/types.d.ts +46 -0
  171. package/lib/trade/fees/trading/types.js +5 -0
  172. package/lib/trade/index.d.ts +10 -0
  173. package/lib/trade/index.js +26 -0
  174. package/lib/trade/liquidation/builder.d.ts +25 -0
  175. package/lib/trade/liquidation/builder.js +58 -0
  176. package/lib/trade/liquidation/converter.d.ts +23 -0
  177. package/lib/trade/liquidation/converter.js +46 -0
  178. package/lib/trade/liquidation/index.d.ts +29 -0
  179. package/lib/trade/liquidation/index.js +216 -0
  180. package/lib/trade/liquidation/types.d.ts +38 -0
  181. package/lib/trade/liquidation/types.js +2 -0
  182. package/lib/trade/oiWindows.d.ts +3 -0
  183. package/lib/trade/oiWindows.js +19 -0
  184. package/lib/trade/pnl/builder.d.ts +16 -0
  185. package/lib/trade/pnl/builder.js +43 -0
  186. package/lib/trade/pnl/converter.d.ts +47 -0
  187. package/lib/trade/pnl/converter.js +72 -0
  188. package/lib/trade/pnl/index.d.ts +91 -0
  189. package/lib/trade/pnl/index.js +301 -0
  190. package/lib/trade/pnl/types.d.ts +79 -0
  191. package/lib/trade/pnl/types.js +5 -0
  192. package/lib/trade/priceImpact/close/builder.d.ts +23 -0
  193. package/lib/trade/priceImpact/close/builder.js +44 -0
  194. package/lib/trade/priceImpact/close/index.d.ts +22 -0
  195. package/lib/trade/priceImpact/close/index.js +137 -0
  196. package/lib/trade/priceImpact/close/types.d.ts +47 -0
  197. package/lib/trade/priceImpact/close/types.js +5 -0
  198. package/lib/trade/priceImpact/cumulVol/builder.d.ts +22 -0
  199. package/lib/trade/priceImpact/cumulVol/builder.js +53 -0
  200. package/lib/trade/priceImpact/cumulVol/converter.d.ts +94 -0
  201. package/lib/trade/priceImpact/cumulVol/converter.js +155 -0
  202. package/lib/trade/priceImpact/cumulVol/index.d.ts +109 -0
  203. package/lib/trade/priceImpact/cumulVol/index.js +316 -0
  204. package/lib/trade/priceImpact/cumulVol/types.d.ts +11 -0
  205. package/lib/trade/priceImpact/cumulVol/types.js +2 -0
  206. package/lib/trade/priceImpact/index.d.ts +21 -0
  207. package/lib/trade/priceImpact/index.js +79 -0
  208. package/lib/trade/priceImpact/open/builder.d.ts +21 -0
  209. package/lib/trade/priceImpact/open/builder.js +42 -0
  210. package/lib/trade/priceImpact/open/index.d.ts +23 -0
  211. package/lib/trade/priceImpact/open/index.js +82 -0
  212. package/lib/trade/priceImpact/open/types.d.ts +45 -0
  213. package/lib/trade/priceImpact/open/types.js +5 -0
  214. package/lib/trade/priceImpact/skew/builder.d.ts +12 -0
  215. package/lib/trade/priceImpact/skew/builder.js +27 -0
  216. package/lib/trade/priceImpact/skew/converter.d.ts +46 -0
  217. package/lib/trade/priceImpact/skew/converter.js +81 -0
  218. package/lib/trade/priceImpact/skew/fetcher.d.ts +60 -0
  219. package/lib/trade/priceImpact/skew/fetcher.js +160 -0
  220. package/lib/trade/priceImpact/skew/index.d.ts +53 -0
  221. package/lib/trade/priceImpact/skew/index.js +148 -0
  222. package/lib/trade/priceImpact/skew/types.d.ts +44 -0
  223. package/lib/trade/priceImpact/skew/types.js +5 -0
  224. package/lib/trade/spread.d.ts +5 -0
  225. package/lib/trade/spread.js +19 -0
  226. package/lib/trade/types.d.ts +777 -0
  227. package/lib/trade/types.js +478 -0
  228. package/lib/trade/utils.d.ts +18 -0
  229. package/lib/trade/utils.js +30 -0
  230. package/lib/utils/index.d.ts +1 -0
  231. package/lib/utils/index.js +17 -0
  232. package/lib/utils/packing.d.ts +2 -0
  233. package/lib/utils/packing.js +39 -0
  234. package/lib/vault/index.d.ts +10 -0
  235. package/lib/vault/index.js +10 -0
  236. package/package.json +106 -0
@@ -0,0 +1,3 @@
1
+ export { GNSMultiCollatDiamond__factory } from "./GNSMultiCollatDiamond__factory";
2
+ export { GToken__factory } from "./GToken__factory";
3
+ export { GTokenOpenPnlFeed__factory } from "./GTokenOpenPnlFeed__factory";
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GTokenOpenPnlFeed__factory = exports.GToken__factory = exports.GNSMultiCollatDiamond__factory = void 0;
4
+ /* Autogenerated file. Do not edit manually. */
5
+ /* tslint:disable */
6
+ /* eslint-disable */
7
+ var GNSMultiCollatDiamond__factory_1 = require("./GNSMultiCollatDiamond__factory");
8
+ Object.defineProperty(exports, "GNSMultiCollatDiamond__factory", { enumerable: true, get: function () { return GNSMultiCollatDiamond__factory_1.GNSMultiCollatDiamond__factory; } });
9
+ var GToken__factory_1 = require("./GToken__factory");
10
+ Object.defineProperty(exports, "GToken__factory", { enumerable: true, get: function () { return GToken__factory_1.GToken__factory; } });
11
+ var GTokenOpenPnlFeed__factory_1 = require("./GTokenOpenPnlFeed__factory");
12
+ Object.defineProperty(exports, "GTokenOpenPnlFeed__factory", { enumerable: true, get: function () { return GTokenOpenPnlFeed__factory_1.GTokenOpenPnlFeed__factory; } });
@@ -0,0 +1,7 @@
1
+ export type { GNSMultiCollatDiamond } from "./GNSMultiCollatDiamond";
2
+ export type { GToken } from "./GToken";
3
+ export type { GTokenOpenPnlFeed } from "./GTokenOpenPnlFeed";
4
+ export * as factories from "./factories";
5
+ export { GNSMultiCollatDiamond__factory } from "./factories/GNSMultiCollatDiamond__factory";
6
+ export { GToken__factory } from "./factories/GToken__factory";
7
+ export { GTokenOpenPnlFeed__factory } from "./factories/GTokenOpenPnlFeed__factory";
@@ -0,0 +1,33 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.GTokenOpenPnlFeed__factory = exports.GToken__factory = exports.GNSMultiCollatDiamond__factory = exports.factories = void 0;
27
+ exports.factories = __importStar(require("./factories"));
28
+ var GNSMultiCollatDiamond__factory_1 = require("./factories/GNSMultiCollatDiamond__factory");
29
+ Object.defineProperty(exports, "GNSMultiCollatDiamond__factory", { enumerable: true, get: function () { return GNSMultiCollatDiamond__factory_1.GNSMultiCollatDiamond__factory; } });
30
+ var GToken__factory_1 = require("./factories/GToken__factory");
31
+ Object.defineProperty(exports, "GToken__factory", { enumerable: true, get: function () { return GToken__factory_1.GToken__factory; } });
32
+ var GTokenOpenPnlFeed__factory_1 = require("./factories/GTokenOpenPnlFeed__factory");
33
+ Object.defineProperty(exports, "GTokenOpenPnlFeed__factory", { enumerable: true, get: function () { return GTokenOpenPnlFeed__factory_1.GTokenOpenPnlFeed__factory; } });
@@ -0,0 +1,37 @@
1
+ import { GTokenOpenPnlFeed, GToken, GNSMultiCollatDiamond } from "./generated";
2
+ export type Contracts = {
3
+ gnsMultiCollatDiamond: GNSMultiCollatDiamond;
4
+ gTokenOpenPnlFeed: GTokenOpenPnlFeed;
5
+ gToken: GToken;
6
+ };
7
+ export type ContractAddresses = {
8
+ gnsMultiCollatDiamond: string;
9
+ gTokenOpenPnlFeed: string;
10
+ gToken: string;
11
+ };
12
+ export type BlockTag = number | "latest" | "pending";
13
+ export declare enum CollateralTypes {
14
+ DAI = "DAI",
15
+ ETH = "ETH",
16
+ ARB = "ARB",
17
+ USDC = "USDC",
18
+ APE = "APE",
19
+ GNS = "GNS",
20
+ BTCUSD = "BTCUSD",
21
+ USDM = "USDM"
22
+ }
23
+ export declare enum ContractsVersion {
24
+ BEFORE_V9_2 = 0,
25
+ V9_2 = 1,
26
+ V10 = 2
27
+ }
28
+ export type ContractAddressList = Record<string, Partial<Record<CollateralTypes | "global", Partial<ContractAddresses>>>>;
29
+ export declare enum ChainId {
30
+ POLYGON = 137,
31
+ ARBITRUM = 42161,
32
+ ARBITRUM_SEPOLIA = 421614,
33
+ BASE = 8453,
34
+ APECHAIN = 33139,
35
+ MEGAETH = 4326,
36
+ MEGAETH_TESTNET = 6343
37
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChainId = exports.ContractsVersion = exports.CollateralTypes = void 0;
4
+ var CollateralTypes;
5
+ (function (CollateralTypes) {
6
+ CollateralTypes["DAI"] = "DAI";
7
+ CollateralTypes["ETH"] = "ETH";
8
+ CollateralTypes["ARB"] = "ARB";
9
+ CollateralTypes["USDC"] = "USDC";
10
+ CollateralTypes["APE"] = "APE";
11
+ CollateralTypes["GNS"] = "GNS";
12
+ CollateralTypes["BTCUSD"] = "BTCUSD";
13
+ CollateralTypes["USDM"] = "USDM";
14
+ })(CollateralTypes = exports.CollateralTypes || (exports.CollateralTypes = {}));
15
+ var ContractsVersion;
16
+ (function (ContractsVersion) {
17
+ ContractsVersion[ContractsVersion["BEFORE_V9_2"] = 0] = "BEFORE_V9_2";
18
+ ContractsVersion[ContractsVersion["V9_2"] = 1] = "V9_2";
19
+ ContractsVersion[ContractsVersion["V10"] = 2] = "V10";
20
+ })(ContractsVersion = exports.ContractsVersion || (exports.ContractsVersion = {}));
21
+ var ChainId;
22
+ (function (ChainId) {
23
+ ChainId[ChainId["POLYGON"] = 137] = "POLYGON";
24
+ ChainId[ChainId["ARBITRUM"] = 42161] = "ARBITRUM";
25
+ ChainId[ChainId["ARBITRUM_SEPOLIA"] = 421614] = "ARBITRUM_SEPOLIA";
26
+ ChainId[ChainId["BASE"] = 8453] = "BASE";
27
+ ChainId[ChainId["APECHAIN"] = 33139] = "APECHAIN";
28
+ ChainId[ChainId["MEGAETH"] = 4326] = "MEGAETH";
29
+ ChainId[ChainId["MEGAETH_TESTNET"] = 6343] = "MEGAETH_TESTNET";
30
+ })(ChainId = exports.ChainId || (exports.ChainId = {}));
@@ -0,0 +1,9 @@
1
+ import { GNSMultiCollatDiamond } from "../types/generated";
2
+ import { BorrowingFee } from "../../trade";
3
+ export declare const getBorrowingGroupName: (groupIndex: number) => string;
4
+ export declare const fetchAllPairBorrowingFees: (contract: GNSMultiCollatDiamond, collateralIndex: number) => Promise<BorrowingFee.Pair[]>;
5
+ export declare const fetchGroupBorrowingFees: (contract: GNSMultiCollatDiamond, collateralIndex: number, groupIxs: number[]) => Promise<BorrowingFee.Group[]>;
6
+ export declare const fetchAllPairAndGroupBorrowingFees: (contract: GNSMultiCollatDiamond, collateralIndex: number) => Promise<{
7
+ pairs: BorrowingFee.Pair[];
8
+ groups: BorrowingFee.Group[];
9
+ }>;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fetchAllPairAndGroupBorrowingFees = exports.fetchGroupBorrowingFees = exports.fetchAllPairBorrowingFees = exports.getBorrowingGroupName = void 0;
4
+ const trade_1 = require("../../trade");
5
+ const getBorrowingGroupName = (groupIndex) => {
6
+ const groupNamesByIndex = [
7
+ "Crypto Core",
8
+ "Crypto Altcoins",
9
+ "Forex USD Majors",
10
+ "Forex USD-Quoted Majors",
11
+ "Forex EUR Majors",
12
+ "Indices",
13
+ "Stocks",
14
+ "Commodities",
15
+ "Forex USD Minors",
16
+ "Forex Nordic",
17
+ "Forex GBP Majors",
18
+ "Forex AUD",
19
+ "Forex NZD",
20
+ "Crypto Degen",
21
+ ];
22
+ return groupNamesByIndex[groupIndex - 1] || "Unknown";
23
+ };
24
+ exports.getBorrowingGroupName = getBorrowingGroupName;
25
+ const fetchAllPairBorrowingFees = async (contract, collateralIndex) => {
26
+ const [pairs, pairOi, pairGroups] = await contract.getAllBorrowingPairs(collateralIndex);
27
+ const feeCaps = await contract.getBorrowingPairFeePerBlockCaps(collateralIndex, [...Array(pairs.length).keys()]);
28
+ return (0, trade_1.convertPairBorrowingFees)([pairs, pairOi, pairGroups, feeCaps]);
29
+ };
30
+ exports.fetchAllPairBorrowingFees = fetchAllPairBorrowingFees;
31
+ const fetchGroupBorrowingFees = async (contract, collateralIndex, groupIxs) => (0, trade_1.convertGroupBorrowingFees)(await contract.getBorrowingGroups(collateralIndex, groupIxs));
32
+ exports.fetchGroupBorrowingFees = fetchGroupBorrowingFees;
33
+ const fetchAllPairAndGroupBorrowingFees = async (contract, collateralIndex) => {
34
+ const pairs = await (0, exports.fetchAllPairBorrowingFees)(contract, collateralIndex);
35
+ const groupIxs = [
36
+ ...new Set(pairs
37
+ .map(value => value.groups.map(value => value.groupIndex))
38
+ .reduce((acc, value) => acc.concat(value), [])),
39
+ ].sort((a, b) => a - b);
40
+ const groups = await (0, exports.fetchGroupBorrowingFees)(contract, collateralIndex, groupIxs);
41
+ return { pairs, groups };
42
+ };
43
+ exports.fetchAllPairAndGroupBorrowingFees = fetchAllPairAndGroupBorrowingFees;
@@ -0,0 +1,3 @@
1
+ export * from "./openTrades";
2
+ export * from "./pairs";
3
+ export * from "./borrowingFees";
@@ -0,0 +1,19 @@
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("./openTrades"), exports);
18
+ __exportStar(require("./pairs"), exports);
19
+ __exportStar(require("./borrowingFees"), exports);
@@ -0,0 +1,12 @@
1
+ import { TradeContainer, TradeContainerRaw } from "../../trade/types";
2
+ import { Contracts, BlockTag } from "../../contracts/types";
3
+ export type FetchOpenPairTradesOverrides = {
4
+ traders?: string[];
5
+ batchSize?: number;
6
+ useMulticall?: boolean;
7
+ includeLimits?: boolean;
8
+ blockTag?: BlockTag;
9
+ includeUIRealizedPnlData?: boolean;
10
+ };
11
+ export declare const fetchOpenPairTrades: (contracts: Contracts, overrides?: FetchOpenPairTradesOverrides) => Promise<TradeContainer[]>;
12
+ export declare const fetchOpenPairTradesRaw: (contracts: Contracts, overrides?: FetchOpenPairTradesOverrides) => Promise<TradeContainerRaw[]>;
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fetchOpenPairTradesRaw = exports.fetchOpenPairTrades = void 0;
4
+ const ethcall_1 = require("ethcall");
5
+ const ethers_1 = require("ethers");
6
+ const trade_1 = require("../../trade");
7
+ const fetchOpenPairTrades = async (contracts, overrides = {}) => {
8
+ const rawTrades = await (0, exports.fetchOpenPairTradesRaw)(contracts, overrides);
9
+ const collaterals = await contracts.gnsMultiCollatDiamond.getCollaterals();
10
+ const collateralConfigs = collaterals.map(c => ({
11
+ collateral: c.collateral,
12
+ isActive: c.isActive,
13
+ precision: parseFloat(c.precision.toString()),
14
+ precisionDelta: parseFloat(c.precisionDelta.toString()),
15
+ }));
16
+ return rawTrades.map(rawTrade => _prepareTradeContainer(rawTrade.trade, rawTrade.tradeInfo, rawTrade.liquidationParams, rawTrade.initialAccFees, rawTrade.tradeFeesData, rawTrade.uiRealizedPnlData, collateralConfigs[parseInt(rawTrade.trade.collateralIndex.toString()) - 1]));
17
+ };
18
+ exports.fetchOpenPairTrades = fetchOpenPairTrades;
19
+ const fetchOpenPairTradesRaw = async (contracts, overrides = {}) => {
20
+ if (!contracts) {
21
+ return [];
22
+ }
23
+ const { batchSize = 50, includeLimits = true, useMulticall = false, includeUIRealizedPnlData = true, traders = [], } = overrides;
24
+ const { gnsMultiCollatDiamond: multiCollatDiamondContract } = contracts;
25
+ try {
26
+ const multicallCtx = {
27
+ provider: new ethcall_1.Provider(),
28
+ diamond: new ethcall_1.Contract(multiCollatDiamondContract.address, [
29
+ ...multiCollatDiamondContract.interface.fragments,
30
+ ]),
31
+ };
32
+ const validatedAddresses = _validateAddresses(traders || []);
33
+ const forTraders = validatedAddresses.length > 0;
34
+ if (useMulticall) {
35
+ await multicallCtx.provider.init(multiCollatDiamondContract.provider);
36
+ }
37
+ let allOpenPairTrades = [];
38
+ let running = true;
39
+ let offset = 0;
40
+ while (running) {
41
+ const [trades, tradeInfos, tradeLiquidationParams] = await Promise.all(forTraders
42
+ ? [
43
+ multiCollatDiamondContract.getAllTradesForTraders(validatedAddresses, offset, offset + batchSize),
44
+ multiCollatDiamondContract.getAllTradeInfosForTraders(validatedAddresses, offset, offset + batchSize),
45
+ multiCollatDiamondContract.getAllTradesLiquidationParamsForTraders(validatedAddresses, offset, offset + batchSize),
46
+ ]
47
+ : [
48
+ multiCollatDiamondContract.getAllTrades(offset, offset + batchSize),
49
+ multiCollatDiamondContract.getAllTradeInfos(offset, offset + batchSize),
50
+ multiCollatDiamondContract.getAllTradesLiquidationParams(offset, offset + batchSize),
51
+ ]);
52
+ const fundingFeesCallParams = [
53
+ [],
54
+ [], // indices
55
+ ];
56
+ // Array is always of length `batchSize`
57
+ // so we need to filter out the empty trades, indexes are reliable
58
+ const openTrades = trades
59
+ .filter(t => t.collateralIndex > 0 &&
60
+ (includeLimits || (!includeLimits && t.tradeType === 0)))
61
+ .map((trade, ix) => {
62
+ fundingFeesCallParams[0].push(trade.user);
63
+ fundingFeesCallParams[1].push(trade.index);
64
+ return {
65
+ trade,
66
+ tradeInfo: tradeInfos[ix],
67
+ liquidationParams: tradeLiquidationParams[ix],
68
+ initialAccFees: {
69
+ accPairFee: 0,
70
+ accGroupFee: 0,
71
+ block: 0,
72
+ __placeholder: 0,
73
+ },
74
+ tradeFeesData: {
75
+ realizedTradingFeesCollateral: 0,
76
+ realizedPnlCollateral: 0,
77
+ manuallyRealizedNegativePnlCollateral: 0,
78
+ alreadyTransferredNegativePnlCollateral: 0,
79
+ virtualAvailableCollateralInDiamond: 0,
80
+ initialAccFundingFeeP: 0,
81
+ initialAccBorrowingFeeP: 0,
82
+ __placeholder: 0,
83
+ },
84
+ uiRealizedPnlData: undefined,
85
+ };
86
+ });
87
+ const [tradeFeesData, uiRealizedPnlData] = await Promise.all([
88
+ multiCollatDiamondContract.getTradeFeesDataArray(...fundingFeesCallParams),
89
+ includeUIRealizedPnlData
90
+ ? multiCollatDiamondContract.getTradeUiRealizedPnlDataArray(...fundingFeesCallParams)
91
+ : [],
92
+ ]);
93
+ const initialAccFeesPromises = openTrades
94
+ .map(({ trade }) => ({
95
+ collateralIndex: trade.collateralIndex,
96
+ user: trade.user,
97
+ index: trade.index,
98
+ }))
99
+ .map(({ collateralIndex, user, index }) => (useMulticall
100
+ ? multicallCtx.diamond
101
+ : multiCollatDiamondContract).getBorrowingInitialAccFees(collateralIndex, user, index));
102
+ const initialAccFees = await (useMulticall
103
+ ? multicallCtx.provider.all(initialAccFeesPromises)
104
+ : Promise.all(initialAccFeesPromises));
105
+ initialAccFees.forEach((accFees, ix) => {
106
+ openTrades[ix].initialAccFees = accFees;
107
+ openTrades[ix].tradeFeesData = tradeFeesData[ix];
108
+ openTrades[ix].uiRealizedPnlData = uiRealizedPnlData?.[ix];
109
+ });
110
+ allOpenPairTrades = allOpenPairTrades.concat(openTrades);
111
+ offset += batchSize + 1;
112
+ running =
113
+ parseInt(trades[trades.length - 1].collateralIndex.toString()) > 0;
114
+ }
115
+ return allOpenPairTrades;
116
+ }
117
+ catch (error) {
118
+ console.error(`Unexpected error while fetching open pair trades!`);
119
+ throw error;
120
+ }
121
+ };
122
+ exports.fetchOpenPairTradesRaw = fetchOpenPairTradesRaw;
123
+ const _prepareTradeContainer = (trade, tradeInfo, tradeLiquidationParams, tradeInitialAccFees, tradeFeesData, uiRealizedPnlData, collateralConfig) => {
124
+ const precision = collateralConfig.precision;
125
+ return {
126
+ trade: {
127
+ user: trade.user,
128
+ index: parseInt(trade.index.toString()),
129
+ pairIndex: parseInt(trade.pairIndex.toString()),
130
+ leverage: parseFloat(trade.leverage.toString()) / 1e3,
131
+ long: trade.long.toString() === "true",
132
+ isOpen: trade.isOpen.toString() === "true",
133
+ collateralIndex: parseInt(trade.collateralIndex.toString()),
134
+ tradeType: trade.tradeType,
135
+ collateralAmount: parseFloat(trade.collateralAmount.toString()) / precision,
136
+ openPrice: parseFloat(trade.openPrice.toString()) / 1e10,
137
+ tp: parseFloat(trade.tp.toString()) / 1e10,
138
+ sl: parseFloat(trade.sl.toString()) / 1e10,
139
+ isCounterTrade: trade.isCounterTrade,
140
+ positionSizeToken: parseFloat(trade.positionSizeToken.toString()) / 1e18,
141
+ },
142
+ tradeInfo: {
143
+ createdBlock: parseInt(tradeInfo.createdBlock.toString()),
144
+ tpLastUpdatedBlock: parseInt(tradeInfo.tpLastUpdatedBlock.toString()),
145
+ slLastUpdatedBlock: parseInt(tradeInfo.slLastUpdatedBlock.toString()),
146
+ maxSlippageP: parseFloat(tradeInfo.maxSlippageP.toString()) / 1e3,
147
+ lastOiUpdateTs: parseFloat(tradeInfo.lastOiUpdateTs),
148
+ collateralPriceUsd: parseFloat(tradeInfo.collateralPriceUsd.toString()) / 1e8,
149
+ contractsVersion: parseInt(tradeInfo.contractsVersion.toString()),
150
+ lastPosIncreaseBlock: parseInt(tradeInfo.lastPosIncreaseBlock.toString()),
151
+ },
152
+ liquidationParams: (0, trade_1.convertLiquidationParams)(tradeLiquidationParams),
153
+ initialAccFees: {
154
+ accPairFee: parseFloat(tradeInitialAccFees.accPairFee.toString()) / 1e10,
155
+ accGroupFee: parseFloat(tradeInitialAccFees.accGroupFee.toString()) / 1e10,
156
+ block: parseFloat(tradeInitialAccFees.block.toString()),
157
+ },
158
+ tradeFeesData: (0, trade_1.convertTradeFeesData)(tradeFeesData, collateralConfig),
159
+ uiRealizedPnlData: uiRealizedPnlData
160
+ ? (0, trade_1.convertUiRealizedPnlData)(uiRealizedPnlData, collateralConfig)
161
+ : undefined,
162
+ };
163
+ };
164
+ /**
165
+ * Filters out duplicate addresses. Throws error if an invalid address is provided.
166
+ * @param addresses
167
+ */
168
+ const _validateAddresses = (addresses) => {
169
+ return [
170
+ ...new Set(addresses.map(address => ethers_1.ethers.utils.getAddress(address))),
171
+ ];
172
+ };
@@ -0,0 +1,18 @@
1
+ import { Fee, OpenInterest, Pair, PairIndex } from "../../trade/types";
2
+ import { Contracts } from "../../contracts/types";
3
+ export declare const fetchPairs: (contracts: Contracts, pairIxs: PairIndex[]) => Promise<Pair[]>;
4
+ export declare const fetchPairDepthBands: (contracts: Contracts, pairIxs: number[]) => Promise<any[]>;
5
+ export declare const fetchPairDepthBandsDecoded: (contracts: Contracts, pairIxs: number[]) => Promise<{
6
+ totalDepthAboveUsd: number[];
7
+ totalDepthBelowUsd: number[];
8
+ bandsAbove: number[][];
9
+ bandsBelow: number[][];
10
+ }>;
11
+ export declare const fetchDepthBandsMapping: (contracts: Contracts) => Promise<{
12
+ slot1: string;
13
+ slot2: string;
14
+ }>;
15
+ export declare const fetchDepthBandsMappingDecoded: (contracts: Contracts) => Promise<number[]>;
16
+ export declare const fetchFees: (contracts: Contracts, feeIxs: PairIndex[]) => Promise<Fee[]>;
17
+ export declare const fetchOpenInterest: (contracts: Contracts, collateralIndex: number, pairIxs: number[]) => Promise<OpenInterest[]>;
18
+ export declare const getPairDescription: (pairIndex: PairIndex) => string;