@d8x/perpetuals-sdk 2.7.4 → 2.7.6

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 (232) hide show
  1. package/dist/cjs/config/defaultConfig.json +8 -1
  2. package/dist/cjs/d8XMath.d.ts +2 -2
  3. package/dist/cjs/d8XMath.js +48 -30
  4. package/dist/cjs/d8XMath.js.map +1 -1
  5. package/dist/cjs/main.d.ts +1 -0
  6. package/dist/cjs/main.js +15 -0
  7. package/dist/cjs/main.js.map +1 -0
  8. package/dist/cjs/marketData.d.ts +12 -3
  9. package/dist/cjs/marketData.js +35 -10
  10. package/dist/cjs/marketData.js.map +1 -1
  11. package/dist/cjs/version.d.ts +1 -1
  12. package/dist/cjs/version.js +1 -1
  13. package/dist/esm/config/defaultConfig.json +8 -1
  14. package/dist/esm/d8XMath.d.ts +2 -2
  15. package/dist/esm/d8XMath.js +48 -30
  16. package/dist/esm/d8XMath.js.map +1 -1
  17. package/dist/esm/main.d.ts +1 -0
  18. package/dist/esm/main.js +13 -0
  19. package/dist/esm/main.js.map +1 -0
  20. package/dist/esm/main2.d.ts +1 -0
  21. package/dist/esm/main2.js +18 -0
  22. package/dist/esm/main2.js.map +1 -0
  23. package/dist/esm/marketData.d.ts +12 -3
  24. package/dist/esm/marketData.js +35 -10
  25. package/dist/esm/marketData.js.map +1 -1
  26. package/dist/esm/version.d.ts +1 -1
  27. package/dist/esm/version.js +1 -1
  28. package/package.json +1 -1
  29. package/src/config/defaultConfig.json +8 -1
  30. package/src/d8XMath.ts +65 -36
  31. package/src/marketData.ts +41 -10
  32. package/src/version.ts +1 -1
  33. package/dist/cjs/abi/AMMPerpLogic.json +0 -580
  34. package/dist/cjs/abi/BeaconProxy.json +0 -71
  35. package/dist/cjs/abi/IPerpetualManager copy.json +0 -5599
  36. package/dist/cjs/abi/IPerpetualMarginViewLogic.json +0 -286
  37. package/dist/cjs/abi/Maintainer.json +0 -774
  38. package/dist/cjs/abi/MockToken.json +0 -347
  39. package/dist/cjs/abi/MockUSD.json +0 -413
  40. package/dist/cjs/abi/UUPSUpgradeable.json +0 -104
  41. package/dist/cjs/abi/WeETH.json +0 -310
  42. package/dist/cjs/abi-zkevm/IPerpetualManager.json +0 -5366
  43. package/dist/cjs/abi-zkevm/LimitOrderBook.json +0 -910
  44. package/dist/cjs/abi-zkevm/LimitOrderBookFactory.json +0 -236
  45. package/dist/cjs/contracts/AMMPerpLogic.d.ts +0 -303
  46. package/dist/cjs/contracts/AMMPerpLogic.js +0 -3
  47. package/dist/cjs/contracts/AMMPerpLogic.js.map +0 -1
  48. package/dist/cjs/contracts/BeaconProxy.d.ts +0 -63
  49. package/dist/cjs/contracts/BeaconProxy.js +0 -3
  50. package/dist/cjs/contracts/BeaconProxy.js.map +0 -1
  51. package/dist/cjs/contracts/IPerpetualManagerCopy.d.ts +0 -3223
  52. package/dist/cjs/contracts/IPerpetualManagerCopy.js +0 -3
  53. package/dist/cjs/contracts/IPerpetualManagerCopy.js.map +0 -1
  54. package/dist/cjs/contracts/IPerpetualMarginViewLogic.d.ts +0 -183
  55. package/dist/cjs/contracts/IPerpetualMarginViewLogic.js +0 -3
  56. package/dist/cjs/contracts/IPerpetualMarginViewLogic.js.map +0 -1
  57. package/dist/cjs/contracts/Maintainer.d.ts +0 -799
  58. package/dist/cjs/contracts/Maintainer.js +0 -3
  59. package/dist/cjs/contracts/Maintainer.js.map +0 -1
  60. package/dist/cjs/contracts/MockToken.d.ts +0 -263
  61. package/dist/cjs/contracts/MockToken.js +0 -3
  62. package/dist/cjs/contracts/MockToken.js.map +0 -1
  63. package/dist/cjs/contracts/MockUSD.d.ts +0 -186
  64. package/dist/cjs/contracts/MockUSD.js +0 -3
  65. package/dist/cjs/contracts/MockUSD.js.map +0 -1
  66. package/dist/cjs/contracts/UUPSUpgradeable.d.ts +0 -118
  67. package/dist/cjs/contracts/UUPSUpgradeable.js +0 -3
  68. package/dist/cjs/contracts/UUPSUpgradeable.js.map +0 -1
  69. package/dist/cjs/contracts/WeETH.d.ts +0 -503
  70. package/dist/cjs/contracts/WeETH.js +0 -3
  71. package/dist/cjs/contracts/WeETH.js.map +0 -1
  72. package/dist/cjs/contracts/factories/AMMPerpLogic__factory.d.ts +0 -452
  73. package/dist/cjs/contracts/factories/AMMPerpLogic__factory.js +0 -598
  74. package/dist/cjs/contracts/factories/AMMPerpLogic__factory.js.map +0 -1
  75. package/dist/cjs/contracts/factories/BeaconProxy__factory.d.ts +0 -61
  76. package/dist/cjs/contracts/factories/BeaconProxy__factory.js +0 -89
  77. package/dist/cjs/contracts/factories/BeaconProxy__factory.js.map +0 -1
  78. package/dist/cjs/contracts/factories/IPerpetualManagerCopy__factory.d.ts +0 -4358
  79. package/dist/cjs/contracts/factories/IPerpetualManagerCopy__factory.js +0 -5617
  80. package/dist/cjs/contracts/factories/IPerpetualManagerCopy__factory.js.map +0 -1
  81. package/dist/cjs/contracts/factories/IPerpetualMarginViewLogic__factory.d.ts +0 -221
  82. package/dist/cjs/contracts/factories/IPerpetualMarginViewLogic__factory.js +0 -304
  83. package/dist/cjs/contracts/factories/IPerpetualMarginViewLogic__factory.js.map +0 -1
  84. package/dist/cjs/contracts/factories/Maintainer__factory.d.ts +0 -609
  85. package/dist/cjs/contracts/factories/Maintainer__factory.js +0 -792
  86. package/dist/cjs/contracts/factories/Maintainer__factory.js.map +0 -1
  87. package/dist/cjs/contracts/factories/MockToken__factory.d.ts +0 -273
  88. package/dist/cjs/contracts/factories/MockToken__factory.js +0 -365
  89. package/dist/cjs/contracts/factories/MockToken__factory.js.map +0 -1
  90. package/dist/cjs/contracts/factories/MockUSD__factory.d.ts +0 -320
  91. package/dist/cjs/contracts/factories/MockUSD__factory.js +0 -431
  92. package/dist/cjs/contracts/factories/MockUSD__factory.js.map +0 -1
  93. package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.d.ts +0 -87
  94. package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.js +0 -122
  95. package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.js.map +0 -1
  96. package/dist/cjs/contracts/factories/WeETH__factory.d.ts +0 -545
  97. package/dist/cjs/contracts/factories/WeETH__factory.js +0 -721
  98. package/dist/cjs/contracts/factories/WeETH__factory.js.map +0 -1
  99. package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.d.ts +0 -4136
  100. package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.js +0 -5324
  101. package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.js.map +0 -1
  102. package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.d.ts +0 -189
  103. package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.js +0 -254
  104. package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.js.map +0 -1
  105. package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.d.ts +0 -715
  106. package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.js +0 -928
  107. package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.js.map +0 -1
  108. package/dist/cjs/contracts/factories/lean0/ShareToken__factory.d.ts +0 -344
  109. package/dist/cjs/contracts/factories/lean0/ShareToken__factory.js +0 -456
  110. package/dist/cjs/contracts/factories/lean0/ShareToken__factory.js.map +0 -1
  111. package/dist/cjs/contracts/factories/lean0/index.d.ts +0 -4
  112. package/dist/cjs/contracts/factories/lean0/index.js +0 -15
  113. package/dist/cjs/contracts/factories/lean0/index.js.map +0 -1
  114. package/dist/cjs/contracts/lean0/IPerpetualManager.d.ts +0 -2821
  115. package/dist/cjs/contracts/lean0/IPerpetualManager.js +0 -3
  116. package/dist/cjs/contracts/lean0/IPerpetualManager.js.map +0 -1
  117. package/dist/cjs/contracts/lean0/LimitOrderBook.d.ts +0 -533
  118. package/dist/cjs/contracts/lean0/LimitOrderBook.js +0 -3
  119. package/dist/cjs/contracts/lean0/LimitOrderBook.js.map +0 -1
  120. package/dist/cjs/contracts/lean0/LimitOrderBookFactory.d.ts +0 -210
  121. package/dist/cjs/contracts/lean0/LimitOrderBookFactory.js +0 -3
  122. package/dist/cjs/contracts/lean0/LimitOrderBookFactory.js.map +0 -1
  123. package/dist/cjs/contracts/lean0/ShareToken.d.ts +0 -320
  124. package/dist/cjs/contracts/lean0/ShareToken.js +0 -3
  125. package/dist/cjs/contracts/lean0/ShareToken.js.map +0 -1
  126. package/dist/cjs/contracts/lean0/index.d.ts +0 -4
  127. package/dist/cjs/contracts/lean0/index.js +0 -3
  128. package/dist/cjs/contracts/lean0/index.js.map +0 -1
  129. package/dist/esm/abi/AMMPerpLogic.json +0 -580
  130. package/dist/esm/abi/BeaconProxy.json +0 -71
  131. package/dist/esm/abi/IPerpetualManager copy.json +0 -5599
  132. package/dist/esm/abi/IPerpetualMarginViewLogic.json +0 -286
  133. package/dist/esm/abi/Maintainer.json +0 -774
  134. package/dist/esm/abi/MockToken.json +0 -347
  135. package/dist/esm/abi/MockUSD.json +0 -413
  136. package/dist/esm/abi/UUPSUpgradeable.json +0 -104
  137. package/dist/esm/abi/WeETH.json +0 -310
  138. package/dist/esm/abi/lean0/IPerpetualManager.json +0 -5306
  139. package/dist/esm/abi/lean0/LimitOrderBook.json +0 -910
  140. package/dist/esm/abi/lean0/LimitOrderBookFactory.json +0 -236
  141. package/dist/esm/abi/lean0/ShareToken.json +0 -438
  142. package/dist/esm/abi-zkevm/IPerpetualManager.json +0 -5366
  143. package/dist/esm/abi-zkevm/LimitOrderBook.json +0 -910
  144. package/dist/esm/abi-zkevm/LimitOrderBookFactory.json +0 -236
  145. package/dist/esm/contracts/AMMPerpLogic.d.ts +0 -303
  146. package/dist/esm/contracts/AMMPerpLogic.js +0 -2
  147. package/dist/esm/contracts/AMMPerpLogic.js.map +0 -1
  148. package/dist/esm/contracts/BeaconProxy.d.ts +0 -63
  149. package/dist/esm/contracts/BeaconProxy.js +0 -2
  150. package/dist/esm/contracts/BeaconProxy.js.map +0 -1
  151. package/dist/esm/contracts/IPerpetualManagerCopy.d.ts +0 -3223
  152. package/dist/esm/contracts/IPerpetualManagerCopy.js +0 -2
  153. package/dist/esm/contracts/IPerpetualManagerCopy.js.map +0 -1
  154. package/dist/esm/contracts/IPerpetualMarginViewLogic.d.ts +0 -183
  155. package/dist/esm/contracts/IPerpetualMarginViewLogic.js +0 -2
  156. package/dist/esm/contracts/IPerpetualMarginViewLogic.js.map +0 -1
  157. package/dist/esm/contracts/Maintainer.d.ts +0 -799
  158. package/dist/esm/contracts/Maintainer.js +0 -2
  159. package/dist/esm/contracts/Maintainer.js.map +0 -1
  160. package/dist/esm/contracts/MockToken.d.ts +0 -263
  161. package/dist/esm/contracts/MockToken.js +0 -2
  162. package/dist/esm/contracts/MockToken.js.map +0 -1
  163. package/dist/esm/contracts/MockUSD.d.ts +0 -186
  164. package/dist/esm/contracts/MockUSD.js +0 -2
  165. package/dist/esm/contracts/MockUSD.js.map +0 -1
  166. package/dist/esm/contracts/UUPSUpgradeable.d.ts +0 -118
  167. package/dist/esm/contracts/UUPSUpgradeable.js +0 -2
  168. package/dist/esm/contracts/UUPSUpgradeable.js.map +0 -1
  169. package/dist/esm/contracts/WeETH.d.ts +0 -503
  170. package/dist/esm/contracts/WeETH.js +0 -2
  171. package/dist/esm/contracts/WeETH.js.map +0 -1
  172. package/dist/esm/contracts/factories/AMMPerpLogic__factory.d.ts +0 -452
  173. package/dist/esm/contracts/factories/AMMPerpLogic__factory.js +0 -594
  174. package/dist/esm/contracts/factories/AMMPerpLogic__factory.js.map +0 -1
  175. package/dist/esm/contracts/factories/BeaconProxy__factory.d.ts +0 -61
  176. package/dist/esm/contracts/factories/BeaconProxy__factory.js +0 -85
  177. package/dist/esm/contracts/factories/BeaconProxy__factory.js.map +0 -1
  178. package/dist/esm/contracts/factories/IPerpetualManagerCopy__factory.d.ts +0 -4358
  179. package/dist/esm/contracts/factories/IPerpetualManagerCopy__factory.js +0 -5613
  180. package/dist/esm/contracts/factories/IPerpetualManagerCopy__factory.js.map +0 -1
  181. package/dist/esm/contracts/factories/IPerpetualMarginViewLogic__factory.d.ts +0 -221
  182. package/dist/esm/contracts/factories/IPerpetualMarginViewLogic__factory.js +0 -300
  183. package/dist/esm/contracts/factories/IPerpetualMarginViewLogic__factory.js.map +0 -1
  184. package/dist/esm/contracts/factories/Maintainer__factory.d.ts +0 -609
  185. package/dist/esm/contracts/factories/Maintainer__factory.js +0 -788
  186. package/dist/esm/contracts/factories/Maintainer__factory.js.map +0 -1
  187. package/dist/esm/contracts/factories/MockToken__factory.d.ts +0 -273
  188. package/dist/esm/contracts/factories/MockToken__factory.js +0 -361
  189. package/dist/esm/contracts/factories/MockToken__factory.js.map +0 -1
  190. package/dist/esm/contracts/factories/MockUSD__factory.d.ts +0 -320
  191. package/dist/esm/contracts/factories/MockUSD__factory.js +0 -427
  192. package/dist/esm/contracts/factories/MockUSD__factory.js.map +0 -1
  193. package/dist/esm/contracts/factories/UUPSUpgradeable__factory.d.ts +0 -87
  194. package/dist/esm/contracts/factories/UUPSUpgradeable__factory.js +0 -118
  195. package/dist/esm/contracts/factories/UUPSUpgradeable__factory.js.map +0 -1
  196. package/dist/esm/contracts/factories/WeETH__factory.d.ts +0 -545
  197. package/dist/esm/contracts/factories/WeETH__factory.js +0 -717
  198. package/dist/esm/contracts/factories/WeETH__factory.js.map +0 -1
  199. package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.d.ts +0 -4136
  200. package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.js +0 -5320
  201. package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.js.map +0 -1
  202. package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.d.ts +0 -189
  203. package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.js +0 -250
  204. package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.js.map +0 -1
  205. package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.d.ts +0 -715
  206. package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.js +0 -924
  207. package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.js.map +0 -1
  208. package/dist/esm/contracts/factories/lean0/ShareToken__factory.d.ts +0 -344
  209. package/dist/esm/contracts/factories/lean0/ShareToken__factory.js +0 -452
  210. package/dist/esm/contracts/factories/lean0/ShareToken__factory.js.map +0 -1
  211. package/dist/esm/contracts/factories/lean0/index.d.ts +0 -4
  212. package/dist/esm/contracts/factories/lean0/index.js +0 -8
  213. package/dist/esm/contracts/factories/lean0/index.js.map +0 -1
  214. package/dist/esm/contracts/lean0/IPerpetualManager.d.ts +0 -2821
  215. package/dist/esm/contracts/lean0/IPerpetualManager.js +0 -2
  216. package/dist/esm/contracts/lean0/IPerpetualManager.js.map +0 -1
  217. package/dist/esm/contracts/lean0/LimitOrderBook.d.ts +0 -533
  218. package/dist/esm/contracts/lean0/LimitOrderBook.js +0 -2
  219. package/dist/esm/contracts/lean0/LimitOrderBook.js.map +0 -1
  220. package/dist/esm/contracts/lean0/LimitOrderBookFactory.d.ts +0 -210
  221. package/dist/esm/contracts/lean0/LimitOrderBookFactory.js +0 -2
  222. package/dist/esm/contracts/lean0/LimitOrderBookFactory.js.map +0 -1
  223. package/dist/esm/contracts/lean0/ShareToken.d.ts +0 -320
  224. package/dist/esm/contracts/lean0/ShareToken.js +0 -2
  225. package/dist/esm/contracts/lean0/ShareToken.js.map +0 -1
  226. package/dist/esm/contracts/lean0/index.d.ts +0 -4
  227. package/dist/esm/contracts/lean0/index.js +0 -2
  228. package/dist/esm/contracts/lean0/index.js.map +0 -1
  229. package/src/contracts/IPerpetualMarginViewLogic.ts +0 -347
  230. package/src/contracts/MockUSD.ts +0 -378
  231. package/src/contracts/factories/IPerpetualMarginViewLogic__factory.ts +0 -313
  232. package/src/contracts/factories/MockUSD__factory.ts +0 -430
@@ -36,7 +36,14 @@
36
36
  "proxyABILocation": "./abi/IPerpetualManager.json",
37
37
  "limitOrderBookFactoryABILocation": "./abi/LimitOrderBookFactory.json",
38
38
  "limitOrderBookABILocation": "./abi/LimitOrderBook.json",
39
- "configSource": "https://d8-x.github.io/sync-hub/d8x-futures-node-sdk/"
39
+ "configSource": "https://d8-x.github.io/sync-hub/d8x-futures-node-sdk/",
40
+ "priceFeedEndpoints": [
41
+ {
42
+ "type": "polymarket",
43
+ "endpoints": ["https://odin-sport-v2.quantena.org"],
44
+ "writeEndpoints": ["https://odin-sport-v2.quantena.org"]
45
+ }
46
+ ]
40
47
  },
41
48
  {
42
49
  "name": "bera",
@@ -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,26 @@ 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
+ const kappa = calcKappa(varphi_0, pLiq, sigt);
562
+ console.log("[pmExitFee] kappa:", kappa, "pLiq:", pLiq, "varphi:", varphi);
563
+ let fee = prdMktLvgFee(kappa, varphi_0, mu_i);
562
564
  return fee;
563
565
  }
564
566
  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 });
567
+ function pmOpenFee(varphi_0, m_0, mu_m, sigt, jump) {
568
+ // eq (4) leveraged prediction markets paper:
569
+ // varphiLiq = varphi + mu_m - m_0
570
+ const varphiLiq = varphi_0 + mu_m - m_0;
571
+ const kappa = calcKappa(varphi_0, varphiLiq, sigt);
572
+ console.log("[pmOpenFee] kappa:", kappa, "varphiLiq:", varphiLiq, "m_0:", m_0);
573
+ let fee = prdMktLvgFee(kappa, varphi_0, m_0);
574
+ const es = calcJumpRisk(kappa, varphi_0, jump);
575
+ // cap ft = (1 - φt) φt - (1-φt) m0
576
+ const feecap = (1 - varphi_0) * varphi_0 - (1 - varphi_0) * m_0;
573
577
  fee = fee + es;
574
578
  if (fee > feecap) {
575
579
  fee = feecap;
@@ -625,35 +629,49 @@ function decodeUint16Float(num) {
625
629
  }
626
630
  function decodeUint24Float(num) {
627
631
  const n = BigInt(num);
632
+ const ONE_64x64 = 2n ** 64n;
628
633
  const sgnE = n >> 23n;
629
634
  const val = (n >> 3n) & ((1n << 20n) - 1n);
630
635
  const exponent = n & ((1n << 3n) - 1n);
631
- let v = BigInt.asIntN(128, val * 2n ** 64n);
636
+ // v = val * ONE_64x64
637
+ let v = BigInt.asIntN(128, val * ONE_64x64);
638
+ // Normalize: find first non-zero digit position
632
639
  let exponent1 = firstNonZeroNum(val);
633
640
  if (exponent1 > 0n)
634
641
  exponent1--;
642
+ if (exponent1 > 0n) {
643
+ const pow10exp1 = 10n ** exponent1 * ONE_64x64;
644
+ v = (v * ONE_64x64) / pow10exp1;
645
+ }
646
+ // Apply exponent
635
647
  if (sgnE == 1n) {
636
- v = (v * 2n ** 64n) / 10n ** exponent;
648
+ const pow10exp = 10n ** exponent * ONE_64x64;
649
+ v = (v * ONE_64x64) / pow10exp;
637
650
  }
638
651
  else {
639
- v = (v * 10n ** exponent) / 2n ** 64n;
652
+ const pow10exp = 10n ** exponent * ONE_64x64;
653
+ v = (v * pow10exp) / ONE_64x64;
640
654
  }
641
655
  return ABK64x64ToFloat(v);
642
656
  }
643
657
  function extractLvgFeeParams(conf) {
644
- // static replication of _checkOracleStatus and _extractLvgFeeParams
645
- // int64(conf >> 16);
658
+ // _param == int64(odinvalue >> 16)
646
659
  const param = BigInt.asIntN(64, conf >> 16n);
647
- // uint64(uint128(_param));
660
+ // uint64(uint128(_param))
648
661
  const enc = BigInt.asUintN(64, BigInt.asUintN(128, param));
649
662
  // uint64 j = enc >> 44; //top 4 bits
650
663
  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));
664
+ // uint64 st = enc & ((uint64(1) << 44) - 1);
665
+ const st = BigInt.asUintN(64, enc & ((1n << 44n) - 1n));
653
666
  // 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 });
667
+ // 922337203685477580 = 0.05 * 2^64
668
+ const JUMP_MULTIPLIER = 922337203685477580n; // 0.05 in ABDK
669
+ const jumpABDK = BigInt.asIntN(128, BigInt.asIntN(64, j)) * JUMP_MULTIPLIER;
670
+ const jump = ABK64x64ToFloat(jumpABDK);
671
+ // sigT = _decodeUint24Float(uint24(st & ((1 << 24) - 1)));
672
+ const sigtEncoded = BigInt.asUintN(24, st & ((1n << 24n) - 1n));
673
+ const sigt = decodeUint24Float(Number(sigtEncoded));
674
+ console.log("[extractLvgFeeParams] jump:", jump, "sigt:", sigt);
657
675
  return { jump, sigt };
658
676
  }
659
677
  exports.extractLvgFeeParams = extractLvgFeeParams;
@@ -694,15 +712,15 @@ function decodePriceImpact(amount, params) {
694
712
  exports.decodePriceImpact = decodePriceImpact;
695
713
  //sigt = sigma*sqrt(t)
696
714
  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));
715
+ const varphiBar = 1 - varphi;
716
+ const varphiBar_star = 1 - varphiLiq;
717
+ const x0 = Math.log(varphiBar / (1 - varphiBar));
718
+ const a = Math.log(varphiBar_star / (1 - varphiBar_star));
701
719
  // a - x0 = log( p*(1-p*) / (1-p)p* )
702
- const cdfArg = Math.log((p * (1 - pStar)) / (pStar * (1 - p))) / sigt;
720
+ const cdfArg = Math.log((varphiBar * (1 - varphiBar_star)) / (varphiBar_star * (1 - varphiBar))) / sigt;
703
721
  // console.log({ p, pStar, x0, a, sigt, cdfarg: (a - x0) / sigt });
704
722
  if (isNaN(cdfArg)) {
705
- return pStar * (1 - p) < p * (1 - pStar) ? 0 : 2;
723
+ return varphiBar_star * (1 - varphiBar) < varphiBar * (1 - varphiBar_star) ? 0 : 2;
706
724
  }
707
725
  const kappa = 2 * (1 - cdfNormalStd((a - x0) / sigt));
708
726
  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":"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"}
@@ -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)
@@ -350,7 +350,7 @@ class MarketData extends perpetualDataHandler_1.default {
350
350
  perpId,
351
351
  (0, d8XMath_1.floatToABK64x64)(tradeAmountBC),
352
352
  [fS2, fS3],
353
- indexPriceInfo.conf & ((1n << 16n) - 1n),
353
+ 10n * (indexPriceInfo.conf & ((1n << 16n) - 1n)),
354
354
  indexPriceInfo.predMktCLOBParams,
355
355
  ]),
356
356
  },
@@ -612,26 +612,51 @@ 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
- ? traderLockedInQC / traderPosBC - 1
625
- : 2 - traderLockedInQC / traderPosBC;
636
+ ? traderLockedInQC / traderPosBC
637
+ : 1 - traderLockedInQC / traderPosBC;
638
+ // eq (1) leveraged prediction markets paper:
639
+ // m_0 = max(varphi_0 / l, c_{min}) + s(p_0 - pBar_0)^+
640
+ // c_{min} = min(varphi_0, mu_i) with mu_i being perpetualStaticInfo.initialMarginRate
641
+ // we assume that slippage s(p_0 - pBar_0)^+ is 0 here
642
+ const c_min = Math.min(varphi_0, mu_i);
643
+ const m_0 = Math.max(varphi_0 / traderLeverage, c_min);
644
+ // for the full exit fee m0 is taken from the existing position
645
+ const m_0Exit = traderPosBC == 0 ? 0 : collateralCC / Math.abs(traderPosBC);
626
646
  let fee;
627
647
  const { jump, sigt } = (0, d8XMath_1.extractLvgFeeParams)(conf);
628
648
  if (isClose && !isFlip) {
629
649
  // exit fee
630
- fee = (0, d8XMath_1.pmExitFee)(varphi, varphiBar, mu_m, m_0, sigt, jump);
650
+ console.log("[exchangeFeePrdMkts] exit fee");
651
+ fee = -(0, d8XMath_1.pmExitFee)(varphi, varphi_0, m_0Exit, mu_m, mu_i, sigt, jump);
652
+ // if we are overcollateralized at entry (entry mark <= cash/contract), exit fee is 0.001 in any case
653
+ if (varphi <= m_0Exit) {
654
+ fee = 0.001;
655
+ }
631
656
  }
632
657
  else {
633
- // open fee
634
- fee = (0, d8XMath_1.pmOpenFee)(varphi, varphiBar, traderLeverage, mu_m, m_0, sigt, jump);
658
+ // entry fee
659
+ fee = (0, d8XMath_1.pmOpenFee)(varphi_0, m_0, mu_m, sigt, jump);
635
660
  }
636
661
  if (fee < 0.001) {
637
662
  fee = 0.001;