@gainsnetwork/sdk 1.1.1-rc1 → 1.3.0-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.
@@ -96,9 +96,15 @@ export interface GroupOpenInterestBackend {
96
96
  short: string;
97
97
  max: string;
98
98
  }
99
- export interface PairDepthBackend {
100
- onePercentDepthAboveUsd: string;
101
- onePercentDepthBelowUsd: string;
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
- pairDepths: PairDepthBackend[];
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, PairDepth, PairOi, Trade, TradeContainer, TradeInfo, TradeInitialAccFees, TraderFeeTiers, TradingGroup, PairFactor, convertLiquidationParams } from "../../";
3
- import { BorrowingFeePerBlockCapBackend, CollateralBackend, FeeBackend, FeeTiersBackend, GlobalTradeFeeParamsBackend, OiWindowsBackend, OiWindowsSettingsBackend, OpenInterestBackend, PairBackend, PairDepthBackend, PairFactorBackend, PairOiBackend, PairParamsBorrowingFeesBackend, TradeBackend, TradeContainerBackend, TradeInfoBackend, TradeInitialAccFeesBackend, TraderFeeTiersBackend, TradingGroupBackend } from "./backend.types";
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 convertPairDepths: (pairDepths: PairDepthBackend[]) => PairDepth[];
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.convertPairDepths = exports.convertOpenInterests = exports.convertCollaterals = exports.convertFees = void 0;
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 === null || fees === void 0 ? void 0 : fees.map(fee => convertFee(fee));
8
10
  exports.convertFees = convertFees;
9
11
  const convertCollateral = (collateral) => {
@@ -50,12 +52,17 @@ const convertOpenInterest = (interest) => ({
50
52
  short: parseFloat(interest.beforeV10.short) / 1e10,
51
53
  max: parseFloat(interest.beforeV10.max) / 1e10,
52
54
  });
53
- const convertPairDepths = (pairDepths) => pairDepths === null || pairDepths === void 0 ? void 0 : pairDepths.map(pairDepth => convertPairDepth(pairDepth));
54
- exports.convertPairDepths = convertPairDepths;
55
- const convertPairDepth = (pairDepth) => ({
56
- onePercentDepthAboveUsd: parseInt(pairDepth.onePercentDepthAboveUsd),
57
- onePercentDepthBelowUsd: parseInt(pairDepth.onePercentDepthBelowUsd),
58
- });
55
+ const convertPairDepthBands = (pairDepthBands) => (pairDepthBands === null || pairDepthBands === void 0 ? void 0 : pairDepthBands.map(bands => (0, converter_2.convertPairDepthBandsFromSlots)(BigInt(bands.aboveSlot1), BigInt(bands.aboveSlot2), BigInt(bands.belowSlot1), BigInt(bands.belowSlot2)))) || [];
56
+ exports.convertPairDepthBands = convertPairDepthBands;
57
+ const convertDepthBandsMapping = (mapping) => {
58
+ // First decode the raw slots to get bands in basis points
59
+ const bandsBps = (0, depthBands_1.decodeDepthBandsMapping)(BigInt(mapping.slot1), BigInt(mapping.slot2));
60
+ // Convert from basis points to 0-1 range
61
+ return {
62
+ bands: bandsBps.map(bps => bps / 10000),
63
+ };
64
+ };
65
+ exports.convertDepthBandsMapping = convertDepthBandsMapping;
59
66
  const convertPairSkewDepths = (pairSkewDepths) => {
60
67
  if (!pairSkewDepths)
61
68
  return {};
@@ -31,9 +31,12 @@ const transformGlobalTradingVariables = (rawData) => {
31
31
  stocksClosed: !rawData.isStocksOpen,
32
32
  indicesClosed: !rawData.isIndicesOpen,
33
33
  commoditiesClosed: !rawData.isCommoditiesOpen,
34
- pairDepths: ((_a = rawData.pairInfos) === null || _a === void 0 ? void 0 : _a.pairDepths) !== undefined
35
- ? (0, converter_1.convertPairDepths)(rawData.pairInfos.pairDepths)
34
+ pairDepthBands: ((_a = rawData.pairInfos) === null || _a === void 0 ? void 0 : _a.pairDepthBands) !== undefined
35
+ ? (0, converter_1.convertPairDepthBands)(rawData.pairInfos.pairDepthBands)
36
36
  : [],
37
+ depthBandsMapping: rawData.depthBandsMapping !== undefined
38
+ ? (0, converter_1.convertDepthBandsMapping)(rawData.depthBandsMapping)
39
+ : { bands: [] },
37
40
  pairMaxLeverages: ((_b = rawData.pairInfos) === null || _b === void 0 ? void 0 : _b.maxLeverages) !== undefined
38
41
  ? (0, converter_1.convertMaxLeverages)(rawData.pairInfos.maxLeverages)
39
42
  : [],
@@ -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, PairDepth, PairFactor, PairIndexes, TradingGroup } from "../../trade";
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
- pairDepths?: PairDepth[];
67
+ pairDepthBands?: PairDepthBands[];
68
+ depthBandsMapping?: DepthBandsMapping;
67
69
  pairMaxLeverages?: number[];
68
70
  maxNegativePnlOnOpenP?: number;
69
71
  oiWindowsSettings?: OiWindowsSettings;
@@ -1,4 +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;
4
- export declare const getContractAddressesForTestnetRelease: () => ContractAddresses;
@@ -3,18 +3,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getContractAddressesForTestnetRelease = exports.getCollateralByAddressForChain = exports.getContractAddressesForChain = void 0;
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
- if (!_addresses[chainId]) {
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[chainId][collateral]) {
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
- return Object.assign(Object.assign({}, _addresses[chainId]["global"]), _addresses[chainId][collateral]);
18
+ return Object.assign(Object.assign({}, _addresses[chainIdMapping]["global"]), _addresses[chainIdMapping][collateral]);
18
19
  };
19
20
  exports.getContractAddressesForChain = getContractAddressesForChain;
20
21
  const getCollateralByAddressForChain = (chainId, address) => {
@@ -29,11 +30,3 @@ const getCollateralByAddressForChain = (chainId, address) => {
29
30
  throw new Error(`Unable to find collateral for address (${address}) and chain id (${chainId}). No known contracts match requested address.`);
30
31
  };
31
32
  exports.getCollateralByAddressForChain = getCollateralByAddressForChain;
32
- const getContractAddressesForTestnetRelease = () => {
33
- const _addresses = addresses_json_1.default;
34
- if (!_addresses["421614-release"]) {
35
- throw new Error(`Unknown chain id (${"421614-release"}). No known contracts have been deployed on this chain.`);
36
- }
37
- return Object.assign(Object.assign({}, _addresses["421614-release"]["global"]), _addresses["421614-release"][types_1.CollateralTypes.DAI]);
38
- };
39
- exports.getContractAddressesForTestnetRelease = getContractAddressesForTestnetRelease;