@d8x/perpetuals-sdk 2.1.1-alpha2 → 2.1.3-alpha2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) hide show
  1. package/dist/cjs/abi/BeaconProxy.json +71 -0
  2. package/dist/cjs/abi/IPerpetualManager.json +5 -0
  3. package/dist/cjs/abi/Maintainer.json +774 -0
  4. package/dist/cjs/abi/MockToken.json +347 -0
  5. package/dist/cjs/abi/UUPSUpgradeable.json +104 -0
  6. package/dist/cjs/abi/WeETH.json +310 -0
  7. package/dist/cjs/abi-zkevm/LimitOrderBook.json +910 -0
  8. package/dist/cjs/abi-zkevm/LimitOrderBookFactory.json +236 -0
  9. package/dist/cjs/brokerTool.js +1 -1
  10. package/dist/cjs/brokerTool.js.map +1 -1
  11. package/dist/cjs/contracts/BeaconProxy.d.ts +63 -0
  12. package/dist/cjs/contracts/BeaconProxy.js +3 -0
  13. package/dist/cjs/contracts/BeaconProxy.js.map +1 -0
  14. package/dist/cjs/contracts/IPerpetualManager.d.ts +5 -3
  15. package/dist/cjs/contracts/Maintainer.d.ts +799 -0
  16. package/dist/cjs/contracts/Maintainer.js +3 -0
  17. package/dist/cjs/contracts/Maintainer.js.map +1 -0
  18. package/dist/cjs/contracts/MockToken.d.ts +263 -0
  19. package/dist/cjs/contracts/MockToken.js +3 -0
  20. package/dist/cjs/contracts/MockToken.js.map +1 -0
  21. package/dist/cjs/contracts/UUPSUpgradeable.d.ts +118 -0
  22. package/dist/cjs/contracts/UUPSUpgradeable.js +3 -0
  23. package/dist/cjs/contracts/UUPSUpgradeable.js.map +1 -0
  24. package/dist/cjs/contracts/WeETH.d.ts +503 -0
  25. package/dist/cjs/contracts/WeETH.js +3 -0
  26. package/dist/cjs/contracts/WeETH.js.map +1 -0
  27. package/dist/cjs/contracts/factories/BeaconProxy__factory.d.ts +61 -0
  28. package/dist/cjs/contracts/factories/BeaconProxy__factory.js +89 -0
  29. package/dist/cjs/contracts/factories/BeaconProxy__factory.js.map +1 -0
  30. package/dist/cjs/contracts/factories/IPerpetualManager__factory.d.ts +4 -0
  31. package/dist/cjs/contracts/factories/IPerpetualManager__factory.js +5 -0
  32. package/dist/cjs/contracts/factories/IPerpetualManager__factory.js.map +1 -1
  33. package/dist/cjs/contracts/factories/Maintainer__factory.d.ts +609 -0
  34. package/dist/cjs/contracts/factories/Maintainer__factory.js +792 -0
  35. package/dist/cjs/contracts/factories/Maintainer__factory.js.map +1 -0
  36. package/dist/{esm/contracts/factories/PerpStorage__factory.d.ts → cjs/contracts/factories/MockToken__factory.d.ts} +128 -115
  37. package/dist/cjs/contracts/factories/MockToken__factory.js +365 -0
  38. package/dist/cjs/contracts/factories/MockToken__factory.js.map +1 -0
  39. package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.d.ts +87 -0
  40. package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.js +122 -0
  41. package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.js.map +1 -0
  42. package/dist/cjs/contracts/factories/WeETH__factory.d.ts +545 -0
  43. package/dist/cjs/contracts/factories/WeETH__factory.js +721 -0
  44. package/dist/cjs/contracts/factories/WeETH__factory.js.map +1 -0
  45. package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.d.ts +4136 -0
  46. package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.js +5324 -0
  47. package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.js.map +1 -0
  48. package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.d.ts +189 -0
  49. package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.js +254 -0
  50. package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.js.map +1 -0
  51. package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.d.ts +715 -0
  52. package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.js +928 -0
  53. package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.js.map +1 -0
  54. package/dist/cjs/contracts/factories/lean0/ShareToken__factory.d.ts +344 -0
  55. package/dist/cjs/contracts/factories/lean0/ShareToken__factory.js +456 -0
  56. package/dist/cjs/contracts/factories/lean0/ShareToken__factory.js.map +1 -0
  57. package/dist/cjs/contracts/factories/lean0/index.d.ts +4 -0
  58. package/dist/cjs/contracts/factories/lean0/index.js +15 -0
  59. package/dist/cjs/contracts/factories/lean0/index.js.map +1 -0
  60. package/dist/cjs/contracts/lean0/IPerpetualManager.d.ts +2821 -0
  61. package/dist/cjs/contracts/lean0/IPerpetualManager.js +3 -0
  62. package/dist/cjs/contracts/lean0/IPerpetualManager.js.map +1 -0
  63. package/dist/cjs/contracts/lean0/LimitOrderBook.d.ts +533 -0
  64. package/dist/cjs/contracts/lean0/LimitOrderBook.js +3 -0
  65. package/dist/cjs/contracts/lean0/LimitOrderBook.js.map +1 -0
  66. package/dist/cjs/contracts/lean0/LimitOrderBookFactory.d.ts +210 -0
  67. package/dist/cjs/contracts/lean0/LimitOrderBookFactory.js +3 -0
  68. package/dist/cjs/contracts/lean0/LimitOrderBookFactory.js.map +1 -0
  69. package/dist/cjs/contracts/lean0/ShareToken.d.ts +320 -0
  70. package/dist/cjs/contracts/lean0/ShareToken.js +3 -0
  71. package/dist/cjs/contracts/lean0/ShareToken.js.map +1 -0
  72. package/dist/cjs/contracts/lean0/index.d.ts +4 -0
  73. package/dist/cjs/contracts/lean0/index.js +3 -0
  74. package/dist/cjs/contracts/lean0/index.js.map +1 -0
  75. package/dist/cjs/d8XMath.d.ts +25 -1
  76. package/dist/cjs/d8XMath.js +160 -3
  77. package/dist/cjs/d8XMath.js.map +1 -1
  78. package/dist/cjs/marketData.d.ts +1 -1
  79. package/dist/cjs/marketData.js +7 -1
  80. package/dist/cjs/marketData.js.map +1 -1
  81. package/dist/cjs/version.d.ts +1 -1
  82. package/dist/cjs/version.js +1 -1
  83. package/dist/esm/abi/BeaconProxy.json +71 -0
  84. package/dist/esm/abi/IPerpetualManager.json +5 -0
  85. package/dist/esm/abi/Maintainer.json +774 -0
  86. package/dist/esm/abi/MockToken.json +347 -0
  87. package/dist/esm/abi/UUPSUpgradeable.json +104 -0
  88. package/dist/esm/abi/WeETH.json +310 -0
  89. package/dist/esm/abi/lean0/IPerpetualManager.json +5306 -0
  90. package/dist/esm/abi/lean0/LimitOrderBook.json +910 -0
  91. package/dist/esm/abi/lean0/LimitOrderBookFactory.json +236 -0
  92. package/dist/esm/abi/lean0/ShareToken.json +438 -0
  93. package/dist/esm/abi-zkevm/LimitOrderBook.json +910 -0
  94. package/dist/esm/abi-zkevm/LimitOrderBookFactory.json +236 -0
  95. package/dist/esm/brokerTool.js +1 -1
  96. package/dist/esm/brokerTool.js.map +1 -1
  97. package/dist/esm/contracts/BeaconProxy.d.ts +63 -0
  98. package/dist/esm/contracts/BeaconProxy.js +2 -0
  99. package/dist/esm/contracts/BeaconProxy.js.map +1 -0
  100. package/dist/esm/contracts/IPerpetualManager.d.ts +5 -3
  101. package/dist/esm/contracts/Maintainer.d.ts +799 -0
  102. package/dist/esm/contracts/Maintainer.js +2 -0
  103. package/dist/esm/contracts/Maintainer.js.map +1 -0
  104. package/dist/esm/contracts/MockToken.d.ts +263 -0
  105. package/dist/esm/contracts/MockToken.js +2 -0
  106. package/dist/esm/contracts/MockToken.js.map +1 -0
  107. package/dist/esm/contracts/UUPSUpgradeable.d.ts +118 -0
  108. package/dist/esm/contracts/UUPSUpgradeable.js +2 -0
  109. package/dist/esm/contracts/UUPSUpgradeable.js.map +1 -0
  110. package/dist/esm/contracts/WeETH.d.ts +503 -0
  111. package/dist/esm/contracts/WeETH.js +2 -0
  112. package/dist/esm/contracts/WeETH.js.map +1 -0
  113. package/dist/esm/contracts/factories/BeaconProxy__factory.d.ts +61 -0
  114. package/dist/esm/contracts/factories/BeaconProxy__factory.js +85 -0
  115. package/dist/esm/contracts/factories/BeaconProxy__factory.js.map +1 -0
  116. package/dist/esm/contracts/factories/IPerpetualManager__factory.d.ts +4 -0
  117. package/dist/esm/contracts/factories/IPerpetualManager__factory.js +5 -0
  118. package/dist/esm/contracts/factories/IPerpetualManager__factory.js.map +1 -1
  119. package/dist/esm/contracts/factories/Maintainer__factory.d.ts +609 -0
  120. package/dist/esm/contracts/factories/Maintainer__factory.js +788 -0
  121. package/dist/esm/contracts/factories/Maintainer__factory.js.map +1 -0
  122. package/dist/esm/contracts/factories/MockToken__factory.d.ts +273 -0
  123. package/dist/esm/contracts/factories/{PerpStorage__factory.js → MockToken__factory.js} +139 -128
  124. package/dist/esm/contracts/factories/MockToken__factory.js.map +1 -0
  125. package/dist/esm/contracts/factories/UUPSUpgradeable__factory.d.ts +87 -0
  126. package/dist/esm/contracts/factories/UUPSUpgradeable__factory.js +118 -0
  127. package/dist/esm/contracts/factories/UUPSUpgradeable__factory.js.map +1 -0
  128. package/dist/esm/contracts/factories/WeETH__factory.d.ts +545 -0
  129. package/dist/esm/contracts/factories/WeETH__factory.js +717 -0
  130. package/dist/esm/contracts/factories/WeETH__factory.js.map +1 -0
  131. package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.d.ts +4136 -0
  132. package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.js +5320 -0
  133. package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.js.map +1 -0
  134. package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.d.ts +189 -0
  135. package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.js +250 -0
  136. package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.js.map +1 -0
  137. package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.d.ts +715 -0
  138. package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.js +924 -0
  139. package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.js.map +1 -0
  140. package/dist/esm/contracts/factories/lean0/ShareToken__factory.d.ts +344 -0
  141. package/dist/esm/contracts/factories/lean0/ShareToken__factory.js +452 -0
  142. package/dist/esm/contracts/factories/lean0/ShareToken__factory.js.map +1 -0
  143. package/dist/esm/contracts/factories/lean0/index.d.ts +4 -0
  144. package/dist/esm/contracts/factories/lean0/index.js +8 -0
  145. package/dist/esm/contracts/factories/lean0/index.js.map +1 -0
  146. package/dist/esm/contracts/lean0/IPerpetualManager.d.ts +2821 -0
  147. package/dist/esm/contracts/lean0/IPerpetualManager.js +2 -0
  148. package/dist/esm/contracts/lean0/IPerpetualManager.js.map +1 -0
  149. package/dist/esm/contracts/lean0/LimitOrderBook.d.ts +533 -0
  150. package/dist/esm/contracts/lean0/LimitOrderBook.js +2 -0
  151. package/dist/esm/contracts/lean0/LimitOrderBook.js.map +1 -0
  152. package/dist/esm/contracts/lean0/LimitOrderBookFactory.d.ts +210 -0
  153. package/dist/esm/contracts/lean0/LimitOrderBookFactory.js +2 -0
  154. package/dist/esm/contracts/lean0/LimitOrderBookFactory.js.map +1 -0
  155. package/dist/esm/contracts/lean0/ShareToken.d.ts +320 -0
  156. package/dist/esm/contracts/lean0/ShareToken.js +2 -0
  157. package/dist/esm/contracts/lean0/ShareToken.js.map +1 -0
  158. package/dist/esm/contracts/lean0/index.d.ts +4 -0
  159. package/dist/esm/contracts/lean0/index.js +2 -0
  160. package/dist/esm/contracts/lean0/index.js.map +1 -0
  161. package/dist/esm/d8XMath.d.ts +25 -1
  162. package/dist/esm/d8XMath.js +158 -2
  163. package/dist/esm/d8XMath.js.map +1 -1
  164. package/dist/esm/marketData.d.ts +1 -1
  165. package/dist/esm/marketData.js +7 -1
  166. package/dist/esm/marketData.js.map +1 -1
  167. package/dist/esm/version.d.ts +1 -1
  168. package/dist/esm/version.js +1 -1
  169. package/package.json +1 -1
  170. package/src/abi/IPerpetualManager.json +5 -0
  171. package/src/brokerTool.ts +1 -1
  172. package/src/contracts/IPerpetualManager.ts +5 -3
  173. package/src/contracts/factories/IPerpetualManager__factory.ts +5 -0
  174. package/src/d8XMath.ts +235 -2
  175. package/src/marketData.ts +8 -0
  176. package/src/version.ts +1 -1
  177. package/dist/esm/contracts/factories/PerpStorage__factory.js.map +0 -1
@@ -2328,6 +2328,11 @@ const _abi = [
2328
2328
  name: "_leverageTDR",
2329
2329
  type: "uint16",
2330
2330
  },
2331
+ {
2332
+ internalType: "address",
2333
+ name: "_traderAddr",
2334
+ type: "address",
2335
+ },
2331
2336
  ],
2332
2337
  name: "getExchangeFeePrdMkts",
2333
2338
  outputs: [
package/src/d8XMath.ts CHANGED
@@ -528,12 +528,13 @@ export function expectedLoss(
528
528
  ds = Math.abs(tradeAmt);
529
529
  }
530
530
  const a = Math.max(0, dl + totLong - m * totShort - dsm);
531
- const b = Math.max(0, ds + totShort - m * totLong + dsm);
531
+ const b = Math.max(0, ds + totShort - m * totLong - dlm);
532
532
  return p * (1 - p) * (a + b);
533
533
  }
534
534
 
535
535
  /**
536
536
  * Exchange fee as a rate for prediction markets
537
+ * For opening trades only
537
538
  * @param prob long probability
538
539
  * @param m max maintenance margin rate (0.18)
539
540
  * @param totShort
@@ -648,9 +649,241 @@ function excessMargin(
648
649
  return b0 / S3 - thresh / S3 - fee_cc;
649
650
  }
650
651
 
652
+ /**
653
+ * Internal function to find the deposit amount required
654
+ * for a given trade amount and target leverage
655
+ * @param tradeAmt
656
+ * @param targetLvg
657
+ * @param price
658
+ * @param S3
659
+ * @param S2Mark
660
+ * @returns
661
+ */
662
+ function pmGetDepositAmtForLvgTrade(
663
+ tradeAmt: number,
664
+ targetLvg: number,
665
+ price: number,
666
+ S3: number,
667
+ S2Mark: number
668
+ ): number {
669
+ const pnl = (tradeAmt * (S2Mark - price)) / S3;
670
+ let p = S2Mark - 1;
671
+ if (tradeAmt < 0) {
672
+ p = 1 - p;
673
+ }
674
+ const b = (Math.abs(tradeAmt) * p) / S3 / targetLvg;
675
+ const amt = -(pnl - b);
676
+ // check:
677
+ //bal = amt+pnl
678
+ //pos_val = (np.abs(trade_amt) * p) / S3
679
+ //lvg = pos_val/bal
680
+ //assert(np.abs(lvg-targetLvg)<0.1)
681
+ return amt;
682
+ }
683
+
684
+ /**
685
+ * Internal function to calculate cash over initial margin rate
686
+ * after a trade of size tradeAmt in prediction markets
687
+ * @param tradeAmt
688
+ * @param lvg
689
+ * @param walletBalCC
690
+ * @param currentCashCC
691
+ * @param currentPosition
692
+ * @param currentLockedInValue
693
+ * @param slippage
694
+ * @param S2
695
+ * @param Sm
696
+ * @param S3
697
+ * @param totLong
698
+ * @param totShort
699
+ * @returns
700
+ */
701
+ function pmExcessCashAtLvg(
702
+ tradeAmt: number,
703
+ lvg: number,
704
+ walletBalCC: number,
705
+ currentCashCC: number,
706
+ currentPosition: number,
707
+ currentLockedInValue: number,
708
+ slippage: number,
709
+ S2: number,
710
+ Sm: number,
711
+ S3: number,
712
+ totLong: number,
713
+ totShort: number
714
+ ): number {
715
+ //determine deposit amount for given leverage
716
+ const limitPrice = S2 * (1 + Math.sign(tradeAmt) * slippage);
717
+ const depositFromWallet = pmGetDepositAmtForLvgTrade(tradeAmt, lvg, limitPrice, S3, Sm);
718
+ const m0 = 0.18;
719
+ //leverage fee
720
+ let p0 = Sm - 1;
721
+ if (tradeAmt < 0) {
722
+ p0 = 2 - Sm; //=1-(Sm-1)
723
+ }
724
+ const feeCc = pmExchangeFee(p0, m0, totShort, totLong, tradeAmt, 1 / lvg) / S3;
725
+
726
+ //excess cash
727
+ let exc = walletBalCC - depositFromWallet - feeCc;
728
+
729
+ // margin balance
730
+ let pos = currentPosition + tradeAmt;
731
+ let p = Sm - 1;
732
+ if (pos < 0) {
733
+ p = 2 - Sm;
734
+ }
735
+ const h = entropy(p);
736
+ const tau = m0 + (0.5 - m0) * h;
737
+ const thresh = Math.abs(pos) * p * tau;
738
+ const b0 =
739
+ depositFromWallet +
740
+ currentCashCC +
741
+ Math.abs(currentPosition) * Sm -
742
+ currentLockedInValue +
743
+ Math.max(0, tradeAmt * (Sm - limitPrice));
744
+ // b0 - fee > threshold
745
+ // b0 - fee - threshold > 0
746
+ // extra_cash = b0 - fee - threshold
747
+ // missing: referral rebate
748
+ const bal = b0 / S3 - thresh / S3 - feeCc;
749
+ exc = exc + bal;
750
+ return exc;
751
+ }
752
+
753
+ /**
754
+ * Find maximal trade size (short dir=-1 or long dir=1) for prediction
755
+ * markets at provided leverage and incorporating the current position
756
+ * and wallet balance.
757
+ * Factors in lot size and global max short/long
758
+ * @param dir
759
+ * @param lvg
760
+ * @param walletBalCC
761
+ * @param slippage slippage percent
762
+ * @param currentPosition
763
+ * @param currentCashCC
764
+ * @param currentLockedInValue
765
+ * @param S2
766
+ * @param Sm
767
+ * @param S3
768
+ * @param totLong
769
+ * @param totShort
770
+ * @param maxShort
771
+ * @param maxLong
772
+ * @returns
773
+ */
774
+ export function pmFindMaxPersonalTradeSizeAtLeverage(
775
+ dir: number,
776
+ lvg: number,
777
+ walletBalCC: number,
778
+ slippage: number,
779
+ currentPosition: number,
780
+ currentCashCC: number,
781
+ currentLockedInValue: number,
782
+ S2: number,
783
+ Sm: number,
784
+ S3: number,
785
+ totLong: number,
786
+ totShort: number,
787
+ maxShort: number,
788
+ maxLong: number
789
+ ): number {
790
+ if (dir < 0) {
791
+ dir = -1;
792
+ } else {
793
+ dir = 1;
794
+ }
795
+ const lot = 10;
796
+ const deltaS = 1; //for derivative
797
+ const f0 = pmExcessCashAtLvg(
798
+ dir * deltaS,
799
+ lvg,
800
+ walletBalCC,
801
+ currentCashCC,
802
+ currentPosition,
803
+ currentLockedInValue,
804
+ slippage,
805
+ S2,
806
+ Sm,
807
+ S3,
808
+ totLong,
809
+ totShort
810
+ );
811
+ if (f0 < lot) {
812
+ // no trade possible
813
+ return 0;
814
+ }
815
+ // numerically find maximal trade size
816
+ let sNew = dir * lot * 10;
817
+ let s = 2 * sNew;
818
+ while (true) {
819
+ let count = 0;
820
+ while (Math.abs(sNew - s) > 1 && count < 100) {
821
+ s = sNew;
822
+ const f =
823
+ pmExcessCashAtLvg(
824
+ s,
825
+ lvg,
826
+ walletBalCC,
827
+ currentCashCC,
828
+ currentPosition,
829
+ currentLockedInValue,
830
+ slippage,
831
+ S2,
832
+ Sm,
833
+ S3,
834
+ totLong,
835
+ totShort
836
+ ) ** 2;
837
+ const f2 =
838
+ pmExcessCashAtLvg(
839
+ s + deltaS,
840
+ lvg,
841
+ walletBalCC,
842
+ currentCashCC,
843
+ currentPosition,
844
+ currentLockedInValue,
845
+ slippage,
846
+ S2,
847
+ Sm,
848
+ S3,
849
+ totLong,
850
+ totShort
851
+ ) ** 2;
852
+ let ds = (f2 - f) / deltaS;
853
+ if (ds == 0) {
854
+ sNew = s + Math.random() * ds - ds / 2;
855
+ } else {
856
+ sNew = s - f / ds;
857
+ }
858
+ count += 1;
859
+ }
860
+ if (count < 100) {
861
+ break;
862
+ }
863
+ // Newton algorithm failed,
864
+ // choose new starting value
865
+ if (dir > 0) {
866
+ sNew = Math.random() * (maxLong - currentPosition);
867
+ } else {
868
+ sNew = -Math.random() * (Math.abs(maxShort) + currentPosition);
869
+ }
870
+ }
871
+ // ensure trade maximal trade sNew does not exceed
872
+ // the contract limits
873
+ if (currentPosition + sNew < maxShort) {
874
+ sNew = maxShort - currentPosition;
875
+ } else if (currentPosition + sNew > maxLong) {
876
+ sNew = maxLong - currentPosition;
877
+ }
878
+ // round trade size down to lot
879
+ sNew = Math.sign(sNew) * Math.floor(Math.abs(sNew) / lot) * lot;
880
+ return sNew;
881
+ }
882
+
651
883
  /**
652
884
  * Find maximal trade size (short dir=-1 or long dir=1) for prediction
653
- * markets.
885
+ * markets at maximal leverage and incorporating the current position.
886
+ * Agnostic about wallet balance.
654
887
  * @param dir
655
888
  * @param currentPosition
656
889
  * @param currentCashCC
package/src/marketData.ts CHANGED
@@ -813,8 +813,16 @@ export default class MarketData extends PerpetualDataHandler {
813
813
  maxMaintMgnRate: number,
814
814
  Sm: number,
815
815
  tradeAmtBC: number,
816
+ traderPosBC: number,
816
817
  tradeMgnRate: number
817
818
  ): number {
819
+ const isClose = Math.sign(traderPosBC) != Math.sign(tradeAmtBC);
820
+ const isFlip =
821
+ Math.abs(traderPosBC + tradeAmtBC) > 0.01 && Math.sign(traderPosBC + tradeAmtBC) != Math.sign(traderPosBC);
822
+ if (isClose && !isFlip) {
823
+ // 0.1cents if is close
824
+ return 0.001;
825
+ }
818
826
  return pmExchangeFee(Sm - 1, maxMaintMgnRate, state.shortBC, state.longBC, tradeAmtBC, tradeMgnRate);
819
827
  }
820
828
 
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const D8X_SDK_VERSION = "2.1.1-alpha2";
1
+ export const D8X_SDK_VERSION = "2.1.3-alpha2";
@@ -1 +0,0 @@
1
- {"version":3,"file":"PerpStorage__factory.js","sourceRoot":"","sources":["../../../../src/contracts/factories/PerpStorage__factory.ts"],"names":[],"mappings":"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"}