flash-sdk 2.0.51 → 2.0.52

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.
@@ -2304,6 +2304,14 @@ export declare class PerpetualsClient {
2304
2304
  instructions: TransactionInstruction[];
2305
2305
  additionalSigners: Signer[];
2306
2306
  }>;
2307
+ setTriggerPrice: (targetSymbol: string, collateralSymbol: string, side: Side, triggerPrice: ContractOraclePrice, isStopLoss: boolean, poolConfig: PoolConfig) => Promise<{
2308
+ instructions: TransactionInstruction[];
2309
+ additionalSigners: Signer[];
2310
+ }>;
2311
+ forceClosePosition: (targetSymbol: string, collateralSymbol: string, side: Side, isStopLoss: boolean, poolConfig: PoolConfig, nftTradingAccount: PublicKey, nftReferralAccount: PublicKey, nftRebateTokenAccount: PublicKey, privilege: Privilege, createUserATA?: boolean, closeUsersWSOLATA?: boolean) => Promise<{
2312
+ instructions: TransactionInstruction[];
2313
+ additionalSigners: Signer[];
2314
+ }>;
2307
2315
  setPoolConfig: (permissions: Permissions, oracleAuthority: PublicKey, maxAumUsd: BN, stakingFeeShareBps: BN, poolConfig: PoolConfig) => Promise<{
2308
2316
  instructions: TransactionInstruction[];
2309
2317
  additionalSigners: Signer[];
@@ -1150,9 +1150,8 @@ var PerpetualsClient = (function () {
1150
1150
  }
1151
1151
  newPosition.collateralAmount = newPosition.collateralAmount.sub(collateralAmountReceived);
1152
1152
  newPosition.collateralUsd = collateralMinMaxPrice.min.getAssetAmountUsd(newPosition.collateralAmount, collateralCustodyAccount.decimals);
1153
- var entryPrice = OraclePrice_1.OraclePrice.from({ price: newPosition.entryPrice.price, exponent: new anchor_1.BN(newPosition.entryPrice.exponent), confidence: constants_1.BN_ZERO, timestamp: constants_1.BN_ZERO });
1154
1153
  var finalInterestUsd = _this.getLockFeeAndUnsettledUsdForPosition(newPosition, collateralCustodyAccount, currentTimestamp);
1155
- var finalLiquidationPrice = _this.getLiquidationPriceSync(newPosition.collateralAmount, newPosition.sizeAmount, entryPrice.scale_to_exponent(new anchor_1.BN(constants_1.USD_DECIMALS).neg()).price, finalInterestUsd, marketCorrelation, side, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, newPosition);
1154
+ var finalLiquidationPrice = _this.getLiquidationPriceSync(newPosition.collateralAmount, newPosition.sizeAmount, newPosition.entryPrice.price, finalInterestUsd, marketCorrelation, side, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, newPosition);
1156
1155
  var finalPnl = _this.getPnlSync(newPosition, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, targetCustodyAccount.pricing.delaySeconds, poolConfig);
1157
1156
  var finalPnlUsd = finalPnl.profitUsd.sub(finalPnl.lossUsd);
1158
1157
  var newExitFee = _this.getExitFeeSync(newPosition, targetCustodyAccount, collateralCustodyAccount, collateralPrice, collateralEmaPrice);
@@ -1170,9 +1169,8 @@ var PerpetualsClient = (function () {
1170
1169
  };
1171
1170
  }
1172
1171
  else {
1173
- var entryPrice = OraclePrice_1.OraclePrice.from({ price: newPosition.entryPrice.price, exponent: new anchor_1.BN(newPosition.entryPrice.exponent), confidence: constants_1.BN_ZERO, timestamp: constants_1.BN_ZERO });
1174
1172
  var finalInterestUsd = _this.getLockFeeAndUnsettledUsdForPosition(newPosition, collateralCustodyAccount, currentTimestamp);
1175
- var finalLiquidationPrice = _this.getLiquidationPriceSync(newPosition.collateralAmount, newPosition.sizeAmount, entryPrice.scale_to_exponent(new anchor_1.BN(constants_1.USD_DECIMALS).neg()).price, finalInterestUsd, marketCorrelation, side, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, newPosition);
1173
+ var finalLiquidationPrice = _this.getLiquidationPriceSync(newPosition.collateralAmount, newPosition.sizeAmount, newPosition.entryPrice.price, finalInterestUsd, marketCorrelation, side, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, newPosition);
1176
1174
  var finalPnl = _this.getPnlSync(newPosition, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, targetCustodyAccount.pricing.delaySeconds, poolConfig);
1177
1175
  var finalPnlUsd = finalPnl.profitUsd.sub(finalPnl.lossUsd);
1178
1176
  var exitFee = _this.getExitFeeSync(newPosition, targetCustodyAccount, collateralCustodyAccount, collateralPrice, collateralEmaPrice);
@@ -3752,8 +3750,157 @@ var PerpetualsClient = (function () {
3752
3750
  });
3753
3751
  });
3754
3752
  };
3753
+ this.setTriggerPrice = function (targetSymbol, collateralSymbol, side, triggerPrice, isStopLoss, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
3754
+ var publicKey, targetCustodyConfig, collateralCustodyConfig, marketAccount, positionAccount, instructions, additionalSigners, setTriggerPrice, err_19;
3755
+ return __generator(this, function (_a) {
3756
+ switch (_a.label) {
3757
+ case 0:
3758
+ publicKey = this.provider.wallet.publicKey;
3759
+ targetCustodyConfig = poolConfig.custodies.find(function (i) { return i.mintKey.equals(poolConfig.getTokenFromSymbol(targetSymbol).mintKey); });
3760
+ collateralCustodyConfig = poolConfig.custodies.find(function (i) { return i.mintKey.equals(poolConfig.getTokenFromSymbol(collateralSymbol).mintKey); });
3761
+ marketAccount = poolConfig.getMarketPk(targetCustodyConfig.custodyAccount, collateralCustodyConfig.custodyAccount, side);
3762
+ positionAccount = poolConfig.getPositionFromMarketPk(publicKey, marketAccount);
3763
+ instructions = [];
3764
+ additionalSigners = [];
3765
+ _a.label = 1;
3766
+ case 1:
3767
+ _a.trys.push([1, 3, , 4]);
3768
+ return [4, this.program.methods
3769
+ .setTriggerPrice({
3770
+ triggerPrice: triggerPrice,
3771
+ isStopLoss: isStopLoss
3772
+ })
3773
+ .accounts({
3774
+ owner: publicKey,
3775
+ perpetuals: this.perpetuals.publicKey,
3776
+ pool: poolConfig.poolAddress,
3777
+ position: positionAccount,
3778
+ market: marketAccount,
3779
+ targetCustody: targetCustodyConfig.custodyAccount,
3780
+ targetOracleAccount: targetCustodyConfig.oracleAddress,
3781
+ collateralCustody: collateralCustodyConfig.custodyAccount,
3782
+ collateralOracleAccount: collateralCustodyConfig.oracleAddress,
3783
+ eventAuthority: this.eventAuthority.publicKey,
3784
+ program: this.programId,
3785
+ ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY
3786
+ })
3787
+ .instruction()];
3788
+ case 2:
3789
+ setTriggerPrice = _a.sent();
3790
+ instructions.push(setTriggerPrice);
3791
+ return [3, 4];
3792
+ case 3:
3793
+ err_19 = _a.sent();
3794
+ console.log("perpClient setTriggerPrice error:: ", err_19);
3795
+ throw err_19;
3796
+ case 4: return [2, {
3797
+ instructions: __spreadArray([], instructions, true),
3798
+ additionalSigners: additionalSigners
3799
+ }];
3800
+ }
3801
+ });
3802
+ }); };
3803
+ this.forceClosePosition = function (targetSymbol, collateralSymbol, side, isStopLoss, poolConfig, nftTradingAccount, nftReferralAccount, nftRebateTokenAccount, privilege, createUserATA, closeUsersWSOLATA) {
3804
+ if (createUserATA === void 0) { createUserATA = true; }
3805
+ if (closeUsersWSOLATA === void 0) { closeUsersWSOLATA = false; }
3806
+ return __awaiter(_this, void 0, void 0, function () {
3807
+ var publicKey, targetCustodyConfig, collateralCustodyConfig, marketAccount, positionAccount, userReceivingTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, lamports, _a, forceClosePosition, closeWsolATAIns, err_20;
3808
+ return __generator(this, function (_b) {
3809
+ switch (_b.label) {
3810
+ case 0:
3811
+ publicKey = this.provider.wallet.publicKey;
3812
+ targetCustodyConfig = poolConfig.custodies.find(function (i) { return i.mintKey.equals(poolConfig.getTokenFromSymbol(targetSymbol).mintKey); });
3813
+ collateralCustodyConfig = poolConfig.custodies.find(function (i) { return i.mintKey.equals(poolConfig.getTokenFromSymbol(collateralSymbol).mintKey); });
3814
+ marketAccount = poolConfig.getMarketPk(targetCustodyConfig.custodyAccount, collateralCustodyConfig.custodyAccount, side);
3815
+ positionAccount = poolConfig.getPositionFromMarketPk(publicKey, marketAccount);
3816
+ preInstructions = [];
3817
+ instructions = [];
3818
+ postInstructions = [];
3819
+ additionalSigners = [];
3820
+ _b.label = 1;
3821
+ case 1:
3822
+ _b.trys.push([1, 9, , 10]);
3823
+ if (!(collateralSymbol == 'SOL')) return [3, 3];
3824
+ wrappedSolAccount = new web3_js_1.Keypair();
3825
+ return [4, (0, spl_token_1.getMinimumBalanceForRentExemptAccount)(this.provider.connection)];
3826
+ case 2:
3827
+ lamports = (_b.sent());
3828
+ preInstructions = [
3829
+ web3_js_1.SystemProgram.createAccount({
3830
+ fromPubkey: publicKey,
3831
+ newAccountPubkey: wrappedSolAccount.publicKey,
3832
+ lamports: lamports,
3833
+ space: 165,
3834
+ programId: spl_token_1.TOKEN_PROGRAM_ID,
3835
+ }),
3836
+ (0, spl_token_1.createInitializeAccount3Instruction)(wrappedSolAccount.publicKey, spl_token_1.NATIVE_MINT, publicKey),
3837
+ ];
3838
+ postInstructions = [
3839
+ (0, spl_token_1.createCloseAccountInstruction)(wrappedSolAccount.publicKey, publicKey, publicKey),
3840
+ ];
3841
+ additionalSigners.push(wrappedSolAccount);
3842
+ return [3, 7];
3843
+ case 3: return [4, (0, spl_token_1.getAssociatedTokenAddress)(poolConfig.getTokenFromSymbol(collateralSymbol).mintKey, publicKey)];
3844
+ case 4:
3845
+ userReceivingTokenAccount = _b.sent();
3846
+ _a = createUserATA;
3847
+ if (!_a) return [3, 6];
3848
+ return [4, (0, utils_1.checkIfAccountExists)(userReceivingTokenAccount, this.provider.connection)];
3849
+ case 5:
3850
+ _a = !(_b.sent());
3851
+ _b.label = 6;
3852
+ case 6:
3853
+ if (_a) {
3854
+ preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, userReceivingTokenAccount, publicKey, poolConfig.getTokenFromSymbol(collateralSymbol).mintKey));
3855
+ }
3856
+ _b.label = 7;
3857
+ case 7: return [4, this.program.methods
3858
+ .forceClosePosition({
3859
+ privilege: privilege,
3860
+ isStopLoss: isStopLoss
3861
+ })
3862
+ .accounts({
3863
+ owner: publicKey,
3864
+ receivingAccount: collateralSymbol == 'SOL' ? wrappedSolAccount.publicKey : userReceivingTokenAccount,
3865
+ transferAuthority: poolConfig.transferAuthority,
3866
+ perpetuals: this.perpetuals.publicKey,
3867
+ pool: poolConfig.poolAddress,
3868
+ position: positionAccount,
3869
+ market: marketAccount,
3870
+ targetCustody: targetCustodyConfig.custodyAccount,
3871
+ targetOracleAccount: targetCustodyConfig.oracleAddress,
3872
+ collateralCustody: collateralCustodyConfig.custodyAccount,
3873
+ collateralOracleAccount: collateralCustodyConfig.oracleAddress,
3874
+ collateralCustodyTokenAccount: collateralCustodyConfig.tokenAccount,
3875
+ tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
3876
+ eventAuthority: this.eventAuthority.publicKey,
3877
+ program: this.programId,
3878
+ ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY
3879
+ })
3880
+ .remainingAccounts(__spreadArray([], (0, getNftAccounts_1.getNftAccounts)(nftTradingAccount, nftReferralAccount, nftRebateTokenAccount, privilege), true))
3881
+ .instruction()];
3882
+ case 8:
3883
+ forceClosePosition = _b.sent();
3884
+ instructions.push(forceClosePosition);
3885
+ if (collateralSymbol == 'WSOL' && closeUsersWSOLATA) {
3886
+ closeWsolATAIns = (0, spl_token_1.createCloseAccountInstruction)(userReceivingTokenAccount, publicKey, publicKey);
3887
+ postInstructions.push(closeWsolATAIns);
3888
+ }
3889
+ return [3, 10];
3890
+ case 9:
3891
+ err_20 = _b.sent();
3892
+ console.log("perpClient forceClosePosition error:: ", err_20);
3893
+ throw err_20;
3894
+ case 10: return [2, {
3895
+ instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
3896
+ additionalSigners: additionalSigners
3897
+ }];
3898
+ }
3899
+ });
3900
+ });
3901
+ };
3755
3902
  this.setPoolConfig = function (permissions, oracleAuthority, maxAumUsd, stakingFeeShareBps, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
3756
- var publicKey, preInstructions, instructions, postInstructions, additionalSigners, setPoolConfigInstruction, err_19;
3903
+ var publicKey, preInstructions, instructions, postInstructions, additionalSigners, setPoolConfigInstruction, err_21;
3757
3904
  return __generator(this, function (_a) {
3758
3905
  switch (_a.label) {
3759
3906
  case 0:
@@ -3783,9 +3930,9 @@ var PerpetualsClient = (function () {
3783
3930
  instructions.push(setPoolConfigInstruction);
3784
3931
  return [3, 4];
3785
3932
  case 3:
3786
- err_19 = _a.sent();
3787
- console.log("perpClient setPool error:: ", err_19);
3788
- throw err_19;
3933
+ err_21 = _a.sent();
3934
+ console.log("perpClient setPool error:: ", err_21);
3935
+ throw err_21;
3789
3936
  case 4: return [2, {
3790
3937
  instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
3791
3938
  additionalSigners: additionalSigners
@@ -3794,7 +3941,7 @@ var PerpetualsClient = (function () {
3794
3941
  });
3795
3942
  }); };
3796
3943
  this.setPermissions = function (permissions) { return __awaiter(_this, void 0, void 0, function () {
3797
- var publicKey, preInstructions, instructions, postInstructions, additionalSigners, setPermissionsInstruction, err_20;
3944
+ var publicKey, preInstructions, instructions, postInstructions, additionalSigners, setPermissionsInstruction, err_22;
3798
3945
  return __generator(this, function (_a) {
3799
3946
  switch (_a.label) {
3800
3947
  case 0:
@@ -3821,9 +3968,9 @@ var PerpetualsClient = (function () {
3821
3968
  instructions.push(setPermissionsInstruction);
3822
3969
  return [3, 4];
3823
3970
  case 3:
3824
- err_20 = _a.sent();
3825
- console.log("perpClient setPool error:: ", err_20);
3826
- throw err_20;
3971
+ err_22 = _a.sent();
3972
+ console.log("perpClient setPool error:: ", err_22);
3973
+ throw err_22;
3827
3974
  case 4: return [2, {
3828
3975
  instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
3829
3976
  additionalSigners: additionalSigners
@@ -1169,6 +1169,7 @@ export type Perpetuals = {
1169
1169
  };
1170
1170
  }
1171
1171
  ];
1172
+ "returns": "u64";
1172
1173
  },
1173
1174
  {
1174
1175
  "name": "removeLiquidity";
@@ -1818,6 +1819,79 @@ export type Perpetuals = {
1818
1819
  }
1819
1820
  ];
1820
1821
  },
1822
+ {
1823
+ "name": "setTriggerPrice";
1824
+ "accounts": [
1825
+ {
1826
+ "name": "owner";
1827
+ "isMut": false;
1828
+ "isSigner": true;
1829
+ },
1830
+ {
1831
+ "name": "perpetuals";
1832
+ "isMut": false;
1833
+ "isSigner": false;
1834
+ },
1835
+ {
1836
+ "name": "pool";
1837
+ "isMut": false;
1838
+ "isSigner": false;
1839
+ },
1840
+ {
1841
+ "name": "position";
1842
+ "isMut": true;
1843
+ "isSigner": false;
1844
+ },
1845
+ {
1846
+ "name": "market";
1847
+ "isMut": false;
1848
+ "isSigner": false;
1849
+ },
1850
+ {
1851
+ "name": "targetCustody";
1852
+ "isMut": false;
1853
+ "isSigner": false;
1854
+ },
1855
+ {
1856
+ "name": "targetOracleAccount";
1857
+ "isMut": false;
1858
+ "isSigner": false;
1859
+ },
1860
+ {
1861
+ "name": "collateralCustody";
1862
+ "isMut": false;
1863
+ "isSigner": false;
1864
+ },
1865
+ {
1866
+ "name": "collateralOracleAccount";
1867
+ "isMut": false;
1868
+ "isSigner": false;
1869
+ },
1870
+ {
1871
+ "name": "eventAuthority";
1872
+ "isMut": false;
1873
+ "isSigner": false;
1874
+ },
1875
+ {
1876
+ "name": "program";
1877
+ "isMut": false;
1878
+ "isSigner": false;
1879
+ },
1880
+ {
1881
+ "name": "ixSysvar";
1882
+ "isMut": false;
1883
+ "isSigner": false;
1884
+ }
1885
+ ];
1886
+ "args": [
1887
+ {
1888
+ "name": "params";
1889
+ "type": {
1890
+ "defined": "SetTriggerPriceParams";
1891
+ };
1892
+ }
1893
+ ];
1894
+ },
1821
1895
  {
1822
1896
  "name": "addCollateral";
1823
1897
  "accounts": [
@@ -2275,6 +2349,100 @@ export type Perpetuals = {
2275
2349
  ];
2276
2350
  "returns": "u64";
2277
2351
  },
2352
+ {
2353
+ "name": "forceClosePosition";
2354
+ "accounts": [
2355
+ {
2356
+ "name": "owner";
2357
+ "isMut": true;
2358
+ "isSigner": false;
2359
+ },
2360
+ {
2361
+ "name": "receivingAccount";
2362
+ "isMut": true;
2363
+ "isSigner": false;
2364
+ },
2365
+ {
2366
+ "name": "transferAuthority";
2367
+ "isMut": false;
2368
+ "isSigner": false;
2369
+ },
2370
+ {
2371
+ "name": "perpetuals";
2372
+ "isMut": false;
2373
+ "isSigner": false;
2374
+ },
2375
+ {
2376
+ "name": "pool";
2377
+ "isMut": false;
2378
+ "isSigner": false;
2379
+ },
2380
+ {
2381
+ "name": "position";
2382
+ "isMut": true;
2383
+ "isSigner": false;
2384
+ },
2385
+ {
2386
+ "name": "market";
2387
+ "isMut": true;
2388
+ "isSigner": false;
2389
+ },
2390
+ {
2391
+ "name": "targetCustody";
2392
+ "isMut": false;
2393
+ "isSigner": false;
2394
+ },
2395
+ {
2396
+ "name": "targetOracleAccount";
2397
+ "isMut": false;
2398
+ "isSigner": false;
2399
+ },
2400
+ {
2401
+ "name": "collateralCustody";
2402
+ "isMut": true;
2403
+ "isSigner": false;
2404
+ },
2405
+ {
2406
+ "name": "collateralOracleAccount";
2407
+ "isMut": false;
2408
+ "isSigner": false;
2409
+ },
2410
+ {
2411
+ "name": "collateralCustodyTokenAccount";
2412
+ "isMut": true;
2413
+ "isSigner": false;
2414
+ },
2415
+ {
2416
+ "name": "tokenProgram";
2417
+ "isMut": false;
2418
+ "isSigner": false;
2419
+ },
2420
+ {
2421
+ "name": "eventAuthority";
2422
+ "isMut": false;
2423
+ "isSigner": false;
2424
+ },
2425
+ {
2426
+ "name": "program";
2427
+ "isMut": false;
2428
+ "isSigner": false;
2429
+ },
2430
+ {
2431
+ "name": "ixSysvar";
2432
+ "isMut": false;
2433
+ "isSigner": false;
2434
+ }
2435
+ ];
2436
+ "args": [
2437
+ {
2438
+ "name": "params";
2439
+ "type": {
2440
+ "defined": "ForceClosePositionParams";
2441
+ };
2442
+ }
2443
+ ];
2444
+ "returns": "u64";
2445
+ },
2278
2446
  {
2279
2447
  "name": "levelUp";
2280
2448
  "accounts": [
@@ -2750,6 +2918,62 @@ export type Perpetuals = {
2750
2918
  ];
2751
2919
  "returns": "u8";
2752
2920
  },
2921
+ {
2922
+ "name": "getLiquidationPrice";
2923
+ "accounts": [
2924
+ {
2925
+ "name": "perpetuals";
2926
+ "isMut": false;
2927
+ "isSigner": false;
2928
+ },
2929
+ {
2930
+ "name": "pool";
2931
+ "isMut": false;
2932
+ "isSigner": false;
2933
+ },
2934
+ {
2935
+ "name": "position";
2936
+ "isMut": false;
2937
+ "isSigner": false;
2938
+ },
2939
+ {
2940
+ "name": "market";
2941
+ "isMut": false;
2942
+ "isSigner": false;
2943
+ },
2944
+ {
2945
+ "name": "targetCustody";
2946
+ "isMut": false;
2947
+ "isSigner": false;
2948
+ },
2949
+ {
2950
+ "name": "collateralCustody";
2951
+ "isMut": false;
2952
+ "isSigner": false;
2953
+ },
2954
+ {
2955
+ "name": "collateralOracleAccount";
2956
+ "isMut": false;
2957
+ "isSigner": false;
2958
+ },
2959
+ {
2960
+ "name": "ixSysvar";
2961
+ "isMut": false;
2962
+ "isSigner": false;
2963
+ }
2964
+ ];
2965
+ "args": [
2966
+ {
2967
+ "name": "params";
2968
+ "type": {
2969
+ "defined": "GetLiquidationPriceParams";
2970
+ };
2971
+ }
2972
+ ];
2973
+ "returns": {
2974
+ "defined": "OraclePrice";
2975
+ };
2976
+ },
2753
2977
  {
2754
2978
  "name": "getOraclePrice";
2755
2979
  "accounts": [
@@ -3772,6 +3996,24 @@ export type Perpetuals = {
3772
3996
  ];
3773
3997
  };
3774
3998
  },
3999
+ {
4000
+ "name": "ForceClosePositionParams";
4001
+ "type": {
4002
+ "kind": "struct";
4003
+ "fields": [
4004
+ {
4005
+ "name": "privilege";
4006
+ "type": {
4007
+ "defined": "Privilege";
4008
+ };
4009
+ },
4010
+ {
4011
+ "name": "isStopLoss";
4012
+ "type": "bool";
4013
+ }
4014
+ ];
4015
+ };
4016
+ },
3775
4017
  {
3776
4018
  "name": "GetAddLiquidityAmountAndFeeParams";
3777
4019
  "type": {
@@ -3820,6 +4062,13 @@ export type Perpetuals = {
3820
4062
  "fields": [];
3821
4063
  };
3822
4064
  },
4065
+ {
4066
+ "name": "GetLiquidationPriceParams";
4067
+ "type": {
4068
+ "kind": "struct";
4069
+ "fields": [];
4070
+ };
4071
+ },
3823
4072
  {
3824
4073
  "name": "GetLiquidationStateParams";
3825
4074
  "type": {
@@ -4258,6 +4507,24 @@ export type Perpetuals = {
4258
4507
  ];
4259
4508
  };
4260
4509
  },
4510
+ {
4511
+ "name": "SetTriggerPriceParams";
4512
+ "type": {
4513
+ "kind": "struct";
4514
+ "fields": [
4515
+ {
4516
+ "name": "triggerPrice";
4517
+ "type": {
4518
+ "defined": "OraclePrice";
4519
+ };
4520
+ },
4521
+ {
4522
+ "name": "isStopLoss";
4523
+ "type": "bool";
4524
+ }
4525
+ ];
4526
+ };
4527
+ },
4261
4528
  {
4262
4529
  "name": "SwapParams";
4263
4530
  "type": {
@@ -5415,6 +5682,56 @@ export type Perpetuals = {
5415
5682
  }
5416
5683
  ];
5417
5684
  },
5685
+ {
5686
+ "name": "ForceClosePositionLog";
5687
+ "fields": [
5688
+ {
5689
+ "name": "owner";
5690
+ "type": "publicKey";
5691
+ "index": false;
5692
+ },
5693
+ {
5694
+ "name": "market";
5695
+ "type": "publicKey";
5696
+ "index": false;
5697
+ },
5698
+ {
5699
+ "name": "priceUsd";
5700
+ "type": "u64";
5701
+ "index": false;
5702
+ },
5703
+ {
5704
+ "name": "sizeAmount";
5705
+ "type": "u64";
5706
+ "index": false;
5707
+ },
5708
+ {
5709
+ "name": "sizeUsd";
5710
+ "type": "u64";
5711
+ "index": false;
5712
+ },
5713
+ {
5714
+ "name": "profitUsd";
5715
+ "type": "u64";
5716
+ "index": false;
5717
+ },
5718
+ {
5719
+ "name": "lossUsd";
5720
+ "type": "u64";
5721
+ "index": false;
5722
+ },
5723
+ {
5724
+ "name": "feeAmount";
5725
+ "type": "u64";
5726
+ "index": false;
5727
+ },
5728
+ {
5729
+ "name": "isStopLoss";
5730
+ "type": "bool";
5731
+ "index": false;
5732
+ }
5733
+ ];
5734
+ },
5418
5735
  {
5419
5736
  "name": "IncreaseSizeLog";
5420
5737
  "fields": [
@@ -5590,6 +5907,31 @@ export type Perpetuals = {
5590
5907
  }
5591
5908
  ];
5592
5909
  },
5910
+ {
5911
+ "name": "SetTriggerPriceLog";
5912
+ "fields": [
5913
+ {
5914
+ "name": "owner";
5915
+ "type": "publicKey";
5916
+ "index": false;
5917
+ },
5918
+ {
5919
+ "name": "market";
5920
+ "type": "publicKey";
5921
+ "index": false;
5922
+ },
5923
+ {
5924
+ "name": "priceUsd";
5925
+ "type": "u64";
5926
+ "index": false;
5927
+ },
5928
+ {
5929
+ "name": "isStopLoss";
5930
+ "type": "bool";
5931
+ "index": false;
5932
+ }
5933
+ ];
5934
+ },
5593
5935
  {
5594
5936
  "name": "SwapLog";
5595
5937
  "fields": [
@@ -5906,6 +6248,21 @@ export type Perpetuals = {
5906
6248
  "code": 6047;
5907
6249
  "name": "TradingAccountMismatch";
5908
6250
  "msg": "Trading account doesnot match referral account";
6251
+ },
6252
+ {
6253
+ "code": 6048;
6254
+ "name": "MaxDepostsReached";
6255
+ "msg": "Max deposits reached";
6256
+ },
6257
+ {
6258
+ "code": 6049;
6259
+ "name": "InvalidStopLossPrice";
6260
+ "msg": "Invalid Stop Loss price";
6261
+ },
6262
+ {
6263
+ "code": 6050;
6264
+ "name": "InvalidTakeProfitPrice";
6265
+ "msg": "Invalid Take Profit price";
5909
6266
  }
5910
6267
  ];
5911
6268
  };