flash-sdk 11.10.4-alpha.0 → 11.10.5-alpha.0

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.
@@ -22,8 +22,7 @@ export interface PositionMetrics {
22
22
  pnl: {
23
23
  profitUsd: BN;
24
24
  lossUsd: BN;
25
- penaltyUsd: BN;
26
- maxPenaltyUsd: BN;
25
+ priceImpactUsd: BN;
27
26
  netProfitUsd: BN;
28
27
  };
29
28
  leverage: BN;
@@ -315,7 +314,7 @@ export declare class PerpetualsClient {
315
314
  }[];
316
315
  markets: PublicKey[];
317
316
  maxAumUsd: BN;
318
- buffer: BN | number[];
317
+ buffer: BN | number[] | number[];
319
318
  rawAumUsd: BN;
320
319
  equityUsd: BN;
321
320
  totalStaked: {
@@ -360,7 +359,7 @@ export declare class PerpetualsClient {
360
359
  sizeUsd: BN;
361
360
  lockedAmount: BN;
362
361
  lockedUsd: BN;
363
- collateralAmount: BN;
362
+ priceImpactUsd: BN;
364
363
  collateralUsd: BN;
365
364
  unsettledValueUsd: BN;
366
365
  unsettledFeesUsd: BN;
@@ -370,8 +369,7 @@ export declare class PerpetualsClient {
370
369
  price: BN;
371
370
  exponent: number;
372
371
  };
373
- oraclePenalty: number;
374
- previousPenalty: number;
372
+ priceImpactSet: boolean;
375
373
  sizeDecimals: number;
376
374
  lockedDecimals: number;
377
375
  collateralDecimals: number;
@@ -673,7 +671,7 @@ export declare class PerpetualsClient {
673
671
  }[];
674
672
  markets: PublicKey[];
675
673
  maxAumUsd: BN;
676
- buffer: BN | number[];
674
+ buffer: BN | number[] | number[];
677
675
  rawAumUsd: BN;
678
676
  equityUsd: BN;
679
677
  totalStaked: {
@@ -718,7 +716,7 @@ export declare class PerpetualsClient {
718
716
  sizeUsd: BN;
719
717
  lockedAmount: BN;
720
718
  lockedUsd: BN;
721
- collateralAmount: BN;
719
+ priceImpactUsd: BN;
722
720
  collateralUsd: BN;
723
721
  unsettledValueUsd: BN;
724
722
  unsettledFeesUsd: BN;
@@ -728,8 +726,7 @@ export declare class PerpetualsClient {
728
726
  price: BN;
729
727
  exponent: number;
730
728
  };
731
- oraclePenalty: number;
732
- previousPenalty: number;
729
+ priceImpactSet: boolean;
733
730
  sizeDecimals: number;
734
731
  lockedDecimals: number;
735
732
  collateralDecimals: number;
@@ -1030,7 +1027,7 @@ export declare class PerpetualsClient {
1030
1027
  }[];
1031
1028
  markets: PublicKey[];
1032
1029
  maxAumUsd: BN;
1033
- buffer: BN | number[];
1030
+ buffer: BN | number[] | number[];
1034
1031
  rawAumUsd: BN;
1035
1032
  equityUsd: BN;
1036
1033
  totalStaked: {
@@ -1075,7 +1072,7 @@ export declare class PerpetualsClient {
1075
1072
  sizeUsd: BN;
1076
1073
  lockedAmount: BN;
1077
1074
  lockedUsd: BN;
1078
- collateralAmount: BN;
1075
+ priceImpactUsd: BN;
1079
1076
  collateralUsd: BN;
1080
1077
  unsettledValueUsd: BN;
1081
1078
  unsettledFeesUsd: BN;
@@ -1085,8 +1082,7 @@ export declare class PerpetualsClient {
1085
1082
  price: BN;
1086
1083
  exponent: number;
1087
1084
  };
1088
- oraclePenalty: number;
1089
- previousPenalty: number;
1085
+ priceImpactSet: boolean;
1090
1086
  sizeDecimals: number;
1091
1087
  lockedDecimals: number;
1092
1088
  collateralDecimals: number;
@@ -1391,7 +1387,7 @@ export declare class PerpetualsClient {
1391
1387
  }[];
1392
1388
  markets: PublicKey[];
1393
1389
  maxAumUsd: BN;
1394
- buffer: BN | number[];
1390
+ buffer: BN | number[] | number[];
1395
1391
  rawAumUsd: BN;
1396
1392
  equityUsd: BN;
1397
1393
  totalStaked: {
@@ -1436,7 +1432,7 @@ export declare class PerpetualsClient {
1436
1432
  sizeUsd: BN;
1437
1433
  lockedAmount: BN;
1438
1434
  lockedUsd: BN;
1439
- collateralAmount: BN;
1435
+ priceImpactUsd: BN;
1440
1436
  collateralUsd: BN;
1441
1437
  unsettledValueUsd: BN;
1442
1438
  unsettledFeesUsd: BN;
@@ -1446,8 +1442,7 @@ export declare class PerpetualsClient {
1446
1442
  price: BN;
1447
1443
  exponent: number;
1448
1444
  };
1449
- oraclePenalty: number;
1450
- previousPenalty: number;
1445
+ priceImpactSet: boolean;
1451
1446
  sizeDecimals: number;
1452
1447
  lockedDecimals: number;
1453
1448
  collateralDecimals: number;
@@ -1751,7 +1746,7 @@ export declare class PerpetualsClient {
1751
1746
  }[];
1752
1747
  markets: PublicKey[];
1753
1748
  maxAumUsd: BN;
1754
- buffer: BN | number[];
1749
+ buffer: BN | number[] | number[];
1755
1750
  rawAumUsd: BN;
1756
1751
  equityUsd: BN;
1757
1752
  totalStaked: {
@@ -1796,7 +1791,7 @@ export declare class PerpetualsClient {
1796
1791
  sizeUsd: BN;
1797
1792
  lockedAmount: BN;
1798
1793
  lockedUsd: BN;
1799
- collateralAmount: BN;
1794
+ priceImpactUsd: BN;
1800
1795
  collateralUsd: BN;
1801
1796
  unsettledValueUsd: BN;
1802
1797
  unsettledFeesUsd: BN;
@@ -1806,8 +1801,7 @@ export declare class PerpetualsClient {
1806
1801
  price: BN;
1807
1802
  exponent: number;
1808
1803
  };
1809
- oraclePenalty: number;
1810
- previousPenalty: number;
1804
+ priceImpactSet: boolean;
1811
1805
  sizeDecimals: number;
1812
1806
  lockedDecimals: number;
1813
1807
  collateralDecimals: number;
@@ -2109,7 +2103,7 @@ export declare class PerpetualsClient {
2109
2103
  }[];
2110
2104
  markets: PublicKey[];
2111
2105
  maxAumUsd: BN;
2112
- buffer: BN | number[];
2106
+ buffer: BN | number[] | number[];
2113
2107
  rawAumUsd: BN;
2114
2108
  equityUsd: BN;
2115
2109
  totalStaked: {
@@ -2154,7 +2148,7 @@ export declare class PerpetualsClient {
2154
2148
  sizeUsd: BN;
2155
2149
  lockedAmount: BN;
2156
2150
  lockedUsd: BN;
2157
- collateralAmount: BN;
2151
+ priceImpactUsd: BN;
2158
2152
  collateralUsd: BN;
2159
2153
  unsettledValueUsd: BN;
2160
2154
  unsettledFeesUsd: BN;
@@ -2164,8 +2158,7 @@ export declare class PerpetualsClient {
2164
2158
  price: BN;
2165
2159
  exponent: number;
2166
2160
  };
2167
- oraclePenalty: number;
2168
- previousPenalty: number;
2161
+ priceImpactSet: boolean;
2169
2162
  sizeDecimals: number;
2170
2163
  lockedDecimals: number;
2171
2164
  collateralDecimals: number;
@@ -2466,7 +2459,7 @@ export declare class PerpetualsClient {
2466
2459
  }[];
2467
2460
  markets: PublicKey[];
2468
2461
  maxAumUsd: BN;
2469
- buffer: BN | number[];
2462
+ buffer: BN | number[] | number[];
2470
2463
  rawAumUsd: BN;
2471
2464
  equityUsd: BN;
2472
2465
  totalStaked: {
@@ -2511,7 +2504,7 @@ export declare class PerpetualsClient {
2511
2504
  sizeUsd: BN;
2512
2505
  lockedAmount: BN;
2513
2506
  lockedUsd: BN;
2514
- collateralAmount: BN;
2507
+ priceImpactUsd: BN;
2515
2508
  collateralUsd: BN;
2516
2509
  unsettledValueUsd: BN;
2517
2510
  unsettledFeesUsd: BN;
@@ -2521,8 +2514,7 @@ export declare class PerpetualsClient {
2521
2514
  price: BN;
2522
2515
  exponent: number;
2523
2516
  };
2524
- oraclePenalty: number;
2525
- previousPenalty: number;
2517
+ priceImpactSet: boolean;
2526
2518
  sizeDecimals: number;
2527
2519
  lockedDecimals: number;
2528
2520
  collateralDecimals: number;
@@ -2823,7 +2815,7 @@ export declare class PerpetualsClient {
2823
2815
  }[];
2824
2816
  markets: PublicKey[];
2825
2817
  maxAumUsd: BN;
2826
- buffer: BN | number[];
2818
+ buffer: BN | number[] | number[];
2827
2819
  rawAumUsd: BN;
2828
2820
  equityUsd: BN;
2829
2821
  totalStaked: {
@@ -2868,7 +2860,7 @@ export declare class PerpetualsClient {
2868
2860
  sizeUsd: BN;
2869
2861
  lockedAmount: BN;
2870
2862
  lockedUsd: BN;
2871
- collateralAmount: BN;
2863
+ priceImpactUsd: BN;
2872
2864
  collateralUsd: BN;
2873
2865
  unsettledValueUsd: BN;
2874
2866
  unsettledFeesUsd: BN;
@@ -2878,8 +2870,7 @@ export declare class PerpetualsClient {
2878
2870
  price: BN;
2879
2871
  exponent: number;
2880
2872
  };
2881
- oraclePenalty: number;
2882
- previousPenalty: number;
2873
+ priceImpactSet: boolean;
2883
2874
  sizeDecimals: number;
2884
2875
  lockedDecimals: number;
2885
2876
  collateralDecimals: number;
@@ -2963,7 +2954,7 @@ export declare class PerpetualsClient {
2963
2954
  sizeUsd: BN;
2964
2955
  lockedAmount: BN;
2965
2956
  lockedUsd: BN;
2966
- collateralAmount: BN;
2957
+ priceImpactUsd: BN;
2967
2958
  collateralUsd: BN;
2968
2959
  unsettledValueUsd: BN;
2969
2960
  unsettledFeesUsd: BN;
@@ -2973,8 +2964,8 @@ export declare class PerpetualsClient {
2973
2964
  price: BN;
2974
2965
  exponent: number;
2975
2966
  };
2976
- oraclePenalty: number;
2977
- previousPenalty: number;
2967
+ buffer: number[];
2968
+ priceImpactSet: boolean;
2978
2969
  sizeDecimals: number;
2979
2970
  lockedDecimals: number;
2980
2971
  collateralDecimals: number;
@@ -3232,7 +3223,7 @@ export declare class PerpetualsClient {
3232
3223
  }[];
3233
3224
  markets: PublicKey[];
3234
3225
  maxAumUsd: BN;
3235
- buffer: BN | number[];
3226
+ buffer: BN | number[] | number[];
3236
3227
  rawAumUsd: BN;
3237
3228
  equityUsd: BN;
3238
3229
  totalStaked: {
@@ -3277,7 +3268,7 @@ export declare class PerpetualsClient {
3277
3268
  sizeUsd: BN;
3278
3269
  lockedAmount: BN;
3279
3270
  lockedUsd: BN;
3280
- collateralAmount: BN;
3271
+ priceImpactUsd: BN;
3281
3272
  collateralUsd: BN;
3282
3273
  unsettledValueUsd: BN;
3283
3274
  unsettledFeesUsd: BN;
@@ -3287,8 +3278,7 @@ export declare class PerpetualsClient {
3287
3278
  price: BN;
3288
3279
  exponent: number;
3289
3280
  };
3290
- oraclePenalty: number;
3291
- previousPenalty: number;
3281
+ priceImpactSet: boolean;
3292
3282
  sizeDecimals: number;
3293
3283
  lockedDecimals: number;
3294
3284
  collateralDecimals: number;
@@ -3589,7 +3579,7 @@ export declare class PerpetualsClient {
3589
3579
  }[];
3590
3580
  markets: PublicKey[];
3591
3581
  maxAumUsd: BN;
3592
- buffer: BN | number[];
3582
+ buffer: BN | number[] | number[];
3593
3583
  rawAumUsd: BN;
3594
3584
  equityUsd: BN;
3595
3585
  totalStaked: {
@@ -3634,7 +3624,7 @@ export declare class PerpetualsClient {
3634
3624
  sizeUsd: BN;
3635
3625
  lockedAmount: BN;
3636
3626
  lockedUsd: BN;
3637
- collateralAmount: BN;
3627
+ priceImpactUsd: BN;
3638
3628
  collateralUsd: BN;
3639
3629
  unsettledValueUsd: BN;
3640
3630
  unsettledFeesUsd: BN;
@@ -3644,8 +3634,7 @@ export declare class PerpetualsClient {
3644
3634
  price: BN;
3645
3635
  exponent: number;
3646
3636
  };
3647
- oraclePenalty: number;
3648
- previousPenalty: number;
3637
+ priceImpactSet: boolean;
3649
3638
  sizeDecimals: number;
3650
3639
  lockedDecimals: number;
3651
3640
  collateralDecimals: number;
@@ -3946,7 +3935,7 @@ export declare class PerpetualsClient {
3946
3935
  }[];
3947
3936
  markets: PublicKey[];
3948
3937
  maxAumUsd: BN;
3949
- buffer: BN | number[];
3938
+ buffer: BN | number[] | number[];
3950
3939
  rawAumUsd: BN;
3951
3940
  equityUsd: BN;
3952
3941
  totalStaked: {
@@ -3991,7 +3980,7 @@ export declare class PerpetualsClient {
3991
3980
  sizeUsd: BN;
3992
3981
  lockedAmount: BN;
3993
3982
  lockedUsd: BN;
3994
- collateralAmount: BN;
3983
+ priceImpactUsd: BN;
3995
3984
  collateralUsd: BN;
3996
3985
  unsettledValueUsd: BN;
3997
3986
  unsettledFeesUsd: BN;
@@ -4001,8 +3990,7 @@ export declare class PerpetualsClient {
4001
3990
  price: BN;
4002
3991
  exponent: number;
4003
3992
  };
4004
- oraclePenalty: number;
4005
- previousPenalty: number;
3993
+ priceImpactSet: boolean;
4006
3994
  sizeDecimals: number;
4007
3995
  lockedDecimals: number;
4008
3996
  collateralDecimals: number;
@@ -4303,7 +4291,7 @@ export declare class PerpetualsClient {
4303
4291
  }[];
4304
4292
  markets: PublicKey[];
4305
4293
  maxAumUsd: BN;
4306
- buffer: BN | number[];
4294
+ buffer: BN | number[] | number[];
4307
4295
  rawAumUsd: BN;
4308
4296
  equityUsd: BN;
4309
4297
  totalStaked: {
@@ -4348,7 +4336,7 @@ export declare class PerpetualsClient {
4348
4336
  sizeUsd: BN;
4349
4337
  lockedAmount: BN;
4350
4338
  lockedUsd: BN;
4351
- collateralAmount: BN;
4339
+ priceImpactUsd: BN;
4352
4340
  collateralUsd: BN;
4353
4341
  unsettledValueUsd: BN;
4354
4342
  unsettledFeesUsd: BN;
@@ -4358,8 +4346,7 @@ export declare class PerpetualsClient {
4358
4346
  price: BN;
4359
4347
  exponent: number;
4360
4348
  };
4361
- oraclePenalty: number;
4362
- previousPenalty: number;
4349
+ priceImpactSet: boolean;
4363
4350
  sizeDecimals: number;
4364
4351
  lockedDecimals: number;
4365
4352
  collateralDecimals: number;
@@ -4660,7 +4647,7 @@ export declare class PerpetualsClient {
4660
4647
  }[];
4661
4648
  markets: PublicKey[];
4662
4649
  maxAumUsd: BN;
4663
- buffer: BN | number[];
4650
+ buffer: BN | number[] | number[];
4664
4651
  rawAumUsd: BN;
4665
4652
  equityUsd: BN;
4666
4653
  totalStaked: {
@@ -4705,7 +4692,7 @@ export declare class PerpetualsClient {
4705
4692
  sizeUsd: BN;
4706
4693
  lockedAmount: BN;
4707
4694
  lockedUsd: BN;
4708
- collateralAmount: BN;
4695
+ priceImpactUsd: BN;
4709
4696
  collateralUsd: BN;
4710
4697
  unsettledValueUsd: BN;
4711
4698
  unsettledFeesUsd: BN;
@@ -4715,8 +4702,7 @@ export declare class PerpetualsClient {
4715
4702
  price: BN;
4716
4703
  exponent: number;
4717
4704
  };
4718
- oraclePenalty: number;
4719
- previousPenalty: number;
4705
+ priceImpactSet: boolean;
4720
4706
  sizeDecimals: number;
4721
4707
  lockedDecimals: number;
4722
4708
  collateralDecimals: number;
@@ -4857,15 +4843,13 @@ export declare class PerpetualsClient {
4857
4843
  getPnlSync: (positionAccount: PositionAccount, targetTokenPrice: OraclePrice, targetTokenEmaPrice: OraclePrice, targetCustodyAccount: CustodyAccount, collateralPrice: OraclePrice, collateralEmaPrice: OraclePrice, collateralCustodyAccount: CustodyAccount, currentTimestamp: BN, delay: BN, poolConfig: PoolConfig) => {
4858
4844
  profitUsd: BN;
4859
4845
  lossUsd: BN;
4860
- penaltyUsd: BN;
4861
- maxPenaltyUsd: BN;
4846
+ priceImpactUsd: BN;
4862
4847
  netProfitUsd: BN;
4863
4848
  };
4864
4849
  getPnlContractHelper: (positionAccount: PositionAccount, targetTokenPrice: OraclePrice, targetTokenEmaPrice: OraclePrice, targetCustodyAccount: CustodyAccount, collateralPrice: OraclePrice, collateralEmaPrice: OraclePrice, collateralCustodyAccount: CustodyAccount, currentTimestamp: BN, delay: BN, poolConfig: PoolConfig) => {
4865
4850
  profitUsd: BN;
4866
4851
  lossUsd: BN;
4867
- penaltyUsd: BN;
4868
- maxPenaltyUsd: BN;
4852
+ priceImpactUsd: BN;
4869
4853
  netProfitUsd: BN;
4870
4854
  };
4871
4855
  getPositionMetrics: (positionAccount: PositionAccount, targetTokenPrice: OraclePrice, targetTokenEmaPrice: OraclePrice, targetCustodyAccount: CustodyAccount, collateralPrice: OraclePrice, collateralEmaPrice: OraclePrice, collateralCustodyAccount: CustodyAccount, currentTimestamp: BN, poolConfig: PoolConfig) => PositionMetrics;
@@ -5150,7 +5134,7 @@ export declare class PerpetualsClient {
5150
5134
  instructions: TransactionInstruction[];
5151
5135
  additionalSigners: Signer[];
5152
5136
  }>;
5153
- setPositionPenalty: (positionPubkey: PublicKey, oraclePenalty: number, oracleAuthority: PublicKey) => Promise<{
5137
+ setPositionPriceImpact: (positionPubkey: PublicKey, priceImpactUsd: BN, penaltyAuthority: PublicKey) => Promise<{
5154
5138
  instructions: TransactionInstruction[];
5155
5139
  additionalSigners: Signer[];
5156
5140
  }>;
@@ -875,7 +875,7 @@ var PerpetualsClient = (function () {
875
875
  if (collateralDeltaAmount.isNeg() || sizeDeltaAmount.isNeg()) {
876
876
  throw new Error("Delta Amounts cannot be negative ");
877
877
  }
878
- if (resultingPositionAccount.collateralAmount.isNeg() || resultingPositionAccount.sizeAmount.isNeg()) {
878
+ if (resultingPositionAccount.collateralUsd.isNeg() || resultingPositionAccount.sizeAmount.isNeg()) {
879
879
  throw new Error("cannot remove/close more than collateral/Size");
880
880
  }
881
881
  var sizeUsd = targetPrice.getAssetAmountUsd(sizeDeltaAmount, targetCustodyAccount.decimals);
@@ -1190,7 +1190,8 @@ var PerpetualsClient = (function () {
1190
1190
  var position = PositionAccount_1.PositionAccount.from(positionAccount.publicKey, __assign({}, positionAccount));
1191
1191
  var collateralMinMaxPrice = _this.getMinAndMaxOraclePriceSync(collateralPrice, collateralEmaPrice, collateralCustodyAccount);
1192
1192
  var newPnl = _this.getPnlSync(position, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, targetCustodyAccount.pricing.delaySeconds, poolConfig);
1193
- var exitPriceAndFee = _this.getExitPriceAndFeeSync(positionAccount, marketCorrelation, positionAccount.collateralAmount, positionAccount.sizeAmount, side, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp);
1193
+ var collateralAmount = collateralPrice.getTokenAmount(positionAccount.collateralUsd, collateralCustodyAccount.decimals);
1194
+ var exitPriceAndFee = _this.getExitPriceAndFeeSync(positionAccount, marketCorrelation, collateralAmount, positionAccount.sizeAmount, side, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp);
1194
1195
  var totalFeesUsd = (exitPriceAndFee.exitFeeUsd.add(exitPriceAndFee.borrowFeeUsd));
1195
1196
  var liabilityUsd = newPnl.lossUsd.add(totalFeesUsd);
1196
1197
  var assetsUsd = anchor_1.BN.min(newPnl.netProfitUsd.add(positionAccount.collateralUsd), collateralMinMaxPrice.max.getAssetAmountUsd(positionAccount.lockedAmount, collateralCustodyAccount.decimals));
@@ -1609,8 +1610,7 @@ var PerpetualsClient = (function () {
1609
1610
  return {
1610
1611
  profitUsd: constants_1.BN_ZERO,
1611
1612
  lossUsd: constants_1.BN_ZERO,
1612
- penaltyUsd: constants_1.BN_ZERO,
1613
- maxPenaltyUsd: constants_1.BN_ZERO,
1613
+ priceImpactUsd: constants_1.BN_ZERO,
1614
1614
  netProfitUsd: constants_1.BN_ZERO,
1615
1615
  };
1616
1616
  }
@@ -1675,18 +1675,16 @@ var PerpetualsClient = (function () {
1675
1675
  if (!priceDiffProfit.exponent.eq(priceDiffLoss.exponent)) {
1676
1676
  throw new Error("exponent mistach");
1677
1677
  }
1678
- var totalPenaltyBps = positionAccount.oraclePenalty + positionAccount.previousPenalty;
1679
- var penaltyUsd = constants_1.BN_ZERO;
1680
- var maxPenaltyUsd = totalPenaltyBps > 0 ? positionAccount.sizeUsd.muln(totalPenaltyBps).divn(constants_1.BPS_POWER) : constants_1.BN_ZERO;
1681
1678
  if (priceDiffProfit.price.gt(constants_1.BN_ZERO)) {
1682
1679
  var grossProfitUsd = priceDiffProfit.getAssetAmountUsd(positionAccount.sizeAmount, positionAccount.sizeDecimals);
1683
- penaltyUsd = anchor_1.BN.min(maxPenaltyUsd, grossProfitUsd);
1684
- var netProfitUsd = grossProfitUsd.sub(penaltyUsd);
1680
+ var priceImpactUsd = positionAccount.priceImpactUsd.gt(constants_1.BN_ZERO)
1681
+ ? anchor_1.BN.min(positionAccount.priceImpactUsd, grossProfitUsd)
1682
+ : constants_1.BN_ZERO;
1683
+ var netProfitUsd = grossProfitUsd.sub(priceImpactUsd);
1685
1684
  return {
1686
1685
  profitUsd: grossProfitUsd,
1687
1686
  lossUsd: constants_1.BN_ZERO,
1688
- penaltyUsd: penaltyUsd,
1689
- maxPenaltyUsd: maxPenaltyUsd,
1687
+ priceImpactUsd: priceImpactUsd,
1690
1688
  netProfitUsd: netProfitUsd,
1691
1689
  };
1692
1690
  }
@@ -1694,8 +1692,7 @@ var PerpetualsClient = (function () {
1694
1692
  return {
1695
1693
  profitUsd: constants_1.BN_ZERO,
1696
1694
  lossUsd: priceDiffLoss.getAssetAmountUsd(positionAccount.sizeAmount, positionAccount.sizeDecimals),
1697
- penaltyUsd: constants_1.BN_ZERO,
1698
- maxPenaltyUsd: constants_1.BN_ZERO,
1695
+ priceImpactUsd: constants_1.BN_ZERO,
1699
1696
  netProfitUsd: constants_1.BN_ZERO,
1700
1697
  };
1701
1698
  }
@@ -1709,7 +1706,7 @@ var PerpetualsClient = (function () {
1709
1706
  timestamp: constants_1.BN_ZERO
1710
1707
  });
1711
1708
  return {
1712
- pnl: { profitUsd: constants_1.BN_ZERO, lossUsd: constants_1.BN_ZERO, penaltyUsd: constants_1.BN_ZERO, maxPenaltyUsd: constants_1.BN_ZERO, netProfitUsd: constants_1.BN_ZERO },
1709
+ pnl: { profitUsd: constants_1.BN_ZERO, lossUsd: constants_1.BN_ZERO, priceImpactUsd: constants_1.BN_ZERO, netProfitUsd: constants_1.BN_ZERO },
1713
1710
  leverage: constants_1.BN_ZERO,
1714
1711
  liquidationPrice: zeroOraclePrice,
1715
1712
  fees: { exitFeeUsd: constants_1.BN_ZERO, exitFeeAmount: constants_1.BN_ZERO, lockAndUnsettledFeeUsd: constants_1.BN_ZERO }
@@ -1775,18 +1772,16 @@ var PerpetualsClient = (function () {
1775
1772
  priceDiffLoss = new OraclePrice_1.OraclePrice({ price: exitOraclePrice.price.sub(entryOraclePrice.price), exponent: exitOraclePrice.exponent, confidence: constants_1.BN_ZERO, timestamp: constants_1.BN_ZERO });
1776
1773
  }
1777
1774
  }
1778
- var totalPenaltyBps = positionAccount.oraclePenalty + positionAccount.previousPenalty;
1779
- var penaltyUsd = constants_1.BN_ZERO;
1780
- var maxPenaltyUsd = totalPenaltyBps > 0 ? positionAccount.sizeUsd.muln(totalPenaltyBps).divn(constants_1.BPS_POWER) : constants_1.BN_ZERO;
1781
1775
  if (priceDiffProfit.price.gt(constants_1.BN_ZERO)) {
1782
1776
  var grossProfitUsd = priceDiffProfit.getAssetAmountUsd(positionAccount.sizeAmount, positionAccount.sizeDecimals);
1783
- penaltyUsd = anchor_1.BN.min(maxPenaltyUsd, grossProfitUsd);
1784
- var netProfitUsd = grossProfitUsd.sub(penaltyUsd);
1777
+ var priceImpactUsd = positionAccount.priceImpactUsd.gt(constants_1.BN_ZERO)
1778
+ ? anchor_1.BN.min(positionAccount.priceImpactUsd, grossProfitUsd)
1779
+ : constants_1.BN_ZERO;
1780
+ var netProfitUsd = grossProfitUsd.sub(priceImpactUsd);
1785
1781
  pnl = {
1786
1782
  profitUsd: grossProfitUsd,
1787
1783
  lossUsd: constants_1.BN_ZERO,
1788
- penaltyUsd: penaltyUsd,
1789
- maxPenaltyUsd: maxPenaltyUsd,
1784
+ priceImpactUsd: priceImpactUsd,
1790
1785
  netProfitUsd: netProfitUsd,
1791
1786
  };
1792
1787
  }
@@ -1794,8 +1789,7 @@ var PerpetualsClient = (function () {
1794
1789
  pnl = {
1795
1790
  profitUsd: constants_1.BN_ZERO,
1796
1791
  lossUsd: priceDiffLoss.getAssetAmountUsd(positionAccount.sizeAmount, positionAccount.sizeDecimals),
1797
- penaltyUsd: constants_1.BN_ZERO,
1798
- maxPenaltyUsd: constants_1.BN_ZERO,
1792
+ priceImpactUsd: constants_1.BN_ZERO,
1799
1793
  netProfitUsd: constants_1.BN_ZERO,
1800
1794
  };
1801
1795
  }
@@ -7620,8 +7614,8 @@ var PerpetualsClient = (function () {
7620
7614
  }
7621
7615
  });
7622
7616
  }); };
7623
- this.setPositionPenalty = function (positionPubkey, oraclePenalty, oracleAuthority) { return __awaiter(_this, void 0, void 0, function () {
7624
- var instructions, additionalSigners, setPositionPenaltyIx, err_52;
7617
+ this.setPositionPriceImpact = function (positionPubkey, priceImpactUsd, penaltyAuthority) { return __awaiter(_this, void 0, void 0, function () {
7618
+ var instructions, additionalSigners, setPositionPriceImpactIx, err_52;
7625
7619
  return __generator(this, function (_a) {
7626
7620
  switch (_a.label) {
7627
7621
  case 0:
@@ -7631,23 +7625,23 @@ var PerpetualsClient = (function () {
7631
7625
  case 1:
7632
7626
  _a.trys.push([1, 3, , 4]);
7633
7627
  return [4, this.program.methods
7634
- .setPositionPenalty({
7635
- oraclePenalty: oraclePenalty,
7628
+ .setPositionPriceImpact({
7629
+ priceImpactUsd: priceImpactUsd,
7636
7630
  })
7637
7631
  .accounts({
7638
- authority: oracleAuthority,
7632
+ authority: penaltyAuthority,
7639
7633
  position: positionPubkey,
7640
7634
  eventAuthority: this.eventAuthority.publicKey,
7641
7635
  program: this.program.programId,
7642
7636
  })
7643
7637
  .instruction()];
7644
7638
  case 2:
7645
- setPositionPenaltyIx = _a.sent();
7646
- instructions.push(setPositionPenaltyIx);
7639
+ setPositionPriceImpactIx = _a.sent();
7640
+ instructions.push(setPositionPriceImpactIx);
7647
7641
  return [3, 4];
7648
7642
  case 3:
7649
7643
  err_52 = _a.sent();
7650
- console.log("perpClient setPositionPenalty error:: ", err_52);
7644
+ console.log("perpClient setPositionPriceImpact error:: ", err_52);
7651
7645
  throw err_52;
7652
7646
  case 4: return [2, {
7653
7647
  instructions: __spreadArray([], instructions, true),
@@ -14,15 +14,15 @@ export declare class PositionAccount implements Position {
14
14
  sizeAmount: BN;
15
15
  lockedAmount: BN;
16
16
  lockedUsd: BN;
17
- collateralAmount: BN;
17
+ priceImpactUsd: BN;
18
18
  collateralUsd: BN;
19
19
  unsettledValueUsd: BN;
20
20
  unsettledFeesUsd: BN;
21
21
  cumulativeLockFeeSnapshot: BN;
22
22
  degenSizeUsd: BN;
23
23
  referencePrice: ContractOraclePrice;
24
- oraclePenalty: number;
25
- previousPenalty: number;
24
+ buffer: number[];
25
+ priceImpactSet: boolean;
26
26
  sizeDecimals: number;
27
27
  lockedDecimals: number;
28
28
  collateralDecimals: number;