@gainsnetwork/sdk 0.1.29-rc3 → 0.2.0-rc3

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 (135) hide show
  1. package/README.md +11 -11
  2. package/lib/constants.d.ts +252 -261
  3. package/lib/constants.js +269 -277
  4. package/lib/contracts/addresses.d.ts +3 -3
  5. package/lib/contracts/addresses.js +31 -31
  6. package/lib/contracts/addresses.json +53 -89
  7. package/lib/contracts/index.d.ts +8 -8
  8. package/lib/contracts/index.js +37 -40
  9. package/lib/contracts/types/generated/GNSMultiCollatDiamond.d.ts +5215 -1740
  10. package/lib/contracts/types/generated/GNSMultiCollatDiamond.js +2 -2
  11. package/lib/contracts/types/generated/GToken.d.ts +1946 -1946
  12. package/lib/contracts/types/generated/GToken.js +2 -2
  13. package/lib/contracts/types/generated/GTokenOpenPnlFeed.d.ts +557 -557
  14. package/lib/contracts/types/generated/GTokenOpenPnlFeed.js +2 -2
  15. package/lib/contracts/types/generated/common.d.ts +22 -22
  16. package/lib/contracts/types/generated/common.js +2 -2
  17. package/lib/contracts/types/generated/factories/GNSMultiCollatDiamond__factory.d.ts +291 -144
  18. package/lib/contracts/types/generated/factories/GNSMultiCollatDiamond__factory.js +11360 -3094
  19. package/lib/contracts/types/generated/factories/GTokenOpenPnlFeed__factory.d.ts +59 -59
  20. package/lib/contracts/types/generated/factories/GTokenOpenPnlFeed__factory.js +765 -765
  21. package/lib/contracts/types/generated/factories/GToken__factory.d.ts +121 -121
  22. package/lib/contracts/types/generated/factories/GToken__factory.js +2944 -2944
  23. package/lib/contracts/types/generated/factories/index.d.ts +3 -10
  24. package/lib/contracts/types/generated/factories/index.js +12 -26
  25. package/lib/contracts/types/generated/index.d.ts +7 -21
  26. package/lib/contracts/types/generated/index.js +33 -47
  27. package/lib/contracts/types/index.d.ts +19 -27
  28. package/lib/contracts/types/index.js +10 -10
  29. package/lib/contracts/utils/borrowingFees.d.ts +8 -8
  30. package/lib/contracts/utils/borrowingFees.js +32 -28
  31. package/lib/contracts/utils/index.d.ts +3 -4
  32. package/lib/contracts/utils/index.js +19 -20
  33. package/lib/contracts/utils/openTrades.d.ts +9 -9
  34. package/lib/contracts/utils/openTrades.js +380 -188
  35. package/lib/contracts/utils/pairs.d.ts +7 -7
  36. package/lib/contracts/utils/pairs.js +339 -337
  37. package/lib/index.d.ts +7 -7
  38. package/lib/index.js +24 -24
  39. package/lib/markets/commodities.d.ts +1 -1
  40. package/lib/markets/commodities.js +31 -31
  41. package/lib/markets/crypto.d.ts +1 -1
  42. package/lib/markets/crypto.js +6 -6
  43. package/lib/markets/forex.d.ts +3 -3
  44. package/lib/markets/forex.js +45 -45
  45. package/lib/markets/index.d.ts +5 -5
  46. package/lib/markets/index.js +21 -21
  47. package/lib/markets/indices.d.ts +1 -1
  48. package/lib/markets/indices.js +6 -6
  49. package/lib/markets/stocks.d.ts +3 -3
  50. package/lib/markets/stocks.js +54 -54
  51. package/lib/trade/fees/borrowing/converter.d.ts +15 -13
  52. package/lib/trade/fees/borrowing/converter.js +35 -41
  53. package/lib/trade/fees/borrowing/index.d.ts +54 -55
  54. package/lib/trade/fees/borrowing/index.js +165 -171
  55. package/lib/trade/fees/borrowing/types.d.ts +30 -36
  56. package/lib/trade/fees/borrowing/types.js +2 -2
  57. package/lib/trade/fees/index.d.ts +4 -4
  58. package/lib/trade/fees/index.js +30 -30
  59. package/lib/trade/fees/tiers/index.d.ts +12 -12
  60. package/lib/trade/fees/tiers/index.js +51 -51
  61. package/lib/trade/fees/tiers/types.d.ts +8 -8
  62. package/lib/trade/fees/tiers/types.js +2 -2
  63. package/lib/trade/index.d.ts +7 -8
  64. package/lib/trade/index.js +23 -24
  65. package/lib/trade/liquidation.d.ts +3 -3
  66. package/lib/trade/liquidation.js +15 -16
  67. package/lib/trade/oiWindows.d.ts +3 -3
  68. package/lib/trade/oiWindows.js +20 -20
  69. package/lib/trade/pnl.d.ts +7 -7
  70. package/lib/trade/pnl.js +33 -33
  71. package/lib/trade/spread.d.ts +2 -2
  72. package/lib/trade/spread.js +22 -22
  73. package/lib/trade/types.d.ts +413 -429
  74. package/lib/trade/types.js +255 -249
  75. package/lib/utils/index.d.ts +1 -1
  76. package/lib/utils/index.js +17 -17
  77. package/lib/utils/packing.d.ts +2 -2
  78. package/lib/utils/packing.js +39 -39
  79. package/lib/vault/index.d.ts +8 -8
  80. package/lib/vault/index.js +10 -10
  81. package/package.json +105 -105
  82. package/lib/contracts/types/generated/GFarmTradingStorageV5.d.ts +0 -1911
  83. package/lib/contracts/types/generated/GFarmTradingStorageV5.js +0 -2
  84. package/lib/contracts/types/generated/GNSBorrowingFees.d.ts +0 -1067
  85. package/lib/contracts/types/generated/GNSBorrowingFees.js +0 -2
  86. package/lib/contracts/types/generated/GNSBorrowingFeesV6_4.d.ts +0 -1058
  87. package/lib/contracts/types/generated/GNSBorrowingFeesV6_4.js +0 -2
  88. package/lib/contracts/types/generated/GNSNftRewardsV6.d.ts +0 -533
  89. package/lib/contracts/types/generated/GNSNftRewardsV6.js +0 -2
  90. package/lib/contracts/types/generated/GNSNftRewardsV6_3_1.d.ts +0 -613
  91. package/lib/contracts/types/generated/GNSNftRewardsV6_3_1.js +0 -2
  92. package/lib/contracts/types/generated/GNSPairInfosV6_1.d.ts +0 -911
  93. package/lib/contracts/types/generated/GNSPairInfosV6_1.js +0 -2
  94. package/lib/contracts/types/generated/GNSPairsStorageV6.d.ts +0 -660
  95. package/lib/contracts/types/generated/GNSPairsStorageV6.js +0 -2
  96. package/lib/contracts/types/generated/GNSTrading.d.ts +0 -758
  97. package/lib/contracts/types/generated/GNSTrading.js +0 -2
  98. package/lib/contracts/types/generated/GNSTradingCallbacks.d.ts +0 -875
  99. package/lib/contracts/types/generated/GNSTradingCallbacks.js +0 -2
  100. package/lib/contracts/types/generated/GNSTradingCallbacksV6_4.d.ts +0 -821
  101. package/lib/contracts/types/generated/GNSTradingCallbacksV6_4.js +0 -2
  102. package/lib/contracts/types/generated/GNSTradingStorage.d.ts +0 -1387
  103. package/lib/contracts/types/generated/GNSTradingStorage.js +0 -2
  104. package/lib/contracts/types/generated/GTokenV6_3_2.d.ts +0 -1838
  105. package/lib/contracts/types/generated/GTokenV6_3_2.js +0 -2
  106. package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.d.ts +0 -83
  107. package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.js +0 -2691
  108. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_4__factory.d.ts +0 -113
  109. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_4__factory.js +0 -1742
  110. package/lib/contracts/types/generated/factories/GNSBorrowingFees__factory.d.ts +0 -124
  111. package/lib/contracts/types/generated/factories/GNSBorrowingFees__factory.js +0 -1784
  112. package/lib/contracts/types/generated/factories/GNSNftRewardsV6_3_1__factory.d.ts +0 -100
  113. package/lib/contracts/types/generated/factories/GNSNftRewardsV6_3_1__factory.js +0 -1116
  114. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.d.ts +0 -100
  115. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.js +0 -1003
  116. package/lib/contracts/types/generated/factories/GNSPairInfosV6_1__factory.d.ts +0 -98
  117. package/lib/contracts/types/generated/factories/GNSPairInfosV6_1__factory.js +0 -1485
  118. package/lib/contracts/types/generated/factories/GNSPairsStorageV6__factory.d.ts +0 -117
  119. package/lib/contracts/types/generated/factories/GNSPairsStorageV6__factory.js +0 -1265
  120. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_4__factory.d.ts +0 -82
  121. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_4__factory.js +0 -1326
  122. package/lib/contracts/types/generated/factories/GNSTradingCallbacks__factory.d.ts +0 -113
  123. package/lib/contracts/types/generated/factories/GNSTradingCallbacks__factory.js +0 -1428
  124. package/lib/contracts/types/generated/factories/GNSTradingStorage__factory.d.ts +0 -96
  125. package/lib/contracts/types/generated/factories/GNSTradingStorage__factory.js +0 -2241
  126. package/lib/contracts/types/generated/factories/GNSTrading__factory.d.ts +0 -95
  127. package/lib/contracts/types/generated/factories/GNSTrading__factory.js +0 -1071
  128. package/lib/contracts/types/generated/factories/GTokenV6_3_2__factory.d.ts +0 -110
  129. package/lib/contracts/types/generated/factories/GTokenV6_3_2__factory.js +0 -2682
  130. package/lib/contracts/utils/openLimitOrders.d.ts +0 -8
  131. package/lib/contracts/utils/openLimitOrders.js +0 -88
  132. package/lib/trade/fees.d.ts +0 -15
  133. package/lib/trade/fees.js +0 -45
  134. package/lib/trade/openLimitOrder.d.ts +0 -2
  135. package/lib/trade/openLimitOrder.js +0 -23
@@ -1,8 +0,0 @@
1
- import { LimitOrder } from "../../trade/types";
2
- import { BlockTag, Contracts } from "../types";
3
- export type FetchOpenLimitOrdersOverrides = {
4
- blockTag?: BlockTag;
5
- useMulticall?: boolean;
6
- };
7
- export declare const fetchOpenLimitOrders: (contracts: Contracts, overrides?: FetchOpenLimitOrdersOverrides) => Promise<LimitOrder[]>;
8
- export declare const fetchOpenLimitOrdersRaw: (contracts: Contracts, overrides?: FetchOpenLimitOrdersOverrides) => Promise<any[]>;
@@ -1,88 +0,0 @@
1
- "use strict";
2
- /* eslint-disable @typescript-eslint/no-unsafe-call */
3
- /* eslint-disable @typescript-eslint/no-unsafe-return */
4
- /* eslint-disable @typescript-eslint/no-unsafe-member-access */
5
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
6
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
7
- return new (P || (P = Promise))(function (resolve, reject) {
8
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
9
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
10
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
11
- step((generator = generator.apply(thisArg, _arguments || [])).next());
12
- });
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.fetchOpenLimitOrdersRaw = exports.fetchOpenLimitOrders = void 0;
16
- const ethcall_1 = require("ethcall");
17
- const fetchOpenLimitOrders = (contracts, overrides = {}) => __awaiter(void 0, void 0, void 0, function* () {
18
- const openLimitOrdersRaw = yield (0, exports.fetchOpenLimitOrdersRaw)(contracts, overrides);
19
- return openLimitOrdersRaw.map((order) => ({
20
- block: parseInt(order.block.toString()),
21
- buy: order.buy,
22
- index: parseInt(order.index.toString()),
23
- leverage: parseInt(order.leverage.toString()),
24
- maxPrice: parseFloat(order.maxPrice.toString()) / 1e10,
25
- minPrice: parseFloat(order.minPrice.toString()) / 1e10,
26
- pairIndex: parseInt(order.pairIndex.toString()),
27
- positionSize: parseFloat(order.positionSize.toString()) / 1e18,
28
- sl: parseFloat(order.sl.toString()) / 1e10,
29
- spreadReductionP: parseInt(order.spreadReductionP.toString()) / 100,
30
- tp: parseFloat(order.tp.toString()) / 1e10,
31
- trader: order.trader,
32
- type: parseInt(order.type.toString()),
33
- maxSlippageP: parseFloat(order.maxSlippageP.toString()) / 1e10,
34
- }));
35
- });
36
- exports.fetchOpenLimitOrders = fetchOpenLimitOrders;
37
- const fetchOpenLimitOrdersRaw = (contracts, overrides = {}) => __awaiter(void 0, void 0, void 0, function* () {
38
- if (!contracts) {
39
- return [];
40
- }
41
- console.time("fetchOpenLimitOrdersRaw");
42
- const { useMulticall = false, blockTag = "latest" } = overrides;
43
- const { gfarmTradingStorageV5: storageContract, gnsNftRewards: nftRewards, gnsTradingCallbacks: callbacks, } = contracts;
44
- const openLimitOrders = yield storageContract.getOpenLimitOrders({
45
- blockTag,
46
- });
47
- let openLimitOrderTypes = [];
48
- let openLimitOrderTradeData = [];
49
- if (useMulticall) {
50
- const multicallProvider = new ethcall_1.Provider();
51
- yield multicallProvider.init(storageContract.provider);
52
- const nftRewardsContractMulticall = new ethcall_1.Contract(nftRewards.address, [
53
- ...nftRewards.interface.fragments,
54
- ]);
55
- const callbacksContractMulticall = new ethcall_1.Contract(callbacks.address, [
56
- ...callbacks.interface.fragments,
57
- ]);
58
- openLimitOrderTypes = yield multicallProvider.all(openLimitOrders.map(order => nftRewardsContractMulticall.openLimitOrderTypes(order.trader, order.pairIndex, order.index)), blockTag);
59
- openLimitOrderTradeData = yield multicallProvider.all(openLimitOrders.map(order => callbacksContractMulticall.tradeData(order.trader, order.pairIndex, order.index, 1)), blockTag);
60
- }
61
- else {
62
- openLimitOrderTypes = yield Promise.all(openLimitOrders.map(order => nftRewards.openLimitOrderTypes(order.trader, order.pairIndex, order.index, { blockTag })));
63
- openLimitOrderTradeData = yield Promise.all(openLimitOrders.map(order => callbacks.tradeData(order.trader, order.pairIndex, order.index, 1, {
64
- blockTag,
65
- })));
66
- }
67
- return openLimitOrderTypes.map((openLimitOrderType, index) => {
68
- const openLimitOrder = openLimitOrders[index];
69
- const tradeData = openLimitOrderTradeData[index];
70
- return {
71
- trader: openLimitOrder.trader,
72
- pairIndex: openLimitOrder.pairIndex,
73
- index: openLimitOrder.index,
74
- positionSize: openLimitOrder.positionSize,
75
- spreadReductionP: openLimitOrder.spreadReductionP,
76
- buy: openLimitOrder.buy,
77
- leverage: openLimitOrder.leverage,
78
- tp: openLimitOrder.tp,
79
- sl: openLimitOrder.sl,
80
- minPrice: openLimitOrder.minPrice,
81
- maxPrice: openLimitOrder.maxPrice,
82
- block: openLimitOrder.block,
83
- type: openLimitOrderType,
84
- maxSlippageP: tradeData.maxSlippageP,
85
- };
86
- });
87
- });
88
- exports.fetchOpenLimitOrdersRaw = fetchOpenLimitOrdersRaw;
@@ -1,15 +0,0 @@
1
- import { Fee, OpenInterest, PairFundingFees, PairParams, PairRolloverFees } from "./types";
2
- export declare const getClosingFee: (posDai: number, leverage: number, pairIndex: number, pairFee: Fee | undefined) => number;
3
- export type GetFundingFeeContext = {
4
- currentBlock?: number;
5
- pairParams?: PairParams;
6
- pairFundingFees?: PairFundingFees;
7
- openInterest?: OpenInterest;
8
- };
9
- export declare const getFundingFee: (leveragedPosDai: number, initialAccFundingFees: number, buy: boolean, openedAfterUpdate: boolean, context: GetFundingFeeContext) => number;
10
- export type GetRolloverFeeContext = {
11
- currentBlock?: number;
12
- pairParams?: PairParams;
13
- pairRolloverFees?: PairRolloverFees;
14
- };
15
- export declare const getRolloverFee: (posDai: number, initialAccRolloverFees: number, openedAfterUpdate: boolean, context: GetRolloverFeeContext) => number;
package/lib/trade/fees.js DELETED
@@ -1,45 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getRolloverFee = exports.getFundingFee = exports.getClosingFee = void 0;
4
- const getClosingFee = (posDai, leverage, pairIndex, pairFee) => {
5
- if (posDai === undefined ||
6
- leverage === undefined ||
7
- pairIndex === undefined ||
8
- pairFee === undefined) {
9
- return 0;
10
- }
11
- const { closeFeeP, nftLimitOrderFeeP } = pairFee;
12
- return (closeFeeP + nftLimitOrderFeeP) * posDai * leverage;
13
- };
14
- exports.getClosingFee = getClosingFee;
15
- const getFundingFee = (leveragedPosDai, initialAccFundingFees, buy, openedAfterUpdate, context) => {
16
- const { pairParams, pairFundingFees, openInterest, currentBlock } = context;
17
- if (!currentBlock ||
18
- !openedAfterUpdate ||
19
- pairParams === undefined ||
20
- pairFundingFees === undefined ||
21
- openInterest === undefined)
22
- return 0;
23
- const { accPerOiLong, accPerOiShort, lastUpdateBlock } = pairFundingFees;
24
- const { fundingFeePerBlockP } = pairParams;
25
- const { long: longOi, short: shortOi } = openInterest;
26
- const fundingFeesPaidByLongs = (longOi - shortOi) * fundingFeePerBlockP * (currentBlock - lastUpdateBlock);
27
- const pendingAccFundingFees = buy
28
- ? accPerOiLong + fundingFeesPaidByLongs / longOi
29
- : accPerOiShort + (fundingFeesPaidByLongs * -1) / shortOi;
30
- return leveragedPosDai * (pendingAccFundingFees - initialAccFundingFees);
31
- };
32
- exports.getFundingFee = getFundingFee;
33
- const getRolloverFee = (posDai, initialAccRolloverFees, openedAfterUpdate, context) => {
34
- const { pairParams, pairRolloverFees, currentBlock } = context;
35
- if (!currentBlock ||
36
- !openedAfterUpdate ||
37
- pairParams === undefined ||
38
- pairRolloverFees === undefined)
39
- return 0;
40
- const { accPerCollateral, lastUpdateBlock } = pairRolloverFees;
41
- const { rolloverFeePerBlockP } = pairParams;
42
- const pendingAccRolloverFees = accPerCollateral + (currentBlock - lastUpdateBlock) * rolloverFeePerBlockP;
43
- return posDai * (pendingAccRolloverFees - initialAccRolloverFees);
44
- };
45
- exports.getRolloverFee = getRolloverFee;
@@ -1,2 +0,0 @@
1
- import { LimitOrder, Pair, PairDepth, OiWindowsSettings, OiWindows } from "./types";
2
- export declare const getFulfillmentPrice: (order: LimitOrder, pair: Pair, pairDepth: PairDepth, oiWindowsSettings?: OiWindowsSettings, oiWindows?: OiWindows) => number;
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getFulfillmentPrice = void 0;
4
- const spread_1 = require("./spread");
5
- const types_1 = require("./types");
6
- const getFulfillmentPrice = (order, pair, pairDepth, oiWindowsSettings, oiWindows) => {
7
- if (!order || !pair) {
8
- return 0;
9
- }
10
- // Get spread percentage
11
- const spreadWithPriceImpactP = (0, spread_1.getSpreadWithPriceImpactP)(pair.spreadP, order.buy, order.positionSize, order.leverage, pairDepth, oiWindowsSettings, oiWindows);
12
- if (spreadWithPriceImpactP === 0) {
13
- return 0;
14
- }
15
- const askingPrice = (order.buy && order.type === types_1.OpenLimitOrderType.REVERSAL) ||
16
- (!order.buy && order.type === types_1.OpenLimitOrderType.MOMENTUM)
17
- ? order.maxPrice
18
- : order.minPrice;
19
- return order.buy
20
- ? askingPrice * (1 + spreadWithPriceImpactP)
21
- : askingPrice * (1 - spreadWithPriceImpactP);
22
- };
23
- exports.getFulfillmentPrice = getFulfillmentPrice;