@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.
- package/LICENSE +21 -0
- package/README.md +11 -0
- package/lib/backend/globalTrades/index.d.ts +11 -0
- package/lib/backend/globalTrades/index.js +69 -0
- package/lib/backend/index.d.ts +3 -0
- package/lib/backend/index.js +28 -0
- package/lib/backend/tradingVariables/backend.types.d.ts +337 -0
- package/lib/backend/tradingVariables/backend.types.js +2 -0
- package/lib/backend/tradingVariables/converter.d.ts +38 -0
- package/lib/backend/tradingVariables/converter.js +359 -0
- package/lib/backend/tradingVariables/index.d.ts +5 -0
- package/lib/backend/tradingVariables/index.js +98 -0
- package/lib/backend/tradingVariables/types.d.ts +115 -0
- package/lib/backend/tradingVariables/types.js +14 -0
- package/lib/constants.d.ts +483 -0
- package/lib/constants.js +516 -0
- package/lib/contracts/addresses.d.ts +3 -0
- package/lib/contracts/addresses.js +35 -0
- package/lib/contracts/addresses.json +266 -0
- package/lib/contracts/index.d.ts +14 -0
- package/lib/contracts/index.js +92 -0
- package/lib/contracts/types/generated/GNSMultiCollatDiamond.d.ts +9327 -0
- package/lib/contracts/types/generated/GNSMultiCollatDiamond.js +2 -0
- package/lib/contracts/types/generated/GToken.d.ts +1917 -0
- package/lib/contracts/types/generated/GToken.js +2 -0
- package/lib/contracts/types/generated/GTokenOpenPnlFeed.d.ts +557 -0
- package/lib/contracts/types/generated/GTokenOpenPnlFeed.js +2 -0
- package/lib/contracts/types/generated/common.d.ts +22 -0
- package/lib/contracts/types/generated/common.js +2 -0
- package/lib/contracts/types/generated/factories/GNSMultiCollatDiamond__factory.d.ts +276 -0
- package/lib/contracts/types/generated/factories/GNSMultiCollatDiamond__factory.js +21557 -0
- package/lib/contracts/types/generated/factories/GTokenOpenPnlFeed__factory.d.ts +59 -0
- package/lib/contracts/types/generated/factories/GTokenOpenPnlFeed__factory.js +765 -0
- package/lib/contracts/types/generated/factories/GToken__factory.d.ts +121 -0
- package/lib/contracts/types/generated/factories/GToken__factory.js +2867 -0
- package/lib/contracts/types/generated/factories/index.d.ts +3 -0
- package/lib/contracts/types/generated/factories/index.js +12 -0
- package/lib/contracts/types/generated/index.d.ts +7 -0
- package/lib/contracts/types/generated/index.js +33 -0
- package/lib/contracts/types/index.d.ts +37 -0
- package/lib/contracts/types/index.js +30 -0
- package/lib/contracts/utils/borrowingFees.d.ts +9 -0
- package/lib/contracts/utils/borrowingFees.js +43 -0
- package/lib/contracts/utils/index.d.ts +3 -0
- package/lib/contracts/utils/index.js +19 -0
- package/lib/contracts/utils/openTrades.d.ts +12 -0
- package/lib/contracts/utils/openTrades.js +172 -0
- package/lib/contracts/utils/pairs.d.ts +18 -0
- package/lib/contracts/utils/pairs.js +602 -0
- package/lib/index.d.ts +10 -0
- package/lib/index.js +30 -0
- package/lib/markets/collateral/converter.d.ts +5 -0
- package/lib/markets/collateral/converter.js +11 -0
- package/lib/markets/collateral/index.d.ts +1 -0
- package/lib/markets/collateral/index.js +17 -0
- package/lib/markets/collateral/types.d.ts +7 -0
- package/lib/markets/collateral/types.js +2 -0
- package/lib/markets/commodities.d.ts +1 -0
- package/lib/markets/commodities.js +7 -0
- package/lib/markets/crypto.d.ts +1 -0
- package/lib/markets/crypto.js +6 -0
- package/lib/markets/forex.d.ts +3 -0
- package/lib/markets/forex.js +8 -0
- package/lib/markets/holdingFees/index.d.ts +46 -0
- package/lib/markets/holdingFees/index.js +104 -0
- package/lib/markets/holdingFees/types.d.ts +23 -0
- package/lib/markets/holdingFees/types.js +5 -0
- package/lib/markets/index.d.ts +11 -0
- package/lib/markets/index.js +27 -0
- package/lib/markets/indices.d.ts +1 -0
- package/lib/markets/indices.js +6 -0
- package/lib/markets/leverage/builder.d.ts +12 -0
- package/lib/markets/leverage/builder.js +25 -0
- package/lib/markets/leverage/getMarketLeverageRestrictions.d.ts +7 -0
- package/lib/markets/leverage/getMarketLeverageRestrictions.js +38 -0
- package/lib/markets/leverage/index.d.ts +3 -0
- package/lib/markets/leverage/index.js +19 -0
- package/lib/markets/leverage/types.d.ts +15 -0
- package/lib/markets/leverage/types.js +2 -0
- package/lib/markets/oi/converter.d.ts +62 -0
- package/lib/markets/oi/converter.js +111 -0
- package/lib/markets/oi/index.d.ts +49 -0
- package/lib/markets/oi/index.js +77 -0
- package/lib/markets/oi/types.d.ts +89 -0
- package/lib/markets/oi/types.js +6 -0
- package/lib/markets/price/builder.d.ts +25 -0
- package/lib/markets/price/builder.js +69 -0
- package/lib/markets/price/index.d.ts +7 -0
- package/lib/markets/price/index.js +23 -0
- package/lib/markets/price/marketPrice.d.ts +13 -0
- package/lib/markets/price/marketPrice.js +35 -0
- package/lib/markets/price/signedPrices.d.ts +36 -0
- package/lib/markets/price/signedPrices.js +181 -0
- package/lib/markets/price/types.d.ts +50 -0
- package/lib/markets/price/types.js +5 -0
- package/lib/markets/schedules/builders.d.ts +7 -0
- package/lib/markets/schedules/builders.js +81 -0
- package/lib/markets/schedules/checkers.d.ts +7 -0
- package/lib/markets/schedules/checkers.js +36 -0
- package/lib/markets/schedules/holidays.d.ts +4 -0
- package/lib/markets/schedules/holidays.js +77 -0
- package/lib/markets/schedules/index.d.ts +9 -0
- package/lib/markets/schedules/index.js +45 -0
- package/lib/markets/schedules/types.d.ts +43 -0
- package/lib/markets/schedules/types.js +37 -0
- package/lib/markets/stocks.d.ts +3 -0
- package/lib/markets/stocks.js +15 -0
- package/lib/pricing/depthBands.d.ts +39 -0
- package/lib/pricing/depthBands.js +94 -0
- package/lib/pricing/index.d.ts +4 -0
- package/lib/pricing/index.js +20 -0
- package/lib/trade/counterTrade/index.d.ts +2 -0
- package/lib/trade/counterTrade/index.js +18 -0
- package/lib/trade/counterTrade/types.d.ts +7 -0
- package/lib/trade/counterTrade/types.js +2 -0
- package/lib/trade/counterTrade/validateCounterTrade.d.ts +10 -0
- package/lib/trade/counterTrade/validateCounterTrade.js +29 -0
- package/lib/trade/effectiveLeverage/getTradeNewEffectiveLeverage.d.ts +20 -0
- package/lib/trade/effectiveLeverage/getTradeNewEffectiveLeverage.js +42 -0
- package/lib/trade/effectiveLeverage/index.d.ts +2 -0
- package/lib/trade/effectiveLeverage/index.js +21 -0
- package/lib/trade/effectiveLeverage/types.d.ts +30 -0
- package/lib/trade/effectiveLeverage/types.js +2 -0
- package/lib/trade/fees/borrowing/builder.d.ts +14 -0
- package/lib/trade/fees/borrowing/builder.js +33 -0
- package/lib/trade/fees/borrowing/converter.d.ts +17 -0
- package/lib/trade/fees/borrowing/converter.js +46 -0
- package/lib/trade/fees/borrowing/index.d.ts +81 -0
- package/lib/trade/fees/borrowing/index.js +259 -0
- package/lib/trade/fees/borrowing/types.d.ts +36 -0
- package/lib/trade/fees/borrowing/types.js +2 -0
- package/lib/trade/fees/borrowingV2/builder.d.ts +6 -0
- package/lib/trade/fees/borrowingV2/builder.js +23 -0
- package/lib/trade/fees/borrowingV2/converter.d.ts +75 -0
- package/lib/trade/fees/borrowingV2/converter.js +132 -0
- package/lib/trade/fees/borrowingV2/fetcher.d.ts +76 -0
- package/lib/trade/fees/borrowingV2/fetcher.js +179 -0
- package/lib/trade/fees/borrowingV2/index.d.ts +48 -0
- package/lib/trade/fees/borrowingV2/index.js +112 -0
- package/lib/trade/fees/borrowingV2/types.d.ts +95 -0
- package/lib/trade/fees/borrowingV2/types.js +5 -0
- package/lib/trade/fees/converter.d.ts +48 -0
- package/lib/trade/fees/converter.js +114 -0
- package/lib/trade/fees/fundingFees/builder.d.ts +9 -0
- package/lib/trade/fees/fundingFees/builder.js +38 -0
- package/lib/trade/fees/fundingFees/converter.d.ts +102 -0
- package/lib/trade/fees/fundingFees/converter.js +196 -0
- package/lib/trade/fees/fundingFees/fetcher.d.ts +66 -0
- package/lib/trade/fees/fundingFees/fetcher.js +141 -0
- package/lib/trade/fees/fundingFees/index.d.ts +124 -0
- package/lib/trade/fees/fundingFees/index.js +309 -0
- package/lib/trade/fees/fundingFees/pairContext.d.ts +33 -0
- package/lib/trade/fees/fundingFees/pairContext.js +17 -0
- package/lib/trade/fees/fundingFees/types.d.ts +77 -0
- package/lib/trade/fees/fundingFees/types.js +5 -0
- package/lib/trade/fees/index.d.ts +11 -0
- package/lib/trade/fees/index.js +87 -0
- package/lib/trade/fees/tiers/converter.d.ts +64 -0
- package/lib/trade/fees/tiers/converter.js +100 -0
- package/lib/trade/fees/tiers/index.d.ts +46 -0
- package/lib/trade/fees/tiers/index.js +135 -0
- package/lib/trade/fees/tiers/types.d.ts +22 -0
- package/lib/trade/fees/tiers/types.js +8 -0
- package/lib/trade/fees/trading/builder.d.ts +19 -0
- package/lib/trade/fees/trading/builder.js +21 -0
- package/lib/trade/fees/trading/converter.d.ts +32 -0
- package/lib/trade/fees/trading/converter.js +47 -0
- package/lib/trade/fees/trading/index.d.ts +62 -0
- package/lib/trade/fees/trading/index.js +157 -0
- package/lib/trade/fees/trading/types.d.ts +46 -0
- package/lib/trade/fees/trading/types.js +5 -0
- package/lib/trade/index.d.ts +10 -0
- package/lib/trade/index.js +26 -0
- package/lib/trade/liquidation/builder.d.ts +25 -0
- package/lib/trade/liquidation/builder.js +58 -0
- package/lib/trade/liquidation/converter.d.ts +23 -0
- package/lib/trade/liquidation/converter.js +46 -0
- package/lib/trade/liquidation/index.d.ts +29 -0
- package/lib/trade/liquidation/index.js +216 -0
- package/lib/trade/liquidation/types.d.ts +38 -0
- package/lib/trade/liquidation/types.js +2 -0
- package/lib/trade/oiWindows.d.ts +3 -0
- package/lib/trade/oiWindows.js +19 -0
- package/lib/trade/pnl/builder.d.ts +16 -0
- package/lib/trade/pnl/builder.js +43 -0
- package/lib/trade/pnl/converter.d.ts +47 -0
- package/lib/trade/pnl/converter.js +72 -0
- package/lib/trade/pnl/index.d.ts +91 -0
- package/lib/trade/pnl/index.js +301 -0
- package/lib/trade/pnl/types.d.ts +79 -0
- package/lib/trade/pnl/types.js +5 -0
- package/lib/trade/priceImpact/close/builder.d.ts +23 -0
- package/lib/trade/priceImpact/close/builder.js +44 -0
- package/lib/trade/priceImpact/close/index.d.ts +22 -0
- package/lib/trade/priceImpact/close/index.js +137 -0
- package/lib/trade/priceImpact/close/types.d.ts +47 -0
- package/lib/trade/priceImpact/close/types.js +5 -0
- package/lib/trade/priceImpact/cumulVol/builder.d.ts +22 -0
- package/lib/trade/priceImpact/cumulVol/builder.js +53 -0
- package/lib/trade/priceImpact/cumulVol/converter.d.ts +94 -0
- package/lib/trade/priceImpact/cumulVol/converter.js +155 -0
- package/lib/trade/priceImpact/cumulVol/index.d.ts +109 -0
- package/lib/trade/priceImpact/cumulVol/index.js +316 -0
- package/lib/trade/priceImpact/cumulVol/types.d.ts +11 -0
- package/lib/trade/priceImpact/cumulVol/types.js +2 -0
- package/lib/trade/priceImpact/index.d.ts +21 -0
- package/lib/trade/priceImpact/index.js +79 -0
- package/lib/trade/priceImpact/open/builder.d.ts +21 -0
- package/lib/trade/priceImpact/open/builder.js +42 -0
- package/lib/trade/priceImpact/open/index.d.ts +23 -0
- package/lib/trade/priceImpact/open/index.js +82 -0
- package/lib/trade/priceImpact/open/types.d.ts +45 -0
- package/lib/trade/priceImpact/open/types.js +5 -0
- package/lib/trade/priceImpact/skew/builder.d.ts +12 -0
- package/lib/trade/priceImpact/skew/builder.js +27 -0
- package/lib/trade/priceImpact/skew/converter.d.ts +46 -0
- package/lib/trade/priceImpact/skew/converter.js +81 -0
- package/lib/trade/priceImpact/skew/fetcher.d.ts +60 -0
- package/lib/trade/priceImpact/skew/fetcher.js +160 -0
- package/lib/trade/priceImpact/skew/index.d.ts +53 -0
- package/lib/trade/priceImpact/skew/index.js +148 -0
- package/lib/trade/priceImpact/skew/types.d.ts +44 -0
- package/lib/trade/priceImpact/skew/types.js +5 -0
- package/lib/trade/spread.d.ts +5 -0
- package/lib/trade/spread.js +19 -0
- package/lib/trade/types.d.ts +777 -0
- package/lib/trade/types.js +478 -0
- package/lib/trade/utils.d.ts +18 -0
- package/lib/trade/utils.js +30 -0
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/index.js +17 -0
- package/lib/utils/packing.d.ts +2 -0
- package/lib/utils/packing.js +39 -0
- package/lib/vault/index.d.ts +10 -0
- package/lib/vault/index.js +10 -0
- package/package.json +106 -0
|
@@ -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,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;
|