flash-sdk 2.10.3 → 2.11.1

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.
@@ -196,6 +196,10 @@ var PerpetualsClient = (function () {
196
196
  return _this.findProgramAddress("lp_token_mint", [_this.getPoolKey(name)])
197
197
  .publicKey;
198
198
  };
199
+ this.getPoolCompoundingTokenKey = function (name) {
200
+ return _this.findProgramAddress("compounding_token_mint", [_this.getPoolKey(name)])
201
+ .publicKey;
202
+ };
199
203
  this.getCustodyKey = function (poolName, tokenMint) {
200
204
  return _this.findProgramAddress("custody", [
201
205
  _this.getPoolKey(poolName),
@@ -2364,6 +2368,77 @@ var PerpetualsClient = (function () {
2364
2368
  });
2365
2369
  });
2366
2370
  };
2371
+ this.swapFeeInternal = function (rewardTokenSymbol, swapTokenSymbol, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
2372
+ var rewardCustody, custody, publicKey, preInstructions, instructions, postInstructions, additionalSigners, custodyAccountMetas, custodyOracleAccountMetas, _i, _a, custody_1, params, inx, err_3;
2373
+ return __generator(this, function (_b) {
2374
+ switch (_b.label) {
2375
+ case 0:
2376
+ rewardCustody = poolConfig.custodies.find(function (i) { return i.mintKey.equals(poolConfig.getTokenFromSymbol(rewardTokenSymbol).mintKey); });
2377
+ if (!rewardCustody) {
2378
+ throw "rewardCustody not found";
2379
+ }
2380
+ custody = poolConfig.custodies.find(function (i) { return i.mintKey.equals(poolConfig.getTokenFromSymbol(swapTokenSymbol).mintKey); });
2381
+ if (!custody) {
2382
+ throw "custody not found";
2383
+ }
2384
+ publicKey = this.provider.wallet.publicKey;
2385
+ preInstructions = [];
2386
+ instructions = [];
2387
+ postInstructions = [];
2388
+ additionalSigners = [];
2389
+ _b.label = 1;
2390
+ case 1:
2391
+ _b.trys.push([1, 3, , 4]);
2392
+ custodyAccountMetas = [];
2393
+ custodyOracleAccountMetas = [];
2394
+ for (_i = 0, _a = poolConfig.custodies; _i < _a.length; _i++) {
2395
+ custody_1 = _a[_i];
2396
+ custodyAccountMetas.push({
2397
+ pubkey: custody_1.custodyAccount,
2398
+ isSigner: false,
2399
+ isWritable: false,
2400
+ });
2401
+ custodyOracleAccountMetas.push({
2402
+ pubkey: this.useExtOracleAccount ? custody_1.extOracleAccount : custody_1.intOracleAccount,
2403
+ isSigner: false,
2404
+ isWritable: false,
2405
+ });
2406
+ }
2407
+ params = {};
2408
+ return [4, this.program.methods
2409
+ .swapFeeInternal(params)
2410
+ .accounts({
2411
+ owner: publicKey,
2412
+ perpetuals: poolConfig.perpetuals,
2413
+ pool: poolConfig.poolAddress,
2414
+ rewardCustody: rewardCustody.custodyAccount,
2415
+ rewardCustodyOracleAccount: this.useExtOracleAccount ? rewardCustody.extOracleAccount : rewardCustody.intOracleAccount,
2416
+ rewardCustodyTokenAccount: rewardCustody.tokenAccount,
2417
+ custody: custody.custodyAccount,
2418
+ custodyOracleAccount: this.useExtOracleAccount ? custody.extOracleAccount : custody.intOracleAccount,
2419
+ custodyTokenAccount: custody.tokenAccount,
2420
+ eventAuthority: this.eventAuthority.publicKey,
2421
+ tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
2422
+ program: this.programId,
2423
+ ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY
2424
+ })
2425
+ .remainingAccounts(__spreadArray(__spreadArray([], custodyAccountMetas, true), custodyOracleAccountMetas, true))
2426
+ .instruction()];
2427
+ case 2:
2428
+ inx = _b.sent();
2429
+ instructions.push(inx);
2430
+ return [3, 4];
2431
+ case 3:
2432
+ err_3 = _b.sent();
2433
+ console.error("perpClient Swap error:: ", err_3);
2434
+ throw err_3;
2435
+ case 4: return [2, {
2436
+ instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
2437
+ additionalSigners: additionalSigners
2438
+ }];
2439
+ }
2440
+ });
2441
+ }); };
2367
2442
  this.addCollateral = function (collateralWithFee, targetSymbol, collateralSymbol, side, positionPubKey, poolConfig, skipBalanceChecks) {
2368
2443
  if (skipBalanceChecks === void 0) { skipBalanceChecks = false; }
2369
2444
  return __awaiter(_this, void 0, void 0, function () {
@@ -2931,7 +3006,7 @@ var PerpetualsClient = (function () {
2931
3006
  this.addLiquidity = function (payTokenSymbol, tokenAmountIn, minLpAmountOut, poolConfig, skipBalanceChecks) {
2932
3007
  if (skipBalanceChecks === void 0) { skipBalanceChecks = false; }
2933
3008
  return __awaiter(_this, void 0, void 0, function () {
2934
- 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_3;
3009
+ 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;
2935
3010
  return __generator(this, function (_f) {
2936
3011
  switch (_f.label) {
2937
3012
  case 0:
@@ -3054,9 +3129,9 @@ var PerpetualsClient = (function () {
3054
3129
  instructions.push(instruction);
3055
3130
  return [3, 13];
3056
3131
  case 12:
3057
- err_3 = _f.sent();
3058
- console.error("perpClient addLiquidity error:: ", err_3);
3059
- throw err_3;
3132
+ err_4 = _f.sent();
3133
+ console.error("perpClient addLiquidity error:: ", err_4);
3134
+ throw err_4;
3060
3135
  case 13: return [2, {
3061
3136
  instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
3062
3137
  additionalSigners: additionalSigners
@@ -3070,7 +3145,7 @@ var PerpetualsClient = (function () {
3070
3145
  if (createUserATA === void 0) { createUserATA = true; }
3071
3146
  if (closeUsersWSOLATA === void 0) { closeUsersWSOLATA = false; }
3072
3147
  return __awaiter(_this, void 0, void 0, function () {
3073
- var recieveTokenCustodyConfig, publicKey, userReceivingTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, lpTokenAccount, custodyAccountMetas, custodyOracleAccountMetas, markets, _i, _a, custody, _b, _c, market, lamports, _d, removeLiquidityTx, closeInx, closeWsolATAIns, err_4;
3148
+ var recieveTokenCustodyConfig, publicKey, userReceivingTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, lpTokenAccount, custodyAccountMetas, custodyOracleAccountMetas, markets, _i, _a, custody, _b, _c, market, lamports, _d, removeLiquidityTx, closeInx, closeWsolATAIns, err_5;
3074
3149
  return __generator(this, function (_e) {
3075
3150
  switch (_e.label) {
3076
3151
  case 0:
@@ -3186,9 +3261,9 @@ var PerpetualsClient = (function () {
3186
3261
  }
3187
3262
  return [3, 11];
3188
3263
  case 10:
3189
- err_4 = _e.sent();
3190
- console.log("perpClient removeLiquidity error:: ", err_4);
3191
- throw err_4;
3264
+ err_5 = _e.sent();
3265
+ console.log("perpClient removeLiquidity error:: ", err_5);
3266
+ throw err_5;
3192
3267
  case 11: return [2, {
3193
3268
  instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
3194
3269
  additionalSigners: additionalSigners
@@ -3198,7 +3273,7 @@ var PerpetualsClient = (function () {
3198
3273
  });
3199
3274
  };
3200
3275
  this.addReferral = function (nftTradingAccount, nftReferralAccount) { return __awaiter(_this, void 0, void 0, function () {
3201
- var publicKey, preInstructions, instructions, postInstructions, additionalSigners, addReferralInstruction, err_5;
3276
+ var publicKey, preInstructions, instructions, postInstructions, additionalSigners, addReferralInstruction, err_6;
3202
3277
  return __generator(this, function (_a) {
3203
3278
  switch (_a.label) {
3204
3279
  case 0:
@@ -3225,9 +3300,9 @@ var PerpetualsClient = (function () {
3225
3300
  instructions.push(addReferralInstruction);
3226
3301
  return [3, 4];
3227
3302
  case 3:
3228
- err_5 = _a.sent();
3229
- console.log("perpClient addReferral error:: ", err_5);
3230
- throw err_5;
3303
+ err_6 = _a.sent();
3304
+ console.log("perpClient addReferral error:: ", err_6);
3305
+ throw err_6;
3231
3306
  case 4: return [2, {
3232
3307
  instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
3233
3308
  additionalSigners: additionalSigners
@@ -3236,7 +3311,7 @@ var PerpetualsClient = (function () {
3236
3311
  });
3237
3312
  }); };
3238
3313
  this.createNftTradingAccount = function (nftMint, owner, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
3239
- var publicKey, preInstructions, instructions, postInstructions, additionalSigners, nftTradingAccount, metadataAccount, nftTokenAccount, createNftTradingAccountInstruction, err_6;
3314
+ var publicKey, preInstructions, instructions, postInstructions, additionalSigners, nftTradingAccount, metadataAccount, nftTokenAccount, createNftTradingAccountInstruction, err_7;
3240
3315
  return __generator(this, function (_a) {
3241
3316
  switch (_a.label) {
3242
3317
  case 0:
@@ -3276,9 +3351,9 @@ var PerpetualsClient = (function () {
3276
3351
  instructions.push(createNftTradingAccountInstruction);
3277
3352
  return [3, 5];
3278
3353
  case 4:
3279
- err_6 = _a.sent();
3280
- console.log("perpClient createNftAccount error:: ", err_6);
3281
- throw err_6;
3354
+ err_7 = _a.sent();
3355
+ console.log("perpClient createNftAccount error:: ", err_7);
3356
+ throw err_7;
3282
3357
  case 5: return [2, {
3283
3358
  instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
3284
3359
  additionalSigners: additionalSigners
@@ -3287,7 +3362,7 @@ var PerpetualsClient = (function () {
3287
3362
  });
3288
3363
  }); };
3289
3364
  this.updateNftAccount = function (nftMint, updateReferer, updateBooster, flpStakeAccounts) { return __awaiter(_this, void 0, void 0, function () {
3290
- var publicKey, preInstructions, instructions, postInstructions, additionalSigners, nftTradingAccount, nftReferralAccount, nftTokenAccount, flpStakeAccountMetas, _i, flpStakeAccounts_1, flpStakeAccountPk, updateNftTradingAccountInstruction, err_7;
3365
+ var publicKey, preInstructions, instructions, postInstructions, additionalSigners, nftTradingAccount, nftReferralAccount, nftTokenAccount, flpStakeAccountMetas, _i, flpStakeAccounts_1, flpStakeAccountPk, updateNftTradingAccountInstruction, err_8;
3291
3366
  return __generator(this, function (_a) {
3292
3367
  switch (_a.label) {
3293
3368
  case 0:
@@ -3337,9 +3412,9 @@ var PerpetualsClient = (function () {
3337
3412
  instructions.push(updateNftTradingAccountInstruction);
3338
3413
  return [3, 5];
3339
3414
  case 4:
3340
- err_7 = _a.sent();
3341
- console.log("perpClient updateNftAccount error:: ", err_7);
3342
- throw err_7;
3415
+ err_8 = _a.sent();
3416
+ console.log("perpClient updateNftAccount error:: ", err_8);
3417
+ throw err_8;
3343
3418
  case 5: return [2, {
3344
3419
  instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
3345
3420
  additionalSigners: additionalSigners
@@ -3348,7 +3423,7 @@ var PerpetualsClient = (function () {
3348
3423
  });
3349
3424
  }); };
3350
3425
  this.levelUp = function (poolConfig, nftMint, authorizationRulesAccount) { return __awaiter(_this, void 0, void 0, function () {
3351
- var publicKey, preInstructions, instructions, postInstructions, additionalSigners, nftTradingAccount, metadataAccount, levelUpInstruction, err_8;
3426
+ var publicKey, preInstructions, instructions, postInstructions, additionalSigners, nftTradingAccount, metadataAccount, levelUpInstruction, err_9;
3352
3427
  return __generator(this, function (_a) {
3353
3428
  switch (_a.label) {
3354
3429
  case 0:
@@ -3387,9 +3462,9 @@ var PerpetualsClient = (function () {
3387
3462
  instructions.push(levelUpInstruction);
3388
3463
  return [3, 4];
3389
3464
  case 3:
3390
- err_8 = _a.sent();
3391
- console.log("perpClient levelUp error:: ", err_8);
3392
- throw err_8;
3465
+ err_9 = _a.sent();
3466
+ console.log("perpClient levelUp error:: ", err_9);
3467
+ throw err_9;
3393
3468
  case 4: return [2, {
3394
3469
  instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
3395
3470
  additionalSigners: additionalSigners
@@ -3398,7 +3473,7 @@ var PerpetualsClient = (function () {
3398
3473
  });
3399
3474
  }); };
3400
3475
  this.initStake = function (stakingFeeShareBps, rewardSymbol, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
3401
- var publicKey, preInstructions, instructions, postInstructions, additionalSigners, lpTokenMint, stakedLpTokenAccount, rewardCustodyConfig, initStakeInstruction, err_9;
3476
+ var publicKey, preInstructions, instructions, postInstructions, additionalSigners, lpTokenMint, stakedLpTokenAccount, rewardCustodyConfig, initStakeInstruction, err_10;
3402
3477
  return __generator(this, function (_a) {
3403
3478
  switch (_a.label) {
3404
3479
  case 0:
@@ -3436,9 +3511,65 @@ var PerpetualsClient = (function () {
3436
3511
  instructions.push(initStakeInstruction);
3437
3512
  return [3, 4];
3438
3513
  case 3:
3439
- err_9 = _a.sent();
3440
- console.log("perpClient InitStaking error:: ", err_9);
3441
- throw err_9;
3514
+ err_10 = _a.sent();
3515
+ console.log("perpClient InitStaking error:: ", err_10);
3516
+ throw err_10;
3517
+ case 4: return [2, {
3518
+ instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
3519
+ additionalSigners: additionalSigners
3520
+ }];
3521
+ }
3522
+ });
3523
+ }); };
3524
+ this.initCompounding = function (feeShareBps, metadataTitle, metadataSymbol, metadataUri, rewardSymbol, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
3525
+ var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyConfig, compoundingTokenMint, compoundingVault, metadataAccount, initCompoundingInstruction, err_11;
3526
+ return __generator(this, function (_a) {
3527
+ switch (_a.label) {
3528
+ case 0:
3529
+ publicKey = this.provider.wallet.publicKey;
3530
+ preInstructions = [];
3531
+ instructions = [];
3532
+ postInstructions = [];
3533
+ additionalSigners = [];
3534
+ _a.label = 1;
3535
+ case 1:
3536
+ _a.trys.push([1, 3, , 4]);
3537
+ rewardCustodyConfig = poolConfig.custodies.find(function (i) { return i.mintKey.equals(poolConfig.getTokenFromSymbol(rewardSymbol).mintKey); });
3538
+ compoundingTokenMint = this.getPoolCompoundingTokenKey(poolConfig.poolName);
3539
+ compoundingVault = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("compounding_lp_token_account"), poolConfig.poolAddress.toBuffer(), compoundingTokenMint.toBuffer()], constants_1.METAPLEX_PROGRAM_ID)[0];
3540
+ metadataAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("metadata"), constants_1.METAPLEX_PROGRAM_ID.toBuffer(), compoundingTokenMint.toBuffer()], constants_1.METAPLEX_PROGRAM_ID)[0];
3541
+ return [4, this.program.methods
3542
+ .initCompounding({
3543
+ feeShareBps: feeShareBps,
3544
+ metadataTitle: metadataTitle,
3545
+ metadataSymbol: metadataSymbol,
3546
+ metadataUri: metadataUri
3547
+ })
3548
+ .accounts({
3549
+ admin: publicKey,
3550
+ multisig: this.multisig.publicKey,
3551
+ transferAuthority: poolConfig.transferAuthority,
3552
+ perpetuals: this.perpetuals.publicKey,
3553
+ pool: poolConfig.poolAddress,
3554
+ custody: rewardCustodyConfig.custodyAccount,
3555
+ lpTokenMint: poolConfig.lpTokenMint,
3556
+ compoundingVault: compoundingVault,
3557
+ compoundingTokenMint: compoundingTokenMint,
3558
+ metadataAccount: metadataAccount,
3559
+ systemProgram: web3_js_1.SystemProgram.programId,
3560
+ tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
3561
+ metadataProgram: constants_1.METAPLEX_PROGRAM_ID,
3562
+ rent: web3_js_1.SYSVAR_RENT_PUBKEY
3563
+ })
3564
+ .instruction()];
3565
+ case 2:
3566
+ initCompoundingInstruction = _a.sent();
3567
+ instructions.push(initCompoundingInstruction);
3568
+ return [3, 4];
3569
+ case 3:
3570
+ err_11 = _a.sent();
3571
+ console.log("perpClient initCompounding error:: ", err_11);
3572
+ throw err_11;
3442
3573
  case 4: return [2, {
3443
3574
  instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
3444
3575
  additionalSigners: additionalSigners
@@ -3447,7 +3578,7 @@ var PerpetualsClient = (function () {
3447
3578
  });
3448
3579
  }); };
3449
3580
  this.depositStake = function (owner, feePayer, depositAmount, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
3450
- var preInstructions, instructions, postInstructions, additionalSigners, lpTokenMint, poolFlpTokenAccount, flpStakeAccount, userLpTokenAccount, depositStakeInstruction, err_10;
3581
+ var preInstructions, instructions, postInstructions, additionalSigners, lpTokenMint, poolStakedFlpVault, flpStakeAccount, userLpTokenAccount, depositStakeInstruction, err_12;
3451
3582
  return __generator(this, function (_a) {
3452
3583
  switch (_a.label) {
3453
3584
  case 0:
@@ -3459,7 +3590,7 @@ var PerpetualsClient = (function () {
3459
3590
  case 1:
3460
3591
  _a.trys.push([1, 4, , 5]);
3461
3592
  lpTokenMint = poolConfig.lpTokenMint;
3462
- poolFlpTokenAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("staked_lp_token_account"), poolConfig.poolAddress.toBuffer(), lpTokenMint.toBuffer()], this.programId)[0];
3593
+ poolStakedFlpVault = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("staked_lp_token_account"), poolConfig.poolAddress.toBuffer(), lpTokenMint.toBuffer()], this.programId)[0];
3463
3594
  flpStakeAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("stake"), owner.toBuffer(), poolConfig.poolAddress.toBuffer()], this.programId)[0];
3464
3595
  return [4, (0, spl_token_1.getAssociatedTokenAddress)(poolConfig.lpTokenMint, owner)];
3465
3596
  case 2:
@@ -3476,7 +3607,7 @@ var PerpetualsClient = (function () {
3476
3607
  perpetuals: this.perpetuals.publicKey,
3477
3608
  pool: poolConfig.poolAddress,
3478
3609
  flpStakeAccount: flpStakeAccount,
3479
- poolFlpTokenAccount: poolFlpTokenAccount,
3610
+ poolStakedFlpVault: poolStakedFlpVault,
3480
3611
  systemProgram: web3_js_1.SystemProgram.programId,
3481
3612
  tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
3482
3613
  eventAuthority: this.eventAuthority.publicKey,
@@ -3487,9 +3618,9 @@ var PerpetualsClient = (function () {
3487
3618
  instructions.push(depositStakeInstruction);
3488
3619
  return [3, 5];
3489
3620
  case 4:
3490
- err_10 = _a.sent();
3491
- console.log("perpClient depositStaking error:: ", err_10);
3492
- throw err_10;
3621
+ err_12 = _a.sent();
3622
+ console.log("perpClient depositStaking error:: ", err_12);
3623
+ throw err_12;
3493
3624
  case 5: return [2, {
3494
3625
  instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
3495
3626
  additionalSigners: additionalSigners
@@ -3532,7 +3663,7 @@ var PerpetualsClient = (function () {
3532
3663
  });
3533
3664
  }); };
3534
3665
  this.refreshStake = function (rewardSymbol, poolConfig, flpStakeAccountPks) { return __awaiter(_this, void 0, void 0, function () {
3535
- var rewardCustodyMint, rewardCustodyConfig, pool, feeDistributionTokenAccount, custodyAccountMetas, _i, _a, custody, maxFlpStakeAccountPkLength, flpStakeAccountMetas, _b, flpStakeAccountPks_1, flpStakeAccountPk, refreshStakeInstruction, err_11;
3666
+ var rewardCustodyMint, rewardCustodyConfig, pool, feeDistributionTokenAccount, custodyAccountMetas, _i, _a, custody, maxFlpStakeAccountPkLength, flpStakeAccountMetas, _b, flpStakeAccountPks_1, flpStakeAccountPk, refreshStakeInstruction, err_13;
3536
3667
  return __generator(this, function (_c) {
3537
3668
  switch (_c.label) {
3538
3669
  case 0:
@@ -3577,15 +3708,15 @@ var PerpetualsClient = (function () {
3577
3708
  refreshStakeInstruction = _c.sent();
3578
3709
  return [2, refreshStakeInstruction];
3579
3710
  case 2:
3580
- err_11 = _c.sent();
3581
- console.log("perpClient refreshStaking error:: ", err_11);
3582
- throw err_11;
3711
+ err_13 = _c.sent();
3712
+ console.log("perpClient refreshStaking error:: ", err_13);
3713
+ throw err_13;
3583
3714
  case 3: return [2];
3584
3715
  }
3585
3716
  });
3586
3717
  }); };
3587
3718
  this.unstakeInstant = function (rewardSymbol, unstakeAmount, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
3588
- var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyMint, rewardCustodyConfig, pool, feeDistributionTokenAccount, lpTokenMint, flpStakeAccount, unstakeInstantInstruction, err_12;
3719
+ var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyMint, rewardCustodyConfig, pool, feeDistributionTokenAccount, lpTokenMint, flpStakeAccount, unstakeInstantInstruction, err_14;
3589
3720
  return __generator(this, function (_a) {
3590
3721
  switch (_a.label) {
3591
3722
  case 0:
@@ -3612,8 +3743,7 @@ var PerpetualsClient = (function () {
3612
3743
  perpetuals: this.perpetuals.publicKey,
3613
3744
  pool: pool,
3614
3745
  flpStakeAccount: flpStakeAccount,
3615
- rewardCustody: rewardCustodyConfig.custodyAccount,
3616
- feeDistributionTokenAccount: feeDistributionTokenAccount,
3746
+ rewardCustody: rewardCustodyConfig.custodyAccount
3617
3747
  })
3618
3748
  .instruction()];
3619
3749
  case 2:
@@ -3621,9 +3751,9 @@ var PerpetualsClient = (function () {
3621
3751
  instructions.push(unstakeInstantInstruction);
3622
3752
  return [3, 4];
3623
3753
  case 3:
3624
- err_12 = _a.sent();
3625
- console.log("perpClient unstakeInstant error:: ", err_12);
3626
- throw err_12;
3754
+ err_14 = _a.sent();
3755
+ console.log("perpClient unstakeInstant error:: ", err_14);
3756
+ throw err_14;
3627
3757
  case 4: return [2, {
3628
3758
  instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
3629
3759
  additionalSigners: additionalSigners
@@ -3632,7 +3762,7 @@ var PerpetualsClient = (function () {
3632
3762
  });
3633
3763
  }); };
3634
3764
  this.setFeeShareBps = function (poolConfig, flpStakeAccountPks) { return __awaiter(_this, void 0, void 0, function () {
3635
- var publicKey, pool, custodyAccountMetas, _i, _a, custody, maxFlpStakeAccountPkLength, flpStakeAccountMetas, _b, flpStakeAccountPks_2, flpStakeAccountPk, refreshStakeInstruction, err_13;
3765
+ var publicKey, pool, custodyAccountMetas, _i, _a, custody, maxFlpStakeAccountPkLength, flpStakeAccountMetas, _b, flpStakeAccountPks_2, flpStakeAccountPk, refreshStakeInstruction, err_15;
3636
3766
  return __generator(this, function (_c) {
3637
3767
  switch (_c.label) {
3638
3768
  case 0:
@@ -3676,15 +3806,15 @@ var PerpetualsClient = (function () {
3676
3806
  refreshStakeInstruction = _c.sent();
3677
3807
  return [2, refreshStakeInstruction];
3678
3808
  case 2:
3679
- err_13 = _c.sent();
3680
- console.log("perpClient refreshStaking error:: ", err_13);
3681
- throw err_13;
3809
+ err_15 = _c.sent();
3810
+ console.log("perpClient refreshStaking error:: ", err_15);
3811
+ throw err_15;
3682
3812
  case 3: return [2];
3683
3813
  }
3684
3814
  });
3685
3815
  }); };
3686
3816
  this.unstakeRequest = function (unstakeAmount, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
3687
- var publicKey, preInstructions, instructions, postInstructions, additionalSigners, pool, flpStakeAccount, unstakeRequestInstruction, err_14;
3817
+ var publicKey, preInstructions, instructions, postInstructions, additionalSigners, pool, flpStakeAccount, unstakeRequestInstruction, err_16;
3688
3818
  return __generator(this, function (_a) {
3689
3819
  switch (_a.label) {
3690
3820
  case 0:
@@ -3717,9 +3847,9 @@ var PerpetualsClient = (function () {
3717
3847
  instructions.push(unstakeRequestInstruction);
3718
3848
  return [3, 4];
3719
3849
  case 3:
3720
- err_14 = _a.sent();
3721
- console.log("perpClient unstakeRequest error:: ", err_14);
3722
- throw err_14;
3850
+ err_16 = _a.sent();
3851
+ console.log("perpClient unstakeRequest error:: ", err_16);
3852
+ throw err_16;
3723
3853
  case 4: return [2, {
3724
3854
  instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
3725
3855
  additionalSigners: additionalSigners
@@ -3732,7 +3862,7 @@ var PerpetualsClient = (function () {
3732
3862
  if (deactivated === void 0) { deactivated = true; }
3733
3863
  if (createUserLPTA === void 0) { createUserLPTA = true; }
3734
3864
  return __awaiter(_this, void 0, void 0, function () {
3735
- var publicKey, preInstructions, instructions, postInstructions, additionalSigners, lpTokenMint, pool, poolFlpTokenAccount, flpStakeAccount, userLpTokenAccount, _a, withdrawStakeInstruction, err_15;
3865
+ var publicKey, preInstructions, instructions, postInstructions, additionalSigners, lpTokenMint, pool, poolStakedFlpVault, flpStakeAccount, userLpTokenAccount, _a, withdrawStakeInstruction, err_17;
3736
3866
  return __generator(this, function (_b) {
3737
3867
  switch (_b.label) {
3738
3868
  case 0:
@@ -3746,7 +3876,7 @@ var PerpetualsClient = (function () {
3746
3876
  _b.trys.push([1, 6, , 7]);
3747
3877
  lpTokenMint = poolConfig.lpTokenMint;
3748
3878
  pool = poolConfig.poolAddress;
3749
- poolFlpTokenAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("staked_lp_token_account"), pool.toBuffer(), lpTokenMint.toBuffer()], this.program.programId)[0];
3879
+ poolStakedFlpVault = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("staked_lp_token_account"), pool.toBuffer(), lpTokenMint.toBuffer()], this.program.programId)[0];
3750
3880
  flpStakeAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("stake"), publicKey.toBuffer(), pool.toBuffer()], this.program.programId)[0];
3751
3881
  return [4, (0, spl_token_1.getAssociatedTokenAddress)(poolConfig.lpTokenMint, publicKey)];
3752
3882
  case 2:
@@ -3773,7 +3903,7 @@ var PerpetualsClient = (function () {
3773
3903
  perpetuals: this.perpetuals.publicKey,
3774
3904
  pool: pool,
3775
3905
  flpStakeAccount: flpStakeAccount,
3776
- poolFlpTokenAccount: poolFlpTokenAccount,
3906
+ poolStakedFlpVault: poolStakedFlpVault,
3777
3907
  systemProgram: web3_js_1.SystemProgram.programId,
3778
3908
  tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
3779
3909
  eventAuthority: this.eventAuthority.publicKey,
@@ -3784,9 +3914,9 @@ var PerpetualsClient = (function () {
3784
3914
  instructions.push(withdrawStakeInstruction);
3785
3915
  return [3, 7];
3786
3916
  case 6:
3787
- err_15 = _b.sent();
3788
- console.log("perpClient withdrawStake error:: ", err_15);
3789
- throw err_15;
3917
+ err_17 = _b.sent();
3918
+ console.log("perpClient withdrawStake error:: ", err_17);
3919
+ throw err_17;
3790
3920
  case 7: return [2, {
3791
3921
  instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
3792
3922
  additionalSigners: additionalSigners
@@ -3798,7 +3928,7 @@ var PerpetualsClient = (function () {
3798
3928
  this.collectStakeFees = function (rewardSymbol, poolConfig, nftTradingAccount, nftBoostingAccount, createUserATA) {
3799
3929
  if (createUserATA === void 0) { createUserATA = true; }
3800
3930
  return __awaiter(_this, void 0, void 0, function () {
3801
- var publicKey, rewardCustodyMint, rewardCustodyConfig, preInstructions, instructions, postInstructions, additionalSigners, pool, flpStakeAccount, receivingTokenAccount, _a, tradingAccount, boostingAccount, withdrawStakeInstruction, err_16;
3931
+ var publicKey, rewardCustodyMint, rewardCustodyConfig, preInstructions, instructions, postInstructions, additionalSigners, pool, flpStakeAccount, receivingTokenAccount, _a, tradingAccount, boostingAccount, withdrawStakeInstruction, err_18;
3802
3932
  return __generator(this, function (_b) {
3803
3933
  switch (_b.label) {
3804
3934
  case 0:
@@ -3865,9 +3995,9 @@ var PerpetualsClient = (function () {
3865
3995
  instructions.push(withdrawStakeInstruction);
3866
3996
  return [3, 6];
3867
3997
  case 5:
3868
- err_16 = _b.sent();
3869
- console.log("perpClient withdrawStake error:: ", err_16);
3870
- throw err_16;
3998
+ err_18 = _b.sent();
3999
+ console.log("perpClient withdrawStake error:: ", err_18);
4000
+ throw err_18;
3871
4001
  case 6: return [2, {
3872
4002
  instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
3873
4003
  additionalSigners: additionalSigners
@@ -3877,7 +4007,7 @@ var PerpetualsClient = (function () {
3877
4007
  });
3878
4008
  };
3879
4009
  this.initRewardVault = function (nftCount, rewardSymbol, collectionMint, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
3880
- var publicKey, rewardCustodyMint, instructions, additionalSigners, fbNftProgramData, rewardVault, rewardTokenAccount, nftTransferAuthority, initRewardVault, err_17;
4010
+ var publicKey, rewardCustodyMint, instructions, additionalSigners, fbNftProgramData, rewardVault, rewardTokenAccount, nftTransferAuthority, initRewardVault, err_19;
3881
4011
  return __generator(this, function (_a) {
3882
4012
  switch (_a.label) {
3883
4013
  case 0:
@@ -3914,9 +4044,9 @@ var PerpetualsClient = (function () {
3914
4044
  instructions.push(initRewardVault);
3915
4045
  return [3, 4];
3916
4046
  case 3:
3917
- err_17 = _a.sent();
3918
- console.log("perpClient InitRewardVault error:: ", err_17);
3919
- throw err_17;
4047
+ err_19 = _a.sent();
4048
+ console.log("perpClient InitRewardVault error:: ", err_19);
4049
+ throw err_19;
3920
4050
  case 4: return [2, {
3921
4051
  instructions: __spreadArray([], instructions, true),
3922
4052
  additionalSigners: additionalSigners
@@ -3925,7 +4055,7 @@ var PerpetualsClient = (function () {
3925
4055
  });
3926
4056
  }); };
3927
4057
  this.distributeReward = function (rewardAmount, rewardSymbol, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
3928
- var publicKey, rewardCustodyMint, instructions, additionalSigners, fundingAccount, rewardVault, rewardTokenAccount, distributeReward, err_18;
4058
+ var publicKey, rewardCustodyMint, instructions, additionalSigners, fundingAccount, rewardVault, rewardTokenAccount, distributeReward, err_20;
3929
4059
  return __generator(this, function (_a) {
3930
4060
  switch (_a.label) {
3931
4061
  case 0:
@@ -3958,9 +4088,9 @@ var PerpetualsClient = (function () {
3958
4088
  instructions.push(distributeReward);
3959
4089
  return [3, 5];
3960
4090
  case 4:
3961
- err_18 = _a.sent();
3962
- console.log("perpClient distributeReward error:: ", err_18);
3963
- throw err_18;
4091
+ err_20 = _a.sent();
4092
+ console.log("perpClient distributeReward error:: ", err_20);
4093
+ throw err_20;
3964
4094
  case 5: return [2, {
3965
4095
  instructions: __spreadArray([], instructions, true),
3966
4096
  additionalSigners: additionalSigners
@@ -3971,7 +4101,7 @@ var PerpetualsClient = (function () {
3971
4101
  this.collectNftReward = function (rewardSymbol, poolConfig, nftMint, createUserATA) {
3972
4102
  if (createUserATA === void 0) { createUserATA = true; }
3973
4103
  return __awaiter(_this, void 0, void 0, function () {
3974
- var publicKey, rewardCustodyMint, instructions, additionalSigners, nftTokenAccount, metadataAccount, receivingTokenAccount, _a, rewardRecord, rewardVault, rewardTokenAccount, nftTransferAuthority, collectNftReward, err_19;
4104
+ var publicKey, rewardCustodyMint, instructions, additionalSigners, nftTokenAccount, metadataAccount, receivingTokenAccount, _a, rewardRecord, rewardVault, rewardTokenAccount, nftTransferAuthority, collectNftReward, err_21;
3975
4105
  return __generator(this, function (_b) {
3976
4106
  switch (_b.label) {
3977
4107
  case 0:
@@ -4025,8 +4155,8 @@ var PerpetualsClient = (function () {
4025
4155
  instructions.push(collectNftReward);
4026
4156
  return [3, 8];
4027
4157
  case 7:
4028
- err_19 = _b.sent();
4029
- throw err_19;
4158
+ err_21 = _b.sent();
4159
+ throw err_21;
4030
4160
  case 8: return [2, {
4031
4161
  instructions: __spreadArray([], instructions, true),
4032
4162
  additionalSigners: additionalSigners
@@ -4038,7 +4168,7 @@ var PerpetualsClient = (function () {
4038
4168
  this.collectAndDistributeFee = function (rewardSymbol, poolConfig, createUserATA, nftTradingAccount) {
4039
4169
  if (createUserATA === void 0) { createUserATA = true; }
4040
4170
  return __awaiter(_this, void 0, void 0, function () {
4041
- var publicKey, rewardCustodyMint, rewardCustodyConfig, preInstructions, instructions, postInstructions, additionalSigners, pool, flpStakeAccount, receivingTokenAccount, _a, tradingAccount, rewardVault, rewardTokenAccount, withdrawStakeInstruction, err_20;
4171
+ var publicKey, rewardCustodyMint, rewardCustodyConfig, preInstructions, instructions, postInstructions, additionalSigners, pool, flpStakeAccount, receivingTokenAccount, _a, tradingAccount, rewardVault, rewardTokenAccount, withdrawStakeInstruction, err_22;
4042
4172
  return __generator(this, function (_b) {
4043
4173
  switch (_b.label) {
4044
4174
  case 0:
@@ -4102,9 +4232,9 @@ var PerpetualsClient = (function () {
4102
4232
  instructions.push(withdrawStakeInstruction);
4103
4233
  return [3, 6];
4104
4234
  case 5:
4105
- err_20 = _b.sent();
4106
- console.log("perpClient withdrawStake error:: ", err_20);
4107
- throw err_20;
4235
+ err_22 = _b.sent();
4236
+ console.log("perpClient withdrawStake error:: ", err_22);
4237
+ throw err_22;
4108
4238
  case 6: return [2, {
4109
4239
  instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
4110
4240
  additionalSigners: additionalSigners
@@ -4114,7 +4244,7 @@ var PerpetualsClient = (function () {
4114
4244
  });
4115
4245
  };
4116
4246
  this.setTriggerPrice = function (targetSymbol, collateralSymbol, side, triggerPrice, isStopLoss, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
4117
- var publicKey, targetCustodyConfig, collateralCustodyConfig, marketAccount, positionAccount, instructions, additionalSigners, setTriggerPrice, err_21;
4247
+ var publicKey, targetCustodyConfig, collateralCustodyConfig, marketAccount, positionAccount, instructions, additionalSigners, setTriggerPrice, err_23;
4118
4248
  return __generator(this, function (_a) {
4119
4249
  switch (_a.label) {
4120
4250
  case 0:
@@ -4153,9 +4283,9 @@ var PerpetualsClient = (function () {
4153
4283
  instructions.push(setTriggerPrice);
4154
4284
  return [3, 4];
4155
4285
  case 3:
4156
- err_21 = _a.sent();
4157
- console.log("perpClient setTriggerPrice error:: ", err_21);
4158
- throw err_21;
4286
+ err_23 = _a.sent();
4287
+ console.log("perpClient setTriggerPrice error:: ", err_23);
4288
+ throw err_23;
4159
4289
  case 4: return [2, {
4160
4290
  instructions: __spreadArray([], instructions, true),
4161
4291
  additionalSigners: additionalSigners
@@ -4167,7 +4297,7 @@ var PerpetualsClient = (function () {
4167
4297
  if (createUserATA === void 0) { createUserATA = true; }
4168
4298
  if (closeUsersWSOLATA === void 0) { closeUsersWSOLATA = false; }
4169
4299
  return __awaiter(_this, void 0, void 0, function () {
4170
- var payerPubkey, targetCustodyConfig, collateralCustodyConfig, marketAccount, userReceivingTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, lamports, _a, forceClosePosition, closeWsolATAIns, err_22;
4300
+ var payerPubkey, targetCustodyConfig, collateralCustodyConfig, marketAccount, userReceivingTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, lamports, _a, forceClosePosition, closeWsolATAIns, err_24;
4171
4301
  return __generator(this, function (_b) {
4172
4302
  switch (_b.label) {
4173
4303
  case 0:
@@ -4250,9 +4380,9 @@ var PerpetualsClient = (function () {
4250
4380
  }
4251
4381
  return [3, 10];
4252
4382
  case 9:
4253
- err_22 = _b.sent();
4254
- console.log("perpClient forceClosePosition error:: ", err_22);
4255
- throw err_22;
4383
+ err_24 = _b.sent();
4384
+ console.log("perpClient forceClosePosition error:: ", err_24);
4385
+ throw err_24;
4256
4386
  case 10: return [2, {
4257
4387
  instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
4258
4388
  additionalSigners: additionalSigners
@@ -4262,7 +4392,7 @@ var PerpetualsClient = (function () {
4262
4392
  });
4263
4393
  };
4264
4394
  this.getPositionData = function (position, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
4265
- var marketConfig, targetCustodyConfig, collateralCustodyConfig, getPositionData, err_23;
4395
+ var marketConfig, targetCustodyConfig, collateralCustodyConfig, getPositionData, err_25;
4266
4396
  return __generator(this, function (_a) {
4267
4397
  switch (_a.label) {
4268
4398
  case 0:
@@ -4291,15 +4421,15 @@ var PerpetualsClient = (function () {
4291
4421
  console.log(getPositionData);
4292
4422
  return [2, getPositionData];
4293
4423
  case 3:
4294
- err_23 = _a.sent();
4295
- console.log("perpClient setPool error:: ", err_23);
4296
- throw err_23;
4424
+ err_25 = _a.sent();
4425
+ console.log("perpClient setPool error:: ", err_25);
4426
+ throw err_25;
4297
4427
  case 4: return [2];
4298
4428
  }
4299
4429
  });
4300
4430
  }); };
4301
4431
  this.protocolWithdrawFees = function (rewardSymbol, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
4302
- var publicKey, custodyConfig, receivingTokenAccount, instructions, additionalSigners, withdrawFeesIx, err_24;
4432
+ var publicKey, custodyConfig, receivingTokenAccount, instructions, additionalSigners, withdrawFeesIx, err_26;
4303
4433
  return __generator(this, function (_a) {
4304
4434
  switch (_a.label) {
4305
4435
  case 0:
@@ -4332,9 +4462,9 @@ var PerpetualsClient = (function () {
4332
4462
  instructions.push(withdrawFeesIx);
4333
4463
  return [3, 5];
4334
4464
  case 4:
4335
- err_24 = _a.sent();
4336
- console.log("perpClient setPool error:: ", err_24);
4337
- throw err_24;
4465
+ err_26 = _a.sent();
4466
+ console.log("perpClient setPool error:: ", err_26);
4467
+ throw err_26;
4338
4468
  case 5: return [2, {
4339
4469
  instructions: __spreadArray([], instructions, true),
4340
4470
  additionalSigners: additionalSigners
@@ -4343,7 +4473,7 @@ var PerpetualsClient = (function () {
4343
4473
  });
4344
4474
  }); };
4345
4475
  this.setPermissions = function (permissions) { return __awaiter(_this, void 0, void 0, function () {
4346
- var publicKey, preInstructions, instructions, postInstructions, additionalSigners, setPermissionsInstruction, err_25;
4476
+ var publicKey, preInstructions, instructions, postInstructions, additionalSigners, setPermissionsInstruction, err_27;
4347
4477
  return __generator(this, function (_a) {
4348
4478
  switch (_a.label) {
4349
4479
  case 0:
@@ -4370,9 +4500,9 @@ var PerpetualsClient = (function () {
4370
4500
  instructions.push(setPermissionsInstruction);
4371
4501
  return [3, 4];
4372
4502
  case 3:
4373
- err_25 = _a.sent();
4374
- console.log("perpClient setPool error:: ", err_25);
4375
- throw err_25;
4503
+ err_27 = _a.sent();
4504
+ console.log("perpClient setPool error:: ", err_27);
4505
+ throw err_27;
4376
4506
  case 4: return [2, {
4377
4507
  instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
4378
4508
  additionalSigners: additionalSigners
@@ -4381,7 +4511,7 @@ var PerpetualsClient = (function () {
4381
4511
  });
4382
4512
  }); };
4383
4513
  this.reimburse = function (tokenMint, amountIn, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
4384
- var custodyAccountMetas, custodyOracleAccountMetas, markets, _i, _a, custody, _b, _c, market, instructions, additionalSigners, custodyConfig, reimburse, _d, _e, err_26;
4514
+ var custodyAccountMetas, custodyOracleAccountMetas, markets, _i, _a, custody, _b, _c, market, instructions, additionalSigners, custodyConfig, reimburse, _d, _e, err_28;
4385
4515
  var _f;
4386
4516
  return __generator(this, function (_g) {
4387
4517
  switch (_g.label) {
@@ -4442,9 +4572,9 @@ var PerpetualsClient = (function () {
4442
4572
  instructions.push(reimburse);
4443
4573
  return [3, 5];
4444
4574
  case 4:
4445
- err_26 = _g.sent();
4446
- console.log("perpClient setPool error:: ", err_26);
4447
- throw err_26;
4575
+ err_28 = _g.sent();
4576
+ console.log("perpClient setPool error:: ", err_28);
4577
+ throw err_28;
4448
4578
  case 5: return [2, {
4449
4579
  instructions: __spreadArray([], instructions, true),
4450
4580
  additionalSigners: additionalSigners
@@ -4453,7 +4583,7 @@ var PerpetualsClient = (function () {
4453
4583
  });
4454
4584
  }); };
4455
4585
  this.setInternalOraclePrice = function (tokenMint, price, expo, conf, ema, publishTime, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
4456
- var instructions, additionalSigners, custodyConfig, setInternalOraclePrice, err_27;
4586
+ var instructions, additionalSigners, custodyConfig, setInternalOraclePrice, err_29;
4457
4587
  return __generator(this, function (_a) {
4458
4588
  switch (_a.label) {
4459
4589
  case 0:
@@ -4486,9 +4616,259 @@ var PerpetualsClient = (function () {
4486
4616
  instructions.push(setInternalOraclePrice);
4487
4617
  return [3, 4];
4488
4618
  case 3:
4489
- err_27 = _a.sent();
4490
- console.log("perpClient setInternalOracleAccount error:: ", err_27);
4491
- throw err_27;
4619
+ err_29 = _a.sent();
4620
+ console.log("perpClient setInternalOracleAccount error:: ", err_29);
4621
+ throw err_29;
4622
+ case 4: return [2, {
4623
+ instructions: __spreadArray([], instructions, true),
4624
+ additionalSigners: additionalSigners
4625
+ }];
4626
+ }
4627
+ });
4628
+ }); };
4629
+ this.addCompoundingLiquidity = function (amountIn, minSflpAmountOut, inTokenSymbol, rewardTokenMint, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
4630
+ var publicKey, instructions, additionalSigners, rewardCustody, inCustodyConfig, lpTokenMint, sFlpTokenMint, sflpTokenAccount, fundingAccount, compoundingVault, addCompoundingLiquidity, err_30;
4631
+ return __generator(this, function (_a) {
4632
+ switch (_a.label) {
4633
+ case 0:
4634
+ publicKey = this.provider.wallet.publicKey;
4635
+ instructions = [];
4636
+ additionalSigners = [];
4637
+ rewardCustody = poolConfig.custodies.find(function (i) { return i.mintKey.equals(rewardTokenMint); });
4638
+ inCustodyConfig = poolConfig.custodies.find(function (i) { return i.mintKey.equals(poolConfig.getTokenFromSymbol(inTokenSymbol).mintKey); });
4639
+ lpTokenMint = poolConfig.lpTokenMint;
4640
+ sFlpTokenMint = poolConfig.sFlpTokenMint;
4641
+ return [4, (0, spl_token_1.getAssociatedTokenAddress)(sFlpTokenMint, publicKey)];
4642
+ case 1:
4643
+ sflpTokenAccount = _a.sent();
4644
+ return [4, (0, spl_token_1.getAssociatedTokenAddress)(inCustodyConfig.mintKey, publicKey)];
4645
+ case 2:
4646
+ fundingAccount = _a.sent();
4647
+ compoundingVault = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("compounding_lp_token_account"), poolConfig.poolAddress.toBuffer(), sFlpTokenMint.toBuffer()], constants_1.METAPLEX_PROGRAM_ID)[0];
4648
+ _a.label = 3;
4649
+ case 3:
4650
+ _a.trys.push([3, 5, , 6]);
4651
+ return [4, this.program.methods
4652
+ .addCompoundingLiquidity({
4653
+ amountIn: amountIn,
4654
+ minSflpAmountOut: minSflpAmountOut
4655
+ })
4656
+ .accounts({
4657
+ owner: publicKey,
4658
+ fundingAccount: fundingAccount,
4659
+ sflpTokenAccount: sflpTokenAccount,
4660
+ poolCompoundingFlpVault: compoundingVault,
4661
+ transferAuthority: poolConfig.transferAuthority,
4662
+ perpetuals: poolConfig.perpetuals,
4663
+ pool: poolConfig.poolAddress,
4664
+ inCustody: inCustodyConfig.custodyAccount,
4665
+ inCustodyOracleAccount: this.useExtOracleAccount ? inCustodyConfig.extOracleAccount : inCustodyConfig.intOracleAccount,
4666
+ inCustodyTokenAccount: inCustodyConfig.tokenAccount,
4667
+ rewardCustody: rewardCustody.custodyAccount,
4668
+ rewardCustodyOracleAccount: this.useExtOracleAccount ? rewardCustody.extOracleAccount : rewardCustody.intOracleAccount,
4669
+ lpTokenMint: lpTokenMint,
4670
+ sflpTokenMint: sFlpTokenMint,
4671
+ tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
4672
+ eventAuthority: this.eventAuthority.publicKey,
4673
+ program: this.program.programId,
4674
+ ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY
4675
+ })
4676
+ .instruction()];
4677
+ case 4:
4678
+ addCompoundingLiquidity = _a.sent();
4679
+ instructions.push(addCompoundingLiquidity);
4680
+ return [3, 6];
4681
+ case 5:
4682
+ err_30 = _a.sent();
4683
+ console.log("perpClient addCompoundingLiquidity error:: ", err_30);
4684
+ return [3, 6];
4685
+ case 6: return [2, {
4686
+ instructions: __spreadArray([], instructions, true),
4687
+ additionalSigners: additionalSigners
4688
+ }];
4689
+ }
4690
+ });
4691
+ }); };
4692
+ this.removeCompoundingLiquidity = function (sflpAmountIn, minAmountOut, outTokenSymbol, rewardTokenMint, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
4693
+ var publicKey, instructions, additionalSigners, rewardCustody, outCustodyConfig, lpTokenMint, sFlpTokenMint, sflpTokenAccount, receivingAccount, compoundingVault, removeCompoundingLiquidity, err_31;
4694
+ return __generator(this, function (_a) {
4695
+ switch (_a.label) {
4696
+ case 0:
4697
+ publicKey = this.provider.wallet.publicKey;
4698
+ instructions = [];
4699
+ additionalSigners = [];
4700
+ rewardCustody = poolConfig.custodies.find(function (i) { return i.mintKey.equals(rewardTokenMint); });
4701
+ outCustodyConfig = poolConfig.custodies.find(function (i) { return i.mintKey.equals(poolConfig.getTokenFromSymbol(outTokenSymbol).mintKey); });
4702
+ lpTokenMint = poolConfig.lpTokenMint;
4703
+ sFlpTokenMint = poolConfig.sFlpTokenMint;
4704
+ return [4, (0, spl_token_1.getAssociatedTokenAddress)(sFlpTokenMint, publicKey)];
4705
+ case 1:
4706
+ sflpTokenAccount = _a.sent();
4707
+ return [4, (0, spl_token_1.getAssociatedTokenAddress)(outCustodyConfig.mintKey, publicKey)];
4708
+ case 2:
4709
+ receivingAccount = _a.sent();
4710
+ compoundingVault = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("compounding_lp_token_account"), poolConfig.poolAddress.toBuffer(), sFlpTokenMint.toBuffer()], constants_1.METAPLEX_PROGRAM_ID)[0];
4711
+ _a.label = 3;
4712
+ case 3:
4713
+ _a.trys.push([3, 5, , 6]);
4714
+ return [4, this.program.methods
4715
+ .removeCompoundingLiquidity({
4716
+ sflpAmountIn: sflpAmountIn,
4717
+ minAmountOut: minAmountOut
4718
+ })
4719
+ .accounts({
4720
+ owner: publicKey,
4721
+ receivingAccount: receivingAccount,
4722
+ sflpTokenAccount: sflpTokenAccount,
4723
+ poolCompoundingFlpVault: compoundingVault,
4724
+ transferAuthority: poolConfig.transferAuthority,
4725
+ perpetuals: poolConfig.perpetuals,
4726
+ pool: poolConfig.poolAddress,
4727
+ outCustody: outCustodyConfig.custodyAccount,
4728
+ outCustodyOracleAccount: this.useExtOracleAccount ? outCustodyConfig.extOracleAccount : outCustodyConfig.intOracleAccount,
4729
+ outCustodyTokenAccount: outCustodyConfig.tokenAccount,
4730
+ rewardCustody: rewardCustody.custodyAccount,
4731
+ rewardCustodyOracleAccount: this.useExtOracleAccount ? rewardCustody.extOracleAccount : rewardCustody.intOracleAccount,
4732
+ lpTokenMint: lpTokenMint,
4733
+ sflpTokenMint: sFlpTokenMint,
4734
+ tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
4735
+ eventAuthority: this.eventAuthority.publicKey,
4736
+ program: this.program.programId,
4737
+ ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY
4738
+ })
4739
+ .instruction()];
4740
+ case 4:
4741
+ removeCompoundingLiquidity = _a.sent();
4742
+ instructions.push(removeCompoundingLiquidity);
4743
+ return [3, 6];
4744
+ case 5:
4745
+ err_31 = _a.sent();
4746
+ console.log("perpClient removeCompoundingLiquidity error:: ", err_31);
4747
+ return [3, 6];
4748
+ case 6: return [2, {
4749
+ instructions: __spreadArray([], instructions, true),
4750
+ additionalSigners: additionalSigners
4751
+ }];
4752
+ }
4753
+ });
4754
+ }); };
4755
+ this.migrateStake = function (amount, rewardTokenMint, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
4756
+ var publicKey, instructions, additionalSigners, rewardCustody, lpTokenMint, sFlpTokenMint, sflpTokenAccount, flpStakeAccount, compoundingVault, poolStakedFlpVault, migrateStake, err_32;
4757
+ return __generator(this, function (_a) {
4758
+ switch (_a.label) {
4759
+ case 0:
4760
+ publicKey = this.provider.wallet.publicKey;
4761
+ instructions = [];
4762
+ additionalSigners = [];
4763
+ rewardCustody = poolConfig.custodies.find(function (i) { return i.mintKey.equals(rewardTokenMint); });
4764
+ lpTokenMint = poolConfig.lpTokenMint;
4765
+ sFlpTokenMint = poolConfig.sFlpTokenMint;
4766
+ return [4, (0, spl_token_1.getAssociatedTokenAddress)(sFlpTokenMint, publicKey)];
4767
+ case 1:
4768
+ sflpTokenAccount = _a.sent();
4769
+ flpStakeAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("stake"), publicKey.toBuffer(), poolConfig.poolAddress.toBuffer()], this.programId)[0];
4770
+ compoundingVault = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("compounding_lp_token_account"), poolConfig.poolAddress.toBuffer(), sFlpTokenMint.toBuffer()], constants_1.METAPLEX_PROGRAM_ID)[0];
4771
+ poolStakedFlpVault = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("staked_lp_token_account"), poolConfig.poolAddress.toBuffer(), lpTokenMint.toBuffer()], this.programId)[0];
4772
+ _a.label = 2;
4773
+ case 2:
4774
+ _a.trys.push([2, 4, , 5]);
4775
+ return [4, this.program.methods
4776
+ .migrateStake({
4777
+ amount: amount
4778
+ })
4779
+ .accounts({
4780
+ owner: publicKey,
4781
+ sflpTokenAccount: sflpTokenAccount,
4782
+ transferAuthority: poolConfig.transferAuthority,
4783
+ perpetuals: poolConfig.perpetuals,
4784
+ pool: poolConfig.poolAddress,
4785
+ flpStakeAccount: flpStakeAccount,
4786
+ rewardCustody: rewardCustody.custodyAccount,
4787
+ poolStakedFlpVault: poolStakedFlpVault,
4788
+ poolCompoundingFlpVault: compoundingVault,
4789
+ sflpTokenMint: sFlpTokenMint,
4790
+ tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
4791
+ })
4792
+ .instruction()];
4793
+ case 3:
4794
+ migrateStake = _a.sent();
4795
+ instructions.push(migrateStake);
4796
+ return [3, 5];
4797
+ case 4:
4798
+ err_32 = _a.sent();
4799
+ console.log("perpClient migrateStake error:: ", err_32);
4800
+ return [3, 5];
4801
+ case 5: return [2, {
4802
+ instructions: __spreadArray([], instructions, true),
4803
+ additionalSigners: additionalSigners
4804
+ }];
4805
+ }
4806
+ });
4807
+ }); };
4808
+ this.compoundingFee = function (rewardTokenMint, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
4809
+ var publicKey, instructions, additionalSigners, rewardCustody, lpTokenMint, sFlpTokenMint, compoundingVault, custodyAccountMetas, custodyOracleAccountMetas, markets, _i, _a, custody, _b, _c, market, compoundingFee, err_33;
4810
+ return __generator(this, function (_d) {
4811
+ switch (_d.label) {
4812
+ case 0:
4813
+ publicKey = this.provider.wallet.publicKey;
4814
+ instructions = [];
4815
+ additionalSigners = [];
4816
+ rewardCustody = poolConfig.custodies.find(function (i) { return i.mintKey.equals(rewardTokenMint); });
4817
+ lpTokenMint = poolConfig.lpTokenMint;
4818
+ sFlpTokenMint = poolConfig.sFlpTokenMint;
4819
+ compoundingVault = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("compounding_lp_token_account"), poolConfig.poolAddress.toBuffer(), sFlpTokenMint.toBuffer()], constants_1.METAPLEX_PROGRAM_ID)[0];
4820
+ custodyAccountMetas = [];
4821
+ custodyOracleAccountMetas = [];
4822
+ markets = [];
4823
+ for (_i = 0, _a = poolConfig.custodies; _i < _a.length; _i++) {
4824
+ custody = _a[_i];
4825
+ custodyAccountMetas.push({
4826
+ pubkey: custody.custodyAccount,
4827
+ isSigner: false,
4828
+ isWritable: false,
4829
+ });
4830
+ custodyOracleAccountMetas.push({
4831
+ pubkey: this.useExtOracleAccount ? custody.extOracleAccount : custody.intOracleAccount,
4832
+ isSigner: false,
4833
+ isWritable: false,
4834
+ });
4835
+ }
4836
+ for (_b = 0, _c = poolConfig.markets; _b < _c.length; _b++) {
4837
+ market = _c[_b];
4838
+ markets.push({
4839
+ pubkey: market.marketAccount,
4840
+ isSigner: false,
4841
+ isWritable: false,
4842
+ });
4843
+ }
4844
+ _d.label = 1;
4845
+ case 1:
4846
+ _d.trys.push([1, 3, , 4]);
4847
+ return [4, this.program.methods
4848
+ .compoundFees({})
4849
+ .accounts({
4850
+ poolCompoundingFlpVault: compoundingVault,
4851
+ transferAuthority: poolConfig.transferAuthority,
4852
+ perpetuals: poolConfig.perpetuals,
4853
+ pool: poolConfig.poolAddress,
4854
+ rewardCustody: rewardCustody.custodyAccount,
4855
+ rewardCustodyOracleAccount: this.useExtOracleAccount ? rewardCustody.extOracleAccount : rewardCustody.intOracleAccount,
4856
+ lpTokenMint: lpTokenMint,
4857
+ tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
4858
+ eventAuthority: this.eventAuthority.publicKey,
4859
+ program: this.program.programId,
4860
+ ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY
4861
+ })
4862
+ .remainingAccounts(__spreadArray(__spreadArray(__spreadArray([], custodyAccountMetas, true), custodyOracleAccountMetas, true), markets, true))
4863
+ .instruction()];
4864
+ case 2:
4865
+ compoundingFee = _d.sent();
4866
+ instructions.push(compoundingFee);
4867
+ return [3, 4];
4868
+ case 3:
4869
+ err_33 = _d.sent();
4870
+ console.log("perpClient compoundingFee error:: ", err_33);
4871
+ return [3, 4];
4492
4872
  case 4: return [2, {
4493
4873
  instructions: __spreadArray([], instructions, true),
4494
4874
  additionalSigners: additionalSigners
@@ -4497,7 +4877,7 @@ var PerpetualsClient = (function () {
4497
4877
  });
4498
4878
  }); };
4499
4879
  this.initRewardDistribution = function (rewardSymbol, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
4500
- var publicKey, rewardMint, instructions, additionalSigners, fbNftProgramData, rewardVault, rewardTokenAccount, transferAuthority, initRewardVault, err_28;
4880
+ var publicKey, rewardMint, instructions, additionalSigners, fbNftProgramData, rewardVault, rewardTokenAccount, transferAuthority, initRewardVault, err_34;
4501
4881
  return __generator(this, function (_a) {
4502
4882
  switch (_a.label) {
4503
4883
  case 0:
@@ -4531,9 +4911,9 @@ var PerpetualsClient = (function () {
4531
4911
  instructions.push(initRewardVault);
4532
4912
  return [3, 4];
4533
4913
  case 3:
4534
- err_28 = _a.sent();
4535
- console.log("rewardDistribution InitRewardVault error:: ", err_28);
4536
- throw err_28;
4914
+ err_34 = _a.sent();
4915
+ console.log("rewardDistribution InitRewardVault error:: ", err_34);
4916
+ throw err_34;
4537
4917
  case 4: return [2, {
4538
4918
  instructions: __spreadArray([], instructions, true),
4539
4919
  additionalSigners: additionalSigners
@@ -4542,7 +4922,7 @@ var PerpetualsClient = (function () {
4542
4922
  });
4543
4923
  }); };
4544
4924
  this.rewardDistribution = function (counter, owner, rewardAmount, rewardSymbol, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
4545
- var publicKey, rewardCustodyMint, instructions, additionalSigners, fundingAccount, rewardVault, rewardTokenAccount, rewardRecord, distributeReward, err_29;
4925
+ var publicKey, rewardCustodyMint, instructions, additionalSigners, fundingAccount, rewardVault, rewardTokenAccount, rewardRecord, distributeReward, err_35;
4546
4926
  return __generator(this, function (_a) {
4547
4927
  switch (_a.label) {
4548
4928
  case 0:
@@ -4583,9 +4963,9 @@ var PerpetualsClient = (function () {
4583
4963
  instructions.push(distributeReward);
4584
4964
  return [3, 5];
4585
4965
  case 4:
4586
- err_29 = _a.sent();
4587
- console.log("rewardDistribution distributeReward error:: ", err_29);
4588
- throw err_29;
4966
+ err_35 = _a.sent();
4967
+ console.log("rewardDistribution distributeReward error:: ", err_35);
4968
+ throw err_35;
4589
4969
  case 5: return [2, {
4590
4970
  instructions: __spreadArray([], instructions, true),
4591
4971
  additionalSigners: additionalSigners
@@ -4596,7 +4976,7 @@ var PerpetualsClient = (function () {
4596
4976
  this.collectReward = function (counter, owner, rewardSymbol, poolConfig, createUserATA) {
4597
4977
  if (createUserATA === void 0) { createUserATA = true; }
4598
4978
  return __awaiter(_this, void 0, void 0, function () {
4599
- var publicKey, rewardCustodyMint, instructions, additionalSigners, receivingTokenAccount, _a, rewardVault, rewardTokenAccount, rewardRecord, transferAuthority, collectNftReward, err_30;
4979
+ var publicKey, rewardCustodyMint, instructions, additionalSigners, receivingTokenAccount, _a, rewardVault, rewardTokenAccount, rewardRecord, transferAuthority, collectNftReward, err_36;
4600
4980
  return __generator(this, function (_b) {
4601
4981
  switch (_b.label) {
4602
4982
  case 0:
@@ -4644,8 +5024,8 @@ var PerpetualsClient = (function () {
4644
5024
  instructions.push(collectNftReward);
4645
5025
  return [3, 7];
4646
5026
  case 6:
4647
- err_30 = _b.sent();
4648
- throw err_30;
5027
+ err_36 = _b.sent();
5028
+ throw err_36;
4649
5029
  case 7: return [2, {
4650
5030
  instructions: __spreadArray([], instructions, true),
4651
5031
  additionalSigners: additionalSigners