@d8x/perpetuals-sdk 0.1.12 → 0.2.0
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/dist/cjs/abi/testnet/IPerpetualManager.json +5215 -0
- package/dist/cjs/abi/testnet/LimitOrderBook.json +1075 -0
- package/dist/cjs/abi/zkevmTestnet/IPerpetualManager.json +5215 -0
- package/dist/cjs/abi/zkevmTestnet/LimitOrderBook.json +1075 -0
- package/dist/cjs/abi/zkevmTestnet/LimitOrderBookFactory.json +135 -0
- package/dist/cjs/accountTrade.js +441 -0
- package/dist/cjs/accountTrade.js.map +1 -0
- package/dist/{src → cjs}/brokerTool.js +31 -84
- package/dist/cjs/brokerTool.js.map +1 -0
- package/dist/cjs/config/defaultConfig.json +47 -0
- package/dist/cjs/config/mockSwap.json +4 -0
- package/dist/cjs/config/priceFeedConfig.json +104 -0
- package/dist/cjs/config/symbolList.json +13 -0
- package/dist/cjs/d8XMath.js.map +1 -0
- package/dist/cjs/index.js +29 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/liquidatorTool.js +287 -0
- package/dist/cjs/liquidatorTool.js.map +1 -0
- package/dist/{src → cjs}/liquidityProviderTool.js +12 -65
- package/dist/cjs/liquidityProviderTool.js.map +1 -0
- package/dist/{src → cjs}/marketData.js +52 -134
- package/dist/cjs/marketData.js.map +1 -0
- package/dist/{src → cjs}/nodeSDKTypes.d.ts +5 -5
- package/dist/cjs/nodeSDKTypes.js +64 -0
- package/dist/cjs/nodeSDKTypes.js.map +1 -0
- package/dist/{src → cjs}/orderReferrerTool.d.ts +12 -5
- package/dist/{src → cjs}/orderReferrerTool.js +114 -112
- package/dist/cjs/orderReferrerTool.js.map +1 -0
- package/dist/{src → cjs}/perpetualDataHandler.d.ts +1 -1
- package/dist/{src → cjs}/perpetualDataHandler.js +47 -109
- package/dist/cjs/perpetualDataHandler.js.map +1 -0
- package/dist/{src → cjs}/perpetualEventHandler.d.ts +3 -3
- package/dist/{src → cjs}/perpetualEventHandler.js +12 -74
- package/dist/cjs/perpetualEventHandler.js.map +1 -0
- package/dist/cjs/priceFeeds.js +466 -0
- package/dist/cjs/priceFeeds.js.map +1 -0
- package/dist/{src → cjs}/traderDigests.js +7 -43
- package/dist/cjs/traderDigests.js.map +1 -0
- package/dist/{src → cjs}/traderInterface.js +13 -66
- package/dist/cjs/traderInterface.js.map +1 -0
- package/dist/{src → cjs}/triangulator.js +2 -17
- package/dist/cjs/triangulator.js.map +1 -0
- package/dist/{src → cjs}/utils.js +3 -29
- package/dist/cjs/utils.js.map +1 -0
- package/dist/cjs/version.d.ts +1 -0
- package/dist/{src → cjs}/version.js +1 -1
- package/dist/cjs/version.js.map +1 -0
- package/dist/{src → cjs}/writeAccessHandler.js +12 -65
- package/dist/cjs/writeAccessHandler.js.map +1 -0
- package/dist/esm/abi/ERC20.json +288 -0
- package/dist/esm/abi/MockTokenSwap.json +186 -0
- package/dist/{abi/testnet → esm/abi/central-park}/IPerpetualManager.json +404 -214
- package/dist/{abi/testnet → esm/abi/central-park}/LimitOrderBook.json +197 -15
- package/dist/esm/abi/central-park/LimitOrderBookFactory.json +135 -0
- package/dist/esm/abi/testnet/IPerpetualManager.json +5215 -0
- package/dist/esm/abi/testnet/LimitOrderBook.json +1075 -0
- package/dist/esm/abi/testnet/LimitOrderBookFactory.json +135 -0
- package/dist/esm/abi/zkevmTestnet/IPerpetualManager.json +5215 -0
- package/dist/esm/abi/zkevmTestnet/LimitOrderBook.json +1075 -0
- package/dist/esm/abi/zkevmTestnet/LimitOrderBookFactory.json +135 -0
- package/dist/esm/accountTrade.d.ts +221 -0
- package/dist/{src → esm}/accountTrade.js +22 -93
- package/dist/esm/accountTrade.js.map +1 -0
- package/dist/esm/brokerTool.d.ts +318 -0
- package/dist/esm/brokerTool.js +572 -0
- package/dist/esm/brokerTool.js.map +1 -0
- package/dist/esm/config/defaultConfig.json +47 -0
- package/dist/esm/config/mockSwap.json +4 -0
- package/dist/esm/config/priceFeedConfig.json +104 -0
- package/dist/esm/config/symbolList.json +13 -0
- package/dist/esm/d8XMath.d.ts +122 -0
- package/dist/esm/d8XMath.js +247 -0
- package/dist/esm/d8XMath.js.map +1 -0
- package/{src/index.ts → dist/esm/index.d.ts} +1 -15
- package/dist/esm/index.js +16 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/liquidatorTool.d.ts +158 -0
- package/dist/{src → esm}/liquidatorTool.js +10 -65
- package/dist/esm/liquidatorTool.js.map +1 -0
- package/dist/esm/liquidityProviderTool.d.ts +126 -0
- package/dist/esm/liquidityProviderTool.js +218 -0
- package/dist/esm/liquidityProviderTool.js.map +1 -0
- package/dist/esm/marketData.d.ts +309 -0
- package/dist/esm/marketData.js +1007 -0
- package/dist/esm/marketData.js.map +1 -0
- package/dist/esm/nodeSDKTypes.d.ts +266 -0
- package/dist/esm/nodeSDKTypes.js +60 -0
- package/dist/esm/nodeSDKTypes.js.map +1 -0
- package/dist/esm/orderReferrerTool.d.ts +196 -0
- package/dist/esm/orderReferrerTool.js +491 -0
- package/dist/esm/orderReferrerTool.js.map +1 -0
- package/dist/esm/perpetualDataHandler.d.ts +220 -0
- package/dist/esm/perpetualDataHandler.js +1060 -0
- package/dist/esm/perpetualDataHandler.js.map +1 -0
- package/dist/esm/perpetualEventHandler.d.ts +179 -0
- package/dist/esm/perpetualEventHandler.js +435 -0
- package/dist/esm/perpetualEventHandler.js.map +1 -0
- package/dist/esm/priceFeeds.d.ts +115 -0
- package/dist/{src → esm}/priceFeeds.js +16 -83
- package/dist/esm/priceFeeds.js.map +1 -0
- package/dist/esm/traderDigests.d.ts +21 -0
- package/dist/esm/traderDigests.js +80 -0
- package/dist/esm/traderDigests.js.map +1 -0
- package/dist/esm/traderInterface.d.ts +79 -0
- package/dist/esm/traderInterface.js +196 -0
- package/dist/esm/traderInterface.js.map +1 -0
- package/dist/esm/triangulator.d.ts +27 -0
- package/dist/esm/triangulator.js +110 -0
- package/dist/esm/triangulator.js.map +1 -0
- package/dist/esm/utils.d.ts +59 -0
- package/dist/esm/utils.js +138 -0
- package/dist/esm/utils.js.map +1 -0
- package/dist/esm/version.d.ts +1 -0
- package/dist/esm/version.js +2 -0
- package/dist/esm/version.js.map +1 -0
- package/dist/esm/writeAccessHandler.d.ts +50 -0
- package/dist/esm/writeAccessHandler.js +157 -0
- package/dist/esm/writeAccessHandler.js.map +1 -0
- package/package.json +16 -26
- package/dist/bundle.js +0 -36793
- package/dist/config/defaultConfig.json +0 -47
- package/dist/config/mockSwap.json +0 -4
- package/dist/config/priceFeedConfig.json +0 -104
- package/dist/config/symbolList.json +0 -13
- package/dist/src/index.js +0 -45
- package/dist/src/nodeSDKTypes.js +0 -115
- package/dist/src/version.d.ts +0 -1
- package/module.d.ts +0 -1
- package/src/accountTrade.ts +0 -392
- package/src/brokerTool.ts +0 -507
- package/src/d8XMath.ts +0 -319
- package/src/liquidatorTool.ts +0 -258
- package/src/liquidityProviderTool.ts +0 -186
- package/src/marketData.ts +0 -946
- package/src/nodeSDKTypes.ts +0 -293
- package/src/orderReferrerTool.ts +0 -389
- package/src/perpetualDataHandler.ts +0 -1061
- package/src/perpetualEventHandler.ts +0 -455
- package/src/priceFeeds.ts +0 -381
- package/src/traderDigests.ts +0 -91
- package/src/traderInterface.ts +0 -159
- package/src/triangulator.ts +0 -105
- package/src/utils.ts +0 -134
- package/src/version.ts +0 -1
- package/src/writeAccessHandler.ts +0 -127
- /package/dist/{abi → cjs/abi}/ERC20.json +0 -0
- /package/dist/{abi → cjs/abi}/MockTokenSwap.json +0 -0
- /package/dist/{abi → cjs/abi}/central-park/IPerpetualManager.json +0 -0
- /package/dist/{abi → cjs/abi}/central-park/LimitOrderBook.json +0 -0
- /package/dist/{abi → cjs/abi}/central-park/LimitOrderBookFactory.json +0 -0
- /package/dist/{abi → cjs/abi}/testnet/LimitOrderBookFactory.json +0 -0
- /package/dist/{src → cjs}/accountTrade.d.ts +0 -0
- /package/dist/{src → cjs}/brokerTool.d.ts +0 -0
- /package/dist/{src → cjs}/d8XMath.d.ts +0 -0
- /package/dist/{src → cjs}/d8XMath.js +0 -0
- /package/dist/{src → cjs}/index.d.ts +0 -0
- /package/dist/{src → cjs}/liquidatorTool.d.ts +0 -0
- /package/dist/{src → cjs}/liquidityProviderTool.d.ts +0 -0
- /package/dist/{src → cjs}/marketData.d.ts +0 -0
- /package/dist/{src → cjs}/priceFeeds.d.ts +0 -0
- /package/dist/{src → cjs}/traderDigests.d.ts +0 -0
- /package/dist/{src → cjs}/traderInterface.d.ts +0 -0
- /package/dist/{src → cjs}/triangulator.d.ts +0 -0
- /package/dist/{src → cjs}/utils.d.ts +0 -0
- /package/dist/{src → cjs}/writeAccessHandler.d.ts +0 -0
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
import { ethers, BigNumber } from "ethers";
|
|
2
|
+
import { NodeSDKConfig, Order, SmartContractOrder, PerpetualStaticInfo, MarginAccount, PoolStaticInfo, PerpetualState, PriceFeedSubmission, ClientOrder } from "./nodeSDKTypes";
|
|
3
|
+
import PriceFeeds from "./priceFeeds";
|
|
4
|
+
/**
|
|
5
|
+
* Parent class for MarketData and WriteAccessHandler that handles
|
|
6
|
+
* common data and chain operations.
|
|
7
|
+
*/
|
|
8
|
+
export default class PerpetualDataHandler {
|
|
9
|
+
PRICE_UPDATE_FEE_GWEI: number;
|
|
10
|
+
protected symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>;
|
|
11
|
+
protected poolStaticInfos: Array<PoolStaticInfo>;
|
|
12
|
+
protected symbolList: Map<string, string>;
|
|
13
|
+
protected symbolToTokenAddrMap: Map<string, string>;
|
|
14
|
+
protected chainId: number;
|
|
15
|
+
protected proxyContract: ethers.Contract | null;
|
|
16
|
+
protected proxyABI: ethers.ContractInterface;
|
|
17
|
+
protected proxyAddr: string;
|
|
18
|
+
protected lobFactoryContract: ethers.Contract | null;
|
|
19
|
+
protected lobFactoryABI: ethers.ContractInterface;
|
|
20
|
+
protected lobFactoryAddr: string | undefined;
|
|
21
|
+
protected lobABI: ethers.ContractInterface;
|
|
22
|
+
protected nodeURL: string;
|
|
23
|
+
protected provider: ethers.providers.Provider | null;
|
|
24
|
+
private signerOrProvider;
|
|
25
|
+
protected priceFeedGetter: PriceFeeds;
|
|
26
|
+
protected nestedPerpetualIDs: number[][];
|
|
27
|
+
constructor(config: NodeSDKConfig);
|
|
28
|
+
protected initContractsAndData(signerOrProvider: ethers.Signer | ethers.providers.Provider): Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* Returns the order-book contract for the symbol if found or fails
|
|
31
|
+
* @param symbol symbol of the form ETH-USD-MATIC
|
|
32
|
+
* @returns order book contract for the perpetual
|
|
33
|
+
*/
|
|
34
|
+
getOrderBookContract(symbol: string): ethers.Contract;
|
|
35
|
+
/**
|
|
36
|
+
* Called when initializing. This function fills this.symbolToTokenAddrMap,
|
|
37
|
+
* and this.nestedPerpetualIDs and this.symbolToPerpStaticInfo
|
|
38
|
+
*
|
|
39
|
+
*/
|
|
40
|
+
protected _fillSymbolMaps(proxyContract: ethers.Contract): Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
* Get pool symbol given a pool Id.
|
|
43
|
+
* @param {number} poolId Pool Id.
|
|
44
|
+
* @returns {symbol} Pool symbol, e.g. "USDC".
|
|
45
|
+
*/
|
|
46
|
+
getSymbolFromPoolId(poolId: number): string;
|
|
47
|
+
/**
|
|
48
|
+
* Get pool Id given a pool symbol.
|
|
49
|
+
* @param {string} symbol Pool symbol.
|
|
50
|
+
* @returns {number} Pool Id.
|
|
51
|
+
*/
|
|
52
|
+
getPoolIdFromSymbol(symbol: string): number;
|
|
53
|
+
/**
|
|
54
|
+
* Get perpetual Id given a perpetual symbol.
|
|
55
|
+
* @param {string} symbol Perpetual symbol, e.g. "BTC-USD-MATIC".
|
|
56
|
+
* @returns {number} Perpetual Id.
|
|
57
|
+
*/
|
|
58
|
+
getPerpIdFromSymbol(symbol: string): number;
|
|
59
|
+
/**
|
|
60
|
+
* Get the symbol in long format of the perpetual id
|
|
61
|
+
* @param perpId perpetual id
|
|
62
|
+
*/
|
|
63
|
+
getSymbolFromPerpId(perpId: number): string | undefined;
|
|
64
|
+
symbol4BToLongSymbol(sym: string): string;
|
|
65
|
+
/**
|
|
66
|
+
* Get PriceFeedSubmission data required for blockchain queries that involve price data, and the corresponding
|
|
67
|
+
* triangulated prices for the indices S2 and S3
|
|
68
|
+
* @param symbol pool symbol of the form "ETH-USD-MATIC"
|
|
69
|
+
* @returns PriceFeedSubmission and prices for S2 and S3. [S2price, 0] if S3 not defined.
|
|
70
|
+
*/
|
|
71
|
+
fetchPriceSubmissionInfoForPerpetual(symbol: string): Promise<{
|
|
72
|
+
submission: PriceFeedSubmission;
|
|
73
|
+
pxS2S3: [number, number];
|
|
74
|
+
}>;
|
|
75
|
+
/**
|
|
76
|
+
* Get the symbols required as indices for the given perpetual
|
|
77
|
+
* @param symbol of the form ETH-USD-MATIC, specifying the perpetual
|
|
78
|
+
* @returns name of underlying index prices, e.g. ["MATIC-USD", ""]
|
|
79
|
+
*/
|
|
80
|
+
getIndexSymbols(symbol: string): [string, string];
|
|
81
|
+
/**
|
|
82
|
+
* Get the latest prices for a given perpetual from the offchain oracle
|
|
83
|
+
* networks
|
|
84
|
+
* @param symbol perpetual symbol of the form BTC-USD-MATIC
|
|
85
|
+
* @returns array of price feed updates that can be submitted to the smart contract
|
|
86
|
+
* and corresponding price information
|
|
87
|
+
*/
|
|
88
|
+
fetchLatestFeedPriceInfo(symbol: string): Promise<PriceFeedSubmission>;
|
|
89
|
+
/**
|
|
90
|
+
* Get list of required pyth price source IDs for given perpetual
|
|
91
|
+
* @param symbol perpetual symbol, e.g., BTC-USD-MATIC
|
|
92
|
+
* @returns list of required pyth price sources for this perpetual
|
|
93
|
+
*/
|
|
94
|
+
getPriceIds(symbol: string): string[];
|
|
95
|
+
protected static _getSymbolFromPoolId(poolId: number, staticInfos: PoolStaticInfo[]): string;
|
|
96
|
+
protected static _getPoolIdFromSymbol(symbol: string, staticInfos: PoolStaticInfo[]): number;
|
|
97
|
+
static getNestedPerpetualIds(_proxyContract: ethers.Contract): Promise<number[][]>;
|
|
98
|
+
static buildMarginAccountFromState(symbol: string, traderState: ethers.BigNumber[], symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>, _pxS2S3: [number, number]): MarginAccount;
|
|
99
|
+
static getMarginAccount(traderAddr: string, symbol: string, symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>, _proxyContract: ethers.Contract, _pxS2S3: [number, number]): Promise<MarginAccount>;
|
|
100
|
+
protected static _queryPerpetualPrice(symbol: string, tradeAmount: number, symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>, _proxyContract: ethers.Contract, indexPrices: [number, number]): Promise<number>;
|
|
101
|
+
protected static _queryPerpetualMarkPrice(symbol: string, symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>, _proxyContract: ethers.Contract, indexPrices: [number, number]): Promise<number>;
|
|
102
|
+
protected static _queryPerpetualState(symbol: string, symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>, _proxyContract: ethers.Contract, indexPrices: [number, number, boolean, boolean]): Promise<PerpetualState>;
|
|
103
|
+
/**
|
|
104
|
+
* Liquidation price
|
|
105
|
+
* @param symbol symbol of the form BTC-USD-MATIC
|
|
106
|
+
* @param traderState BigInt array according to smart contract
|
|
107
|
+
* @param S2 number, index price S2
|
|
108
|
+
* @param symbolToPerpStaticInfo mapping symbol->PerpStaticInfo
|
|
109
|
+
* @returns liquidation mark-price, corresponding collateral/quote conversion
|
|
110
|
+
*/
|
|
111
|
+
protected static _calculateLiquidationPrice(symbol: string, traderState: BigNumber[], S2: number, symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>): [number, number, number, number, number];
|
|
112
|
+
/**
|
|
113
|
+
* Finds the perpetual id for a symbol of the form
|
|
114
|
+
* <base>-<quote>-<collateral>. The function first converts the
|
|
115
|
+
* token names into bytes4 representation
|
|
116
|
+
* @param symbol symbol (e.g., BTC-USD-MATC)
|
|
117
|
+
* @param symbolToPerpStaticInfo map that contains the bytes4-symbol to PerpetualStaticInfo
|
|
118
|
+
* including id mapping
|
|
119
|
+
* @returns perpetual id or it fails
|
|
120
|
+
*/
|
|
121
|
+
protected static symbolToPerpetualId(symbol: string, symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>): number;
|
|
122
|
+
/**
|
|
123
|
+
* Find the long symbol ("ETH-USD-MATIC") of the given perpetual id
|
|
124
|
+
* @param id perpetual id
|
|
125
|
+
* @param symbolToPerpStaticInfo map that contains the bytes4-symbol to PerpetualStaticInfo
|
|
126
|
+
* @returns symbol string or undefined
|
|
127
|
+
*/
|
|
128
|
+
protected static perpetualIdToSymbol(id: number, symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>): string | undefined;
|
|
129
|
+
protected static symbolToBytes4Symbol(symbol: string): string;
|
|
130
|
+
private static _getByValue;
|
|
131
|
+
protected static fromSmartContractOrder(order: SmartContractOrder, symbolToPerpInfoMap: Map<string, PerpetualStaticInfo>): Order;
|
|
132
|
+
/**
|
|
133
|
+
* Transform the convenient form of the order into a smart-contract accepted type of order
|
|
134
|
+
* @param order order type
|
|
135
|
+
* @param traderAddr address of the trader
|
|
136
|
+
* @param symbolToPerpetualMap mapping of symbol to perpetual Id
|
|
137
|
+
* @returns SmartContractOrder
|
|
138
|
+
*/
|
|
139
|
+
protected static toSmartContractOrder(order: Order, traderAddr: string, perpStaticInfo: Map<string, PerpetualStaticInfo>): SmartContractOrder;
|
|
140
|
+
/**
|
|
141
|
+
* Converts a smart contract order to a client order
|
|
142
|
+
* @param scOrder Smart contract order
|
|
143
|
+
* @param parentChildIds Optional parent-child dependency
|
|
144
|
+
* @returns Client order that can be submitted to the corresponding LOB
|
|
145
|
+
*/
|
|
146
|
+
static fromSmartContratOrderToClientOrder(scOrder: SmartContractOrder, parentChildIds?: [string, string]): ClientOrder;
|
|
147
|
+
/**
|
|
148
|
+
* Converts a user-friendly order to a client order
|
|
149
|
+
* @param order Order
|
|
150
|
+
* @param parentChildIds Optional parent-child dependency
|
|
151
|
+
* @returns Client order that can be submitted to the corresponding LOB
|
|
152
|
+
*/
|
|
153
|
+
static toClientOrder(order: Order, traderAddr: string, perpStaticInfo: Map<string, PerpetualStaticInfo>, parentChildIds?: [string, string]): ClientOrder;
|
|
154
|
+
/**
|
|
155
|
+
* Converts an order as stored in the LOB smart contract into a user-friendly order type
|
|
156
|
+
* @param obOrder Order-book contract order type
|
|
157
|
+
* @returns User friendly order struct
|
|
158
|
+
*/
|
|
159
|
+
static fromClientOrder(obOrder: ClientOrder, perpStaticInfo: Map<string, PerpetualStaticInfo>): Order;
|
|
160
|
+
private static _flagToOrderType;
|
|
161
|
+
/**
|
|
162
|
+
* Determine the correct order flags based on the order-properties.
|
|
163
|
+
* Checks for some misspecifications.
|
|
164
|
+
* @param order order type
|
|
165
|
+
* @returns BigNumber flags
|
|
166
|
+
*/
|
|
167
|
+
private static _orderTypeToFlag;
|
|
168
|
+
protected static _getLotSize(symbol: string, symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>): number;
|
|
169
|
+
protected static _getMinimalPositionSize(symbol: string, symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>): number;
|
|
170
|
+
/**
|
|
171
|
+
* Get NodeSDKConfig from a chain ID, known config name, or custom file location..
|
|
172
|
+
* @param configNameOrfileLocation Name of a known default config, or chain ID, or json-file with required variables for config
|
|
173
|
+
* @param version Config version number. Defaults to highest version if name or chain ID are not unique
|
|
174
|
+
* @returns NodeSDKConfig
|
|
175
|
+
*/
|
|
176
|
+
static readSDKConfig(configNameOrChainIdOrFileLocation: string | number, version?: number): NodeSDKConfig;
|
|
177
|
+
/**
|
|
178
|
+
* Get a NodeSDKConfig from its name
|
|
179
|
+
* @param name Name of the known config
|
|
180
|
+
* @param version Version of the config. Defaults to highest available.
|
|
181
|
+
* @returns NodeSDKConfig
|
|
182
|
+
*/
|
|
183
|
+
protected static getConfigByName(name: string, version?: number): NodeSDKConfig | undefined;
|
|
184
|
+
/**
|
|
185
|
+
* Get a NodeSDKConfig from a json file.
|
|
186
|
+
* @param filename Location of the file
|
|
187
|
+
* @param version Version of the config. Defaults to highest available.
|
|
188
|
+
* @returns NodeSDKConfig
|
|
189
|
+
*/
|
|
190
|
+
protected static getConfigByLocation(filename: string): NodeSDKConfig;
|
|
191
|
+
/**
|
|
192
|
+
* Get a NodeSDKConfig from its chain Id
|
|
193
|
+
* @param chainId Chain Id
|
|
194
|
+
* @param version Version of the config. Defaults to highest available.
|
|
195
|
+
* @returns NodeSDKConfig
|
|
196
|
+
*/
|
|
197
|
+
protected static getConfigByChainId(chainId: number, version?: number): NodeSDKConfig | undefined;
|
|
198
|
+
/**
|
|
199
|
+
* Get the ABI of a function in a given contract
|
|
200
|
+
* @param contract A contract instance, e.g. this.proxyContract
|
|
201
|
+
* @param functionName Name of the function whose ABI we want
|
|
202
|
+
* @returns Function ABI as a single JSON string
|
|
203
|
+
*/
|
|
204
|
+
protected static _getABIFromContract(contract: ethers.Contract, functionName: string): string;
|
|
205
|
+
/**
|
|
206
|
+
* Gets the pool index (in exchangeInfo) corresponding to a given symbol.
|
|
207
|
+
* @param symbol Symbol of the form ETH-USD-MATIC
|
|
208
|
+
* @returns Pool index
|
|
209
|
+
*/
|
|
210
|
+
getPoolIndexFromSymbol(symbol: string): number;
|
|
211
|
+
getMarginTokenFromSymbol(symbol: string): string | undefined;
|
|
212
|
+
getABI(contract: string): ethers.ContractInterface | undefined;
|
|
213
|
+
/**
|
|
214
|
+
* Performs basic validity checks on a given order
|
|
215
|
+
* @param order Order struct
|
|
216
|
+
* @param traderAccount Trader account
|
|
217
|
+
* @param perpStaticInfo Symbol to perpetual info map
|
|
218
|
+
*/
|
|
219
|
+
protected static checkOrder(order: Order, perpStaticInfo: Map<string, PerpetualStaticInfo>): void;
|
|
220
|
+
}
|