@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
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
- 10n*(indexPriceInfo.conf & ((1n << 16n) - 1n)),
508
+ 10n * (indexPriceInfo.conf & ((1n << 16n) - 1n)),
509
509
  indexPriceInfo.predMktCLOBParams,
510
510
  ]),
511
511
  },
@@ -840,38 +840,70 @@ 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
878
  ? traderLockedInQC / traderPosBC - 1
865
879
  : 2 - traderLockedInQC / traderPosBC;
880
+
881
+ //console.log("[exchangeFeePrdMkts] varphi:", varphi, "varphi_0:", varphi_0);
882
+ // eq (1) leveraged prediction markets paper:
883
+ // m_0 = max(varphi_0 / l, c_{min}) + s(p_0 - pBar_0)^+
884
+ // c_{min} = min(varphi_0, mu_i) with mu_i being perpetualStaticInfo.initialMarginRate
885
+ // we assume that slippage s(p_0 - pBar_0)^+ is 0 here
886
+ const c_min = Math.min(varphi_0, mu_i);
887
+ const m_0 = Math.max(varphi_0 / traderLeverage, c_min);
888
+
889
+ // for the full exit fee m0 is taken from the existing position
890
+ const m_0Exit = traderPosBC == 0 ? 0 : collateralCC / Math.abs(traderPosBC);
891
+
866
892
  let fee: number;
867
893
  const { jump, sigt } = extractLvgFeeParams(conf);
868
894
 
869
895
  if (isClose && !isFlip) {
870
896
  // exit fee
871
- fee = pmExitFee(varphi, varphiBar, mu_m, m_0, sigt, jump);
897
+ //console.log("[exchangeFeePrdMkts] exit fee");
898
+ fee = -pmExitFee(varphi, varphi_0, m_0Exit, mu_m, mu_i, sigt, jump);
899
+
900
+ // if we are overcollateralized at entry (entry mark <= cash/contract), exit fee is 0.001 in any case
901
+ if (varphi <= m_0Exit) {
902
+ fee = 0.001;
903
+ }
872
904
  } else {
873
- // open fee
874
- fee = pmOpenFee(varphi, varphiBar, traderLeverage, mu_m, m_0, sigt, jump);
905
+ // entry fee
906
+ fee = pmOpenFee(varphi_0, m_0, mu_m, sigt, jump);
875
907
  }
876
908
  if (fee < 0.001) {
877
909
  fee = 0.001;
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const D8X_SDK_VERSION = "2.7.5";
1
+ export const D8X_SDK_VERSION = "2.7.7";
@@ -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
- ]