File tree Expand file tree Collapse file tree 2 files changed +41
-0
lines changed Expand file tree Collapse file tree 2 files changed +41
-0
lines changed Original file line number Diff line number Diff line change @@ -11,6 +11,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1111
1212### Fixes
1313
14+ - sdk: fix to getMaxTradeSizeUSDCForPerp which was previously overshooting max allowed size due to IMF factor
15+
1416### Breaking
1517
1618## [ 2.121.0] - 2025-05-29
Original file line number Diff line number Diff line change @@ -2748,6 +2748,45 @@ export class User {
27482748 }
27492749 }
27502750
2751+ const freeCollateral = this . getFreeCollateral ( ) ;
2752+
2753+ let baseTradeSize =
2754+ targetSide === 'long'
2755+ ? tradeSize . mul ( BASE_PRECISION ) . div ( oracleData . price )
2756+ : tradeSize . mul ( BASE_PRECISION ) . div ( oracleData . price ) . neg ( ) ;
2757+
2758+ let freeCollateralChangeFromNewPosition =
2759+ this . calculateEntriesEffectOnFreeCollateral (
2760+ marketAccount ,
2761+ oracleData . price ,
2762+ currentPosition ,
2763+ baseTradeSize ,
2764+ oracleData . price ,
2765+ false ,
2766+ enterHighLeverageMode
2767+ ) ;
2768+
2769+ while (
2770+ freeCollateralChangeFromNewPosition . isNeg ( ) &&
2771+ freeCollateralChangeFromNewPosition . abs ( ) . gt ( freeCollateral )
2772+ ) {
2773+ tradeSize = tradeSize . mul ( new BN ( 99 ) ) . div ( new BN ( 100 ) ) ;
2774+ baseTradeSize =
2775+ targetSide === 'long'
2776+ ? tradeSize . mul ( BASE_PRECISION ) . div ( oracleData . price )
2777+ : tradeSize . mul ( BASE_PRECISION ) . div ( oracleData . price ) . neg ( ) ;
2778+ freeCollateralChangeFromNewPosition =
2779+ this . calculateEntriesEffectOnFreeCollateral (
2780+ marketAccount ,
2781+ oracleData . price ,
2782+ currentPosition ,
2783+ baseTradeSize ,
2784+ oracleData . price ,
2785+ false ,
2786+ enterHighLeverageMode
2787+ ) ;
2788+ }
2789+
27512790 return { tradeSize, oppositeSideTradeSize } ;
27522791 }
27532792
You can’t perform that action at this time.
0 commit comments