@d8x/perpetuals-sdk 2.7.5 → 2.7.7

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 (229) hide show
  1. package/dist/cjs/d8XMath.d.ts +2 -2
  2. package/dist/cjs/d8XMath.js +50 -30
  3. package/dist/cjs/d8XMath.js.map +1 -1
  4. package/dist/cjs/main.d.ts +1 -0
  5. package/dist/cjs/main.js +15 -0
  6. package/dist/cjs/main.js.map +1 -0
  7. package/dist/cjs/marketData.d.ts +12 -3
  8. package/dist/cjs/marketData.js +33 -7
  9. package/dist/cjs/marketData.js.map +1 -1
  10. package/dist/cjs/version.d.ts +1 -1
  11. package/dist/cjs/version.js +1 -1
  12. package/dist/esm/d8XMath.d.ts +2 -2
  13. package/dist/esm/d8XMath.js +50 -30
  14. package/dist/esm/d8XMath.js.map +1 -1
  15. package/dist/esm/main.d.ts +1 -0
  16. package/dist/esm/main.js +13 -0
  17. package/dist/esm/main.js.map +1 -0
  18. package/dist/esm/main2.d.ts +1 -0
  19. package/dist/esm/main2.js +18 -0
  20. package/dist/esm/main2.js.map +1 -0
  21. package/dist/esm/marketData.d.ts +12 -3
  22. package/dist/esm/marketData.js +33 -7
  23. package/dist/esm/marketData.js.map +1 -1
  24. package/dist/esm/version.d.ts +1 -1
  25. package/dist/esm/version.js +1 -1
  26. package/package.json +1 -1
  27. package/src/d8XMath.ts +67 -36
  28. package/src/marketData.ts +40 -8
  29. package/src/version.ts +1 -1
  30. package/dist/cjs/abi/AMMPerpLogic.json +0 -580
  31. package/dist/cjs/abi/BeaconProxy.json +0 -71
  32. package/dist/cjs/abi/IPerpetualManager copy.json +0 -5599
  33. package/dist/cjs/abi/IPerpetualMarginViewLogic.json +0 -286
  34. package/dist/cjs/abi/Maintainer.json +0 -774
  35. package/dist/cjs/abi/MockToken.json +0 -347
  36. package/dist/cjs/abi/MockUSD.json +0 -413
  37. package/dist/cjs/abi/UUPSUpgradeable.json +0 -104
  38. package/dist/cjs/abi/WeETH.json +0 -310
  39. package/dist/cjs/abi-zkevm/IPerpetualManager.json +0 -5366
  40. package/dist/cjs/abi-zkevm/LimitOrderBook.json +0 -910
  41. package/dist/cjs/abi-zkevm/LimitOrderBookFactory.json +0 -236
  42. package/dist/cjs/contracts/AMMPerpLogic.d.ts +0 -303
  43. package/dist/cjs/contracts/AMMPerpLogic.js +0 -3
  44. package/dist/cjs/contracts/AMMPerpLogic.js.map +0 -1
  45. package/dist/cjs/contracts/BeaconProxy.d.ts +0 -63
  46. package/dist/cjs/contracts/BeaconProxy.js +0 -3
  47. package/dist/cjs/contracts/BeaconProxy.js.map +0 -1
  48. package/dist/cjs/contracts/IPerpetualManagerCopy.d.ts +0 -3223
  49. package/dist/cjs/contracts/IPerpetualManagerCopy.js +0 -3
  50. package/dist/cjs/contracts/IPerpetualManagerCopy.js.map +0 -1
  51. package/dist/cjs/contracts/IPerpetualMarginViewLogic.d.ts +0 -183
  52. package/dist/cjs/contracts/IPerpetualMarginViewLogic.js +0 -3
  53. package/dist/cjs/contracts/IPerpetualMarginViewLogic.js.map +0 -1
  54. package/dist/cjs/contracts/Maintainer.d.ts +0 -799
  55. package/dist/cjs/contracts/Maintainer.js +0 -3
  56. package/dist/cjs/contracts/Maintainer.js.map +0 -1
  57. package/dist/cjs/contracts/MockToken.d.ts +0 -263
  58. package/dist/cjs/contracts/MockToken.js +0 -3
  59. package/dist/cjs/contracts/MockToken.js.map +0 -1
  60. package/dist/cjs/contracts/MockUSD.d.ts +0 -186
  61. package/dist/cjs/contracts/MockUSD.js +0 -3
  62. package/dist/cjs/contracts/MockUSD.js.map +0 -1
  63. package/dist/cjs/contracts/UUPSUpgradeable.d.ts +0 -118
  64. package/dist/cjs/contracts/UUPSUpgradeable.js +0 -3
  65. package/dist/cjs/contracts/UUPSUpgradeable.js.map +0 -1
  66. package/dist/cjs/contracts/WeETH.d.ts +0 -503
  67. package/dist/cjs/contracts/WeETH.js +0 -3
  68. package/dist/cjs/contracts/WeETH.js.map +0 -1
  69. package/dist/cjs/contracts/factories/AMMPerpLogic__factory.d.ts +0 -452
  70. package/dist/cjs/contracts/factories/AMMPerpLogic__factory.js +0 -598
  71. package/dist/cjs/contracts/factories/AMMPerpLogic__factory.js.map +0 -1
  72. package/dist/cjs/contracts/factories/BeaconProxy__factory.d.ts +0 -61
  73. package/dist/cjs/contracts/factories/BeaconProxy__factory.js +0 -89
  74. package/dist/cjs/contracts/factories/BeaconProxy__factory.js.map +0 -1
  75. package/dist/cjs/contracts/factories/IPerpetualManagerCopy__factory.d.ts +0 -4358
  76. package/dist/cjs/contracts/factories/IPerpetualManagerCopy__factory.js +0 -5617
  77. package/dist/cjs/contracts/factories/IPerpetualManagerCopy__factory.js.map +0 -1
  78. package/dist/cjs/contracts/factories/IPerpetualMarginViewLogic__factory.d.ts +0 -221
  79. package/dist/cjs/contracts/factories/IPerpetualMarginViewLogic__factory.js +0 -304
  80. package/dist/cjs/contracts/factories/IPerpetualMarginViewLogic__factory.js.map +0 -1
  81. package/dist/cjs/contracts/factories/Maintainer__factory.d.ts +0 -609
  82. package/dist/cjs/contracts/factories/Maintainer__factory.js +0 -792
  83. package/dist/cjs/contracts/factories/Maintainer__factory.js.map +0 -1
  84. package/dist/cjs/contracts/factories/MockToken__factory.d.ts +0 -273
  85. package/dist/cjs/contracts/factories/MockToken__factory.js +0 -365
  86. package/dist/cjs/contracts/factories/MockToken__factory.js.map +0 -1
  87. package/dist/cjs/contracts/factories/MockUSD__factory.d.ts +0 -320
  88. package/dist/cjs/contracts/factories/MockUSD__factory.js +0 -431
  89. package/dist/cjs/contracts/factories/MockUSD__factory.js.map +0 -1
  90. package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.d.ts +0 -87
  91. package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.js +0 -122
  92. package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.js.map +0 -1
  93. package/dist/cjs/contracts/factories/WeETH__factory.d.ts +0 -545
  94. package/dist/cjs/contracts/factories/WeETH__factory.js +0 -721
  95. package/dist/cjs/contracts/factories/WeETH__factory.js.map +0 -1
  96. package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.d.ts +0 -4136
  97. package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.js +0 -5324
  98. package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.js.map +0 -1
  99. package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.d.ts +0 -189
  100. package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.js +0 -254
  101. package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.js.map +0 -1
  102. package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.d.ts +0 -715
  103. package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.js +0 -928
  104. package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.js.map +0 -1
  105. package/dist/cjs/contracts/factories/lean0/ShareToken__factory.d.ts +0 -344
  106. package/dist/cjs/contracts/factories/lean0/ShareToken__factory.js +0 -456
  107. package/dist/cjs/contracts/factories/lean0/ShareToken__factory.js.map +0 -1
  108. package/dist/cjs/contracts/factories/lean0/index.d.ts +0 -4
  109. package/dist/cjs/contracts/factories/lean0/index.js +0 -15
  110. package/dist/cjs/contracts/factories/lean0/index.js.map +0 -1
  111. package/dist/cjs/contracts/lean0/IPerpetualManager.d.ts +0 -2821
  112. package/dist/cjs/contracts/lean0/IPerpetualManager.js +0 -3
  113. package/dist/cjs/contracts/lean0/IPerpetualManager.js.map +0 -1
  114. package/dist/cjs/contracts/lean0/LimitOrderBook.d.ts +0 -533
  115. package/dist/cjs/contracts/lean0/LimitOrderBook.js +0 -3
  116. package/dist/cjs/contracts/lean0/LimitOrderBook.js.map +0 -1
  117. package/dist/cjs/contracts/lean0/LimitOrderBookFactory.d.ts +0 -210
  118. package/dist/cjs/contracts/lean0/LimitOrderBookFactory.js +0 -3
  119. package/dist/cjs/contracts/lean0/LimitOrderBookFactory.js.map +0 -1
  120. package/dist/cjs/contracts/lean0/ShareToken.d.ts +0 -320
  121. package/dist/cjs/contracts/lean0/ShareToken.js +0 -3
  122. package/dist/cjs/contracts/lean0/ShareToken.js.map +0 -1
  123. package/dist/cjs/contracts/lean0/index.d.ts +0 -4
  124. package/dist/cjs/contracts/lean0/index.js +0 -3
  125. package/dist/cjs/contracts/lean0/index.js.map +0 -1
  126. package/dist/esm/abi/AMMPerpLogic.json +0 -580
  127. package/dist/esm/abi/BeaconProxy.json +0 -71
  128. package/dist/esm/abi/IPerpetualManager copy.json +0 -5599
  129. package/dist/esm/abi/IPerpetualMarginViewLogic.json +0 -286
  130. package/dist/esm/abi/Maintainer.json +0 -774
  131. package/dist/esm/abi/MockToken.json +0 -347
  132. package/dist/esm/abi/MockUSD.json +0 -413
  133. package/dist/esm/abi/UUPSUpgradeable.json +0 -104
  134. package/dist/esm/abi/WeETH.json +0 -310
  135. package/dist/esm/abi/lean0/IPerpetualManager.json +0 -5306
  136. package/dist/esm/abi/lean0/LimitOrderBook.json +0 -910
  137. package/dist/esm/abi/lean0/LimitOrderBookFactory.json +0 -236
  138. package/dist/esm/abi/lean0/ShareToken.json +0 -438
  139. package/dist/esm/abi-zkevm/IPerpetualManager.json +0 -5366
  140. package/dist/esm/abi-zkevm/LimitOrderBook.json +0 -910
  141. package/dist/esm/abi-zkevm/LimitOrderBookFactory.json +0 -236
  142. package/dist/esm/contracts/AMMPerpLogic.d.ts +0 -303
  143. package/dist/esm/contracts/AMMPerpLogic.js +0 -2
  144. package/dist/esm/contracts/AMMPerpLogic.js.map +0 -1
  145. package/dist/esm/contracts/BeaconProxy.d.ts +0 -63
  146. package/dist/esm/contracts/BeaconProxy.js +0 -2
  147. package/dist/esm/contracts/BeaconProxy.js.map +0 -1
  148. package/dist/esm/contracts/IPerpetualManagerCopy.d.ts +0 -3223
  149. package/dist/esm/contracts/IPerpetualManagerCopy.js +0 -2
  150. package/dist/esm/contracts/IPerpetualManagerCopy.js.map +0 -1
  151. package/dist/esm/contracts/IPerpetualMarginViewLogic.d.ts +0 -183
  152. package/dist/esm/contracts/IPerpetualMarginViewLogic.js +0 -2
  153. package/dist/esm/contracts/IPerpetualMarginViewLogic.js.map +0 -1
  154. package/dist/esm/contracts/Maintainer.d.ts +0 -799
  155. package/dist/esm/contracts/Maintainer.js +0 -2
  156. package/dist/esm/contracts/Maintainer.js.map +0 -1
  157. package/dist/esm/contracts/MockToken.d.ts +0 -263
  158. package/dist/esm/contracts/MockToken.js +0 -2
  159. package/dist/esm/contracts/MockToken.js.map +0 -1
  160. package/dist/esm/contracts/MockUSD.d.ts +0 -186
  161. package/dist/esm/contracts/MockUSD.js +0 -2
  162. package/dist/esm/contracts/MockUSD.js.map +0 -1
  163. package/dist/esm/contracts/UUPSUpgradeable.d.ts +0 -118
  164. package/dist/esm/contracts/UUPSUpgradeable.js +0 -2
  165. package/dist/esm/contracts/UUPSUpgradeable.js.map +0 -1
  166. package/dist/esm/contracts/WeETH.d.ts +0 -503
  167. package/dist/esm/contracts/WeETH.js +0 -2
  168. package/dist/esm/contracts/WeETH.js.map +0 -1
  169. package/dist/esm/contracts/factories/AMMPerpLogic__factory.d.ts +0 -452
  170. package/dist/esm/contracts/factories/AMMPerpLogic__factory.js +0 -594
  171. package/dist/esm/contracts/factories/AMMPerpLogic__factory.js.map +0 -1
  172. package/dist/esm/contracts/factories/BeaconProxy__factory.d.ts +0 -61
  173. package/dist/esm/contracts/factories/BeaconProxy__factory.js +0 -85
  174. package/dist/esm/contracts/factories/BeaconProxy__factory.js.map +0 -1
  175. package/dist/esm/contracts/factories/IPerpetualManagerCopy__factory.d.ts +0 -4358
  176. package/dist/esm/contracts/factories/IPerpetualManagerCopy__factory.js +0 -5613
  177. package/dist/esm/contracts/factories/IPerpetualManagerCopy__factory.js.map +0 -1
  178. package/dist/esm/contracts/factories/IPerpetualMarginViewLogic__factory.d.ts +0 -221
  179. package/dist/esm/contracts/factories/IPerpetualMarginViewLogic__factory.js +0 -300
  180. package/dist/esm/contracts/factories/IPerpetualMarginViewLogic__factory.js.map +0 -1
  181. package/dist/esm/contracts/factories/Maintainer__factory.d.ts +0 -609
  182. package/dist/esm/contracts/factories/Maintainer__factory.js +0 -788
  183. package/dist/esm/contracts/factories/Maintainer__factory.js.map +0 -1
  184. package/dist/esm/contracts/factories/MockToken__factory.d.ts +0 -273
  185. package/dist/esm/contracts/factories/MockToken__factory.js +0 -361
  186. package/dist/esm/contracts/factories/MockToken__factory.js.map +0 -1
  187. package/dist/esm/contracts/factories/MockUSD__factory.d.ts +0 -320
  188. package/dist/esm/contracts/factories/MockUSD__factory.js +0 -427
  189. package/dist/esm/contracts/factories/MockUSD__factory.js.map +0 -1
  190. package/dist/esm/contracts/factories/UUPSUpgradeable__factory.d.ts +0 -87
  191. package/dist/esm/contracts/factories/UUPSUpgradeable__factory.js +0 -118
  192. package/dist/esm/contracts/factories/UUPSUpgradeable__factory.js.map +0 -1
  193. package/dist/esm/contracts/factories/WeETH__factory.d.ts +0 -545
  194. package/dist/esm/contracts/factories/WeETH__factory.js +0 -717
  195. package/dist/esm/contracts/factories/WeETH__factory.js.map +0 -1
  196. package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.d.ts +0 -4136
  197. package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.js +0 -5320
  198. package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.js.map +0 -1
  199. package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.d.ts +0 -189
  200. package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.js +0 -250
  201. package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.js.map +0 -1
  202. package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.d.ts +0 -715
  203. package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.js +0 -924
  204. package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.js.map +0 -1
  205. package/dist/esm/contracts/factories/lean0/ShareToken__factory.d.ts +0 -344
  206. package/dist/esm/contracts/factories/lean0/ShareToken__factory.js +0 -452
  207. package/dist/esm/contracts/factories/lean0/ShareToken__factory.js.map +0 -1
  208. package/dist/esm/contracts/factories/lean0/index.d.ts +0 -4
  209. package/dist/esm/contracts/factories/lean0/index.js +0 -8
  210. package/dist/esm/contracts/factories/lean0/index.js.map +0 -1
  211. package/dist/esm/contracts/lean0/IPerpetualManager.d.ts +0 -2821
  212. package/dist/esm/contracts/lean0/IPerpetualManager.js +0 -2
  213. package/dist/esm/contracts/lean0/IPerpetualManager.js.map +0 -1
  214. package/dist/esm/contracts/lean0/LimitOrderBook.d.ts +0 -533
  215. package/dist/esm/contracts/lean0/LimitOrderBook.js +0 -2
  216. package/dist/esm/contracts/lean0/LimitOrderBook.js.map +0 -1
  217. package/dist/esm/contracts/lean0/LimitOrderBookFactory.d.ts +0 -210
  218. package/dist/esm/contracts/lean0/LimitOrderBookFactory.js +0 -2
  219. package/dist/esm/contracts/lean0/LimitOrderBookFactory.js.map +0 -1
  220. package/dist/esm/contracts/lean0/ShareToken.d.ts +0 -320
  221. package/dist/esm/contracts/lean0/ShareToken.js +0 -2
  222. package/dist/esm/contracts/lean0/ShareToken.js.map +0 -1
  223. package/dist/esm/contracts/lean0/index.d.ts +0 -4
  224. package/dist/esm/contracts/lean0/index.js +0 -2
  225. package/dist/esm/contracts/lean0/index.js.map +0 -1
  226. package/src/contracts/IPerpetualMarginViewLogic.ts +0 -347
  227. package/src/contracts/MockUSD.ts +0 -378
  228. package/src/contracts/factories/IPerpetualMarginViewLogic__factory.ts +0 -313
  229. package/src/contracts/factories/MockUSD__factory.ts +0 -430
@@ -214,8 +214,8 @@ export declare function pmInitialMarginRate(posSign: number, s0: number, sm: num
214
214
  * @returns dollar fee relative to tradeAmt
215
215
  */
216
216
  export declare function pmExchangeFee(prob: number, m: number, tradeAmt: number, tradeMgnRate: number): number;
217
- export declare function pmExitFee(varphi: number, varphiBar: number, mu_m: number, m_0: number, sigt: number, jump: number): number;
218
- export declare function pmOpenFee(varphi: number, varphiBar: number, lvg: number, mu_m: number, m_0: number, sigt: number, jump: number): number;
217
+ export declare function pmExitFee(varphi: number, varphi_0: number, m_0Exit: number, mu_m: number, mu_i: number, sigt: number, jump: number): number;
218
+ export declare function pmOpenFee(varphi_0: number, m_0: number, mu_m: number, sigt: number, jump: number): number;
219
219
  export declare function extractLvgFeeParams(conf: bigint): {
220
220
  jump: number;
221
221
  sigt: number;
@@ -554,22 +554,28 @@ function pmExchangeFee(prob, m, tradeAmt, tradeMgnRate) {
554
554
  return Math.max(fee, 0.001);
555
555
  }
556
556
  exports.pmExchangeFee = pmExchangeFee;
557
- function pmExitFee(varphi, varphiBar, mu_m, m_0, sigt, jump) {
558
- const pLiq = varphi + mu_m - m_0;
559
- const kappa = calcKappa(varphiBar, pLiq, sigt);
560
- let fee = prdMktLvgFee(kappa, varphi, m_0);
561
- // console.log({ pLiq, kappa, varphi });
557
+ function pmExitFee(varphi, varphi_0, m_0Exit, mu_m, mu_i, sigt, jump) {
558
+ // We implement equation (10) from leveraged binary markets paper - full closure fee only !
559
+ // pLiq and kappa for existing position, varphi is the entry price of the existing position
560
+ const pLiq = varphi + mu_m - m_0Exit;
561
+ // varphi_0 is the mark price for the closing trade, need to flip to get the mark for the position
562
+ const pricePos = 1 - varphi_0;
563
+ const kappa = calcKappa(pricePos, pLiq, sigt);
564
+ //console.log("[pmExitFee] kappa:", kappa, "pLiq:", pLiq, "varphi:", varphi);
565
+ let fee = prdMktLvgFee(kappa, pricePos, mu_i);
562
566
  return fee;
563
567
  }
564
568
  exports.pmExitFee = pmExitFee;
565
- function pmOpenFee(varphi, varphiBar, lvg, mu_m, m_0, sigt, jump) {
566
- let fee = Math.min(varphiBar, m_0) / lvg;
567
- const pLiq = varphi + mu_m - fee;
568
- const kappa = calcKappa(varphiBar, pLiq, sigt);
569
- const es = calcJumpRisk(kappa, varphiBar, jump);
570
- const feecap = (1 - varphiBar) * varphiBar - (1 - varphiBar) * fee;
571
- // let fee = prdMktLvgFee(kappa, varphi, m_0);
572
- // console.log({ m_0, pLiq, lvg, kappa, es, feecap, fee, varphi, varphiBar });
569
+ function pmOpenFee(varphi_0, m_0, mu_m, sigt, jump) {
570
+ // eq (4) leveraged prediction markets paper:
571
+ // varphiLiq = varphi + mu_m - m_0
572
+ const varphiLiq = varphi_0 + mu_m - m_0;
573
+ const kappa = calcKappa(varphi_0, varphiLiq, sigt);
574
+ //console.log("[pmOpenFee] kappa:", kappa, "varphiLiq:", varphiLiq, "m_0:", m_0);
575
+ let fee = prdMktLvgFee(kappa, varphi_0, m_0);
576
+ const es = calcJumpRisk(kappa, varphi_0, jump);
577
+ // cap ft = (1 - φt) φt - (1-φt) m0
578
+ const feecap = (1 - varphi_0) * varphi_0 - (1 - varphi_0) * m_0;
573
579
  fee = fee + es;
574
580
  if (fee > feecap) {
575
581
  fee = feecap;
@@ -625,35 +631,49 @@ function decodeUint16Float(num) {
625
631
  }
626
632
  function decodeUint24Float(num) {
627
633
  const n = BigInt(num);
634
+ const ONE_64x64 = 2n ** 64n;
628
635
  const sgnE = n >> 23n;
629
636
  const val = (n >> 3n) & ((1n << 20n) - 1n);
630
637
  const exponent = n & ((1n << 3n) - 1n);
631
- let v = BigInt.asIntN(128, val * 2n ** 64n);
638
+ // v = val * ONE_64x64
639
+ let v = BigInt.asIntN(128, val * ONE_64x64);
640
+ // Normalize: find first non-zero digit position
632
641
  let exponent1 = firstNonZeroNum(val);
633
642
  if (exponent1 > 0n)
634
643
  exponent1--;
644
+ if (exponent1 > 0n) {
645
+ const pow10exp1 = 10n ** exponent1 * ONE_64x64;
646
+ v = (v * ONE_64x64) / pow10exp1;
647
+ }
648
+ // Apply exponent
635
649
  if (sgnE == 1n) {
636
- v = (v * 2n ** 64n) / 10n ** exponent;
650
+ const pow10exp = 10n ** exponent * ONE_64x64;
651
+ v = (v * ONE_64x64) / pow10exp;
637
652
  }
638
653
  else {
639
- v = (v * 10n ** exponent) / 2n ** 64n;
654
+ const pow10exp = 10n ** exponent * ONE_64x64;
655
+ v = (v * pow10exp) / ONE_64x64;
640
656
  }
641
657
  return ABK64x64ToFloat(v);
642
658
  }
643
659
  function extractLvgFeeParams(conf) {
644
- // static replication of _checkOracleStatus and _extractLvgFeeParams
645
- // int64(conf >> 16);
660
+ // _param == int64(odinvalue >> 16)
646
661
  const param = BigInt.asIntN(64, conf >> 16n);
647
- // uint64(uint128(_param));
662
+ // uint64(uint128(_param))
648
663
  const enc = BigInt.asUintN(64, BigInt.asUintN(128, param));
649
664
  // uint64 j = enc >> 44; //top 4 bits
650
665
  const j = BigInt.asUintN(64, enc >> 44n);
651
- // uint64 st = enc & ((uint64(1) << 44) - 1); // low 44 bits are sigt (padded 24-bit)
652
- const st = BigInt.asUintN(64, enc & ((BigInt.asUintN(64, 1n) << 44n) - 1n));
666
+ // uint64 st = enc & ((uint64(1) << 44) - 1);
667
+ const st = BigInt.asUintN(64, enc & ((1n << 44n) - 1n));
653
668
  // jump = int128(int64(j)) * int128(922337203685477580); // times 0.05 in ABDK
654
- const jump = ABK64x64ToFloat(BigInt.asIntN(128, BigInt.asIntN(64, j))) * 0.5;
655
- const sigt = decodeUint24Float(BigInt.asUintN(24, st & ((1n << 24n) - 1n))); // uint24(st & ((1 << 24) - 1));
656
- // console.log({ jump, sigt });
669
+ // 922337203685477580 = 0.05 * 2^64
670
+ const JUMP_MULTIPLIER = 922337203685477580n; // 0.05 in ABDK
671
+ const jumpABDK = BigInt.asIntN(128, BigInt.asIntN(64, j)) * JUMP_MULTIPLIER;
672
+ const jump = ABK64x64ToFloat(jumpABDK);
673
+ // sigT = _decodeUint24Float(uint24(st & ((1 << 24) - 1)));
674
+ const sigtEncoded = BigInt.asUintN(24, st & ((1n << 24n) - 1n));
675
+ const sigt = decodeUint24Float(Number(sigtEncoded));
676
+ //console.log("[extractLvgFeeParams] jump:", jump, "sigt:", sigt);
657
677
  return { jump, sigt };
658
678
  }
659
679
  exports.extractLvgFeeParams = extractLvgFeeParams;
@@ -694,15 +714,15 @@ function decodePriceImpact(amount, params) {
694
714
  exports.decodePriceImpact = decodePriceImpact;
695
715
  //sigt = sigma*sqrt(t)
696
716
  function calcKappa(varphi, varphiLiq, sigt) {
697
- const p = 1 - varphi;
698
- const pStar = 1 - varphiLiq;
699
- const x0 = Math.log(p / (1 - p));
700
- const a = Math.log(pStar / (1 - pStar));
717
+ const varphiBar = 1 - varphi;
718
+ const varphiBar_star = 1 - varphiLiq;
719
+ const x0 = Math.log(varphiBar / (1 - varphiBar));
720
+ const a = Math.log(varphiBar_star / (1 - varphiBar_star));
701
721
  // a - x0 = log( p*(1-p*) / (1-p)p* )
702
- const cdfArg = Math.log((p * (1 - pStar)) / (pStar * (1 - p))) / sigt;
722
+ const cdfArg = Math.log((varphiBar * (1 - varphiBar_star)) / (varphiBar_star * (1 - varphiBar))) / sigt;
703
723
  // console.log({ p, pStar, x0, a, sigt, cdfarg: (a - x0) / sigt });
704
724
  if (isNaN(cdfArg)) {
705
- return pStar * (1 - p) < p * (1 - pStar) ? 0 : 2;
725
+ return varphiBar_star * (1 - varphiBar) < varphiBar * (1 - varphiBar_star) ? 0 : 2;
706
726
  }
707
727
  const kappa = 2 * (1 - cdfNormalStd((a - x0) / sigt));
708
728
  return kappa;
@@ -1 +1 @@
1
- {"version":3,"file":"d8XMath.js","sourceRoot":"","sources":["../../src/d8XMath.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"d8XMath.js","sourceRoot":"","sources":["../../src/d8XMath.ts"],"names":[],"mappings":";;;AACA,2CAAkD;AAElD;;GAEG;AAEH;;;;;;GAMG;AACH,SAAgB,aAAa,CAAC,CAAkB;IAC9C,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;AAC7B,CAAC;AAFD,sCAEC;AAED;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,CAAkB;IAChD,IAAI,OAAO,CAAC,IAAI,QAAQ,EAAE;QACxB,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;KACpB;IACD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1B,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,IAAI,GAAG,CAAC,GAAG,qBAAS,CAAC;IACzB,IAAI,KAAK,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,8CAA8C;IACtE,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,qBAAS,CAAC;IAChC,IAAI,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,qBAAS,CAAC;IAClC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC;IACpC,0BAA0B;IAC1B,IAAI,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC/D,OAAO,UAAU,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC3C,CAAC;AAfD,0CAeC;AAED;;;;GAIG;AACH,SAAgB,WAAW,CAAC,CAAe,EAAE,MAAoB;IAC/D,sCAAsC;IACtC,MAAM,QAAQ,GAAG,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,kDAAkD;IAC1F,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACd,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IACxB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1B,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,IAAI,GAAG,CAAC,GAAG,QAAQ,CAAC;IACxB,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,QAAQ,CAAC;IAC/B,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC;IAChD,IAAI,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC/D,OAAO,UAAU,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC3C,CAAC;AAbD,kCAaC;AAED;;;;GAIG;AACH,SAAgB,YAAY,CAAC,CAAe;IAC1C,uCAAuC;IACvC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACd,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1B,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,IAAI,GAAG,CAAC,GAAG,oBAAQ,CAAC;IACxB,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,oBAAQ,CAAC;IAC/B,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC;IACpC,IAAI,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC/D,OAAO,UAAU,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC3C,CAAC;AAXD,oCAWC;AAED;;;;GAIG;AACH,SAAgB,eAAe,CAAC,CAAS;IACvC,0CAA0C;IAC1C,6CAA6C;IAC7C,IAAI,CAAC,KAAK,CAAC,EAAE;QACX,OAAO,EAAE,CAAC;KACX;IACD,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChB,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,OAAO,GAAG,IAAI,GAAG,qBAAS,CAAC;IAC/B,IAAI,KAAK,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,6CAA6C;IACrE,IAAI,OAAO,GAAG,CAAC,IAAI,GAAG,qBAAS,CAAC,GAAG,KAAK,CAAC;IACzC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;AAC1C,CAAC;AAhBD,0CAgBC;AAED;;;;GAIG;AACH,SAAgB,YAAY,CAAC,CAAS;IACpC,yBAAyB;IACzB,IAAI,CAAC,KAAK,CAAC,EAAE;QACX,OAAO,EAAE,CAAC;KACX;IACD,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChB,IAAI,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACzB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,OAAO,GAAG,IAAI,GAAG,oBAAQ,CAAC;IAC9B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;AACvC,CAAC;AAbD,oCAaC;AAED;;;;;GAKG;AACH,SAAgB,WAAW,CAAC,CAAS,EAAE,QAAgB;IACrD,yBAAyB;IACzB,IAAI,CAAC,KAAK,CAAC,EAAE;QACX,OAAO,EAAE,CAAC;KACX;IACD,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChB,IAAI,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,OAAO,GAAG,IAAI,GAAG,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7C,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;AACvC,CAAC;AAbD,kCAaC;AAED;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,CAAS,EAAE,SAAiB;IAC1D,IAAI,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACpC,IAAI,WAAW,IAAI,CAAC,EAAE;QACpB,OAAO,CAAC,CAAC;KACV;IACD,IAAI,cAAc,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACpD,wBAAwB;IACxB,IAAI,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzD,OAAO,CAAC,IAAI,GAAG,EAAE;QACf,cAAc,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACxE,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KACtD;IACD,oBAAoB;IACpB,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,IAAI,GAAG,EAAE;QACf,cAAc,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACxE,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KACtD;IAED,OAAO,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnE,CAAC;AApBD,0CAoBC;AAED;;;;;;;GAOG;AACH,SAAgB,gBAAgB,CAAC,CAAS,EAAE,GAAW,EAAE,YAAoB,CAAC;IAC5E,yBAAyB;IACzB,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC;IACvE,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,UAAU,CAAC;IAEhD,kCAAkC;IAClC,IAAI,MAAM,GAAG,eAAe,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IACpD,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC3B,CAAC;AARD,4CAQC;AAED;;;;;GAKG;AACH,SAAgB,QAAQ,CAAC,CAAS,EAAE,CAAS;IAC3C,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,qBAAS,CAAC;AAC7B,CAAC;AAFD,4BAEC;AAED;;;;;GAKG;AACH,SAAgB,QAAQ,CAAC,CAAS,EAAE,CAAS;IAC3C,OAAO,CAAC,CAAC,GAAG,qBAAS,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAFD,4BAEC;AAED;;;;;;;;GAQG;AACH,SAAgB,uCAAuC,CACrD,eAAuB,EACvB,QAAgB,EAChB,OAAe,EACf,uBAA+B;IAE/B,yCAAyC;IACzC,kDAAkD;IAClD,qCAAqC;IACrC,OAAO,eAAe,GAAG,CAAC,QAAQ,GAAG,uBAAuB,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,CAAC;AAC/F,CAAC;AAVD,0FAUC;AAED;;;;;;;;;GASG;AACH,SAAgB,qDAAqD,CACnE,eAAuB,EACvB,QAAgB,EAChB,OAAe,EACf,uBAA+B,EAC/B,EAAU,EACV,EAAU;IAEV,iEAAiE;IACjE,iDAAiD;IACjD,qFAAqF;IACrF,kGAAkG;IAClG,IAAI,SAAS,GAAG,CAAC,eAAe,GAAG,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5E,IAAI,WAAW,GAAG,uBAAuB,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAAG,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;IACtH,OAAO,SAAS,GAAG,WAAW,CAAC;AACjC,CAAC;AAfD,sHAeC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,yCAAyC,CACvD,eAAuB,EACvB,QAAgB,EAChB,OAAe,EACf,uBAA+B,EAC/B,EAAU,EACV,EAAU;IAEV,iEAAiE;IACjE,iDAAiD;IACjD,sDAAsD;IACtD,8DAA8D;IAC9D,IAAI,SAAS,GAAG,CAAC,eAAe,GAAG,OAAO,GAAG,EAAE,CAAC;IAChD,IAAI,WAAW,GAAG,uBAAuB,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;IAC1E,OAAO,SAAS,GAAG,WAAW,CAAC;AACjC,CAAC;AAfD,8FAeC;AACD;;;;;;;;GAQG;AACH,SAAgB,wCAAwC,CACtD,eAAuB,EACvB,QAAgB,EAChB,OAAe,EACf,uBAA+B;IAE/B,6CAA6C;IAC7C,uCAAuC;IACvC,IAAI,SAAS,GAAG,CAAC,eAAe,GAAG,OAAO,CAAC;IAC3C,IAAI,WAAW,GAAG,uBAAuB,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;IAC1E,OAAO,SAAS,GAAG,WAAW,CAAC;AACjC,CAAC;AAXD,4FAWC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,kCAAkC,CAChD,cAAkC,EAClC,eAAuB,EACvB,oBAA4B,EAC5B,WAAmB,EACnB,SAAiB,EACjB,YAAoB,EACpB,YAAoB,EACpB,UAAkB,EAClB,OAAe;IAEf,0BAA0B;IAC1B,gJAAgJ;IAChJ,4GAA4G;IAC5G,IAAI,SAAS,GACX,eAAe,IAAI,CAAC,IAAI,eAAe,GAAG,WAAW,GAAG,CAAC,IAAI,eAAe,GAAG,CAAC,eAAe,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACtH,IAAI,MAAM,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,YAAY,CAAC,GAAG,YAAY,CAAC;IAC7E,IAAI,YAAY,GAAG,MAAM,CAAC;IAE1B,IAAI,CAAC,SAAS,EAAE;QACd,IAAI,cAAc,IAAI,SAAS,IAAI,cAAc,IAAI,CAAC,EAAE;YACtD,MAAM,KAAK,CAAC,4CAA4C,CAAC,CAAC;SAC3D;QACD,+DAA+D;QAC/D,IAAI,KAAK,GAAG,eAAe,GAAG,SAAS,GAAG,oBAAoB,GAAG,WAAW,GAAG,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;QACxG,YAAY;YACV,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,WAAW,CAAC,GAAG,SAAS,CAAC,GAAG,cAAc,GAAG,KAAK,CAAC,GAAG,YAAY,CAAC;KAC9G;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AA7BD,gFA6BC;AAED,SAAgB,wBAAwB,CACtC,gBAAwB,EACxB,eAAuB,EACvB,oBAA4B,EAC5B,SAAiB,EACjB,UAAkB,EAClB,iBAAyB,EACzB,OAAe,EACf,SAAiB,EACjB,YAAoB,EACpB,YAAoB;IAEpB,gCAAgC;IAChC,gJAAgJ;IAChJ,iEAAiE;IACjE,IAAI,SAAS,GACX,gBAAgB,GAAG,YAAY;QAC/B,eAAe,GAAG,SAAS;QAC3B,oBAAoB;QACpB,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,SAAS,GAAG,iBAAiB,CAAC;IAC5D,IAAI,WAAW,GACb,SAAS,GAAG,iBAAiB,GAAG,OAAO,GAAG,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC;IAC7G,OAAO,eAAe,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvF,CAAC;AAvBD,4DAuBC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,sBAAsB,CACpC,WAAmB,EACnB,gBAAwB,EACxB,eAAuB,EACvB,oBAA4B,EAC5B,KAAa,EACb,YAAoB,EACpB,SAAiB;IAEjB,IAAI,WAAW,GAAG,WAAW,GAAG,eAAe,CAAC;IAChD,IAAI,KAAK,GAAG,eAAe,GAAG,SAAS,GAAG,oBAAoB,GAAG,WAAW,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC;IACnG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,gBAAgB,GAAG,YAAY,GAAG,KAAK,CAAC,CAAC;AACzF,CAAC;AAZD,wDAYC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,2BAA2B,CACzC,IAAY,EACZ,EAAU,EACV,SAAiB,EACjB,SAAiB,EACjB,KAAa,EACb,EAAU,EACV,MAAc,EACd,IAAwB;IAExB,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE;QACpB,YAAY;QACZ,IAAI,EAAE,IAAI,CAAC,EAAE;YACX,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;SACxB;QACD,OAAO,kCAAkC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;KAC/G;IACD,IAAI,GAAG,GAAG,CAAC,SAAS,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;IAC9C,IAAI,SAAS,IAAI,CAAC,EAAE;QAClB,uBAAuB;QACvB,SAAS,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;KACjD;IACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IAC/D,OAAO,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;AACzB,CAAC;AAxBD,kEAwBC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,kCAAkC,CAChD,IAAY,EACZ,EAAU,EACV,EAAU,EACV,SAAiB,EACjB,SAAiB,EACjB,IAAY,EACZ,EAAU,EACV,QAAgB,EAChB,GAAW;IAEX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6CG;IAEH,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAChC,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,uBAAuB;IAC7E,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IACpD,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACpD,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACnD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;IAClE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACnC,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC;AACnE,CAAC;AAlED,gFAkEC;AAED,SAAS,aAAa,CAAC,OAAe,EAAE,QAAgB,EAAE,iBAAyB;IACjF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,iBAAiB,CAAC,CAAC,GAAG,GAAG,CAAC;AACnH,CAAC;AAED;;;;GAIG;AACH,SAAgB,WAAW,CAAC,EAAU;IACpC,OAAO,EAAE,GAAG,CAAC,CAAC;AAChB,CAAC;AAFD,kCAEC;AAED;;;;GAIG;AACH,SAAgB,WAAW,CAAC,IAAY;IACtC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAC5C,CAAC;AAFD,kCAEC;AAED,kBAAkB;AAClB,SAAgB,OAAO,CAAC,IAAY;IAClC,IAAI,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,GAAG,KAAK,EAAE;QACpC,OAAO,CAAC,CAAC;KACV;IACD,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACpE,CAAC;AALD,0BAKC;AAED;;;;;;;;GAQG;AACH,SAAS,cAAc,CAAC,GAAW,EAAE,UAAkB,EAAE,EAAU,EAAE,EAAU,EAAE,CAAS;IACxF,OAAO,CAAC,uBAAuB,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;AAChF,CAAC;AAED;;;;;;;GAOG,CAAC,aAAa,CAAC;AAClB,SAAgB,uBAAuB,CAAC,QAAgB,EAAE,UAAkB,EAAE,EAAU,EAAE,CAAS;IACjG,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAChB,IAAI,MAAM,GAAG,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IACtE,IAAI,QAAQ,GAAG,CAAC,EAAE;QAChB,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC;KACrB;IACD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IACnC,IAAI,QAAQ,IAAI,CAAC,EAAE;QACjB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;KACrC;SAAM;QACL,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,GAAG,EAAE,GAAG,UAAU,CAAC,CAAC;QAC7F,OAAO,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;KAC3C;AACH,CAAC;AAdD,0DAcC;AAED;;;;;;;GAOG;AACH,SAAgB,mBAAmB,CAAC,OAAe,EAAE,EAAU,EAAE,EAAU,EAAE,IAAY;IACvF,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAChB,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAChB,IAAI,OAAO,GAAG,CAAC,EAAE;QACf,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,uBAAuB;QACpC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,wBAAwB;KACtC;IACD,mCAAmC;IACnC,6CAA6C;IAC7C,4BAA4B;IAC5B,0CAA0C;IAC1C,yCAAyC;IACzC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;AAC9B,CAAC;AAdD,kDAcC;AAED;;;;;;;;GAQG;AACH,SAAgB,aAAa,CAAC,IAAY,EAAE,CAAS,EAAE,QAAgB,EAAE,YAAoB;IAC3F,iCAAiC;IACjC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,IAAI,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACtC,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;IAC7B,MAAM,SAAS,GAAG,IAAI,GAAG,YAAY,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IAClD,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,SAAS,GAAG,EAAE,CAAC;IACxC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC9B,CAAC;AARD,sCAQC;AAED,SAAgB,SAAS,CACvB,MAAc,EACd,QAAgB,EAChB,OAAe,EACf,IAAY,EACZ,IAAY,EACZ,IAAY,EACZ,IAAY;IAEZ,2FAA2F;IAC3F,2FAA2F;IAC3F,MAAM,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC;IACrC,kGAAkG;IAClG,MAAM,QAAQ,GAAG,CAAC,GAAG,QAAQ,CAAC;IAC9B,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAE9C,6EAA6E;IAC7E,IAAI,GAAG,GAAG,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC9C,OAAO,GAAG,CAAC;AACb,CAAC;AAnBD,8BAmBC;AAED,SAAgB,SAAS,CAAC,QAAgB,EAAE,GAAW,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY;IAC/F,6CAA6C;IAC7C,kCAAkC;IAElC,MAAM,SAAS,GAAG,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAC;IACxC,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACnD,iFAAiF;IAEjF,IAAI,GAAG,GAAG,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC7C,MAAM,EAAE,GAAG,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAE/C,mCAAmC;IACnC,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,GAAG,CAAC;IAEhE,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;IACf,IAAI,GAAG,GAAG,MAAM,EAAE;QAChB,GAAG,GAAG,MAAM,CAAC;KACd;IACD,IAAI,GAAG,GAAG,KAAK,EAAE;QACf,GAAG,GAAG,KAAK,CAAC;KACb;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAtBD,8BAsBC;AAED,SAAS,eAAe,CAAC,MAAc;IACrC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,IAAI,GAAG,MAAM,CAAC;IAClB,OAAO,IAAI,GAAG,EAAE,EAAE;QAChB,IAAI,IAAI,GAAG,CAAC;QACZ,GAAG,EAAE,CAAC;KACP;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAW;IACpC,6BAA6B;IAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC;IAC9C,iCAAiC;IACjC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;IACnD,6CAA6C;IAC7C,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;IAC/D,0CAA0C;IAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IAE3D,gDAAgD;IAChD,+CAA+C;IAC/C,IAAI,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,qBAAS,CAAC,CAAC;IAClF,6CAA6C;IAC7C,IAAI,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,SAAS,GAAG,EAAE,EAAE;QAClB,SAAS,IAAI,EAAE,CAAC;KACjB;IACD,2DAA2D;IAC3D,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,GAAG,GAAG,qBAAS,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC;IAC9D,IAAI,IAAI,IAAI,EAAE,EAAE;QACd,mEAAmE;QACnE,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,GAAG,GAAG,qBAAS,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;KAC9D;SAAM;QACL,mEAAmE;QACnE,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,GAAG,GAAG,qBAAS,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;KAC9D;IACD,IAAI,MAAM,IAAI,EAAE,EAAE;QAChB,eAAe;QACf,CAAC,GAAG,CAAC,CAAC,CAAC;KACR;IACD,mDAAmD;IACnD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAoB;IAC7C,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,MAAM,SAAS,GAAG,EAAE,IAAI,GAAG,CAAC;IAE5B,MAAM,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC;IACtB,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IAEvC,sBAAsB;IACtB,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,SAAS,CAAC,CAAC;IAE5C,gDAAgD;IAChD,IAAI,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,SAAS,GAAG,EAAE;QAAE,SAAS,EAAE,CAAC;IAEhC,IAAI,SAAS,GAAG,EAAE,EAAE;QAClB,MAAM,SAAS,GAAG,GAAG,IAAI,SAAS,GAAG,SAAS,CAAC;QAC/C,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;KACjC;IAED,iBAAiB;IACjB,IAAI,IAAI,IAAI,EAAE,EAAE;QACd,MAAM,QAAQ,GAAG,GAAG,IAAI,QAAQ,GAAG,SAAS,CAAC;QAC7C,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,QAAQ,CAAC;KAChC;SAAM;QACL,MAAM,QAAQ,GAAG,GAAG,IAAI,QAAQ,GAAG,SAAS,CAAC;QAC7C,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,SAAS,CAAC;KAChC;IAED,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC;AAED,SAAgB,mBAAmB,CAAC,IAAY;IAC9C,mCAAmC;IACnC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC;IAC7C,0BAA0B;IAC1B,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IAC3D,qCAAqC;IACrC,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC;IACzC,6CAA6C;IAC7C,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAExD,8EAA8E;IAC9E,mCAAmC;IACnC,MAAM,eAAe,GAAG,mBAAmB,CAAC,CAAC,eAAe;IAC5D,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC;IAC5E,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAEvC,2DAA2D;IAC3D,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;IACpD,kEAAkE;IAElE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxB,CAAC;AAtBD,kDAsBC;AAED,SAAgB,iBAAiB,CAAC,MAAc,EAAE,MAAc;IAC9D,iBAAiB;IACjB,qBAAqB;IACrB,kDAAkD;IAClD,WAAW;IACX,sCAAsC;IACtC,IAAI;IACJ,yCAAyC;IACzC,MAAM,GAAG,MAAM,CAAC,OAAO,CACrB,EAAE,EACF,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,CAClH,CAAC;IACF,oDAAoD;IACpD,sDAAsD;IACtD,kEAAkE;IAClE,0CAA0C;IAC1C,MAAM,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC;IAC/D,MAAM,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3E,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;IAEpD,kCAAkC;IAClC,iDAAiD;IACjD,+CAA+C;IAC/C,IAAI;IACJ,IAAI,EAAU,CAAC;IACf,IAAI,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,EAAE;QACvD,EAAE,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KAC/C;SAAM;QACL,EAAE,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC,CAAC;KAC7F;IACD,8BAA8B;IAC9B,SAAS;IACT,kBAAkB;IAClB,wDAAwD;IACxD,wDAAwD;IAExD,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;AACzB,CAAC;AArCD,8CAqCC;AAED,sBAAsB;AACtB,SAAS,SAAS,CAAC,MAAc,EAAE,SAAiB,EAAE,IAAY;IAChE,MAAM,SAAS,GAAG,CAAC,GAAG,MAAM,CAAC;IAC7B,MAAM,cAAc,GAAG,CAAC,GAAG,SAAS,CAAC;IAErC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;IACjD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;IAC1D,qCAAqC;IACrC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,GAAG,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACxG,mEAAmE;IACnE,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE;QACjB,OAAO,cAAc,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACpF;IACD,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACtD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,KAAa,EAAE,MAAc,EAAE,IAAY;IAC/D,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IACtC,MAAM,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAC7C,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,sEAAsE;AACtE,SAAS,YAAY,CAAC,KAAa,EAAE,MAAc,EAAE,EAAU;IAC7D,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;IAChF,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAgB,IAAI,CAAC,CAAS;IAC5B,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;QACX,OAAO,CAAC,CAAC;KACV;IACD,IAAI,CAAC,GAAG,EAAE,EAAE;QACV,OAAO,CAAC,CAAC;KACV;IACD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACtB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,kBAAkB;IAClB,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,CAAC,UAAU;QACpD,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU;YACpD,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,UAAU;gBACpD,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAhBD,oBAgBC;AAED,SAAS,YAAY,CAAC,CAAS;IAC7B,OAAO,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC;AACD;;;;;;;;GAQG;AACH,SAAgB,eAAe,CAAC,GAAW,EAAE,EAAU,EAAE,EAAU,EAAE,GAAW,EAAE,EAAU;IAC1F,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC;AACzC,CAAC;AAFD,0CAEC;AAED,SAAgB,eAAe,CAAC,GAAW,EAAE,EAAU,EAAE,EAAU,EAAE,GAAW,EAAE,EAAU,EAAE,CAAS;IACrG,OAAO,eAAe,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACrF,CAAC;AAFD,0CAEC;AAED;;;;;;;;;GASG;AACH,SAAgB,sBAAsB,CACpC,GAAW,EACX,EAAU,EACV,GAAW,EACX,EAAU,EACV,cAAsB;IAEtB,mDAAmD;IAEnD,oDAAoD;IAEpD,sBAAsB;IACtB,kDAAkD;IAClD,oBAAoB;IACpB,0DAA0D;IAC1D,SAAS;IACT,kCAAkC;IAElC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IACjC,MAAM,cAAc,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC,8BAA8B;IAEjG,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QAChC,sCAAsC;QACtC,OAAO,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;KAC/C;IAED,IAAI,cAAc,GAAG,CAAC,EAAE;QACtB,qBAAqB;QACrB,OAAO,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;KAC/C;IAED,OAAO,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,cAAc,CAAC,CAAC;AAC1E,CAAC;AAjCD,wDAiCC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,YAAY,CACnB,QAAgB,EAChB,aAAqB,EACrB,UAAkB,EAClB,iBAAyB,EACzB,UAAkB,EAClB,EAAU,EACV,EAAU;IAEV,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,6BAA6B;IAC7C,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,yBAAyB;IACzC,MAAM,GAAG,GAAG,UAAU,GAAG,QAAQ,CAAC;IAClC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACf,IAAI,GAAG,GAAG,CAAC,EAAE;QACX,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW;KACxB;IACD,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,GAAG,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACvC,MAAM,EAAE,GAAG,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC;IACrH,gCAAgC;IAChC,gCAAgC;IAChC,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAEvD,2BAA2B;IAC3B,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,GAAG,EAAE,GAAG,MAAM,CAAC;AACxC,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,0BAA0B,CACjC,QAAgB,EAChB,SAAiB,EACjB,KAAa,EACb,EAAU,EACV,MAAc;IAEd,MAAM,IAAI,GAAG,IAAI,CAAC;IAClB,4CAA4C;IAC5C,OAAO,kCAAkC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IACzG,kDAAkD;IAClD,sBAAsB;IACtB,sBAAsB;IACtB,eAAe;IACf,IAAI;IACJ,uDAAuD;IACvD,0BAA0B;IAC1B,YAAY;IACZ,kBAAkB;IAClB,2CAA2C;IAC3C,sBAAsB;IACtB,sCAAsC;IACtC,cAAc;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,iBAAiB,CACxB,QAAgB,EAChB,GAAW,EACX,WAAmB,EACnB,aAAqB,EACrB,eAAuB,EACvB,oBAA4B,EAC5B,QAAgB,EAChB,EAAU,EACV,EAAU,EACV,EAAU;IAEV,MAAM,IAAI,GAAG,IAAI,CAAC;IAClB,MAAM,IAAI,GAAG,IAAI,CAAC;IAElB,MAAM,MAAM,GAAG,aAAa,CAAC,eAAe,GAAG,QAAQ,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IACvE,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;IAClC,6CAA6C;IAC7C,MAAM,UAAU,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC7D,MAAM,iBAAiB,GAAG,0BAA0B,CAAC,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAExF,cAAc;IACd,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAChB,IAAI,QAAQ,GAAG,CAAC,EAAE;QAChB,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW;KACzB;IACD,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAErF,aAAa;IACb,IAAI,GAAG,GAAG,WAAW,GAAG,iBAAiB,GAAG,KAAK,CAAC;IAClD,IAAI,GAAG,GAAG,CAAC,EAAE;QACX,OAAO,GAAG,CAAC;KACZ;IACD,iBAAiB;IACjB,IAAI,GAAG,GAAG,eAAe,GAAG,QAAQ,CAAC;IACrC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACf,IAAI,MAAM,GAAG,UAAU,GAAG,CAAC,CAAC;IAC5B,IAAI,GAAG,GAAG,CAAC,EAAE;QACX,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACX,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC;KACrB;IAED,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAEnC,MAAM,EAAE,GACN,iBAAiB;QACjB,aAAa;QACb,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,EAAE;QAC9B,oBAAoB;QACpB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC;IAC5C,uBAAuB;IACvB,2BAA2B;IAC3B,oCAAoC;IACpC,2BAA2B;IAC3B,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,GAAG,EAAE,CAAC;IAClC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAChB,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,oCAAoC,CAClD,GAAW,EACX,GAAW,EACX,WAAmB,EACnB,QAAgB,EAChB,eAAuB,EACvB,aAAqB,EACrB,oBAA4B,EAC5B,EAAU,EACV,EAAU,EACV,EAAU,EACV,YAAoB;IAEpB,IAAI,GAAG,GAAG,CAAC,EAAE;QACX,GAAG,GAAG,CAAC,CAAC,CAAC;KACV;SAAM;QACL,GAAG,GAAG,CAAC,CAAC;KACT;IACD,MAAM,GAAG,GAAG,EAAE,CAAC;IACf,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,gBAAgB;IAClC,MAAM,EAAE,GAAG,iBAAiB,CAC1B,GAAG,GAAG,MAAM,EACZ,GAAG,EACH,WAAW,EACX,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,QAAQ,EACR,EAAE,EACF,EAAE,EACF,EAAE,CACH,CAAC;IACF,IAAI,EAAE,GAAG,CAAC,EAAE;QACV,oBAAoB;QACpB,OAAO,CAAC,CAAC;KACV;IACD,sCAAsC;IACtC,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;IAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACjB,OAAO,IAAI,EAAE;QACX,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,GAAG,EAAE;YAC5C,CAAC,GAAG,IAAI,CAAC;YACT,MAAM,CAAC,GACL,iBAAiB,CACf,CAAC,EACD,GAAG,EACH,WAAW,EACX,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,QAAQ,EACR,EAAE,EACF,EAAE,EACF,EAAE,CACH,IAAI,CAAC,CAAC;YACT,MAAM,EAAE,GACN,iBAAiB,CACf,CAAC,GAAG,MAAM,EACV,GAAG,EACH,WAAW,EACX,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,QAAQ,EACR,EAAE,EACF,EAAE,EACF,EAAE,CACH,IAAI,CAAC,CAAC;YACT,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;YAC3B,IAAI,EAAE,IAAI,CAAC,EAAE;gBACX,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC;aAChD;iBAAM;gBACL,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;aACnB;YACD,KAAK,IAAI,CAAC,CAAC;SACZ;QACD,IAAI,KAAK,GAAG,GAAG,EAAE;YACf,MAAM;SACP;QACD,2BAA2B;QAC3B,4BAA4B;QAC5B,IAAI,GAAG,GAAG,CAAC,EAAE;YACX,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,YAAY,GAAG,eAAe,CAAC,CAAC;SACzD;aAAM;YACL,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,eAAe,CAAC,CAAC;SACpE;KACF;IACD,+BAA+B;IAC/B,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;IAChE,QAAQ;IACR,kCAAkC;IAClC,oCAAoC;IACpC,iDAAiD;IACjD,sEAAsE;IACtE,oDAAoD;IACpD,oFAAoF;IACpF,0FAA0F;IAC1F,mGAAmG;IACnG,qFAAqF;IACrF,4BAA4B;IAC5B,gCAAgC;IAEhC,qDAAqD;IACrD,sBAAsB;IACtB,2CAA2C;IAC3C,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;IAC9D,KAAK;IACL,yCAAyC;IACzC,gDAAgD;IAChD,gGAAgG;IAChG,MAAM,YAAY,GAAG,eAAe,IAAI,CAAC,IAAI,eAAe,GAAG,GAAG,GAAG,CAAC,CAAC;IACvE,IAAI,YAAY,EAAE;QAChB,OAAO,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;KAClE;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AApHD,oFAoHC;AAED;;;;;;;GAOG;AACH,SAAgB,wBAAwB,CACtC,IAAY,EACZ,KAAa,EACb,EAAU,EACV,KAAc,EACd,EAAU,EACV,UAAkB;IAElB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;QACtB,SAAS;QACT,OAAO,CAAC,CAAC;KACV;IACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IACjC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uBAAuB;IAClE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC9F,CAAC;AAfD,4DAeC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const perpetuals_sdk_1 = require("@d8x/perpetuals-sdk");
4
+ async function main() {
5
+ console.log(perpetuals_sdk_1.MarketData);
6
+ // setup
7
+ const config = perpetuals_sdk_1.PerpetualDataHandler.readSDKConfig("zkevm");
8
+ let mktData = new perpetuals_sdk_1.MarketData(config);
9
+ await mktData.createProxyInstance();
10
+ // Get all open orders for a trader/symbol
11
+ let opOrder = await mktData.openOrders("0xe5a5a989b920d22323b915c36c5db8ac38b4ebd7", "BTC-USDC-USDC");
12
+ console.log(opOrder);
13
+ }
14
+ main();
15
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":";;AAAA,wDAAuE;AACvE,KAAK,UAAU,IAAI;IACjB,OAAO,CAAC,GAAG,CAAC,2BAAU,CAAC,CAAC;IACxB,QAAQ;IACR,MAAM,MAAM,GAAG,qCAAoB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC3D,IAAI,OAAO,GAAG,IAAI,2BAAU,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,OAAO,CAAC,mBAAmB,EAAE,CAAC;IACpC,0CAA0C;IAC1C,IAAI,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,4CAA4C,EAAE,eAAe,CAAC,CAAC;IACtG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACvB,CAAC;AACD,IAAI,EAAE,CAAC"}
@@ -230,9 +230,18 @@ export default class MarketData extends PerpetualDataHandler {
230
230
  }>;
231
231
  /**
232
232
  * Fee is relative to base-currency amount (=trade amount)
233
- * @returns relative exchange fee in decimals
234
- */
235
- static exchangeFeePrdMkts(Sm: number, tradeAmtBC: number, traderPosBC: number, traderLockedInQC: number, traderLeverage: number, mu_m: number, m_0: number, conf: bigint): number;
233
+ * @param {number} Sm Mark price
234
+ * @param {number} tradeAmtBC Signed trade amount in base currency (positive for buy, negative for sell)
235
+ * @param {number} traderPosBC Current trader position in base currency (signed, positive for long, negative for short)
236
+ * @param {number} traderLockedInQC Locked-in value in quote currency for existing position (entry price * position size)
237
+ * @param {number} collateralCC Collateral in CC for existing position (fCashCC from margin account)
238
+ * @param {number} traderLeverage Leverage for the new trade
239
+ * @param {number} mu_m maintenance margin rate
240
+ * @param {number} mu_i Initial margin rate, for pred markets this is the min cash per contract required to open
241
+ * @param {bigint} conf Configuration bigint encoding jump and sigt (volatility * sqrt(time))
242
+ * @returns {number} Exchange fee per unit of base currency (e.g., 0.05 = 5 cents per contract)
243
+ */
244
+ static exchangeFeePrdMkts(Sm: number, tradeAmtBC: number, traderPosBC: number, traderLockedInQC: number, collateralCC: number, traderLeverage: number, mu_m: number, mu_i: number, conf: bigint): number;
236
245
  /**
237
246
  * Estimates what the position risk will be if given amount of collateral is added/removed from the account.
238
247
  * @param {number} deltaCollateral Amount of collateral to add or remove (signed)
@@ -612,26 +612,52 @@ class MarketData extends perpetualDataHandler_1.default {
612
612
  }
613
613
  /**
614
614
  * Fee is relative to base-currency amount (=trade amount)
615
- * @returns relative exchange fee in decimals
615
+ * @param {number} Sm Mark price
616
+ * @param {number} tradeAmtBC Signed trade amount in base currency (positive for buy, negative for sell)
617
+ * @param {number} traderPosBC Current trader position in base currency (signed, positive for long, negative for short)
618
+ * @param {number} traderLockedInQC Locked-in value in quote currency for existing position (entry price * position size)
619
+ * @param {number} collateralCC Collateral in CC for existing position (fCashCC from margin account)
620
+ * @param {number} traderLeverage Leverage for the new trade
621
+ * @param {number} mu_m maintenance margin rate
622
+ * @param {number} mu_i Initial margin rate, for pred markets this is the min cash per contract required to open
623
+ * @param {bigint} conf Configuration bigint encoding jump and sigt (volatility * sqrt(time))
624
+ * @returns {number} Exchange fee per unit of base currency (e.g., 0.05 = 5 cents per contract)
616
625
  */
617
- static exchangeFeePrdMkts(Sm, tradeAmtBC, traderPosBC, traderLockedInQC, traderLeverage, mu_m, m_0, conf) {
626
+ static exchangeFeePrdMkts(Sm, tradeAmtBC, traderPosBC, traderLockedInQC, collateralCC, traderLeverage, mu_m, mu_i, conf) {
618
627
  const isClose = Math.sign(traderPosBC) != Math.sign(tradeAmtBC);
619
628
  const isFlip = Math.abs(traderPosBC + tradeAmtBC) > 0.01 && Math.sign(traderPosBC + tradeAmtBC) != Math.sign(traderPosBC);
620
- const varphiBar = tradeAmtBC > 0 ? Sm - 1 : 2 - Sm;
629
+ // varphi_0 is the entry mark price labeled varphiBar_0 on page 2 of the leveraged prediction markets paper used in equation (1)
630
+ const varphi_0 = tradeAmtBC > 0 ? Sm - 1 : 2 - Sm;
631
+ // varphi is the entry price of an existing position, we need this for the exit fee to compute liq price and the check if
632
+ // the original position is overcollateralized at entry
621
633
  const varphi = traderPosBC == 0
622
- ? varphiBar
634
+ ? varphi_0
623
635
  : traderPosBC > 0
624
636
  ? traderLockedInQC / traderPosBC - 1
625
637
  : 2 - traderLockedInQC / traderPosBC;
638
+ //console.log("[exchangeFeePrdMkts] varphi:", varphi, "varphi_0:", varphi_0);
639
+ // eq (1) leveraged prediction markets paper:
640
+ // m_0 = max(varphi_0 / l, c_{min}) + s(p_0 - pBar_0)^+
641
+ // c_{min} = min(varphi_0, mu_i) with mu_i being perpetualStaticInfo.initialMarginRate
642
+ // we assume that slippage s(p_0 - pBar_0)^+ is 0 here
643
+ const c_min = Math.min(varphi_0, mu_i);
644
+ const m_0 = Math.max(varphi_0 / traderLeverage, c_min);
645
+ // for the full exit fee m0 is taken from the existing position
646
+ const m_0Exit = traderPosBC == 0 ? 0 : collateralCC / Math.abs(traderPosBC);
626
647
  let fee;
627
648
  const { jump, sigt } = (0, d8XMath_1.extractLvgFeeParams)(conf);
628
649
  if (isClose && !isFlip) {
629
650
  // exit fee
630
- fee = (0, d8XMath_1.pmExitFee)(varphi, varphiBar, mu_m, m_0, sigt, jump);
651
+ //console.log("[exchangeFeePrdMkts] exit fee");
652
+ fee = -(0, d8XMath_1.pmExitFee)(varphi, varphi_0, m_0Exit, mu_m, mu_i, sigt, jump);
653
+ // if we are overcollateralized at entry (entry mark <= cash/contract), exit fee is 0.001 in any case
654
+ if (varphi <= m_0Exit) {
655
+ fee = 0.001;
656
+ }
631
657
  }
632
658
  else {
633
- // open fee
634
- fee = (0, d8XMath_1.pmOpenFee)(varphi, varphiBar, traderLeverage, mu_m, m_0, sigt, jump);
659
+ // entry fee
660
+ fee = (0, d8XMath_1.pmOpenFee)(varphi_0, m_0, mu_m, sigt, jump);
635
661
  }
636
662
  if (fee < 0.001) {
637
663
  fee = 0.001;