@d8x/perpetuals-sdk 2.6.21 → 2.6.23
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/d8XMath.js +1 -1
- package/dist/cjs/d8XMath.js.map +1 -1
- package/dist/cjs/marketData.d.ts +5 -5
- package/dist/cjs/marketData.js +7 -3
- package/dist/cjs/marketData.js.map +1 -1
- package/dist/cjs/perpetualDataHandler.d.ts +15 -15
- package/dist/cjs/perpetualDataHandler.js +9 -6
- package/dist/cjs/perpetualDataHandler.js.map +1 -1
- package/dist/cjs/priceFeeds.js +1 -1
- package/dist/cjs/utils.d.ts +3 -3
- package/dist/cjs/utils.js.map +1 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/d8XMath.js +1 -1
- package/dist/esm/d8XMath.js.map +1 -1
- package/dist/esm/marketData.d.ts +5 -5
- package/dist/esm/marketData.js +7 -3
- package/dist/esm/marketData.js.map +1 -1
- package/dist/esm/perpetualDataHandler.d.ts +15 -15
- package/dist/esm/perpetualDataHandler.js +9 -6
- package/dist/esm/perpetualDataHandler.js.map +1 -1
- package/dist/esm/priceFeeds.js +1 -1
- package/dist/esm/utils.d.ts +3 -3
- package/dist/esm/utils.js.map +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/doc/d8x-perpetuals-sdk.md +269 -0
- package/doc/perpetualDataHandler.md +37 -0
- package/package.json +1 -1
- package/src/d8XMath.ts +1 -1
- package/src/marketData.ts +27 -22
- package/src/perpetualDataHandler.ts +34 -24
- package/src/priceFeeds.ts +1 -1
- package/src/utils.ts +3 -3
- package/src/version.ts +1 -1
|
@@ -158,6 +158,7 @@ on-chain</p></dd>
|
|
|
158
158
|
* [~pmGetDepositAmtForLvgTrade(tradeAmt, targetLvg, price, S3, S2Mark)](#module_d8xMath..pmGetDepositAmtForLvgTrade) ⇒
|
|
159
159
|
* [~pmExcessCashAtLvg(tradeAmt, lvg, walletBalCC, currentCashCC, currentPosition, currentLockedInValue, slippage, S2, Sm, S3, totLong, totShort)](#module_d8xMath..pmExcessCashAtLvg) ⇒
|
|
160
160
|
* [~pmFindMaxPersonalTradeSizeAtLeverage(dir, lvg, walletBalCC, slippage, currentPosition, currentCashCC, currentLockedInValue, S2, Sm, S3, glblMaxTrade)](#module_d8xMath..pmFindMaxPersonalTradeSizeAtLeverage) ⇒
|
|
161
|
+
* [~pmMaxSignedOpenTradeSize(long, short, sm, isBuy, mr)](#module_d8xMath..pmMaxSignedOpenTradeSize)
|
|
161
162
|
|
|
162
163
|
<a name="module_d8xMath..ABDK29ToFloat"></a>
|
|
163
164
|
|
|
@@ -635,6 +636,21 @@ Factors in lot size and global max short/long, factors in opening/closing positi
|
|
|
635
636
|
| S3 | <p>current collateral to quote index price</p> |
|
|
636
637
|
| glblMaxTrade | <p>global max short or long order size that we retreive, e.g., from position risk (sign irrelevant) based on long: (<em>ℓ+n) * (1-p) - m (1-p) s = F → n = (F+m</em>(1-p)<em>s)/(1-p)-ℓ</em> short: (s+n)<em>p - m p <em>ℓ</em> = F →n = (F+m</em>p**ℓ*)/p-s</p> |
|
|
637
638
|
|
|
639
|
+
<a name="module_d8xMath..pmMaxSignedOpenTradeSize"></a>
|
|
640
|
+
|
|
641
|
+
### d8xMath~pmMaxSignedOpenTradeSize(long, short, sm, isBuy, mr)
|
|
642
|
+
<p>See PerpetualTradeLogic::_getMaxSignedOpenPredMktTradeSize</p>
|
|
643
|
+
|
|
644
|
+
**Kind**: inner method of [<code>d8xMath</code>](#module_d8xMath)
|
|
645
|
+
|
|
646
|
+
| Param | Description |
|
|
647
|
+
| --- | --- |
|
|
648
|
+
| long | <p>Long open OI</p> |
|
|
649
|
+
| short | <p>Short open OI</p> |
|
|
650
|
+
| sm | <p>Mark price (>1)</p> |
|
|
651
|
+
| isBuy | <p>True if trade is long</p> |
|
|
652
|
+
| mr | <p>Maintenance margin rate</p> |
|
|
653
|
+
|
|
638
654
|
<a name="module_utils"></a>
|
|
639
655
|
|
|
640
656
|
## utils
|
|
@@ -796,6 +812,9 @@ require gas-payments.</p>
|
|
|
796
812
|
* [.getMaintenanceMarginRate(symbol)](#PerpetualDataHandler+getMaintenanceMarginRate) ⇒
|
|
797
813
|
* [.getShortSymbol(symbol)](#PerpetualDataHandler+getShortSymbol) ⇒
|
|
798
814
|
* [.refreshSymbols()](#PerpetualDataHandler+refreshSymbols)
|
|
815
|
+
* [.getLocalPerpetualStates()](#PerpetualDataHandler+getLocalPerpetualStates) ⇒
|
|
816
|
+
* [.fetchOnChainPerpetualStates()](#PerpetualDataHandler+fetchOnChainPerpetualStates) ⇒
|
|
817
|
+
* [.checkHeartbeat()](#PerpetualDataHandler+checkHeartbeat) ⇒
|
|
799
818
|
|
|
800
819
|
<a name="new_AccountTrade_new"></a>
|
|
801
820
|
|
|
@@ -1571,6 +1590,30 @@ main();
|
|
|
1571
1590
|
|
|
1572
1591
|
**Kind**: instance method of [<code>AccountTrade</code>](#AccountTrade)
|
|
1573
1592
|
**Overrides**: [<code>refreshSymbols</code>](#PerpetualDataHandler+refreshSymbols)
|
|
1593
|
+
<a name="PerpetualDataHandler+getLocalPerpetualStates"></a>
|
|
1594
|
+
|
|
1595
|
+
### accountTrade.getLocalPerpetualStates() ⇒
|
|
1596
|
+
<p>Get state of perpetuals as currently known locally</p>
|
|
1597
|
+
|
|
1598
|
+
**Kind**: instance method of [<code>AccountTrade</code>](#AccountTrade)
|
|
1599
|
+
**Overrides**: [<code>getLocalPerpetualStates</code>](#PerpetualDataHandler+getLocalPerpetualStates)
|
|
1600
|
+
**Returns**: <p>Array of [perpetual Id, perpetual state (string)]</p>
|
|
1601
|
+
<a name="PerpetualDataHandler+fetchOnChainPerpetualStates"></a>
|
|
1602
|
+
|
|
1603
|
+
### accountTrade.fetchOnChainPerpetualStates() ⇒
|
|
1604
|
+
<p>Fetches on-chain state of local perpetual ids. Does not run if SDK is not ready.</p>
|
|
1605
|
+
|
|
1606
|
+
**Kind**: instance method of [<code>AccountTrade</code>](#AccountTrade)
|
|
1607
|
+
**Overrides**: [<code>fetchOnChainPerpetualStates</code>](#PerpetualDataHandler+fetchOnChainPerpetualStates)
|
|
1608
|
+
**Returns**: <p>Array of [perpetual Id, perpetual state (string)]</p>
|
|
1609
|
+
<a name="PerpetualDataHandler+checkHeartbeat"></a>
|
|
1610
|
+
|
|
1611
|
+
### accountTrade.checkHeartbeat() ⇒
|
|
1612
|
+
<p>Check that states of all perps known locally match on-chain states</p>
|
|
1613
|
+
|
|
1614
|
+
**Kind**: instance method of [<code>AccountTrade</code>](#AccountTrade)
|
|
1615
|
+
**Overrides**: [<code>checkHeartbeat</code>](#PerpetualDataHandler+checkHeartbeat)
|
|
1616
|
+
**Returns**: <p>True if all perp states are correct</p>
|
|
1574
1617
|
<a name="BrokerTool"></a>
|
|
1575
1618
|
|
|
1576
1619
|
## BrokerTool ⇐ [<code>WriteAccessHandler</code>](#WriteAccessHandler)
|
|
@@ -1634,6 +1677,9 @@ require gas-payments.</p>
|
|
|
1634
1677
|
* [.getMaintenanceMarginRate(symbol)](#PerpetualDataHandler+getMaintenanceMarginRate) ⇒
|
|
1635
1678
|
* [.getShortSymbol(symbol)](#PerpetualDataHandler+getShortSymbol) ⇒
|
|
1636
1679
|
* [.refreshSymbols()](#PerpetualDataHandler+refreshSymbols)
|
|
1680
|
+
* [.getLocalPerpetualStates()](#PerpetualDataHandler+getLocalPerpetualStates) ⇒
|
|
1681
|
+
* [.fetchOnChainPerpetualStates()](#PerpetualDataHandler+fetchOnChainPerpetualStates) ⇒
|
|
1682
|
+
* [.checkHeartbeat()](#PerpetualDataHandler+checkHeartbeat) ⇒
|
|
1637
1683
|
|
|
1638
1684
|
<a name="new_BrokerTool_new"></a>
|
|
1639
1685
|
|
|
@@ -2593,6 +2639,30 @@ main();
|
|
|
2593
2639
|
|
|
2594
2640
|
**Kind**: instance method of [<code>BrokerTool</code>](#BrokerTool)
|
|
2595
2641
|
**Overrides**: [<code>refreshSymbols</code>](#PerpetualDataHandler+refreshSymbols)
|
|
2642
|
+
<a name="PerpetualDataHandler+getLocalPerpetualStates"></a>
|
|
2643
|
+
|
|
2644
|
+
### brokerTool.getLocalPerpetualStates() ⇒
|
|
2645
|
+
<p>Get state of perpetuals as currently known locally</p>
|
|
2646
|
+
|
|
2647
|
+
**Kind**: instance method of [<code>BrokerTool</code>](#BrokerTool)
|
|
2648
|
+
**Overrides**: [<code>getLocalPerpetualStates</code>](#PerpetualDataHandler+getLocalPerpetualStates)
|
|
2649
|
+
**Returns**: <p>Array of [perpetual Id, perpetual state (string)]</p>
|
|
2650
|
+
<a name="PerpetualDataHandler+fetchOnChainPerpetualStates"></a>
|
|
2651
|
+
|
|
2652
|
+
### brokerTool.fetchOnChainPerpetualStates() ⇒
|
|
2653
|
+
<p>Fetches on-chain state of local perpetual ids. Does not run if SDK is not ready.</p>
|
|
2654
|
+
|
|
2655
|
+
**Kind**: instance method of [<code>BrokerTool</code>](#BrokerTool)
|
|
2656
|
+
**Overrides**: [<code>fetchOnChainPerpetualStates</code>](#PerpetualDataHandler+fetchOnChainPerpetualStates)
|
|
2657
|
+
**Returns**: <p>Array of [perpetual Id, perpetual state (string)]</p>
|
|
2658
|
+
<a name="PerpetualDataHandler+checkHeartbeat"></a>
|
|
2659
|
+
|
|
2660
|
+
### brokerTool.checkHeartbeat() ⇒
|
|
2661
|
+
<p>Check that states of all perps known locally match on-chain states</p>
|
|
2662
|
+
|
|
2663
|
+
**Kind**: instance method of [<code>BrokerTool</code>](#BrokerTool)
|
|
2664
|
+
**Overrides**: [<code>checkHeartbeat</code>](#PerpetualDataHandler+checkHeartbeat)
|
|
2665
|
+
**Returns**: <p>True if all perp states are correct</p>
|
|
2596
2666
|
<a name="LiquidatorTool"></a>
|
|
2597
2667
|
|
|
2598
2668
|
## LiquidatorTool ⇐ [<code>WriteAccessHandler</code>](#WriteAccessHandler)
|
|
@@ -2648,6 +2718,9 @@ and executes smart-contract interactions that require gas-payments.</p>
|
|
|
2648
2718
|
* [.getMaintenanceMarginRate(symbol)](#PerpetualDataHandler+getMaintenanceMarginRate) ⇒
|
|
2649
2719
|
* [.getShortSymbol(symbol)](#PerpetualDataHandler+getShortSymbol) ⇒
|
|
2650
2720
|
* [.refreshSymbols()](#PerpetualDataHandler+refreshSymbols)
|
|
2721
|
+
* [.getLocalPerpetualStates()](#PerpetualDataHandler+getLocalPerpetualStates) ⇒
|
|
2722
|
+
* [.fetchOnChainPerpetualStates()](#PerpetualDataHandler+fetchOnChainPerpetualStates) ⇒
|
|
2723
|
+
* [.checkHeartbeat()](#PerpetualDataHandler+checkHeartbeat) ⇒
|
|
2651
2724
|
|
|
2652
2725
|
<a name="new_LiquidatorTool_new"></a>
|
|
2653
2726
|
|
|
@@ -3365,6 +3438,30 @@ main();
|
|
|
3365
3438
|
|
|
3366
3439
|
**Kind**: instance method of [<code>LiquidatorTool</code>](#LiquidatorTool)
|
|
3367
3440
|
**Overrides**: [<code>refreshSymbols</code>](#PerpetualDataHandler+refreshSymbols)
|
|
3441
|
+
<a name="PerpetualDataHandler+getLocalPerpetualStates"></a>
|
|
3442
|
+
|
|
3443
|
+
### liquidatorTool.getLocalPerpetualStates() ⇒
|
|
3444
|
+
<p>Get state of perpetuals as currently known locally</p>
|
|
3445
|
+
|
|
3446
|
+
**Kind**: instance method of [<code>LiquidatorTool</code>](#LiquidatorTool)
|
|
3447
|
+
**Overrides**: [<code>getLocalPerpetualStates</code>](#PerpetualDataHandler+getLocalPerpetualStates)
|
|
3448
|
+
**Returns**: <p>Array of [perpetual Id, perpetual state (string)]</p>
|
|
3449
|
+
<a name="PerpetualDataHandler+fetchOnChainPerpetualStates"></a>
|
|
3450
|
+
|
|
3451
|
+
### liquidatorTool.fetchOnChainPerpetualStates() ⇒
|
|
3452
|
+
<p>Fetches on-chain state of local perpetual ids. Does not run if SDK is not ready.</p>
|
|
3453
|
+
|
|
3454
|
+
**Kind**: instance method of [<code>LiquidatorTool</code>](#LiquidatorTool)
|
|
3455
|
+
**Overrides**: [<code>fetchOnChainPerpetualStates</code>](#PerpetualDataHandler+fetchOnChainPerpetualStates)
|
|
3456
|
+
**Returns**: <p>Array of [perpetual Id, perpetual state (string)]</p>
|
|
3457
|
+
<a name="PerpetualDataHandler+checkHeartbeat"></a>
|
|
3458
|
+
|
|
3459
|
+
### liquidatorTool.checkHeartbeat() ⇒
|
|
3460
|
+
<p>Check that states of all perps known locally match on-chain states</p>
|
|
3461
|
+
|
|
3462
|
+
**Kind**: instance method of [<code>LiquidatorTool</code>](#LiquidatorTool)
|
|
3463
|
+
**Overrides**: [<code>checkHeartbeat</code>](#PerpetualDataHandler+checkHeartbeat)
|
|
3464
|
+
**Returns**: <p>True if all perp states are correct</p>
|
|
3368
3465
|
<a name="LiquidityProviderTool"></a>
|
|
3369
3466
|
|
|
3370
3467
|
## LiquidityProviderTool ⇐ [<code>WriteAccessHandler</code>](#WriteAccessHandler)
|
|
@@ -3418,6 +3515,9 @@ smart-contract interactions that require gas-payments.</p>
|
|
|
3418
3515
|
* [.getMaintenanceMarginRate(symbol)](#PerpetualDataHandler+getMaintenanceMarginRate) ⇒
|
|
3419
3516
|
* [.getShortSymbol(symbol)](#PerpetualDataHandler+getShortSymbol) ⇒
|
|
3420
3517
|
* [.refreshSymbols()](#PerpetualDataHandler+refreshSymbols)
|
|
3518
|
+
* [.getLocalPerpetualStates()](#PerpetualDataHandler+getLocalPerpetualStates) ⇒
|
|
3519
|
+
* [.fetchOnChainPerpetualStates()](#PerpetualDataHandler+fetchOnChainPerpetualStates) ⇒
|
|
3520
|
+
* [.checkHeartbeat()](#PerpetualDataHandler+checkHeartbeat) ⇒
|
|
3421
3521
|
|
|
3422
3522
|
<a name="new_LiquidityProviderTool_new"></a>
|
|
3423
3523
|
|
|
@@ -4074,6 +4174,30 @@ main();
|
|
|
4074
4174
|
|
|
4075
4175
|
**Kind**: instance method of [<code>LiquidityProviderTool</code>](#LiquidityProviderTool)
|
|
4076
4176
|
**Overrides**: [<code>refreshSymbols</code>](#PerpetualDataHandler+refreshSymbols)
|
|
4177
|
+
<a name="PerpetualDataHandler+getLocalPerpetualStates"></a>
|
|
4178
|
+
|
|
4179
|
+
### liquidityProviderTool.getLocalPerpetualStates() ⇒
|
|
4180
|
+
<p>Get state of perpetuals as currently known locally</p>
|
|
4181
|
+
|
|
4182
|
+
**Kind**: instance method of [<code>LiquidityProviderTool</code>](#LiquidityProviderTool)
|
|
4183
|
+
**Overrides**: [<code>getLocalPerpetualStates</code>](#PerpetualDataHandler+getLocalPerpetualStates)
|
|
4184
|
+
**Returns**: <p>Array of [perpetual Id, perpetual state (string)]</p>
|
|
4185
|
+
<a name="PerpetualDataHandler+fetchOnChainPerpetualStates"></a>
|
|
4186
|
+
|
|
4187
|
+
### liquidityProviderTool.fetchOnChainPerpetualStates() ⇒
|
|
4188
|
+
<p>Fetches on-chain state of local perpetual ids. Does not run if SDK is not ready.</p>
|
|
4189
|
+
|
|
4190
|
+
**Kind**: instance method of [<code>LiquidityProviderTool</code>](#LiquidityProviderTool)
|
|
4191
|
+
**Overrides**: [<code>fetchOnChainPerpetualStates</code>](#PerpetualDataHandler+fetchOnChainPerpetualStates)
|
|
4192
|
+
**Returns**: <p>Array of [perpetual Id, perpetual state (string)]</p>
|
|
4193
|
+
<a name="PerpetualDataHandler+checkHeartbeat"></a>
|
|
4194
|
+
|
|
4195
|
+
### liquidityProviderTool.checkHeartbeat() ⇒
|
|
4196
|
+
<p>Check that states of all perps known locally match on-chain states</p>
|
|
4197
|
+
|
|
4198
|
+
**Kind**: instance method of [<code>LiquidityProviderTool</code>](#LiquidityProviderTool)
|
|
4199
|
+
**Overrides**: [<code>checkHeartbeat</code>](#PerpetualDataHandler+checkHeartbeat)
|
|
4200
|
+
**Returns**: <p>True if all perp states are correct</p>
|
|
4077
4201
|
<a name="MarketData"></a>
|
|
4078
4202
|
|
|
4079
4203
|
## MarketData ⇐ [<code>PerpetualDataHandler</code>](#PerpetualDataHandler)
|
|
@@ -4157,6 +4281,9 @@ No gas required for the queries here.</p>
|
|
|
4157
4281
|
* [.getMaintenanceMarginRate(symbol)](#PerpetualDataHandler+getMaintenanceMarginRate) ⇒
|
|
4158
4282
|
* [.getShortSymbol(symbol)](#PerpetualDataHandler+getShortSymbol) ⇒
|
|
4159
4283
|
* [.refreshSymbols()](#PerpetualDataHandler+refreshSymbols)
|
|
4284
|
+
* [.getLocalPerpetualStates()](#PerpetualDataHandler+getLocalPerpetualStates) ⇒
|
|
4285
|
+
* [.fetchOnChainPerpetualStates()](#PerpetualDataHandler+fetchOnChainPerpetualStates) ⇒
|
|
4286
|
+
* [.checkHeartbeat()](#PerpetualDataHandler+checkHeartbeat) ⇒
|
|
4160
4287
|
* _static_
|
|
4161
4288
|
* [.exchangeFeePrdMkts(maxMaintMgnRate, Sm, tradeAmtBC, tradeMgnRate)](#MarketData.exchangeFeePrdMkts) ⇒
|
|
4162
4289
|
|
|
@@ -5457,6 +5584,30 @@ main();
|
|
|
5457
5584
|
|
|
5458
5585
|
**Kind**: instance method of [<code>MarketData</code>](#MarketData)
|
|
5459
5586
|
**Overrides**: [<code>refreshSymbols</code>](#PerpetualDataHandler+refreshSymbols)
|
|
5587
|
+
<a name="PerpetualDataHandler+getLocalPerpetualStates"></a>
|
|
5588
|
+
|
|
5589
|
+
### marketData.getLocalPerpetualStates() ⇒
|
|
5590
|
+
<p>Get state of perpetuals as currently known locally</p>
|
|
5591
|
+
|
|
5592
|
+
**Kind**: instance method of [<code>MarketData</code>](#MarketData)
|
|
5593
|
+
**Overrides**: [<code>getLocalPerpetualStates</code>](#PerpetualDataHandler+getLocalPerpetualStates)
|
|
5594
|
+
**Returns**: <p>Array of [perpetual Id, perpetual state (string)]</p>
|
|
5595
|
+
<a name="PerpetualDataHandler+fetchOnChainPerpetualStates"></a>
|
|
5596
|
+
|
|
5597
|
+
### marketData.fetchOnChainPerpetualStates() ⇒
|
|
5598
|
+
<p>Fetches on-chain state of local perpetual ids. Does not run if SDK is not ready.</p>
|
|
5599
|
+
|
|
5600
|
+
**Kind**: instance method of [<code>MarketData</code>](#MarketData)
|
|
5601
|
+
**Overrides**: [<code>fetchOnChainPerpetualStates</code>](#PerpetualDataHandler+fetchOnChainPerpetualStates)
|
|
5602
|
+
**Returns**: <p>Array of [perpetual Id, perpetual state (string)]</p>
|
|
5603
|
+
<a name="PerpetualDataHandler+checkHeartbeat"></a>
|
|
5604
|
+
|
|
5605
|
+
### marketData.checkHeartbeat() ⇒
|
|
5606
|
+
<p>Check that states of all perps known locally match on-chain states</p>
|
|
5607
|
+
|
|
5608
|
+
**Kind**: instance method of [<code>MarketData</code>](#MarketData)
|
|
5609
|
+
**Overrides**: [<code>checkHeartbeat</code>](#PerpetualDataHandler+checkHeartbeat)
|
|
5610
|
+
**Returns**: <p>True if all perp states are correct</p>
|
|
5460
5611
|
<a name="MarketData.exchangeFeePrdMkts"></a>
|
|
5461
5612
|
|
|
5462
5613
|
### MarketData.exchangeFeePrdMkts(maxMaintMgnRate, Sm, tradeAmtBC, tradeMgnRate) ⇒
|
|
@@ -5548,6 +5699,9 @@ gas-payments.</p>
|
|
|
5548
5699
|
* [.getMaintenanceMarginRate(symbol)](#PerpetualDataHandler+getMaintenanceMarginRate) ⇒
|
|
5549
5700
|
* [.getShortSymbol(symbol)](#PerpetualDataHandler+getShortSymbol) ⇒
|
|
5550
5701
|
* [.refreshSymbols()](#PerpetualDataHandler+refreshSymbols)
|
|
5702
|
+
* [.getLocalPerpetualStates()](#PerpetualDataHandler+getLocalPerpetualStates) ⇒
|
|
5703
|
+
* [.fetchOnChainPerpetualStates()](#PerpetualDataHandler+fetchOnChainPerpetualStates) ⇒
|
|
5704
|
+
* [.checkHeartbeat()](#PerpetualDataHandler+checkHeartbeat) ⇒
|
|
5551
5705
|
|
|
5552
5706
|
<a name="new_OrderExecutorTool_new"></a>
|
|
5553
5707
|
|
|
@@ -6311,6 +6465,30 @@ main();
|
|
|
6311
6465
|
|
|
6312
6466
|
**Kind**: instance method of [<code>OrderExecutorTool</code>](#OrderExecutorTool)
|
|
6313
6467
|
**Overrides**: [<code>refreshSymbols</code>](#PerpetualDataHandler+refreshSymbols)
|
|
6468
|
+
<a name="PerpetualDataHandler+getLocalPerpetualStates"></a>
|
|
6469
|
+
|
|
6470
|
+
### orderExecutorTool.getLocalPerpetualStates() ⇒
|
|
6471
|
+
<p>Get state of perpetuals as currently known locally</p>
|
|
6472
|
+
|
|
6473
|
+
**Kind**: instance method of [<code>OrderExecutorTool</code>](#OrderExecutorTool)
|
|
6474
|
+
**Overrides**: [<code>getLocalPerpetualStates</code>](#PerpetualDataHandler+getLocalPerpetualStates)
|
|
6475
|
+
**Returns**: <p>Array of [perpetual Id, perpetual state (string)]</p>
|
|
6476
|
+
<a name="PerpetualDataHandler+fetchOnChainPerpetualStates"></a>
|
|
6477
|
+
|
|
6478
|
+
### orderExecutorTool.fetchOnChainPerpetualStates() ⇒
|
|
6479
|
+
<p>Fetches on-chain state of local perpetual ids. Does not run if SDK is not ready.</p>
|
|
6480
|
+
|
|
6481
|
+
**Kind**: instance method of [<code>OrderExecutorTool</code>](#OrderExecutorTool)
|
|
6482
|
+
**Overrides**: [<code>fetchOnChainPerpetualStates</code>](#PerpetualDataHandler+fetchOnChainPerpetualStates)
|
|
6483
|
+
**Returns**: <p>Array of [perpetual Id, perpetual state (string)]</p>
|
|
6484
|
+
<a name="PerpetualDataHandler+checkHeartbeat"></a>
|
|
6485
|
+
|
|
6486
|
+
### orderExecutorTool.checkHeartbeat() ⇒
|
|
6487
|
+
<p>Check that states of all perps known locally match on-chain states</p>
|
|
6488
|
+
|
|
6489
|
+
**Kind**: instance method of [<code>OrderExecutorTool</code>](#OrderExecutorTool)
|
|
6490
|
+
**Overrides**: [<code>checkHeartbeat</code>](#PerpetualDataHandler+checkHeartbeat)
|
|
6491
|
+
**Returns**: <p>True if all perp states are correct</p>
|
|
6314
6492
|
<a name="PerpetualDataHandler"></a>
|
|
6315
6493
|
|
|
6316
6494
|
## PerpetualDataHandler
|
|
@@ -6357,6 +6535,9 @@ common data and chain operations.</p>
|
|
|
6357
6535
|
* [.getMaintenanceMarginRate(symbol)](#PerpetualDataHandler+getMaintenanceMarginRate) ⇒
|
|
6358
6536
|
* [.getShortSymbol(symbol)](#PerpetualDataHandler+getShortSymbol) ⇒
|
|
6359
6537
|
* [.refreshSymbols()](#PerpetualDataHandler+refreshSymbols)
|
|
6538
|
+
* [.getLocalPerpetualStates()](#PerpetualDataHandler+getLocalPerpetualStates) ⇒
|
|
6539
|
+
* [.fetchOnChainPerpetualStates()](#PerpetualDataHandler+fetchOnChainPerpetualStates) ⇒
|
|
6540
|
+
* [.checkHeartbeat()](#PerpetualDataHandler+checkHeartbeat) ⇒
|
|
6360
6541
|
* _static_
|
|
6361
6542
|
* [.fetchSlotsInfo(chainId, short)](#PerpetualDataHandler.fetchSlotsInfo) ⇒
|
|
6362
6543
|
* [.getPerpetualStaticInfo(_proxyContract, nestedPerpetualIDs, symbolList)](#PerpetualDataHandler.getPerpetualStaticInfo) ⇒
|
|
@@ -6388,6 +6569,7 @@ common data and chain operations.</p>
|
|
|
6388
6569
|
* [.getMaintenanceMarginRate(staticInfo)](#PerpetualDataHandler.getMaintenanceMarginRate) ⇒
|
|
6389
6570
|
* [.isMarketDayTime(fAMMTargetDD)](#PerpetualDataHandler.isMarketDayTime) ⇒
|
|
6390
6571
|
* [.getIndexSymbol(_symbolList, info)](#PerpetualDataHandler.getIndexSymbol) ⇒
|
|
6572
|
+
* [.extractStatesFromStaticInfos(perpInfos)](#PerpetualDataHandler.extractStatesFromStaticInfos) ⇒
|
|
6391
6573
|
|
|
6392
6574
|
<a name="new_PerpetualDataHandler_new"></a>
|
|
6393
6575
|
|
|
@@ -6852,6 +7034,27 @@ main();
|
|
|
6852
7034
|
<p>Refreshes symbol mappings if at least one prediction market is expired</p>
|
|
6853
7035
|
|
|
6854
7036
|
**Kind**: instance method of [<code>PerpetualDataHandler</code>](#PerpetualDataHandler)
|
|
7037
|
+
<a name="PerpetualDataHandler+getLocalPerpetualStates"></a>
|
|
7038
|
+
|
|
7039
|
+
### perpetualDataHandler.getLocalPerpetualStates() ⇒
|
|
7040
|
+
<p>Get state of perpetuals as currently known locally</p>
|
|
7041
|
+
|
|
7042
|
+
**Kind**: instance method of [<code>PerpetualDataHandler</code>](#PerpetualDataHandler)
|
|
7043
|
+
**Returns**: <p>Array of [perpetual Id, perpetual state (string)]</p>
|
|
7044
|
+
<a name="PerpetualDataHandler+fetchOnChainPerpetualStates"></a>
|
|
7045
|
+
|
|
7046
|
+
### perpetualDataHandler.fetchOnChainPerpetualStates() ⇒
|
|
7047
|
+
<p>Fetches on-chain state of local perpetual ids. Does not run if SDK is not ready.</p>
|
|
7048
|
+
|
|
7049
|
+
**Kind**: instance method of [<code>PerpetualDataHandler</code>](#PerpetualDataHandler)
|
|
7050
|
+
**Returns**: <p>Array of [perpetual Id, perpetual state (string)]</p>
|
|
7051
|
+
<a name="PerpetualDataHandler+checkHeartbeat"></a>
|
|
7052
|
+
|
|
7053
|
+
### perpetualDataHandler.checkHeartbeat() ⇒
|
|
7054
|
+
<p>Check that states of all perps known locally match on-chain states</p>
|
|
7055
|
+
|
|
7056
|
+
**Kind**: instance method of [<code>PerpetualDataHandler</code>](#PerpetualDataHandler)
|
|
7057
|
+
**Returns**: <p>True if all perp states are correct</p>
|
|
6855
7058
|
<a name="PerpetualDataHandler.fetchSlotsInfo"></a>
|
|
6856
7059
|
|
|
6857
7060
|
### PerpetualDataHandler.fetchSlotsInfo(chainId, short) ⇒
|
|
@@ -7265,6 +7468,18 @@ which has open/close times</p>
|
|
|
7265
7468
|
| _symbolList | <p>Mapping from long symbol (e.g. NHL_TOR_DAL_251015) to price-feed API symbol (NHL0-USD:84532)</p> |
|
|
7266
7469
|
| info | <p>Perpetual static info</p> |
|
|
7267
7470
|
|
|
7471
|
+
<a name="PerpetualDataHandler.extractStatesFromStaticInfos"></a>
|
|
7472
|
+
|
|
7473
|
+
### PerpetualDataHandler.extractStatesFromStaticInfos(perpInfos) ⇒
|
|
7474
|
+
<p>Extract perpetual states from collection of static infos</p>
|
|
7475
|
+
|
|
7476
|
+
**Kind**: static method of [<code>PerpetualDataHandler</code>](#PerpetualDataHandler)
|
|
7477
|
+
**Returns**: <p>Array of [perpetual Id, perpetual state (string)]</p>
|
|
7478
|
+
|
|
7479
|
+
| Param | Description |
|
|
7480
|
+
| --- | --- |
|
|
7481
|
+
| perpInfos | <p>Perpetual static infos, either a symbol => PerpInfo mapping, or a PerpInfo array</p> |
|
|
7482
|
+
|
|
7268
7483
|
<a name="PerpetualEventHandler"></a>
|
|
7269
7484
|
|
|
7270
7485
|
## PerpetualEventHandler
|
|
@@ -8020,6 +8235,9 @@ so that signatures can be handled in frontend via wallet</p>
|
|
|
8020
8235
|
* [.getMaintenanceMarginRate(symbol)](#PerpetualDataHandler+getMaintenanceMarginRate) ⇒
|
|
8021
8236
|
* [.getShortSymbol(symbol)](#PerpetualDataHandler+getShortSymbol) ⇒
|
|
8022
8237
|
* [.refreshSymbols()](#PerpetualDataHandler+refreshSymbols)
|
|
8238
|
+
* [.getLocalPerpetualStates()](#PerpetualDataHandler+getLocalPerpetualStates) ⇒
|
|
8239
|
+
* [.fetchOnChainPerpetualStates()](#PerpetualDataHandler+fetchOnChainPerpetualStates) ⇒
|
|
8240
|
+
* [.checkHeartbeat()](#PerpetualDataHandler+checkHeartbeat) ⇒
|
|
8023
8241
|
* _static_
|
|
8024
8242
|
* [.chainOrders(orders, ids)](#TraderInterface.chainOrders) ⇒
|
|
8025
8243
|
|
|
@@ -9581,6 +9799,30 @@ main();
|
|
|
9581
9799
|
|
|
9582
9800
|
**Kind**: instance method of [<code>TraderInterface</code>](#TraderInterface)
|
|
9583
9801
|
**Overrides**: [<code>refreshSymbols</code>](#PerpetualDataHandler+refreshSymbols)
|
|
9802
|
+
<a name="PerpetualDataHandler+getLocalPerpetualStates"></a>
|
|
9803
|
+
|
|
9804
|
+
### traderInterface.getLocalPerpetualStates() ⇒
|
|
9805
|
+
<p>Get state of perpetuals as currently known locally</p>
|
|
9806
|
+
|
|
9807
|
+
**Kind**: instance method of [<code>TraderInterface</code>](#TraderInterface)
|
|
9808
|
+
**Overrides**: [<code>getLocalPerpetualStates</code>](#PerpetualDataHandler+getLocalPerpetualStates)
|
|
9809
|
+
**Returns**: <p>Array of [perpetual Id, perpetual state (string)]</p>
|
|
9810
|
+
<a name="PerpetualDataHandler+fetchOnChainPerpetualStates"></a>
|
|
9811
|
+
|
|
9812
|
+
### traderInterface.fetchOnChainPerpetualStates() ⇒
|
|
9813
|
+
<p>Fetches on-chain state of local perpetual ids. Does not run if SDK is not ready.</p>
|
|
9814
|
+
|
|
9815
|
+
**Kind**: instance method of [<code>TraderInterface</code>](#TraderInterface)
|
|
9816
|
+
**Overrides**: [<code>fetchOnChainPerpetualStates</code>](#PerpetualDataHandler+fetchOnChainPerpetualStates)
|
|
9817
|
+
**Returns**: <p>Array of [perpetual Id, perpetual state (string)]</p>
|
|
9818
|
+
<a name="PerpetualDataHandler+checkHeartbeat"></a>
|
|
9819
|
+
|
|
9820
|
+
### traderInterface.checkHeartbeat() ⇒
|
|
9821
|
+
<p>Check that states of all perps known locally match on-chain states</p>
|
|
9822
|
+
|
|
9823
|
+
**Kind**: instance method of [<code>TraderInterface</code>](#TraderInterface)
|
|
9824
|
+
**Overrides**: [<code>checkHeartbeat</code>](#PerpetualDataHandler+checkHeartbeat)
|
|
9825
|
+
**Returns**: <p>True if all perp states are correct</p>
|
|
9584
9826
|
<a name="TraderInterface.chainOrders"></a>
|
|
9585
9827
|
|
|
9586
9828
|
### TraderInterface.chainOrders(orders, ids) ⇒
|
|
@@ -9647,6 +9889,9 @@ require gas-payments.</p>
|
|
|
9647
9889
|
* [.getMaintenanceMarginRate(symbol)](#PerpetualDataHandler+getMaintenanceMarginRate) ⇒
|
|
9648
9890
|
* [.getShortSymbol(symbol)](#PerpetualDataHandler+getShortSymbol) ⇒
|
|
9649
9891
|
* [.refreshSymbols()](#PerpetualDataHandler+refreshSymbols)
|
|
9892
|
+
* [.getLocalPerpetualStates()](#PerpetualDataHandler+getLocalPerpetualStates) ⇒
|
|
9893
|
+
* [.fetchOnChainPerpetualStates()](#PerpetualDataHandler+fetchOnChainPerpetualStates) ⇒
|
|
9894
|
+
* [.checkHeartbeat()](#PerpetualDataHandler+checkHeartbeat) ⇒
|
|
9650
9895
|
|
|
9651
9896
|
<a name="new_WriteAccessHandler_new"></a>
|
|
9652
9897
|
|
|
@@ -10193,6 +10438,30 @@ main();
|
|
|
10193
10438
|
|
|
10194
10439
|
**Kind**: instance method of [<code>WriteAccessHandler</code>](#WriteAccessHandler)
|
|
10195
10440
|
**Overrides**: [<code>refreshSymbols</code>](#PerpetualDataHandler+refreshSymbols)
|
|
10441
|
+
<a name="PerpetualDataHandler+getLocalPerpetualStates"></a>
|
|
10442
|
+
|
|
10443
|
+
### writeAccessHandler.getLocalPerpetualStates() ⇒
|
|
10444
|
+
<p>Get state of perpetuals as currently known locally</p>
|
|
10445
|
+
|
|
10446
|
+
**Kind**: instance method of [<code>WriteAccessHandler</code>](#WriteAccessHandler)
|
|
10447
|
+
**Overrides**: [<code>getLocalPerpetualStates</code>](#PerpetualDataHandler+getLocalPerpetualStates)
|
|
10448
|
+
**Returns**: <p>Array of [perpetual Id, perpetual state (string)]</p>
|
|
10449
|
+
<a name="PerpetualDataHandler+fetchOnChainPerpetualStates"></a>
|
|
10450
|
+
|
|
10451
|
+
### writeAccessHandler.fetchOnChainPerpetualStates() ⇒
|
|
10452
|
+
<p>Fetches on-chain state of local perpetual ids. Does not run if SDK is not ready.</p>
|
|
10453
|
+
|
|
10454
|
+
**Kind**: instance method of [<code>WriteAccessHandler</code>](#WriteAccessHandler)
|
|
10455
|
+
**Overrides**: [<code>fetchOnChainPerpetualStates</code>](#PerpetualDataHandler+fetchOnChainPerpetualStates)
|
|
10456
|
+
**Returns**: <p>Array of [perpetual Id, perpetual state (string)]</p>
|
|
10457
|
+
<a name="PerpetualDataHandler+checkHeartbeat"></a>
|
|
10458
|
+
|
|
10459
|
+
### writeAccessHandler.checkHeartbeat() ⇒
|
|
10460
|
+
<p>Check that states of all perps known locally match on-chain states</p>
|
|
10461
|
+
|
|
10462
|
+
**Kind**: instance method of [<code>WriteAccessHandler</code>](#WriteAccessHandler)
|
|
10463
|
+
**Overrides**: [<code>checkHeartbeat</code>](#PerpetualDataHandler+checkHeartbeat)
|
|
10464
|
+
**Returns**: <p>True if all perp states are correct</p>
|
|
10196
10465
|
<a name="default"></a>
|
|
10197
10466
|
|
|
10198
10467
|
## default ⇒
|
|
@@ -44,6 +44,9 @@ common data and chain operations.</p>
|
|
|
44
44
|
* [.getMaintenanceMarginRate(symbol)](#PerpetualDataHandler+getMaintenanceMarginRate) ⇒
|
|
45
45
|
* [.getShortSymbol(symbol)](#PerpetualDataHandler+getShortSymbol) ⇒
|
|
46
46
|
* [.refreshSymbols()](#PerpetualDataHandler+refreshSymbols)
|
|
47
|
+
* [.getLocalPerpetualStates()](#PerpetualDataHandler+getLocalPerpetualStates) ⇒
|
|
48
|
+
* [.fetchOnChainPerpetualStates()](#PerpetualDataHandler+fetchOnChainPerpetualStates) ⇒
|
|
49
|
+
* [.checkHeartbeat()](#PerpetualDataHandler+checkHeartbeat) ⇒
|
|
47
50
|
* _static_
|
|
48
51
|
* [.fetchSlotsInfo(chainId, short)](#PerpetualDataHandler.fetchSlotsInfo) ⇒
|
|
49
52
|
* [.getPerpetualStaticInfo(_proxyContract, nestedPerpetualIDs, symbolList)](#PerpetualDataHandler.getPerpetualStaticInfo) ⇒
|
|
@@ -75,6 +78,7 @@ common data and chain operations.</p>
|
|
|
75
78
|
* [.getMaintenanceMarginRate(staticInfo)](#PerpetualDataHandler.getMaintenanceMarginRate) ⇒
|
|
76
79
|
* [.isMarketDayTime(fAMMTargetDD)](#PerpetualDataHandler.isMarketDayTime) ⇒
|
|
77
80
|
* [.getIndexSymbol(_symbolList, info)](#PerpetualDataHandler.getIndexSymbol) ⇒
|
|
81
|
+
* [.extractStatesFromStaticInfos(perpInfos)](#PerpetualDataHandler.extractStatesFromStaticInfos) ⇒
|
|
78
82
|
|
|
79
83
|
<a name="new_PerpetualDataHandler_new"></a>
|
|
80
84
|
|
|
@@ -539,6 +543,27 @@ main();
|
|
|
539
543
|
<p>Refreshes symbol mappings if at least one prediction market is expired</p>
|
|
540
544
|
|
|
541
545
|
**Kind**: instance method of [<code>PerpetualDataHandler</code>](#PerpetualDataHandler)
|
|
546
|
+
<a name="PerpetualDataHandler+getLocalPerpetualStates"></a>
|
|
547
|
+
|
|
548
|
+
### perpetualDataHandler.getLocalPerpetualStates() ⇒
|
|
549
|
+
<p>Get state of perpetuals as currently known locally</p>
|
|
550
|
+
|
|
551
|
+
**Kind**: instance method of [<code>PerpetualDataHandler</code>](#PerpetualDataHandler)
|
|
552
|
+
**Returns**: <p>Array of [perpetual Id, perpetual state (string)]</p>
|
|
553
|
+
<a name="PerpetualDataHandler+fetchOnChainPerpetualStates"></a>
|
|
554
|
+
|
|
555
|
+
### perpetualDataHandler.fetchOnChainPerpetualStates() ⇒
|
|
556
|
+
<p>Fetches on-chain state of local perpetual ids. Does not run if SDK is not ready.</p>
|
|
557
|
+
|
|
558
|
+
**Kind**: instance method of [<code>PerpetualDataHandler</code>](#PerpetualDataHandler)
|
|
559
|
+
**Returns**: <p>Array of [perpetual Id, perpetual state (string)]</p>
|
|
560
|
+
<a name="PerpetualDataHandler+checkHeartbeat"></a>
|
|
561
|
+
|
|
562
|
+
### perpetualDataHandler.checkHeartbeat() ⇒
|
|
563
|
+
<p>Check that states of all perps known locally match on-chain states</p>
|
|
564
|
+
|
|
565
|
+
**Kind**: instance method of [<code>PerpetualDataHandler</code>](#PerpetualDataHandler)
|
|
566
|
+
**Returns**: <p>True if all perp states are correct</p>
|
|
542
567
|
<a name="PerpetualDataHandler.fetchSlotsInfo"></a>
|
|
543
568
|
|
|
544
569
|
### PerpetualDataHandler.fetchSlotsInfo(chainId, short) ⇒
|
|
@@ -952,3 +977,15 @@ which has open/close times</p>
|
|
|
952
977
|
| _symbolList | <p>Mapping from long symbol (e.g. NHL_TOR_DAL_251015) to price-feed API symbol (NHL0-USD:84532)</p> |
|
|
953
978
|
| info | <p>Perpetual static info</p> |
|
|
954
979
|
|
|
980
|
+
<a name="PerpetualDataHandler.extractStatesFromStaticInfos"></a>
|
|
981
|
+
|
|
982
|
+
### PerpetualDataHandler.extractStatesFromStaticInfos(perpInfos) ⇒
|
|
983
|
+
<p>Extract perpetual states from collection of static infos</p>
|
|
984
|
+
|
|
985
|
+
**Kind**: static method of [<code>PerpetualDataHandler</code>](#PerpetualDataHandler)
|
|
986
|
+
**Returns**: <p>Array of [perpetual Id, perpetual state (string)]</p>
|
|
987
|
+
|
|
988
|
+
| Param | Description |
|
|
989
|
+
| --- | --- |
|
|
990
|
+
| perpInfos | <p>Perpetual static infos, either a symbol => PerpInfo mapping, or a PerpInfo array</p> |
|
|
991
|
+
|
package/package.json
CHANGED
package/src/d8XMath.ts
CHANGED
|
@@ -961,7 +961,7 @@ export function pmMaxSignedOpenTradeSize(
|
|
|
961
961
|
return 0;
|
|
962
962
|
}
|
|
963
963
|
const m = pmMaintenanceMarginRate(isBuy ? 1 : -1, sm, mr);
|
|
964
|
-
let p = isBuy ? sm - 1 : 2 - sm;
|
|
964
|
+
let p = !isBuy ? sm - 1 : 2 - sm;
|
|
965
965
|
p = p < 0.01 ? 0.01 : p > 0.99 ? 0.99 : p; // same cap as contract
|
|
966
966
|
return isBuy ? (ammFundsQC + m * p * short) / p - long : -(ammFundsQC + m * p * long) / p + short;
|
|
967
967
|
}
|
package/src/marketData.ts
CHANGED
|
@@ -991,10 +991,11 @@ export default class MarketData extends PerpetualDataHandler {
|
|
|
991
991
|
markPrice: number,
|
|
992
992
|
collToQuoteConversion: number,
|
|
993
993
|
S2: number,
|
|
994
|
-
symbolToPerpStaticInfo:
|
|
994
|
+
symbolToPerpStaticInfo: ReadonlyMap<string, PerpetualStaticInfo>
|
|
995
995
|
): [number, number | undefined, number] {
|
|
996
996
|
let S2Liq: number, S3Liq: number | undefined;
|
|
997
997
|
const staticInfo = symbolToPerpStaticInfo.get(symbol)!;
|
|
998
|
+
|
|
998
999
|
let ccyType = staticInfo.collateralCurrencyType;
|
|
999
1000
|
const isPred = MarketData.isPredictionMarketStatic(staticInfo);
|
|
1000
1001
|
const idx_availableCashCC = 2;
|
|
@@ -1819,7 +1820,7 @@ export default class MarketData extends PerpetualDataHandler {
|
|
|
1819
1820
|
protected static async openOrdersOnOrderBook(
|
|
1820
1821
|
traderAddr: string,
|
|
1821
1822
|
orderBookContract: LimitOrderBook,
|
|
1822
|
-
symbolToPerpStaticInfo:
|
|
1823
|
+
symbolToPerpStaticInfo: ReadonlyMap<string, PerpetualStaticInfo>,
|
|
1823
1824
|
overrides?: Overrides
|
|
1824
1825
|
): Promise<Order[]> {
|
|
1825
1826
|
//eliminate empty orders and map to user friendly orders
|
|
@@ -1856,7 +1857,7 @@ export default class MarketData extends PerpetualDataHandler {
|
|
|
1856
1857
|
traderAddr: string,
|
|
1857
1858
|
orderBookContracts: LimitOrderBook[],
|
|
1858
1859
|
multicall: Multicall3,
|
|
1859
|
-
symbolToPerpStaticInfo:
|
|
1860
|
+
symbolToPerpStaticInfo: ReadonlyMap<string, PerpetualStaticInfo>,
|
|
1860
1861
|
overrides?: Overrides
|
|
1861
1862
|
): Promise<{ orders: Order[][]; digests: string[][] }> {
|
|
1862
1863
|
// eliminate empty orders and map to user friendly orders
|
|
@@ -2044,9 +2045,9 @@ export default class MarketData extends PerpetualDataHandler {
|
|
|
2044
2045
|
* @ignore
|
|
2045
2046
|
*/
|
|
2046
2047
|
private static async _getAllActivePerpIndexPrices(
|
|
2047
|
-
_symbolToPerpStaticInfo:
|
|
2048
|
+
_symbolToPerpStaticInfo: ReadonlyMap<string, PerpetualStaticInfo>,
|
|
2048
2049
|
_priceFeedGetter: PriceFeeds,
|
|
2049
|
-
_symbolList:
|
|
2050
|
+
_symbolList: ReadonlyMap<string, string>
|
|
2050
2051
|
): Promise<Map<string, [number, boolean]>> {
|
|
2051
2052
|
// get all prices from off-chain price-sources
|
|
2052
2053
|
let allSym = new Set<string>();
|
|
@@ -2102,7 +2103,7 @@ export default class MarketData extends PerpetualDataHandler {
|
|
|
2102
2103
|
*/
|
|
2103
2104
|
private static async _isMarketClosed(
|
|
2104
2105
|
symbol: string,
|
|
2105
|
-
_symbolToPerpStaticInfo:
|
|
2106
|
+
_symbolToPerpStaticInfo: ReadonlyMap<string, PerpetualStaticInfo>,
|
|
2106
2107
|
_priceFeedGetter: PriceFeeds
|
|
2107
2108
|
): Promise<boolean> {
|
|
2108
2109
|
const sInfo: PerpetualStaticInfo | undefined = _symbolToPerpStaticInfo.get(symbol);
|
|
@@ -2133,13 +2134,13 @@ export default class MarketData extends PerpetualDataHandler {
|
|
|
2133
2134
|
*/
|
|
2134
2135
|
private static async _queryMidPrices(
|
|
2135
2136
|
_proxyContract: Contract,
|
|
2136
|
-
_poolStaticInfos:
|
|
2137
|
+
_poolStaticInfos: ReadonlyArray<PoolStaticInfo>,
|
|
2137
2138
|
_multicall: Multicall3,
|
|
2138
|
-
_nestedPerpetualIDs:
|
|
2139
|
-
_symbolToPerpStaticInfo:
|
|
2140
|
-
_perpetualIdToSymbol:
|
|
2141
|
-
_idxPriceMap:
|
|
2142
|
-
_symbolList:
|
|
2139
|
+
_nestedPerpetualIDs: ReadonlyArray<ReadonlyArray<number>>,
|
|
2140
|
+
_symbolToPerpStaticInfo: ReadonlyMap<string, PerpetualStaticInfo>,
|
|
2141
|
+
_perpetualIdToSymbol: ReadonlyMap<number, string>,
|
|
2142
|
+
_idxPriceMap: ReadonlyMap<string, [number, boolean]>,
|
|
2143
|
+
_symbolList: ReadonlyMap<string, string>,
|
|
2143
2144
|
overrides?: Overrides
|
|
2144
2145
|
): Promise<Map<string, number>> {
|
|
2145
2146
|
// what is the maximal number of queries at once?
|
|
@@ -2218,9 +2219,9 @@ export default class MarketData extends PerpetualDataHandler {
|
|
|
2218
2219
|
private static async _queryPoolAndPerpetualStates(
|
|
2219
2220
|
_proxyContract: Contract,
|
|
2220
2221
|
_multicall: Multicall3,
|
|
2221
|
-
_poolStaticInfos: PoolStaticInfo[],
|
|
2222
|
-
_symbolList:
|
|
2223
|
-
_nestedPerpetualIDs:
|
|
2222
|
+
_poolStaticInfos: readonly PoolStaticInfo[],
|
|
2223
|
+
_symbolList: ReadonlyMap<string, string>,
|
|
2224
|
+
_nestedPerpetualIDs: ReadonlyArray<ReadonlyArray<number>>,
|
|
2224
2225
|
overrides?: Overrides
|
|
2225
2226
|
): Promise<{ pools: Array<PoolState>; perpetuals: Array<PerpetualState> }> {
|
|
2226
2227
|
const chunkSize = 5;
|
|
@@ -2298,7 +2299,7 @@ export default class MarketData extends PerpetualDataHandler {
|
|
|
2298
2299
|
*/
|
|
2299
2300
|
protected static _poolDataToPoolState(
|
|
2300
2301
|
_liquidityPools: Partial<PerpStorage.LiquidityPoolDataStructOutput>[],
|
|
2301
|
-
_poolStaticInfos: PoolStaticInfo[]
|
|
2302
|
+
_poolStaticInfos: readonly PoolStaticInfo[]
|
|
2302
2303
|
): PoolState[] {
|
|
2303
2304
|
const poolStates = _liquidityPools.map(
|
|
2304
2305
|
(pool, k) =>
|
|
@@ -2326,9 +2327,9 @@ export default class MarketData extends PerpetualDataHandler {
|
|
|
2326
2327
|
* @ignore
|
|
2327
2328
|
*/
|
|
2328
2329
|
protected static _perpetualDataToPerpetualState(
|
|
2329
|
-
_perpetuals: any[],
|
|
2330
|
-
_longShortBC: [bigint, bigint][],
|
|
2331
|
-
_symbolList:
|
|
2330
|
+
_perpetuals: readonly any[],
|
|
2331
|
+
_longShortBC: readonly [bigint, bigint][],
|
|
2332
|
+
_symbolList: ReadonlyMap<string, string>
|
|
2332
2333
|
): PerpetualState[] {
|
|
2333
2334
|
const perpStates = new Array<PerpetualState>();
|
|
2334
2335
|
for (let k = 0; k < _perpetuals.length; k++) {
|
|
@@ -2427,9 +2428,13 @@ export default class MarketData extends PerpetualDataHandler {
|
|
|
2427
2428
|
) {
|
|
2428
2429
|
perp.isMarketClosed = true;
|
|
2429
2430
|
} else {
|
|
2430
|
-
const
|
|
2431
|
+
const indexSymbol = MarketData.getIndexSymbol(_symbolList, info);
|
|
2432
|
+
const idxPriceS2Pair = idxPriceMap.get(indexSymbol)!; // checked in if
|
|
2431
2433
|
let idxPriceS3Pair: [number, boolean] = [0, false];
|
|
2432
|
-
perp.isMarketClosed =
|
|
2434
|
+
perp.isMarketClosed =
|
|
2435
|
+
idxPriceS2Pair[1] ||
|
|
2436
|
+
(MarketData.isPredictionMarketStatic(info) &&
|
|
2437
|
+
(isNaN(idxPriceS2Pair[0]) || idxPriceS2Pair[0] < 1.01 || idxPriceS2Pair[0] > 1.99));
|
|
2433
2438
|
if (info.S3Symbol != "" && idxPriceMap.has(info.S3Symbol)) {
|
|
2434
2439
|
idxPriceS3Pair = idxPriceMap.get(info.S3Symbol)!;
|
|
2435
2440
|
perp.isMarketClosed = perp.isMarketClosed || idxPriceS3Pair[1];
|
|
@@ -2443,7 +2448,7 @@ export default class MarketData extends PerpetualDataHandler {
|
|
|
2443
2448
|
}
|
|
2444
2449
|
perp.collToQuoteIndexPrice = indexS3;
|
|
2445
2450
|
|
|
2446
|
-
const emaKey =
|
|
2451
|
+
const emaKey = indexSymbol + ":ema";
|
|
2447
2452
|
let markPrice: number;
|
|
2448
2453
|
if (idxPriceMap.has(emaKey)) {
|
|
2449
2454
|
let ema: number;
|