@gainsnetwork/sdk 1.4.5 → 1.5.0-rc2
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/lib/backend/tradingVariables/backend.types.d.ts +11 -4
- package/lib/backend/tradingVariables/converter.d.ts +7 -3
- package/lib/backend/tradingVariables/converter.js +15 -7
- package/lib/backend/tradingVariables/index.js +5 -2
- package/lib/backend/tradingVariables/types.d.ts +4 -2
- package/lib/contracts/addresses.d.ts +1 -1
- package/lib/contracts/addresses.js +6 -5
- package/lib/contracts/addresses.json +29 -0
- package/lib/contracts/types/generated/GNSMultiCollatDiamond.d.ts +208 -33
- package/lib/contracts/types/generated/factories/GNSMultiCollatDiamond__factory.js +279 -28
- package/lib/contracts/utils/pairs.d.ts +13 -2
- package/lib/contracts/utils/pairs.js +68 -11
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -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/priceImpact/cumulVol/builder.js +4 -2
- package/lib/trade/priceImpact/cumulVol/converter.d.ts +63 -0
- package/lib/trade/priceImpact/cumulVol/converter.js +97 -1
- package/lib/trade/priceImpact/cumulVol/index.d.ts +7 -6
- package/lib/trade/priceImpact/cumulVol/index.js +135 -32
- package/lib/trade/priceImpact/cumulVol/types.d.ts +11 -0
- package/lib/trade/priceImpact/cumulVol/types.js +2 -0
- package/lib/trade/priceImpact/open/index.js +3 -0
- package/package.json +1 -1
|
@@ -96,9 +96,15 @@ export interface GroupOpenInterestBackend {
|
|
|
96
96
|
short: string;
|
|
97
97
|
max: string;
|
|
98
98
|
}
|
|
99
|
-
export interface
|
|
100
|
-
|
|
101
|
-
|
|
99
|
+
export interface PairDepthBandsBackend {
|
|
100
|
+
aboveSlot1: string;
|
|
101
|
+
aboveSlot2: string;
|
|
102
|
+
belowSlot1: string;
|
|
103
|
+
belowSlot2: string;
|
|
104
|
+
}
|
|
105
|
+
export interface DepthBandsMappingBackend {
|
|
106
|
+
slot1: string;
|
|
107
|
+
slot2: string;
|
|
102
108
|
}
|
|
103
109
|
export interface PairBorrowingFeesBackendPairGroup {
|
|
104
110
|
groupIndex: string;
|
|
@@ -159,6 +165,7 @@ export interface GlobalTradingVariablesBackend {
|
|
|
159
165
|
groups: TradingGroupBackend[];
|
|
160
166
|
fees: FeeBackend[];
|
|
161
167
|
pairInfos: PairInfosBackend;
|
|
168
|
+
depthBandsMapping: DepthBandsMappingBackend;
|
|
162
169
|
collaterals: CollateralBackend[];
|
|
163
170
|
sssTokenBalance: string;
|
|
164
171
|
sssLegacyTokenBalance: string;
|
|
@@ -239,7 +246,7 @@ export interface CollateralBackend {
|
|
|
239
246
|
}
|
|
240
247
|
export interface PairInfosBackend {
|
|
241
248
|
maxLeverages: string[];
|
|
242
|
-
|
|
249
|
+
pairDepthBands: PairDepthBandsBackend[];
|
|
243
250
|
pairFactors: PairFactorBackend[];
|
|
244
251
|
}
|
|
245
252
|
export type TraderInfoBackend = {
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { ContestLeaderboardBackendEntry, ContestLeaderboardEntry } from "@gainsnetwork/contests";
|
|
2
|
-
import { BorrowingFee, CollateralConfig, Fee, FeeTiers, GlobalTradeFeeParams, OiWindows, OiWindowsSettings, OpenInterest, Pair,
|
|
3
|
-
import {
|
|
2
|
+
import { BorrowingFee, CollateralConfig, Fee, FeeTiers, GlobalTradeFeeParams, OiWindows, OiWindowsSettings, OpenInterest, Pair, PairOi, Trade, TradeContainer, TradeInfo, TradeInitialAccFees, TraderFeeTiers, TradingGroup, PairFactor, convertLiquidationParams } from "../../";
|
|
3
|
+
import { convertPairDepthBandsFromSlots } from "../../trade/priceImpact/cumulVol/converter";
|
|
4
|
+
import { BorrowingFeePerBlockCapBackend, CollateralBackend, FeeBackend, FeeTiersBackend, GlobalTradeFeeParamsBackend, OiWindowsBackend, OiWindowsSettingsBackend, OpenInterestBackend, PairBackend, PairDepthBandsBackend, DepthBandsMappingBackend, PairFactorBackend, PairOiBackend, PairParamsBorrowingFeesBackend, TradeBackend, TradeContainerBackend, TradeInfoBackend, TradeInitialAccFeesBackend, TraderFeeTiersBackend, TradingGroupBackend } from "./backend.types";
|
|
4
5
|
import { TradingVariablesCollateral } from "./types";
|
|
5
6
|
export declare const convertFees: (fees: FeeBackend[]) => Fee[];
|
|
6
7
|
export declare const convertCollaterals: (collaterals: CollateralBackend[]) => TradingVariablesCollateral[];
|
|
7
8
|
export declare const convertOpenInterests: (interests: OpenInterestBackend[]) => OpenInterest[];
|
|
8
|
-
export declare const
|
|
9
|
+
export declare const convertPairDepthBands: (pairDepthBands: PairDepthBandsBackend[]) => ReturnType<typeof convertPairDepthBandsFromSlots>[];
|
|
10
|
+
export declare const convertDepthBandsMapping: (mapping: DepthBandsMappingBackend) => {
|
|
11
|
+
bands: number[];
|
|
12
|
+
};
|
|
9
13
|
export declare const convertPairSkewDepths: (pairSkewDepths: string[] | undefined) => {
|
|
10
14
|
[pairIndex: number]: number;
|
|
11
15
|
};
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.convertLiquidationParams = exports.convertPairName = exports.convertFeePerBlockCap = exports.convertMaxLeverages = exports.convertGlobalTradeFeeParams = exports.convertTraderFeeTiers = exports.convertFeeTiers = exports.convertCollateralConfig = exports.convertOiWindowsSettings = exports.convertOiWindows = exports.convertPairOi = exports.convertContestLeaderboardEntry = exports.generateStockPairToActiveStockSplit = exports.convertTradeInitialAccFees = exports.convertTradeInfo = exports.convertTrade = exports.convertPairFactor = exports.convertTradeContainer = exports.convertTradesAndLimitOrders = exports.convertTradingPairs = exports.convertTradingGroups = exports.convertGroupBorrowingFees = exports.convertPairBorrowingFees = exports.convertPairSkewDepths = exports.
|
|
3
|
+
exports.convertLiquidationParams = exports.convertPairName = exports.convertFeePerBlockCap = exports.convertMaxLeverages = exports.convertGlobalTradeFeeParams = exports.convertTraderFeeTiers = exports.convertFeeTiers = exports.convertCollateralConfig = exports.convertOiWindowsSettings = exports.convertOiWindows = exports.convertPairOi = exports.convertContestLeaderboardEntry = exports.generateStockPairToActiveStockSplit = exports.convertTradeInitialAccFees = exports.convertTradeInfo = exports.convertTrade = exports.convertPairFactor = exports.convertTradeContainer = exports.convertTradesAndLimitOrders = exports.convertTradingPairs = exports.convertTradingGroups = exports.convertGroupBorrowingFees = exports.convertPairBorrowingFees = exports.convertPairSkewDepths = exports.convertDepthBandsMapping = exports.convertPairDepthBands = exports.convertOpenInterests = exports.convertCollaterals = exports.convertFees = void 0;
|
|
4
4
|
const __1 = require("../../");
|
|
5
5
|
Object.defineProperty(exports, "convertLiquidationParams", { enumerable: true, get: function () { return __1.convertLiquidationParams; } });
|
|
6
6
|
const converter_1 = require("../../trade/priceImpact/skew/converter");
|
|
7
|
+
const converter_2 = require("../../trade/priceImpact/cumulVol/converter");
|
|
8
|
+
const depthBands_1 = require("../../pricing/depthBands");
|
|
7
9
|
const convertFees = (fees) => fees?.map(fee => convertFee(fee));
|
|
8
10
|
exports.convertFees = convertFees;
|
|
9
11
|
const convertCollateral = (collateral) => ({
|
|
@@ -52,12 +54,18 @@ const convertOpenInterest = (interest) => ({
|
|
|
52
54
|
short: parseFloat(interest.beforeV10.short) / 1e10,
|
|
53
55
|
max: parseFloat(interest.beforeV10.max) / 1e10,
|
|
54
56
|
});
|
|
55
|
-
const
|
|
56
|
-
exports.
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
57
|
+
const convertPairDepthBands = (pairDepthBands) => pairDepthBands?.map(bands => (0, converter_2.convertPairDepthBandsFromSlots)(BigInt(bands.aboveSlot1), BigInt(bands.aboveSlot2), BigInt(bands.belowSlot1), BigInt(bands.belowSlot2))) || [];
|
|
58
|
+
exports.convertPairDepthBands = convertPairDepthBands;
|
|
59
|
+
const convertDepthBandsMapping = (mapping) => {
|
|
60
|
+
// First decode the raw slots to get bands in basis points
|
|
61
|
+
const bandsBps = (0, depthBands_1.decodeDepthBandsMapping)(BigInt(mapping.slot1), BigInt(mapping.slot2));
|
|
62
|
+
console.log("bandsBps", bandsBps);
|
|
63
|
+
// Convert from basis points to 0-1 range
|
|
64
|
+
return {
|
|
65
|
+
bands: bandsBps.map(bps => bps / 10000),
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
exports.convertDepthBandsMapping = convertDepthBandsMapping;
|
|
61
69
|
const convertPairSkewDepths = (pairSkewDepths) => {
|
|
62
70
|
if (!pairSkewDepths)
|
|
63
71
|
return {};
|
|
@@ -30,9 +30,12 @@ const transformGlobalTradingVariables = (rawData) => {
|
|
|
30
30
|
stocksClosed: !rawData.isStocksOpen,
|
|
31
31
|
indicesClosed: !rawData.isIndicesOpen,
|
|
32
32
|
commoditiesClosed: !rawData.isCommoditiesOpen,
|
|
33
|
-
|
|
34
|
-
? (0, converter_1.
|
|
33
|
+
pairDepthBands: rawData.pairInfos?.pairDepthBands !== undefined
|
|
34
|
+
? (0, converter_1.convertPairDepthBands)(rawData.pairInfos.pairDepthBands)
|
|
35
35
|
: [],
|
|
36
|
+
depthBandsMapping: rawData.depthBandsMapping !== undefined
|
|
37
|
+
? (0, converter_1.convertDepthBandsMapping)(rawData.depthBandsMapping)
|
|
38
|
+
: { bands: [] },
|
|
36
39
|
pairMaxLeverages: rawData.pairInfos?.maxLeverages !== undefined
|
|
37
40
|
? (0, converter_1.convertMaxLeverages)(rawData.pairInfos.maxLeverages)
|
|
38
41
|
: [],
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CollateralConfig } from "src/markets/collateral";
|
|
2
|
-
import { BorrowingFee, BorrowingFeeV2, CounterTradeSettings, Fee, FeeTiers, FundingFees, GlobalTradeFeeParams, LeaderboardTrader, LiquidationParams, OiWindows, OiWindowsSettings, Pair,
|
|
2
|
+
import { BorrowingFee, BorrowingFeeV2, CounterTradeSettings, Fee, FeeTiers, FundingFees, GlobalTradeFeeParams, LeaderboardTrader, LiquidationParams, OiWindows, OiWindowsSettings, Pair, PairFactor, PairIndexes, TradingGroup } from "../../trade";
|
|
3
|
+
import { PairDepthBands, DepthBandsMapping } from "../../trade/priceImpact/cumulVol/types";
|
|
3
4
|
import { UnifiedPairOi } from "src/markets";
|
|
4
5
|
export type TransformedGlobalTradingVariables = {
|
|
5
6
|
globalTradingVariables: GlobalTradingVariablesType;
|
|
@@ -63,7 +64,8 @@ export type GlobalTradingVariablesType = {
|
|
|
63
64
|
commodities?: string[];
|
|
64
65
|
commoditiesClosed?: boolean;
|
|
65
66
|
blockConfirmations?: number;
|
|
66
|
-
|
|
67
|
+
pairDepthBands?: PairDepthBands[];
|
|
68
|
+
depthBandsMapping?: DepthBandsMapping;
|
|
67
69
|
pairMaxLeverages?: number[];
|
|
68
70
|
maxNegativePnlOnOpenP?: number;
|
|
69
71
|
oiWindowsSettings?: OiWindowsSettings;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { CollateralTypes, ContractAddresses } from "./types";
|
|
2
|
-
export declare const getContractAddressesForChain: (chainId: number, collateral?: CollateralTypes) => ContractAddresses;
|
|
2
|
+
export declare const getContractAddressesForChain: (chainId: number, collateral?: CollateralTypes, stable?: boolean) => ContractAddresses;
|
|
3
3
|
export declare const getCollateralByAddressForChain: (chainId: number, address: string) => CollateralTypes;
|
|
@@ -6,17 +6,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.getCollateralByAddressForChain = exports.getContractAddressesForChain = void 0;
|
|
7
7
|
const types_1 = require("./types");
|
|
8
8
|
const addresses_json_1 = __importDefault(require("./addresses.json"));
|
|
9
|
-
const getContractAddressesForChain = (chainId, collateral = types_1.CollateralTypes.DAI) => {
|
|
9
|
+
const getContractAddressesForChain = (chainId, collateral = types_1.CollateralTypes.DAI, stable = true) => {
|
|
10
10
|
const _addresses = addresses_json_1.default;
|
|
11
|
-
|
|
11
|
+
const chainIdMapping = !stable && chainId === 421614 ? "421614-release" : chainId;
|
|
12
|
+
if (!_addresses[chainIdMapping]) {
|
|
12
13
|
throw new Error(`Unknown chain id (${chainId}). No known contracts have been deployed on this chain.`);
|
|
13
14
|
}
|
|
14
|
-
if (!_addresses[
|
|
15
|
+
if (!_addresses[chainIdMapping][collateral]) {
|
|
15
16
|
throw new Error(`Unknown collateral (${collateral}) for chain id (${chainId}). No known contracts have been deployed for this collateral.`);
|
|
16
17
|
}
|
|
17
18
|
return {
|
|
18
|
-
..._addresses[
|
|
19
|
-
..._addresses[
|
|
19
|
+
..._addresses[chainIdMapping]["global"],
|
|
20
|
+
..._addresses[chainIdMapping][collateral],
|
|
20
21
|
};
|
|
21
22
|
};
|
|
22
23
|
exports.getContractAddressesForChain = getContractAddressesForChain;
|
|
@@ -143,5 +143,34 @@
|
|
|
143
143
|
"gTokenOpenPnlFeed": "0x0000000000000000000000000000000000000000",
|
|
144
144
|
"gToken": "0x0000000000000000000000000000000000000000"
|
|
145
145
|
}
|
|
146
|
+
},
|
|
147
|
+
"421614-release": {
|
|
148
|
+
"global": {
|
|
149
|
+
"gnsMultiCollatDiamond": "0xB4F1B18b5679B42F2956dCBff3D7823A61F347C9"
|
|
150
|
+
},
|
|
151
|
+
"DAI": {
|
|
152
|
+
"gTokenOpenPnlFeed": "0xFcF76e2620eB6C32786e32620187A0FbF2844d68",
|
|
153
|
+
"gToken": "0x47CA7Fa22086CD63DBa92Dce23a75aEA9227a9DC"
|
|
154
|
+
},
|
|
155
|
+
"ETH": {
|
|
156
|
+
"gTokenOpenPnlFeed": "0x0000000000000000000000000000000000000000",
|
|
157
|
+
"gToken": "0x0000000000000000000000000000000000000000"
|
|
158
|
+
},
|
|
159
|
+
"USDC": {
|
|
160
|
+
"gTokenOpenPnlFeed": "0x0000000000000000000000000000000000000000",
|
|
161
|
+
"gToken": "0x0000000000000000000000000000000000000000"
|
|
162
|
+
},
|
|
163
|
+
"APE": {
|
|
164
|
+
"gTokenOpenPnlFeed": "0x0000000000000000000000000000000000000000",
|
|
165
|
+
"gToken": "0x0000000000000000000000000000000000000000"
|
|
166
|
+
},
|
|
167
|
+
"GNS": {
|
|
168
|
+
"gTokenOpenPnlFeed": "0x0000000000000000000000000000000000000000",
|
|
169
|
+
"gToken": "0x0000000000000000000000000000000000000000"
|
|
170
|
+
},
|
|
171
|
+
"BTCUSD": {
|
|
172
|
+
"gTokenOpenPnlFeed": "0x0000000000000000000000000000000000000000",
|
|
173
|
+
"gToken": "0x0000000000000000000000000000000000000000"
|
|
174
|
+
}
|
|
146
175
|
}
|
|
147
176
|
}
|