@d8x/perpetuals-sdk 2.0.1-alpha → 2.0.2-alpha

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.
Files changed (149) hide show
  1. package/dist/cjs/config/priceFeedConfig.json +2 -2
  2. package/dist/cjs/version.d.ts +1 -1
  3. package/dist/cjs/version.js +1 -1
  4. package/dist/esm/config/priceFeedConfig.json +2 -2
  5. package/dist/{cjs/contracts/factories/MockToken__factory.d.ts → esm/contracts/factories/PerpStorage__factory.d.ts} +115 -128
  6. package/dist/esm/contracts/factories/{MockToken__factory.js → PerpStorage__factory.js} +128 -139
  7. package/dist/esm/contracts/factories/PerpStorage__factory.js.map +1 -0
  8. package/dist/esm/version.d.ts +1 -1
  9. package/dist/esm/version.js +1 -1
  10. package/doc/marketData.md +0 -775
  11. package/package.json +1 -1
  12. package/src/config/priceFeedConfig.json +2 -2
  13. package/src/version.ts +1 -1
  14. package/dist/cjs/abi/BeaconProxy.json +0 -71
  15. package/dist/cjs/abi/Maintainer.json +0 -774
  16. package/dist/cjs/abi/MockToken.json +0 -347
  17. package/dist/cjs/abi/UUPSUpgradeable.json +0 -104
  18. package/dist/cjs/abi/WeETH.json +0 -310
  19. package/dist/cjs/abi-zkevm/LimitOrderBook.json +0 -910
  20. package/dist/cjs/abi-zkevm/LimitOrderBookFactory.json +0 -236
  21. package/dist/cjs/contracts/BeaconProxy.d.ts +0 -63
  22. package/dist/cjs/contracts/BeaconProxy.js +0 -3
  23. package/dist/cjs/contracts/BeaconProxy.js.map +0 -1
  24. package/dist/cjs/contracts/Maintainer.d.ts +0 -799
  25. package/dist/cjs/contracts/Maintainer.js +0 -3
  26. package/dist/cjs/contracts/Maintainer.js.map +0 -1
  27. package/dist/cjs/contracts/MockToken.d.ts +0 -263
  28. package/dist/cjs/contracts/MockToken.js +0 -3
  29. package/dist/cjs/contracts/MockToken.js.map +0 -1
  30. package/dist/cjs/contracts/UUPSUpgradeable.d.ts +0 -118
  31. package/dist/cjs/contracts/UUPSUpgradeable.js +0 -3
  32. package/dist/cjs/contracts/UUPSUpgradeable.js.map +0 -1
  33. package/dist/cjs/contracts/WeETH.d.ts +0 -503
  34. package/dist/cjs/contracts/WeETH.js +0 -3
  35. package/dist/cjs/contracts/WeETH.js.map +0 -1
  36. package/dist/cjs/contracts/factories/BeaconProxy__factory.d.ts +0 -61
  37. package/dist/cjs/contracts/factories/BeaconProxy__factory.js +0 -89
  38. package/dist/cjs/contracts/factories/BeaconProxy__factory.js.map +0 -1
  39. package/dist/cjs/contracts/factories/Maintainer__factory.d.ts +0 -609
  40. package/dist/cjs/contracts/factories/Maintainer__factory.js +0 -792
  41. package/dist/cjs/contracts/factories/Maintainer__factory.js.map +0 -1
  42. package/dist/cjs/contracts/factories/MockToken__factory.js +0 -365
  43. package/dist/cjs/contracts/factories/MockToken__factory.js.map +0 -1
  44. package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.d.ts +0 -87
  45. package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.js +0 -122
  46. package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.js.map +0 -1
  47. package/dist/cjs/contracts/factories/WeETH__factory.d.ts +0 -545
  48. package/dist/cjs/contracts/factories/WeETH__factory.js +0 -721
  49. package/dist/cjs/contracts/factories/WeETH__factory.js.map +0 -1
  50. package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.d.ts +0 -4136
  51. package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.js +0 -5324
  52. package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.js.map +0 -1
  53. package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.d.ts +0 -189
  54. package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.js +0 -254
  55. package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.js.map +0 -1
  56. package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.d.ts +0 -715
  57. package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.js +0 -928
  58. package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.js.map +0 -1
  59. package/dist/cjs/contracts/factories/lean0/ShareToken__factory.d.ts +0 -344
  60. package/dist/cjs/contracts/factories/lean0/ShareToken__factory.js +0 -456
  61. package/dist/cjs/contracts/factories/lean0/ShareToken__factory.js.map +0 -1
  62. package/dist/cjs/contracts/factories/lean0/index.d.ts +0 -4
  63. package/dist/cjs/contracts/factories/lean0/index.js +0 -15
  64. package/dist/cjs/contracts/factories/lean0/index.js.map +0 -1
  65. package/dist/cjs/contracts/lean0/IPerpetualManager.d.ts +0 -2821
  66. package/dist/cjs/contracts/lean0/IPerpetualManager.js +0 -3
  67. package/dist/cjs/contracts/lean0/IPerpetualManager.js.map +0 -1
  68. package/dist/cjs/contracts/lean0/LimitOrderBook.d.ts +0 -533
  69. package/dist/cjs/contracts/lean0/LimitOrderBook.js +0 -3
  70. package/dist/cjs/contracts/lean0/LimitOrderBook.js.map +0 -1
  71. package/dist/cjs/contracts/lean0/LimitOrderBookFactory.d.ts +0 -210
  72. package/dist/cjs/contracts/lean0/LimitOrderBookFactory.js +0 -3
  73. package/dist/cjs/contracts/lean0/LimitOrderBookFactory.js.map +0 -1
  74. package/dist/cjs/contracts/lean0/ShareToken.d.ts +0 -320
  75. package/dist/cjs/contracts/lean0/ShareToken.js +0 -3
  76. package/dist/cjs/contracts/lean0/ShareToken.js.map +0 -1
  77. package/dist/cjs/contracts/lean0/index.d.ts +0 -4
  78. package/dist/cjs/contracts/lean0/index.js +0 -3
  79. package/dist/cjs/contracts/lean0/index.js.map +0 -1
  80. package/dist/esm/abi/BeaconProxy.json +0 -71
  81. package/dist/esm/abi/Maintainer.json +0 -774
  82. package/dist/esm/abi/MockToken.json +0 -347
  83. package/dist/esm/abi/UUPSUpgradeable.json +0 -104
  84. package/dist/esm/abi/WeETH.json +0 -310
  85. package/dist/esm/abi/lean0/IPerpetualManager.json +0 -5306
  86. package/dist/esm/abi/lean0/LimitOrderBook.json +0 -910
  87. package/dist/esm/abi/lean0/LimitOrderBookFactory.json +0 -236
  88. package/dist/esm/abi/lean0/ShareToken.json +0 -438
  89. package/dist/esm/abi-zkevm/LimitOrderBook.json +0 -910
  90. package/dist/esm/abi-zkevm/LimitOrderBookFactory.json +0 -236
  91. package/dist/esm/contracts/BeaconProxy.d.ts +0 -63
  92. package/dist/esm/contracts/BeaconProxy.js +0 -2
  93. package/dist/esm/contracts/BeaconProxy.js.map +0 -1
  94. package/dist/esm/contracts/Maintainer.d.ts +0 -799
  95. package/dist/esm/contracts/Maintainer.js +0 -2
  96. package/dist/esm/contracts/Maintainer.js.map +0 -1
  97. package/dist/esm/contracts/MockToken.d.ts +0 -263
  98. package/dist/esm/contracts/MockToken.js +0 -2
  99. package/dist/esm/contracts/MockToken.js.map +0 -1
  100. package/dist/esm/contracts/UUPSUpgradeable.d.ts +0 -118
  101. package/dist/esm/contracts/UUPSUpgradeable.js +0 -2
  102. package/dist/esm/contracts/UUPSUpgradeable.js.map +0 -1
  103. package/dist/esm/contracts/WeETH.d.ts +0 -503
  104. package/dist/esm/contracts/WeETH.js +0 -2
  105. package/dist/esm/contracts/WeETH.js.map +0 -1
  106. package/dist/esm/contracts/factories/BeaconProxy__factory.d.ts +0 -61
  107. package/dist/esm/contracts/factories/BeaconProxy__factory.js +0 -85
  108. package/dist/esm/contracts/factories/BeaconProxy__factory.js.map +0 -1
  109. package/dist/esm/contracts/factories/Maintainer__factory.d.ts +0 -609
  110. package/dist/esm/contracts/factories/Maintainer__factory.js +0 -788
  111. package/dist/esm/contracts/factories/Maintainer__factory.js.map +0 -1
  112. package/dist/esm/contracts/factories/MockToken__factory.d.ts +0 -273
  113. package/dist/esm/contracts/factories/MockToken__factory.js.map +0 -1
  114. package/dist/esm/contracts/factories/UUPSUpgradeable__factory.d.ts +0 -87
  115. package/dist/esm/contracts/factories/UUPSUpgradeable__factory.js +0 -118
  116. package/dist/esm/contracts/factories/UUPSUpgradeable__factory.js.map +0 -1
  117. package/dist/esm/contracts/factories/WeETH__factory.d.ts +0 -545
  118. package/dist/esm/contracts/factories/WeETH__factory.js +0 -717
  119. package/dist/esm/contracts/factories/WeETH__factory.js.map +0 -1
  120. package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.d.ts +0 -4136
  121. package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.js +0 -5320
  122. package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.js.map +0 -1
  123. package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.d.ts +0 -189
  124. package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.js +0 -250
  125. package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.js.map +0 -1
  126. package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.d.ts +0 -715
  127. package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.js +0 -924
  128. package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.js.map +0 -1
  129. package/dist/esm/contracts/factories/lean0/ShareToken__factory.d.ts +0 -344
  130. package/dist/esm/contracts/factories/lean0/ShareToken__factory.js +0 -452
  131. package/dist/esm/contracts/factories/lean0/ShareToken__factory.js.map +0 -1
  132. package/dist/esm/contracts/factories/lean0/index.d.ts +0 -4
  133. package/dist/esm/contracts/factories/lean0/index.js +0 -8
  134. package/dist/esm/contracts/factories/lean0/index.js.map +0 -1
  135. package/dist/esm/contracts/lean0/IPerpetualManager.d.ts +0 -2821
  136. package/dist/esm/contracts/lean0/IPerpetualManager.js +0 -2
  137. package/dist/esm/contracts/lean0/IPerpetualManager.js.map +0 -1
  138. package/dist/esm/contracts/lean0/LimitOrderBook.d.ts +0 -533
  139. package/dist/esm/contracts/lean0/LimitOrderBook.js +0 -2
  140. package/dist/esm/contracts/lean0/LimitOrderBook.js.map +0 -1
  141. package/dist/esm/contracts/lean0/LimitOrderBookFactory.d.ts +0 -210
  142. package/dist/esm/contracts/lean0/LimitOrderBookFactory.js +0 -2
  143. package/dist/esm/contracts/lean0/LimitOrderBookFactory.js.map +0 -1
  144. package/dist/esm/contracts/lean0/ShareToken.d.ts +0 -320
  145. package/dist/esm/contracts/lean0/ShareToken.js +0 -2
  146. package/dist/esm/contracts/lean0/ShareToken.js.map +0 -1
  147. package/dist/esm/contracts/lean0/index.d.ts +0 -4
  148. package/dist/esm/contracts/lean0/index.js +0 -2
  149. package/dist/esm/contracts/lean0/index.js.map +0 -1
package/doc/marketData.md CHANGED
@@ -1,775 +0,0 @@
1
- <a name="MarketData"></a>
2
-
3
- ## MarketData ⇐ <code>PerpetualDataHandler</code>
4
- <p>Functions to access market data (e.g., information on open orders, information on products that can be traded).
5
- This class requires no private key and is blockchain read-only.
6
- No gas required for the queries here.</p>
7
-
8
- **Kind**: global class
9
- **Extends**: <code>PerpetualDataHandler</code>
10
-
11
- * [MarketData](#MarketData) ⇐ <code>PerpetualDataHandler</code>
12
- * [new MarketData(config)](#new_MarketData_new)
13
- * [.createProxyInstance(providerOrMarketData)](#MarketData+createProxyInstance)
14
- * [.getProxyAddress()](#MarketData+getProxyAddress) ⇒ <code>string</code>
15
- * [.getTriangulations()](#MarketData+getTriangulations) ⇒
16
- * [.smartContractOrderToOrder(smOrder)](#MarketData+smartContractOrderToOrder) ⇒ <code>Order</code>
17
- * [.getReadOnlyProxyInstance()](#MarketData+getReadOnlyProxyInstance) ⇒ <code>Contract</code>
18
- * [.exchangeInfo()](#MarketData+exchangeInfo) ⇒ <code>ExchangeInfo</code>
19
- * [.openOrders(traderAddr, symbol)](#MarketData+openOrders) ⇒
20
- * [.positionRisk(traderAddr, symbol)](#MarketData+positionRisk) ⇒ <code>Array.&lt;MarginAccount&gt;</code>
21
- * [.positionRiskOnTrade(traderAddr, order, account, indexPriceInfo)](#MarketData+positionRiskOnTrade) ⇒
22
- * [.positionRiskOnCollateralAction(deltaCollateral, account)](#MarketData+positionRiskOnCollateralAction) ⇒ <code>MarginAccount</code>
23
- * [.getWalletBalance(address, symbol)](#MarketData+getWalletBalance) ⇒
24
- * [.getPoolShareTokenBalance(address, symbolOrId)](#MarketData+getPoolShareTokenBalance) ⇒ <code>number</code>
25
- * [.getShareTokenPrice(symbolOrId)](#MarketData+getShareTokenPrice) ⇒ <code>number</code>
26
- * [.getParticipationValue(address, symbolOrId)](#MarketData+getParticipationValue) ⇒
27
- * [.maxOrderSizeForTrader(traderAddr, symbol)](#MarketData+maxOrderSizeForTrader) ⇒
28
- * [.maxSignedPosition(side, symbol)](#MarketData+maxSignedPosition) ⇒ <code>number</code>
29
- * [.getOraclePrice(base, quote)](#MarketData+getOraclePrice) ⇒ <code>number</code>
30
- * [.getOrderStatus(symbol, orderId, overrides)](#MarketData+getOrderStatus) ⇒
31
- * [.getOrdersStatus(symbol, orderId)](#MarketData+getOrdersStatus) ⇒
32
- * [.getMarkPrice(symbol)](#MarketData+getMarkPrice) ⇒ <code>number</code>
33
- * [.getPerpetualPrice(symbol, quantity)](#MarketData+getPerpetualPrice) ⇒ <code>number</code>
34
- * [.getPerpetualState(symbol)](#MarketData+getPerpetualState) ⇒ <code>PerpetualState</code>
35
- * [.getPoolState(poolSymbol)](#MarketData+getPoolState) ⇒ <code>PoolState</code>
36
- * [.getPerpetualStaticInfo(symbol)](#MarketData+getPerpetualStaticInfo) ⇒ <code>PerpetualStaticInfo</code>
37
- * [.getPerpetualMidPrice(symbol)](#MarketData+getPerpetualMidPrice) ⇒ <code>number</code>
38
- * [.getAvailableMargin(traderAddr, symbol, indexPrices)](#MarketData+getAvailableMargin) ⇒
39
- * [.getTraderLoyalityScore(traderAddr)](#MarketData+getTraderLoyalityScore) ⇒ <code>number</code>
40
- * [.isMarketClosed(symbol)](#MarketData+isMarketClosed) ⇒ <code>boolean</code>
41
- * [.getPriceInUSD(symbol)](#MarketData+getPriceInUSD) ⇒ <code>Map.&lt;string, number&gt;</code>
42
- * [.fetchPricesForPerpetual(symbol)](#MarketData+fetchPricesForPerpetual) ⇒
43
-
44
- <a name="new_MarketData_new"></a>
45
-
46
- ### new MarketData(config)
47
- <p>Constructor</p>
48
-
49
-
50
- | Param | Type | Description |
51
- | --- | --- | --- |
52
- | config | <code>NodeSDKConfig</code> | <p>Configuration object, see PerpetualDataHandler.readSDKConfig.</p> |
53
-
54
- **Example**
55
- ```js
56
- import { MarketData, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
57
- async function main() {
58
- console.log(MarketData);
59
- // load configuration for Polygon zkEVM (testnet)
60
- const config = PerpetualDataHandler.readSDKConfig("cardona");
61
- // MarketData (read only, no authentication needed)
62
- let mktData = new MarketData(config);
63
- // Create a proxy instance to access the blockchain
64
- await mktData.createProxyInstance();
65
- }
66
- main();
67
- ```
68
- <a name="MarketData+createProxyInstance"></a>
69
-
70
- ### marketData.createProxyInstance(providerOrMarketData)
71
- <p>Initialize the marketData-Class with this function
72
- to create instance of D8X perpetual contract and gather information
73
- about perpetual currencies</p>
74
-
75
- **Kind**: instance method of [<code>MarketData</code>](#MarketData)
76
-
77
- | Param | Description |
78
- | --- | --- |
79
- | providerOrMarketData | <p>optional provider or existing market data instance</p> |
80
-
81
- <a name="MarketData+getProxyAddress"></a>
82
-
83
- ### marketData.getProxyAddress() ⇒ <code>string</code>
84
- <p>Get the proxy address</p>
85
-
86
- **Kind**: instance method of [<code>MarketData</code>](#MarketData)
87
- **Returns**: <code>string</code> - <p>Address of the perpetual proxy contract</p>
88
- <a name="MarketData+getTriangulations"></a>
89
-
90
- ### marketData.getTriangulations() ⇒
91
- <p>Get the pre-computed triangulations</p>
92
-
93
- **Kind**: instance method of [<code>MarketData</code>](#MarketData)
94
- **Returns**: <p>Triangulations</p>
95
- <a name="MarketData+smartContractOrderToOrder"></a>
96
-
97
- ### marketData.smartContractOrderToOrder(smOrder) ⇒ <code>Order</code>
98
- <p>Convert the smart contract output of an order into a convenient format of type &quot;Order&quot;</p>
99
-
100
- **Kind**: instance method of [<code>MarketData</code>](#MarketData)
101
- **Returns**: <code>Order</code> - <p>more convenient format of order, type &quot;Order&quot;</p>
102
-
103
- | Param | Type | Description |
104
- | --- | --- | --- |
105
- | smOrder | <code>SmartContractOrder</code> | <p>SmartContractOrder, as obtained e.g., by PerpetualLimitOrderCreated event</p> |
106
-
107
- <a name="MarketData+getReadOnlyProxyInstance"></a>
108
-
109
- ### marketData.getReadOnlyProxyInstance() ⇒ <code>Contract</code>
110
- <p>Get contract instance. Useful for event listening.</p>
111
-
112
- **Kind**: instance method of [<code>MarketData</code>](#MarketData)
113
- **Returns**: <code>Contract</code> - <p>read-only proxy instance</p>
114
- **Example**
115
- ```js
116
- import { MarketData, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
117
- async function main() {
118
- console.log(MarketData);
119
- // setup
120
- const config = PerpetualDataHandler.readSDKConfig("cardona");
121
- let mktData = new MarketData(config);
122
- await mktData.createProxyInstance();
123
- // Get contract instance
124
- let proxy = await mktData.getReadOnlyProxyInstance();
125
- console.log(proxy);
126
- }
127
- main();
128
- ```
129
- <a name="MarketData+exchangeInfo"></a>
130
-
131
- ### marketData.exchangeInfo() ⇒ <code>ExchangeInfo</code>
132
- <p>Information about the products traded in the exchange.</p>
133
-
134
- **Kind**: instance method of [<code>MarketData</code>](#MarketData)
135
- **Returns**: <code>ExchangeInfo</code> - <p>Array of static data for all the pools and perpetuals in the system.</p>
136
- **Example**
137
- ```js
138
- import { MarketData, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
139
- async function main() {
140
- console.log(MarketData);
141
- // setup
142
- const config = PerpetualDataHandler.readSDKConfig("cardona");
143
- let mktData = new MarketData(config);
144
- await mktData.createProxyInstance();
145
- // Get exchange info
146
- let info = await mktData.exchangeInfo();
147
- console.log(info);
148
- }
149
- main();
150
- ```
151
- <a name="MarketData+openOrders"></a>
152
-
153
- ### marketData.openOrders(traderAddr, symbol) ⇒
154
- <p>All open orders for a trader-address and a symbol.</p>
155
-
156
- **Kind**: instance method of [<code>MarketData</code>](#MarketData)
157
- **Returns**: <p>For each perpetual an array of open orders and corresponding order-ids.</p>
158
-
159
- | Param | Type | Description |
160
- | --- | --- | --- |
161
- | traderAddr | <code>string</code> | <p>Address of the trader for which we get the open orders.</p> |
162
- | symbol | <code>string</code> | <p>Symbol of the form ETH-USD-MATIC or a pool symbol, or undefined. If a poolSymbol is provided, the response includes orders in all perpetuals of the given pool. If no symbol is provided, the response includes orders from all perpetuals in all pools.</p> |
163
-
164
- **Example**
165
- ```js
166
- import { MarketData, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
167
- async function main() {
168
- console.log(MarketData);
169
- // setup
170
- const config = PerpetualDataHandler.readSDKConfig("cardona");
171
- let mktData = new MarketData(config);
172
- await mktData.createProxyInstance();
173
- // Get all open orders for a trader/symbol
174
- let opOrder = await mktData.openOrders("0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B",
175
- "ETH-USD-MATIC");
176
- console.log(opOrder);
177
- }
178
- main();
179
- ```
180
- <a name="MarketData+positionRisk"></a>
181
-
182
- ### marketData.positionRisk(traderAddr, symbol) ⇒ <code>Array.&lt;MarginAccount&gt;</code>
183
- <p>Information about the position open by a given trader in a given perpetual contract, or
184
- for all perpetuals in a pool</p>
185
-
186
- **Kind**: instance method of [<code>MarketData</code>](#MarketData)
187
- **Returns**: <code>Array.&lt;MarginAccount&gt;</code> - <p>Array of position risks of trader.</p>
188
-
189
- | Param | Type | Description |
190
- | --- | --- | --- |
191
- | traderAddr | <code>string</code> | <p>Address of the trader for which we get the position risk.</p> |
192
- | symbol | <code>string</code> | <p>Symbol of the form ETH-USD-MATIC, or pool symbol (&quot;MATIC&quot;) to get all positions in a given pool, or no symbol to get all positions in all pools.</p> |
193
-
194
- **Example**
195
- ```js
196
- import { MarketData, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
197
- async function main() {
198
- console.log(MarketData);
199
- // setup
200
- const config = PerpetualDataHandler.readSDKConfig("cardona");
201
- let mktData = new MarketData(config);
202
- await mktData.createProxyInstance();
203
- // Get position risk info
204
- let posRisk = await mktData.positionRisk("0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B",
205
- "ETH-USD-MATIC");
206
- console.log(posRisk);
207
- }
208
- main();
209
- ```
210
- <a name="MarketData+positionRiskOnTrade"></a>
211
-
212
- ### marketData.positionRiskOnTrade(traderAddr, order, account, indexPriceInfo) ⇒
213
- <p>Estimates what the position risk will be if a given order is executed.</p>
214
-
215
- **Kind**: instance method of [<code>MarketData</code>](#MarketData)
216
- **Returns**: <p>Position risk after trade, including order cost and maximal trade sizes for position</p>
217
-
218
- | Param | Description |
219
- | --- | --- |
220
- | traderAddr | <p>Address of trader</p> |
221
- | order | <p>Order to be submitted</p> |
222
- | account | <p>Position risk before trade. Defaults to current position if not given.</p> |
223
- | indexPriceInfo | <p>Index prices and market status (open/closed). Defaults to current market status if not given.</p> |
224
-
225
- **Example**
226
- ```js
227
- import { MarketData, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
228
- async function main() {
229
- console.log(MarketData);
230
- // setup
231
- const config = PerpetualDataHandler.readSDKConfig("cardona");
232
- const mktData = new MarketData(config);
233
- await mktData.createProxyInstance();
234
- const order: Order = {
235
- symbol: "MATIC-USD-MATIC",
236
- side: "BUY",
237
- type: "MARKET",
238
- quantity: 100,
239
- leverage: 2,
240
- executionTimestamp: Date.now()/1000,
241
- };
242
- // Get position risk conditional on this order being executed
243
- const posRisk = await mktData.positionRiskOnTrade("0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B", order);
244
- console.log(posRisk);
245
- }
246
- main();
247
- ```
248
- <a name="MarketData+positionRiskOnCollateralAction"></a>
249
-
250
- ### marketData.positionRiskOnCollateralAction(deltaCollateral, account) ⇒ <code>MarginAccount</code>
251
- <p>Estimates what the position risk will be if given amount of collateral is added/removed from the account.</p>
252
-
253
- **Kind**: instance method of [<code>MarketData</code>](#MarketData)
254
- **Returns**: <code>MarginAccount</code> - <p>Position risk after collateral has been added/removed</p>
255
-
256
- | Param | Type | Description |
257
- | --- | --- | --- |
258
- | deltaCollateral | <code>number</code> | <p>Amount of collateral to add or remove (signed)</p> |
259
- | account | <code>MarginAccount</code> | <p>Position risk before collateral is added or removed</p> |
260
-
261
- **Example**
262
- ```js
263
- import { MarketData, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
264
- async function main() {
265
- console.log(MarketData);
266
- // setup
267
- const config = PerpetualDataHandler.readSDKConfig("cardona");
268
- const mktData = new MarketData(config);
269
- await mktData.createProxyInstance();
270
- // Get position risk conditional on removing 3.14 MATIC
271
- const traderAddr = "0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B";
272
- const curPos = await mktData.positionRisk("traderAddr", "BTC-USD-MATIC");
273
- const posRisk = await mktData.positionRiskOnCollateralAction(-3.14, curPos);
274
- console.log(posRisk);
275
- }
276
- main();
277
- ```
278
- <a name="MarketData+getWalletBalance"></a>
279
-
280
- ### marketData.getWalletBalance(address, symbol) ⇒
281
- <p>Gets the wallet balance in the settlement currency corresponding to a given perpetual symbol.
282
- The settlement currency is usually the same as the collateral currency.</p>
283
-
284
- **Kind**: instance method of [<code>MarketData</code>](#MarketData)
285
- **Returns**: <p>Perpetual's collateral token balance of the given address.</p>
286
-
287
- | Param | Description |
288
- | --- | --- |
289
- | address | <p>Address to check</p> |
290
- | symbol | <p>Symbol of the form ETH-USD-MATIC.</p> |
291
-
292
- **Example**
293
- ```js
294
- import { MarketData, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
295
- async function main() {
296
- console.log(MarketData);
297
- // setup (authentication required, PK is an environment variable with a private key)
298
- const config = PerpetualDataHandler.readSDKConfig("cardona");
299
- let md = new MarketData(config);
300
- await md.createProxyInstance();
301
- // get MATIC balance of address
302
- let marginTokenBalance = await md.getWalletBalance(myaddress, "BTC-USD-MATIC");
303
- console.log(marginTokenBalance);
304
- }
305
- main();
306
- ```
307
- <a name="MarketData+getPoolShareTokenBalance"></a>
308
-
309
- ### marketData.getPoolShareTokenBalance(address, symbolOrId) ⇒ <code>number</code>
310
- <p>Get the address' balance of the pool share token</p>
311
-
312
- **Kind**: instance method of [<code>MarketData</code>](#MarketData)
313
- **Returns**: <code>number</code> - <p>Pool share token balance of the given address (e.g. dMATIC balance)</p>
314
-
315
- | Param | Type | Description |
316
- | --- | --- | --- |
317
- | address | <code>string</code> | <p>address of the liquidity provider</p> |
318
- | symbolOrId | <code>string</code> \| <code>number</code> | <p>Symbol of the form ETH-USD-MATIC, or MATIC (collateral only), or Pool-Id</p> |
319
-
320
- **Example**
321
- ```js
322
- import { MarketData, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
323
- async function main() {
324
- console.log(MarketData);
325
- // setup (authentication required, PK is an environment variable with a private key)
326
- const config = PerpetualDataHandler.readSDKConfig("cardona");
327
- let md = new MarketData(config);
328
- await md.createProxyInstance();
329
- // get dMATIC balance of address
330
- let shareTokenBalance = await md.getPoolShareTokenBalance(myaddress, "MATIC");
331
- console.log(shareTokenBalance);
332
- }
333
- main();
334
- ```
335
- <a name="MarketData+getShareTokenPrice"></a>
336
-
337
- ### marketData.getShareTokenPrice(symbolOrId) ⇒ <code>number</code>
338
- <p>Value of pool token in collateral currency</p>
339
-
340
- **Kind**: instance method of [<code>MarketData</code>](#MarketData)
341
- **Returns**: <code>number</code> - <p>current pool share token price in collateral currency</p>
342
-
343
- | Param | Type | Description |
344
- | --- | --- | --- |
345
- | symbolOrId | <code>string</code> \| <code>number</code> | <p>symbol of the form ETH-USD-MATIC, MATIC (collateral), or poolId</p> |
346
-
347
- **Example**
348
- ```js
349
- import { MarketData, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
350
- async function main() {
351
- console.log(MarketData);
352
- // setup (authentication required, PK is an environment variable with a private key)
353
- const config = PerpetualDataHandler.readSDKConfig("cardona");
354
- let md = new MarketData(config);
355
- await md.createProxyInstance();
356
- // get price of 1 dMATIC in MATIC
357
- let shareTokenPrice = await md.getShareTokenPrice(myaddress, "MATIC");
358
- console.log(shareTokenPrice);
359
- }
360
- main();
361
- ```
362
- <a name="MarketData+getParticipationValue"></a>
363
-
364
- ### marketData.getParticipationValue(address, symbolOrId) ⇒
365
- <p>Value of the pool share tokens for this liquidity provider
366
- in poolSymbol-currency (e.g. MATIC, USDC).</p>
367
-
368
- **Kind**: instance method of [<code>MarketData</code>](#MarketData)
369
- **Returns**: <p>the value (in collateral tokens) of the pool share, #share tokens, shareTokenAddress</p>
370
-
371
- | Param | Type | Description |
372
- | --- | --- | --- |
373
- | address | <code>string</code> | <p>address of liquidity provider</p> |
374
- | symbolOrId | <code>string</code> \| <code>number</code> | <p>symbol of the form ETH-USD-MATIC, MATIC (collateral), or poolId</p> |
375
-
376
- **Example**
377
- ```js
378
- import { MarketData, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
379
- async function main() {
380
- console.log(MarketData);
381
- // setup (authentication required, PK is an environment variable with a private key)
382
- const config = PerpetualDataHandler.readSDKConfig("cardona");
383
- let md = new MarketData(config);
384
- await md.createProxyInstance();
385
- // get value of pool share token
386
- let shareToken = await md.getParticipationValue(myaddress, "MATIC");
387
- console.log(shareToken);
388
- }
389
- main();
390
- ```
391
- <a name="MarketData+maxOrderSizeForTrader"></a>
392
-
393
- ### marketData.maxOrderSizeForTrader(traderAddr, symbol) ⇒
394
- <p>Gets the maximal order sizes to open positions (increase size), both long and short,
395
- considering the existing position, state of the perpetual
396
- Accounts for user's wallet balance.</p>
397
-
398
- **Kind**: instance method of [<code>MarketData</code>](#MarketData)
399
- **Returns**: <p>Maximal trade sizes</p>
400
-
401
- | Param | Type | Description |
402
- | --- | --- | --- |
403
- | traderAddr | <code>string</code> | <p>Address of trader</p> |
404
- | symbol | <code>symbol</code> | <p>Symbol of the form ETH-USD-MATIC</p> |
405
-
406
- **Example**
407
- ```js
408
- import { MarketData, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
409
- async function main() {
410
- console.log(MarketData);
411
- // setup (authentication required, PK is an environment variable with a private key)
412
- const config = PerpetualDataHandler.readSDKConfig("cardona");
413
- let md = new MarketData(config);
414
- await md.createProxyInstance();
415
- // max order sizes
416
- let shareToken = await md.maxOrderSizeForTrader(myaddress, "BTC-USD-MATIC");
417
- console.log(shareToken); // {buy: 314, sell: 415}
418
- }
419
- main();
420
- ```
421
- <a name="MarketData+maxSignedPosition"></a>
422
-
423
- ### marketData.maxSignedPosition(side, symbol) ⇒ <code>number</code>
424
- <p>Perpetual-wide maximal signed position size in perpetual.</p>
425
-
426
- **Kind**: instance method of [<code>MarketData</code>](#MarketData)
427
- **Returns**: <code>number</code> - <p>signed maximal position size in base currency</p>
428
-
429
- | Param | Type | Description |
430
- | --- | --- | --- |
431
- | side | | <p>BUY_SIDE or SELL_SIDE</p> |
432
- | symbol | <code>string</code> | <p>of the form ETH-USD-MATIC.</p> |
433
-
434
- **Example**
435
- ```js
436
- import { MarketData, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
437
- async function main() {
438
- console.log(MarketData);
439
- // setup
440
- const config = PerpetualDataHandler.readSDKConfig("cardona");
441
- let mktData = new MarketData(config);
442
- await mktData.createProxyInstance();
443
- // get oracle price
444
- let maxLongPos = await mktData.maxSignedPosition(BUY_SIDE, "BTC-USD-MATIC");
445
- console.log(maxLongPos);
446
- }
447
- main();
448
- ```
449
- <a name="MarketData+getOraclePrice"></a>
450
-
451
- ### marketData.getOraclePrice(base, quote) ⇒ <code>number</code>
452
- <p>Uses the Oracle(s) in the exchange to get the latest price of a given index in a given currency, if a route exists.</p>
453
-
454
- **Kind**: instance method of [<code>MarketData</code>](#MarketData)
455
- **Returns**: <code>number</code> - <p>Price of index in given currency.</p>
456
-
457
- | Param | Type | Description |
458
- | --- | --- | --- |
459
- | base | <code>string</code> | <p>Index name, e.g. ETH.</p> |
460
- | quote | <code>string</code> | <p>Quote currency, e.g. USD.</p> |
461
-
462
- **Example**
463
- ```js
464
- import { MarketData, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
465
- async function main() {
466
- console.log(MarketData);
467
- // setup
468
- const config = PerpetualDataHandler.readSDKConfig("cardona");
469
- let mktData = new MarketData(config);
470
- await mktData.createProxyInstance();
471
- // get oracle price
472
- let price = await mktData.getOraclePrice("ETH", "USD");
473
- console.log(price);
474
- }
475
- main();
476
- ```
477
- <a name="MarketData+getOrderStatus"></a>
478
-
479
- ### marketData.getOrderStatus(symbol, orderId, overrides) ⇒
480
- <p>Get the status of an order given a symbol and order Id</p>
481
-
482
- **Kind**: instance method of [<code>MarketData</code>](#MarketData)
483
- **Returns**: <p>Order status (cancelled = 0, executed = 1, open = 2, unkown = 3)</p>
484
-
485
- | Param | Description |
486
- | --- | --- |
487
- | symbol | <p>Symbol of the form ETH-USD-MATIC</p> |
488
- | orderId | <p>Order Id</p> |
489
- | overrides | |
490
-
491
- **Example**
492
- ```js
493
- import { MarketData, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
494
- async function main() {
495
- console.log(MarketData);
496
- // setup
497
- const config = PerpetualDataHandler.readSDKConfig("cardona");
498
- let mktData = new MarketData(config);
499
- await mktData.createProxyInstance();
500
- // get order stauts
501
- let status = await mktData.getOrderStatus("ETH-USD-MATIC", "0xmyOrderId");
502
- console.log(status);
503
- }
504
- main();
505
- ```
506
- <a name="MarketData+getOrdersStatus"></a>
507
-
508
- ### marketData.getOrdersStatus(symbol, orderId) ⇒
509
- <p>Get the status of an array of orders given a symbol and their Ids</p>
510
-
511
- **Kind**: instance method of [<code>MarketData</code>](#MarketData)
512
- **Returns**: <p>Array of order status</p>
513
-
514
- | Param | Description |
515
- | --- | --- |
516
- | symbol | <p>Symbol of the form ETH-USD-MATIC</p> |
517
- | orderId | <p>Array of order Ids</p> |
518
-
519
- **Example**
520
- ```js
521
- import { MarketData, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
522
- async function main() {
523
- console.log(MarketData);
524
- // setup
525
- const config = PerpetualDataHandler.readSDKConfig("cardona");
526
- let mktData = new MarketData(config);
527
- await mktData.createProxyInstance();
528
- // get order stauts
529
- let status = await mktData.getOrdersStatus("ETH-USD-MATIC", ["0xmyOrderId1", "0xmyOrderId2"]);
530
- console.log(status);
531
- }
532
- main();
533
- ```
534
- <a name="MarketData+getMarkPrice"></a>
535
-
536
- ### marketData.getMarkPrice(symbol) ⇒ <code>number</code>
537
- <p>Get the current mark price</p>
538
-
539
- **Kind**: instance method of [<code>MarketData</code>](#MarketData)
540
- **Returns**: <code>number</code> - <p>mark price</p>
541
-
542
- | Param | Description |
543
- | --- | --- |
544
- | symbol | <p>symbol of the form ETH-USD-MATIC</p> |
545
-
546
- **Example**
547
- ```js
548
- import { MarketData, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
549
- async function main() {
550
- console.log(MarketData);
551
- // setup
552
- const config = PerpetualDataHandler.readSDKConfig("cardona");
553
- let mktData = new MarketData(config);
554
- await mktData.createProxyInstance();
555
- // get mark price
556
- let price = await mktData.getMarkPrice("ETH-USD-MATIC");
557
- console.log(price);
558
- }
559
- main();
560
- ```
561
- <a name="MarketData+getPerpetualPrice"></a>
562
-
563
- ### marketData.getPerpetualPrice(symbol, quantity) ⇒ <code>number</code>
564
- <p>get the current price for a given quantity</p>
565
-
566
- **Kind**: instance method of [<code>MarketData</code>](#MarketData)
567
- **Returns**: <code>number</code> - <p>price</p>
568
-
569
- | Param | Description |
570
- | --- | --- |
571
- | symbol | <p>symbol of the form ETH-USD-MATIC</p> |
572
- | quantity | <p>quantity to be traded, negative if short</p> |
573
-
574
- **Example**
575
- ```js
576
- import { MarketData, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
577
- async function main() {
578
- console.log(MarketData);
579
- // setup
580
- const config = PerpetualDataHandler.readSDKConfig("cardona");
581
- let mktData = new MarketData(config);
582
- await mktData.createProxyInstance();
583
- // get perpetual price
584
- let price = await mktData.getPerpetualPrice("ETH-USD-MATIC", 1);
585
- console.log(price);
586
- }
587
- main();
588
- ```
589
- <a name="MarketData+getPerpetualState"></a>
590
-
591
- ### marketData.getPerpetualState(symbol) ⇒ <code>PerpetualState</code>
592
- <p>Query recent perpetual state from blockchain</p>
593
-
594
- **Kind**: instance method of [<code>MarketData</code>](#MarketData)
595
- **Returns**: <code>PerpetualState</code> - <p>PerpetualState copy</p>
596
-
597
- | Param | Type | Description |
598
- | --- | --- | --- |
599
- | symbol | <code>string</code> | <p>symbol of the form ETH-USD-MATIC</p> |
600
-
601
- <a name="MarketData+getPoolState"></a>
602
-
603
- ### marketData.getPoolState(poolSymbol) ⇒ <code>PoolState</code>
604
- <p>Query recent pool state from blockchain, not including perpetual states</p>
605
-
606
- **Kind**: instance method of [<code>MarketData</code>](#MarketData)
607
- **Returns**: <code>PoolState</code> - <p>PoolState copy</p>
608
-
609
- | Param | Type | Description |
610
- | --- | --- | --- |
611
- | poolSymbol | <code>string</code> | <p>symbol of the form USDC</p> |
612
-
613
- <a name="MarketData+getPerpetualStaticInfo"></a>
614
-
615
- ### marketData.getPerpetualStaticInfo(symbol) ⇒ <code>PerpetualStaticInfo</code>
616
- <p>Query perpetual static info.
617
- This information is queried once at createProxyInstance-time, and remains static after that.</p>
618
-
619
- **Kind**: instance method of [<code>MarketData</code>](#MarketData)
620
- **Returns**: <code>PerpetualStaticInfo</code> - <p>Perpetual static info copy.</p>
621
-
622
- | Param | Type | Description |
623
- | --- | --- | --- |
624
- | symbol | <code>string</code> | <p>Perpetual symbol</p> |
625
-
626
- <a name="MarketData+getPerpetualMidPrice"></a>
627
-
628
- ### marketData.getPerpetualMidPrice(symbol) ⇒ <code>number</code>
629
- <p>get the current mid-price for a perpetual</p>
630
-
631
- **Kind**: instance method of [<code>MarketData</code>](#MarketData)
632
- **Returns**: <code>number</code> - <p>price</p>
633
-
634
- | Param | Description |
635
- | --- | --- |
636
- | symbol | <p>symbol of the form ETH-USD-MATIC</p> |
637
-
638
- **Example**
639
- ```js
640
- import { MarketData, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
641
- async function main() {
642
- console.log(MarketData);
643
- // setup
644
- const config = PerpetualDataHandler.readSDKConfig("cardona");
645
- let mktData = new MarketData(config);
646
- await mktData.createProxyInstance();
647
- // get perpetual mid price
648
- let midPrice = await mktData.getPerpetualMidPrice("ETH-USD-MATIC");
649
- console.log(midPrice);
650
- }
651
- main();
652
- ```
653
- <a name="MarketData+getAvailableMargin"></a>
654
-
655
- ### marketData.getAvailableMargin(traderAddr, symbol, indexPrices) ⇒
656
- <p>Query the available margin conditional on the given (or current) index prices
657
- Result is in collateral currency</p>
658
-
659
- **Kind**: instance method of [<code>MarketData</code>](#MarketData)
660
- **Returns**: <p>available margin in collateral currency</p>
661
-
662
- | Param | Type | Description |
663
- | --- | --- | --- |
664
- | traderAddr | <code>string</code> | <p>address of the trader</p> |
665
- | symbol | <code>string</code> | <p>perpetual symbol of the form BTC-USD-MATIC</p> |
666
- | indexPrices | | <p>optional index prices, will otherwise fetch from REST API</p> |
667
-
668
- **Example**
669
- ```js
670
- import { MarketData, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
671
- async function main() {
672
- console.log(MarketData);
673
- // setup
674
- const config = PerpetualDataHandler.readSDKConfig("cardona");
675
- let mktData = new MarketData(config);
676
- await mktData.createProxyInstance();
677
- // get available margin
678
- let mgn = await mktData.getAvailableMargin("0xmyAddress", "ETH-USD-MATIC");
679
- console.log(mgn);
680
- }
681
- main();
682
- ```
683
- <a name="MarketData+getTraderLoyalityScore"></a>
684
-
685
- ### marketData.getTraderLoyalityScore(traderAddr) ⇒ <code>number</code>
686
- <p>Calculate a type of exchange loyality score based on trader volume</p>
687
-
688
- **Kind**: instance method of [<code>MarketData</code>](#MarketData)
689
- **Returns**: <code>number</code> - <p>a loyality score (4 worst, 1 best)</p>
690
-
691
- | Param | Type | Description |
692
- | --- | --- | --- |
693
- | traderAddr | <code>string</code> | <p>address of the trader</p> |
694
-
695
- **Example**
696
- ```js
697
- import { MarketData, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
698
- async function main() {
699
- console.log(MarketData);
700
- // setup
701
- const config = PerpetualDataHandler.readSDKConfig("cardona");
702
- let mktData = new MarketData(config);
703
- await mktData.createProxyInstance();
704
- // get scpre
705
- let s = await mktData.getTraderLoyalityScore("0xmyAddress");
706
- console.log(s);
707
- }
708
- main();
709
- ```
710
- <a name="MarketData+isMarketClosed"></a>
711
-
712
- ### marketData.isMarketClosed(symbol) ⇒ <code>boolean</code>
713
- <p>Get market open/closed status</p>
714
-
715
- **Kind**: instance method of [<code>MarketData</code>](#MarketData)
716
- **Returns**: <code>boolean</code> - <p>True if the market is closed</p>
717
-
718
- | Param | Type | Description |
719
- | --- | --- | --- |
720
- | symbol | <code>string</code> | <p>Perpetual symbol of the form ETH-USD-MATIC</p> |
721
-
722
- **Example**
723
- ```js
724
- import { MarketData, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
725
- async function main() {
726
- console.log(MarketData);
727
- // setup
728
- const config = PerpetualDataHandler.readSDKConfig("cardona");
729
- let mktData = new MarketData(config);
730
- await mktData.createProxyInstance();
731
- // is market closed?
732
- let s = await mktData.isMarketClosed("ETH-USD-MATIC");
733
- console.log(s);
734
- }
735
- main();
736
- ```
737
- <a name="MarketData+getPriceInUSD"></a>
738
-
739
- ### marketData.getPriceInUSD(symbol) ⇒ <code>Map.&lt;string, number&gt;</code>
740
- <p>Get the latest on-chain price of a perpetual base index in USD.</p>
741
-
742
- **Kind**: instance method of [<code>MarketData</code>](#MarketData)
743
- **Returns**: <code>Map.&lt;string, number&gt;</code> - <p>Price of the base index in USD, e.g. for ETH-USDC-MATIC, it returns the value of ETH-USD.</p>
744
-
745
- | Param | Type | Description |
746
- | --- | --- | --- |
747
- | symbol | <code>string</code> | <p>Symbol of the form ETH-USDC-MATIC. If a pool symbol is used, it returns an array of all the USD prices of the indices in the pool. If no argument is provided, it returns all prices of all the indices in the pools of the exchange.</p> |
748
-
749
- **Example**
750
- ```js
751
- import { MarketData, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
752
- async function main() {
753
- console.log(MarketData);
754
- // setup
755
- const config = PerpetualDataHandler.readSDKConfig("cardona");
756
- let mktData = new MarketData(config);
757
- await mktData.createProxyInstance();
758
- // is market closed?
759
- let px = await mktData.getPriceInUSD("ETH-USDC-USDC");
760
- console.log(px); // {'ETH-USD' -> 1800}
761
- }
762
- main();
763
- ```
764
- <a name="MarketData+fetchPricesForPerpetual"></a>
765
-
766
- ### marketData.fetchPricesForPerpetual(symbol) ⇒
767
- <p>Fetch latest off-chain index and collateral prices</p>
768
-
769
- **Kind**: instance method of [<code>MarketData</code>](#MarketData)
770
- **Returns**: <p>Prices and market-closed information</p>
771
-
772
- | Param | Description |
773
- | --- | --- |
774
- | symbol | <p>Perpetual symbol of the form BTC-USDc-USDC</p> |
775
-