@d8x/perpetuals-sdk 2.0.12-alpha → 2.1.0-alpha2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (252) hide show
  1. package/dist/cjs/abi/IPerpetualManager.json +124 -3
  2. package/dist/cjs/abi/OracleFactory.json +94 -25
  3. package/dist/cjs/abi/PerpetualManagerProxy.json +212 -2
  4. package/dist/cjs/brokerTool.d.ts +5 -1
  5. package/dist/cjs/brokerTool.js +14 -1
  6. package/dist/cjs/brokerTool.js.map +1 -1
  7. package/dist/cjs/contracts/IPerpetualManager.d.ts +74 -10
  8. package/dist/cjs/contracts/OracleFactory.d.ts +69 -20
  9. package/dist/cjs/contracts/PerpetualManagerProxy.d.ts +109 -4
  10. package/dist/cjs/contracts/factories/IPerpetualManager__factory.d.ts +95 -3
  11. package/dist/cjs/contracts/factories/IPerpetualManager__factory.js +124 -3
  12. package/dist/cjs/contracts/factories/IPerpetualManager__factory.js.map +1 -1
  13. package/dist/cjs/contracts/factories/OracleFactory__factory.d.ts +75 -20
  14. package/dist/cjs/contracts/factories/OracleFactory__factory.js +94 -25
  15. package/dist/cjs/contracts/factories/OracleFactory__factory.js.map +1 -1
  16. package/dist/cjs/contracts/factories/PerpetualManagerProxy__factory.d.ts +159 -2
  17. package/dist/cjs/contracts/factories/PerpetualManagerProxy__factory.js +212 -2
  18. package/dist/cjs/contracts/factories/PerpetualManagerProxy__factory.js.map +1 -1
  19. package/dist/cjs/d8XMath.d.ts +44 -1
  20. package/dist/cjs/d8XMath.js +236 -3
  21. package/dist/cjs/d8XMath.js.map +1 -1
  22. package/dist/cjs/liquidatorTool.d.ts +1 -0
  23. package/dist/cjs/liquidatorTool.js +24 -7
  24. package/dist/cjs/liquidatorTool.js.map +1 -1
  25. package/dist/cjs/marketData.d.ts +42 -20
  26. package/dist/cjs/marketData.js +261 -188
  27. package/dist/cjs/marketData.js.map +1 -1
  28. package/dist/cjs/nodeSDKTypes.d.ts +24 -2
  29. package/dist/cjs/nodeSDKTypes.js.map +1 -1
  30. package/dist/cjs/orderExecutorTool.d.ts +3 -3
  31. package/dist/cjs/orderExecutorTool.js +38 -13
  32. package/dist/cjs/orderExecutorTool.js.map +1 -1
  33. package/dist/cjs/perpetualDataHandler.d.ts +22 -12
  34. package/dist/cjs/perpetualDataHandler.js +59 -44
  35. package/dist/cjs/perpetualDataHandler.js.map +1 -1
  36. package/dist/cjs/perpetualEventHandler.d.ts +1 -1
  37. package/dist/cjs/perpetualEventHandler.js +6 -7
  38. package/dist/cjs/perpetualEventHandler.js.map +1 -1
  39. package/dist/cjs/polyMktsPxFeed.d.ts +6 -4
  40. package/dist/cjs/polyMktsPxFeed.js +24 -3
  41. package/dist/cjs/polyMktsPxFeed.js.map +1 -1
  42. package/dist/cjs/priceFeeds.d.ts +6 -7
  43. package/dist/cjs/priceFeeds.js +36 -14
  44. package/dist/cjs/priceFeeds.js.map +1 -1
  45. package/dist/cjs/version.d.ts +1 -1
  46. package/dist/cjs/version.js +1 -1
  47. package/dist/esm/abi/IPerpetualManager.json +124 -3
  48. package/dist/esm/abi/OracleFactory.json +94 -25
  49. package/dist/esm/abi/PerpetualManagerProxy.json +212 -2
  50. package/dist/esm/brokerTool.d.ts +5 -1
  51. package/dist/esm/brokerTool.js +15 -2
  52. package/dist/esm/brokerTool.js.map +1 -1
  53. package/dist/esm/contracts/IPerpetualManager.d.ts +74 -10
  54. package/dist/esm/contracts/OracleFactory.d.ts +69 -20
  55. package/dist/esm/contracts/PerpetualManagerProxy.d.ts +109 -4
  56. package/dist/esm/contracts/factories/IPerpetualManager__factory.d.ts +95 -3
  57. package/dist/esm/contracts/factories/IPerpetualManager__factory.js +124 -3
  58. package/dist/esm/contracts/factories/IPerpetualManager__factory.js.map +1 -1
  59. package/dist/esm/contracts/factories/OracleFactory__factory.d.ts +75 -20
  60. package/dist/esm/contracts/factories/OracleFactory__factory.js +94 -25
  61. package/dist/esm/contracts/factories/OracleFactory__factory.js.map +1 -1
  62. package/dist/{cjs/contracts/factories/MockToken__factory.d.ts → esm/contracts/factories/PerpStorage__factory.d.ts} +115 -128
  63. package/dist/esm/contracts/factories/{MockToken__factory.js → PerpStorage__factory.js} +128 -139
  64. package/dist/esm/contracts/factories/PerpStorage__factory.js.map +1 -0
  65. package/dist/esm/contracts/factories/PerpetualManagerProxy__factory.d.ts +159 -2
  66. package/dist/esm/contracts/factories/PerpetualManagerProxy__factory.js +212 -2
  67. package/dist/esm/contracts/factories/PerpetualManagerProxy__factory.js.map +1 -1
  68. package/dist/esm/d8XMath.d.ts +44 -1
  69. package/dist/esm/d8XMath.js +229 -2
  70. package/dist/esm/d8XMath.js.map +1 -1
  71. package/dist/esm/liquidatorTool.d.ts +1 -0
  72. package/dist/esm/liquidatorTool.js +25 -8
  73. package/dist/esm/liquidatorTool.js.map +1 -1
  74. package/dist/esm/marketData.d.ts +42 -20
  75. package/dist/esm/marketData.js +263 -190
  76. package/dist/esm/marketData.js.map +1 -1
  77. package/dist/esm/nodeSDKTypes.d.ts +24 -2
  78. package/dist/esm/nodeSDKTypes.js.map +1 -1
  79. package/dist/esm/orderExecutorTool.d.ts +3 -3
  80. package/dist/esm/orderExecutorTool.js +38 -13
  81. package/dist/esm/orderExecutorTool.js.map +1 -1
  82. package/dist/esm/perpetualDataHandler.d.ts +22 -12
  83. package/dist/esm/perpetualDataHandler.js +60 -45
  84. package/dist/esm/perpetualDataHandler.js.map +1 -1
  85. package/dist/esm/perpetualEventHandler.d.ts +1 -1
  86. package/dist/esm/perpetualEventHandler.js +6 -7
  87. package/dist/esm/perpetualEventHandler.js.map +1 -1
  88. package/dist/esm/polyMktsPxFeed.d.ts +6 -4
  89. package/dist/esm/polyMktsPxFeed.js +24 -3
  90. package/dist/esm/polyMktsPxFeed.js.map +1 -1
  91. package/dist/esm/priceFeeds.d.ts +6 -7
  92. package/dist/esm/priceFeeds.js +36 -14
  93. package/dist/esm/priceFeeds.js.map +1 -1
  94. package/dist/esm/version.d.ts +1 -1
  95. package/dist/esm/version.js +1 -1
  96. package/package.json +1 -1
  97. package/src/abi/IPerpetualManager.json +124 -3
  98. package/src/abi/OracleFactory.json +523 -454
  99. package/src/abi/PerpetualManagerProxy.json +1596 -1386
  100. package/src/brokerTool.ts +16 -2
  101. package/src/contracts/IPerpetualManager.ts +107 -7
  102. package/src/contracts/OracleFactory.ts +100 -26
  103. package/src/contracts/PerpetualManagerProxy.ts +192 -3
  104. package/src/contracts/factories/IPerpetualManager__factory.ts +124 -3
  105. package/src/contracts/factories/OracleFactory__factory.ts +94 -25
  106. package/src/contracts/factories/PerpetualManagerProxy__factory.ts +212 -2
  107. package/src/d8XMath.ts +304 -2
  108. package/src/liquidatorTool.ts +29 -14
  109. package/src/marketData.ts +415 -238
  110. package/src/nodeSDKTypes.ts +30 -2
  111. package/src/orderExecutorTool.ts +48 -20
  112. package/src/perpetualDataHandler.ts +87 -45
  113. package/src/perpetualEventHandler.ts +6 -7
  114. package/src/polyMktsPxFeed.ts +30 -5
  115. package/src/priceFeeds.ts +41 -17
  116. package/src/version.ts +1 -1
  117. package/dist/cjs/abi/BeaconProxy.json +0 -71
  118. package/dist/cjs/abi/Maintainer.json +0 -774
  119. package/dist/cjs/abi/MockToken.json +0 -347
  120. package/dist/cjs/abi/UUPSUpgradeable.json +0 -104
  121. package/dist/cjs/abi/WeETH.json +0 -310
  122. package/dist/cjs/abi-zkevm/LimitOrderBook.json +0 -910
  123. package/dist/cjs/abi-zkevm/LimitOrderBookFactory.json +0 -236
  124. package/dist/cjs/contracts/BeaconProxy.d.ts +0 -63
  125. package/dist/cjs/contracts/BeaconProxy.js +0 -3
  126. package/dist/cjs/contracts/BeaconProxy.js.map +0 -1
  127. package/dist/cjs/contracts/Maintainer.d.ts +0 -799
  128. package/dist/cjs/contracts/Maintainer.js +0 -3
  129. package/dist/cjs/contracts/Maintainer.js.map +0 -1
  130. package/dist/cjs/contracts/MockToken.d.ts +0 -263
  131. package/dist/cjs/contracts/MockToken.js +0 -3
  132. package/dist/cjs/contracts/MockToken.js.map +0 -1
  133. package/dist/cjs/contracts/UUPSUpgradeable.d.ts +0 -118
  134. package/dist/cjs/contracts/UUPSUpgradeable.js +0 -3
  135. package/dist/cjs/contracts/UUPSUpgradeable.js.map +0 -1
  136. package/dist/cjs/contracts/WeETH.d.ts +0 -503
  137. package/dist/cjs/contracts/WeETH.js +0 -3
  138. package/dist/cjs/contracts/WeETH.js.map +0 -1
  139. package/dist/cjs/contracts/factories/BeaconProxy__factory.d.ts +0 -61
  140. package/dist/cjs/contracts/factories/BeaconProxy__factory.js +0 -89
  141. package/dist/cjs/contracts/factories/BeaconProxy__factory.js.map +0 -1
  142. package/dist/cjs/contracts/factories/Maintainer__factory.d.ts +0 -609
  143. package/dist/cjs/contracts/factories/Maintainer__factory.js +0 -792
  144. package/dist/cjs/contracts/factories/Maintainer__factory.js.map +0 -1
  145. package/dist/cjs/contracts/factories/MockToken__factory.js +0 -365
  146. package/dist/cjs/contracts/factories/MockToken__factory.js.map +0 -1
  147. package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.d.ts +0 -87
  148. package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.js +0 -122
  149. package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.js.map +0 -1
  150. package/dist/cjs/contracts/factories/WeETH__factory.d.ts +0 -545
  151. package/dist/cjs/contracts/factories/WeETH__factory.js +0 -721
  152. package/dist/cjs/contracts/factories/WeETH__factory.js.map +0 -1
  153. package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.d.ts +0 -4136
  154. package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.js +0 -5324
  155. package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.js.map +0 -1
  156. package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.d.ts +0 -189
  157. package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.js +0 -254
  158. package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.js.map +0 -1
  159. package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.d.ts +0 -715
  160. package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.js +0 -928
  161. package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.js.map +0 -1
  162. package/dist/cjs/contracts/factories/lean0/ShareToken__factory.d.ts +0 -344
  163. package/dist/cjs/contracts/factories/lean0/ShareToken__factory.js +0 -456
  164. package/dist/cjs/contracts/factories/lean0/ShareToken__factory.js.map +0 -1
  165. package/dist/cjs/contracts/factories/lean0/index.d.ts +0 -4
  166. package/dist/cjs/contracts/factories/lean0/index.js +0 -15
  167. package/dist/cjs/contracts/factories/lean0/index.js.map +0 -1
  168. package/dist/cjs/contracts/lean0/IPerpetualManager.d.ts +0 -2821
  169. package/dist/cjs/contracts/lean0/IPerpetualManager.js +0 -3
  170. package/dist/cjs/contracts/lean0/IPerpetualManager.js.map +0 -1
  171. package/dist/cjs/contracts/lean0/LimitOrderBook.d.ts +0 -533
  172. package/dist/cjs/contracts/lean0/LimitOrderBook.js +0 -3
  173. package/dist/cjs/contracts/lean0/LimitOrderBook.js.map +0 -1
  174. package/dist/cjs/contracts/lean0/LimitOrderBookFactory.d.ts +0 -210
  175. package/dist/cjs/contracts/lean0/LimitOrderBookFactory.js +0 -3
  176. package/dist/cjs/contracts/lean0/LimitOrderBookFactory.js.map +0 -1
  177. package/dist/cjs/contracts/lean0/ShareToken.d.ts +0 -320
  178. package/dist/cjs/contracts/lean0/ShareToken.js +0 -3
  179. package/dist/cjs/contracts/lean0/ShareToken.js.map +0 -1
  180. package/dist/cjs/contracts/lean0/index.d.ts +0 -4
  181. package/dist/cjs/contracts/lean0/index.js +0 -3
  182. package/dist/cjs/contracts/lean0/index.js.map +0 -1
  183. package/dist/esm/abi/BeaconProxy.json +0 -71
  184. package/dist/esm/abi/Maintainer.json +0 -774
  185. package/dist/esm/abi/MockToken.json +0 -347
  186. package/dist/esm/abi/UUPSUpgradeable.json +0 -104
  187. package/dist/esm/abi/WeETH.json +0 -310
  188. package/dist/esm/abi/lean0/IPerpetualManager.json +0 -5306
  189. package/dist/esm/abi/lean0/LimitOrderBook.json +0 -910
  190. package/dist/esm/abi/lean0/LimitOrderBookFactory.json +0 -236
  191. package/dist/esm/abi/lean0/ShareToken.json +0 -438
  192. package/dist/esm/abi-zkevm/LimitOrderBook.json +0 -910
  193. package/dist/esm/abi-zkevm/LimitOrderBookFactory.json +0 -236
  194. package/dist/esm/contracts/BeaconProxy.d.ts +0 -63
  195. package/dist/esm/contracts/BeaconProxy.js +0 -2
  196. package/dist/esm/contracts/BeaconProxy.js.map +0 -1
  197. package/dist/esm/contracts/Maintainer.d.ts +0 -799
  198. package/dist/esm/contracts/Maintainer.js +0 -2
  199. package/dist/esm/contracts/Maintainer.js.map +0 -1
  200. package/dist/esm/contracts/MockToken.d.ts +0 -263
  201. package/dist/esm/contracts/MockToken.js +0 -2
  202. package/dist/esm/contracts/MockToken.js.map +0 -1
  203. package/dist/esm/contracts/UUPSUpgradeable.d.ts +0 -118
  204. package/dist/esm/contracts/UUPSUpgradeable.js +0 -2
  205. package/dist/esm/contracts/UUPSUpgradeable.js.map +0 -1
  206. package/dist/esm/contracts/WeETH.d.ts +0 -503
  207. package/dist/esm/contracts/WeETH.js +0 -2
  208. package/dist/esm/contracts/WeETH.js.map +0 -1
  209. package/dist/esm/contracts/factories/BeaconProxy__factory.d.ts +0 -61
  210. package/dist/esm/contracts/factories/BeaconProxy__factory.js +0 -85
  211. package/dist/esm/contracts/factories/BeaconProxy__factory.js.map +0 -1
  212. package/dist/esm/contracts/factories/Maintainer__factory.d.ts +0 -609
  213. package/dist/esm/contracts/factories/Maintainer__factory.js +0 -788
  214. package/dist/esm/contracts/factories/Maintainer__factory.js.map +0 -1
  215. package/dist/esm/contracts/factories/MockToken__factory.d.ts +0 -273
  216. package/dist/esm/contracts/factories/MockToken__factory.js.map +0 -1
  217. package/dist/esm/contracts/factories/UUPSUpgradeable__factory.d.ts +0 -87
  218. package/dist/esm/contracts/factories/UUPSUpgradeable__factory.js +0 -118
  219. package/dist/esm/contracts/factories/UUPSUpgradeable__factory.js.map +0 -1
  220. package/dist/esm/contracts/factories/WeETH__factory.d.ts +0 -545
  221. package/dist/esm/contracts/factories/WeETH__factory.js +0 -717
  222. package/dist/esm/contracts/factories/WeETH__factory.js.map +0 -1
  223. package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.d.ts +0 -4136
  224. package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.js +0 -5320
  225. package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.js.map +0 -1
  226. package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.d.ts +0 -189
  227. package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.js +0 -250
  228. package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.js.map +0 -1
  229. package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.d.ts +0 -715
  230. package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.js +0 -924
  231. package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.js.map +0 -1
  232. package/dist/esm/contracts/factories/lean0/ShareToken__factory.d.ts +0 -344
  233. package/dist/esm/contracts/factories/lean0/ShareToken__factory.js +0 -452
  234. package/dist/esm/contracts/factories/lean0/ShareToken__factory.js.map +0 -1
  235. package/dist/esm/contracts/factories/lean0/index.d.ts +0 -4
  236. package/dist/esm/contracts/factories/lean0/index.js +0 -8
  237. package/dist/esm/contracts/factories/lean0/index.js.map +0 -1
  238. package/dist/esm/contracts/lean0/IPerpetualManager.d.ts +0 -2821
  239. package/dist/esm/contracts/lean0/IPerpetualManager.js +0 -2
  240. package/dist/esm/contracts/lean0/IPerpetualManager.js.map +0 -1
  241. package/dist/esm/contracts/lean0/LimitOrderBook.d.ts +0 -533
  242. package/dist/esm/contracts/lean0/LimitOrderBook.js +0 -2
  243. package/dist/esm/contracts/lean0/LimitOrderBook.js.map +0 -1
  244. package/dist/esm/contracts/lean0/LimitOrderBookFactory.d.ts +0 -210
  245. package/dist/esm/contracts/lean0/LimitOrderBookFactory.js +0 -2
  246. package/dist/esm/contracts/lean0/LimitOrderBookFactory.js.map +0 -1
  247. package/dist/esm/contracts/lean0/ShareToken.d.ts +0 -320
  248. package/dist/esm/contracts/lean0/ShareToken.js +0 -2
  249. package/dist/esm/contracts/lean0/ShareToken.js.map +0 -1
  250. package/dist/esm/contracts/lean0/index.d.ts +0 -4
  251. package/dist/esm/contracts/lean0/index.js +0 -2
  252. package/dist/esm/contracts/lean0/index.js.map +0 -1
package/src/brokerTool.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { ABK64x64ToFloat } from "./d8XMath";
1
+ import { ABK64x64ToFloat, floatToABK64x64 } from "./d8XMath";
2
2
  import { NodeSDKConfig, Order, PerpetualStaticInfo, SmartContractOrder } from "./nodeSDKTypes";
3
3
  import PerpetualDataHandler from "./perpetualDataHandler";
4
4
  import WriteAccessHandler from "./writeAccessHandler";
@@ -6,6 +6,7 @@ import WriteAccessHandler from "./writeAccessHandler";
6
6
  import { Buffer } from "buffer";
7
7
  import AccountTrade from "./accountTrade";
8
8
  import { AbiCoder, BigNumberish, ContractTransactionResponse, keccak256, Overrides, Signer } from "ethers";
9
+ import { BUY_SIDE } from "./constants";
9
10
  /**
10
11
  * Functions for white-label partners to determine fees, deposit lots, and sign-up traders.
11
12
  * This class requires a private key and executes smart-contract interactions that
@@ -184,10 +185,14 @@ export default class BrokerTool extends WriteAccessHandler {
184
185
  /**
185
186
  * Determine exchange fee based on an order and a trader.
186
187
  * This is the fee charged by the exchange only, excluding the white-label partner fee,
187
- * and it takes into account whether the order given here has been signed by a white-label partner or not.
188
+ * For regular perpetuals, the result takes into account whether the order given here has been
189
+ * signed by a white-label partner or not.
188
190
  * Use this, for instance, to verify that the fee to be charged for a given order is as expected,
189
191
  * before and after signing it with brokerTool.signOrder.
190
192
  * This fee is equal or lower than the white-label partner induced fee, provided the order is properly signed.
193
+ *
194
+ * For prediction markets, the correct fee is to be applied as tradeamt * fee/s3.
195
+ *
191
196
  * @param {Order} order Order structure. As a minimum the structure needs to
192
197
  * specify symbol, side, type and quantity.
193
198
  * @param {string} traderAddr Address of the trader for whom to determine the fee.
@@ -220,6 +225,15 @@ export default class BrokerTool extends WriteAccessHandler {
220
225
  if (this.proxyContract == null || this.signer == null) {
221
226
  throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
222
227
  }
228
+ if (this.isPredictionMarket(order.symbol)) {
229
+ const id = BrokerTool.symbolToPerpetualId(order.symbol, this.symbolToPerpStaticInfo);
230
+ const fAmount = order.side == BUY_SIDE ? floatToABK64x64(order.quantity) : floatToABK64x64(-order.quantity);
231
+ const lvgTdr = order.leverage == undefined ? 0 : Math.round(100 * order.leverage);
232
+ const feeTbps = await this.proxyContract.getExchangeFeePrdMkts(id, fAmount, lvgTdr);
233
+
234
+ return feeTbps / 100_000;
235
+ }
236
+ // regular markets
223
237
  let scOrder = AccountTrade.toSmartContractOrder(order, traderAddr, this.symbolToPerpStaticInfo);
224
238
  let feeTbps = await this.proxyContract.determineExchangeFee(scOrder, overrides || {});
225
239
  return feeTbps / 100_000;
@@ -436,6 +436,7 @@ export interface IPerpetualManagerInterface extends Interface {
436
436
  | "createLiquidityPool"
437
437
  | "createPerpetual"
438
438
  | "deactivatePerp"
439
+ | "decodeUint16Float"
439
440
  | "decreasePoolCash"
440
441
  | "deposit"
441
442
  | "depositBrokerLots"
@@ -444,6 +445,7 @@ export interface IPerpetualManagerInterface extends Interface {
444
445
  | "determineExchangeFee"
445
446
  | "distributeFees"
446
447
  | "distributeFeesLiquidation"
448
+ | "entropy"
447
449
  | "executeCancelOrder"
448
450
  | "executeLiquidityWithdrawal"
449
451
  | "executeTrade"
@@ -503,7 +505,9 @@ export interface IPerpetualManagerInterface extends Interface {
503
505
  | "isPerpMarketClosed"
504
506
  | "liquidateByAMM"
505
507
  | "pauseLiquidityProvision"
508
+ | "prdMktsLvgFee"
506
509
  | "preTrade"
510
+ | "priceImpact"
507
511
  | "queryExchangeFee"
508
512
  | "queryMidPrices"
509
513
  | "queryPerpetualPrice"
@@ -669,6 +673,10 @@ export interface IPerpetualManagerInterface extends Interface {
669
673
  functionFragment: "deactivatePerp",
670
674
  values: [BigNumberish]
671
675
  ): string;
676
+ encodeFunctionData(
677
+ functionFragment: "decodeUint16Float",
678
+ values: [BigNumberish]
679
+ ): string;
672
680
  encodeFunctionData(
673
681
  functionFragment: "decreasePoolCash",
674
682
  values: [BigNumberish, BigNumberish]
@@ -707,6 +715,10 @@ export interface IPerpetualManagerInterface extends Interface {
707
715
  functionFragment: "distributeFeesLiquidation",
708
716
  values: [BigNumberish, AddressLike, BigNumberish, BigNumberish]
709
717
  ): string;
718
+ encodeFunctionData(
719
+ functionFragment: "entropy",
720
+ values: [BigNumberish]
721
+ ): string;
710
722
  encodeFunctionData(
711
723
  functionFragment: "executeCancelOrder",
712
724
  values: [BigNumberish, BytesLike]
@@ -980,10 +992,25 @@ export interface IPerpetualManagerInterface extends Interface {
980
992
  functionFragment: "pauseLiquidityProvision",
981
993
  values: [BigNumberish, boolean]
982
994
  ): string;
995
+ encodeFunctionData(
996
+ functionFragment: "prdMktsLvgFee",
997
+ values: [
998
+ BigNumberish,
999
+ BigNumberish,
1000
+ BigNumberish,
1001
+ BigNumberish,
1002
+ BigNumberish,
1003
+ BigNumberish
1004
+ ]
1005
+ ): string;
983
1006
  encodeFunctionData(
984
1007
  functionFragment: "preTrade",
985
1008
  values: [IPerpetualOrder.OrderStruct]
986
1009
  ): string;
1010
+ encodeFunctionData(
1011
+ functionFragment: "priceImpact",
1012
+ values: [BigNumberish, BigNumberish]
1013
+ ): string;
987
1014
  encodeFunctionData(
988
1015
  functionFragment: "queryExchangeFee",
989
1016
  values: [BigNumberish, AddressLike, AddressLike]
@@ -994,7 +1021,13 @@ export interface IPerpetualManagerInterface extends Interface {
994
1021
  ): string;
995
1022
  encodeFunctionData(
996
1023
  functionFragment: "queryPerpetualPrice",
997
- values: [BigNumberish, BigNumberish, [BigNumberish, BigNumberish]]
1024
+ values: [
1025
+ BigNumberish,
1026
+ BigNumberish,
1027
+ [BigNumberish, BigNumberish],
1028
+ BigNumberish,
1029
+ BigNumberish
1030
+ ]
998
1031
  ): string;
999
1032
  encodeFunctionData(
1000
1033
  functionFragment: "rebalance",
@@ -1239,6 +1272,10 @@ export interface IPerpetualManagerInterface extends Interface {
1239
1272
  functionFragment: "deactivatePerp",
1240
1273
  data: BytesLike
1241
1274
  ): Result;
1275
+ decodeFunctionResult(
1276
+ functionFragment: "decodeUint16Float",
1277
+ data: BytesLike
1278
+ ): Result;
1242
1279
  decodeFunctionResult(
1243
1280
  functionFragment: "decreasePoolCash",
1244
1281
  data: BytesLike
@@ -1268,6 +1305,7 @@ export interface IPerpetualManagerInterface extends Interface {
1268
1305
  functionFragment: "distributeFeesLiquidation",
1269
1306
  data: BytesLike
1270
1307
  ): Result;
1308
+ decodeFunctionResult(functionFragment: "entropy", data: BytesLike): Result;
1271
1309
  decodeFunctionResult(
1272
1310
  functionFragment: "executeCancelOrder",
1273
1311
  data: BytesLike
@@ -1501,7 +1539,15 @@ export interface IPerpetualManagerInterface extends Interface {
1501
1539
  functionFragment: "pauseLiquidityProvision",
1502
1540
  data: BytesLike
1503
1541
  ): Result;
1542
+ decodeFunctionResult(
1543
+ functionFragment: "prdMktsLvgFee",
1544
+ data: BytesLike
1545
+ ): Result;
1504
1546
  decodeFunctionResult(functionFragment: "preTrade", data: BytesLike): Result;
1547
+ decodeFunctionResult(
1548
+ functionFragment: "priceImpact",
1549
+ data: BytesLike
1550
+ ): Result;
1505
1551
  decodeFunctionResult(
1506
1552
  functionFragment: "queryExchangeFee",
1507
1553
  data: BytesLike
@@ -2663,6 +2709,8 @@ export interface IPerpetualManager extends BaseContract {
2663
2709
  "nonpayable"
2664
2710
  >;
2665
2711
 
2712
+ decodeUint16Float: TypedContractMethod<[num: BigNumberish], [bigint], "view">;
2713
+
2666
2714
  decreasePoolCash: TypedContractMethod<
2667
2715
  [_iPoolIdx: BigNumberish, _fAmount: BigNumberish],
2668
2716
  [void],
@@ -2731,6 +2779,8 @@ export interface IPerpetualManager extends BaseContract {
2731
2779
  "nonpayable"
2732
2780
  >;
2733
2781
 
2782
+ entropy: TypedContractMethod<[_p: BigNumberish], [bigint], "view">;
2783
+
2734
2784
  executeCancelOrder: TypedContractMethod<
2735
2785
  [_perpetualId: BigNumberish, _digest: BytesLike],
2736
2786
  [void],
@@ -2907,7 +2957,7 @@ export interface IPerpetualManager extends BaseContract {
2907
2957
 
2908
2958
  getOraclePrice: TypedContractMethod<
2909
2959
  [_baseQuote: [BytesLike, BytesLike]],
2910
- [bigint],
2960
+ [[bigint, bigint]],
2911
2961
  "view"
2912
2962
  >;
2913
2963
 
@@ -3102,12 +3152,31 @@ export interface IPerpetualManager extends BaseContract {
3102
3152
  "nonpayable"
3103
3153
  >;
3104
3154
 
3155
+ prdMktsLvgFee: TypedContractMethod<
3156
+ [
3157
+ _fPx: BigNumberish,
3158
+ _fm: BigNumberish,
3159
+ _fTotLong: BigNumberish,
3160
+ _fTotShort: BigNumberish,
3161
+ _fTradeAmt: BigNumberish,
3162
+ _fMgnRate: BigNumberish
3163
+ ],
3164
+ [bigint],
3165
+ "view"
3166
+ >;
3167
+
3105
3168
  preTrade: TypedContractMethod<
3106
3169
  [_order: IPerpetualOrder.OrderStruct],
3107
3170
  [[bigint, bigint]],
3108
3171
  "nonpayable"
3109
3172
  >;
3110
3173
 
3174
+ priceImpact: TypedContractMethod<
3175
+ [_amount: BigNumberish, _params: BigNumberish],
3176
+ [bigint],
3177
+ "view"
3178
+ >;
3179
+
3111
3180
  queryExchangeFee: TypedContractMethod<
3112
3181
  [_poolId: BigNumberish, _traderAddr: AddressLike, _brokerAddr: AddressLike],
3113
3182
  [bigint],
@@ -3115,7 +3184,7 @@ export interface IPerpetualManager extends BaseContract {
3115
3184
  >;
3116
3185
 
3117
3186
  queryMidPrices: TypedContractMethod<
3118
- [perpetualIds: BigNumberish[], idxPriceDataPairs: BigNumberish[]],
3187
+ [_perpetualIds: BigNumberish[], _idxPriceDataPairs: BigNumberish[]],
3119
3188
  [bigint[]],
3120
3189
  "view"
3121
3190
  >;
@@ -3124,7 +3193,9 @@ export interface IPerpetualManager extends BaseContract {
3124
3193
  [
3125
3194
  _iPerpetualId: BigNumberish,
3126
3195
  _fTradeAmountBC: BigNumberish,
3127
- _fIndexPrice: [BigNumberish, BigNumberish]
3196
+ _fIndexPrice: [BigNumberish, BigNumberish],
3197
+ _confTbps: BigNumberish,
3198
+ _params: BigNumberish
3128
3199
  ],
3129
3200
  [bigint],
3130
3201
  "view"
@@ -3562,6 +3633,9 @@ export interface IPerpetualManager extends BaseContract {
3562
3633
  getFunction(
3563
3634
  nameOrSignature: "deactivatePerp"
3564
3635
  ): TypedContractMethod<[_perpetualId: BigNumberish], [void], "nonpayable">;
3636
+ getFunction(
3637
+ nameOrSignature: "decodeUint16Float"
3638
+ ): TypedContractMethod<[num: BigNumberish], [bigint], "view">;
3565
3639
  getFunction(
3566
3640
  nameOrSignature: "decreasePoolCash"
3567
3641
  ): TypedContractMethod<
@@ -3638,6 +3712,9 @@ export interface IPerpetualManager extends BaseContract {
3638
3712
  [bigint],
3639
3713
  "nonpayable"
3640
3714
  >;
3715
+ getFunction(
3716
+ nameOrSignature: "entropy"
3717
+ ): TypedContractMethod<[_p: BigNumberish], [bigint], "view">;
3641
3718
  getFunction(
3642
3719
  nameOrSignature: "executeCancelOrder"
3643
3720
  ): TypedContractMethod<
@@ -3819,7 +3896,7 @@ export interface IPerpetualManager extends BaseContract {
3819
3896
  nameOrSignature: "getOraclePrice"
3820
3897
  ): TypedContractMethod<
3821
3898
  [_baseQuote: [BytesLike, BytesLike]],
3822
- [bigint],
3899
+ [[bigint, bigint]],
3823
3900
  "view"
3824
3901
  >;
3825
3902
  getFunction(
@@ -4020,6 +4097,20 @@ export interface IPerpetualManager extends BaseContract {
4020
4097
  [void],
4021
4098
  "nonpayable"
4022
4099
  >;
4100
+ getFunction(
4101
+ nameOrSignature: "prdMktsLvgFee"
4102
+ ): TypedContractMethod<
4103
+ [
4104
+ _fPx: BigNumberish,
4105
+ _fm: BigNumberish,
4106
+ _fTotLong: BigNumberish,
4107
+ _fTotShort: BigNumberish,
4108
+ _fTradeAmt: BigNumberish,
4109
+ _fMgnRate: BigNumberish
4110
+ ],
4111
+ [bigint],
4112
+ "view"
4113
+ >;
4023
4114
  getFunction(
4024
4115
  nameOrSignature: "preTrade"
4025
4116
  ): TypedContractMethod<
@@ -4027,6 +4118,13 @@ export interface IPerpetualManager extends BaseContract {
4027
4118
  [[bigint, bigint]],
4028
4119
  "nonpayable"
4029
4120
  >;
4121
+ getFunction(
4122
+ nameOrSignature: "priceImpact"
4123
+ ): TypedContractMethod<
4124
+ [_amount: BigNumberish, _params: BigNumberish],
4125
+ [bigint],
4126
+ "view"
4127
+ >;
4030
4128
  getFunction(
4031
4129
  nameOrSignature: "queryExchangeFee"
4032
4130
  ): TypedContractMethod<
@@ -4037,7 +4135,7 @@ export interface IPerpetualManager extends BaseContract {
4037
4135
  getFunction(
4038
4136
  nameOrSignature: "queryMidPrices"
4039
4137
  ): TypedContractMethod<
4040
- [perpetualIds: BigNumberish[], idxPriceDataPairs: BigNumberish[]],
4138
+ [_perpetualIds: BigNumberish[], _idxPriceDataPairs: BigNumberish[]],
4041
4139
  [bigint[]],
4042
4140
  "view"
4043
4141
  >;
@@ -4047,7 +4145,9 @@ export interface IPerpetualManager extends BaseContract {
4047
4145
  [
4048
4146
  _iPerpetualId: BigNumberish,
4049
4147
  _fTradeAmountBC: BigNumberish,
4050
- _fIndexPrice: [BigNumberish, BigNumberish]
4148
+ _fIndexPrice: [BigNumberish, BigNumberish],
4149
+ _confTbps: BigNumberish,
4150
+ _params: BigNumberish
4051
4151
  ],
4052
4152
  [bigint],
4053
4153
  "view"
@@ -39,14 +39,15 @@ export interface OracleFactoryInterface extends Interface {
39
39
  | "addRoute"
40
40
  | "createOracle"
41
41
  | "existsRoute"
42
+ | "getEmaPrice"
42
43
  | "getRoute"
43
44
  | "getRouteIds"
44
45
  | "getSpotPrice"
45
- | "isRouteTerminated"
46
46
  | "onDemandFeed"
47
47
  | "owner"
48
48
  | "pyth"
49
49
  | "renounceOwnership"
50
+ | "setMarketClosed"
50
51
  | "transferOwnership"
51
52
  | "updatePriceFeeds"
52
53
  ): FunctionFragment;
@@ -57,6 +58,7 @@ export interface OracleFactoryInterface extends Interface {
57
58
  | "OracleCreated"
58
59
  | "OwnershipTransferred"
59
60
  | "RouteAdded"
61
+ | "SetMarketClosed"
60
62
  | "ShortRouteAdded"
61
63
  ): EventFragment;
62
64
 
@@ -83,6 +85,10 @@ export interface OracleFactoryInterface extends Interface {
83
85
  functionFragment: "existsRoute",
84
86
  values: [BytesLike, BytesLike]
85
87
  ): string;
88
+ encodeFunctionData(
89
+ functionFragment: "getEmaPrice",
90
+ values: [BytesLike, BytesLike]
91
+ ): string;
86
92
  encodeFunctionData(
87
93
  functionFragment: "getRoute",
88
94
  values: [BytesLike, BytesLike]
@@ -95,10 +101,6 @@ export interface OracleFactoryInterface extends Interface {
95
101
  functionFragment: "getSpotPrice",
96
102
  values: [BytesLike, BytesLike]
97
103
  ): string;
98
- encodeFunctionData(
99
- functionFragment: "isRouteTerminated",
100
- values: [BytesLike, BytesLike]
101
- ): string;
102
104
  encodeFunctionData(
103
105
  functionFragment: "onDemandFeed",
104
106
  values?: undefined
@@ -109,6 +111,10 @@ export interface OracleFactoryInterface extends Interface {
109
111
  functionFragment: "renounceOwnership",
110
112
  values?: undefined
111
113
  ): string;
114
+ encodeFunctionData(
115
+ functionFragment: "setMarketClosed",
116
+ values: [BytesLike, BytesLike, boolean]
117
+ ): string;
112
118
  encodeFunctionData(
113
119
  functionFragment: "transferOwnership",
114
120
  values: [AddressLike]
@@ -128,17 +134,17 @@ export interface OracleFactoryInterface extends Interface {
128
134
  functionFragment: "existsRoute",
129
135
  data: BytesLike
130
136
  ): Result;
131
- decodeFunctionResult(functionFragment: "getRoute", data: BytesLike): Result;
132
137
  decodeFunctionResult(
133
- functionFragment: "getRouteIds",
138
+ functionFragment: "getEmaPrice",
134
139
  data: BytesLike
135
140
  ): Result;
141
+ decodeFunctionResult(functionFragment: "getRoute", data: BytesLike): Result;
136
142
  decodeFunctionResult(
137
- functionFragment: "getSpotPrice",
143
+ functionFragment: "getRouteIds",
138
144
  data: BytesLike
139
145
  ): Result;
140
146
  decodeFunctionResult(
141
- functionFragment: "isRouteTerminated",
147
+ functionFragment: "getSpotPrice",
142
148
  data: BytesLike
143
149
  ): Result;
144
150
  decodeFunctionResult(
@@ -151,6 +157,10 @@ export interface OracleFactoryInterface extends Interface {
151
157
  functionFragment: "renounceOwnership",
152
158
  data: BytesLike
153
159
  ): Result;
160
+ decodeFunctionResult(
161
+ functionFragment: "setMarketClosed",
162
+ data: BytesLike
163
+ ): Result;
154
164
  decodeFunctionResult(
155
165
  functionFragment: "transferOwnership",
156
166
  data: BytesLike
@@ -243,6 +253,31 @@ export namespace RouteAddedEvent {
243
253
  export type LogDescription = TypedLogDescription<Event>;
244
254
  }
245
255
 
256
+ export namespace SetMarketClosedEvent {
257
+ export type InputTuple = [
258
+ baseCurrency: BytesLike,
259
+ quoteCurrency: BytesLike,
260
+ oracle: AddressLike,
261
+ marketClosed: boolean
262
+ ];
263
+ export type OutputTuple = [
264
+ baseCurrency: string,
265
+ quoteCurrency: string,
266
+ oracle: string,
267
+ marketClosed: boolean
268
+ ];
269
+ export interface OutputObject {
270
+ baseCurrency: string;
271
+ quoteCurrency: string;
272
+ oracle: string;
273
+ marketClosed: boolean;
274
+ }
275
+ export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
276
+ export type Filter = TypedDeferredTopicFilter<Event>;
277
+ export type Log = TypedEventLog<Event>;
278
+ export type LogDescription = TypedLogDescription<Event>;
279
+ }
280
+
246
281
  export namespace ShortRouteAddedEvent {
247
282
  export type InputTuple = [
248
283
  baseCurrency: BytesLike,
@@ -340,6 +375,12 @@ export interface OracleFactory extends BaseContract {
340
375
  "view"
341
376
  >;
342
377
 
378
+ getEmaPrice: TypedContractMethod<
379
+ [_baseCurrency: BytesLike, _quoteCurrency: BytesLike],
380
+ [[bigint, bigint, bigint]],
381
+ "view"
382
+ >;
383
+
343
384
  getRoute: TypedContractMethod<
344
385
  [_baseCurrency: BytesLike, _quoteCurrency: BytesLike],
345
386
  [OracleFactory.OracleDataStructOutput[]],
@@ -348,19 +389,13 @@ export interface OracleFactory extends BaseContract {
348
389
 
349
390
  getRouteIds: TypedContractMethod<
350
391
  [_baseQuote: [BytesLike, BytesLike]],
351
- [[string[], boolean[]]],
392
+ [[string[], boolean[]] & { id: string[]; isPyth: boolean[] }],
352
393
  "view"
353
394
  >;
354
395
 
355
396
  getSpotPrice: TypedContractMethod<
356
397
  [_baseCurrency: BytesLike, _quoteCurrency: BytesLike],
357
- [[bigint, bigint]],
358
- "view"
359
- >;
360
-
361
- isRouteTerminated: TypedContractMethod<
362
- [_baseCurrency: BytesLike, _quoteCurrency: BytesLike],
363
- [boolean],
398
+ [[bigint, bigint, bigint]],
364
399
  "view"
365
400
  >;
366
401
 
@@ -372,6 +407,16 @@ export interface OracleFactory extends BaseContract {
372
407
 
373
408
  renounceOwnership: TypedContractMethod<[], [void], "nonpayable">;
374
409
 
410
+ setMarketClosed: TypedContractMethod<
411
+ [
412
+ _baseCurrency: BytesLike,
413
+ _quoteCurrency: BytesLike,
414
+ _marketClosed: boolean
415
+ ],
416
+ [void],
417
+ "nonpayable"
418
+ >;
419
+
375
420
  transferOwnership: TypedContractMethod<
376
421
  [newOwner: AddressLike],
377
422
  [void],
@@ -429,6 +474,13 @@ export interface OracleFactory extends BaseContract {
429
474
  [boolean],
430
475
  "view"
431
476
  >;
477
+ getFunction(
478
+ nameOrSignature: "getEmaPrice"
479
+ ): TypedContractMethod<
480
+ [_baseCurrency: BytesLike, _quoteCurrency: BytesLike],
481
+ [[bigint, bigint, bigint]],
482
+ "view"
483
+ >;
432
484
  getFunction(
433
485
  nameOrSignature: "getRoute"
434
486
  ): TypedContractMethod<
@@ -440,21 +492,14 @@ export interface OracleFactory extends BaseContract {
440
492
  nameOrSignature: "getRouteIds"
441
493
  ): TypedContractMethod<
442
494
  [_baseQuote: [BytesLike, BytesLike]],
443
- [[string[], boolean[]]],
495
+ [[string[], boolean[]] & { id: string[]; isPyth: boolean[] }],
444
496
  "view"
445
497
  >;
446
498
  getFunction(
447
499
  nameOrSignature: "getSpotPrice"
448
500
  ): TypedContractMethod<
449
501
  [_baseCurrency: BytesLike, _quoteCurrency: BytesLike],
450
- [[bigint, bigint]],
451
- "view"
452
- >;
453
- getFunction(
454
- nameOrSignature: "isRouteTerminated"
455
- ): TypedContractMethod<
456
- [_baseCurrency: BytesLike, _quoteCurrency: BytesLike],
457
- [boolean],
502
+ [[bigint, bigint, bigint]],
458
503
  "view"
459
504
  >;
460
505
  getFunction(
@@ -469,6 +514,17 @@ export interface OracleFactory extends BaseContract {
469
514
  getFunction(
470
515
  nameOrSignature: "renounceOwnership"
471
516
  ): TypedContractMethod<[], [void], "nonpayable">;
517
+ getFunction(
518
+ nameOrSignature: "setMarketClosed"
519
+ ): TypedContractMethod<
520
+ [
521
+ _baseCurrency: BytesLike,
522
+ _quoteCurrency: BytesLike,
523
+ _marketClosed: boolean
524
+ ],
525
+ [void],
526
+ "nonpayable"
527
+ >;
472
528
  getFunction(
473
529
  nameOrSignature: "transferOwnership"
474
530
  ): TypedContractMethod<[newOwner: AddressLike], [void], "nonpayable">;
@@ -513,6 +569,13 @@ export interface OracleFactory extends BaseContract {
513
569
  RouteAddedEvent.OutputTuple,
514
570
  RouteAddedEvent.OutputObject
515
571
  >;
572
+ getEvent(
573
+ key: "SetMarketClosed"
574
+ ): TypedContractEvent<
575
+ SetMarketClosedEvent.InputTuple,
576
+ SetMarketClosedEvent.OutputTuple,
577
+ SetMarketClosedEvent.OutputObject
578
+ >;
516
579
  getEvent(
517
580
  key: "ShortRouteAdded"
518
581
  ): TypedContractEvent<
@@ -566,6 +629,17 @@ export interface OracleFactory extends BaseContract {
566
629
  RouteAddedEvent.OutputObject
567
630
  >;
568
631
 
632
+ "SetMarketClosed(bytes4,bytes4,address,bool)": TypedContractEvent<
633
+ SetMarketClosedEvent.InputTuple,
634
+ SetMarketClosedEvent.OutputTuple,
635
+ SetMarketClosedEvent.OutputObject
636
+ >;
637
+ SetMarketClosed: TypedContractEvent<
638
+ SetMarketClosedEvent.InputTuple,
639
+ SetMarketClosedEvent.OutputTuple,
640
+ SetMarketClosedEvent.OutputObject
641
+ >;
642
+
569
643
  "ShortRouteAdded(bytes4,bytes4,address)": TypedContractEvent<
570
644
  ShortRouteAddedEvent.InputTuple,
571
645
  ShortRouteAddedEvent.OutputTuple,