@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,309 @@
|
|
|
1
|
+
import { ethers } from "ethers";
|
|
2
|
+
import "./nodeSDKTypes";
|
|
3
|
+
import { ExchangeInfo, MarginAccount, NodeSDKConfig, Order, PerpetualState, PerpetualStaticInfo, PoolStaticInfo, SmartContractOrder } from "./nodeSDKTypes";
|
|
4
|
+
import PerpetualDataHandler from "./perpetualDataHandler";
|
|
5
|
+
import PriceFeeds from "./priceFeeds";
|
|
6
|
+
/**
|
|
7
|
+
* Functions to access market data (e.g., information on open orders, information on products that can be traded).
|
|
8
|
+
* This class requires no private key and is blockchain read-only.
|
|
9
|
+
* No gas required for the queries here.
|
|
10
|
+
* @extends PerpetualDataHandler
|
|
11
|
+
*/
|
|
12
|
+
export default class MarketData extends PerpetualDataHandler {
|
|
13
|
+
/**
|
|
14
|
+
* Constructor
|
|
15
|
+
* @param {NodeSDKConfig} config Configuration object, see
|
|
16
|
+
* PerpetualDataHandler.readSDKConfig.
|
|
17
|
+
* @example
|
|
18
|
+
* import { MarketData, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
|
|
19
|
+
* async function main() {
|
|
20
|
+
* console.log(MarketData);
|
|
21
|
+
* // load configuration for testnet
|
|
22
|
+
* const config = PerpetualDataHandler.readSDKConfig("testnet");
|
|
23
|
+
* // MarketData (read only, no authentication needed)
|
|
24
|
+
* let mktData = new MarketData(config);
|
|
25
|
+
* // Create a proxy instance to access the blockchain
|
|
26
|
+
* await mktData.createProxyInstance();
|
|
27
|
+
* }
|
|
28
|
+
* main();
|
|
29
|
+
*
|
|
30
|
+
*/
|
|
31
|
+
constructor(config: NodeSDKConfig);
|
|
32
|
+
/**
|
|
33
|
+
* Initialize the marketData-Class with this function
|
|
34
|
+
* to create instance of D8X perpetual contract and gather information
|
|
35
|
+
* about perpetual currencies
|
|
36
|
+
* @param provider optional provider
|
|
37
|
+
*/
|
|
38
|
+
createProxyInstance(provider?: ethers.providers.Provider): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* Get the proxy address
|
|
41
|
+
* @returns Address of the perpetual proxy contract
|
|
42
|
+
*/
|
|
43
|
+
getProxyAddress(): string;
|
|
44
|
+
/**
|
|
45
|
+
* Convert the smart contract output of an order into a convenient format of type "Order"
|
|
46
|
+
* @param smOrder SmartContractOrder, as obtained e.g., by PerpetualLimitOrderCreated event
|
|
47
|
+
* @returns more convenient format of order, type "Order"
|
|
48
|
+
*/
|
|
49
|
+
smartContractOrderToOrder(smOrder: SmartContractOrder): Order;
|
|
50
|
+
/**
|
|
51
|
+
* Get contract instance. Useful for event listening.
|
|
52
|
+
* @example
|
|
53
|
+
* import { MarketData, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
|
|
54
|
+
* async function main() {
|
|
55
|
+
* console.log(MarketData);
|
|
56
|
+
* // setup
|
|
57
|
+
* const config = PerpetualDataHandler.readSDKConfig("testnet");
|
|
58
|
+
* let mktData = new MarketData(config);
|
|
59
|
+
* await mktData.createProxyInstance();
|
|
60
|
+
* // Get contract instance
|
|
61
|
+
* let proxy = await mktData.getReadOnlyProxyInstance();
|
|
62
|
+
* console.log(proxy);
|
|
63
|
+
* }
|
|
64
|
+
* main();
|
|
65
|
+
*
|
|
66
|
+
* @returns read-only proxy instance
|
|
67
|
+
*/
|
|
68
|
+
getReadOnlyProxyInstance(): ethers.Contract;
|
|
69
|
+
/**
|
|
70
|
+
* Information about the products traded in the exchange.
|
|
71
|
+
* @example
|
|
72
|
+
* import { MarketData, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
|
|
73
|
+
* async function main() {
|
|
74
|
+
* console.log(MarketData);
|
|
75
|
+
* // setup
|
|
76
|
+
* const config = PerpetualDataHandler.readSDKConfig("testnet");
|
|
77
|
+
* let mktData = new MarketData(config);
|
|
78
|
+
* await mktData.createProxyInstance();
|
|
79
|
+
* // Get exchange info
|
|
80
|
+
* let info = await mktData.exchangeInfo();
|
|
81
|
+
* console.log(info);
|
|
82
|
+
* }
|
|
83
|
+
* main();
|
|
84
|
+
*
|
|
85
|
+
* @returns {ExchangeInfo} Array of static data for all the pools and perpetuals in the system.
|
|
86
|
+
*/
|
|
87
|
+
exchangeInfo(): Promise<ExchangeInfo>;
|
|
88
|
+
/**
|
|
89
|
+
* All open orders for a trader-address and a symbol.
|
|
90
|
+
* @param {string} traderAddr Address of the trader for which we get the open orders.
|
|
91
|
+
* @param {string} symbol Symbol of the form ETH-USD-MATIC.
|
|
92
|
+
* @example
|
|
93
|
+
* import { MarketData, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
|
|
94
|
+
* async function main() {
|
|
95
|
+
* console.log(MarketData);
|
|
96
|
+
* // setup
|
|
97
|
+
* const config = PerpetualDataHandler.readSDKConfig("testnet");
|
|
98
|
+
* let mktData = new MarketData(config);
|
|
99
|
+
* await mktData.createProxyInstance();
|
|
100
|
+
* // Get all open orders for a trader/symbol
|
|
101
|
+
* let opOrder = await mktData.openOrders("0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B",
|
|
102
|
+
* "ETH-USD-MATIC");
|
|
103
|
+
* console.log(opOrder);
|
|
104
|
+
* }
|
|
105
|
+
* main();
|
|
106
|
+
*
|
|
107
|
+
* @returns {Array<Array<Order>, Array<string>>} Array of open orders and corresponding order-ids.
|
|
108
|
+
*/
|
|
109
|
+
openOrders(traderAddr: string, symbol: string): Promise<{
|
|
110
|
+
orders: Order[];
|
|
111
|
+
orderIds: string[];
|
|
112
|
+
}>;
|
|
113
|
+
/**
|
|
114
|
+
* Information about the position open by a given trader in a given perpetual contract.
|
|
115
|
+
* @param {string} traderAddr Address of the trader for which we get the position risk.
|
|
116
|
+
* @param {string} symbol Symbol of the form ETH-USD-MATIC. Can also be the perpetual id as string
|
|
117
|
+
* @example
|
|
118
|
+
* import { MarketData, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
|
|
119
|
+
* async function main() {
|
|
120
|
+
* console.log(MarketData);
|
|
121
|
+
* // setup
|
|
122
|
+
* const config = PerpetualDataHandler.readSDKConfig("testnet");
|
|
123
|
+
* let mktData = new MarketData(config);
|
|
124
|
+
* await mktData.createProxyInstance();
|
|
125
|
+
* // Get position risk info
|
|
126
|
+
* let posRisk = await mktData.positionRisk("0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B",
|
|
127
|
+
* "ETH-USD-MATIC");
|
|
128
|
+
* console.log(posRisk);
|
|
129
|
+
* }
|
|
130
|
+
* main();
|
|
131
|
+
*
|
|
132
|
+
* @returns {MarginAccount} Position risk of trader.
|
|
133
|
+
*/
|
|
134
|
+
positionRisk(traderAddr: string, symbol: string): Promise<MarginAccount>;
|
|
135
|
+
/**
|
|
136
|
+
* Estimates what the position risk will be if a given order is executed.
|
|
137
|
+
* @param traderAddr Address of trader
|
|
138
|
+
* @param order Order to be submitted
|
|
139
|
+
* @param account Position risk before trade
|
|
140
|
+
* @param indexPriceInfo Index prices and market status (open/closed)
|
|
141
|
+
* @returns {MarginAccount} Position risk after trade
|
|
142
|
+
*/
|
|
143
|
+
positionRiskOnTrade(traderAddr: string, order: Order, account?: MarginAccount, indexPriceInfo?: [number, number, boolean, boolean]): Promise<{
|
|
144
|
+
newPositionRisk: MarginAccount;
|
|
145
|
+
orderCost: number;
|
|
146
|
+
}>;
|
|
147
|
+
/**
|
|
148
|
+
* Estimates what the position risk will be if given amount of collateral is added/removed from the account.
|
|
149
|
+
* @param traderAddr Address of trader
|
|
150
|
+
* @param deltaCollateral Amount of collateral to add or remove (signed)
|
|
151
|
+
* @param currentPositionRisk Position risk before
|
|
152
|
+
* @returns {MarginAccount} Position risk after
|
|
153
|
+
*/
|
|
154
|
+
positionRiskOnCollateralAction(deltaCollateral: number, account: MarginAccount, indexPriceInfo?: [number, number, boolean, boolean]): Promise<MarginAccount>;
|
|
155
|
+
protected static _getLiquidationParams(symbol: string, lockedInQC: number, signedPositionBC: number, marginCashCC: number, markPrice: number, collToQuoteConversion: number, symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>): [number, number | undefined, number];
|
|
156
|
+
/**
|
|
157
|
+
* Gets the wallet balance in the collateral currency corresponding to a given perpetual symbol.
|
|
158
|
+
* @param address Address to check
|
|
159
|
+
* @param symbol Symbol of the form ETH-USD-MATIC.
|
|
160
|
+
* @returns Balance
|
|
161
|
+
*/
|
|
162
|
+
getWalletBalance(address: string, symbol: string): Promise<number>;
|
|
163
|
+
/**
|
|
164
|
+
* Gets the maximal order size to open positions (increase size),
|
|
165
|
+
* considering the existing position, state of the perpetual
|
|
166
|
+
* Ignores users wallet balance.
|
|
167
|
+
* @param side BUY or SELL
|
|
168
|
+
* @param positionRisk Current position risk (as seen in positionRisk)
|
|
169
|
+
* @returns Maximal trade size, not signed
|
|
170
|
+
*/
|
|
171
|
+
maxOrderSizeForTrader(side: string, positionRisk: MarginAccount): Promise<number>;
|
|
172
|
+
/**
|
|
173
|
+
*
|
|
174
|
+
* @param side BUY_SIDE or SELL_SIDE
|
|
175
|
+
* @param symbol of the form ETH-USD-MATIC.
|
|
176
|
+
* @returns signed maximal position size in base currency
|
|
177
|
+
*/
|
|
178
|
+
maxSignedPosition(side: string, symbol: string): Promise<number>;
|
|
179
|
+
/**
|
|
180
|
+
* Uses the Oracle(s) in the exchange to get the latest price of a given index in a given currency, if a route exists.
|
|
181
|
+
* @param {string} base Index name, e.g. ETH.
|
|
182
|
+
* @param {string} quote Quote currency, e.g. USD.
|
|
183
|
+
* @example
|
|
184
|
+
* import { MarketData, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
|
|
185
|
+
* async function main() {
|
|
186
|
+
* console.log(MarketData);
|
|
187
|
+
* // setup
|
|
188
|
+
* const config = PerpetualDataHandler.readSDKConfig("testnet");
|
|
189
|
+
* let mktData = new MarketData(config);
|
|
190
|
+
* await mktData.createProxyInstance();
|
|
191
|
+
* // get oracle price
|
|
192
|
+
* let price = await mktData.getOraclePrice("ETH", "USD");
|
|
193
|
+
* console.log(price);
|
|
194
|
+
* }
|
|
195
|
+
* main();
|
|
196
|
+
*
|
|
197
|
+
* @returns {number} Price of index in given currency.
|
|
198
|
+
*/
|
|
199
|
+
getOraclePrice(base: string, quote: string): Promise<number | undefined>;
|
|
200
|
+
getOrderStatus(symbol: string, orderId: string): Promise<string>;
|
|
201
|
+
/**
|
|
202
|
+
* Get the current mark price
|
|
203
|
+
* @param symbol symbol of the form ETH-USD-MATIC
|
|
204
|
+
* @example
|
|
205
|
+
* import { MarketData, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
|
|
206
|
+
* async function main() {
|
|
207
|
+
* console.log(MarketData);
|
|
208
|
+
* // setup
|
|
209
|
+
* const config = PerpetualDataHandler.readSDKConfig("testnet");
|
|
210
|
+
* let mktData = new MarketData(config);
|
|
211
|
+
* await mktData.createProxyInstance();
|
|
212
|
+
* // get mark price
|
|
213
|
+
* let price = await mktData.getMarkPrice("ETH-USD-MATIC");
|
|
214
|
+
* console.log(price);
|
|
215
|
+
* }
|
|
216
|
+
* main();
|
|
217
|
+
*
|
|
218
|
+
* @returns mark price
|
|
219
|
+
*/
|
|
220
|
+
getMarkPrice(symbol: string, indexPrices?: [number, number]): Promise<number>;
|
|
221
|
+
/**
|
|
222
|
+
* get the current price for a given quantity
|
|
223
|
+
* @param symbol symbol of the form ETH-USD-MATIC
|
|
224
|
+
* @param quantity quantity to be traded, negative if short
|
|
225
|
+
* @example
|
|
226
|
+
* import { MarketData, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
|
|
227
|
+
* async function main() {
|
|
228
|
+
* console.log(MarketData);
|
|
229
|
+
* // setup
|
|
230
|
+
* const config = PerpetualDataHandler.readSDKConfig("testnet");
|
|
231
|
+
* let mktData = new MarketData(config);
|
|
232
|
+
* await mktData.createProxyInstance();
|
|
233
|
+
* // get perpetual price
|
|
234
|
+
* let price = await mktData.getPerpetualPrice("ETH-USD-MATIC", 1);
|
|
235
|
+
* console.log(price);
|
|
236
|
+
* }
|
|
237
|
+
* main();
|
|
238
|
+
*
|
|
239
|
+
* @returns price (number)
|
|
240
|
+
*/
|
|
241
|
+
getPerpetualPrice(symbol: string, quantity: number, indexPrices?: [number, number]): Promise<number>;
|
|
242
|
+
/**
|
|
243
|
+
* Query recent perpetual state from blockchain
|
|
244
|
+
* @param symbol symbol of the form ETH-USD-MATIC
|
|
245
|
+
* @param indexPrices S2 and S3 prices/isMarketOpen if not provided fetch via REST API
|
|
246
|
+
* @returns PerpetualState reference
|
|
247
|
+
*/
|
|
248
|
+
getPerpetualState(symbol: string, indexPriceInfo?: [number, number, boolean, boolean]): Promise<PerpetualState>;
|
|
249
|
+
/**
|
|
250
|
+
* Query perpetual static info.
|
|
251
|
+
* This information is queried once at createProxyInstance-time and remains static after that.
|
|
252
|
+
* @param symbol symbol of the form ETH-USD-MATIC
|
|
253
|
+
* @returns PerpetualStaticInfo copy.
|
|
254
|
+
*/
|
|
255
|
+
getPerpetualStaticInfo(symbol: string): PerpetualStaticInfo;
|
|
256
|
+
/**
|
|
257
|
+
* get the current mid-price for a perpetual
|
|
258
|
+
* @param symbol symbol of the form ETH-USD-MATIC
|
|
259
|
+
* @example
|
|
260
|
+
* import { MarketData, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
|
|
261
|
+
* async function main() {
|
|
262
|
+
* console.log(MarketData);
|
|
263
|
+
* // setup
|
|
264
|
+
* const config = PerpetualDataHandler.readSDKConfig("testnet");
|
|
265
|
+
* let mktData = new MarketData(config);
|
|
266
|
+
* await mktData.createProxyInstance();
|
|
267
|
+
* // get perpetual mid price
|
|
268
|
+
* let midPrice = await mktData.getPerpetualMidPrice("ETH-USD-MATIC");
|
|
269
|
+
* console.log(midPrice);
|
|
270
|
+
* }
|
|
271
|
+
* main();
|
|
272
|
+
*
|
|
273
|
+
* @returns {number} price
|
|
274
|
+
*/
|
|
275
|
+
getPerpetualMidPrice(symbol: string): Promise<number>;
|
|
276
|
+
/**
|
|
277
|
+
* Query smart contract to get user orders and convert to user friendly order format.
|
|
278
|
+
* @param {string} traderAddr Address of trader.
|
|
279
|
+
* @param {ethers.Contract} orderBookContract Instance of order book.
|
|
280
|
+
* @returns {Order[]} Array of user friendly order struct.
|
|
281
|
+
* @ignore
|
|
282
|
+
*/
|
|
283
|
+
protected openOrdersOnOrderBook(traderAddr: string, orderBookContract: ethers.Contract): Promise<Order[]>;
|
|
284
|
+
/**
|
|
285
|
+
*
|
|
286
|
+
* @param traderAddr Address of the trader
|
|
287
|
+
* @param orderBookContract Instance of order book contract
|
|
288
|
+
* @returns Array of order-id's
|
|
289
|
+
* @ignore
|
|
290
|
+
*/
|
|
291
|
+
static orderIdsOfTrader(traderAddr: string, orderBookContract: ethers.Contract): Promise<string[]>;
|
|
292
|
+
/**
|
|
293
|
+
* Query the available margin conditional on the given (or current) index prices
|
|
294
|
+
* Result is in collateral currency
|
|
295
|
+
* @param traderAddr address of the trader
|
|
296
|
+
* @param symbol perpetual symbol of the form BTC-USD-MATIC
|
|
297
|
+
* @param indexPrices optional index prices, will otherwise fetch from REST API
|
|
298
|
+
* @returns available margin in collateral currency
|
|
299
|
+
*/
|
|
300
|
+
getAvailableMargin(traderAddr: string, symbol: string, indexPrices?: [number, number]): Promise<number>;
|
|
301
|
+
/**
|
|
302
|
+
* Calculate a type of exchange loyality score based on trader volume
|
|
303
|
+
* @param traderAddr address of the trader
|
|
304
|
+
* @param brokerAddr address of the trader's broker or undefined
|
|
305
|
+
* @returns a loyality score (4 worst, 1 best)
|
|
306
|
+
*/
|
|
307
|
+
getTraderLoyalityScore(traderAddr: string, brokerAddr?: string): Promise<number>;
|
|
308
|
+
static _exchangeInfo(_proxyContract: ethers.Contract, _poolStaticInfos: Array<PoolStaticInfo>, _symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>, _symbolList: Map<string, string>, _priceFeedGetter: PriceFeeds): Promise<ExchangeInfo>;
|
|
309
|
+
}
|