flash-sdk 2.15.3 → 2.16.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.
@@ -89,7 +89,7 @@ var PerpetualsClient = (function () {
89
89
  _this.prioritizationFee = fee;
90
90
  };
91
91
  this.loadAddressLookupTable = function (poolConfig) { return __awaiter(_this, void 0, void 0, function () {
92
- var addresses, _i, _a, address, addressLookupTable;
92
+ var addresses, _i, _a, address, addressLookupTable, accCreationLamports;
93
93
  return __generator(this, function (_b) {
94
94
  switch (_b.label) {
95
95
  case 0:
@@ -111,6 +111,12 @@ var PerpetualsClient = (function () {
111
111
  return [3, 1];
112
112
  case 4:
113
113
  this.addressLookupTables = addresses;
114
+ return [4, (0, spl_token_1.getMinimumBalanceForRentExemptAccount)(this.provider.connection)];
115
+ case 5:
116
+ accCreationLamports = (_b.sent());
117
+ if (accCreationLamports) {
118
+ this.minimumBalanceForRentExemptAccountLamports = accCreationLamports;
119
+ }
114
120
  return [2];
115
121
  }
116
122
  });
@@ -2227,7 +2233,7 @@ var PerpetualsClient = (function () {
2227
2233
  if (skipBalanceChecks === void 0) { skipBalanceChecks = false; }
2228
2234
  if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
2229
2235
  return __awaiter(_this, void 0, void 0, function () {
2230
- var publicKey, targetCustodyConfig, collateralCustodyConfig, marketAccount, userCollateralTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, accCreationLamports, lamports, unWrappedSolBalance, _a, tokenAccountBalance, _b, positionAccount, params, instruction;
2236
+ var publicKey, targetCustodyConfig, collateralCustodyConfig, marketAccount, userCollateralTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, lamports, unWrappedSolBalance, _a, tokenAccountBalance, _b, positionAccount, params, instruction;
2231
2237
  return __generator(this, function (_c) {
2232
2238
  switch (_c.label) {
2233
2239
  case 0:
@@ -2244,18 +2250,17 @@ var PerpetualsClient = (function () {
2244
2250
  additionalSigners = [];
2245
2251
  if (!(collateralSymbol == 'SOL')) return [3, 4];
2246
2252
  console.log("collateralSymbol === SOL", collateralSymbol);
2247
- return [4, (0, spl_token_1.getMinimumBalanceForRentExemptAccount)(this.provider.connection)];
2248
- case 2:
2249
- accCreationLamports = (_c.sent());
2250
- console.log("accCreationLamports:", accCreationLamports);
2251
- lamports = collateralWithfee.add(new anchor_1.BN(accCreationLamports));
2253
+ lamports = collateralWithfee.add(new anchor_1.BN(this.minimumBalanceForRentExemptAccountLamports));
2254
+ if (!!skipBalanceChecks) return [3, 3];
2252
2255
  _a = anchor_1.BN.bind;
2253
2256
  return [4, this.provider.connection.getBalance(publicKey)];
2254
- case 3:
2257
+ case 2:
2255
2258
  unWrappedSolBalance = new (_a.apply(anchor_1.BN, [void 0, _c.sent()]))();
2256
2259
  if (unWrappedSolBalance.lt(lamports)) {
2257
2260
  throw "Insufficient SOL Funds";
2258
2261
  }
2262
+ _c.label = 3;
2263
+ case 3:
2259
2264
  if (!ephemeralSignerPubkey) {
2260
2265
  wrappedSolAccount = new web3_js_1.Keypair();
2261
2266
  additionalSigners.push(wrappedSolAccount);
@@ -2274,12 +2279,13 @@ var PerpetualsClient = (function () {
2274
2279
  (0, spl_token_1.createCloseAccountInstruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), publicKey, publicKey),
2275
2280
  ];
2276
2281
  return [3, 7];
2277
- case 4: return [4, (0, utils_1.checkIfAccountExists)(userCollateralTokenAccount, this.provider.connection)];
2282
+ case 4:
2283
+ if (!!skipBalanceChecks) return [3, 7];
2284
+ return [4, (0, utils_1.checkIfAccountExists)(userCollateralTokenAccount, this.provider.connection)];
2278
2285
  case 5:
2279
2286
  if (!(_c.sent())) {
2280
2287
  throw "Insufficient Funds , token Account doesn't exist";
2281
2288
  }
2282
- if (!!skipBalanceChecks) return [3, 7];
2283
2289
  _b = anchor_1.BN.bind;
2284
2290
  return [4, this.provider.connection.getTokenAccountBalance(userCollateralTokenAccount)];
2285
2291
  case 6:
@@ -2338,7 +2344,7 @@ var PerpetualsClient = (function () {
2338
2344
  if (skipBalanceChecks === void 0) { skipBalanceChecks = false; }
2339
2345
  if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
2340
2346
  return __awaiter(_this, void 0, void 0, function () {
2341
- var publicKey, targetCustodyConfig, collateralCustodyConfig, swapOutCustodyConfig, swapInCustodyConfig, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, userInputTokenAccount, accCreationLamports, lamports, unWrappedSolBalance, _a, tokenAccountBalance, _b, userOutputTokenAccount, marketAccount, positionAccount, custodyAccountMetas, custodyOracleAccountMetas, _i, _c, custody, instruction;
2347
+ var publicKey, targetCustodyConfig, collateralCustodyConfig, swapOutCustodyConfig, swapInCustodyConfig, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, userInputTokenAccount, lamports, unWrappedSolBalance, _a, tokenAccountBalance, _b, userOutputTokenAccount, marketAccount, positionAccount, custodyAccountMetas, custodyOracleAccountMetas, _i, _c, custody, instruction;
2342
2348
  return __generator(this, function (_d) {
2343
2349
  switch (_d.label) {
2344
2350
  case 0:
@@ -2356,18 +2362,17 @@ var PerpetualsClient = (function () {
2356
2362
  additionalSigners = [];
2357
2363
  if (!(inputSymbol == 'SOL')) return [3, 3];
2358
2364
  console.log("inputSymbol === SOL", inputSymbol);
2359
- return [4, (0, spl_token_1.getMinimumBalanceForRentExemptAccount)(this.provider.connection)];
2360
- case 1:
2361
- accCreationLamports = (_d.sent());
2362
- console.log("accCreationLamports:", accCreationLamports);
2363
- lamports = amountIn.add(new anchor_1.BN(accCreationLamports));
2365
+ lamports = amountIn.add(new anchor_1.BN(this.minimumBalanceForRentExemptAccountLamports));
2366
+ if (!!skipBalanceChecks) return [3, 2];
2364
2367
  _a = anchor_1.BN.bind;
2365
2368
  return [4, this.provider.connection.getBalance(publicKey)];
2366
- case 2:
2369
+ case 1:
2367
2370
  unWrappedSolBalance = new (_a.apply(anchor_1.BN, [void 0, _d.sent()]))();
2368
2371
  if (unWrappedSolBalance.lt(lamports)) {
2369
2372
  throw "Insufficient SOL Funds";
2370
2373
  }
2374
+ _d.label = 2;
2375
+ case 2:
2371
2376
  if (!ephemeralSignerPubkey) {
2372
2377
  wrappedSolAccount = new web3_js_1.Keypair();
2373
2378
  additionalSigners.push(wrappedSolAccount);
@@ -2388,12 +2393,12 @@ var PerpetualsClient = (function () {
2388
2393
  return [3, 6];
2389
2394
  case 3:
2390
2395
  userInputTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(swapPoolConfig.getTokenFromSymbol(inputSymbol).mintKey, publicKey, true);
2396
+ if (!!skipBalanceChecks) return [3, 6];
2391
2397
  return [4, (0, utils_1.checkIfAccountExists)(userInputTokenAccount, this.provider.connection)];
2392
2398
  case 4:
2393
2399
  if (!(_d.sent())) {
2394
2400
  throw "Insufficient Funds , Token Account doesn't exist";
2395
2401
  }
2396
- if (!!skipBalanceChecks) return [3, 6];
2397
2402
  _b = anchor_1.BN.bind;
2398
2403
  return [4, this.provider.connection.getTokenAccountBalance(userInputTokenAccount)];
2399
2404
  case 5:
@@ -2410,7 +2415,6 @@ var PerpetualsClient = (function () {
2410
2415
  preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, userOutputTokenAccount, publicKey, swapPoolConfig.getTokenFromSymbol(swapOutCustodyConfig.symbol).mintKey));
2411
2416
  }
2412
2417
  marketAccount = positionPoolConfig.getMarketPk(targetCustodyConfig.custodyAccount, collateralCustodyConfig.custodyAccount, side);
2413
- console.log('marketAccount :>> ', marketAccount.toBase58(), targetCustodyConfig.custodyAccount.toBase58(), collateralCustodyConfig.custodyAccount.toBase58());
2414
2418
  positionAccount = positionPoolConfig.getPositionFromMarketPk(publicKey, marketAccount);
2415
2419
  custodyAccountMetas = [];
2416
2420
  custodyOracleAccountMetas = [];
@@ -2495,11 +2499,9 @@ var PerpetualsClient = (function () {
2495
2499
  additionalSigners = [];
2496
2500
  _b.label = 1;
2497
2501
  case 1:
2498
- _b.trys.push([1, 9, , 10]);
2499
- if (!(collateralSymbol == 'SOL')) return [3, 3];
2500
- return [4, (0, spl_token_1.getMinimumBalanceForRentExemptAccount)(this.provider.connection)];
2501
- case 2:
2502
- lamports = (_b.sent());
2502
+ _b.trys.push([1, 7, , 8]);
2503
+ if (!(collateralSymbol == 'SOL')) return [3, 2];
2504
+ lamports = (this.minimumBalanceForRentExemptAccountLamports);
2503
2505
  if (!ephemeralSignerPubkey) {
2504
2506
  wrappedSolAccount = new web3_js_1.Keypair();
2505
2507
  additionalSigners.push(wrappedSolAccount);
@@ -2517,22 +2519,21 @@ var PerpetualsClient = (function () {
2517
2519
  postInstructions = [
2518
2520
  (0, spl_token_1.createCloseAccountInstruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), publicKey, publicKey),
2519
2521
  ];
2520
- return [3, 7];
2521
- case 3: return [4, (0, spl_token_1.getAssociatedTokenAddress)(poolConfig.getTokenFromSymbol(collateralSymbol).mintKey, publicKey, true)];
2522
- case 4:
2523
- userReceivingTokenAccount = _b.sent();
2522
+ return [3, 5];
2523
+ case 2:
2524
+ userReceivingTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(poolConfig.getTokenFromSymbol(collateralSymbol).mintKey, publicKey, true);
2524
2525
  _a = createUserATA;
2525
- if (!_a) return [3, 6];
2526
+ if (!_a) return [3, 4];
2526
2527
  return [4, (0, utils_1.checkIfAccountExists)(userReceivingTokenAccount, this.provider.connection)];
2527
- case 5:
2528
+ case 3:
2528
2529
  _a = !(_b.sent());
2529
- _b.label = 6;
2530
- case 6:
2530
+ _b.label = 4;
2531
+ case 4:
2531
2532
  if (_a) {
2532
2533
  preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, userReceivingTokenAccount, publicKey, poolConfig.getTokenFromSymbol(collateralSymbol).mintKey));
2533
2534
  }
2534
- _b.label = 7;
2535
- case 7:
2535
+ _b.label = 5;
2536
+ case 5:
2536
2537
  collateralCustodyConfig = poolConfig.custodies.find(function (i) { return i.mintKey.equals(poolConfig.getTokenFromSymbol(collateralSymbol).mintKey); });
2537
2538
  targetCustodyConfig = poolConfig.custodies.find(function (i) { return i.mintKey.equals(poolConfig.getTokenFromSymbol(marketSymbol).mintKey); });
2538
2539
  marketAccount = poolConfig.getMarketPk(targetCustodyConfig.custodyAccount, collateralCustodyConfig.custodyAccount, side);
@@ -2563,19 +2564,19 @@ var PerpetualsClient = (function () {
2563
2564
  })
2564
2565
  .remainingAccounts(__spreadArray([], (0, getNftAccounts_1.getNftAccounts)(nftTradingAccount, nftReferralAccount, nftRebateTokenAccount, privilege), true))
2565
2566
  .instruction()];
2566
- case 8:
2567
+ case 6:
2567
2568
  instruction = _b.sent();
2568
2569
  instructions.push(instruction);
2569
2570
  if (collateralSymbol == 'WSOL' && closeUsersWSOLATA) {
2570
2571
  closeWsolATAIns = (0, spl_token_1.createCloseAccountInstruction)(userReceivingTokenAccount, publicKey, publicKey);
2571
2572
  postInstructions.push(closeWsolATAIns);
2572
2573
  }
2573
- return [3, 10];
2574
- case 9:
2574
+ return [3, 8];
2575
+ case 7:
2575
2576
  error_2 = _b.sent();
2576
2577
  console.error("perpclient closePosition error:", error_2);
2577
- return [3, 10];
2578
- case 10: return [2, {
2578
+ return [3, 8];
2579
+ case 8: return [2, {
2579
2580
  instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
2580
2581
  additionalSigners: additionalSigners
2581
2582
  }];
@@ -2605,11 +2606,9 @@ var PerpetualsClient = (function () {
2605
2606
  instructions = [];
2606
2607
  postInstructions = [];
2607
2608
  additionalSigners = [];
2608
- if (!(outputSymbol == 'SOL')) return [3, 2];
2609
+ if (!(outputSymbol == 'SOL')) return [3, 1];
2609
2610
  console.log("outputSymbol === SOL", outputSymbol);
2610
- return [4, (0, spl_token_1.getMinimumBalanceForRentExemptAccount)(this.provider.connection)];
2611
- case 1:
2612
- lamports = (_b.sent());
2611
+ lamports = (this.minimumBalanceForRentExemptAccountLamports);
2613
2612
  if (!ephemeralSignerPubkey) {
2614
2613
  wrappedSolAccount = new web3_js_1.Keypair();
2615
2614
  additionalSigners.push(wrappedSolAccount);
@@ -2628,20 +2627,20 @@ var PerpetualsClient = (function () {
2628
2627
  (0, spl_token_1.createCloseAccountInstruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), publicKey, publicKey),
2629
2628
  ];
2630
2629
  additionalSigners.push(wrappedSolAccount);
2631
- return [3, 5];
2632
- case 2: return [4, (0, spl_token_1.getAssociatedTokenAddress)(swapPoolConfig.getTokenFromSymbol(outputSymbol).mintKey, publicKey, true)];
2633
- case 3:
2630
+ return [3, 4];
2631
+ case 1: return [4, (0, spl_token_1.getAssociatedTokenAddress)(swapPoolConfig.getTokenFromSymbol(outputSymbol).mintKey, publicKey, true)];
2632
+ case 2:
2634
2633
  userReceivingTokenAccount = _b.sent();
2635
2634
  return [4, (0, utils_1.checkIfAccountExists)(userReceivingTokenAccount, this.provider.connection)];
2636
- case 4:
2635
+ case 3:
2637
2636
  if (!(_b.sent())) {
2638
2637
  preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, userReceivingTokenAccount, publicKey, swapPoolConfig.getTokenFromSymbol(outputSymbol).mintKey));
2639
2638
  }
2640
- _b.label = 5;
2641
- case 5:
2639
+ _b.label = 4;
2640
+ case 4:
2642
2641
  userCollateralTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(positionPoolConfig.getTokenFromSymbol(collateralSymbol).mintKey, publicKey, true);
2643
2642
  return [4, (0, utils_1.checkIfAccountExists)(userCollateralTokenAccount, this.provider.connection)];
2644
- case 6:
2643
+ case 5:
2645
2644
  if (!(_b.sent())) {
2646
2645
  preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, userCollateralTokenAccount, publicKey, positionPoolConfig.getTokenFromSymbol(collateralSymbol).mintKey));
2647
2646
  }
@@ -2696,7 +2695,7 @@ var PerpetualsClient = (function () {
2696
2695
  })
2697
2696
  .remainingAccounts(__spreadArray(__spreadArray(__spreadArray([], (0, getNftAccounts_1.getNftAccounts)(nftTradingAccount, nftReferralAccount, nftRebateTokenAccount, privilege), true), custodyAccountMetas, true), custodyOracleAccountMetas, true))
2698
2697
  .instruction()];
2699
- case 7:
2698
+ case 6:
2700
2699
  instruction = _b.sent();
2701
2700
  instructions.push(instruction);
2702
2701
  return [2, {
@@ -2731,7 +2730,7 @@ var PerpetualsClient = (function () {
2731
2730
  instructions = [];
2732
2731
  postInstructions = [];
2733
2732
  additionalSigners = [];
2734
- if (!(userInputTokenSymbol == 'SOL' && userOutputTokenSymbol == 'WSOL')) return [3, 4];
2733
+ if (!(userInputTokenSymbol == 'SOL' && userOutputTokenSymbol == 'WSOL')) return [3, 5];
2735
2734
  return [4, (0, spl_token_1.getAssociatedTokenAddress)(spl_token_1.NATIVE_MINT, publicKey, true)];
2736
2735
  case 1:
2737
2736
  wsolAssociatedTokenAccount = _f.sent();
@@ -2741,6 +2740,7 @@ var PerpetualsClient = (function () {
2741
2740
  if (!wsolATAExist) {
2742
2741
  instructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, wsolAssociatedTokenAccount, publicKey, spl_token_1.NATIVE_MINT));
2743
2742
  }
2743
+ if (!!skipBalanceChecks) return [3, 4];
2744
2744
  _a = anchor_1.BN.bind;
2745
2745
  return [4, this.provider.connection.getBalance(publicKey)];
2746
2746
  case 3:
@@ -2748,6 +2748,8 @@ var PerpetualsClient = (function () {
2748
2748
  if (unWrappedSolBalance.lt(amountIn)) {
2749
2749
  throw "Insufficient SOL Funds";
2750
2750
  }
2751
+ _f.label = 4;
2752
+ case 4:
2751
2753
  instructions.push(web3_js_1.SystemProgram.transfer({
2752
2754
  fromPubkey: publicKey,
2753
2755
  toPubkey: wsolAssociatedTokenAccount,
@@ -2757,20 +2759,20 @@ var PerpetualsClient = (function () {
2757
2759
  instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
2758
2760
  additionalSigners: additionalSigners
2759
2761
  }];
2760
- case 4:
2761
- if (!(userInputTokenSymbol == 'WSOL' && userOutputTokenSymbol == 'SOL')) return [3, 6];
2762
- console.log("WSOL=> SOL : NOTE : ONLY WAY IS TO CLOSE THE WSOL ATA and GET ALL SOL ");
2763
- return [4, (0, spl_token_1.getAssociatedTokenAddress)(spl_token_1.NATIVE_MINT, publicKey, true)];
2764
2762
  case 5:
2765
- wsolAssociatedTokenAccount = _f.sent();
2766
- closeWsolATAIns = (0, spl_token_1.createCloseAccountInstruction)(wsolAssociatedTokenAccount, publicKey, publicKey);
2767
- instructions.push(closeWsolATAIns);
2768
- return [2, {
2769
- instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
2770
- additionalSigners: additionalSigners
2771
- }];
2763
+ if (userInputTokenSymbol == 'WSOL' && userOutputTokenSymbol == 'SOL') {
2764
+ console.log("WSOL=> SOL : NOTE : ONLY WAY IS TO CLOSE THE WSOL ATA and GET ALL SOL ");
2765
+ wsolAssociatedTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(spl_token_1.NATIVE_MINT, publicKey, true);
2766
+ closeWsolATAIns = (0, spl_token_1.createCloseAccountInstruction)(wsolAssociatedTokenAccount, publicKey, publicKey);
2767
+ instructions.push(closeWsolATAIns);
2768
+ return [2, {
2769
+ instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
2770
+ additionalSigners: additionalSigners
2771
+ }];
2772
+ }
2773
+ _f.label = 6;
2772
2774
  case 6:
2773
- _f.trys.push([6, 21, , 22]);
2775
+ _f.trys.push([6, 19, , 20]);
2774
2776
  if (!(userInputTokenSymbol == 'SOL')) return [3, 9];
2775
2777
  console.log("userInputTokenSymbol === sol", userInputTokenSymbol);
2776
2778
  return [4, (0, spl_token_1.getMinimumBalanceForRentExemptAccount)(this.provider.connection)];
@@ -2803,29 +2805,26 @@ var PerpetualsClient = (function () {
2803
2805
  postInstructions = [
2804
2806
  (0, spl_token_1.createCloseAccountInstruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), publicKey, publicKey),
2805
2807
  ];
2806
- return [3, 13];
2807
- case 9: return [4, (0, spl_token_1.getAssociatedTokenAddress)(poolConfig.getTokenFromSymbol(userInputTokenSymbol).mintKey, publicKey, true)];
2808
- case 10:
2809
- userInputTokenAccount = _f.sent();
2808
+ return [3, 12];
2809
+ case 9:
2810
+ userInputTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(poolConfig.getTokenFromSymbol(userInputTokenSymbol).mintKey, publicKey, true);
2810
2811
  return [4, (0, utils_1.checkIfAccountExists)(userInputTokenAccount, this.provider.connection)];
2811
- case 11:
2812
+ case 10:
2812
2813
  if (!(_f.sent())) {
2813
2814
  throw "Insufficient Funds , Token Account doesn't exist";
2814
2815
  }
2815
- if (!!skipBalanceChecks) return [3, 13];
2816
+ if (!!skipBalanceChecks) return [3, 12];
2816
2817
  _c = anchor_1.BN.bind;
2817
2818
  return [4, this.provider.connection.getTokenAccountBalance(userInputTokenAccount)];
2818
- case 12:
2819
+ case 11:
2819
2820
  tokenAccountBalance = new (_c.apply(anchor_1.BN, [void 0, (_f.sent()).value.amount]))();
2820
2821
  if (tokenAccountBalance.lt(amountIn)) {
2821
2822
  throw "Insufficient Funds need more ".concat(amountIn.sub(tokenAccountBalance), " tokens");
2822
2823
  }
2823
- _f.label = 13;
2824
- case 13:
2825
- if (!(userOutputTokenSymbol == 'SOL')) return [3, 15];
2826
- return [4, (0, spl_token_1.getMinimumBalanceForRentExemptAccount)(this.provider.connection)];
2827
- case 14:
2828
- lamports = (_f.sent());
2824
+ _f.label = 12;
2825
+ case 12:
2826
+ if (!(userOutputTokenSymbol == 'SOL')) return [3, 13];
2827
+ lamports = (this.minimumBalanceForRentExemptAccountLamports);
2829
2828
  if (!ephemeralSignerPubkey) {
2830
2829
  wrappedSolAccount = new web3_js_1.Keypair();
2831
2830
  additionalSigners.push(wrappedSolAccount);
@@ -2844,22 +2843,22 @@ var PerpetualsClient = (function () {
2844
2843
  postInstructions = [
2845
2844
  (0, spl_token_1.createCloseAccountInstruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), publicKey, publicKey),
2846
2845
  ];
2847
- return [3, 19];
2848
- case 15: return [4, (0, spl_token_1.getAssociatedTokenAddress)(poolConfig.getTokenFromSymbol(userOutputTokenSymbol).mintKey, publicKey, true)];
2849
- case 16:
2846
+ return [3, 17];
2847
+ case 13: return [4, (0, spl_token_1.getAssociatedTokenAddress)(poolConfig.getTokenFromSymbol(userOutputTokenSymbol).mintKey, publicKey, true)];
2848
+ case 14:
2850
2849
  userOutputTokenAccount = _f.sent();
2851
2850
  _d = createUserATA;
2852
- if (!_d) return [3, 18];
2851
+ if (!_d) return [3, 16];
2853
2852
  return [4, (0, utils_1.checkIfAccountExists)(userOutputTokenAccount, this.provider.connection)];
2854
- case 17:
2853
+ case 15:
2855
2854
  _d = !(_f.sent());
2856
- _f.label = 18;
2857
- case 18:
2855
+ _f.label = 16;
2856
+ case 16:
2858
2857
  if (_d) {
2859
2858
  preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, userOutputTokenAccount, publicKey, poolConfig.getTokenFromSymbol(userOutputTokenSymbol).mintKey));
2860
2859
  }
2861
- _f.label = 19;
2862
- case 19:
2860
+ _f.label = 17;
2861
+ case 17:
2863
2862
  custodyAccountMetas = [];
2864
2863
  custodyOracleAccountMetas = [];
2865
2864
  for (_i = 0, _e = poolConfig.custodies; _i < _e.length; _i++) {
@@ -2902,19 +2901,19 @@ var PerpetualsClient = (function () {
2902
2901
  })
2903
2902
  .remainingAccounts(__spreadArray(__spreadArray([], custodyAccountMetas, true), custodyOracleAccountMetas, true))
2904
2903
  .instruction()];
2905
- case 20:
2904
+ case 18:
2906
2905
  inx = _f.sent();
2907
2906
  instructions.push(inx);
2908
2907
  if (userOutputTokenSymbol == 'SOL' && unWrapSol) {
2909
2908
  closeWsolATAIns = (0, spl_token_1.createCloseAccountInstruction)(userOutputTokenAccount, publicKey, publicKey);
2910
2909
  instructions.push(closeWsolATAIns);
2911
2910
  }
2912
- return [3, 22];
2913
- case 21:
2911
+ return [3, 20];
2912
+ case 19:
2914
2913
  err_2 = _f.sent();
2915
2914
  console.error("perpClient Swap error:: ", err_2);
2916
2915
  throw err_2;
2917
- case 22: return [2, {
2916
+ case 20: return [2, {
2918
2917
  instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
2919
2918
  additionalSigners: additionalSigners
2920
2919
  }];
@@ -2997,7 +2996,7 @@ var PerpetualsClient = (function () {
2997
2996
  if (skipBalanceChecks === void 0) { skipBalanceChecks = false; }
2998
2997
  if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
2999
2998
  return __awaiter(_this, void 0, void 0, function () {
3000
- var publicKey, collateralCustodyConfig, targetCustodyConfig, marketAccount, userPayingTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, accCreationLamports, lamports, unWrappedSolBalance, _a, solBal, tokenAccountBalance, _b, instruction;
2999
+ var publicKey, collateralCustodyConfig, targetCustodyConfig, marketAccount, userPayingTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, lamports, unWrappedSolBalance, _a, tokenAccountBalance, _b, instruction;
3001
3000
  return __generator(this, function (_c) {
3002
3001
  switch (_c.label) {
3003
3002
  case 0:
@@ -3013,25 +3012,20 @@ var PerpetualsClient = (function () {
3013
3012
  instructions = [];
3014
3013
  postInstructions = [];
3015
3014
  additionalSigners = [];
3016
- if (!(collateralSymbol == 'SOL')) return [3, 4];
3015
+ if (!(collateralSymbol == 'SOL')) return [3, 3];
3017
3016
  console.log("collateralSymbol === SOL", collateralSymbol);
3018
- return [4, (0, spl_token_1.getMinimumBalanceForRentExemptAccount)(this.provider.connection)];
3019
- case 1:
3020
- accCreationLamports = (_c.sent());
3021
- console.log("accCreationLamports:", accCreationLamports);
3022
- lamports = collateralWithFee.add(new anchor_1.BN(accCreationLamports));
3017
+ lamports = collateralWithFee.add(new anchor_1.BN(this.minimumBalanceForRentExemptAccountLamports));
3023
3018
  console.log("lamports:", lamports.toNumber());
3019
+ if (!!skipBalanceChecks) return [3, 2];
3024
3020
  _a = anchor_1.BN.bind;
3025
3021
  return [4, this.provider.connection.getBalance(publicKey)];
3026
- case 2:
3022
+ case 1:
3027
3023
  unWrappedSolBalance = new (_a.apply(anchor_1.BN, [void 0, _c.sent()]))();
3028
3024
  if (unWrappedSolBalance.lt(lamports)) {
3029
3025
  throw "Insufficient SOL Funds";
3030
3026
  }
3031
- return [4, this.provider.connection.getBalance(publicKey)];
3032
- case 3:
3033
- solBal = _c.sent();
3034
- console.log("solBal>>:", solBal);
3027
+ _c.label = 2;
3028
+ case 2:
3035
3029
  if (!ephemeralSignerPubkey) {
3036
3030
  wrappedSolAccount = new web3_js_1.Keypair();
3037
3031
  additionalSigners.push(wrappedSolAccount);
@@ -3049,22 +3043,23 @@ var PerpetualsClient = (function () {
3049
3043
  postInstructions = [
3050
3044
  (0, spl_token_1.createCloseAccountInstruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), publicKey, publicKey),
3051
3045
  ];
3052
- return [3, 7];
3053
- case 4: return [4, (0, utils_1.checkIfAccountExists)(userPayingTokenAccount, this.provider.connection)];
3054
- case 5:
3046
+ return [3, 6];
3047
+ case 3:
3048
+ if (!!skipBalanceChecks) return [3, 6];
3049
+ return [4, (0, utils_1.checkIfAccountExists)(userPayingTokenAccount, this.provider.connection)];
3050
+ case 4:
3055
3051
  if (!(_c.sent())) {
3056
3052
  throw "Insufficient Funds , token Account doesn't exist";
3057
3053
  }
3058
- if (!!skipBalanceChecks) return [3, 7];
3059
3054
  _b = anchor_1.BN.bind;
3060
3055
  return [4, this.provider.connection.getTokenAccountBalance(userPayingTokenAccount)];
3061
- case 6:
3056
+ case 5:
3062
3057
  tokenAccountBalance = new (_b.apply(anchor_1.BN, [void 0, (_c.sent()).value.amount]))();
3063
3058
  if (tokenAccountBalance.lt(collateralWithFee)) {
3064
3059
  throw "Insufficient Funds need more ".concat(collateralWithFee.sub(tokenAccountBalance), " tokens");
3065
3060
  }
3066
- _c.label = 7;
3067
- case 7: return [4, this.program.methods.addCollateral({
3061
+ _c.label = 6;
3062
+ case 6: return [4, this.program.methods.addCollateral({
3068
3063
  collateralDelta: collateralWithFee
3069
3064
  }).accounts({
3070
3065
  owner: publicKey,
@@ -3084,7 +3079,7 @@ var PerpetualsClient = (function () {
3084
3079
  ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
3085
3080
  })
3086
3081
  .instruction()];
3087
- case 8:
3082
+ case 7:
3088
3083
  instruction = _c.sent();
3089
3084
  instructions.push(instruction);
3090
3085
  return [2, {
@@ -3099,7 +3094,7 @@ var PerpetualsClient = (function () {
3099
3094
  if (skipBalanceChecks === void 0) { skipBalanceChecks = false; }
3100
3095
  if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
3101
3096
  return __awaiter(_this, void 0, void 0, function () {
3102
- var publicKey, collateralCustodyConfig, targetCustodyConfig, outputCustodyConfig, inputCustodyConfig, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, userInputTokenAccount, accCreationLamports, lamports, unWrappedSolBalance, _a, tokenAccountBalance, _b, userCollateralTokenAccount, custodyAccountMetas, custodyOracleAccountMetas, _i, _c, custody, marketAccount, instruction;
3097
+ var publicKey, collateralCustodyConfig, targetCustodyConfig, outputCustodyConfig, inputCustodyConfig, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, userInputTokenAccount, lamports, unWrappedSolBalance, _a, tokenAccountBalance, _b, userCollateralTokenAccount, custodyAccountMetas, custodyOracleAccountMetas, _i, _c, custody, marketAccount, instruction;
3103
3098
  return __generator(this, function (_d) {
3104
3099
  switch (_d.label) {
3105
3100
  case 0:
@@ -3120,19 +3115,18 @@ var PerpetualsClient = (function () {
3120
3115
  additionalSigners = [];
3121
3116
  if (!(inputSymbol == 'SOL')) return [3, 3];
3122
3117
  console.log("inputSymbol === SOL", inputSymbol);
3123
- return [4, (0, spl_token_1.getMinimumBalanceForRentExemptAccount)(this.provider.connection)];
3124
- case 1:
3125
- accCreationLamports = (_d.sent());
3126
- console.log("accCreationLamports:", accCreationLamports);
3127
- lamports = amountIn.add(new anchor_1.BN(accCreationLamports));
3118
+ lamports = amountIn.add(new anchor_1.BN(this.minimumBalanceForRentExemptAccountLamports));
3128
3119
  console.log("lamports:", lamports.toNumber());
3120
+ if (!!skipBalanceChecks) return [3, 2];
3129
3121
  _a = anchor_1.BN.bind;
3130
3122
  return [4, this.provider.connection.getBalance(publicKey)];
3131
- case 2:
3123
+ case 1:
3132
3124
  unWrappedSolBalance = new (_a.apply(anchor_1.BN, [void 0, _d.sent()]))();
3133
3125
  if (unWrappedSolBalance.lt(lamports)) {
3134
3126
  throw "Insufficient SOL Funds";
3135
3127
  }
3128
+ _d.label = 2;
3129
+ case 2:
3136
3130
  if (!ephemeralSignerPubkey) {
3137
3131
  wrappedSolAccount = new web3_js_1.Keypair();
3138
3132
  additionalSigners.push(wrappedSolAccount);
@@ -3153,12 +3147,12 @@ var PerpetualsClient = (function () {
3153
3147
  return [3, 6];
3154
3148
  case 3:
3155
3149
  userInputTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(inputCustodyConfig.mintKey, publicKey, true);
3150
+ if (!!skipBalanceChecks) return [3, 6];
3156
3151
  return [4, (0, utils_1.checkIfAccountExists)(userInputTokenAccount, this.provider.connection)];
3157
3152
  case 4:
3158
3153
  if (!(_d.sent())) {
3159
3154
  throw "Insufficient Funds , token Account doesn't exist";
3160
3155
  }
3161
- if (!!skipBalanceChecks) return [3, 6];
3162
3156
  _b = anchor_1.BN.bind;
3163
3157
  return [4, this.provider.connection.getTokenAccountBalance(userInputTokenAccount)];
3164
3158
  case 5:
@@ -3257,14 +3251,12 @@ var PerpetualsClient = (function () {
3257
3251
  additionalSigners = [];
3258
3252
  _b.label = 1;
3259
3253
  case 1:
3260
- _b.trys.push([1, 9, , 10]);
3254
+ _b.trys.push([1, 7, , 8]);
3261
3255
  console.log("removeCollateral -- collateralSymbol:", collateralSymbol);
3262
- if (!(collateralSymbol == 'SOL')) return [3, 3];
3256
+ if (!(collateralSymbol == 'SOL')) return [3, 2];
3263
3257
  console.log("remove collateral in SOL ...create WSOL temp and close it ");
3264
3258
  userReceivingTokenAccount = wrappedSolAccount.publicKey;
3265
- return [4, (0, spl_token_1.getMinimumBalanceForRentExemptAccount)(this.provider.connection)];
3266
- case 2:
3267
- lamports = (_b.sent());
3259
+ lamports = this.minimumBalanceForRentExemptAccountLamports;
3268
3260
  if (!ephemeralSignerPubkey) {
3269
3261
  wrappedSolAccount = new web3_js_1.Keypair();
3270
3262
  additionalSigners.push(wrappedSolAccount);
@@ -3282,22 +3274,21 @@ var PerpetualsClient = (function () {
3282
3274
  postInstructions = [
3283
3275
  (0, spl_token_1.createCloseAccountInstruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), publicKey, publicKey),
3284
3276
  ];
3285
- return [3, 7];
3286
- case 3: return [4, (0, spl_token_1.getAssociatedTokenAddress)(poolConfig.getTokenFromSymbol(collateralSymbol).mintKey, publicKey, true)];
3287
- case 4:
3288
- userReceivingTokenAccount = _b.sent();
3277
+ return [3, 5];
3278
+ case 2:
3279
+ userReceivingTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(poolConfig.getTokenFromSymbol(collateralSymbol).mintKey, publicKey, true);
3289
3280
  _a = createUserATA;
3290
- if (!_a) return [3, 6];
3281
+ if (!_a) return [3, 4];
3291
3282
  return [4, (0, utils_1.checkIfAccountExists)(userReceivingTokenAccount, this.provider.connection)];
3292
- case 5:
3283
+ case 3:
3293
3284
  _a = !(_b.sent());
3294
- _b.label = 6;
3295
- case 6:
3285
+ _b.label = 4;
3286
+ case 4:
3296
3287
  if (_a) {
3297
3288
  preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, userReceivingTokenAccount, publicKey, poolConfig.getTokenFromSymbol(collateralSymbol).mintKey));
3298
3289
  }
3299
- _b.label = 7;
3300
- case 7:
3290
+ _b.label = 5;
3291
+ case 5:
3301
3292
  marketAccount = poolConfig.getMarketPk(targetCustodyConfig.custodyAccount, collateralCustodyConfig.custodyAccount, side);
3302
3293
  return [4, this.program.methods
3303
3294
  .removeCollateral({
@@ -3322,19 +3313,19 @@ var PerpetualsClient = (function () {
3322
3313
  ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY
3323
3314
  })
3324
3315
  .instruction()];
3325
- case 8:
3316
+ case 6:
3326
3317
  instruction = _b.sent();
3327
3318
  instructions.push(instruction);
3328
3319
  if (collateralSymbol == 'WSOL' && closeUsersWSOLATA) {
3329
3320
  closeWsolATAIns = (0, spl_token_1.createCloseAccountInstruction)(userReceivingTokenAccount, publicKey, publicKey);
3330
3321
  postInstructions.push(closeWsolATAIns);
3331
3322
  }
3332
- return [3, 10];
3333
- case 9:
3323
+ return [3, 8];
3324
+ case 7:
3334
3325
  error_3 = _b.sent();
3335
3326
  console.error("perpclient removeCollateral error:", error_3);
3336
- return [3, 10];
3337
- case 10: return [2, {
3327
+ return [3, 8];
3328
+ case 8: return [2, {
3338
3329
  instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
3339
3330
  additionalSigners: additionalSigners
3340
3331
  }];
@@ -3361,11 +3352,9 @@ var PerpetualsClient = (function () {
3361
3352
  instructions = [];
3362
3353
  postInstructions = [];
3363
3354
  additionalSigners = [];
3364
- if (!(outputSymbol == 'SOL')) return [3, 2];
3355
+ if (!(outputSymbol == 'SOL')) return [3, 1];
3365
3356
  console.log("outputSymbol === SOL", outputSymbol);
3366
- return [4, (0, spl_token_1.getMinimumBalanceForRentExemptAccount)(this.provider.connection)];
3367
- case 1:
3368
- lamports = (_b.sent());
3357
+ lamports = this.minimumBalanceForRentExemptAccountLamports;
3369
3358
  if (!ephemeralSignerPubkey) {
3370
3359
  wrappedSolAccount = new web3_js_1.Keypair();
3371
3360
  additionalSigners.push(wrappedSolAccount);
@@ -3383,20 +3372,19 @@ var PerpetualsClient = (function () {
3383
3372
  postInstructions = [
3384
3373
  (0, spl_token_1.createCloseAccountInstruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), publicKey, publicKey),
3385
3374
  ];
3386
- return [3, 5];
3387
- case 2: return [4, (0, spl_token_1.getAssociatedTokenAddress)(poolConfigSwap.getTokenFromSymbol(outputSymbol).mintKey, publicKey, true)];
3388
- case 3:
3389
- userReceivingTokenAccount = _b.sent();
3375
+ return [3, 3];
3376
+ case 1:
3377
+ userReceivingTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(poolConfigSwap.getTokenFromSymbol(outputSymbol).mintKey, publicKey, true);
3390
3378
  return [4, (0, utils_1.checkIfAccountExists)(userReceivingTokenAccount, this.provider.connection)];
3391
- case 4:
3379
+ case 2:
3392
3380
  if (!(_b.sent())) {
3393
3381
  preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, userReceivingTokenAccount, publicKey, poolConfigSwap.getTokenFromSymbol(outputSymbol).mintKey));
3394
3382
  }
3395
- _b.label = 5;
3396
- case 5:
3383
+ _b.label = 3;
3384
+ case 3:
3397
3385
  userCollateralTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(poolConfigPosition.getTokenFromSymbol(collateralSymbol).mintKey, publicKey, true);
3398
3386
  return [4, (0, utils_1.checkIfAccountExists)(userCollateralTokenAccount, this.provider.connection)];
3399
- case 6:
3387
+ case 4:
3400
3388
  if (!(_b.sent())) {
3401
3389
  preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, userCollateralTokenAccount, publicKey, poolConfigPosition.getTokenFromSymbol(collateralSymbol).mintKey));
3402
3390
  }
@@ -3450,7 +3438,7 @@ var PerpetualsClient = (function () {
3450
3438
  })
3451
3439
  .remainingAccounts(__spreadArray(__spreadArray([], custodyAccountMetas, true), custodyOracleAccountMetas, true))
3452
3440
  .instruction()];
3453
- case 7:
3441
+ case 5:
3454
3442
  instruction = _b.sent();
3455
3443
  instructions.push(instruction);
3456
3444
  return [2, {
@@ -3585,7 +3573,7 @@ var PerpetualsClient = (function () {
3585
3573
  if (skipBalanceChecks === void 0) { skipBalanceChecks = false; }
3586
3574
  if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
3587
3575
  return __awaiter(_this, void 0, void 0, function () {
3588
- var publicKey, payTokenCustodyConfig, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, userPayingTokenAccount, lpTokenAccount, custodyAccountMetas, custodyOracleAccountMetas, markets, _i, _a, custody, _b, _c, market, accCreationLamports, lamports, unWrappedSolBalance, _d, tokenAccountBalance, _e, instruction, err_4;
3576
+ var publicKey, payTokenCustodyConfig, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, userPayingTokenAccount, lpTokenAccount, custodyAccountMetas, custodyOracleAccountMetas, markets, _i, _a, custody, _b, _c, market, lamports, unWrappedSolBalance, _d, tokenAccountBalance, _e, instruction, err_4;
3589
3577
  return __generator(this, function (_f) {
3590
3578
  switch (_f.label) {
3591
3579
  case 0:
@@ -3600,13 +3588,9 @@ var PerpetualsClient = (function () {
3600
3588
  additionalSigners = [];
3601
3589
  _f.label = 1;
3602
3590
  case 1:
3603
- _f.trys.push([1, 12, , 13]);
3604
- return [4, (0, spl_token_1.getAssociatedTokenAddress)(payTokenCustodyConfig.mintKey, publicKey, true)];
3605
- case 2:
3606
- userPayingTokenAccount = _f.sent();
3607
- return [4, (0, spl_token_1.getAssociatedTokenAddress)(poolConfig.stakedLpTokenMint, publicKey, true)];
3608
- case 3:
3609
- lpTokenAccount = _f.sent();
3591
+ _f.trys.push([1, 10, , 11]);
3592
+ userPayingTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(payTokenCustodyConfig.mintKey, publicKey, true);
3593
+ lpTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(poolConfig.stakedLpTokenMint, publicKey, true);
3610
3594
  custodyAccountMetas = [];
3611
3595
  custodyOracleAccountMetas = [];
3612
3596
  markets = [];
@@ -3632,24 +3616,23 @@ var PerpetualsClient = (function () {
3632
3616
  });
3633
3617
  }
3634
3618
  return [4, (0, utils_1.checkIfAccountExists)(lpTokenAccount, this.provider.connection)];
3635
- case 4:
3619
+ case 2:
3636
3620
  if (!(_f.sent())) {
3637
3621
  instructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, lpTokenAccount, publicKey, poolConfig.stakedLpTokenMint));
3638
3622
  }
3639
- if (!(payTokenSymbol == 'SOL')) return [3, 7];
3623
+ if (!(payTokenSymbol == 'SOL')) return [3, 5];
3640
3624
  console.log("payTokenSymbol === SOL", payTokenSymbol);
3641
- return [4, (0, spl_token_1.getMinimumBalanceForRentExemptAccount)(this.provider.connection)];
3642
- case 5:
3643
- accCreationLamports = (_f.sent());
3644
- console.log("accCreationLamports:", accCreationLamports);
3645
- lamports = tokenAmountIn.add(new anchor_1.BN(accCreationLamports));
3625
+ lamports = tokenAmountIn.add(new anchor_1.BN(this.minimumBalanceForRentExemptAccountLamports));
3626
+ if (!!skipBalanceChecks) return [3, 4];
3646
3627
  _d = anchor_1.BN.bind;
3647
3628
  return [4, this.provider.connection.getBalance(publicKey)];
3648
- case 6:
3629
+ case 3:
3649
3630
  unWrappedSolBalance = new (_d.apply(anchor_1.BN, [void 0, _f.sent()]))();
3650
3631
  if (unWrappedSolBalance.lt(lamports)) {
3651
3632
  throw "Insufficient SOL Funds";
3652
3633
  }
3634
+ _f.label = 4;
3635
+ case 4:
3653
3636
  if (!ephemeralSignerPubkey) {
3654
3637
  wrappedSolAccount = new web3_js_1.Keypair();
3655
3638
  additionalSigners.push(wrappedSolAccount);
@@ -3667,22 +3650,23 @@ var PerpetualsClient = (function () {
3667
3650
  postInstructions = [
3668
3651
  (0, spl_token_1.createCloseAccountInstruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), publicKey, publicKey),
3669
3652
  ];
3670
- return [3, 10];
3671
- case 7: return [4, (0, utils_1.checkIfAccountExists)(userPayingTokenAccount, this.provider.connection)];
3672
- case 8:
3653
+ return [3, 8];
3654
+ case 5:
3655
+ if (!!skipBalanceChecks) return [3, 8];
3656
+ return [4, (0, utils_1.checkIfAccountExists)(userPayingTokenAccount, this.provider.connection)];
3657
+ case 6:
3673
3658
  if (!(_f.sent())) {
3674
3659
  throw "Insufficient Funds , token Account doesn't exist";
3675
3660
  }
3676
- if (!!skipBalanceChecks) return [3, 10];
3677
3661
  _e = anchor_1.BN.bind;
3678
3662
  return [4, this.provider.connection.getTokenAccountBalance(userPayingTokenAccount)];
3679
- case 9:
3663
+ case 7:
3680
3664
  tokenAccountBalance = new (_e.apply(anchor_1.BN, [void 0, (_f.sent()).value.amount]))();
3681
3665
  if (tokenAccountBalance.lt(tokenAmountIn)) {
3682
3666
  throw "Insufficient Funds need more ".concat(tokenAmountIn.sub(tokenAccountBalance), " tokens");
3683
3667
  }
3684
- _f.label = 10;
3685
- case 10: return [4, this.program.methods
3668
+ _f.label = 8;
3669
+ case 8: return [4, this.program.methods
3686
3670
  .addLiquidity({
3687
3671
  amountIn: tokenAmountIn,
3688
3672
  minLpAmountOut: minLpAmountOut
@@ -3705,15 +3689,15 @@ var PerpetualsClient = (function () {
3705
3689
  })
3706
3690
  .remainingAccounts(__spreadArray(__spreadArray(__spreadArray([], custodyAccountMetas, true), custodyOracleAccountMetas, true), markets, true))
3707
3691
  .instruction()];
3708
- case 11:
3692
+ case 9:
3709
3693
  instruction = _f.sent();
3710
3694
  instructions.push(instruction);
3711
- return [3, 13];
3712
- case 12:
3695
+ return [3, 11];
3696
+ case 10:
3713
3697
  err_4 = _f.sent();
3714
3698
  console.error("perpClient addLiquidity error:: ", err_4);
3715
3699
  throw err_4;
3716
- case 13: return [2, {
3700
+ case 11: return [2, {
3717
3701
  instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
3718
3702
  additionalSigners: additionalSigners
3719
3703
  }];
@@ -3725,7 +3709,7 @@ var PerpetualsClient = (function () {
3725
3709
  if (skipBalanceChecks === void 0) { skipBalanceChecks = false; }
3726
3710
  if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
3727
3711
  return __awaiter(_this, void 0, void 0, function () {
3728
- var publicKey, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, userInputTokenAccount, lpTokenMint, inputCustodyConfig, lpTokenAccount, flpStakeAccount, poolStakedLpVault, accCreationLamports, lamports, unWrappedSolBalance, _a, tokenAccountBalance, _b, custodyAccountMetas, custodyOracleAccountMetas, markets, _i, _c, custody, _d, _e, market, instruction;
3712
+ var publicKey, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, userInputTokenAccount, lpTokenMint, inputCustodyConfig, lpTokenAccount, flpStakeAccount, poolStakedLpVault, lamports, unWrappedSolBalance, _a, tokenAccountBalance, _b, custodyAccountMetas, custodyOracleAccountMetas, markets, _i, _c, custody, _d, _e, market, instruction;
3729
3713
  return __generator(this, function (_f) {
3730
3714
  switch (_f.label) {
3731
3715
  case 0:
@@ -3736,28 +3720,24 @@ var PerpetualsClient = (function () {
3736
3720
  additionalSigners = [];
3737
3721
  lpTokenMint = poolConfig.stakedLpTokenMint;
3738
3722
  inputCustodyConfig = poolConfig.custodies.find(function (i) { return i.mintKey.equals(poolConfig.getTokenFromSymbol(inputSymbol).mintKey); });
3739
- return [4, (0, spl_token_1.getAssociatedTokenAddress)(lpTokenMint, publicKey, true)];
3740
- case 1:
3741
- lpTokenAccount = _f.sent();
3723
+ lpTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(lpTokenMint, publicKey, true);
3742
3724
  flpStakeAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("stake"), publicKey.toBuffer(), poolConfig.poolAddress.toBuffer()], this.programId)[0];
3743
3725
  poolStakedLpVault = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("staked_lp_token_account"), poolConfig.poolAddress.toBuffer(), lpTokenMint.toBuffer()], this.programId)[0];
3744
- if (!(inputSymbol == 'SOL')) return [3, 5];
3726
+ if (!(inputSymbol == 'SOL')) return [3, 4];
3745
3727
  console.log("inputSymbol === SOL", inputSymbol);
3746
- return [4, (0, spl_token_1.getMinimumBalanceForRentExemptAccount)(this.provider.connection)];
3747
- case 2:
3748
- accCreationLamports = (_f.sent());
3749
- console.log("accCreationLamports:", accCreationLamports);
3750
- lamports = amountIn.add(new anchor_1.BN(accCreationLamports));
3728
+ lamports = amountIn.add(new anchor_1.BN(this.minimumBalanceForRentExemptAccountLamports));
3751
3729
  console.log("lamports:", lamports.toNumber());
3730
+ if (!!skipBalanceChecks) return [3, 2];
3752
3731
  _a = anchor_1.BN.bind;
3753
3732
  return [4, this.provider.connection.getBalance(publicKey)];
3754
- case 3:
3733
+ case 1:
3755
3734
  unWrappedSolBalance = new (_a.apply(anchor_1.BN, [void 0, _f.sent()]))();
3756
3735
  if (unWrappedSolBalance.lt(lamports)) {
3757
3736
  throw "Insufficient SOL Funds";
3758
3737
  }
3759
- return [4, (0, utils_1.checkIfAccountExists)(lpTokenAccount, this.provider.connection)];
3760
- case 4:
3738
+ _f.label = 2;
3739
+ case 2: return [4, (0, utils_1.checkIfAccountExists)(lpTokenAccount, this.provider.connection)];
3740
+ case 3:
3761
3741
  if (!(_f.sent())) {
3762
3742
  instructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, lpTokenAccount, publicKey, poolConfig.stakedLpTokenMint));
3763
3743
  }
@@ -3778,24 +3758,24 @@ var PerpetualsClient = (function () {
3778
3758
  postInstructions = [
3779
3759
  (0, spl_token_1.createCloseAccountInstruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), publicKey, publicKey),
3780
3760
  ];
3781
- return [3, 8];
3782
- case 5:
3761
+ return [3, 7];
3762
+ case 4:
3783
3763
  userInputTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(inputCustodyConfig.mintKey, publicKey, true);
3764
+ if (!!skipBalanceChecks) return [3, 7];
3784
3765
  return [4, (0, utils_1.checkIfAccountExists)(userInputTokenAccount, this.provider.connection)];
3785
- case 6:
3766
+ case 5:
3786
3767
  if (!(_f.sent())) {
3787
3768
  throw "Insufficient Funds , token Account doesn't exist";
3788
3769
  }
3789
- if (!!skipBalanceChecks) return [3, 8];
3790
3770
  _b = anchor_1.BN.bind;
3791
3771
  return [4, this.provider.connection.getTokenAccountBalance(userInputTokenAccount)];
3792
- case 7:
3772
+ case 6:
3793
3773
  tokenAccountBalance = new (_b.apply(anchor_1.BN, [void 0, (_f.sent()).value.amount]))();
3794
3774
  if (tokenAccountBalance.lt(amountIn)) {
3795
3775
  throw "Insufficient Funds need more ".concat(amountIn.sub(tokenAccountBalance), " tokens");
3796
3776
  }
3797
- _f.label = 8;
3798
- case 8:
3777
+ _f.label = 7;
3778
+ case 7:
3799
3779
  custodyAccountMetas = [];
3800
3780
  custodyOracleAccountMetas = [];
3801
3781
  markets = [];
@@ -3844,7 +3824,7 @@ var PerpetualsClient = (function () {
3844
3824
  })
3845
3825
  .remainingAccounts(__spreadArray(__spreadArray(__spreadArray([], custodyAccountMetas, true), custodyOracleAccountMetas, true), markets, true))
3846
3826
  .instruction()];
3847
- case 9:
3827
+ case 8:
3848
3828
  instruction = _f.sent();
3849
3829
  instructions.push(instruction);
3850
3830
  return [2, {
@@ -3876,10 +3856,8 @@ var PerpetualsClient = (function () {
3876
3856
  additionalSigners = [];
3877
3857
  _e.label = 1;
3878
3858
  case 1:
3879
- _e.trys.push([1, 10, , 11]);
3880
- return [4, (0, spl_token_1.getAssociatedTokenAddress)(poolConfig.stakedLpTokenMint, publicKey, true)];
3881
- case 2:
3882
- stakedLpTokenAccount = _e.sent();
3859
+ _e.trys.push([1, 7, , 8]);
3860
+ stakedLpTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(poolConfig.stakedLpTokenMint, publicKey, true);
3883
3861
  custodyAccountMetas = [];
3884
3862
  custodyOracleAccountMetas = [];
3885
3863
  markets = [];
@@ -3904,10 +3882,8 @@ var PerpetualsClient = (function () {
3904
3882
  isWritable: false,
3905
3883
  });
3906
3884
  }
3907
- if (!(recieveTokenSymbol == 'SOL')) return [3, 4];
3908
- return [4, (0, spl_token_1.getMinimumBalanceForRentExemptAccount)(this.provider.connection)];
3909
- case 3:
3910
- lamports = (_e.sent());
3885
+ if (!(recieveTokenSymbol == 'SOL')) return [3, 2];
3886
+ lamports = this.minimumBalanceForRentExemptAccountLamports;
3911
3887
  if (!ephemeralSignerPubkey) {
3912
3888
  wrappedSolAccount = new web3_js_1.Keypair();
3913
3889
  additionalSigners.push(wrappedSolAccount);
@@ -3925,47 +3901,44 @@ var PerpetualsClient = (function () {
3925
3901
  postInstructions = [
3926
3902
  (0, spl_token_1.createCloseAccountInstruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), publicKey, publicKey),
3927
3903
  ];
3928
- return [3, 8];
3929
- case 4: return [4, (0, spl_token_1.getAssociatedTokenAddress)(poolConfig.getTokenFromSymbol(recieveTokenSymbol).mintKey, publicKey, true)];
3930
- case 5:
3931
- userReceivingTokenAccount = _e.sent();
3904
+ return [3, 5];
3905
+ case 2:
3906
+ userReceivingTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(poolConfig.getTokenFromSymbol(recieveTokenSymbol).mintKey, publicKey, true);
3932
3907
  _d = createUserATA;
3933
- if (!_d) return [3, 7];
3908
+ if (!_d) return [3, 4];
3934
3909
  return [4, (0, utils_1.checkIfAccountExists)(userReceivingTokenAccount, this.provider.connection)];
3935
- case 6:
3910
+ case 3:
3936
3911
  _d = !(_e.sent());
3937
- _e.label = 7;
3938
- case 7:
3912
+ _e.label = 4;
3913
+ case 4:
3939
3914
  if (_d) {
3940
3915
  preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, userReceivingTokenAccount, publicKey, poolConfig.getTokenFromSymbol(recieveTokenSymbol).mintKey));
3941
3916
  }
3942
- _e.label = 8;
3943
- case 8:
3944
- console.log("liquidityAmountIn", liquidityAmountIn.toString());
3945
- return [4, this.program.methods
3946
- .removeLiquidity({
3947
- lpAmountIn: liquidityAmountIn,
3948
- minAmountOut: minTokenAmountOut
3949
- })
3950
- .accounts({
3951
- owner: publicKey,
3952
- receivingAccount: recieveTokenSymbol == 'SOL' ? (ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey) : userReceivingTokenAccount,
3953
- lpTokenAccount: stakedLpTokenAccount,
3954
- transferAuthority: poolConfig.transferAuthority,
3955
- perpetuals: poolConfig.perpetuals,
3956
- pool: poolConfig.poolAddress,
3957
- custody: recieveTokenCustodyConfig.custodyAccount,
3958
- custodyOracleAccount: this.useExtOracleAccount ? recieveTokenCustodyConfig.extOracleAccount : recieveTokenCustodyConfig.intOracleAccount,
3959
- custodyTokenAccount: recieveTokenCustodyConfig.tokenAccount,
3960
- lpTokenMint: poolConfig.stakedLpTokenMint,
3961
- eventAuthority: this.eventAuthority.publicKey,
3962
- tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
3963
- program: this.programId,
3964
- ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY
3965
- })
3966
- .remainingAccounts(__spreadArray(__spreadArray(__spreadArray([], custodyAccountMetas, true), custodyOracleAccountMetas, true), markets, true))
3967
- .instruction()];
3968
- case 9:
3917
+ _e.label = 5;
3918
+ case 5: return [4, this.program.methods
3919
+ .removeLiquidity({
3920
+ lpAmountIn: liquidityAmountIn,
3921
+ minAmountOut: minTokenAmountOut
3922
+ })
3923
+ .accounts({
3924
+ owner: publicKey,
3925
+ receivingAccount: recieveTokenSymbol == 'SOL' ? (ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey) : userReceivingTokenAccount,
3926
+ lpTokenAccount: stakedLpTokenAccount,
3927
+ transferAuthority: poolConfig.transferAuthority,
3928
+ perpetuals: poolConfig.perpetuals,
3929
+ pool: poolConfig.poolAddress,
3930
+ custody: recieveTokenCustodyConfig.custodyAccount,
3931
+ custodyOracleAccount: this.useExtOracleAccount ? recieveTokenCustodyConfig.extOracleAccount : recieveTokenCustodyConfig.intOracleAccount,
3932
+ custodyTokenAccount: recieveTokenCustodyConfig.tokenAccount,
3933
+ lpTokenMint: poolConfig.stakedLpTokenMint,
3934
+ eventAuthority: this.eventAuthority.publicKey,
3935
+ tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
3936
+ program: this.programId,
3937
+ ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY
3938
+ })
3939
+ .remainingAccounts(__spreadArray(__spreadArray(__spreadArray([], custodyAccountMetas, true), custodyOracleAccountMetas, true), markets, true))
3940
+ .instruction()];
3941
+ case 6:
3969
3942
  removeLiquidityTx = _e.sent();
3970
3943
  instructions.push(removeLiquidityTx);
3971
3944
  if (closeLpATA) {
@@ -3976,12 +3949,12 @@ var PerpetualsClient = (function () {
3976
3949
  closeWsolATAIns = (0, spl_token_1.createCloseAccountInstruction)(userReceivingTokenAccount, publicKey, publicKey);
3977
3950
  postInstructions.push(closeWsolATAIns);
3978
3951
  }
3979
- return [3, 11];
3980
- case 10:
3952
+ return [3, 8];
3953
+ case 7:
3981
3954
  err_5 = _e.sent();
3982
3955
  console.log("perpClient removeLiquidity error:: ", err_5);
3983
3956
  throw err_5;
3984
- case 11: return [2, {
3957
+ case 8: return [2, {
3985
3958
  instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
3986
3959
  additionalSigners: additionalSigners
3987
3960
  }];
@@ -4039,15 +4012,13 @@ var PerpetualsClient = (function () {
4039
4012
  additionalSigners = [];
4040
4013
  _a.label = 1;
4041
4014
  case 1:
4042
- _a.trys.push([1, 4, , 5]);
4015
+ _a.trys.push([1, 3, , 4]);
4043
4016
  nftTradingAccount = web3_js_1.PublicKey.findProgramAddressSync([
4044
4017
  Buffer.from("trading"),
4045
4018
  nftMint.toBuffer(),
4046
4019
  ], this.programId)[0];
4047
4020
  metadataAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("metadata"), constants_1.METAPLEX_PROGRAM_ID.toBuffer(), nftMint.toBuffer()], constants_1.METAPLEX_PROGRAM_ID)[0];
4048
- return [4, (0, spl_token_1.getAssociatedTokenAddress)(nftMint, owner, true)];
4049
- case 2:
4050
- nftTokenAccount = _a.sent();
4021
+ nftTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(nftMint, owner, true);
4051
4022
  return [4, this.program.methods
4052
4023
  .createTradingAccount({
4053
4024
  collectionIndex: 0
@@ -4063,15 +4034,15 @@ var PerpetualsClient = (function () {
4063
4034
  systemProgram: web3_js_1.SystemProgram.programId
4064
4035
  })
4065
4036
  .instruction()];
4066
- case 3:
4037
+ case 2:
4067
4038
  createNftTradingAccountInstruction = _a.sent();
4068
4039
  instructions.push(createNftTradingAccountInstruction);
4069
- return [3, 5];
4070
- case 4:
4040
+ return [3, 4];
4041
+ case 3:
4071
4042
  err_7 = _a.sent();
4072
4043
  console.log("perpClient createNftAccount error:: ", err_7);
4073
4044
  throw err_7;
4074
- case 5: return [2, {
4045
+ case 4: return [2, {
4075
4046
  instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
4076
4047
  additionalSigners: additionalSigners
4077
4048
  }];
@@ -4436,7 +4407,7 @@ var PerpetualsClient = (function () {
4436
4407
  });
4437
4408
  }); };
4438
4409
  this.unstakeInstant = function (rewardSymbol, unstakeAmount, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
4439
- var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyMint, rewardCustodyConfig, pool, feeDistributionTokenAccount, flpStakeAccount, unstakeInstantInstruction, err_14;
4410
+ var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyConfig, pool, flpStakeAccount, unstakeInstantInstruction, err_14;
4440
4411
  return __generator(this, function (_a) {
4441
4412
  switch (_a.label) {
4442
4413
  case 0:
@@ -4448,10 +4419,8 @@ var PerpetualsClient = (function () {
4448
4419
  _a.label = 1;
4449
4420
  case 1:
4450
4421
  _a.trys.push([1, 3, , 4]);
4451
- rewardCustodyMint = poolConfig.getTokenFromSymbol(rewardSymbol).mintKey;
4452
4422
  rewardCustodyConfig = poolConfig.custodies.find(function (i) { return i.mintKey.equals(poolConfig.getTokenFromSymbol(rewardSymbol).mintKey); });
4453
4423
  pool = poolConfig.poolAddress;
4454
- feeDistributionTokenAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("custody_token_account"), pool.toBuffer(), rewardCustodyMint.toBuffer()], this.programId)[0];
4455
4424
  flpStakeAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("stake"), publicKey.toBuffer(), pool.toBuffer()], this.programId)[0];
4456
4425
  return [4, this.program.methods
4457
4426
  .unstakeInstant({
@@ -4595,21 +4564,19 @@ var PerpetualsClient = (function () {
4595
4564
  additionalSigners = [];
4596
4565
  _b.label = 1;
4597
4566
  case 1:
4598
- _b.trys.push([1, 6, , 7]);
4567
+ _b.trys.push([1, 5, , 6]);
4599
4568
  lpTokenMint = poolConfig.stakedLpTokenMint;
4600
4569
  pool = poolConfig.poolAddress;
4601
4570
  poolStakedLpVault = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("staked_lp_token_account"), pool.toBuffer(), lpTokenMint.toBuffer()], this.program.programId)[0];
4602
4571
  flpStakeAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("stake"), publicKey.toBuffer(), pool.toBuffer()], this.program.programId)[0];
4603
- return [4, (0, spl_token_1.getAssociatedTokenAddress)(poolConfig.stakedLpTokenMint, publicKey, true)];
4604
- case 2:
4605
- userLpTokenAccount = _b.sent();
4572
+ userLpTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(poolConfig.stakedLpTokenMint, publicKey, true);
4606
4573
  _a = createUserLPTA;
4607
- if (!_a) return [3, 4];
4574
+ if (!_a) return [3, 3];
4608
4575
  return [4, (0, utils_1.checkIfAccountExists)(userLpTokenAccount, this.provider.connection)];
4609
- case 3:
4576
+ case 2:
4610
4577
  _a = !(_b.sent());
4611
- _b.label = 4;
4612
- case 4:
4578
+ _b.label = 3;
4579
+ case 3:
4613
4580
  if (_a) {
4614
4581
  preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, userLpTokenAccount, publicKey, poolConfig.stakedLpTokenMint));
4615
4582
  }
@@ -4632,15 +4599,15 @@ var PerpetualsClient = (function () {
4632
4599
  program: this.program.programId,
4633
4600
  })
4634
4601
  .instruction()];
4635
- case 5:
4602
+ case 4:
4636
4603
  withdrawStakeInstruction = _b.sent();
4637
4604
  instructions.push(withdrawStakeInstruction);
4638
- return [3, 7];
4639
- case 6:
4605
+ return [3, 6];
4606
+ case 5:
4640
4607
  err_17 = _b.sent();
4641
4608
  console.log("perpClient withdrawStake error:: ", err_17);
4642
4609
  throw err_17;
4643
- case 7: return [2, {
4610
+ case 6: return [2, {
4644
4611
  instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
4645
4612
  additionalSigners: additionalSigners
4646
4613
  }];
@@ -4788,10 +4755,8 @@ var PerpetualsClient = (function () {
4788
4755
  additionalSigners = [];
4789
4756
  _a.label = 1;
4790
4757
  case 1:
4791
- _a.trys.push([1, 4, , 5]);
4792
- return [4, (0, spl_token_1.getAssociatedTokenAddress)(rewardCustodyMint, publicKey, true)];
4793
- case 2:
4794
- fundingAccount = _a.sent();
4758
+ _a.trys.push([1, 3, , 4]);
4759
+ fundingAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(rewardCustodyMint, publicKey, true);
4795
4760
  rewardVault = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("reward_vault")], this.programFbnftReward.programId)[0];
4796
4761
  rewardTokenAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("reward_token_account")], this.programFbnftReward.programId)[0];
4797
4762
  return [4, this.programFbnftReward.methods
@@ -4806,15 +4771,15 @@ var PerpetualsClient = (function () {
4806
4771
  tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
4807
4772
  })
4808
4773
  .instruction()];
4809
- case 3:
4774
+ case 2:
4810
4775
  distributeReward = _a.sent();
4811
4776
  instructions.push(distributeReward);
4812
- return [3, 5];
4813
- case 4:
4777
+ return [3, 4];
4778
+ case 3:
4814
4779
  err_20 = _a.sent();
4815
4780
  console.log("perpClient distributeReward error:: ", err_20);
4816
4781
  throw err_20;
4817
- case 5: return [2, {
4782
+ case 4: return [2, {
4818
4783
  instructions: __spreadArray([], instructions, true),
4819
4784
  additionalSigners: additionalSigners
4820
4785
  }];
@@ -4834,21 +4799,17 @@ var PerpetualsClient = (function () {
4834
4799
  additionalSigners = [];
4835
4800
  _b.label = 1;
4836
4801
  case 1:
4837
- _b.trys.push([1, 7, , 8]);
4838
- return [4, (0, spl_token_1.getAssociatedTokenAddress)(nftMint, publicKey, true)];
4839
- case 2:
4840
- nftTokenAccount = _b.sent();
4802
+ _b.trys.push([1, 5, , 6]);
4803
+ nftTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(nftMint, publicKey, true);
4841
4804
  metadataAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("metadata"), constants_1.METAPLEX_PROGRAM_ID.toBuffer(), nftMint.toBuffer()], constants_1.METAPLEX_PROGRAM_ID)[0];
4842
- return [4, (0, spl_token_1.getAssociatedTokenAddress)(rewardCustodyMint, publicKey, true)];
4843
- case 3:
4844
- receivingTokenAccount = _b.sent();
4805
+ receivingTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(rewardCustodyMint, publicKey, true);
4845
4806
  _a = createUserATA;
4846
- if (!_a) return [3, 5];
4807
+ if (!_a) return [3, 3];
4847
4808
  return [4, (0, utils_1.checkIfAccountExists)(receivingTokenAccount, this.provider.connection)];
4848
- case 4:
4809
+ case 2:
4849
4810
  _a = !(_b.sent());
4850
- _b.label = 5;
4851
- case 5:
4811
+ _b.label = 3;
4812
+ case 3:
4852
4813
  if (_a) {
4853
4814
  instructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, receivingTokenAccount, publicKey, rewardCustodyMint));
4854
4815
  }
@@ -4873,14 +4834,14 @@ var PerpetualsClient = (function () {
4873
4834
  tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
4874
4835
  })
4875
4836
  .instruction()];
4876
- case 6:
4837
+ case 4:
4877
4838
  collectNftReward = _b.sent();
4878
4839
  instructions.push(collectNftReward);
4879
- return [3, 8];
4880
- case 7:
4840
+ return [3, 6];
4841
+ case 5:
4881
4842
  err_21 = _b.sent();
4882
4843
  throw err_21;
4883
- case 8: return [2, {
4844
+ case 6: return [2, {
4884
4845
  instructions: __spreadArray([], instructions, true),
4885
4846
  additionalSigners: additionalSigners
4886
4847
  }];
@@ -5035,12 +4996,10 @@ var PerpetualsClient = (function () {
5035
4996
  additionalSigners = [];
5036
4997
  _b.label = 1;
5037
4998
  case 1:
5038
- _b.trys.push([1, 9, , 10]);
5039
- if (!(collateralSymbol == 'SOL')) return [3, 3];
4999
+ _b.trys.push([1, 7, , 8]);
5000
+ if (!(collateralSymbol == 'SOL')) return [3, 2];
5040
5001
  console.log("collateralSymbol === SOL", collateralSymbol);
5041
- return [4, (0, spl_token_1.getMinimumBalanceForRentExemptAccount)(this.provider.connection)];
5042
- case 2:
5043
- lamports = (_b.sent());
5002
+ lamports = this.minimumBalanceForRentExemptAccountLamports;
5044
5003
  if (!ephemeralSignerPubkey) {
5045
5004
  wrappedSolAccount = new web3_js_1.Keypair();
5046
5005
  additionalSigners.push(wrappedSolAccount);
@@ -5058,22 +5017,21 @@ var PerpetualsClient = (function () {
5058
5017
  postInstructions = [
5059
5018
  (0, spl_token_1.createCloseAccountInstruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), positionAccount.owner, positionAccount.owner),
5060
5019
  ];
5061
- return [3, 7];
5062
- case 3: return [4, (0, spl_token_1.getAssociatedTokenAddress)(poolConfig.getTokenFromSymbol(collateralSymbol).mintKey, positionAccount.owner, true)];
5063
- case 4:
5064
- userReceivingTokenAccount = _b.sent();
5020
+ return [3, 5];
5021
+ case 2:
5022
+ userReceivingTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(poolConfig.getTokenFromSymbol(collateralSymbol).mintKey, positionAccount.owner, true);
5065
5023
  _a = createUserATA;
5066
- if (!_a) return [3, 6];
5024
+ if (!_a) return [3, 4];
5067
5025
  return [4, (0, utils_1.checkIfAccountExists)(userReceivingTokenAccount, this.provider.connection)];
5068
- case 5:
5026
+ case 3:
5069
5027
  _a = !(_b.sent());
5070
- _b.label = 6;
5071
- case 6:
5028
+ _b.label = 4;
5029
+ case 4:
5072
5030
  if (_a) {
5073
5031
  preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(payerPubkey, userReceivingTokenAccount, positionAccount.owner, poolConfig.getTokenFromSymbol(collateralSymbol).mintKey));
5074
5032
  }
5075
- _b.label = 7;
5076
- case 7: return [4, this.program.methods
5033
+ _b.label = 5;
5034
+ case 5: return [4, this.program.methods
5077
5035
  .forceClosePosition({
5078
5036
  privilege: types_1.Privilege.None,
5079
5037
  isStopLoss: isStopLoss
@@ -5097,19 +5055,19 @@ var PerpetualsClient = (function () {
5097
5055
  ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY
5098
5056
  })
5099
5057
  .instruction()];
5100
- case 8:
5058
+ case 6:
5101
5059
  forceClosePosition = _b.sent();
5102
5060
  instructions.push(forceClosePosition);
5103
5061
  if (collateralSymbol == 'WSOL' && closeUsersWSOLATA) {
5104
5062
  closeWsolATAIns = (0, spl_token_1.createCloseAccountInstruction)(userReceivingTokenAccount, positionAccount.owner, positionAccount.owner);
5105
5063
  postInstructions.push(closeWsolATAIns);
5106
5064
  }
5107
- return [3, 10];
5108
- case 9:
5065
+ return [3, 8];
5066
+ case 7:
5109
5067
  err_24 = _b.sent();
5110
5068
  console.log("perpClient forceClosePosition error:: ", err_24);
5111
5069
  throw err_24;
5112
- case 10: return [2, {
5070
+ case 8: return [2, {
5113
5071
  instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
5114
5072
  additionalSigners: additionalSigners
5115
5073
  }];
@@ -5269,7 +5227,6 @@ var PerpetualsClient = (function () {
5269
5227
  instructions = [];
5270
5228
  additionalSigners = [];
5271
5229
  custodyConfig = poolConfig.custodies.find(function (i) { return i.mintKey.equals(tokenMint); });
5272
- console.log("custodyConfig: ", custodyConfig);
5273
5230
  _g.label = 1;
5274
5231
  case 1:
5275
5232
  _g.trys.push([1, 4, , 5]);
@@ -5352,10 +5309,11 @@ var PerpetualsClient = (function () {
5352
5309
  }
5353
5310
  });
5354
5311
  }); };
5355
- this.addCompoundingLiquidity = function (amountIn, minCompoundingAmountOut, inTokenSymbol, rewardTokenMint, poolConfig, ephemeralSignerPubkey) {
5312
+ this.addCompoundingLiquidity = function (amountIn, minCompoundingAmountOut, inTokenSymbol, rewardTokenMint, poolConfig, skipBalanceChecks, ephemeralSignerPubkey) {
5313
+ if (skipBalanceChecks === void 0) { skipBalanceChecks = false; }
5356
5314
  if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
5357
5315
  return __awaiter(_this, void 0, void 0, function () {
5358
- var publicKey, preInstructions, instructions, additionalSigners, postInstructions, rewardCustody, inCustodyConfig, lpTokenMint, compoundingTokenMint, wrappedSolAccount, lpTokenAccount, compoundingTokenAccount, fundingAccount, custodyAccountMetas, custodyOracleAccountMetas, markets, _i, _a, custody, _b, _c, market, accCreationLamports, lamports, unWrappedSolBalance, _d, addCompoundingLiquidity, err_30;
5316
+ var publicKey, preInstructions, instructions, additionalSigners, postInstructions, rewardCustody, inCustodyConfig, lpTokenMint, compoundingTokenMint, wrappedSolAccount, lpTokenAccount, compoundingTokenAccount, fundingAccount, custodyAccountMetas, custodyOracleAccountMetas, markets, _i, _a, custody, _b, _c, market, lamports, unWrappedSolBalance, _d, addCompoundingLiquidity, err_30;
5359
5317
  return __generator(this, function (_e) {
5360
5318
  switch (_e.label) {
5361
5319
  case 0:
@@ -5368,15 +5326,9 @@ var PerpetualsClient = (function () {
5368
5326
  inCustodyConfig = poolConfig.custodies.find(function (i) { return i.mintKey.equals(poolConfig.getTokenFromSymbol(inTokenSymbol).mintKey); });
5369
5327
  lpTokenMint = poolConfig.stakedLpTokenMint;
5370
5328
  compoundingTokenMint = poolConfig.compoundingTokenMint;
5371
- return [4, (0, spl_token_1.getAssociatedTokenAddress)(poolConfig.stakedLpTokenMint, publicKey, true)];
5372
- case 1:
5373
- lpTokenAccount = _e.sent();
5374
- return [4, (0, spl_token_1.getAssociatedTokenAddress)(compoundingTokenMint, publicKey, true)];
5375
- case 2:
5376
- compoundingTokenAccount = _e.sent();
5377
- return [4, (0, spl_token_1.getAssociatedTokenAddress)(inCustodyConfig.mintKey, publicKey, true)];
5378
- case 3:
5379
- fundingAccount = _e.sent();
5329
+ lpTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(poolConfig.stakedLpTokenMint, publicKey, true);
5330
+ compoundingTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(compoundingTokenMint, publicKey, true);
5331
+ fundingAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(inCustodyConfig.mintKey, publicKey, true);
5380
5332
  custodyAccountMetas = [];
5381
5333
  custodyOracleAccountMetas = [];
5382
5334
  markets = [];
@@ -5402,29 +5354,28 @@ var PerpetualsClient = (function () {
5402
5354
  });
5403
5355
  }
5404
5356
  return [4, (0, utils_1.checkIfAccountExists)(lpTokenAccount, this.provider.connection)];
5405
- case 4:
5357
+ case 1:
5406
5358
  if (!(_e.sent())) {
5407
5359
  instructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, lpTokenAccount, publicKey, poolConfig.stakedLpTokenMint));
5408
5360
  }
5409
5361
  return [4, (0, utils_1.checkIfAccountExists)(compoundingTokenAccount, this.provider.connection)];
5410
- case 5:
5362
+ case 2:
5411
5363
  if (!(_e.sent())) {
5412
5364
  instructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, compoundingTokenAccount, publicKey, poolConfig.compoundingTokenMint));
5413
5365
  }
5414
- if (!(inTokenSymbol == 'SOL')) return [3, 8];
5366
+ if (!(inTokenSymbol == 'SOL')) return [3, 5];
5415
5367
  console.log("inTokenSymbol === SOL", inTokenSymbol);
5416
- return [4, (0, spl_token_1.getMinimumBalanceForRentExemptAccount)(this.provider.connection)];
5417
- case 6:
5418
- accCreationLamports = (_e.sent());
5419
- console.log("accCreationLamports:", accCreationLamports);
5420
- lamports = amountIn.add(new anchor_1.BN(accCreationLamports));
5368
+ lamports = amountIn.add(new anchor_1.BN(this.minimumBalanceForRentExemptAccountLamports));
5369
+ if (!!skipBalanceChecks) return [3, 4];
5421
5370
  _d = anchor_1.BN.bind;
5422
5371
  return [4, this.provider.connection.getBalance(publicKey)];
5423
- case 7:
5372
+ case 3:
5424
5373
  unWrappedSolBalance = new (_d.apply(anchor_1.BN, [void 0, _e.sent()]))();
5425
5374
  if (unWrappedSolBalance.lt(lamports)) {
5426
5375
  throw "Insufficient SOL Funds";
5427
5376
  }
5377
+ _e.label = 4;
5378
+ case 4:
5428
5379
  if (!ephemeralSignerPubkey) {
5429
5380
  wrappedSolAccount = new web3_js_1.Keypair();
5430
5381
  additionalSigners.push(wrappedSolAccount);
@@ -5442,15 +5393,17 @@ var PerpetualsClient = (function () {
5442
5393
  postInstructions = [
5443
5394
  (0, spl_token_1.createCloseAccountInstruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), publicKey, publicKey),
5444
5395
  ];
5445
- return [3, 10];
5446
- case 8: return [4, (0, utils_1.checkIfAccountExists)(fundingAccount, this.provider.connection)];
5447
- case 9:
5396
+ return [3, 7];
5397
+ case 5:
5398
+ if (!!skipBalanceChecks) return [3, 7];
5399
+ return [4, (0, utils_1.checkIfAccountExists)(fundingAccount, this.provider.connection)];
5400
+ case 6:
5448
5401
  if (!(_e.sent())) {
5449
5402
  throw "Insufficient Funds , token Account doesn't exist";
5450
5403
  }
5451
- _e.label = 10;
5452
- case 10:
5453
- _e.trys.push([10, 12, , 13]);
5404
+ _e.label = 7;
5405
+ case 7:
5406
+ _e.trys.push([7, 9, , 10]);
5454
5407
  return [4, this.program.methods
5455
5408
  .addCompoundingLiquidity({
5456
5409
  amountIn: amountIn,
@@ -5478,15 +5431,15 @@ var PerpetualsClient = (function () {
5478
5431
  })
5479
5432
  .remainingAccounts(__spreadArray(__spreadArray(__spreadArray([], custodyAccountMetas, true), custodyOracleAccountMetas, true), markets, true))
5480
5433
  .instruction()];
5481
- case 11:
5434
+ case 8:
5482
5435
  addCompoundingLiquidity = _e.sent();
5483
5436
  instructions.push(addCompoundingLiquidity);
5484
- return [3, 13];
5485
- case 12:
5437
+ return [3, 10];
5438
+ case 9:
5486
5439
  err_30 = _e.sent();
5487
5440
  console.log("perpClient addCompoundingLiquidity error:: ", err_30);
5488
- return [3, 13];
5489
- case 13: return [2, {
5441
+ return [3, 10];
5442
+ case 10: return [2, {
5490
5443
  instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
5491
5444
  additionalSigners: additionalSigners
5492
5445
  }];
@@ -5498,7 +5451,7 @@ var PerpetualsClient = (function () {
5498
5451
  if (createUserATA === void 0) { createUserATA = true; }
5499
5452
  if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
5500
5453
  return __awaiter(_this, void 0, void 0, function () {
5501
- var publicKey, userReceivingTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, rewardCustody, outCustodyConfig, lpTokenMint, compoundingTokenMint, lamports, _a, custodyAccountMetas, custodyOracleAccountMetas, markets, _i, _b, custody, _c, _d, market, compoundingTokenAccount, receivingAccount, removeCompoundingLiquidity, err_31;
5454
+ var publicKey, userReceivingTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, rewardCustody, outCustodyConfig, lpTokenMint, compoundingTokenMint, lamports, _a, custodyAccountMetas, custodyOracleAccountMetas, markets, _i, _b, custody, _c, _d, market, compoundingTokenAccount, removeCompoundingLiquidity, err_31;
5502
5455
  return __generator(this, function (_e) {
5503
5456
  switch (_e.label) {
5504
5457
  case 0:
@@ -5511,10 +5464,8 @@ var PerpetualsClient = (function () {
5511
5464
  outCustodyConfig = poolConfig.custodies.find(function (i) { return i.mintKey.equals(poolConfig.getTokenFromSymbol(outTokenSymbol).mintKey); });
5512
5465
  lpTokenMint = poolConfig.stakedLpTokenMint;
5513
5466
  compoundingTokenMint = poolConfig.compoundingTokenMint;
5514
- if (!(outCustodyConfig.symbol == 'SOL')) return [3, 2];
5515
- return [4, (0, spl_token_1.getMinimumBalanceForRentExemptAccount)(this.provider.connection)];
5516
- case 1:
5517
- lamports = (_e.sent());
5467
+ if (!(outCustodyConfig.symbol == 'SOL')) return [3, 1];
5468
+ lamports = this.minimumBalanceForRentExemptAccountLamports;
5518
5469
  if (!ephemeralSignerPubkey) {
5519
5470
  wrappedSolAccount = new web3_js_1.Keypair();
5520
5471
  additionalSigners.push(wrappedSolAccount);
@@ -5532,22 +5483,21 @@ var PerpetualsClient = (function () {
5532
5483
  postInstructions = [
5533
5484
  (0, spl_token_1.createCloseAccountInstruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), publicKey, publicKey),
5534
5485
  ];
5535
- return [3, 6];
5536
- case 2: return [4, (0, spl_token_1.getAssociatedTokenAddress)(outCustodyConfig.mintKey, publicKey, true)];
5537
- case 3:
5538
- userReceivingTokenAccount = _e.sent();
5486
+ return [3, 4];
5487
+ case 1:
5488
+ userReceivingTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(outCustodyConfig.mintKey, publicKey, true);
5539
5489
  _a = createUserATA;
5540
- if (!_a) return [3, 5];
5490
+ if (!_a) return [3, 3];
5541
5491
  return [4, (0, utils_1.checkIfAccountExists)(userReceivingTokenAccount, this.provider.connection)];
5542
- case 4:
5492
+ case 2:
5543
5493
  _a = !(_e.sent());
5544
- _e.label = 5;
5545
- case 5:
5494
+ _e.label = 3;
5495
+ case 3:
5546
5496
  if (_a) {
5547
5497
  preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, userReceivingTokenAccount, publicKey, outCustodyConfig.mintKey));
5548
5498
  }
5549
- _e.label = 6;
5550
- case 6:
5499
+ _e.label = 4;
5500
+ case 4:
5551
5501
  custodyAccountMetas = [];
5552
5502
  custodyOracleAccountMetas = [];
5553
5503
  markets = [];
@@ -5572,15 +5522,10 @@ var PerpetualsClient = (function () {
5572
5522
  isWritable: false,
5573
5523
  });
5574
5524
  }
5575
- return [4, (0, spl_token_1.getAssociatedTokenAddress)(compoundingTokenMint, publicKey, true)];
5576
- case 7:
5577
- compoundingTokenAccount = _e.sent();
5578
- return [4, (0, spl_token_1.getAssociatedTokenAddress)(outCustodyConfig.mintKey, publicKey, true)];
5579
- case 8:
5580
- receivingAccount = _e.sent();
5581
- _e.label = 9;
5582
- case 9:
5583
- _e.trys.push([9, 11, , 12]);
5525
+ compoundingTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(compoundingTokenMint, publicKey, true);
5526
+ _e.label = 5;
5527
+ case 5:
5528
+ _e.trys.push([5, 7, , 8]);
5584
5529
  return [4, this.program.methods
5585
5530
  .removeCompoundingLiquidity({
5586
5531
  compoundingAmountIn: compoundingAmountIn,
@@ -5608,15 +5553,15 @@ var PerpetualsClient = (function () {
5608
5553
  })
5609
5554
  .remainingAccounts(__spreadArray(__spreadArray(__spreadArray([], custodyAccountMetas, true), custodyOracleAccountMetas, true), markets, true))
5610
5555
  .instruction()];
5611
- case 10:
5556
+ case 6:
5612
5557
  removeCompoundingLiquidity = _e.sent();
5613
5558
  instructions.push(removeCompoundingLiquidity);
5614
- return [3, 12];
5615
- case 11:
5559
+ return [3, 8];
5560
+ case 7:
5616
5561
  err_31 = _e.sent();
5617
5562
  console.log("perpClient removeCompoundingLiquidity error:: ", err_31);
5618
- return [3, 12];
5619
- case 12: return [2, {
5563
+ return [3, 8];
5564
+ case 8: return [2, {
5620
5565
  instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
5621
5566
  additionalSigners: additionalSigners
5622
5567
  }];
@@ -5639,16 +5584,14 @@ var PerpetualsClient = (function () {
5639
5584
  rewardCustody = poolConfig.custodies.find(function (i) { return i.mintKey.equals(rewardTokenMint); });
5640
5585
  lpTokenMint = poolConfig.stakedLpTokenMint;
5641
5586
  compoundingTokenMint = poolConfig.compoundingTokenMint;
5642
- return [4, (0, spl_token_1.getAssociatedTokenAddress)(compoundingTokenMint, publicKey, true)];
5643
- case 1:
5644
- compoudingTokenAccount = _e.sent();
5587
+ compoudingTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(compoundingTokenMint, publicKey, true);
5645
5588
  _a = createUserATA;
5646
- if (!_a) return [3, 3];
5589
+ if (!_a) return [3, 2];
5647
5590
  return [4, (0, utils_1.checkIfAccountExists)(compoudingTokenAccount, this.provider.connection)];
5648
- case 2:
5591
+ case 1:
5649
5592
  _a = !(_e.sent());
5650
- _e.label = 3;
5651
- case 3:
5593
+ _e.label = 2;
5594
+ case 2:
5652
5595
  if (_a) {
5653
5596
  preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, compoudingTokenAccount, publicKey, compoundingTokenMint));
5654
5597
  }
@@ -5678,9 +5621,9 @@ var PerpetualsClient = (function () {
5678
5621
  isWritable: false,
5679
5622
  });
5680
5623
  }
5681
- _e.label = 4;
5682
- case 4:
5683
- _e.trys.push([4, 6, , 7]);
5624
+ _e.label = 3;
5625
+ case 3:
5626
+ _e.trys.push([3, 5, , 6]);
5684
5627
  return [4, this.program.methods
5685
5628
  .migrateStake({
5686
5629
  amount: amount
@@ -5705,15 +5648,15 @@ var PerpetualsClient = (function () {
5705
5648
  })
5706
5649
  .remainingAccounts(__spreadArray(__spreadArray(__spreadArray([], custodyAccountMetas, true), custodyOracleAccountMetas, true), markets, true))
5707
5650
  .instruction()];
5708
- case 5:
5651
+ case 4:
5709
5652
  migrateStake = _e.sent();
5710
5653
  instructions.push(migrateStake);
5711
- return [3, 7];
5712
- case 6:
5654
+ return [3, 6];
5655
+ case 5:
5713
5656
  err_32 = _e.sent();
5714
5657
  console.log("perpClient migrateStake error:: ", err_32);
5715
- return [3, 7];
5716
- case 7: return [2, {
5658
+ return [3, 6];
5659
+ case 6: return [2, {
5717
5660
  instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
5718
5661
  additionalSigners: additionalSigners
5719
5662
  }];
@@ -5734,9 +5677,7 @@ var PerpetualsClient = (function () {
5734
5677
  rewardCustody = poolConfig.custodies.find(function (i) { return i.mintKey.equals(rewardTokenMint); });
5735
5678
  lpTokenMint = poolConfig.stakedLpTokenMint;
5736
5679
  compoundingTokenMint = poolConfig.compoundingTokenMint;
5737
- return [4, (0, spl_token_1.getAssociatedTokenAddress)(compoundingTokenMint, publicKey, true)];
5738
- case 1:
5739
- compoudingTokenAccount = _d.sent();
5680
+ compoudingTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(compoundingTokenMint, publicKey, true);
5740
5681
  flpStakeAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("stake"), publicKey.toBuffer(), poolConfig.poolAddress.toBuffer()], this.programId)[0];
5741
5682
  poolStakedLpVault = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("staked_lp_token_account"), poolConfig.poolAddress.toBuffer(), lpTokenMint.toBuffer()], this.programId)[0];
5742
5683
  custodyAccountMetas = [];
@@ -5763,9 +5704,9 @@ var PerpetualsClient = (function () {
5763
5704
  isWritable: false,
5764
5705
  });
5765
5706
  }
5766
- _d.label = 2;
5767
- case 2:
5768
- _d.trys.push([2, 4, , 5]);
5707
+ _d.label = 1;
5708
+ case 1:
5709
+ _d.trys.push([1, 3, , 4]);
5769
5710
  return [4, this.program.methods
5770
5711
  .migrateFlp({
5771
5712
  compoundingTokenAmount: amount
@@ -5791,15 +5732,15 @@ var PerpetualsClient = (function () {
5791
5732
  })
5792
5733
  .remainingAccounts(__spreadArray(__spreadArray(__spreadArray([], custodyAccountMetas, true), custodyOracleAccountMetas, true), markets, true))
5793
5734
  .instruction()];
5794
- case 3:
5735
+ case 2:
5795
5736
  migrateFlp = _d.sent();
5796
5737
  instructions.push(migrateFlp);
5797
- return [3, 5];
5798
- case 4:
5738
+ return [3, 4];
5739
+ case 3:
5799
5740
  err_33 = _d.sent();
5800
5741
  console.log("perpClient migrateFlp error:: ", err_33);
5801
- return [3, 5];
5802
- case 5: return [2, {
5742
+ return [3, 4];
5743
+ case 4: return [2, {
5803
5744
  instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
5804
5745
  additionalSigners: additionalSigners
5805
5746
  }];
@@ -6016,10 +5957,8 @@ var PerpetualsClient = (function () {
6016
5957
  additionalSigners = [];
6017
5958
  _a.label = 1;
6018
5959
  case 1:
6019
- _a.trys.push([1, 4, , 5]);
6020
- return [4, (0, spl_token_1.getAssociatedTokenAddress)(rewardCustodyMint, publicKey, true)];
6021
- case 2:
6022
- fundingAccount = _a.sent();
5960
+ _a.trys.push([1, 3, , 4]);
5961
+ fundingAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(rewardCustodyMint, publicKey, true);
6023
5962
  rewardVault = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("reward_vault")], this.programRewardDistribution.programId)[0];
6024
5963
  rewardTokenAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("reward_token_account")], this.programRewardDistribution.programId)[0];
6025
5964
  rewardRecord = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("reward_record"), owner.toBuffer(), rewardVault.toBuffer(), counter.toArrayLike(Buffer, 'le', 8)], this.programRewardDistribution.programId)[0];
@@ -6042,15 +5981,15 @@ var PerpetualsClient = (function () {
6042
5981
  program: this.programRewardDistribution.programId
6043
5982
  })
6044
5983
  .instruction()];
6045
- case 3:
5984
+ case 2:
6046
5985
  distributeReward = _a.sent();
6047
5986
  instructions.push(distributeReward);
6048
- return [3, 5];
6049
- case 4:
5987
+ return [3, 4];
5988
+ case 3:
6050
5989
  err_38 = _a.sent();
6051
5990
  console.log("rewardDistribution distributeReward error:: ", err_38);
6052
5991
  throw err_38;
6053
- case 5: return [2, {
5992
+ case 4: return [2, {
6054
5993
  instructions: __spreadArray([], instructions, true),
6055
5994
  additionalSigners: additionalSigners
6056
5995
  }];
@@ -6070,17 +6009,15 @@ var PerpetualsClient = (function () {
6070
6009
  additionalSigners = [];
6071
6010
  _b.label = 1;
6072
6011
  case 1:
6073
- _b.trys.push([1, 6, , 7]);
6074
- return [4, (0, spl_token_1.getAssociatedTokenAddress)(rewardCustodyMint, publicKey, true)];
6075
- case 2:
6076
- receivingTokenAccount = _b.sent();
6012
+ _b.trys.push([1, 5, , 6]);
6013
+ receivingTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(rewardCustodyMint, publicKey, true);
6077
6014
  _a = createUserATA;
6078
- if (!_a) return [3, 4];
6015
+ if (!_a) return [3, 3];
6079
6016
  return [4, (0, utils_1.checkIfAccountExists)(receivingTokenAccount, this.provider.connection)];
6080
- case 3:
6017
+ case 2:
6081
6018
  _a = !(_b.sent());
6082
- _b.label = 4;
6083
- case 4:
6019
+ _b.label = 3;
6020
+ case 3:
6084
6021
  if (_a) {
6085
6022
  instructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, receivingTokenAccount, publicKey, rewardCustodyMint));
6086
6023
  }
@@ -6103,14 +6040,14 @@ var PerpetualsClient = (function () {
6103
6040
  program: this.programRewardDistribution.programId
6104
6041
  })
6105
6042
  .instruction()];
6106
- case 5:
6043
+ case 4:
6107
6044
  collectNftReward = _b.sent();
6108
6045
  instructions.push(collectNftReward);
6109
- return [3, 7];
6110
- case 6:
6046
+ return [3, 6];
6047
+ case 5:
6111
6048
  err_39 = _b.sent();
6112
6049
  throw err_39;
6113
- case 7: return [2, {
6050
+ case 6: return [2, {
6114
6051
  instructions: __spreadArray([], instructions, true),
6115
6052
  additionalSigners: additionalSigners
6116
6053
  }];
@@ -6132,6 +6069,7 @@ var PerpetualsClient = (function () {
6132
6069
  this.perpetuals = this.findProgramAddress("perpetuals");
6133
6070
  this.eventAuthority = this.findProgramAddress("__event_authority");
6134
6071
  this.eventAuthorityRewardDistribution = this.findProgramAddressFromProgramId("__event_authority", null, this.programRewardDistribution.programId);
6072
+ this.minimumBalanceForRentExemptAccountLamports = 2039280;
6135
6073
  this.prioritizationFee = (opts === null || opts === void 0 ? void 0 : opts.prioritizationFee) || 0;
6136
6074
  this.useExtOracleAccount = useExtOracleAccount;
6137
6075
  this.postSendTxCallback = opts === null || opts === void 0 ? void 0 : opts.postSendTxCallback;