@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
package/src/marketData.ts CHANGED
@@ -505,7 +505,7 @@ export default class MarketData extends PerpetualDataHandler {
505
505
  perpId,
506
506
  floatToABK64x64(tradeAmountBC),
507
507
  [fS2, fS3],
508
- indexPriceInfo.conf & ((1n << 16n) - 1n),
508
+ 10n * (indexPriceInfo.conf & ((1n << 16n) - 1n)),
509
509
  indexPriceInfo.predMktCLOBParams,
510
510
  ]),
511
511
  },
@@ -840,38 +840,69 @@ export default class MarketData extends PerpetualDataHandler {
840
840
 
841
841
  /**
842
842
  * Fee is relative to base-currency amount (=trade amount)
843
- * @returns relative exchange fee in decimals
843
+ * @param {number} Sm Mark price
844
+ * @param {number} tradeAmtBC Signed trade amount in base currency (positive for buy, negative for sell)
845
+ * @param {number} traderPosBC Current trader position in base currency (signed, positive for long, negative for short)
846
+ * @param {number} traderLockedInQC Locked-in value in quote currency for existing position (entry price * position size)
847
+ * @param {number} collateralCC Collateral in CC for existing position (fCashCC from margin account)
848
+ * @param {number} traderLeverage Leverage for the new trade
849
+ * @param {number} mu_m maintenance margin rate
850
+ * @param {number} mu_i Initial margin rate, for pred markets this is the min cash per contract required to open
851
+ * @param {bigint} conf Configuration bigint encoding jump and sigt (volatility * sqrt(time))
852
+ * @returns {number} Exchange fee per unit of base currency (e.g., 0.05 = 5 cents per contract)
844
853
  */
845
854
  public static exchangeFeePrdMkts(
846
855
  Sm: number,
847
856
  tradeAmtBC: number,
848
857
  traderPosBC: number,
849
858
  traderLockedInQC: number,
859
+ collateralCC: number,
850
860
  traderLeverage: number,
851
861
  mu_m: number,
852
- m_0: number,
862
+ mu_i: number,
853
863
  conf: bigint
854
864
  ): number {
855
865
  const isClose = Math.sign(traderPosBC) != Math.sign(tradeAmtBC);
856
866
  const isFlip =
857
867
  Math.abs(traderPosBC + tradeAmtBC) > 0.01 && Math.sign(traderPosBC + tradeAmtBC) != Math.sign(traderPosBC);
858
868
 
859
- const varphiBar = tradeAmtBC > 0 ? Sm - 1 : 2 - Sm;
869
+ // varphi_0 is the entry mark price labeled varphiBar_0 on page 2 of the leveraged prediction markets paper used in equation (1)
870
+ const varphi_0 = tradeAmtBC > 0 ? Sm - 1 : 2 - Sm;
871
+
872
+ // varphi is the entry price of an existing position, we need this for the exit fee to compute liq price and the check if
873
+ // the original position is overcollateralized at entry
860
874
  const varphi =
861
875
  traderPosBC == 0
862
- ? varphiBar
876
+ ? varphi_0
863
877
  : traderPosBC > 0
864
- ? traderLockedInQC / traderPosBC - 1
865
- : 2 - traderLockedInQC / traderPosBC;
878
+ ? traderLockedInQC / traderPosBC
879
+ : 1 - traderLockedInQC / traderPosBC;
880
+
881
+ // eq (1) leveraged prediction markets paper:
882
+ // m_0 = max(varphi_0 / l, c_{min}) + s(p_0 - pBar_0)^+
883
+ // c_{min} = min(varphi_0, mu_i) with mu_i being perpetualStaticInfo.initialMarginRate
884
+ // we assume that slippage s(p_0 - pBar_0)^+ is 0 here
885
+ const c_min = Math.min(varphi_0, mu_i);
886
+ const m_0 = Math.max(varphi_0 / traderLeverage, c_min);
887
+
888
+ // for the full exit fee m0 is taken from the existing position
889
+ const m_0Exit = traderPosBC == 0 ? 0 : collateralCC / Math.abs(traderPosBC);
890
+
866
891
  let fee: number;
867
892
  const { jump, sigt } = extractLvgFeeParams(conf);
868
893
 
869
894
  if (isClose && !isFlip) {
870
895
  // exit fee
871
- fee = pmExitFee(varphi, varphiBar, mu_m, m_0, sigt, jump);
896
+ console.log("[exchangeFeePrdMkts] exit fee");
897
+ fee = -pmExitFee(varphi, varphi_0, m_0Exit, mu_m, mu_i, sigt, jump);
898
+
899
+ // if we are overcollateralized at entry (entry mark <= cash/contract), exit fee is 0.001 in any case
900
+ if (varphi <= m_0Exit) {
901
+ fee = 0.001;
902
+ }
872
903
  } else {
873
- // open fee
874
- fee = pmOpenFee(varphi, varphiBar, traderLeverage, mu_m, m_0, sigt, jump);
904
+ // entry fee
905
+ fee = pmOpenFee(varphi_0, m_0, mu_m, sigt, jump);
875
906
  }
876
907
  if (fee < 0.001) {
877
908
  fee = 0.001;
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const D8X_SDK_VERSION = "2.7.4";
1
+ export const D8X_SDK_VERSION = "2.7.6";
@@ -1,580 +0,0 @@
1
- [
2
- {
3
- "inputs": [
4
- {
5
- "internalType": "int128[2]",
6
- "name": "_fK2AMM",
7
- "type": "int128[2]"
8
- },
9
- {
10
- "internalType": "int128",
11
- "name": "_fk2Trader",
12
- "type": "int128"
13
- },
14
- {
15
- "internalType": "int128",
16
- "name": "_fCoverN",
17
- "type": "int128"
18
- },
19
- {
20
- "internalType": "int128[2]",
21
- "name": "fStressRet2",
22
- "type": "int128[2]"
23
- },
24
- {
25
- "internalType": "int128[2]",
26
- "name": "fStressRet3",
27
- "type": "int128[2]"
28
- },
29
- {
30
- "internalType": "int128[2]",
31
- "name": "fIndexPrices",
32
- "type": "int128[2]"
33
- },
34
- {
35
- "internalType": "enum AMMPerpLogic.CollateralCurrency",
36
- "name": "_eCCY",
37
- "type": "uint8"
38
- }
39
- ],
40
- "name": "calculateDefaultFundSize",
41
- "outputs": [
42
- {
43
- "internalType": "int128",
44
- "name": "",
45
- "type": "int128"
46
- }
47
- ],
48
- "stateMutability": "pure",
49
- "type": "function"
50
- },
51
- {
52
- "inputs": [
53
- {
54
- "components": [
55
- {
56
- "internalType": "int128",
57
- "name": "fLockedValue1",
58
- "type": "int128"
59
- },
60
- {
61
- "internalType": "int128",
62
- "name": "fPoolM1",
63
- "type": "int128"
64
- },
65
- {
66
- "internalType": "int128",
67
- "name": "fPoolM2",
68
- "type": "int128"
69
- },
70
- {
71
- "internalType": "int128",
72
- "name": "fPoolM3",
73
- "type": "int128"
74
- },
75
- {
76
- "internalType": "int128",
77
- "name": "fAMM_K2",
78
- "type": "int128"
79
- },
80
- {
81
- "internalType": "int128",
82
- "name": "fCurrentTraderExposureEMA",
83
- "type": "int128"
84
- }
85
- ],
86
- "internalType": "struct AMMPerpLogic.AMMVariables",
87
- "name": "_ammVars",
88
- "type": "tuple"
89
- },
90
- {
91
- "components": [
92
- {
93
- "internalType": "int128",
94
- "name": "fIndexPriceS2",
95
- "type": "int128"
96
- },
97
- {
98
- "internalType": "int128",
99
- "name": "fIndexPriceS3",
100
- "type": "int128"
101
- },
102
- {
103
- "internalType": "int128",
104
- "name": "fSigma2",
105
- "type": "int128"
106
- },
107
- {
108
- "internalType": "int128",
109
- "name": "fSigma3",
110
- "type": "int128"
111
- },
112
- {
113
- "internalType": "int128",
114
- "name": "fRho23",
115
- "type": "int128"
116
- }
117
- ],
118
- "internalType": "struct AMMPerpLogic.MarketVariables",
119
- "name": "_mktVars",
120
- "type": "tuple"
121
- },
122
- {
123
- "internalType": "int128",
124
- "name": "_fTradeAmount",
125
- "type": "int128"
126
- },
127
- {
128
- "internalType": "int128",
129
- "name": "_fHBidAskSpread",
130
- "type": "int128"
131
- },
132
- {
133
- "internalType": "int128",
134
- "name": "_fIncentiveSpread",
135
- "type": "int128"
136
- }
137
- ],
138
- "name": "calculatePerpetualPrice",
139
- "outputs": [
140
- {
141
- "internalType": "int128",
142
- "name": "",
143
- "type": "int128"
144
- }
145
- ],
146
- "stateMutability": "view",
147
- "type": "function"
148
- },
149
- {
150
- "inputs": [
151
- {
152
- "components": [
153
- {
154
- "internalType": "int128",
155
- "name": "fLockedValue1",
156
- "type": "int128"
157
- },
158
- {
159
- "internalType": "int128",
160
- "name": "fPoolM1",
161
- "type": "int128"
162
- },
163
- {
164
- "internalType": "int128",
165
- "name": "fPoolM2",
166
- "type": "int128"
167
- },
168
- {
169
- "internalType": "int128",
170
- "name": "fPoolM3",
171
- "type": "int128"
172
- },
173
- {
174
- "internalType": "int128",
175
- "name": "fAMM_K2",
176
- "type": "int128"
177
- },
178
- {
179
- "internalType": "int128",
180
- "name": "fCurrentTraderExposureEMA",
181
- "type": "int128"
182
- }
183
- ],
184
- "internalType": "struct AMMPerpLogic.AMMVariables",
185
- "name": "_ammVars",
186
- "type": "tuple"
187
- },
188
- {
189
- "components": [
190
- {
191
- "internalType": "int128",
192
- "name": "fIndexPriceS2",
193
- "type": "int128"
194
- },
195
- {
196
- "internalType": "int128",
197
- "name": "fIndexPriceS3",
198
- "type": "int128"
199
- },
200
- {
201
- "internalType": "int128",
202
- "name": "fSigma2",
203
- "type": "int128"
204
- },
205
- {
206
- "internalType": "int128",
207
- "name": "fSigma3",
208
- "type": "int128"
209
- },
210
- {
211
- "internalType": "int128",
212
- "name": "fRho23",
213
- "type": "int128"
214
- }
215
- ],
216
- "internalType": "struct AMMPerpLogic.MarketVariables",
217
- "name": "_mktVars",
218
- "type": "tuple"
219
- },
220
- {
221
- "internalType": "int128",
222
- "name": "_fTradeAmount",
223
- "type": "int128"
224
- },
225
- {
226
- "internalType": "bool",
227
- "name": "_withCDF",
228
- "type": "bool"
229
- }
230
- ],
231
- "name": "calculateRiskNeutralPD",
232
- "outputs": [
233
- {
234
- "internalType": "int128",
235
- "name": "",
236
- "type": "int128"
237
- },
238
- {
239
- "internalType": "int128",
240
- "name": "",
241
- "type": "int128"
242
- }
243
- ],
244
- "stateMutability": "view",
245
- "type": "function"
246
- },
247
- {
248
- "inputs": [
249
- {
250
- "internalType": "uint16",
251
- "name": "num",
252
- "type": "uint16"
253
- }
254
- ],
255
- "name": "decodeUint16Float",
256
- "outputs": [
257
- {
258
- "internalType": "int128",
259
- "name": "",
260
- "type": "int128"
261
- }
262
- ],
263
- "stateMutability": "pure",
264
- "type": "function"
265
- },
266
- {
267
- "inputs": [
268
- {
269
- "internalType": "int128",
270
- "name": "_p",
271
- "type": "int128"
272
- }
273
- ],
274
- "name": "entropy",
275
- "outputs": [
276
- {
277
- "internalType": "int128",
278
- "name": "",
279
- "type": "int128"
280
- }
281
- ],
282
- "stateMutability": "pure",
283
- "type": "function"
284
- },
285
- {
286
- "inputs": [
287
- {
288
- "internalType": "int128",
289
- "name": "_fPosition0",
290
- "type": "int128"
291
- },
292
- {
293
- "internalType": "int128",
294
- "name": "_fBalance0",
295
- "type": "int128"
296
- },
297
- {
298
- "internalType": "int128",
299
- "name": "_fTradeAmount",
300
- "type": "int128"
301
- },
302
- {
303
- "internalType": "int128",
304
- "name": "_fTargetLeverage",
305
- "type": "int128"
306
- },
307
- {
308
- "internalType": "int128",
309
- "name": "_fPrice",
310
- "type": "int128"
311
- },
312
- {
313
- "internalType": "int128",
314
- "name": "_fS2Mark",
315
- "type": "int128"
316
- },
317
- {
318
- "internalType": "int128",
319
- "name": "_fS3",
320
- "type": "int128"
321
- },
322
- {
323
- "internalType": "int128",
324
- "name": "_fS2",
325
- "type": "int128"
326
- }
327
- ],
328
- "name": "getDepositAmountForLvgPosition",
329
- "outputs": [
330
- {
331
- "internalType": "int128",
332
- "name": "",
333
- "type": "int128"
334
- }
335
- ],
336
- "stateMutability": "pure",
337
- "type": "function"
338
- },
339
- {
340
- "inputs": [
341
- {
342
- "internalType": "int128",
343
- "name": "_fK2",
344
- "type": "int128"
345
- },
346
- {
347
- "internalType": "int128",
348
- "name": "_fL1",
349
- "type": "int128"
350
- },
351
- {
352
- "components": [
353
- {
354
- "internalType": "int128",
355
- "name": "fIndexPriceS2",
356
- "type": "int128"
357
- },
358
- {
359
- "internalType": "int128",
360
- "name": "fIndexPriceS3",
361
- "type": "int128"
362
- },
363
- {
364
- "internalType": "int128",
365
- "name": "fSigma2",
366
- "type": "int128"
367
- },
368
- {
369
- "internalType": "int128",
370
- "name": "fSigma3",
371
- "type": "int128"
372
- },
373
- {
374
- "internalType": "int128",
375
- "name": "fRho23",
376
- "type": "int128"
377
- }
378
- ],
379
- "internalType": "struct AMMPerpLogic.MarketVariables",
380
- "name": "_mktVars",
381
- "type": "tuple"
382
- },
383
- {
384
- "internalType": "int128",
385
- "name": "_fTargetDD",
386
- "type": "int128"
387
- }
388
- ],
389
- "name": "getTargetCollateralM1",
390
- "outputs": [
391
- {
392
- "internalType": "int128",
393
- "name": "",
394
- "type": "int128"
395
- }
396
- ],
397
- "stateMutability": "pure",
398
- "type": "function"
399
- },
400
- {
401
- "inputs": [
402
- {
403
- "internalType": "int128",
404
- "name": "_fK2",
405
- "type": "int128"
406
- },
407
- {
408
- "internalType": "int128",
409
- "name": "_fL1",
410
- "type": "int128"
411
- },
412
- {
413
- "components": [
414
- {
415
- "internalType": "int128",
416
- "name": "fIndexPriceS2",
417
- "type": "int128"
418
- },
419
- {
420
- "internalType": "int128",
421
- "name": "fIndexPriceS3",
422
- "type": "int128"
423
- },
424
- {
425
- "internalType": "int128",
426
- "name": "fSigma2",
427
- "type": "int128"
428
- },
429
- {
430
- "internalType": "int128",
431
- "name": "fSigma3",
432
- "type": "int128"
433
- },
434
- {
435
- "internalType": "int128",
436
- "name": "fRho23",
437
- "type": "int128"
438
- }
439
- ],
440
- "internalType": "struct AMMPerpLogic.MarketVariables",
441
- "name": "_mktVars",
442
- "type": "tuple"
443
- },
444
- {
445
- "internalType": "int128",
446
- "name": "_fTargetDD",
447
- "type": "int128"
448
- }
449
- ],
450
- "name": "getTargetCollateralM2",
451
- "outputs": [
452
- {
453
- "internalType": "int128",
454
- "name": "",
455
- "type": "int128"
456
- }
457
- ],
458
- "stateMutability": "pure",
459
- "type": "function"
460
- },
461
- {
462
- "inputs": [
463
- {
464
- "internalType": "int128",
465
- "name": "_fK2",
466
- "type": "int128"
467
- },
468
- {
469
- "internalType": "int128",
470
- "name": "_fL1",
471
- "type": "int128"
472
- },
473
- {
474
- "components": [
475
- {
476
- "internalType": "int128",
477
- "name": "fIndexPriceS2",
478
- "type": "int128"
479
- },
480
- {
481
- "internalType": "int128",
482
- "name": "fIndexPriceS3",
483
- "type": "int128"
484
- },
485
- {
486
- "internalType": "int128",
487
- "name": "fSigma2",
488
- "type": "int128"
489
- },
490
- {
491
- "internalType": "int128",
492
- "name": "fSigma3",
493
- "type": "int128"
494
- },
495
- {
496
- "internalType": "int128",
497
- "name": "fRho23",
498
- "type": "int128"
499
- }
500
- ],
501
- "internalType": "struct AMMPerpLogic.MarketVariables",
502
- "name": "_mktVars",
503
- "type": "tuple"
504
- },
505
- {
506
- "internalType": "int128",
507
- "name": "_fTargetDD",
508
- "type": "int128"
509
- }
510
- ],
511
- "name": "getTargetCollateralM3",
512
- "outputs": [
513
- {
514
- "internalType": "int128",
515
- "name": "",
516
- "type": "int128"
517
- }
518
- ],
519
- "stateMutability": "pure",
520
- "type": "function"
521
- },
522
- {
523
- "inputs": [
524
- {
525
- "internalType": "int128",
526
- "name": "_fPx",
527
- "type": "int128"
528
- },
529
- {
530
- "internalType": "int128",
531
- "name": "_fm",
532
- "type": "int128"
533
- },
534
- {
535
- "internalType": "int128",
536
- "name": "_fTradeAmt",
537
- "type": "int128"
538
- },
539
- {
540
- "internalType": "int128",
541
- "name": "_fMgnRate",
542
- "type": "int128"
543
- }
544
- ],
545
- "name": "prdMktsLvgFee",
546
- "outputs": [
547
- {
548
- "internalType": "int128",
549
- "name": "",
550
- "type": "int128"
551
- }
552
- ],
553
- "stateMutability": "pure",
554
- "type": "function"
555
- },
556
- {
557
- "inputs": [
558
- {
559
- "internalType": "int128",
560
- "name": "_amount",
561
- "type": "int128"
562
- },
563
- {
564
- "internalType": "uint64",
565
- "name": "_params",
566
- "type": "uint64"
567
- }
568
- ],
569
- "name": "priceImpact",
570
- "outputs": [
571
- {
572
- "internalType": "int128",
573
- "name": "",
574
- "type": "int128"
575
- }
576
- ],
577
- "stateMutability": "pure",
578
- "type": "function"
579
- }
580
- ]