@d8x/perpetuals-sdk 2.4.1 → 2.4.3
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.d.ts +1 -1
- package/dist/cjs/d8XMath.js +25 -9
- package/dist/cjs/d8XMath.js.map +1 -1
- package/dist/cjs/marketData.d.ts +10 -3
- package/dist/cjs/marketData.js +13 -5
- package/dist/cjs/marketData.js.map +1 -1
- package/dist/cjs/priceFeeds.js +1 -1
- package/dist/cjs/priceFeeds.js.map +1 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/{cjs/contracts/factories/MockToken__factory.d.ts → esm/contracts/factories/PerpStorage__factory.d.ts} +115 -128
- package/dist/esm/contracts/factories/{MockToken__factory.js → PerpStorage__factory.js} +128 -139
- package/dist/esm/contracts/factories/PerpStorage__factory.js.map +1 -0
- package/dist/esm/d8XMath.d.ts +1 -1
- package/dist/esm/d8XMath.js +25 -9
- package/dist/esm/d8XMath.js.map +1 -1
- package/dist/esm/marketData.d.ts +10 -3
- package/dist/esm/marketData.js +13 -5
- package/dist/esm/marketData.js.map +1 -1
- package/dist/esm/priceFeeds.js +1 -1
- package/dist/esm/priceFeeds.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 +177 -8
- package/doc/marketData.md +18 -3
- package/doc/perpetualDataHandler.md +13 -0
- package/package.json +1 -1
- package/src/d8XMath.ts +26 -8
- package/src/marketData.ts +13 -5
- package/src/priceFeeds.ts +2 -1
- package/src/version.ts +1 -1
- package/dist/cjs/abi/BeaconProxy.json +0 -71
- package/dist/cjs/abi/Maintainer.json +0 -774
- package/dist/cjs/abi/MockToken.json +0 -347
- package/dist/cjs/abi/UUPSUpgradeable.json +0 -104
- package/dist/cjs/abi/WeETH.json +0 -310
- package/dist/cjs/abi-zkevm/LimitOrderBook.json +0 -910
- package/dist/cjs/abi-zkevm/LimitOrderBookFactory.json +0 -236
- package/dist/cjs/contracts/BeaconProxy.d.ts +0 -63
- package/dist/cjs/contracts/BeaconProxy.js +0 -3
- package/dist/cjs/contracts/BeaconProxy.js.map +0 -1
- package/dist/cjs/contracts/Maintainer.d.ts +0 -799
- package/dist/cjs/contracts/Maintainer.js +0 -3
- package/dist/cjs/contracts/Maintainer.js.map +0 -1
- package/dist/cjs/contracts/MockToken.d.ts +0 -263
- package/dist/cjs/contracts/MockToken.js +0 -3
- package/dist/cjs/contracts/MockToken.js.map +0 -1
- package/dist/cjs/contracts/UUPSUpgradeable.d.ts +0 -118
- package/dist/cjs/contracts/UUPSUpgradeable.js +0 -3
- package/dist/cjs/contracts/UUPSUpgradeable.js.map +0 -1
- package/dist/cjs/contracts/WeETH.d.ts +0 -503
- package/dist/cjs/contracts/WeETH.js +0 -3
- package/dist/cjs/contracts/WeETH.js.map +0 -1
- package/dist/cjs/contracts/factories/BeaconProxy__factory.d.ts +0 -61
- package/dist/cjs/contracts/factories/BeaconProxy__factory.js +0 -89
- package/dist/cjs/contracts/factories/BeaconProxy__factory.js.map +0 -1
- package/dist/cjs/contracts/factories/Maintainer__factory.d.ts +0 -609
- package/dist/cjs/contracts/factories/Maintainer__factory.js +0 -792
- package/dist/cjs/contracts/factories/Maintainer__factory.js.map +0 -1
- package/dist/cjs/contracts/factories/MockToken__factory.js +0 -365
- package/dist/cjs/contracts/factories/MockToken__factory.js.map +0 -1
- package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.d.ts +0 -87
- package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.js +0 -122
- package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.js.map +0 -1
- package/dist/cjs/contracts/factories/WeETH__factory.d.ts +0 -545
- package/dist/cjs/contracts/factories/WeETH__factory.js +0 -721
- package/dist/cjs/contracts/factories/WeETH__factory.js.map +0 -1
- package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.d.ts +0 -4136
- package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.js +0 -5324
- package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.js.map +0 -1
- package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.d.ts +0 -189
- package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.js +0 -254
- package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.js.map +0 -1
- package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.d.ts +0 -715
- package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.js +0 -928
- package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.js.map +0 -1
- package/dist/cjs/contracts/factories/lean0/ShareToken__factory.d.ts +0 -344
- package/dist/cjs/contracts/factories/lean0/ShareToken__factory.js +0 -456
- package/dist/cjs/contracts/factories/lean0/ShareToken__factory.js.map +0 -1
- package/dist/cjs/contracts/factories/lean0/index.d.ts +0 -4
- package/dist/cjs/contracts/factories/lean0/index.js +0 -15
- package/dist/cjs/contracts/factories/lean0/index.js.map +0 -1
- package/dist/cjs/contracts/lean0/IPerpetualManager.d.ts +0 -2821
- package/dist/cjs/contracts/lean0/IPerpetualManager.js +0 -3
- package/dist/cjs/contracts/lean0/IPerpetualManager.js.map +0 -1
- package/dist/cjs/contracts/lean0/LimitOrderBook.d.ts +0 -533
- package/dist/cjs/contracts/lean0/LimitOrderBook.js +0 -3
- package/dist/cjs/contracts/lean0/LimitOrderBook.js.map +0 -1
- package/dist/cjs/contracts/lean0/LimitOrderBookFactory.d.ts +0 -210
- package/dist/cjs/contracts/lean0/LimitOrderBookFactory.js +0 -3
- package/dist/cjs/contracts/lean0/LimitOrderBookFactory.js.map +0 -1
- package/dist/cjs/contracts/lean0/ShareToken.d.ts +0 -320
- package/dist/cjs/contracts/lean0/ShareToken.js +0 -3
- package/dist/cjs/contracts/lean0/ShareToken.js.map +0 -1
- package/dist/cjs/contracts/lean0/index.d.ts +0 -4
- package/dist/cjs/contracts/lean0/index.js +0 -3
- package/dist/cjs/contracts/lean0/index.js.map +0 -1
- package/dist/esm/abi/BeaconProxy.json +0 -71
- package/dist/esm/abi/Maintainer.json +0 -774
- package/dist/esm/abi/MockToken.json +0 -347
- package/dist/esm/abi/UUPSUpgradeable.json +0 -104
- package/dist/esm/abi/WeETH.json +0 -310
- package/dist/esm/abi/lean0/IPerpetualManager.json +0 -5306
- package/dist/esm/abi/lean0/LimitOrderBook.json +0 -910
- package/dist/esm/abi/lean0/LimitOrderBookFactory.json +0 -236
- package/dist/esm/abi/lean0/ShareToken.json +0 -438
- package/dist/esm/abi-zkevm/LimitOrderBook.json +0 -910
- package/dist/esm/abi-zkevm/LimitOrderBookFactory.json +0 -236
- package/dist/esm/contracts/BeaconProxy.d.ts +0 -63
- package/dist/esm/contracts/BeaconProxy.js +0 -2
- package/dist/esm/contracts/BeaconProxy.js.map +0 -1
- package/dist/esm/contracts/Maintainer.d.ts +0 -799
- package/dist/esm/contracts/Maintainer.js +0 -2
- package/dist/esm/contracts/Maintainer.js.map +0 -1
- package/dist/esm/contracts/MockToken.d.ts +0 -263
- package/dist/esm/contracts/MockToken.js +0 -2
- package/dist/esm/contracts/MockToken.js.map +0 -1
- package/dist/esm/contracts/UUPSUpgradeable.d.ts +0 -118
- package/dist/esm/contracts/UUPSUpgradeable.js +0 -2
- package/dist/esm/contracts/UUPSUpgradeable.js.map +0 -1
- package/dist/esm/contracts/WeETH.d.ts +0 -503
- package/dist/esm/contracts/WeETH.js +0 -2
- package/dist/esm/contracts/WeETH.js.map +0 -1
- package/dist/esm/contracts/factories/BeaconProxy__factory.d.ts +0 -61
- package/dist/esm/contracts/factories/BeaconProxy__factory.js +0 -85
- package/dist/esm/contracts/factories/BeaconProxy__factory.js.map +0 -1
- package/dist/esm/contracts/factories/Maintainer__factory.d.ts +0 -609
- package/dist/esm/contracts/factories/Maintainer__factory.js +0 -788
- package/dist/esm/contracts/factories/Maintainer__factory.js.map +0 -1
- package/dist/esm/contracts/factories/MockToken__factory.d.ts +0 -273
- package/dist/esm/contracts/factories/MockToken__factory.js.map +0 -1
- package/dist/esm/contracts/factories/UUPSUpgradeable__factory.d.ts +0 -87
- package/dist/esm/contracts/factories/UUPSUpgradeable__factory.js +0 -118
- package/dist/esm/contracts/factories/UUPSUpgradeable__factory.js.map +0 -1
- package/dist/esm/contracts/factories/WeETH__factory.d.ts +0 -545
- package/dist/esm/contracts/factories/WeETH__factory.js +0 -717
- package/dist/esm/contracts/factories/WeETH__factory.js.map +0 -1
- package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.d.ts +0 -4136
- package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.js +0 -5320
- package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.js.map +0 -1
- package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.d.ts +0 -189
- package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.js +0 -250
- package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.js.map +0 -1
- package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.d.ts +0 -715
- package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.js +0 -924
- package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.js.map +0 -1
- package/dist/esm/contracts/factories/lean0/ShareToken__factory.d.ts +0 -344
- package/dist/esm/contracts/factories/lean0/ShareToken__factory.js +0 -452
- package/dist/esm/contracts/factories/lean0/ShareToken__factory.js.map +0 -1
- package/dist/esm/contracts/factories/lean0/index.d.ts +0 -4
- package/dist/esm/contracts/factories/lean0/index.js +0 -8
- package/dist/esm/contracts/factories/lean0/index.js.map +0 -1
- package/dist/esm/contracts/lean0/IPerpetualManager.d.ts +0 -2821
- package/dist/esm/contracts/lean0/IPerpetualManager.js +0 -2
- package/dist/esm/contracts/lean0/IPerpetualManager.js.map +0 -1
- package/dist/esm/contracts/lean0/LimitOrderBook.d.ts +0 -533
- package/dist/esm/contracts/lean0/LimitOrderBook.js +0 -2
- package/dist/esm/contracts/lean0/LimitOrderBook.js.map +0 -1
- package/dist/esm/contracts/lean0/LimitOrderBookFactory.d.ts +0 -210
- package/dist/esm/contracts/lean0/LimitOrderBookFactory.js +0 -2
- package/dist/esm/contracts/lean0/LimitOrderBookFactory.js.map +0 -1
- package/dist/esm/contracts/lean0/ShareToken.d.ts +0 -320
- package/dist/esm/contracts/lean0/ShareToken.js +0 -2
- package/dist/esm/contracts/lean0/ShareToken.js.map +0 -1
- package/dist/esm/contracts/lean0/index.d.ts +0 -4
- package/dist/esm/contracts/lean0/index.js +0 -2
- package/dist/esm/contracts/lean0/index.js.map +0 -1
|
@@ -597,7 +597,7 @@ after a trade of size tradeAmt in prediction markets</p>
|
|
|
597
597
|
<p>Find maximal <em>affordable</em> trade size (short dir=-1 or long dir=1) for prediction
|
|
598
598
|
markets at provided leverage and incorporating the current position
|
|
599
599
|
and wallet balance.
|
|
600
|
-
Factors in lot size and global max short/long</p>
|
|
600
|
+
Factors in lot size and global max short/long, factors in opening/closing position</p>
|
|
601
601
|
|
|
602
602
|
**Kind**: inner method of [<code>d8xMath</code>](#module_d8xMath)
|
|
603
603
|
**Returns**: <p>max <em>signed</em> trade size</p>
|
|
@@ -770,6 +770,7 @@ require gas-payments.</p>
|
|
|
770
770
|
* [.getSettlementTokenDecimalsFromSymbol(symbol)](#PerpetualDataHandler+getSettlementTokenDecimalsFromSymbol) ⇒
|
|
771
771
|
* [.getABI(contract)](#PerpetualDataHandler+getABI) ⇒
|
|
772
772
|
* [.isPredictionMarket(symbol)](#PerpetualDataHandler+isPredictionMarket) ⇒
|
|
773
|
+
* [.isLowLiquidityMarket(symbol)](#PerpetualDataHandler+isLowLiquidityMarket) ⇒
|
|
773
774
|
|
|
774
775
|
<a name="new_AccountTrade_new"></a>
|
|
775
776
|
|
|
@@ -1460,6 +1461,19 @@ main();
|
|
|
1460
1461
|
| --- | --- |
|
|
1461
1462
|
| symbol | <p>perpetual symbol of the form TRUMP24-USD-USDC</p> |
|
|
1462
1463
|
|
|
1464
|
+
<a name="PerpetualDataHandler+isLowLiquidityMarket"></a>
|
|
1465
|
+
|
|
1466
|
+
### accountTrade.isLowLiquidityMarket(symbol) ⇒
|
|
1467
|
+
<p>Determines whether a given perpetual represents a low-liquidity market</p>
|
|
1468
|
+
|
|
1469
|
+
**Kind**: instance method of [<code>AccountTrade</code>](#AccountTrade)
|
|
1470
|
+
**Overrides**: [<code>isLowLiquidityMarket</code>](#PerpetualDataHandler+isLowLiquidityMarket)
|
|
1471
|
+
**Returns**: <p>True if this is a low-liquidity market</p>
|
|
1472
|
+
|
|
1473
|
+
| Param | Description |
|
|
1474
|
+
| --- | --- |
|
|
1475
|
+
| symbol | <p>perpetual symbol of the form DIRAC-HONEY-USDC</p> |
|
|
1476
|
+
|
|
1463
1477
|
<a name="BrokerTool"></a>
|
|
1464
1478
|
|
|
1465
1479
|
## BrokerTool ⇐ [<code>WriteAccessHandler</code>](#WriteAccessHandler)
|
|
@@ -1516,6 +1530,7 @@ require gas-payments.</p>
|
|
|
1516
1530
|
* [.getSettlementTokenDecimalsFromSymbol(symbol)](#PerpetualDataHandler+getSettlementTokenDecimalsFromSymbol) ⇒
|
|
1517
1531
|
* [.getABI(contract)](#PerpetualDataHandler+getABI) ⇒
|
|
1518
1532
|
* [.isPredictionMarket(symbol)](#PerpetualDataHandler+isPredictionMarket) ⇒
|
|
1533
|
+
* [.isLowLiquidityMarket(symbol)](#PerpetualDataHandler+isLowLiquidityMarket) ⇒
|
|
1519
1534
|
|
|
1520
1535
|
<a name="new_BrokerTool_new"></a>
|
|
1521
1536
|
|
|
@@ -2390,6 +2405,19 @@ main();
|
|
|
2390
2405
|
| --- | --- |
|
|
2391
2406
|
| symbol | <p>perpetual symbol of the form TRUMP24-USD-USDC</p> |
|
|
2392
2407
|
|
|
2408
|
+
<a name="PerpetualDataHandler+isLowLiquidityMarket"></a>
|
|
2409
|
+
|
|
2410
|
+
### brokerTool.isLowLiquidityMarket(symbol) ⇒
|
|
2411
|
+
<p>Determines whether a given perpetual represents a low-liquidity market</p>
|
|
2412
|
+
|
|
2413
|
+
**Kind**: instance method of [<code>BrokerTool</code>](#BrokerTool)
|
|
2414
|
+
**Overrides**: [<code>isLowLiquidityMarket</code>](#PerpetualDataHandler+isLowLiquidityMarket)
|
|
2415
|
+
**Returns**: <p>True if this is a low-liquidity market</p>
|
|
2416
|
+
|
|
2417
|
+
| Param | Description |
|
|
2418
|
+
| --- | --- |
|
|
2419
|
+
| symbol | <p>perpetual symbol of the form DIRAC-HONEY-USDC</p> |
|
|
2420
|
+
|
|
2393
2421
|
<a name="LiquidatorTool"></a>
|
|
2394
2422
|
|
|
2395
2423
|
## LiquidatorTool ⇐ [<code>WriteAccessHandler</code>](#WriteAccessHandler)
|
|
@@ -2438,6 +2466,7 @@ and executes smart-contract interactions that require gas-payments.</p>
|
|
|
2438
2466
|
* [.getSettlementTokenDecimalsFromSymbol(symbol)](#PerpetualDataHandler+getSettlementTokenDecimalsFromSymbol) ⇒
|
|
2439
2467
|
* [.getABI(contract)](#PerpetualDataHandler+getABI) ⇒
|
|
2440
2468
|
* [.isPredictionMarket(symbol)](#PerpetualDataHandler+isPredictionMarket) ⇒
|
|
2469
|
+
* [.isLowLiquidityMarket(symbol)](#PerpetualDataHandler+isLowLiquidityMarket) ⇒
|
|
2441
2470
|
|
|
2442
2471
|
<a name="new_LiquidatorTool_new"></a>
|
|
2443
2472
|
|
|
@@ -3070,6 +3099,19 @@ main();
|
|
|
3070
3099
|
| --- | --- |
|
|
3071
3100
|
| symbol | <p>perpetual symbol of the form TRUMP24-USD-USDC</p> |
|
|
3072
3101
|
|
|
3102
|
+
<a name="PerpetualDataHandler+isLowLiquidityMarket"></a>
|
|
3103
|
+
|
|
3104
|
+
### liquidatorTool.isLowLiquidityMarket(symbol) ⇒
|
|
3105
|
+
<p>Determines whether a given perpetual represents a low-liquidity market</p>
|
|
3106
|
+
|
|
3107
|
+
**Kind**: instance method of [<code>LiquidatorTool</code>](#LiquidatorTool)
|
|
3108
|
+
**Overrides**: [<code>isLowLiquidityMarket</code>](#PerpetualDataHandler+isLowLiquidityMarket)
|
|
3109
|
+
**Returns**: <p>True if this is a low-liquidity market</p>
|
|
3110
|
+
|
|
3111
|
+
| Param | Description |
|
|
3112
|
+
| --- | --- |
|
|
3113
|
+
| symbol | <p>perpetual symbol of the form DIRAC-HONEY-USDC</p> |
|
|
3114
|
+
|
|
3073
3115
|
<a name="LiquidityProviderTool"></a>
|
|
3074
3116
|
|
|
3075
3117
|
## LiquidityProviderTool ⇐ [<code>WriteAccessHandler</code>](#WriteAccessHandler)
|
|
@@ -3116,6 +3158,7 @@ smart-contract interactions that require gas-payments.</p>
|
|
|
3116
3158
|
* [.getSettlementTokenDecimalsFromSymbol(symbol)](#PerpetualDataHandler+getSettlementTokenDecimalsFromSymbol) ⇒
|
|
3117
3159
|
* [.getABI(contract)](#PerpetualDataHandler+getABI) ⇒
|
|
3118
3160
|
* [.isPredictionMarket(symbol)](#PerpetualDataHandler+isPredictionMarket) ⇒
|
|
3161
|
+
* [.isLowLiquidityMarket(symbol)](#PerpetualDataHandler+isLowLiquidityMarket) ⇒
|
|
3119
3162
|
|
|
3120
3163
|
<a name="new_LiquidityProviderTool_new"></a>
|
|
3121
3164
|
|
|
@@ -3687,6 +3730,19 @@ main();
|
|
|
3687
3730
|
| --- | --- |
|
|
3688
3731
|
| symbol | <p>perpetual symbol of the form TRUMP24-USD-USDC</p> |
|
|
3689
3732
|
|
|
3733
|
+
<a name="PerpetualDataHandler+isLowLiquidityMarket"></a>
|
|
3734
|
+
|
|
3735
|
+
### liquidityProviderTool.isLowLiquidityMarket(symbol) ⇒
|
|
3736
|
+
<p>Determines whether a given perpetual represents a low-liquidity market</p>
|
|
3737
|
+
|
|
3738
|
+
**Kind**: instance method of [<code>LiquidityProviderTool</code>](#LiquidityProviderTool)
|
|
3739
|
+
**Overrides**: [<code>isLowLiquidityMarket</code>](#PerpetualDataHandler+isLowLiquidityMarket)
|
|
3740
|
+
**Returns**: <p>True if this is a low-liquidity market</p>
|
|
3741
|
+
|
|
3742
|
+
| Param | Description |
|
|
3743
|
+
| --- | --- |
|
|
3744
|
+
| symbol | <p>perpetual symbol of the form DIRAC-HONEY-USDC</p> |
|
|
3745
|
+
|
|
3690
3746
|
<a name="MarketData"></a>
|
|
3691
3747
|
|
|
3692
3748
|
## MarketData ⇐ [<code>PerpetualDataHandler</code>](#PerpetualDataHandler)
|
|
@@ -3717,6 +3773,7 @@ No gas required for the queries here.</p>
|
|
|
3717
3773
|
* [.maxOrderSizeForTrader(traderAddr, symbol)](#MarketData+maxOrderSizeForTrader) ⇒
|
|
3718
3774
|
* [.pmMaxOrderSizeForTrader(traderAddr, symbol, overrides)](#MarketData+pmMaxOrderSizeForTrader) ⇒
|
|
3719
3775
|
* [.getMaxShortLongTrade(perpId, currentTraderPos, overrides)](#MarketData+getMaxShortLongTrade) ⇒
|
|
3776
|
+
* [.rmMaxOrderSizeForTrader(traderAddr, symbol, overrides)](#MarketData+rmMaxOrderSizeForTrader) ⇒
|
|
3720
3777
|
* [.maxSignedPosition(side, symbol)](#MarketData+maxSignedPosition) ⇒ <code>number</code>
|
|
3721
3778
|
* [.getOraclePrice(base, quote)](#MarketData+getOraclePrice) ⇒ <code>number</code>
|
|
3722
3779
|
* [.getOrderStatus(symbol, orderId, overrides)](#MarketData+getOrderStatus) ⇒
|
|
@@ -3761,6 +3818,7 @@ No gas required for the queries here.</p>
|
|
|
3761
3818
|
* [.getSettlementTokenDecimalsFromSymbol(symbol)](#PerpetualDataHandler+getSettlementTokenDecimalsFromSymbol) ⇒
|
|
3762
3819
|
* [.getABI(contract)](#PerpetualDataHandler+getABI) ⇒
|
|
3763
3820
|
* [.isPredictionMarket(symbol)](#PerpetualDataHandler+isPredictionMarket) ⇒
|
|
3821
|
+
* [.isLowLiquidityMarket(symbol)](#PerpetualDataHandler+isLowLiquidityMarket) ⇒
|
|
3764
3822
|
* _static_
|
|
3765
3823
|
* [.exchangeFeePrdMkts(maxMaintMgnRate, Sm, tradeAmtBC, tradeMgnRate)](#MarketData.exchangeFeePrdMkts) ⇒
|
|
3766
3824
|
|
|
@@ -4115,9 +4173,9 @@ main();
|
|
|
4115
4173
|
<a name="MarketData+maxOrderSizeForTrader"></a>
|
|
4116
4174
|
|
|
4117
4175
|
### marketData.maxOrderSizeForTrader(traderAddr, symbol) ⇒
|
|
4118
|
-
<p>Gets the maximal order sizes to open positions
|
|
4176
|
+
<p>Gets the maximal order sizes to open/close/flip positions, both long and short,
|
|
4119
4177
|
considering the existing position, state of the perpetual
|
|
4120
|
-
Accounts for user's wallet balance.</p>
|
|
4178
|
+
Accounts for user's wallet balance only in rmMaxOrderSizeForTrader case.</p>
|
|
4121
4179
|
|
|
4122
4180
|
**Kind**: instance method of [<code>MarketData</code>](#MarketData)
|
|
4123
4181
|
**Returns**: <p>Maximal buy and sell trade sizes (positive)</p>
|
|
@@ -4147,7 +4205,7 @@ main();
|
|
|
4147
4205
|
### marketData.pmMaxOrderSizeForTrader(traderAddr, symbol, overrides) ⇒
|
|
4148
4206
|
<p>pmMaxOrderSizeForTrader returns the max order size for the
|
|
4149
4207
|
trader that is possible from AMM perspective (agnostic about wallet
|
|
4150
|
-
balance and leverage)</p>
|
|
4208
|
+
balance and leverage, also correct if trader is shrinking their position)</p>
|
|
4151
4209
|
|
|
4152
4210
|
**Kind**: instance method of [<code>MarketData</code>](#MarketData)
|
|
4153
4211
|
**Returns**: <p>buy: number; sell: number absolute</p>
|
|
@@ -4173,6 +4231,20 @@ that has a given notional (in ABDK format) in the perpetual, ignoring the trader
|
|
|
4173
4231
|
| currentTraderPos | <p>ABDK64x64 signed notional position of trader</p> |
|
|
4174
4232
|
| overrides | |
|
|
4175
4233
|
|
|
4234
|
+
<a name="MarketData+rmMaxOrderSizeForTrader"></a>
|
|
4235
|
+
|
|
4236
|
+
### marketData.rmMaxOrderSizeForTrader(traderAddr, symbol, overrides) ⇒
|
|
4237
|
+
<p>Returns the maximal order size. Also applies to closing positions.</p>
|
|
4238
|
+
|
|
4239
|
+
**Kind**: instance method of [<code>MarketData</code>](#MarketData)
|
|
4240
|
+
**Returns**: <p>max buy and sell order size in absolute terms</p>
|
|
4241
|
+
|
|
4242
|
+
| Param | Description |
|
|
4243
|
+
| --- | --- |
|
|
4244
|
+
| traderAddr | <p>trader addr to get their position</p> |
|
|
4245
|
+
| symbol | <p>symbol we are trading</p> |
|
|
4246
|
+
| overrides | |
|
|
4247
|
+
|
|
4176
4248
|
<a name="MarketData+maxSignedPosition"></a>
|
|
4177
4249
|
|
|
4178
4250
|
### marketData.maxSignedPosition(side, symbol) ⇒ <code>number</code>
|
|
@@ -4945,6 +5017,19 @@ main();
|
|
|
4945
5017
|
| --- | --- |
|
|
4946
5018
|
| symbol | <p>perpetual symbol of the form TRUMP24-USD-USDC</p> |
|
|
4947
5019
|
|
|
5020
|
+
<a name="PerpetualDataHandler+isLowLiquidityMarket"></a>
|
|
5021
|
+
|
|
5022
|
+
### marketData.isLowLiquidityMarket(symbol) ⇒
|
|
5023
|
+
<p>Determines whether a given perpetual represents a low-liquidity market</p>
|
|
5024
|
+
|
|
5025
|
+
**Kind**: instance method of [<code>MarketData</code>](#MarketData)
|
|
5026
|
+
**Overrides**: [<code>isLowLiquidityMarket</code>](#PerpetualDataHandler+isLowLiquidityMarket)
|
|
5027
|
+
**Returns**: <p>True if this is a low-liquidity market</p>
|
|
5028
|
+
|
|
5029
|
+
| Param | Description |
|
|
5030
|
+
| --- | --- |
|
|
5031
|
+
| symbol | <p>perpetual symbol of the form DIRAC-HONEY-USDC</p> |
|
|
5032
|
+
|
|
4948
5033
|
<a name="MarketData.exchangeFeePrdMkts"></a>
|
|
4949
5034
|
|
|
4950
5035
|
### MarketData.exchangeFeePrdMkts(maxMaintMgnRate, Sm, tradeAmtBC, tradeMgnRate) ⇒
|
|
@@ -5029,6 +5114,7 @@ gas-payments.</p>
|
|
|
5029
5114
|
* [.getSettlementTokenDecimalsFromSymbol(symbol)](#PerpetualDataHandler+getSettlementTokenDecimalsFromSymbol) ⇒
|
|
5030
5115
|
* [.getABI(contract)](#PerpetualDataHandler+getABI) ⇒
|
|
5031
5116
|
* [.isPredictionMarket(symbol)](#PerpetualDataHandler+isPredictionMarket) ⇒
|
|
5117
|
+
* [.isLowLiquidityMarket(symbol)](#PerpetualDataHandler+isLowLiquidityMarket) ⇒
|
|
5032
5118
|
|
|
5033
5119
|
<a name="new_OrderExecutorTool_new"></a>
|
|
5034
5120
|
|
|
@@ -5707,6 +5793,19 @@ main();
|
|
|
5707
5793
|
| --- | --- |
|
|
5708
5794
|
| symbol | <p>perpetual symbol of the form TRUMP24-USD-USDC</p> |
|
|
5709
5795
|
|
|
5796
|
+
<a name="PerpetualDataHandler+isLowLiquidityMarket"></a>
|
|
5797
|
+
|
|
5798
|
+
### orderExecutorTool.isLowLiquidityMarket(symbol) ⇒
|
|
5799
|
+
<p>Determines whether a given perpetual represents a low-liquidity market</p>
|
|
5800
|
+
|
|
5801
|
+
**Kind**: instance method of [<code>OrderExecutorTool</code>](#OrderExecutorTool)
|
|
5802
|
+
**Overrides**: [<code>isLowLiquidityMarket</code>](#PerpetualDataHandler+isLowLiquidityMarket)
|
|
5803
|
+
**Returns**: <p>True if this is a low-liquidity market</p>
|
|
5804
|
+
|
|
5805
|
+
| Param | Description |
|
|
5806
|
+
| --- | --- |
|
|
5807
|
+
| symbol | <p>perpetual symbol of the form DIRAC-HONEY-USDC</p> |
|
|
5808
|
+
|
|
5710
5809
|
<a name="PerpetualDataHandler"></a>
|
|
5711
5810
|
|
|
5712
5811
|
## PerpetualDataHandler
|
|
@@ -5746,6 +5845,7 @@ common data and chain operations.</p>
|
|
|
5746
5845
|
* [.getSettlementTokenDecimalsFromSymbol(symbol)](#PerpetualDataHandler+getSettlementTokenDecimalsFromSymbol) ⇒
|
|
5747
5846
|
* [.getABI(contract)](#PerpetualDataHandler+getABI) ⇒
|
|
5748
5847
|
* [.isPredictionMarket(symbol)](#PerpetualDataHandler+isPredictionMarket) ⇒
|
|
5848
|
+
* [.isLowLiquidityMarket(symbol)](#PerpetualDataHandler+isLowLiquidityMarket) ⇒
|
|
5749
5849
|
* _static_
|
|
5750
5850
|
* [.getPerpetualStaticInfo(_proxyContract, nestedPerpetualIDs, symbolList)](#PerpetualDataHandler.getPerpetualStaticInfo) ⇒
|
|
5751
5851
|
* [.nestedIDsToChunks(chunkSize, nestedIDs)](#PerpetualDataHandler.nestedIDsToChunks) ⇒ <code>Array.<Array.<number>></code>
|
|
@@ -6157,6 +6257,18 @@ main();
|
|
|
6157
6257
|
| --- | --- |
|
|
6158
6258
|
| symbol | <p>perpetual symbol of the form TRUMP24-USD-USDC</p> |
|
|
6159
6259
|
|
|
6260
|
+
<a name="PerpetualDataHandler+isLowLiquidityMarket"></a>
|
|
6261
|
+
|
|
6262
|
+
### perpetualDataHandler.isLowLiquidityMarket(symbol) ⇒
|
|
6263
|
+
<p>Determines whether a given perpetual represents a low-liquidity market</p>
|
|
6264
|
+
|
|
6265
|
+
**Kind**: instance method of [<code>PerpetualDataHandler</code>](#PerpetualDataHandler)
|
|
6266
|
+
**Returns**: <p>True if this is a low-liquidity market</p>
|
|
6267
|
+
|
|
6268
|
+
| Param | Description |
|
|
6269
|
+
| --- | --- |
|
|
6270
|
+
| symbol | <p>perpetual symbol of the form DIRAC-HONEY-USDC</p> |
|
|
6271
|
+
|
|
6160
6272
|
<a name="PerpetualDataHandler.getPerpetualStaticInfo"></a>
|
|
6161
6273
|
|
|
6162
6274
|
### PerpetualDataHandler.getPerpetualStaticInfo(_proxyContract, nestedPerpetualIDs, symbolList) ⇒
|
|
@@ -6805,6 +6917,7 @@ trader liquidations, trade executions, change of trader margin amount.</p>
|
|
|
6805
6917
|
* [.triangulatePricesFromFeedPrices(symbols, feeds)](#PriceFeeds+triangulatePricesFromFeedPrices) ⇒
|
|
6806
6918
|
* [.fetchVAAQuery(query)](#PriceFeeds+fetchVAAQuery) ⇒
|
|
6807
6919
|
* [.fetchPriceQuery(query)](#PriceFeeds+fetchPriceQuery) ⇒
|
|
6920
|
+
* [.fetchFullPriceQuery(query)](#PriceFeeds+fetchFullPriceQuery) ⇒
|
|
6808
6921
|
* _static_
|
|
6809
6922
|
* [.trimEndpoint(endp)](#PriceFeeds.trimEndpoint) ⇒
|
|
6810
6923
|
* [._selectConfig(configs, network)](#PriceFeeds._selectConfig) ⇒
|
|
@@ -6972,7 +7085,19 @@ for the smart contracts</p>
|
|
|
6972
7085
|
<p>Queries the REST endpoint and returns parsed price data</p>
|
|
6973
7086
|
|
|
6974
7087
|
**Kind**: instance method of [<code>PriceFeeds</code>](#PriceFeeds)
|
|
6975
|
-
**Returns**: <p>vaa and price info</p>
|
|
7088
|
+
**Returns**: <p>array of vaa and price info</p>
|
|
7089
|
+
|
|
7090
|
+
| Param | Description |
|
|
7091
|
+
| --- | --- |
|
|
7092
|
+
| query | <p>query price-info from endpoint</p> |
|
|
7093
|
+
|
|
7094
|
+
<a name="PriceFeeds+fetchFullPriceQuery"></a>
|
|
7095
|
+
|
|
7096
|
+
### priceFeeds.fetchFullPriceQuery(query) ⇒
|
|
7097
|
+
<p>Queries the REST endpoint and returns parsed price data</p>
|
|
7098
|
+
|
|
7099
|
+
**Kind**: instance method of [<code>PriceFeeds</code>](#PriceFeeds)
|
|
7100
|
+
**Returns**: <p>object with vaa and price info (both spot and ema)</p>
|
|
6976
7101
|
|
|
6977
7102
|
| Param | Description |
|
|
6978
7103
|
| --- | --- |
|
|
@@ -7184,6 +7309,7 @@ so that signatures can be handled in frontend via wallet</p>
|
|
|
7184
7309
|
* [.maxOrderSizeForTrader(traderAddr, symbol)](#MarketData+maxOrderSizeForTrader) ⇒
|
|
7185
7310
|
* [.pmMaxOrderSizeForTrader(traderAddr, symbol, overrides)](#MarketData+pmMaxOrderSizeForTrader) ⇒
|
|
7186
7311
|
* [.getMaxShortLongTrade(perpId, currentTraderPos, overrides)](#MarketData+getMaxShortLongTrade) ⇒
|
|
7312
|
+
* [.rmMaxOrderSizeForTrader(traderAddr, symbol, overrides)](#MarketData+rmMaxOrderSizeForTrader) ⇒
|
|
7187
7313
|
* [.maxSignedPosition(side, symbol)](#MarketData+maxSignedPosition) ⇒ <code>number</code>
|
|
7188
7314
|
* [.getOraclePrice(base, quote)](#MarketData+getOraclePrice) ⇒ <code>number</code>
|
|
7189
7315
|
* [.getOrderStatus(symbol, orderId, overrides)](#MarketData+getOrderStatus) ⇒
|
|
@@ -7227,6 +7353,7 @@ so that signatures can be handled in frontend via wallet</p>
|
|
|
7227
7353
|
* [.getSettlementTokenDecimalsFromSymbol(symbol)](#PerpetualDataHandler+getSettlementTokenDecimalsFromSymbol) ⇒
|
|
7228
7354
|
* [.getABI(contract)](#PerpetualDataHandler+getABI) ⇒
|
|
7229
7355
|
* [.isPredictionMarket(symbol)](#PerpetualDataHandler+isPredictionMarket) ⇒
|
|
7356
|
+
* [.isLowLiquidityMarket(symbol)](#PerpetualDataHandler+isLowLiquidityMarket) ⇒
|
|
7230
7357
|
* _static_
|
|
7231
7358
|
* [.chainOrders(orders, ids)](#TraderInterface.chainOrders) ⇒
|
|
7232
7359
|
|
|
@@ -7834,9 +7961,9 @@ main();
|
|
|
7834
7961
|
<a name="MarketData+maxOrderSizeForTrader"></a>
|
|
7835
7962
|
|
|
7836
7963
|
### traderInterface.maxOrderSizeForTrader(traderAddr, symbol) ⇒
|
|
7837
|
-
<p>Gets the maximal order sizes to open positions
|
|
7964
|
+
<p>Gets the maximal order sizes to open/close/flip positions, both long and short,
|
|
7838
7965
|
considering the existing position, state of the perpetual
|
|
7839
|
-
Accounts for user's wallet balance.</p>
|
|
7966
|
+
Accounts for user's wallet balance only in rmMaxOrderSizeForTrader case.</p>
|
|
7840
7967
|
|
|
7841
7968
|
**Kind**: instance method of [<code>TraderInterface</code>](#TraderInterface)
|
|
7842
7969
|
**Overrides**: [<code>maxOrderSizeForTrader</code>](#MarketData+maxOrderSizeForTrader)
|
|
@@ -7867,7 +7994,7 @@ main();
|
|
|
7867
7994
|
### traderInterface.pmMaxOrderSizeForTrader(traderAddr, symbol, overrides) ⇒
|
|
7868
7995
|
<p>pmMaxOrderSizeForTrader returns the max order size for the
|
|
7869
7996
|
trader that is possible from AMM perspective (agnostic about wallet
|
|
7870
|
-
balance and leverage)</p>
|
|
7997
|
+
balance and leverage, also correct if trader is shrinking their position)</p>
|
|
7871
7998
|
|
|
7872
7999
|
**Kind**: instance method of [<code>TraderInterface</code>](#TraderInterface)
|
|
7873
8000
|
**Overrides**: [<code>pmMaxOrderSizeForTrader</code>](#MarketData+pmMaxOrderSizeForTrader)
|
|
@@ -7895,6 +8022,21 @@ that has a given notional (in ABDK format) in the perpetual, ignoring the trader
|
|
|
7895
8022
|
| currentTraderPos | <p>ABDK64x64 signed notional position of trader</p> |
|
|
7896
8023
|
| overrides | |
|
|
7897
8024
|
|
|
8025
|
+
<a name="MarketData+rmMaxOrderSizeForTrader"></a>
|
|
8026
|
+
|
|
8027
|
+
### traderInterface.rmMaxOrderSizeForTrader(traderAddr, symbol, overrides) ⇒
|
|
8028
|
+
<p>Returns the maximal order size. Also applies to closing positions.</p>
|
|
8029
|
+
|
|
8030
|
+
**Kind**: instance method of [<code>TraderInterface</code>](#TraderInterface)
|
|
8031
|
+
**Overrides**: [<code>rmMaxOrderSizeForTrader</code>](#MarketData+rmMaxOrderSizeForTrader)
|
|
8032
|
+
**Returns**: <p>max buy and sell order size in absolute terms</p>
|
|
8033
|
+
|
|
8034
|
+
| Param | Description |
|
|
8035
|
+
| --- | --- |
|
|
8036
|
+
| traderAddr | <p>trader addr to get their position</p> |
|
|
8037
|
+
| symbol | <p>symbol we are trading</p> |
|
|
8038
|
+
| overrides | |
|
|
8039
|
+
|
|
7898
8040
|
<a name="MarketData+maxSignedPosition"></a>
|
|
7899
8041
|
|
|
7900
8042
|
### traderInterface.maxSignedPosition(side, symbol) ⇒ <code>number</code>
|
|
@@ -8670,6 +8812,19 @@ main();
|
|
|
8670
8812
|
| --- | --- |
|
|
8671
8813
|
| symbol | <p>perpetual symbol of the form TRUMP24-USD-USDC</p> |
|
|
8672
8814
|
|
|
8815
|
+
<a name="PerpetualDataHandler+isLowLiquidityMarket"></a>
|
|
8816
|
+
|
|
8817
|
+
### traderInterface.isLowLiquidityMarket(symbol) ⇒
|
|
8818
|
+
<p>Determines whether a given perpetual represents a low-liquidity market</p>
|
|
8819
|
+
|
|
8820
|
+
**Kind**: instance method of [<code>TraderInterface</code>](#TraderInterface)
|
|
8821
|
+
**Overrides**: [<code>isLowLiquidityMarket</code>](#PerpetualDataHandler+isLowLiquidityMarket)
|
|
8822
|
+
**Returns**: <p>True if this is a low-liquidity market</p>
|
|
8823
|
+
|
|
8824
|
+
| Param | Description |
|
|
8825
|
+
| --- | --- |
|
|
8826
|
+
| symbol | <p>perpetual symbol of the form DIRAC-HONEY-USDC</p> |
|
|
8827
|
+
|
|
8673
8828
|
<a name="TraderInterface.chainOrders"></a>
|
|
8674
8829
|
|
|
8675
8830
|
### TraderInterface.chainOrders(orders, ids) ⇒
|
|
@@ -8729,6 +8884,7 @@ require gas-payments.</p>
|
|
|
8729
8884
|
* [.getSettlementTokenDecimalsFromSymbol(symbol)](#PerpetualDataHandler+getSettlementTokenDecimalsFromSymbol) ⇒
|
|
8730
8885
|
* [.getABI(contract)](#PerpetualDataHandler+getABI) ⇒
|
|
8731
8886
|
* [.isPredictionMarket(symbol)](#PerpetualDataHandler+isPredictionMarket) ⇒
|
|
8887
|
+
* [.isLowLiquidityMarket(symbol)](#PerpetualDataHandler+isLowLiquidityMarket) ⇒
|
|
8732
8888
|
|
|
8733
8889
|
<a name="new_WriteAccessHandler_new"></a>
|
|
8734
8890
|
|
|
@@ -9190,6 +9346,19 @@ main();
|
|
|
9190
9346
|
| --- | --- |
|
|
9191
9347
|
| symbol | <p>perpetual symbol of the form TRUMP24-USD-USDC</p> |
|
|
9192
9348
|
|
|
9349
|
+
<a name="PerpetualDataHandler+isLowLiquidityMarket"></a>
|
|
9350
|
+
|
|
9351
|
+
### writeAccessHandler.isLowLiquidityMarket(symbol) ⇒
|
|
9352
|
+
<p>Determines whether a given perpetual represents a low-liquidity market</p>
|
|
9353
|
+
|
|
9354
|
+
**Kind**: instance method of [<code>WriteAccessHandler</code>](#WriteAccessHandler)
|
|
9355
|
+
**Overrides**: [<code>isLowLiquidityMarket</code>](#PerpetualDataHandler+isLowLiquidityMarket)
|
|
9356
|
+
**Returns**: <p>True if this is a low-liquidity market</p>
|
|
9357
|
+
|
|
9358
|
+
| Param | Description |
|
|
9359
|
+
| --- | --- |
|
|
9360
|
+
| symbol | <p>perpetual symbol of the form DIRAC-HONEY-USDC</p> |
|
|
9361
|
+
|
|
9193
9362
|
<a name="default"></a>
|
|
9194
9363
|
|
|
9195
9364
|
## default ⇒
|
package/doc/marketData.md
CHANGED
|
@@ -28,6 +28,7 @@ No gas required for the queries here.</p>
|
|
|
28
28
|
* [.maxOrderSizeForTrader(traderAddr, symbol)](#MarketData+maxOrderSizeForTrader) ⇒
|
|
29
29
|
* [.pmMaxOrderSizeForTrader(traderAddr, symbol, overrides)](#MarketData+pmMaxOrderSizeForTrader) ⇒
|
|
30
30
|
* [.getMaxShortLongTrade(perpId, currentTraderPos, overrides)](#MarketData+getMaxShortLongTrade) ⇒
|
|
31
|
+
* [.rmMaxOrderSizeForTrader(traderAddr, symbol, overrides)](#MarketData+rmMaxOrderSizeForTrader) ⇒
|
|
31
32
|
* [.maxSignedPosition(side, symbol)](#MarketData+maxSignedPosition) ⇒ <code>number</code>
|
|
32
33
|
* [.getOraclePrice(base, quote)](#MarketData+getOraclePrice) ⇒ <code>number</code>
|
|
33
34
|
* [.getOrderStatus(symbol, orderId, overrides)](#MarketData+getOrderStatus) ⇒
|
|
@@ -398,9 +399,9 @@ main();
|
|
|
398
399
|
<a name="MarketData+maxOrderSizeForTrader"></a>
|
|
399
400
|
|
|
400
401
|
### marketData.maxOrderSizeForTrader(traderAddr, symbol) ⇒
|
|
401
|
-
<p>Gets the maximal order sizes to open positions
|
|
402
|
+
<p>Gets the maximal order sizes to open/close/flip positions, both long and short,
|
|
402
403
|
considering the existing position, state of the perpetual
|
|
403
|
-
Accounts for user's wallet balance.</p>
|
|
404
|
+
Accounts for user's wallet balance only in rmMaxOrderSizeForTrader case.</p>
|
|
404
405
|
|
|
405
406
|
**Kind**: instance method of [<code>MarketData</code>](#MarketData)
|
|
406
407
|
**Returns**: <p>Maximal buy and sell trade sizes (positive)</p>
|
|
@@ -430,7 +431,7 @@ main();
|
|
|
430
431
|
### marketData.pmMaxOrderSizeForTrader(traderAddr, symbol, overrides) ⇒
|
|
431
432
|
<p>pmMaxOrderSizeForTrader returns the max order size for the
|
|
432
433
|
trader that is possible from AMM perspective (agnostic about wallet
|
|
433
|
-
balance and leverage)</p>
|
|
434
|
+
balance and leverage, also correct if trader is shrinking their position)</p>
|
|
434
435
|
|
|
435
436
|
**Kind**: instance method of [<code>MarketData</code>](#MarketData)
|
|
436
437
|
**Returns**: <p>buy: number; sell: number absolute</p>
|
|
@@ -456,6 +457,20 @@ that has a given notional (in ABDK format) in the perpetual, ignoring the trader
|
|
|
456
457
|
| currentTraderPos | <p>ABDK64x64 signed notional position of trader</p> |
|
|
457
458
|
| overrides | |
|
|
458
459
|
|
|
460
|
+
<a name="MarketData+rmMaxOrderSizeForTrader"></a>
|
|
461
|
+
|
|
462
|
+
### marketData.rmMaxOrderSizeForTrader(traderAddr, symbol, overrides) ⇒
|
|
463
|
+
<p>Returns the maximal order size. Also applies to closing positions.</p>
|
|
464
|
+
|
|
465
|
+
**Kind**: instance method of [<code>MarketData</code>](#MarketData)
|
|
466
|
+
**Returns**: <p>max buy and sell order size in absolute terms</p>
|
|
467
|
+
|
|
468
|
+
| Param | Description |
|
|
469
|
+
| --- | --- |
|
|
470
|
+
| traderAddr | <p>trader addr to get their position</p> |
|
|
471
|
+
| symbol | <p>symbol we are trading</p> |
|
|
472
|
+
| overrides | |
|
|
473
|
+
|
|
459
474
|
<a name="MarketData+maxSignedPosition"></a>
|
|
460
475
|
|
|
461
476
|
### marketData.maxSignedPosition(side, symbol) ⇒ <code>number</code>
|
|
@@ -37,6 +37,7 @@ common data and chain operations.</p>
|
|
|
37
37
|
* [.getSettlementTokenDecimalsFromSymbol(symbol)](#PerpetualDataHandler+getSettlementTokenDecimalsFromSymbol) ⇒
|
|
38
38
|
* [.getABI(contract)](#PerpetualDataHandler+getABI) ⇒
|
|
39
39
|
* [.isPredictionMarket(symbol)](#PerpetualDataHandler+isPredictionMarket) ⇒
|
|
40
|
+
* [.isLowLiquidityMarket(symbol)](#PerpetualDataHandler+isLowLiquidityMarket) ⇒
|
|
40
41
|
* _static_
|
|
41
42
|
* [.getPerpetualStaticInfo(_proxyContract, nestedPerpetualIDs, symbolList)](#PerpetualDataHandler.getPerpetualStaticInfo) ⇒
|
|
42
43
|
* [.nestedIDsToChunks(chunkSize, nestedIDs)](#PerpetualDataHandler.nestedIDsToChunks) ⇒ <code>Array.<Array.<number>></code>
|
|
@@ -448,6 +449,18 @@ main();
|
|
|
448
449
|
| --- | --- |
|
|
449
450
|
| symbol | <p>perpetual symbol of the form TRUMP24-USD-USDC</p> |
|
|
450
451
|
|
|
452
|
+
<a name="PerpetualDataHandler+isLowLiquidityMarket"></a>
|
|
453
|
+
|
|
454
|
+
### perpetualDataHandler.isLowLiquidityMarket(symbol) ⇒
|
|
455
|
+
<p>Determines whether a given perpetual represents a low-liquidity market</p>
|
|
456
|
+
|
|
457
|
+
**Kind**: instance method of [<code>PerpetualDataHandler</code>](#PerpetualDataHandler)
|
|
458
|
+
**Returns**: <p>True if this is a low-liquidity market</p>
|
|
459
|
+
|
|
460
|
+
| Param | Description |
|
|
461
|
+
| --- | --- |
|
|
462
|
+
| symbol | <p>perpetual symbol of the form DIRAC-HONEY-USDC</p> |
|
|
463
|
+
|
|
451
464
|
<a name="PerpetualDataHandler.getPerpetualStaticInfo"></a>
|
|
452
465
|
|
|
453
466
|
### PerpetualDataHandler.getPerpetualStaticInfo(_proxyContract, nestedPerpetualIDs, symbolList) ⇒
|
package/package.json
CHANGED
package/src/d8XMath.ts
CHANGED
|
@@ -780,7 +780,7 @@ function pmExcessCashAtLvg(
|
|
|
780
780
|
* Find maximal *affordable* trade size (short dir=-1 or long dir=1) for prediction
|
|
781
781
|
* markets at provided leverage and incorporating the current position
|
|
782
782
|
* and wallet balance.
|
|
783
|
-
* Factors in lot size and global max short/long
|
|
783
|
+
* Factors in lot size and global max short/long, factors in opening/closing position
|
|
784
784
|
* @param dir direction of trade (-1 sell, 1 buy)
|
|
785
785
|
* @param lvg leverage of the trade
|
|
786
786
|
* @param walletBalCC wallet balance of the trader (collateral currency)
|
|
@@ -884,14 +884,32 @@ export function pmFindMaxPersonalTradeSizeAtLeverage(
|
|
|
884
884
|
sNew = -Math.random() * (Math.abs(glblMaxTrade) + currentPosition);
|
|
885
885
|
}
|
|
886
886
|
}
|
|
887
|
-
// ensure trade maximal trade sNew does not exceed
|
|
888
|
-
// the contract limits
|
|
889
|
-
if (sNew < -Math.abs(glblMaxTrade)) {
|
|
890
|
-
sNew = -Math.abs(glblMaxTrade);
|
|
891
|
-
} else if (sNew > glblMaxTrade) {
|
|
892
|
-
sNew = glblMaxTrade;
|
|
893
|
-
}
|
|
894
887
|
// round trade size down to lot
|
|
895
888
|
sNew = Math.sign(sNew) * Math.floor(Math.abs(sNew) / lot) * lot;
|
|
889
|
+
// Cases
|
|
890
|
+
// 1) trading in closing direction
|
|
891
|
+
// |sNew| >= |currPosition| ->
|
|
892
|
+
// - if we are flipping, global max applies
|
|
893
|
+
// - we should at least have currPos because we can always close
|
|
894
|
+
// max(min(|glblMaxTrade|, |sNew|), |currPos|)
|
|
895
|
+
// note: closing positions do not add any margin. If liquidations work correctly,
|
|
896
|
+
// the starting position is at least at maintenance margin and after reducing the
|
|
897
|
+
// size (which only costs trading fee from the margin), the new position is (without fees)
|
|
898
|
+
// above maintenance margin. Therefore assuming closing is always affordable
|
|
899
|
+
// 2) trading in opening dir
|
|
900
|
+
// min(|glblMaxTrade|,|sNew|)
|
|
901
|
+
|
|
902
|
+
// 2) ensure trade maximal trade sNew does not exceed
|
|
903
|
+
// the contract limits
|
|
904
|
+
// if opening trade, adhere to glblMaxTrade
|
|
905
|
+
sNew = dir * Math.min(Math.abs(sNew), Math.abs(glblMaxTrade));
|
|
906
|
+
// 1)
|
|
907
|
+
// We are trading into closing direction.
|
|
908
|
+
// So we need to make sure that glblMaxTrade did
|
|
909
|
+
// not shrink our sNew beyond the position size (per note |sNew|>|currentPosition| when closing)
|
|
910
|
+
const isClosingDir = currentPosition != 0 && currentPosition * dir < 0;
|
|
911
|
+
if (isClosingDir) {
|
|
912
|
+
return dir * Math.max(Math.abs(sNew), Math.abs(currentPosition));
|
|
913
|
+
}
|
|
896
914
|
return sNew;
|
|
897
915
|
}
|
package/src/marketData.ts
CHANGED
|
@@ -1154,9 +1154,9 @@ export default class MarketData extends PerpetualDataHandler {
|
|
|
1154
1154
|
}
|
|
1155
1155
|
|
|
1156
1156
|
/**
|
|
1157
|
-
* Gets the maximal order sizes to open positions
|
|
1157
|
+
* Gets the maximal order sizes to open/close/flip positions, both long and short,
|
|
1158
1158
|
* considering the existing position, state of the perpetual
|
|
1159
|
-
* Accounts for user's wallet balance.
|
|
1159
|
+
* Accounts for user's wallet balance only in rmMaxOrderSizeForTrader case.
|
|
1160
1160
|
* @param {string} traderAddr Address of trader
|
|
1161
1161
|
* @param {symbol} symbol Symbol of the form ETH-USD-MATIC
|
|
1162
1162
|
* @returns Maximal buy and sell trade sizes (positive)
|
|
@@ -1183,17 +1183,17 @@ export default class MarketData extends PerpetualDataHandler {
|
|
|
1183
1183
|
throw new Error("proxy contract not initialized");
|
|
1184
1184
|
}
|
|
1185
1185
|
if (this.isPredictionMarket(symbol)) {
|
|
1186
|
-
// prediction markets
|
|
1186
|
+
// prediction markets: also works for closing positions
|
|
1187
1187
|
return this.pmMaxOrderSizeForTrader(traderAddr, symbol, overrides);
|
|
1188
1188
|
}
|
|
1189
|
-
// regular markets
|
|
1189
|
+
// regular markets: also works for closing positions
|
|
1190
1190
|
return this.rmMaxOrderSizeForTrader(traderAddr, symbol, overrides);
|
|
1191
1191
|
}
|
|
1192
1192
|
|
|
1193
1193
|
/**
|
|
1194
1194
|
* pmMaxOrderSizeForTrader returns the max order size for the
|
|
1195
1195
|
* trader that is possible from AMM perspective (agnostic about wallet
|
|
1196
|
-
* balance and leverage)
|
|
1196
|
+
* balance and leverage, also correct if trader is shrinking their position)
|
|
1197
1197
|
* @param traderAddr address of trader
|
|
1198
1198
|
* @param symbol perp symbol
|
|
1199
1199
|
* @param overrides optional
|
|
@@ -1286,6 +1286,13 @@ export default class MarketData extends PerpetualDataHandler {
|
|
|
1286
1286
|
return [maxShortOrderPerp, maxLongOrderPerp];
|
|
1287
1287
|
}
|
|
1288
1288
|
|
|
1289
|
+
/**
|
|
1290
|
+
* Returns the maximal order size. Also applies to closing positions.
|
|
1291
|
+
* @param traderAddr trader addr to get their position
|
|
1292
|
+
* @param symbol symbol we are trading
|
|
1293
|
+
* @param overrides
|
|
1294
|
+
* @returns max buy and sell order size in absolute terms
|
|
1295
|
+
*/
|
|
1289
1296
|
private async rmMaxOrderSizeForTrader(
|
|
1290
1297
|
traderAddr: string,
|
|
1291
1298
|
symbol: string,
|
|
@@ -1362,6 +1369,7 @@ export default class MarketData extends PerpetualDataHandler {
|
|
|
1362
1369
|
poolInfo.poolSettleTokenDecimals
|
|
1363
1370
|
);
|
|
1364
1371
|
|
|
1372
|
+
// getMaxShortLongTrade: allows closing of existing position
|
|
1365
1373
|
const [maxShortTrade, maxLongTrade] = await this.getMaxShortLongTrade(perpId, traderState[idxNotional], overrides);
|
|
1366
1374
|
const curPos = (account.side == BUY_SIDE ? 1 : -1) * account.positionNotionalBaseCCY;
|
|
1367
1375
|
|
package/src/priceFeeds.ts
CHANGED
|
@@ -285,10 +285,11 @@ export default class PriceFeeds {
|
|
|
285
285
|
const feedResponses = await this.fetchFeedPriceResponses(feedSymbols);
|
|
286
286
|
// triangulate
|
|
287
287
|
let feedPrices = new Map();
|
|
288
|
-
for (const [key, value] of
|
|
288
|
+
for (const [key, value] of feedResponses) {
|
|
289
289
|
feedPrices.set(key, [value[0], value[1]]);
|
|
290
290
|
}
|
|
291
291
|
let [prices, mktClosed] = this.triangulatePricesFromFeedPrices(indexSymbols, feedPrices);
|
|
292
|
+
|
|
292
293
|
// if low liquidity, assume base-quote is a feed
|
|
293
294
|
if (this.dataHandler.isLowLiquidityMarket(symbol)) {
|
|
294
295
|
const [, , s2Info, s2EmaInfo] = feedResponses.get(indexSymbols[0])!;
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const D8X_SDK_VERSION = "2.4.
|
|
1
|
+
export const D8X_SDK_VERSION = "2.4.3";
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
[
|
|
2
|
-
{
|
|
3
|
-
"inputs": [
|
|
4
|
-
{
|
|
5
|
-
"internalType": "address",
|
|
6
|
-
"name": "beacon",
|
|
7
|
-
"type": "address"
|
|
8
|
-
},
|
|
9
|
-
{
|
|
10
|
-
"internalType": "bytes",
|
|
11
|
-
"name": "data",
|
|
12
|
-
"type": "bytes"
|
|
13
|
-
}
|
|
14
|
-
],
|
|
15
|
-
"stateMutability": "payable",
|
|
16
|
-
"type": "constructor"
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
"anonymous": false,
|
|
20
|
-
"inputs": [
|
|
21
|
-
{
|
|
22
|
-
"indexed": false,
|
|
23
|
-
"internalType": "address",
|
|
24
|
-
"name": "previousAdmin",
|
|
25
|
-
"type": "address"
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
"indexed": false,
|
|
29
|
-
"internalType": "address",
|
|
30
|
-
"name": "newAdmin",
|
|
31
|
-
"type": "address"
|
|
32
|
-
}
|
|
33
|
-
],
|
|
34
|
-
"name": "AdminChanged",
|
|
35
|
-
"type": "event"
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
"anonymous": false,
|
|
39
|
-
"inputs": [
|
|
40
|
-
{
|
|
41
|
-
"indexed": true,
|
|
42
|
-
"internalType": "address",
|
|
43
|
-
"name": "beacon",
|
|
44
|
-
"type": "address"
|
|
45
|
-
}
|
|
46
|
-
],
|
|
47
|
-
"name": "BeaconUpgraded",
|
|
48
|
-
"type": "event"
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
"anonymous": false,
|
|
52
|
-
"inputs": [
|
|
53
|
-
{
|
|
54
|
-
"indexed": true,
|
|
55
|
-
"internalType": "address",
|
|
56
|
-
"name": "implementation",
|
|
57
|
-
"type": "address"
|
|
58
|
-
}
|
|
59
|
-
],
|
|
60
|
-
"name": "Upgraded",
|
|
61
|
-
"type": "event"
|
|
62
|
-
},
|
|
63
|
-
{
|
|
64
|
-
"stateMutability": "payable",
|
|
65
|
-
"type": "fallback"
|
|
66
|
-
},
|
|
67
|
-
{
|
|
68
|
-
"stateMutability": "payable",
|
|
69
|
-
"type": "receive"
|
|
70
|
-
}
|
|
71
|
-
]
|