@d8x/perpetuals-sdk 2.3.1 → 2.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/abi/BeaconProxy.json +71 -0
- package/dist/cjs/abi/IPerpetualManager.json +61 -10
- package/dist/cjs/abi/Maintainer.json +774 -0
- package/dist/cjs/abi/MockToken.json +347 -0
- package/dist/cjs/abi/UUPSUpgradeable.json +104 -0
- package/dist/cjs/abi/WeETH.json +310 -0
- package/dist/cjs/abi-zkevm/LimitOrderBook.json +910 -0
- package/dist/cjs/abi-zkevm/LimitOrderBookFactory.json +236 -0
- package/dist/cjs/config/defaultConfig.json +1 -1
- package/dist/cjs/constants.d.ts +1 -0
- package/dist/cjs/constants.js +2 -1
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/contracts/BeaconProxy.d.ts +63 -0
- package/dist/cjs/contracts/BeaconProxy.js +3 -0
- package/dist/cjs/contracts/BeaconProxy.js.map +1 -0
- package/dist/cjs/contracts/IPerpetualManager.d.ts +38 -13
- package/dist/cjs/contracts/Maintainer.d.ts +799 -0
- package/dist/cjs/contracts/Maintainer.js +3 -0
- package/dist/cjs/contracts/Maintainer.js.map +1 -0
- package/dist/cjs/contracts/MockToken.d.ts +263 -0
- package/dist/cjs/contracts/MockToken.js +3 -0
- package/dist/cjs/contracts/MockToken.js.map +1 -0
- package/dist/cjs/contracts/UUPSUpgradeable.d.ts +118 -0
- package/dist/cjs/contracts/UUPSUpgradeable.js +3 -0
- package/dist/cjs/contracts/UUPSUpgradeable.js.map +1 -0
- package/dist/cjs/contracts/WeETH.d.ts +503 -0
- package/dist/cjs/contracts/WeETH.js +3 -0
- package/dist/cjs/contracts/WeETH.js.map +1 -0
- package/dist/cjs/contracts/factories/BeaconProxy__factory.d.ts +61 -0
- package/dist/cjs/contracts/factories/BeaconProxy__factory.js +89 -0
- package/dist/cjs/contracts/factories/BeaconProxy__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/IPerpetualManager__factory.d.ts +46 -8
- package/dist/cjs/contracts/factories/IPerpetualManager__factory.js +61 -10
- package/dist/cjs/contracts/factories/IPerpetualManager__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/Maintainer__factory.d.ts +609 -0
- package/dist/cjs/contracts/factories/Maintainer__factory.js +792 -0
- package/dist/cjs/contracts/factories/Maintainer__factory.js.map +1 -0
- package/dist/{esm/contracts/factories/PerpStorage__factory.d.ts → cjs/contracts/factories/MockToken__factory.d.ts} +128 -115
- package/dist/cjs/contracts/factories/MockToken__factory.js +365 -0
- package/dist/cjs/contracts/factories/MockToken__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.d.ts +87 -0
- package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.js +122 -0
- package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/WeETH__factory.d.ts +545 -0
- package/dist/cjs/contracts/factories/WeETH__factory.js +721 -0
- package/dist/cjs/contracts/factories/WeETH__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.d.ts +4136 -0
- package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.js +5324 -0
- package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.d.ts +189 -0
- package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.js +254 -0
- package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.d.ts +715 -0
- package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.js +928 -0
- package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/lean0/ShareToken__factory.d.ts +344 -0
- package/dist/cjs/contracts/factories/lean0/ShareToken__factory.js +456 -0
- package/dist/cjs/contracts/factories/lean0/ShareToken__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/lean0/index.d.ts +4 -0
- package/dist/cjs/contracts/factories/lean0/index.js +15 -0
- package/dist/cjs/contracts/factories/lean0/index.js.map +1 -0
- package/dist/cjs/contracts/lean0/IPerpetualManager.d.ts +2821 -0
- package/dist/cjs/contracts/lean0/IPerpetualManager.js +3 -0
- package/dist/cjs/contracts/lean0/IPerpetualManager.js.map +1 -0
- package/dist/cjs/contracts/lean0/LimitOrderBook.d.ts +533 -0
- package/dist/cjs/contracts/lean0/LimitOrderBook.js +3 -0
- package/dist/cjs/contracts/lean0/LimitOrderBook.js.map +1 -0
- package/dist/cjs/contracts/lean0/LimitOrderBookFactory.d.ts +210 -0
- package/dist/cjs/contracts/lean0/LimitOrderBookFactory.js +3 -0
- package/dist/cjs/contracts/lean0/LimitOrderBookFactory.js.map +1 -0
- package/dist/cjs/contracts/lean0/ShareToken.d.ts +320 -0
- package/dist/cjs/contracts/lean0/ShareToken.js +3 -0
- package/dist/cjs/contracts/lean0/ShareToken.js.map +1 -0
- package/dist/cjs/contracts/lean0/index.d.ts +4 -0
- package/dist/cjs/contracts/lean0/index.js +3 -0
- package/dist/cjs/contracts/lean0/index.js.map +1 -0
- package/dist/cjs/perpetualDataHandler.d.ts +6 -0
- package/dist/cjs/perpetualDataHandler.js +12 -0
- package/dist/cjs/perpetualDataHandler.js.map +1 -1
- package/dist/cjs/priceFeeds.d.ts +12 -1
- package/dist/cjs/priceFeeds.js +61 -18
- 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/esm/abi/BeaconProxy.json +71 -0
- package/dist/esm/abi/IPerpetualManager.json +61 -10
- package/dist/esm/abi/Maintainer.json +774 -0
- package/dist/esm/abi/MockToken.json +347 -0
- package/dist/esm/abi/UUPSUpgradeable.json +104 -0
- package/dist/esm/abi/WeETH.json +310 -0
- package/dist/esm/abi/lean0/IPerpetualManager.json +5306 -0
- package/dist/esm/abi/lean0/LimitOrderBook.json +910 -0
- package/dist/esm/abi/lean0/LimitOrderBookFactory.json +236 -0
- package/dist/esm/abi/lean0/ShareToken.json +438 -0
- package/dist/esm/abi-zkevm/LimitOrderBook.json +910 -0
- package/dist/esm/abi-zkevm/LimitOrderBookFactory.json +236 -0
- package/dist/esm/config/defaultConfig.json +1 -1
- package/dist/esm/constants.d.ts +1 -0
- package/dist/esm/constants.js +1 -0
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/contracts/BeaconProxy.d.ts +63 -0
- package/dist/esm/contracts/BeaconProxy.js +2 -0
- package/dist/esm/contracts/BeaconProxy.js.map +1 -0
- package/dist/esm/contracts/IPerpetualManager.d.ts +38 -13
- package/dist/esm/contracts/Maintainer.d.ts +799 -0
- package/dist/esm/contracts/Maintainer.js +2 -0
- package/dist/esm/contracts/Maintainer.js.map +1 -0
- package/dist/esm/contracts/MockToken.d.ts +263 -0
- package/dist/esm/contracts/MockToken.js +2 -0
- package/dist/esm/contracts/MockToken.js.map +1 -0
- package/dist/esm/contracts/UUPSUpgradeable.d.ts +118 -0
- package/dist/esm/contracts/UUPSUpgradeable.js +2 -0
- package/dist/esm/contracts/UUPSUpgradeable.js.map +1 -0
- package/dist/esm/contracts/WeETH.d.ts +503 -0
- package/dist/esm/contracts/WeETH.js +2 -0
- package/dist/esm/contracts/WeETH.js.map +1 -0
- package/dist/esm/contracts/factories/BeaconProxy__factory.d.ts +61 -0
- package/dist/esm/contracts/factories/BeaconProxy__factory.js +85 -0
- package/dist/esm/contracts/factories/BeaconProxy__factory.js.map +1 -0
- package/dist/esm/contracts/factories/IPerpetualManager__factory.d.ts +46 -8
- package/dist/esm/contracts/factories/IPerpetualManager__factory.js +61 -10
- package/dist/esm/contracts/factories/IPerpetualManager__factory.js.map +1 -1
- package/dist/esm/contracts/factories/Maintainer__factory.d.ts +609 -0
- package/dist/esm/contracts/factories/Maintainer__factory.js +788 -0
- package/dist/esm/contracts/factories/Maintainer__factory.js.map +1 -0
- package/dist/esm/contracts/factories/MockToken__factory.d.ts +273 -0
- package/dist/esm/contracts/factories/{PerpStorage__factory.js → MockToken__factory.js} +139 -128
- package/dist/esm/contracts/factories/MockToken__factory.js.map +1 -0
- package/dist/esm/contracts/factories/UUPSUpgradeable__factory.d.ts +87 -0
- package/dist/esm/contracts/factories/UUPSUpgradeable__factory.js +118 -0
- package/dist/esm/contracts/factories/UUPSUpgradeable__factory.js.map +1 -0
- package/dist/esm/contracts/factories/WeETH__factory.d.ts +545 -0
- package/dist/esm/contracts/factories/WeETH__factory.js +717 -0
- package/dist/esm/contracts/factories/WeETH__factory.js.map +1 -0
- package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.d.ts +4136 -0
- package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.js +5320 -0
- package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.js.map +1 -0
- package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.d.ts +189 -0
- package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.js +250 -0
- package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.js.map +1 -0
- package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.d.ts +715 -0
- package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.js +924 -0
- package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.js.map +1 -0
- package/dist/esm/contracts/factories/lean0/ShareToken__factory.d.ts +344 -0
- package/dist/esm/contracts/factories/lean0/ShareToken__factory.js +452 -0
- package/dist/esm/contracts/factories/lean0/ShareToken__factory.js.map +1 -0
- package/dist/esm/contracts/factories/lean0/index.d.ts +4 -0
- package/dist/esm/contracts/factories/lean0/index.js +8 -0
- package/dist/esm/contracts/factories/lean0/index.js.map +1 -0
- package/dist/esm/contracts/lean0/IPerpetualManager.d.ts +2821 -0
- package/dist/esm/contracts/lean0/IPerpetualManager.js +2 -0
- package/dist/esm/contracts/lean0/IPerpetualManager.js.map +1 -0
- package/dist/esm/contracts/lean0/LimitOrderBook.d.ts +533 -0
- package/dist/esm/contracts/lean0/LimitOrderBook.js +2 -0
- package/dist/esm/contracts/lean0/LimitOrderBook.js.map +1 -0
- package/dist/esm/contracts/lean0/LimitOrderBookFactory.d.ts +210 -0
- package/dist/esm/contracts/lean0/LimitOrderBookFactory.js +2 -0
- package/dist/esm/contracts/lean0/LimitOrderBookFactory.js.map +1 -0
- package/dist/esm/contracts/lean0/ShareToken.d.ts +320 -0
- package/dist/esm/contracts/lean0/ShareToken.js +2 -0
- package/dist/esm/contracts/lean0/ShareToken.js.map +1 -0
- package/dist/esm/contracts/lean0/index.d.ts +4 -0
- package/dist/esm/contracts/lean0/index.js +2 -0
- package/dist/esm/contracts/lean0/index.js.map +1 -0
- package/dist/esm/perpetualDataHandler.d.ts +6 -0
- package/dist/esm/perpetualDataHandler.js +13 -1
- package/dist/esm/perpetualDataHandler.js.map +1 -1
- package/dist/esm/priceFeeds.d.ts +12 -1
- package/dist/esm/priceFeeds.js +61 -18
- package/dist/esm/priceFeeds.js.map +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/package.json +1 -1
- package/src/abi/IPerpetualManager.json +61 -10
- package/src/config/defaultConfig.json +1 -1
- package/src/constants.ts +1 -0
- package/src/contracts/IPerpetualManager.ts +63 -12
- package/src/contracts/factories/IPerpetualManager__factory.ts +61 -10
- package/src/perpetualDataHandler.ts +14 -0
- package/src/priceFeeds.ts +67 -20
- package/src/version.ts +1 -1
- package/dist/esm/contracts/factories/PerpStorage__factory.js.map +0 -1
|
@@ -1401,6 +1401,30 @@
|
|
|
1401
1401
|
"stateMutability": "view",
|
|
1402
1402
|
"type": "function"
|
|
1403
1403
|
},
|
|
1404
|
+
{
|
|
1405
|
+
"inputs": [
|
|
1406
|
+
{
|
|
1407
|
+
"internalType": "uint8",
|
|
1408
|
+
"name": "_id",
|
|
1409
|
+
"type": "uint8"
|
|
1410
|
+
},
|
|
1411
|
+
{
|
|
1412
|
+
"internalType": "uint256",
|
|
1413
|
+
"name": "_bulkSize",
|
|
1414
|
+
"type": "uint256"
|
|
1415
|
+
}
|
|
1416
|
+
],
|
|
1417
|
+
"name": "clearTradersInPool",
|
|
1418
|
+
"outputs": [
|
|
1419
|
+
{
|
|
1420
|
+
"internalType": "bool",
|
|
1421
|
+
"name": "",
|
|
1422
|
+
"type": "bool"
|
|
1423
|
+
}
|
|
1424
|
+
],
|
|
1425
|
+
"stateMutability": "nonpayable",
|
|
1426
|
+
"type": "function"
|
|
1427
|
+
},
|
|
1404
1428
|
{
|
|
1405
1429
|
"inputs": [
|
|
1406
1430
|
{
|
|
@@ -4265,16 +4289,6 @@
|
|
|
4265
4289
|
"name": "_fm",
|
|
4266
4290
|
"type": "int128"
|
|
4267
4291
|
},
|
|
4268
|
-
{
|
|
4269
|
-
"internalType": "int128",
|
|
4270
|
-
"name": "_fTotLong",
|
|
4271
|
-
"type": "int128"
|
|
4272
|
-
},
|
|
4273
|
-
{
|
|
4274
|
-
"internalType": "int128",
|
|
4275
|
-
"name": "_fTotShort",
|
|
4276
|
-
"type": "int128"
|
|
4277
|
-
},
|
|
4278
4292
|
{
|
|
4279
4293
|
"internalType": "int128",
|
|
4280
4294
|
"name": "_fTradeAmt",
|
|
@@ -4545,6 +4559,19 @@
|
|
|
4545
4559
|
"stateMutability": "nonpayable",
|
|
4546
4560
|
"type": "function"
|
|
4547
4561
|
},
|
|
4562
|
+
{
|
|
4563
|
+
"inputs": [
|
|
4564
|
+
{
|
|
4565
|
+
"internalType": "uint24",
|
|
4566
|
+
"name": "_iPerpetualId",
|
|
4567
|
+
"type": "uint24"
|
|
4568
|
+
}
|
|
4569
|
+
],
|
|
4570
|
+
"name": "resetMarkPremium",
|
|
4571
|
+
"outputs": [],
|
|
4572
|
+
"stateMutability": "nonpayable",
|
|
4573
|
+
"type": "function"
|
|
4574
|
+
},
|
|
4548
4575
|
{
|
|
4549
4576
|
"inputs": [
|
|
4550
4577
|
{
|
|
@@ -4999,6 +5026,30 @@
|
|
|
4999
5026
|
"stateMutability": "nonpayable",
|
|
5000
5027
|
"type": "function"
|
|
5001
5028
|
},
|
|
5029
|
+
{
|
|
5030
|
+
"inputs": [
|
|
5031
|
+
{
|
|
5032
|
+
"internalType": "uint24",
|
|
5033
|
+
"name": "_perpetualID",
|
|
5034
|
+
"type": "uint24"
|
|
5035
|
+
},
|
|
5036
|
+
{
|
|
5037
|
+
"internalType": "uint256",
|
|
5038
|
+
"name": "_bulkSize",
|
|
5039
|
+
"type": "uint256"
|
|
5040
|
+
}
|
|
5041
|
+
],
|
|
5042
|
+
"name": "settleTraders",
|
|
5043
|
+
"outputs": [
|
|
5044
|
+
{
|
|
5045
|
+
"internalType": "uint256",
|
|
5046
|
+
"name": "_settled",
|
|
5047
|
+
"type": "uint256"
|
|
5048
|
+
}
|
|
5049
|
+
],
|
|
5050
|
+
"stateMutability": "nonpayable",
|
|
5051
|
+
"type": "function"
|
|
5052
|
+
},
|
|
5002
5053
|
{
|
|
5003
5054
|
"inputs": [
|
|
5004
5055
|
{
|
|
@@ -110,7 +110,7 @@
|
|
|
110
110
|
"version": 1,
|
|
111
111
|
"proxyAddr": "0xf922A26375967130aeaB637cB3eE59f498CB2d24",
|
|
112
112
|
"nodeURL": "https://bartio.rpc.berachain.com",
|
|
113
|
-
"priceFeedConfigNetwork": "
|
|
113
|
+
"priceFeedConfigNetwork": "odin",
|
|
114
114
|
"shareTokenABILocation": "./abi/ShareToken.json",
|
|
115
115
|
"proxyABILocation": "./abi/IPerpetualManager.json",
|
|
116
116
|
"limitOrderBookFactoryABILocation": "./abi/LimitOrderBookFactory.json",
|
package/src/constants.ts
CHANGED
|
@@ -31,6 +31,7 @@ export const MASK_MARKET_ORDER = BigInt("0x40000000");
|
|
|
31
31
|
export const MASK_STOP_ORDER = BigInt("0x20000000");
|
|
32
32
|
export const MASK_KEEP_POS_LEVERAGE = BigInt("0x08000000");
|
|
33
33
|
export const MASK_PREDICTION_MARKET = 2n;
|
|
34
|
+
export const MASK_LOW_LIQUIDITY_MARKET = 4n;
|
|
34
35
|
|
|
35
36
|
export const ORDER_TYPE_LIMIT = "LIMIT";
|
|
36
37
|
export const ORDER_TYPE_MARKET = "MARKET";
|
|
@@ -432,6 +432,7 @@ export interface IPerpetualManagerInterface extends Interface {
|
|
|
432
432
|
| "calculateDefaultFundSize"
|
|
433
433
|
| "calculatePerpetualPrice"
|
|
434
434
|
| "calculateRiskNeutralPD"
|
|
435
|
+
| "clearTradersInPool"
|
|
435
436
|
| "countActivePerpAccounts"
|
|
436
437
|
| "createLiquidityPool"
|
|
437
438
|
| "createPerpetual"
|
|
@@ -514,6 +515,7 @@ export interface IPerpetualManagerInterface extends Interface {
|
|
|
514
515
|
| "queryPerpetualPrice"
|
|
515
516
|
| "rebalance"
|
|
516
517
|
| "reduceMarginCollateral"
|
|
518
|
+
| "resetMarkPremium"
|
|
517
519
|
| "runLiquidityPool"
|
|
518
520
|
| "setAMMPerpLogic"
|
|
519
521
|
| "setBlockDelay"
|
|
@@ -540,6 +542,7 @@ export interface IPerpetualManagerInterface extends Interface {
|
|
|
540
542
|
| "setUtilityTokenAddr"
|
|
541
543
|
| "settle"
|
|
542
544
|
| "settleNextTraderInPool"
|
|
545
|
+
| "settleTraders"
|
|
543
546
|
| "splitProtocolFee"
|
|
544
547
|
| "togglePerpEmergencyState"
|
|
545
548
|
| "tradeViaOrderBook"
|
|
@@ -650,6 +653,10 @@ export interface IPerpetualManagerInterface extends Interface {
|
|
|
650
653
|
boolean
|
|
651
654
|
]
|
|
652
655
|
): string;
|
|
656
|
+
encodeFunctionData(
|
|
657
|
+
functionFragment: "clearTradersInPool",
|
|
658
|
+
values: [BigNumberish, BigNumberish]
|
|
659
|
+
): string;
|
|
653
660
|
encodeFunctionData(
|
|
654
661
|
functionFragment: "countActivePerpAccounts",
|
|
655
662
|
values: [BigNumberish]
|
|
@@ -999,14 +1006,7 @@ export interface IPerpetualManagerInterface extends Interface {
|
|
|
999
1006
|
): string;
|
|
1000
1007
|
encodeFunctionData(
|
|
1001
1008
|
functionFragment: "prdMktsLvgFee",
|
|
1002
|
-
values: [
|
|
1003
|
-
BigNumberish,
|
|
1004
|
-
BigNumberish,
|
|
1005
|
-
BigNumberish,
|
|
1006
|
-
BigNumberish,
|
|
1007
|
-
BigNumberish,
|
|
1008
|
-
BigNumberish
|
|
1009
|
-
]
|
|
1009
|
+
values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish]
|
|
1010
1010
|
): string;
|
|
1011
1011
|
encodeFunctionData(
|
|
1012
1012
|
functionFragment: "preTrade",
|
|
@@ -1042,6 +1042,10 @@ export interface IPerpetualManagerInterface extends Interface {
|
|
|
1042
1042
|
functionFragment: "reduceMarginCollateral",
|
|
1043
1043
|
values: [BigNumberish, AddressLike, BigNumberish]
|
|
1044
1044
|
): string;
|
|
1045
|
+
encodeFunctionData(
|
|
1046
|
+
functionFragment: "resetMarkPremium",
|
|
1047
|
+
values: [BigNumberish]
|
|
1048
|
+
): string;
|
|
1045
1049
|
encodeFunctionData(
|
|
1046
1050
|
functionFragment: "runLiquidityPool",
|
|
1047
1051
|
values: [BigNumberish]
|
|
@@ -1150,6 +1154,10 @@ export interface IPerpetualManagerInterface extends Interface {
|
|
|
1150
1154
|
functionFragment: "settleNextTraderInPool",
|
|
1151
1155
|
values: [BigNumberish]
|
|
1152
1156
|
): string;
|
|
1157
|
+
encodeFunctionData(
|
|
1158
|
+
functionFragment: "settleTraders",
|
|
1159
|
+
values: [BigNumberish, BigNumberish]
|
|
1160
|
+
): string;
|
|
1153
1161
|
encodeFunctionData(
|
|
1154
1162
|
functionFragment: "splitProtocolFee",
|
|
1155
1163
|
values: [BigNumberish]
|
|
@@ -1261,6 +1269,10 @@ export interface IPerpetualManagerInterface extends Interface {
|
|
|
1261
1269
|
functionFragment: "calculateRiskNeutralPD",
|
|
1262
1270
|
data: BytesLike
|
|
1263
1271
|
): Result;
|
|
1272
|
+
decodeFunctionResult(
|
|
1273
|
+
functionFragment: "clearTradersInPool",
|
|
1274
|
+
data: BytesLike
|
|
1275
|
+
): Result;
|
|
1264
1276
|
decodeFunctionResult(
|
|
1265
1277
|
functionFragment: "countActivePerpAccounts",
|
|
1266
1278
|
data: BytesLike
|
|
@@ -1574,6 +1586,10 @@ export interface IPerpetualManagerInterface extends Interface {
|
|
|
1574
1586
|
functionFragment: "reduceMarginCollateral",
|
|
1575
1587
|
data: BytesLike
|
|
1576
1588
|
): Result;
|
|
1589
|
+
decodeFunctionResult(
|
|
1590
|
+
functionFragment: "resetMarkPremium",
|
|
1591
|
+
data: BytesLike
|
|
1592
|
+
): Result;
|
|
1577
1593
|
decodeFunctionResult(
|
|
1578
1594
|
functionFragment: "runLiquidityPool",
|
|
1579
1595
|
data: BytesLike
|
|
@@ -1675,6 +1691,10 @@ export interface IPerpetualManagerInterface extends Interface {
|
|
|
1675
1691
|
functionFragment: "settleNextTraderInPool",
|
|
1676
1692
|
data: BytesLike
|
|
1677
1693
|
): Result;
|
|
1694
|
+
decodeFunctionResult(
|
|
1695
|
+
functionFragment: "settleTraders",
|
|
1696
|
+
data: BytesLike
|
|
1697
|
+
): Result;
|
|
1678
1698
|
decodeFunctionResult(
|
|
1679
1699
|
functionFragment: "splitProtocolFee",
|
|
1680
1700
|
data: BytesLike
|
|
@@ -2675,6 +2695,12 @@ export interface IPerpetualManager extends BaseContract {
|
|
|
2675
2695
|
"view"
|
|
2676
2696
|
>;
|
|
2677
2697
|
|
|
2698
|
+
clearTradersInPool: TypedContractMethod<
|
|
2699
|
+
[_id: BigNumberish, _bulkSize: BigNumberish],
|
|
2700
|
+
[boolean],
|
|
2701
|
+
"nonpayable"
|
|
2702
|
+
>;
|
|
2703
|
+
|
|
2678
2704
|
countActivePerpAccounts: TypedContractMethod<
|
|
2679
2705
|
[_perpetualId: BigNumberish],
|
|
2680
2706
|
[bigint],
|
|
@@ -3176,8 +3202,6 @@ export interface IPerpetualManager extends BaseContract {
|
|
|
3176
3202
|
[
|
|
3177
3203
|
_fPx: BigNumberish,
|
|
3178
3204
|
_fm: BigNumberish,
|
|
3179
|
-
_fTotLong: BigNumberish,
|
|
3180
|
-
_fTotShort: BigNumberish,
|
|
3181
3205
|
_fTradeAmt: BigNumberish,
|
|
3182
3206
|
_fMgnRate: BigNumberish
|
|
3183
3207
|
],
|
|
@@ -3237,6 +3261,12 @@ export interface IPerpetualManager extends BaseContract {
|
|
|
3237
3261
|
"nonpayable"
|
|
3238
3262
|
>;
|
|
3239
3263
|
|
|
3264
|
+
resetMarkPremium: TypedContractMethod<
|
|
3265
|
+
[_iPerpetualId: BigNumberish],
|
|
3266
|
+
[void],
|
|
3267
|
+
"nonpayable"
|
|
3268
|
+
>;
|
|
3269
|
+
|
|
3240
3270
|
runLiquidityPool: TypedContractMethod<
|
|
3241
3271
|
[_liqPoolID: BigNumberish],
|
|
3242
3272
|
[void],
|
|
@@ -3412,6 +3442,12 @@ export interface IPerpetualManager extends BaseContract {
|
|
|
3412
3442
|
"nonpayable"
|
|
3413
3443
|
>;
|
|
3414
3444
|
|
|
3445
|
+
settleTraders: TypedContractMethod<
|
|
3446
|
+
[_perpetualID: BigNumberish, _bulkSize: BigNumberish],
|
|
3447
|
+
[bigint],
|
|
3448
|
+
"nonpayable"
|
|
3449
|
+
>;
|
|
3450
|
+
|
|
3415
3451
|
splitProtocolFee: TypedContractMethod<
|
|
3416
3452
|
[fee: BigNumberish],
|
|
3417
3453
|
[[bigint, bigint]],
|
|
@@ -3614,6 +3650,13 @@ export interface IPerpetualManager extends BaseContract {
|
|
|
3614
3650
|
[[bigint, bigint]],
|
|
3615
3651
|
"view"
|
|
3616
3652
|
>;
|
|
3653
|
+
getFunction(
|
|
3654
|
+
nameOrSignature: "clearTradersInPool"
|
|
3655
|
+
): TypedContractMethod<
|
|
3656
|
+
[_id: BigNumberish, _bulkSize: BigNumberish],
|
|
3657
|
+
[boolean],
|
|
3658
|
+
"nonpayable"
|
|
3659
|
+
>;
|
|
3617
3660
|
getFunction(
|
|
3618
3661
|
nameOrSignature: "countActivePerpAccounts"
|
|
3619
3662
|
): TypedContractMethod<[_perpetualId: BigNumberish], [bigint], "view">;
|
|
@@ -4135,8 +4178,6 @@ export interface IPerpetualManager extends BaseContract {
|
|
|
4135
4178
|
[
|
|
4136
4179
|
_fPx: BigNumberish,
|
|
4137
4180
|
_fm: BigNumberish,
|
|
4138
|
-
_fTotLong: BigNumberish,
|
|
4139
|
-
_fTotShort: BigNumberish,
|
|
4140
4181
|
_fTradeAmt: BigNumberish,
|
|
4141
4182
|
_fMgnRate: BigNumberish
|
|
4142
4183
|
],
|
|
@@ -4198,6 +4239,9 @@ export interface IPerpetualManager extends BaseContract {
|
|
|
4198
4239
|
[void],
|
|
4199
4240
|
"nonpayable"
|
|
4200
4241
|
>;
|
|
4242
|
+
getFunction(
|
|
4243
|
+
nameOrSignature: "resetMarkPremium"
|
|
4244
|
+
): TypedContractMethod<[_iPerpetualId: BigNumberish], [void], "nonpayable">;
|
|
4201
4245
|
getFunction(
|
|
4202
4246
|
nameOrSignature: "runLiquidityPool"
|
|
4203
4247
|
): TypedContractMethod<[_liqPoolID: BigNumberish], [void], "nonpayable">;
|
|
@@ -4363,6 +4407,13 @@ export interface IPerpetualManager extends BaseContract {
|
|
|
4363
4407
|
getFunction(
|
|
4364
4408
|
nameOrSignature: "settleNextTraderInPool"
|
|
4365
4409
|
): TypedContractMethod<[_id: BigNumberish], [boolean], "nonpayable">;
|
|
4410
|
+
getFunction(
|
|
4411
|
+
nameOrSignature: "settleTraders"
|
|
4412
|
+
): TypedContractMethod<
|
|
4413
|
+
[_perpetualID: BigNumberish, _bulkSize: BigNumberish],
|
|
4414
|
+
[bigint],
|
|
4415
|
+
"nonpayable"
|
|
4416
|
+
>;
|
|
4366
4417
|
getFunction(
|
|
4367
4418
|
nameOrSignature: "splitProtocolFee"
|
|
4368
4419
|
): TypedContractMethod<[fee: BigNumberish], [[bigint, bigint]], "view">;
|
|
@@ -1411,6 +1411,30 @@ const _abi = [
|
|
|
1411
1411
|
stateMutability: "view",
|
|
1412
1412
|
type: "function",
|
|
1413
1413
|
},
|
|
1414
|
+
{
|
|
1415
|
+
inputs: [
|
|
1416
|
+
{
|
|
1417
|
+
internalType: "uint8",
|
|
1418
|
+
name: "_id",
|
|
1419
|
+
type: "uint8",
|
|
1420
|
+
},
|
|
1421
|
+
{
|
|
1422
|
+
internalType: "uint256",
|
|
1423
|
+
name: "_bulkSize",
|
|
1424
|
+
type: "uint256",
|
|
1425
|
+
},
|
|
1426
|
+
],
|
|
1427
|
+
name: "clearTradersInPool",
|
|
1428
|
+
outputs: [
|
|
1429
|
+
{
|
|
1430
|
+
internalType: "bool",
|
|
1431
|
+
name: "",
|
|
1432
|
+
type: "bool",
|
|
1433
|
+
},
|
|
1434
|
+
],
|
|
1435
|
+
stateMutability: "nonpayable",
|
|
1436
|
+
type: "function",
|
|
1437
|
+
},
|
|
1414
1438
|
{
|
|
1415
1439
|
inputs: [
|
|
1416
1440
|
{
|
|
@@ -4275,16 +4299,6 @@ const _abi = [
|
|
|
4275
4299
|
name: "_fm",
|
|
4276
4300
|
type: "int128",
|
|
4277
4301
|
},
|
|
4278
|
-
{
|
|
4279
|
-
internalType: "int128",
|
|
4280
|
-
name: "_fTotLong",
|
|
4281
|
-
type: "int128",
|
|
4282
|
-
},
|
|
4283
|
-
{
|
|
4284
|
-
internalType: "int128",
|
|
4285
|
-
name: "_fTotShort",
|
|
4286
|
-
type: "int128",
|
|
4287
|
-
},
|
|
4288
4302
|
{
|
|
4289
4303
|
internalType: "int128",
|
|
4290
4304
|
name: "_fTradeAmt",
|
|
@@ -4555,6 +4569,19 @@ const _abi = [
|
|
|
4555
4569
|
stateMutability: "nonpayable",
|
|
4556
4570
|
type: "function",
|
|
4557
4571
|
},
|
|
4572
|
+
{
|
|
4573
|
+
inputs: [
|
|
4574
|
+
{
|
|
4575
|
+
internalType: "uint24",
|
|
4576
|
+
name: "_iPerpetualId",
|
|
4577
|
+
type: "uint24",
|
|
4578
|
+
},
|
|
4579
|
+
],
|
|
4580
|
+
name: "resetMarkPremium",
|
|
4581
|
+
outputs: [],
|
|
4582
|
+
stateMutability: "nonpayable",
|
|
4583
|
+
type: "function",
|
|
4584
|
+
},
|
|
4558
4585
|
{
|
|
4559
4586
|
inputs: [
|
|
4560
4587
|
{
|
|
@@ -5009,6 +5036,30 @@ const _abi = [
|
|
|
5009
5036
|
stateMutability: "nonpayable",
|
|
5010
5037
|
type: "function",
|
|
5011
5038
|
},
|
|
5039
|
+
{
|
|
5040
|
+
inputs: [
|
|
5041
|
+
{
|
|
5042
|
+
internalType: "uint24",
|
|
5043
|
+
name: "_perpetualID",
|
|
5044
|
+
type: "uint24",
|
|
5045
|
+
},
|
|
5046
|
+
{
|
|
5047
|
+
internalType: "uint256",
|
|
5048
|
+
name: "_bulkSize",
|
|
5049
|
+
type: "uint256",
|
|
5050
|
+
},
|
|
5051
|
+
],
|
|
5052
|
+
name: "settleTraders",
|
|
5053
|
+
outputs: [
|
|
5054
|
+
{
|
|
5055
|
+
internalType: "uint256",
|
|
5056
|
+
name: "_settled",
|
|
5057
|
+
type: "uint256",
|
|
5058
|
+
},
|
|
5059
|
+
],
|
|
5060
|
+
stateMutability: "nonpayable",
|
|
5061
|
+
type: "function",
|
|
5062
|
+
},
|
|
5012
5063
|
{
|
|
5013
5064
|
inputs: [
|
|
5014
5065
|
{
|
|
@@ -19,6 +19,7 @@ import {
|
|
|
19
19
|
MASK_CLOSE_ONLY,
|
|
20
20
|
MASK_KEEP_POS_LEVERAGE,
|
|
21
21
|
MASK_LIMIT_ORDER,
|
|
22
|
+
MASK_LOW_LIQUIDITY_MARKET,
|
|
22
23
|
MASK_MARKET_ORDER,
|
|
23
24
|
MASK_PREDICTION_MARKET,
|
|
24
25
|
MASK_STOP_ORDER,
|
|
@@ -2057,6 +2058,19 @@ export default class PerpetualDataHandler {
|
|
|
2057
2058
|
return PerpetualDataHandler.isPredictionMarketStatic(staticInfo);
|
|
2058
2059
|
}
|
|
2059
2060
|
|
|
2061
|
+
/**
|
|
2062
|
+
* Determines whether a given perpetual represents a low-liquidity market
|
|
2063
|
+
* @param symbol perpetual symbol of the form DIRAC-HONEY-USDC
|
|
2064
|
+
* @returns True if this is a low-liquidity market
|
|
2065
|
+
*/
|
|
2066
|
+
public isLowLiquidityMarket(symbol: string): boolean {
|
|
2067
|
+
let staticInfo = this.symbolToPerpStaticInfo.get(symbol);
|
|
2068
|
+
if (staticInfo == undefined) {
|
|
2069
|
+
throw new Error(`Perpetual with symbol ${symbol} not found. Check symbol or use createProxyInstance().`);
|
|
2070
|
+
}
|
|
2071
|
+
return containsFlag(staticInfo.perpFlags, MASK_LOW_LIQUIDITY_MARKET);
|
|
2072
|
+
}
|
|
2073
|
+
|
|
2060
2074
|
/**
|
|
2061
2075
|
* Determines whether a given perpetual represents a prediction market
|
|
2062
2076
|
* @param staticInfo Perpetual static info
|
package/src/priceFeeds.ts
CHANGED
|
@@ -231,6 +231,11 @@ export default class PriceFeeds {
|
|
|
231
231
|
if (!key.includes(":ema")) {
|
|
232
232
|
continue;
|
|
233
233
|
}
|
|
234
|
+
// only report ema if corresponding symbol is requested
|
|
235
|
+
const keyNoEma = key.substring(0, key.length - 5);
|
|
236
|
+
if (!symbols.includes(keyNoEma)) {
|
|
237
|
+
continue;
|
|
238
|
+
}
|
|
234
239
|
let p = feedPrices.get(key);
|
|
235
240
|
symMap.set(key, p!);
|
|
236
241
|
}
|
|
@@ -277,18 +282,36 @@ export default class PriceFeeds {
|
|
|
277
282
|
}
|
|
278
283
|
}
|
|
279
284
|
// get all feed prices
|
|
280
|
-
|
|
285
|
+
const feedResponses = await this.fetchFeedPriceResponses(feedSymbols);
|
|
281
286
|
// triangulate
|
|
287
|
+
let feedPrices = new Map();
|
|
288
|
+
for (const [key, value] of feedPrices) {
|
|
289
|
+
feedPrices.set(key, [value[0], value[1]]);
|
|
290
|
+
}
|
|
282
291
|
let [prices, mktClosed] = this.triangulatePricesFromFeedPrices(indexSymbols, feedPrices);
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
+
// if low liquidity, assume base-quote is a feed
|
|
293
|
+
if (this.dataHandler.isLowLiquidityMarket(symbol)) {
|
|
294
|
+
const [, , s2Info, s2EmaInfo] = feedResponses.get(indexSymbols[0])!;
|
|
295
|
+
return {
|
|
296
|
+
s2: prices[0],
|
|
297
|
+
s3: prices[1],
|
|
298
|
+
ema: decNToFloat(s2EmaInfo?.price ?? 0n, -(s2EmaInfo?.expo ?? 1)),
|
|
299
|
+
s2MktClosed: mktClosed[0],
|
|
300
|
+
s3MktClosed: mktClosed[1],
|
|
301
|
+
conf: s2Info?.conf ?? 0n,
|
|
302
|
+
predMktCLOBParams: s2EmaInfo?.conf ?? 0n,
|
|
303
|
+
} as IdxPriceInfo;
|
|
304
|
+
} else {
|
|
305
|
+
return {
|
|
306
|
+
s2: prices[0],
|
|
307
|
+
s3: prices[1],
|
|
308
|
+
ema: prices[0],
|
|
309
|
+
s2MktClosed: mktClosed[0],
|
|
310
|
+
s3MktClosed: mktClosed[1],
|
|
311
|
+
conf: BigInt(0),
|
|
312
|
+
predMktCLOBParams: BigInt(0),
|
|
313
|
+
} as IdxPriceInfo;
|
|
314
|
+
}
|
|
292
315
|
}
|
|
293
316
|
|
|
294
317
|
/**
|
|
@@ -303,6 +326,17 @@ export default class PriceFeeds {
|
|
|
303
326
|
* <symbol>:ema for each polymarket symbol that maps to the ema price
|
|
304
327
|
*/
|
|
305
328
|
public async fetchFeedPrices(symbols?: string[]): Promise<Map<string, [number, boolean]>> {
|
|
329
|
+
const resps = await this.fetchFeedPriceResponses(symbols);
|
|
330
|
+
const result = new Map();
|
|
331
|
+
for (const [key, value] of resps) {
|
|
332
|
+
result.set(key, [value[0], value[1]]);
|
|
333
|
+
}
|
|
334
|
+
return result;
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
public async fetchFeedPriceResponses(
|
|
338
|
+
symbols?: string[]
|
|
339
|
+
): Promise<Map<string, [number, boolean, PriceFeedFormat | undefined, PriceFeedFormat | undefined]>> {
|
|
306
340
|
if (this.config == undefined) {
|
|
307
341
|
throw Error("init() required");
|
|
308
342
|
}
|
|
@@ -327,7 +361,7 @@ export default class PriceFeeds {
|
|
|
327
361
|
polyMktSyms.push(currFeed.symbol);
|
|
328
362
|
continue;
|
|
329
363
|
}
|
|
330
|
-
const apiFormat = { pyth: this.PYTH, odin: this.PYTH }[currFeed.type];
|
|
364
|
+
const apiFormat = { pyth: this.PYTH, odin: this.PYTH, "low-liq": this.PYTH }[currFeed.type];
|
|
331
365
|
if (apiFormat === undefined) {
|
|
332
366
|
throw new Error(`API format for ${currFeed} unknown.`);
|
|
333
367
|
}
|
|
@@ -345,23 +379,23 @@ export default class PriceFeeds {
|
|
|
345
379
|
}
|
|
346
380
|
let onChainPromise = this.queryOnChainPxFeeds(onChainSyms);
|
|
347
381
|
let polyMktsPromise = this.queryPolyMktsPxFeeds(polyMktSyms);
|
|
348
|
-
let resultPrices = new Map<string, [number, boolean]>();
|
|
382
|
+
let resultPrices = new Map<string, [number, boolean, PriceFeedFormat | undefined, PriceFeedFormat | undefined]>();
|
|
349
383
|
for (let k = 0; k < queries.length; k++) {
|
|
350
384
|
if (queries[k] == undefined) {
|
|
351
385
|
continue;
|
|
352
386
|
}
|
|
353
|
-
|
|
387
|
+
const { price: pxInfo, emaPrice } = await this.fetchFullPriceQuery(queries[k] + suffixes[k]);
|
|
354
388
|
let tsSecNow = Math.round(Date.now() / 1000);
|
|
355
389
|
for (let j = 0; j < pxInfo.length; j++) {
|
|
356
390
|
let price = decNToFloat(BigInt(pxInfo[j].price), -pxInfo[j].expo);
|
|
357
391
|
let isMarketClosed = tsSecNow - pxInfo[j].publish_time > this.THRESHOLD_MARKET_CLOSED_SEC;
|
|
358
|
-
resultPrices.set(symbolsOfEndpoint[k][j], [price, isMarketClosed]);
|
|
392
|
+
resultPrices.set(symbolsOfEndpoint[k][j], [price, isMarketClosed, pxInfo[j], emaPrice[j]]);
|
|
359
393
|
}
|
|
360
394
|
}
|
|
361
395
|
let onChPxs = await onChainPromise;
|
|
362
396
|
for (let k = 0; k < onChainSyms.length; k++) {
|
|
363
397
|
let sym = onChainSyms[k];
|
|
364
|
-
resultPrices.set(sym, [onChPxs[k], false]);
|
|
398
|
+
resultPrices.set(sym, [onChPxs[k], false, undefined, undefined]);
|
|
365
399
|
}
|
|
366
400
|
let polyPxs = await polyMktsPromise;
|
|
367
401
|
for (let k = 0; k < polyPxs.length; k++) {
|
|
@@ -369,8 +403,8 @@ export default class PriceFeeds {
|
|
|
369
403
|
if (polyPxs[k] == undefined) {
|
|
370
404
|
continue;
|
|
371
405
|
}
|
|
372
|
-
resultPrices.set(sym, [polyPxs[k]!.s2, polyPxs[k]!.s2MktClosed]);
|
|
373
|
-
resultPrices.set(sym + ":ema", [polyPxs[k]!.ema, polyPxs[k]!.s2MktClosed]);
|
|
406
|
+
resultPrices.set(sym, [polyPxs[k]!.s2, polyPxs[k]!.s2MktClosed, undefined, undefined]);
|
|
407
|
+
resultPrices.set(sym + ":ema", [polyPxs[k]!.ema, polyPxs[k]!.s2MktClosed, undefined, undefined]);
|
|
374
408
|
}
|
|
375
409
|
return resultPrices;
|
|
376
410
|
}
|
|
@@ -595,9 +629,21 @@ export default class PriceFeeds {
|
|
|
595
629
|
/**
|
|
596
630
|
* Queries the REST endpoint and returns parsed price data
|
|
597
631
|
* @param query query price-info from endpoint
|
|
598
|
-
* @returns vaa and price info
|
|
632
|
+
* @returns array of vaa and price info
|
|
599
633
|
*/
|
|
600
634
|
public async fetchPriceQuery(query: string): Promise<[string[], PriceFeedFormat[]]> {
|
|
635
|
+
const fullResp = await this.fetchFullPriceQuery(query);
|
|
636
|
+
return [fullResp.updateData, fullResp.price];
|
|
637
|
+
}
|
|
638
|
+
|
|
639
|
+
/**
|
|
640
|
+
* Queries the REST endpoint and returns parsed price data
|
|
641
|
+
* @param query query price-info from endpoint
|
|
642
|
+
* @returns object with vaa and price info (both spot and ema)
|
|
643
|
+
*/
|
|
644
|
+
public async fetchFullPriceQuery(
|
|
645
|
+
query: string
|
|
646
|
+
): Promise<{ updateData: string[]; price: PriceFeedFormat[]; emaPrice: PriceFeedFormat[] }> {
|
|
601
647
|
let values: PythV2LatestPriceFeed;
|
|
602
648
|
const cached = this.cache.get(query);
|
|
603
649
|
const tsNow = Date.now() / 1_000;
|
|
@@ -615,6 +661,7 @@ export default class PriceFeeds {
|
|
|
615
661
|
}
|
|
616
662
|
const priceFeedUpdates = new Array<string>();
|
|
617
663
|
const px = new Array<PriceFeedFormat>();
|
|
664
|
+
const emaPx = new Array<PriceFeedFormat>();
|
|
618
665
|
for (let k = 0; k < values.parsed.length; k++) {
|
|
619
666
|
// pyth v2 only provides one compressed vaa when querying multiple prices.
|
|
620
667
|
// contracts can only use separate ones. In case we get only one vaa,
|
|
@@ -622,9 +669,9 @@ export default class PriceFeeds {
|
|
|
622
669
|
const idx = k % values.binary.data.length;
|
|
623
670
|
priceFeedUpdates.push("0x" + Buffer.from(values.binary.data[idx], "base64").toString("hex"));
|
|
624
671
|
px.push(values.parsed[k].price as PriceFeedFormat);
|
|
672
|
+
emaPx.push(values.parsed[k].ema_price as PriceFeedFormat);
|
|
625
673
|
}
|
|
626
|
-
|
|
627
|
-
return [priceFeedUpdates, px];
|
|
674
|
+
return { updateData: priceFeedUpdates, price: px, emaPrice: emaPx };
|
|
628
675
|
}
|
|
629
676
|
|
|
630
677
|
/**
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const D8X_SDK_VERSION = "2.
|
|
1
|
+
export const D8X_SDK_VERSION = "2.4.1";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PerpStorage__factory.js","sourceRoot":"","sources":["../../../../src/contracts/factories/PerpStorage__factory.ts"],"names":[],"mappings":"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"}
|