flash-sdk 11.4.9-alpha.0 → 11.4.11-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/PerpetualsClient.js +491 -704
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
package/dist/PerpetualsClient.js
CHANGED
|
@@ -2707,58 +2707,47 @@ var PerpetualsClient = (function () {
|
|
|
2707
2707
|
args_1[_i - 6] = arguments[_i];
|
|
2708
2708
|
}
|
|
2709
2709
|
return __awaiter(_this, __spreadArray([marketSymbol_1, collateralSymbol_1, priceWithSlippage_1, side_1, poolConfig_1, privilege_1], args_1, true), void 0, function (marketSymbol, collateralSymbol, priceWithSlippage, side, poolConfig, privilege, tokenStakeAccount, userReferralAccount, createUserATA, closeUsersWSOLATA, ephemeralSignerPubkey, userPublicKey) {
|
|
2710
|
-
var publicKey, userReceivingTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, lamports,
|
|
2710
|
+
var publicKey, userReceivingTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, lamports, collateralCustodyConfig, targetCustodyConfig, marketAccount, positionAccount, instruction, closeWsolATAIns, error_1;
|
|
2711
2711
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
2712
2712
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
2713
2713
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
2714
2714
|
if (closeUsersWSOLATA === void 0) { closeUsersWSOLATA = false; }
|
|
2715
2715
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
2716
|
-
return __generator(this, function (
|
|
2717
|
-
switch (
|
|
2716
|
+
return __generator(this, function (_a) {
|
|
2717
|
+
switch (_a.label) {
|
|
2718
2718
|
case 0:
|
|
2719
|
-
console.log("close position :::", marketSymbol, poolConfig.getTokenFromSymbol(marketSymbol).mintKey.toBase58());
|
|
2720
2719
|
publicKey = userPublicKey !== null && userPublicKey !== void 0 ? userPublicKey : this.provider.wallet.publicKey;
|
|
2721
2720
|
preInstructions = [];
|
|
2722
2721
|
instructions = [];
|
|
2723
2722
|
postInstructions = [];
|
|
2724
2723
|
additionalSigners = [];
|
|
2725
|
-
|
|
2724
|
+
_a.label = 1;
|
|
2726
2725
|
case 1:
|
|
2727
|
-
|
|
2728
|
-
if (
|
|
2729
|
-
|
|
2730
|
-
|
|
2731
|
-
|
|
2732
|
-
|
|
2726
|
+
_a.trys.push([1, 3, , 4]);
|
|
2727
|
+
if (collateralSymbol == 'SOL') {
|
|
2728
|
+
lamports = (this.minimumBalanceForRentExemptAccountLamports);
|
|
2729
|
+
if (!ephemeralSignerPubkey) {
|
|
2730
|
+
wrappedSolAccount = new web3_js_1.Keypair();
|
|
2731
|
+
additionalSigners.push(wrappedSolAccount);
|
|
2732
|
+
}
|
|
2733
|
+
preInstructions = [
|
|
2734
|
+
web3_js_1.SystemProgram.createAccount({
|
|
2735
|
+
fromPubkey: publicKey,
|
|
2736
|
+
newAccountPubkey: (ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey),
|
|
2737
|
+
lamports: lamports,
|
|
2738
|
+
space: 165,
|
|
2739
|
+
programId: spl_token_1.TOKEN_PROGRAM_ID,
|
|
2740
|
+
}),
|
|
2741
|
+
(0, spl_token_1.createInitializeAccount3Instruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), spl_token_1.NATIVE_MINT, publicKey),
|
|
2742
|
+
];
|
|
2743
|
+
postInstructions = [
|
|
2744
|
+
(0, spl_token_1.createCloseAccountInstruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), publicKey, publicKey),
|
|
2745
|
+
];
|
|
2733
2746
|
}
|
|
2734
|
-
|
|
2735
|
-
|
|
2736
|
-
|
|
2737
|
-
newAccountPubkey: (ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey),
|
|
2738
|
-
lamports: lamports,
|
|
2739
|
-
space: 165,
|
|
2740
|
-
programId: spl_token_1.TOKEN_PROGRAM_ID,
|
|
2741
|
-
}),
|
|
2742
|
-
(0, spl_token_1.createInitializeAccount3Instruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), spl_token_1.NATIVE_MINT, publicKey),
|
|
2743
|
-
];
|
|
2744
|
-
postInstructions = [
|
|
2745
|
-
(0, spl_token_1.createCloseAccountInstruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), publicKey, publicKey),
|
|
2746
|
-
];
|
|
2747
|
-
return [3, 5];
|
|
2748
|
-
case 2:
|
|
2749
|
-
userReceivingTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(poolConfig.getTokenFromSymbol(collateralSymbol).mintKey, publicKey, true, poolConfig.getTokenFromSymbol(collateralSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID);
|
|
2750
|
-
_a = createUserATA;
|
|
2751
|
-
if (!_a) return [3, 4];
|
|
2752
|
-
return [4, (0, utils_1.checkIfAccountExists)(userReceivingTokenAccount, this.provider.connection)];
|
|
2753
|
-
case 3:
|
|
2754
|
-
_a = !(_b.sent());
|
|
2755
|
-
_b.label = 4;
|
|
2756
|
-
case 4:
|
|
2757
|
-
if (_a) {
|
|
2758
|
-
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, userReceivingTokenAccount, publicKey, poolConfig.getTokenFromSymbol(collateralSymbol).mintKey, poolConfig.getTokenFromSymbol(collateralSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID));
|
|
2747
|
+
else {
|
|
2748
|
+
userReceivingTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(poolConfig.getTokenFromSymbol(collateralSymbol).mintKey, publicKey, true, poolConfig.getTokenFromSymbol(collateralSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID);
|
|
2749
|
+
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(publicKey, userReceivingTokenAccount, publicKey, poolConfig.getTokenFromSymbol(collateralSymbol).mintKey, poolConfig.getTokenFromSymbol(collateralSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID));
|
|
2759
2750
|
}
|
|
2760
|
-
_b.label = 5;
|
|
2761
|
-
case 5:
|
|
2762
2751
|
collateralCustodyConfig = poolConfig.custodies.find(function (i) { return i.mintKey.equals(poolConfig.getTokenFromSymbol(collateralSymbol).mintKey); });
|
|
2763
2752
|
targetCustodyConfig = poolConfig.custodies.find(function (i) { return i.mintKey.equals(poolConfig.getTokenFromSymbol(marketSymbol).mintKey); });
|
|
2764
2753
|
marketAccount = poolConfig.getMarketPk(targetCustodyConfig.custodyAccount, collateralCustodyConfig.custodyAccount, side);
|
|
@@ -2790,19 +2779,19 @@ var PerpetualsClient = (function () {
|
|
|
2790
2779
|
})
|
|
2791
2780
|
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
2792
2781
|
.instruction()];
|
|
2793
|
-
case
|
|
2794
|
-
instruction =
|
|
2782
|
+
case 2:
|
|
2783
|
+
instruction = _a.sent();
|
|
2795
2784
|
instructions.push(instruction);
|
|
2796
2785
|
if (collateralSymbol == 'WSOL' && closeUsersWSOLATA) {
|
|
2797
2786
|
closeWsolATAIns = (0, spl_token_1.createCloseAccountInstruction)(userReceivingTokenAccount, publicKey, publicKey);
|
|
2798
2787
|
postInstructions.push(closeWsolATAIns);
|
|
2799
2788
|
}
|
|
2800
|
-
return [3,
|
|
2801
|
-
case
|
|
2802
|
-
error_1 =
|
|
2789
|
+
return [3, 4];
|
|
2790
|
+
case 3:
|
|
2791
|
+
error_1 = _a.sent();
|
|
2803
2792
|
console.error("perpclient closePosition error:", error_1);
|
|
2804
2793
|
throw error_1;
|
|
2805
|
-
case
|
|
2794
|
+
case 4: return [2, {
|
|
2806
2795
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
2807
2796
|
additionalSigners: additionalSigners
|
|
2808
2797
|
}];
|
|
@@ -2848,7 +2837,7 @@ var PerpetualsClient = (function () {
|
|
|
2848
2837
|
additionalSigners = [];
|
|
2849
2838
|
targetToken = poolConfig.getTokenFromSymbol(targetCustodyConfig.symbol);
|
|
2850
2839
|
userInputToken = poolConfig.getTokenFromSymbol(userInputTokenSymbol);
|
|
2851
|
-
if (!(userInputTokenSymbol == 'SOL')) return [3,
|
|
2840
|
+
if (!(userInputTokenSymbol == 'SOL')) return [3, 3];
|
|
2852
2841
|
console.log("inputSymbol === SOL", userInputTokenSymbol);
|
|
2853
2842
|
lamports = amountIn.add(new anchor_1.BN(this.minimumBalanceForRentExemptAccountLamports));
|
|
2854
2843
|
if (!!skipBalanceChecks) return [3, 2];
|
|
@@ -2878,41 +2867,33 @@ var PerpetualsClient = (function () {
|
|
|
2878
2867
|
postInstructions = [
|
|
2879
2868
|
(0, spl_token_1.createCloseAccountInstruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), publicKey, publicKey),
|
|
2880
2869
|
];
|
|
2881
|
-
if (
|
|
2882
|
-
|
|
2883
|
-
|
|
2884
|
-
case 3:
|
|
2885
|
-
if (!(_c.sent())) {
|
|
2886
|
-
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, userOutputTokenAccount, publicKey, poolConfig.getTokenFromSymbol(targetCustodyConfig.symbol).mintKey));
|
|
2870
|
+
if (!poolConfig.getTokenFromSymbol(targetCustodyConfig.symbol).mintKey.equals(spl_token_1.NATIVE_MINT)) {
|
|
2871
|
+
userOutputTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(poolConfig.getTokenFromSymbol(targetCustodyConfig.symbol).mintKey, publicKey, true, poolConfig.getTokenFromSymbol(targetCustodyConfig.symbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID);
|
|
2872
|
+
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(publicKey, userOutputTokenAccount, publicKey, poolConfig.getTokenFromSymbol(targetCustodyConfig.symbol).mintKey, poolConfig.getTokenFromSymbol(targetCustodyConfig.symbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID));
|
|
2887
2873
|
}
|
|
2888
|
-
|
|
2889
|
-
case
|
|
2890
|
-
case 5:
|
|
2874
|
+
return [3, 7];
|
|
2875
|
+
case 3:
|
|
2891
2876
|
userInputTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(poolConfig.getTokenFromSymbol(userInputTokenSymbol).mintKey, publicKey, true, poolConfig.getTokenFromSymbol(userInputTokenSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID);
|
|
2892
|
-
if (!!skipBalanceChecks) return [3,
|
|
2877
|
+
if (!!skipBalanceChecks) return [3, 6];
|
|
2893
2878
|
return [4, (0, utils_1.checkIfAccountExists)(userInputTokenAccount, this.provider.connection)];
|
|
2894
|
-
case
|
|
2879
|
+
case 4:
|
|
2895
2880
|
if (!(_c.sent())) {
|
|
2896
2881
|
throw "Insufficient Funds , Token Account doesn't exist";
|
|
2897
2882
|
}
|
|
2898
2883
|
_b = anchor_1.BN.bind;
|
|
2899
2884
|
return [4, this.provider.connection.getTokenAccountBalance(userInputTokenAccount)];
|
|
2900
|
-
case
|
|
2885
|
+
case 5:
|
|
2901
2886
|
tokenAccountBalance = new (_b.apply(anchor_1.BN, [void 0, (_c.sent()).value.amount]))();
|
|
2902
2887
|
if (tokenAccountBalance.lt(amountIn)) {
|
|
2903
2888
|
throw "Insufficient Funds need more ".concat(amountIn.sub(tokenAccountBalance), " tokens");
|
|
2904
2889
|
}
|
|
2905
|
-
_c.label =
|
|
2906
|
-
case
|
|
2890
|
+
_c.label = 6;
|
|
2891
|
+
case 6:
|
|
2907
2892
|
userOutputTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(poolConfig.getTokenFromSymbol(targetCustodyConfig.symbol).mintKey, publicKey, true, poolConfig.getTokenFromSymbol(targetCustodyConfig.symbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID);
|
|
2908
|
-
|
|
2909
|
-
|
|
2910
|
-
|
|
2911
|
-
|
|
2912
|
-
}
|
|
2913
|
-
_c.label = 10;
|
|
2914
|
-
case 10:
|
|
2915
|
-
_c.trys.push([10, 12, , 13]);
|
|
2893
|
+
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(publicKey, userOutputTokenAccount, publicKey, poolConfig.getTokenFromSymbol(targetCustodyConfig.symbol).mintKey, poolConfig.getTokenFromSymbol(targetCustodyConfig.symbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID));
|
|
2894
|
+
_c.label = 7;
|
|
2895
|
+
case 7:
|
|
2896
|
+
_c.trys.push([7, 9, , 10]);
|
|
2916
2897
|
return [4, this.program.methods
|
|
2917
2898
|
.swapAndOpen({
|
|
2918
2899
|
amountIn: amountIn,
|
|
@@ -2948,15 +2929,15 @@ var PerpetualsClient = (function () {
|
|
|
2948
2929
|
})
|
|
2949
2930
|
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
2950
2931
|
.instruction()];
|
|
2951
|
-
case
|
|
2932
|
+
case 8:
|
|
2952
2933
|
inx = _c.sent();
|
|
2953
2934
|
instructions.push(inx);
|
|
2954
|
-
return [3,
|
|
2955
|
-
case
|
|
2935
|
+
return [3, 10];
|
|
2936
|
+
case 9:
|
|
2956
2937
|
err_3 = _c.sent();
|
|
2957
2938
|
console.error("perpClient SwapAndOpen error:: ", err_3);
|
|
2958
2939
|
throw err_3;
|
|
2959
|
-
case
|
|
2940
|
+
case 10: return [2, {
|
|
2960
2941
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
2961
2942
|
additionalSigners: additionalSigners
|
|
2962
2943
|
}];
|
|
@@ -3001,46 +2982,37 @@ var PerpetualsClient = (function () {
|
|
|
3001
2982
|
additionalSigners = [];
|
|
3002
2983
|
collateralToken = poolConfig.getTokenFromSymbol(collateralTokenSymbol);
|
|
3003
2984
|
userOutputToken = poolConfig.getTokenFromSymbol(userOutputTokenSymbol);
|
|
3004
|
-
if (
|
|
3005
|
-
|
|
3006
|
-
|
|
3007
|
-
|
|
3008
|
-
|
|
2985
|
+
if (userOutputTokenSymbol == 'SOL') {
|
|
2986
|
+
console.log("outputSymbol === SOL", userOutputTokenSymbol);
|
|
2987
|
+
lamports = (this.minimumBalanceForRentExemptAccountLamports);
|
|
2988
|
+
if (!ephemeralSignerPubkey) {
|
|
2989
|
+
wrappedSolAccount = new web3_js_1.Keypair();
|
|
2990
|
+
additionalSigners.push(wrappedSolAccount);
|
|
2991
|
+
}
|
|
2992
|
+
preInstructions = [
|
|
2993
|
+
web3_js_1.SystemProgram.createAccount({
|
|
2994
|
+
fromPubkey: publicKey,
|
|
2995
|
+
newAccountPubkey: (ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey),
|
|
2996
|
+
lamports: lamports,
|
|
2997
|
+
space: 165,
|
|
2998
|
+
programId: spl_token_1.TOKEN_PROGRAM_ID,
|
|
2999
|
+
}),
|
|
3000
|
+
(0, spl_token_1.createInitializeAccount3Instruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), spl_token_1.NATIVE_MINT, publicKey),
|
|
3001
|
+
];
|
|
3002
|
+
postInstructions = [
|
|
3003
|
+
(0, spl_token_1.createCloseAccountInstruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), publicKey, publicKey),
|
|
3004
|
+
];
|
|
3009
3005
|
additionalSigners.push(wrappedSolAccount);
|
|
3010
3006
|
}
|
|
3011
|
-
|
|
3012
|
-
|
|
3013
|
-
|
|
3014
|
-
newAccountPubkey: (ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey),
|
|
3015
|
-
lamports: lamports,
|
|
3016
|
-
space: 165,
|
|
3017
|
-
programId: spl_token_1.TOKEN_PROGRAM_ID,
|
|
3018
|
-
}),
|
|
3019
|
-
(0, spl_token_1.createInitializeAccount3Instruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), spl_token_1.NATIVE_MINT, publicKey),
|
|
3020
|
-
];
|
|
3021
|
-
postInstructions = [
|
|
3022
|
-
(0, spl_token_1.createCloseAccountInstruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), publicKey, publicKey),
|
|
3023
|
-
];
|
|
3024
|
-
additionalSigners.push(wrappedSolAccount);
|
|
3025
|
-
return [3, 3];
|
|
3026
|
-
case 1:
|
|
3027
|
-
userReceivingTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(userOutputToken.mintKey, publicKey, true, userOutputToken.isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID);
|
|
3028
|
-
return [4, (0, utils_1.checkIfAccountExists)(userReceivingTokenAccount, this.provider.connection)];
|
|
3029
|
-
case 2:
|
|
3030
|
-
if (!(_a.sent())) {
|
|
3031
|
-
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, userReceivingTokenAccount, publicKey, userOutputToken.mintKey, userOutputToken.isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID));
|
|
3007
|
+
else {
|
|
3008
|
+
userReceivingTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(userOutputToken.mintKey, publicKey, true, userOutputToken.isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID);
|
|
3009
|
+
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(publicKey, userReceivingTokenAccount, publicKey, userOutputToken.mintKey, userOutputToken.isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID));
|
|
3032
3010
|
}
|
|
3033
|
-
_a.label = 3;
|
|
3034
|
-
case 3:
|
|
3035
3011
|
userCollateralTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(collateralToken.mintKey, publicKey, true, collateralToken.isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID);
|
|
3036
|
-
|
|
3037
|
-
|
|
3038
|
-
|
|
3039
|
-
|
|
3040
|
-
}
|
|
3041
|
-
_a.label = 5;
|
|
3042
|
-
case 5:
|
|
3043
|
-
_a.trys.push([5, 7, , 8]);
|
|
3012
|
+
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(publicKey, userCollateralTokenAccount, publicKey, collateralToken.mintKey, collateralToken.isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID));
|
|
3013
|
+
_a.label = 1;
|
|
3014
|
+
case 1:
|
|
3015
|
+
_a.trys.push([1, 3, , 4]);
|
|
3044
3016
|
return [4, this.program.methods
|
|
3045
3017
|
.closeAndSwap({
|
|
3046
3018
|
priceWithSlippage: priceWithSlippage,
|
|
@@ -3074,15 +3046,15 @@ var PerpetualsClient = (function () {
|
|
|
3074
3046
|
})
|
|
3075
3047
|
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
3076
3048
|
.instruction()];
|
|
3077
|
-
case
|
|
3049
|
+
case 2:
|
|
3078
3050
|
inx = _a.sent();
|
|
3079
3051
|
instructions.push(inx);
|
|
3080
|
-
return [3,
|
|
3081
|
-
case
|
|
3052
|
+
return [3, 4];
|
|
3053
|
+
case 3:
|
|
3082
3054
|
err_4 = _a.sent();
|
|
3083
3055
|
console.error("perpClient CloseAndSwap error:: ", err_4);
|
|
3084
3056
|
throw err_4;
|
|
3085
|
-
case
|
|
3057
|
+
case 4: return [2, {
|
|
3086
3058
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
3087
3059
|
additionalSigners: additionalSigners
|
|
3088
3060
|
}];
|
|
@@ -3269,11 +3241,7 @@ var PerpetualsClient = (function () {
|
|
|
3269
3241
|
_c.label = 6;
|
|
3270
3242
|
case 6:
|
|
3271
3243
|
userCollateralTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(collateralCustodyConfig.mintKey, publicKey, true, poolConfig.getTokenFromSymbol(collateralSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID);
|
|
3272
|
-
|
|
3273
|
-
case 7:
|
|
3274
|
-
if (!(_c.sent())) {
|
|
3275
|
-
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, userCollateralTokenAccount, publicKey, collateralCustodyConfig.mintKey, poolConfig.getTokenFromSymbol(collateralSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID));
|
|
3276
|
-
}
|
|
3244
|
+
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(publicKey, userCollateralTokenAccount, publicKey, collateralCustodyConfig.mintKey, poolConfig.getTokenFromSymbol(collateralSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID));
|
|
3277
3245
|
marketAccount = poolConfig.getMarketPk(targetCustodyConfig.custodyAccount, collateralCustodyConfig.custodyAccount, side);
|
|
3278
3246
|
return [4, this.program.methods.swapAndAddCollateral({
|
|
3279
3247
|
amountIn: amountIn,
|
|
@@ -3301,7 +3269,7 @@ var PerpetualsClient = (function () {
|
|
|
3301
3269
|
fundingMint: poolConfig.getTokenFromSymbol(inputSymbol).mintKey,
|
|
3302
3270
|
})
|
|
3303
3271
|
.instruction()];
|
|
3304
|
-
case
|
|
3272
|
+
case 7:
|
|
3305
3273
|
instruction = _c.sent();
|
|
3306
3274
|
instructions.push(instruction);
|
|
3307
3275
|
return [2, {
|
|
@@ -3318,12 +3286,12 @@ var PerpetualsClient = (function () {
|
|
|
3318
3286
|
args_1[_i - 6] = arguments[_i];
|
|
3319
3287
|
}
|
|
3320
3288
|
return __awaiter(_this, __spreadArray([collateralDeltaUsd_1, marketSymbol_1, collateralSymbol_1, side_1, positionPubKey_1, poolConfig_1], args_1, true), void 0, function (collateralDeltaUsd, marketSymbol, collateralSymbol, side, positionPubKey, poolConfig, createUserATA, closeUsersWSOLATA, ephemeralSignerPubkey, userPublicKey) {
|
|
3321
|
-
var publicKey, collateralCustodyConfig, targetCustodyConfig, userReceivingTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, lamports,
|
|
3289
|
+
var publicKey, collateralCustodyConfig, targetCustodyConfig, userReceivingTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, lamports, marketAccount, instruction, closeWsolATAIns, error_2;
|
|
3322
3290
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
3323
3291
|
if (closeUsersWSOLATA === void 0) { closeUsersWSOLATA = false; }
|
|
3324
3292
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
3325
|
-
return __generator(this, function (
|
|
3326
|
-
switch (
|
|
3293
|
+
return __generator(this, function (_a) {
|
|
3294
|
+
switch (_a.label) {
|
|
3327
3295
|
case 0:
|
|
3328
3296
|
publicKey = userPublicKey !== null && userPublicKey !== void 0 ? userPublicKey : this.provider.wallet.publicKey;
|
|
3329
3297
|
collateralCustodyConfig = poolConfig.custodies.find(function (i) {
|
|
@@ -3339,45 +3307,35 @@ var PerpetualsClient = (function () {
|
|
|
3339
3307
|
instructions = [];
|
|
3340
3308
|
postInstructions = [];
|
|
3341
3309
|
additionalSigners = [];
|
|
3342
|
-
|
|
3310
|
+
_a.label = 1;
|
|
3343
3311
|
case 1:
|
|
3344
|
-
|
|
3312
|
+
_a.trys.push([1, 3, , 4]);
|
|
3345
3313
|
console.log("removeCollateral -- collateralSymbol:", collateralSymbol);
|
|
3346
|
-
if (
|
|
3347
|
-
|
|
3348
|
-
|
|
3349
|
-
|
|
3350
|
-
|
|
3351
|
-
|
|
3314
|
+
if (collateralSymbol == 'SOL') {
|
|
3315
|
+
console.log("remove collateral in SOL ...create WSOL temp and close it ");
|
|
3316
|
+
lamports = this.minimumBalanceForRentExemptAccountLamports;
|
|
3317
|
+
if (!ephemeralSignerPubkey) {
|
|
3318
|
+
wrappedSolAccount = new web3_js_1.Keypair();
|
|
3319
|
+
additionalSigners.push(wrappedSolAccount);
|
|
3320
|
+
}
|
|
3321
|
+
preInstructions = [
|
|
3322
|
+
web3_js_1.SystemProgram.createAccount({
|
|
3323
|
+
fromPubkey: publicKey,
|
|
3324
|
+
newAccountPubkey: (ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey),
|
|
3325
|
+
lamports: lamports,
|
|
3326
|
+
space: 165,
|
|
3327
|
+
programId: spl_token_1.TOKEN_PROGRAM_ID,
|
|
3328
|
+
}),
|
|
3329
|
+
(0, spl_token_1.createInitializeAccount3Instruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), spl_token_1.NATIVE_MINT, publicKey),
|
|
3330
|
+
];
|
|
3331
|
+
postInstructions = [
|
|
3332
|
+
(0, spl_token_1.createCloseAccountInstruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), publicKey, publicKey),
|
|
3333
|
+
];
|
|
3352
3334
|
}
|
|
3353
|
-
|
|
3354
|
-
|
|
3355
|
-
|
|
3356
|
-
newAccountPubkey: (ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey),
|
|
3357
|
-
lamports: lamports,
|
|
3358
|
-
space: 165,
|
|
3359
|
-
programId: spl_token_1.TOKEN_PROGRAM_ID,
|
|
3360
|
-
}),
|
|
3361
|
-
(0, spl_token_1.createInitializeAccount3Instruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), spl_token_1.NATIVE_MINT, publicKey),
|
|
3362
|
-
];
|
|
3363
|
-
postInstructions = [
|
|
3364
|
-
(0, spl_token_1.createCloseAccountInstruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), publicKey, publicKey),
|
|
3365
|
-
];
|
|
3366
|
-
return [3, 5];
|
|
3367
|
-
case 2:
|
|
3368
|
-
userReceivingTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(poolConfig.getTokenFromSymbol(collateralSymbol).mintKey, publicKey, true, poolConfig.getTokenFromSymbol(collateralSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID);
|
|
3369
|
-
_a = createUserATA;
|
|
3370
|
-
if (!_a) return [3, 4];
|
|
3371
|
-
return [4, (0, utils_1.checkIfAccountExists)(userReceivingTokenAccount, this.provider.connection)];
|
|
3372
|
-
case 3:
|
|
3373
|
-
_a = !(_b.sent());
|
|
3374
|
-
_b.label = 4;
|
|
3375
|
-
case 4:
|
|
3376
|
-
if (_a) {
|
|
3377
|
-
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, userReceivingTokenAccount, publicKey, poolConfig.getTokenFromSymbol(collateralSymbol).mintKey, poolConfig.getTokenFromSymbol(collateralSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID));
|
|
3335
|
+
else {
|
|
3336
|
+
userReceivingTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(poolConfig.getTokenFromSymbol(collateralSymbol).mintKey, publicKey, true, poolConfig.getTokenFromSymbol(collateralSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID);
|
|
3337
|
+
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(publicKey, userReceivingTokenAccount, publicKey, poolConfig.getTokenFromSymbol(collateralSymbol).mintKey, poolConfig.getTokenFromSymbol(collateralSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID));
|
|
3378
3338
|
}
|
|
3379
|
-
_b.label = 5;
|
|
3380
|
-
case 5:
|
|
3381
3339
|
marketAccount = poolConfig.getMarketPk(targetCustodyConfig.custodyAccount, collateralCustodyConfig.custodyAccount, side);
|
|
3382
3340
|
return [4, this.program.methods
|
|
3383
3341
|
.removeCollateral({
|
|
@@ -3403,19 +3361,19 @@ var PerpetualsClient = (function () {
|
|
|
3403
3361
|
receivingMint: collateralCustodyConfig.mintKey
|
|
3404
3362
|
})
|
|
3405
3363
|
.instruction()];
|
|
3406
|
-
case
|
|
3407
|
-
instruction =
|
|
3364
|
+
case 2:
|
|
3365
|
+
instruction = _a.sent();
|
|
3408
3366
|
instructions.push(instruction);
|
|
3409
3367
|
if (collateralSymbol == 'WSOL' && closeUsersWSOLATA) {
|
|
3410
3368
|
closeWsolATAIns = (0, spl_token_1.createCloseAccountInstruction)(userReceivingTokenAccount, publicKey, publicKey);
|
|
3411
3369
|
postInstructions.push(closeWsolATAIns);
|
|
3412
3370
|
}
|
|
3413
|
-
return [3,
|
|
3414
|
-
case
|
|
3415
|
-
error_2 =
|
|
3371
|
+
return [3, 4];
|
|
3372
|
+
case 3:
|
|
3373
|
+
error_2 = _a.sent();
|
|
3416
3374
|
console.error("perpclient removeCollateral error:", error_2);
|
|
3417
3375
|
throw error_2;
|
|
3418
|
-
case
|
|
3376
|
+
case 4: return [2, {
|
|
3419
3377
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
3420
3378
|
additionalSigners: additionalSigners
|
|
3421
3379
|
}];
|
|
@@ -3445,42 +3403,33 @@ var PerpetualsClient = (function () {
|
|
|
3445
3403
|
instructions = [];
|
|
3446
3404
|
postInstructions = [];
|
|
3447
3405
|
additionalSigners = [];
|
|
3448
|
-
if (
|
|
3449
|
-
|
|
3450
|
-
|
|
3451
|
-
|
|
3452
|
-
|
|
3453
|
-
|
|
3406
|
+
if (outputSymbol == 'SOL') {
|
|
3407
|
+
console.log("outputSymbol === SOL", outputSymbol);
|
|
3408
|
+
lamports = this.minimumBalanceForRentExemptAccountLamports;
|
|
3409
|
+
if (!ephemeralSignerPubkey) {
|
|
3410
|
+
wrappedSolAccount = new web3_js_1.Keypair();
|
|
3411
|
+
additionalSigners.push(wrappedSolAccount);
|
|
3412
|
+
}
|
|
3413
|
+
preInstructions = [
|
|
3414
|
+
web3_js_1.SystemProgram.createAccount({
|
|
3415
|
+
fromPubkey: publicKey,
|
|
3416
|
+
newAccountPubkey: (ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey),
|
|
3417
|
+
lamports: lamports,
|
|
3418
|
+
space: 165,
|
|
3419
|
+
programId: spl_token_1.TOKEN_PROGRAM_ID,
|
|
3420
|
+
}),
|
|
3421
|
+
(0, spl_token_1.createInitializeAccount3Instruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), spl_token_1.NATIVE_MINT, publicKey),
|
|
3422
|
+
];
|
|
3423
|
+
postInstructions = [
|
|
3424
|
+
(0, spl_token_1.createCloseAccountInstruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), publicKey, publicKey),
|
|
3425
|
+
];
|
|
3454
3426
|
}
|
|
3455
|
-
|
|
3456
|
-
|
|
3457
|
-
|
|
3458
|
-
newAccountPubkey: (ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey),
|
|
3459
|
-
lamports: lamports,
|
|
3460
|
-
space: 165,
|
|
3461
|
-
programId: spl_token_1.TOKEN_PROGRAM_ID,
|
|
3462
|
-
}),
|
|
3463
|
-
(0, spl_token_1.createInitializeAccount3Instruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), spl_token_1.NATIVE_MINT, publicKey),
|
|
3464
|
-
];
|
|
3465
|
-
postInstructions = [
|
|
3466
|
-
(0, spl_token_1.createCloseAccountInstruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), publicKey, publicKey),
|
|
3467
|
-
];
|
|
3468
|
-
return [3, 3];
|
|
3469
|
-
case 1:
|
|
3470
|
-
userReceivingTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(poolConfig.getTokenFromSymbol(outputSymbol).mintKey, publicKey, true, poolConfig.getTokenFromSymbol(outputSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID);
|
|
3471
|
-
return [4, (0, utils_1.checkIfAccountExists)(userReceivingTokenAccount, this.provider.connection)];
|
|
3472
|
-
case 2:
|
|
3473
|
-
if (!(_a.sent())) {
|
|
3474
|
-
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, userReceivingTokenAccount, publicKey, poolConfig.getTokenFromSymbol(outputSymbol).mintKey, poolConfig.getTokenFromSymbol(outputSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID));
|
|
3427
|
+
else {
|
|
3428
|
+
userReceivingTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(poolConfig.getTokenFromSymbol(outputSymbol).mintKey, publicKey, true, poolConfig.getTokenFromSymbol(outputSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID);
|
|
3429
|
+
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(publicKey, userReceivingTokenAccount, publicKey, poolConfig.getTokenFromSymbol(outputSymbol).mintKey, poolConfig.getTokenFromSymbol(outputSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID));
|
|
3475
3430
|
}
|
|
3476
|
-
_a.label = 3;
|
|
3477
|
-
case 3:
|
|
3478
3431
|
userCollateralTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(poolConfig.getTokenFromSymbol(collateralSymbol).mintKey, publicKey, true, poolConfig.getTokenFromSymbol(collateralSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID);
|
|
3479
|
-
|
|
3480
|
-
case 4:
|
|
3481
|
-
if (!(_a.sent())) {
|
|
3482
|
-
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, userCollateralTokenAccount, publicKey, poolConfig.getTokenFromSymbol(collateralSymbol).mintKey, poolConfig.getTokenFromSymbol(collateralSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID));
|
|
3483
|
-
}
|
|
3432
|
+
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(publicKey, userCollateralTokenAccount, publicKey, poolConfig.getTokenFromSymbol(collateralSymbol).mintKey, poolConfig.getTokenFromSymbol(collateralSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID));
|
|
3484
3433
|
marketAccount = poolConfig.getMarketPk(targetCustodyConfig.custodyAccount, collateralCustodyConfig.custodyAccount, side);
|
|
3485
3434
|
positionAccount = poolConfig.getPositionFromMarketPk(publicKey, marketAccount);
|
|
3486
3435
|
return [4, this.program.methods
|
|
@@ -3514,7 +3463,7 @@ var PerpetualsClient = (function () {
|
|
|
3514
3463
|
collateralTokenProgram: poolConfig.getTokenFromSymbol(collateralSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID
|
|
3515
3464
|
})
|
|
3516
3465
|
.instruction()];
|
|
3517
|
-
case
|
|
3466
|
+
case 1:
|
|
3518
3467
|
instruction = _a.sent();
|
|
3519
3468
|
instructions.push(instruction);
|
|
3520
3469
|
return [2, {
|
|
@@ -3678,7 +3627,7 @@ var PerpetualsClient = (function () {
|
|
|
3678
3627
|
payToken = poolConfig.getTokenFromSymbol(payTokenSymbol);
|
|
3679
3628
|
_g.label = 1;
|
|
3680
3629
|
case 1:
|
|
3681
|
-
_g.trys.push([1,
|
|
3630
|
+
_g.trys.push([1, 9, , 10]);
|
|
3682
3631
|
userPayingTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(payTokenCustodyConfig.mintKey, publicKey, true, payToken.isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID);
|
|
3683
3632
|
lpTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(poolConfig.stakedLpTokenMint, publicKey, true);
|
|
3684
3633
|
custodyAccountMetas = [];
|
|
@@ -3705,24 +3654,20 @@ var PerpetualsClient = (function () {
|
|
|
3705
3654
|
isWritable: false,
|
|
3706
3655
|
});
|
|
3707
3656
|
}
|
|
3708
|
-
|
|
3709
|
-
|
|
3710
|
-
if (!(_g.sent())) {
|
|
3711
|
-
instructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, lpTokenAccount, publicKey, poolConfig.stakedLpTokenMint));
|
|
3712
|
-
}
|
|
3713
|
-
if (!(payTokenSymbol == 'SOL')) return [3, 5];
|
|
3657
|
+
instructions.push((0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(publicKey, lpTokenAccount, publicKey, poolConfig.stakedLpTokenMint, spl_token_1.TOKEN_PROGRAM_ID));
|
|
3658
|
+
if (!(payTokenSymbol == 'SOL')) return [3, 4];
|
|
3714
3659
|
console.log("payTokenSymbol === SOL", payTokenSymbol);
|
|
3715
3660
|
lamports = tokenAmountIn.add(new anchor_1.BN(this.minimumBalanceForRentExemptAccountLamports));
|
|
3716
|
-
if (!!skipBalanceChecks) return [3,
|
|
3661
|
+
if (!!skipBalanceChecks) return [3, 3];
|
|
3717
3662
|
_e = anchor_1.BN.bind;
|
|
3718
3663
|
return [4, this.provider.connection.getBalance(publicKey)];
|
|
3719
|
-
case
|
|
3664
|
+
case 2:
|
|
3720
3665
|
unWrappedSolBalance = new (_e.apply(anchor_1.BN, [void 0, _g.sent()]))();
|
|
3721
3666
|
if (unWrappedSolBalance.lt(lamports)) {
|
|
3722
3667
|
throw "Insufficient SOL Funds";
|
|
3723
3668
|
}
|
|
3724
|
-
_g.label =
|
|
3725
|
-
case
|
|
3669
|
+
_g.label = 3;
|
|
3670
|
+
case 3:
|
|
3726
3671
|
if (!ephemeralSignerPubkey) {
|
|
3727
3672
|
wrappedSolAccount = new web3_js_1.Keypair();
|
|
3728
3673
|
additionalSigners.push(wrappedSolAccount);
|
|
@@ -3740,23 +3685,23 @@ var PerpetualsClient = (function () {
|
|
|
3740
3685
|
postInstructions = [
|
|
3741
3686
|
(0, spl_token_1.createCloseAccountInstruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), publicKey, publicKey),
|
|
3742
3687
|
];
|
|
3743
|
-
return [3,
|
|
3744
|
-
case
|
|
3745
|
-
if (!!skipBalanceChecks) return [3,
|
|
3688
|
+
return [3, 7];
|
|
3689
|
+
case 4:
|
|
3690
|
+
if (!!skipBalanceChecks) return [3, 7];
|
|
3746
3691
|
return [4, (0, utils_1.checkIfAccountExists)(userPayingTokenAccount, this.provider.connection)];
|
|
3747
|
-
case
|
|
3692
|
+
case 5:
|
|
3748
3693
|
if (!(_g.sent())) {
|
|
3749
3694
|
throw "Insufficient Funds , token Account doesn't exist";
|
|
3750
3695
|
}
|
|
3751
3696
|
_f = anchor_1.BN.bind;
|
|
3752
3697
|
return [4, this.provider.connection.getTokenAccountBalance(userPayingTokenAccount)];
|
|
3753
|
-
case
|
|
3698
|
+
case 6:
|
|
3754
3699
|
tokenAccountBalance = new (_f.apply(anchor_1.BN, [void 0, (_g.sent()).value.amount]))();
|
|
3755
3700
|
if (tokenAccountBalance.lt(tokenAmountIn)) {
|
|
3756
3701
|
throw "Insufficient Funds need more ".concat(tokenAmountIn.sub(tokenAccountBalance), " tokens");
|
|
3757
3702
|
}
|
|
3758
|
-
_g.label =
|
|
3759
|
-
case
|
|
3703
|
+
_g.label = 7;
|
|
3704
|
+
case 7:
|
|
3760
3705
|
whitelistPda = this.findProgramAddress("whitelist", [publicKey]).publicKey;
|
|
3761
3706
|
whitelistMeta = {
|
|
3762
3707
|
pubkey: whitelistPda,
|
|
@@ -3788,15 +3733,15 @@ var PerpetualsClient = (function () {
|
|
|
3788
3733
|
})
|
|
3789
3734
|
.remainingAccounts(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], custodyAccountMetas, true), custodyOracleAccountMetas, true), markets, true), (isWhitelistedUser ? [whitelistMeta] : []), true))
|
|
3790
3735
|
.instruction()];
|
|
3791
|
-
case
|
|
3736
|
+
case 8:
|
|
3792
3737
|
instruction = _g.sent();
|
|
3793
3738
|
instructions.push(instruction);
|
|
3794
|
-
return [3,
|
|
3795
|
-
case
|
|
3739
|
+
return [3, 10];
|
|
3740
|
+
case 9:
|
|
3796
3741
|
err_5 = _g.sent();
|
|
3797
3742
|
console.error("perpClient addLiquidity error:: ", err_5);
|
|
3798
3743
|
throw err_5;
|
|
3799
|
-
case
|
|
3744
|
+
case 10: return [2, {
|
|
3800
3745
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
3801
3746
|
additionalSigners: additionalSigners
|
|
3802
3747
|
}];
|
|
@@ -3829,7 +3774,7 @@ var PerpetualsClient = (function () {
|
|
|
3829
3774
|
inputToken = poolConfig.getTokenFromSymbol(inputSymbol);
|
|
3830
3775
|
flpStakeAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("stake"), publicKey.toBuffer(), poolConfig.poolAddress.toBuffer()], this.programId)[0];
|
|
3831
3776
|
poolStakedLpVault = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("staked_lp_token_account"), poolConfig.poolAddress.toBuffer(), lpTokenMint.toBuffer()], this.programId)[0];
|
|
3832
|
-
if (!(inputSymbol == 'SOL')) return [3,
|
|
3777
|
+
if (!(inputSymbol == 'SOL')) return [3, 3];
|
|
3833
3778
|
console.log("inputSymbol === SOL", inputSymbol);
|
|
3834
3779
|
lamports = amountIn.add(new anchor_1.BN(this.minimumBalanceForRentExemptAccountLamports));
|
|
3835
3780
|
console.log("lamports:", lamports.toNumber());
|
|
@@ -3842,11 +3787,8 @@ var PerpetualsClient = (function () {
|
|
|
3842
3787
|
throw "Insufficient SOL Funds";
|
|
3843
3788
|
}
|
|
3844
3789
|
_g.label = 2;
|
|
3845
|
-
case 2:
|
|
3846
|
-
|
|
3847
|
-
if (!(_g.sent())) {
|
|
3848
|
-
instructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, lpTokenAccount, publicKey, poolConfig.stakedLpTokenMint));
|
|
3849
|
-
}
|
|
3790
|
+
case 2:
|
|
3791
|
+
instructions.push((0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(publicKey, lpTokenAccount, publicKey, poolConfig.stakedLpTokenMint, spl_token_1.TOKEN_PROGRAM_ID));
|
|
3850
3792
|
if (!ephemeralSignerPubkey) {
|
|
3851
3793
|
wrappedSolAccount = new web3_js_1.Keypair();
|
|
3852
3794
|
additionalSigners.push(wrappedSolAccount);
|
|
@@ -3864,24 +3806,24 @@ var PerpetualsClient = (function () {
|
|
|
3864
3806
|
postInstructions = [
|
|
3865
3807
|
(0, spl_token_1.createCloseAccountInstruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), publicKey, publicKey),
|
|
3866
3808
|
];
|
|
3867
|
-
return [3,
|
|
3868
|
-
case
|
|
3809
|
+
return [3, 6];
|
|
3810
|
+
case 3:
|
|
3869
3811
|
userInputTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(inputCustodyConfig.mintKey, publicKey, true, inputToken.isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID);
|
|
3870
|
-
if (!!skipBalanceChecks) return [3,
|
|
3812
|
+
if (!!skipBalanceChecks) return [3, 6];
|
|
3871
3813
|
return [4, (0, utils_1.checkIfAccountExists)(userInputTokenAccount, this.provider.connection)];
|
|
3872
|
-
case
|
|
3814
|
+
case 4:
|
|
3873
3815
|
if (!(_g.sent())) {
|
|
3874
3816
|
throw "Insufficient Funds , token Account doesn't exist";
|
|
3875
3817
|
}
|
|
3876
3818
|
_b = anchor_1.BN.bind;
|
|
3877
3819
|
return [4, this.provider.connection.getTokenAccountBalance(userInputTokenAccount)];
|
|
3878
|
-
case
|
|
3820
|
+
case 5:
|
|
3879
3821
|
tokenAccountBalance = new (_b.apply(anchor_1.BN, [void 0, (_g.sent()).value.amount]))();
|
|
3880
3822
|
if (tokenAccountBalance.lt(amountIn)) {
|
|
3881
3823
|
throw "Insufficient Funds need more ".concat(amountIn.sub(tokenAccountBalance), " tokens");
|
|
3882
3824
|
}
|
|
3883
|
-
_g.label =
|
|
3884
|
-
case
|
|
3825
|
+
_g.label = 6;
|
|
3826
|
+
case 6:
|
|
3885
3827
|
custodyAccountMetas = [];
|
|
3886
3828
|
custodyOracleAccountMetas = [];
|
|
3887
3829
|
markets = [];
|
|
@@ -3938,7 +3880,7 @@ var PerpetualsClient = (function () {
|
|
|
3938
3880
|
})
|
|
3939
3881
|
.remainingAccounts(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], custodyAccountMetas, true), custodyOracleAccountMetas, true), markets, true), (isWhitelistedUser ? [whitelistMeta] : []), true))
|
|
3940
3882
|
.instruction()];
|
|
3941
|
-
case
|
|
3883
|
+
case 7:
|
|
3942
3884
|
instruction = _g.sent();
|
|
3943
3885
|
instructions.push(instruction);
|
|
3944
3886
|
return [2, {
|
|
@@ -3955,15 +3897,15 @@ var PerpetualsClient = (function () {
|
|
|
3955
3897
|
args_1[_i - 4] = arguments[_i];
|
|
3956
3898
|
}
|
|
3957
3899
|
return __awaiter(_this, __spreadArray([recieveTokenSymbol_1, liquidityAmountIn_1, minTokenAmountOut_1, poolConfig_1], args_1, true), void 0, function (recieveTokenSymbol, liquidityAmountIn, minTokenAmountOut, poolConfig, closeLpATA, createUserATA, closeUsersWSOLATA, ephemeralSignerPubkey, userPublicKey, isWhitelistedUser) {
|
|
3958
|
-
var recieveTokenCustodyConfig, publicKey, userReceivingTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, recieveToken, stakedLpTokenAccount, custodyAccountMetas, custodyOracleAccountMetas, markets, _a, _b, custody, _c, _d, market, lamports,
|
|
3900
|
+
var recieveTokenCustodyConfig, publicKey, userReceivingTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, recieveToken, stakedLpTokenAccount, custodyAccountMetas, custodyOracleAccountMetas, markets, _a, _b, custody, _c, _d, market, lamports, whitelistPda, whitelistMeta, removeLiquidityTx, closeInx, closeWsolATAIns, err_6;
|
|
3959
3901
|
if (closeLpATA === void 0) { closeLpATA = false; }
|
|
3960
3902
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
3961
3903
|
if (closeUsersWSOLATA === void 0) { closeUsersWSOLATA = false; }
|
|
3962
3904
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
3963
3905
|
if (userPublicKey === void 0) { userPublicKey = undefined; }
|
|
3964
3906
|
if (isWhitelistedUser === void 0) { isWhitelistedUser = false; }
|
|
3965
|
-
return __generator(this, function (
|
|
3966
|
-
switch (
|
|
3907
|
+
return __generator(this, function (_e) {
|
|
3908
|
+
switch (_e.label) {
|
|
3967
3909
|
case 0:
|
|
3968
3910
|
recieveTokenCustodyConfig = poolConfig.custodies.find(function (i) { return i.mintKey.equals(poolConfig.getTokenFromSymbol(recieveTokenSymbol).mintKey); });
|
|
3969
3911
|
if (!recieveTokenCustodyConfig) {
|
|
@@ -3975,9 +3917,9 @@ var PerpetualsClient = (function () {
|
|
|
3975
3917
|
postInstructions = [];
|
|
3976
3918
|
additionalSigners = [];
|
|
3977
3919
|
recieveToken = poolConfig.getTokenFromSymbol(recieveTokenSymbol);
|
|
3978
|
-
|
|
3920
|
+
_e.label = 1;
|
|
3979
3921
|
case 1:
|
|
3980
|
-
|
|
3922
|
+
_e.trys.push([1, 3, , 4]);
|
|
3981
3923
|
stakedLpTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(poolConfig.stakedLpTokenMint, publicKey, true);
|
|
3982
3924
|
custodyAccountMetas = [];
|
|
3983
3925
|
custodyOracleAccountMetas = [];
|
|
@@ -4003,40 +3945,30 @@ var PerpetualsClient = (function () {
|
|
|
4003
3945
|
isWritable: false,
|
|
4004
3946
|
});
|
|
4005
3947
|
}
|
|
4006
|
-
if (
|
|
4007
|
-
|
|
4008
|
-
|
|
4009
|
-
|
|
4010
|
-
|
|
3948
|
+
if (recieveTokenSymbol == 'SOL') {
|
|
3949
|
+
lamports = this.minimumBalanceForRentExemptAccountLamports;
|
|
3950
|
+
if (!ephemeralSignerPubkey) {
|
|
3951
|
+
wrappedSolAccount = new web3_js_1.Keypair();
|
|
3952
|
+
additionalSigners.push(wrappedSolAccount);
|
|
3953
|
+
}
|
|
3954
|
+
preInstructions = [
|
|
3955
|
+
web3_js_1.SystemProgram.createAccount({
|
|
3956
|
+
fromPubkey: publicKey,
|
|
3957
|
+
newAccountPubkey: (ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey),
|
|
3958
|
+
lamports: lamports,
|
|
3959
|
+
space: 165,
|
|
3960
|
+
programId: spl_token_1.TOKEN_PROGRAM_ID,
|
|
3961
|
+
}),
|
|
3962
|
+
(0, spl_token_1.createInitializeAccount3Instruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), spl_token_1.NATIVE_MINT, publicKey),
|
|
3963
|
+
];
|
|
3964
|
+
postInstructions = [
|
|
3965
|
+
(0, spl_token_1.createCloseAccountInstruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), publicKey, publicKey),
|
|
3966
|
+
];
|
|
4011
3967
|
}
|
|
4012
|
-
|
|
4013
|
-
|
|
4014
|
-
|
|
4015
|
-
newAccountPubkey: (ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey),
|
|
4016
|
-
lamports: lamports,
|
|
4017
|
-
space: 165,
|
|
4018
|
-
programId: spl_token_1.TOKEN_PROGRAM_ID,
|
|
4019
|
-
}),
|
|
4020
|
-
(0, spl_token_1.createInitializeAccount3Instruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), spl_token_1.NATIVE_MINT, publicKey),
|
|
4021
|
-
];
|
|
4022
|
-
postInstructions = [
|
|
4023
|
-
(0, spl_token_1.createCloseAccountInstruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), publicKey, publicKey),
|
|
4024
|
-
];
|
|
4025
|
-
return [3, 5];
|
|
4026
|
-
case 2:
|
|
4027
|
-
userReceivingTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(recieveToken.mintKey, publicKey, true, recieveToken.isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID);
|
|
4028
|
-
_e = createUserATA;
|
|
4029
|
-
if (!_e) return [3, 4];
|
|
4030
|
-
return [4, (0, utils_1.checkIfAccountExists)(userReceivingTokenAccount, this.provider.connection)];
|
|
4031
|
-
case 3:
|
|
4032
|
-
_e = !(_f.sent());
|
|
4033
|
-
_f.label = 4;
|
|
4034
|
-
case 4:
|
|
4035
|
-
if (_e) {
|
|
4036
|
-
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, userReceivingTokenAccount, publicKey, recieveToken.mintKey, recieveToken.isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID));
|
|
3968
|
+
else {
|
|
3969
|
+
userReceivingTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(recieveToken.mintKey, publicKey, true, recieveToken.isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID);
|
|
3970
|
+
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(publicKey, userReceivingTokenAccount, publicKey, recieveToken.mintKey, recieveToken.isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID));
|
|
4037
3971
|
}
|
|
4038
|
-
_f.label = 5;
|
|
4039
|
-
case 5:
|
|
4040
3972
|
whitelistPda = this.findProgramAddress("whitelist", [publicKey]).publicKey;
|
|
4041
3973
|
whitelistMeta = {
|
|
4042
3974
|
pubkey: whitelistPda,
|
|
@@ -4068,8 +4000,8 @@ var PerpetualsClient = (function () {
|
|
|
4068
4000
|
})
|
|
4069
4001
|
.remainingAccounts(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], custodyAccountMetas, true), custodyOracleAccountMetas, true), markets, true), (isWhitelistedUser ? [whitelistMeta] : []), true))
|
|
4070
4002
|
.instruction()];
|
|
4071
|
-
case
|
|
4072
|
-
removeLiquidityTx =
|
|
4003
|
+
case 2:
|
|
4004
|
+
removeLiquidityTx = _e.sent();
|
|
4073
4005
|
instructions.push(removeLiquidityTx);
|
|
4074
4006
|
if (closeLpATA) {
|
|
4075
4007
|
closeInx = (0, spl_token_1.createCloseAccountInstruction)(stakedLpTokenAccount, publicKey, publicKey);
|
|
@@ -4079,12 +4011,12 @@ var PerpetualsClient = (function () {
|
|
|
4079
4011
|
closeWsolATAIns = (0, spl_token_1.createCloseAccountInstruction)(userReceivingTokenAccount, publicKey, publicKey);
|
|
4080
4012
|
postInstructions.push(closeWsolATAIns);
|
|
4081
4013
|
}
|
|
4082
|
-
return [3,
|
|
4083
|
-
case
|
|
4084
|
-
err_6 =
|
|
4014
|
+
return [3, 4];
|
|
4015
|
+
case 3:
|
|
4016
|
+
err_6 = _e.sent();
|
|
4085
4017
|
console.log("perpClient removeLiquidity error:: ", err_6);
|
|
4086
4018
|
throw err_6;
|
|
4087
|
-
case
|
|
4019
|
+
case 4: return [2, {
|
|
4088
4020
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
4089
4021
|
additionalSigners: additionalSigners
|
|
4090
4022
|
}];
|
|
@@ -4472,37 +4404,28 @@ var PerpetualsClient = (function () {
|
|
|
4472
4404
|
args_1[_i - 1] = arguments[_i];
|
|
4473
4405
|
}
|
|
4474
4406
|
return __awaiter(_this, __spreadArray([poolConfig_1], args_1, true), void 0, function (poolConfig, pendingActivation, deactivated, createUserLPTA, userPublicKey) {
|
|
4475
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, lpTokenMint, pool, poolStakedLpVault, flpStakeAccount, userLpTokenAccount,
|
|
4407
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, lpTokenMint, pool, poolStakedLpVault, flpStakeAccount, userLpTokenAccount, withdrawStakeInstruction, err_14;
|
|
4476
4408
|
if (pendingActivation === void 0) { pendingActivation = true; }
|
|
4477
4409
|
if (deactivated === void 0) { deactivated = true; }
|
|
4478
4410
|
if (createUserLPTA === void 0) { createUserLPTA = true; }
|
|
4479
4411
|
if (userPublicKey === void 0) { userPublicKey = undefined; }
|
|
4480
|
-
return __generator(this, function (
|
|
4481
|
-
switch (
|
|
4412
|
+
return __generator(this, function (_a) {
|
|
4413
|
+
switch (_a.label) {
|
|
4482
4414
|
case 0:
|
|
4483
4415
|
publicKey = userPublicKey !== null && userPublicKey !== void 0 ? userPublicKey : this.provider.wallet.publicKey;
|
|
4484
4416
|
preInstructions = [];
|
|
4485
4417
|
instructions = [];
|
|
4486
4418
|
postInstructions = [];
|
|
4487
4419
|
additionalSigners = [];
|
|
4488
|
-
|
|
4420
|
+
_a.label = 1;
|
|
4489
4421
|
case 1:
|
|
4490
|
-
|
|
4422
|
+
_a.trys.push([1, 3, , 4]);
|
|
4491
4423
|
lpTokenMint = poolConfig.stakedLpTokenMint;
|
|
4492
4424
|
pool = poolConfig.poolAddress;
|
|
4493
4425
|
poolStakedLpVault = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("staked_lp_token_account"), pool.toBuffer(), lpTokenMint.toBuffer()], this.program.programId)[0];
|
|
4494
4426
|
flpStakeAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("stake"), publicKey.toBuffer(), pool.toBuffer()], this.program.programId)[0];
|
|
4495
4427
|
userLpTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(poolConfig.stakedLpTokenMint, publicKey, true);
|
|
4496
|
-
|
|
4497
|
-
if (!_a) return [3, 3];
|
|
4498
|
-
return [4, (0, utils_1.checkIfAccountExists)(userLpTokenAccount, this.provider.connection)];
|
|
4499
|
-
case 2:
|
|
4500
|
-
_a = !(_b.sent());
|
|
4501
|
-
_b.label = 3;
|
|
4502
|
-
case 3:
|
|
4503
|
-
if (_a) {
|
|
4504
|
-
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, userLpTokenAccount, publicKey, poolConfig.stakedLpTokenMint));
|
|
4505
|
-
}
|
|
4428
|
+
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(publicKey, userLpTokenAccount, publicKey, poolConfig.stakedLpTokenMint, spl_token_1.TOKEN_PROGRAM_ID));
|
|
4506
4429
|
return [4, this.program.methods
|
|
4507
4430
|
.withdrawStake({
|
|
4508
4431
|
pendingActivation: pendingActivation,
|
|
@@ -4523,15 +4446,15 @@ var PerpetualsClient = (function () {
|
|
|
4523
4446
|
lpMint: poolConfig.stakedLpTokenMint,
|
|
4524
4447
|
})
|
|
4525
4448
|
.instruction()];
|
|
4526
|
-
case
|
|
4527
|
-
withdrawStakeInstruction =
|
|
4449
|
+
case 2:
|
|
4450
|
+
withdrawStakeInstruction = _a.sent();
|
|
4528
4451
|
instructions.push(withdrawStakeInstruction);
|
|
4529
|
-
return [3,
|
|
4530
|
-
case
|
|
4531
|
-
err_14 =
|
|
4452
|
+
return [3, 4];
|
|
4453
|
+
case 3:
|
|
4454
|
+
err_14 = _a.sent();
|
|
4532
4455
|
console.log("perpClient withdrawStake error:: ", err_14);
|
|
4533
4456
|
throw err_14;
|
|
4534
|
-
case
|
|
4457
|
+
case 4: return [2, {
|
|
4535
4458
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
4536
4459
|
additionalSigners: additionalSigners
|
|
4537
4460
|
}];
|
|
@@ -4545,10 +4468,10 @@ var PerpetualsClient = (function () {
|
|
|
4545
4468
|
args_1[_i - 3] = arguments[_i];
|
|
4546
4469
|
}
|
|
4547
4470
|
return __awaiter(_this, __spreadArray([rewardSymbol_1, poolConfig_1, tokenStakeAccount_1], args_1, true), void 0, function (rewardSymbol, poolConfig, tokenStakeAccount, createUserATA) {
|
|
4548
|
-
var publicKey, rewardCustodyMint, rewardCustodyConfig, preInstructions, instructions, postInstructions, additionalSigners, pool, flpStakeAccount, receivingTokenAccount,
|
|
4471
|
+
var publicKey, rewardCustodyMint, rewardCustodyConfig, preInstructions, instructions, postInstructions, additionalSigners, pool, flpStakeAccount, receivingTokenAccount, tokenStakeAccounts, withdrawStakeInstruction, err_15;
|
|
4549
4472
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
4550
|
-
return __generator(this, function (
|
|
4551
|
-
switch (
|
|
4473
|
+
return __generator(this, function (_a) {
|
|
4474
|
+
switch (_a.label) {
|
|
4552
4475
|
case 0:
|
|
4553
4476
|
publicKey = this.provider.wallet.publicKey;
|
|
4554
4477
|
rewardCustodyMint = poolConfig.getTokenFromSymbol(rewardSymbol).mintKey;
|
|
@@ -4557,22 +4480,13 @@ var PerpetualsClient = (function () {
|
|
|
4557
4480
|
instructions = [];
|
|
4558
4481
|
postInstructions = [];
|
|
4559
4482
|
additionalSigners = [];
|
|
4560
|
-
|
|
4483
|
+
_a.label = 1;
|
|
4561
4484
|
case 1:
|
|
4562
|
-
|
|
4485
|
+
_a.trys.push([1, 3, , 4]);
|
|
4563
4486
|
pool = poolConfig.poolAddress;
|
|
4564
4487
|
flpStakeAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("stake"), publicKey.toBuffer(), pool.toBuffer()], this.program.programId)[0];
|
|
4565
4488
|
receivingTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(rewardCustodyMint, publicKey, true);
|
|
4566
|
-
|
|
4567
|
-
if (!_a) return [3, 3];
|
|
4568
|
-
return [4, (0, utils_1.checkIfAccountExists)(receivingTokenAccount, this.provider.connection)];
|
|
4569
|
-
case 2:
|
|
4570
|
-
_a = !(_b.sent());
|
|
4571
|
-
_b.label = 3;
|
|
4572
|
-
case 3:
|
|
4573
|
-
if (_a) {
|
|
4574
|
-
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, receivingTokenAccount, publicKey, rewardCustodyMint));
|
|
4575
|
-
}
|
|
4489
|
+
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(publicKey, receivingTokenAccount, publicKey, rewardCustodyMint, spl_token_1.TOKEN_PROGRAM_ID));
|
|
4576
4490
|
tokenStakeAccounts = [];
|
|
4577
4491
|
if (tokenStakeAccount) {
|
|
4578
4492
|
tokenStakeAccounts.push({
|
|
@@ -4601,15 +4515,15 @@ var PerpetualsClient = (function () {
|
|
|
4601
4515
|
})
|
|
4602
4516
|
.remainingAccounts(__spreadArray([], tokenStakeAccounts, true))
|
|
4603
4517
|
.instruction()];
|
|
4604
|
-
case
|
|
4605
|
-
withdrawStakeInstruction =
|
|
4518
|
+
case 2:
|
|
4519
|
+
withdrawStakeInstruction = _a.sent();
|
|
4606
4520
|
instructions.push(withdrawStakeInstruction);
|
|
4607
|
-
return [3,
|
|
4608
|
-
case
|
|
4609
|
-
err_15 =
|
|
4521
|
+
return [3, 4];
|
|
4522
|
+
case 3:
|
|
4523
|
+
err_15 = _a.sent();
|
|
4610
4524
|
console.log("perpClient withdrawStake error:: ", err_15);
|
|
4611
4525
|
throw err_15;
|
|
4612
|
-
case
|
|
4526
|
+
case 4: return [2, {
|
|
4613
4527
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
4614
4528
|
additionalSigners: additionalSigners
|
|
4615
4529
|
}];
|
|
@@ -4668,29 +4582,21 @@ var PerpetualsClient = (function () {
|
|
|
4668
4582
|
isWritable: false,
|
|
4669
4583
|
});
|
|
4670
4584
|
}
|
|
4671
|
-
|
|
4672
|
-
|
|
4673
|
-
if (!(
|
|
4674
|
-
instructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, lpTokenAccount, publicKey, poolConfig.stakedLpTokenMint));
|
|
4675
|
-
}
|
|
4676
|
-
return [4, (0, utils_1.checkIfAccountExists)(compoundingTokenAccount, this.provider.connection)];
|
|
4677
|
-
case 2:
|
|
4678
|
-
if (!(_f.sent())) {
|
|
4679
|
-
instructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, compoundingTokenAccount, publicKey, poolConfig.compoundingTokenMint));
|
|
4680
|
-
}
|
|
4681
|
-
if (!(inTokenSymbol == 'SOL')) return [3, 5];
|
|
4585
|
+
instructions.push((0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(publicKey, lpTokenAccount, publicKey, poolConfig.stakedLpTokenMint, spl_token_1.TOKEN_PROGRAM_ID));
|
|
4586
|
+
instructions.push((0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(publicKey, compoundingTokenAccount, publicKey, poolConfig.compoundingTokenMint, spl_token_1.TOKEN_PROGRAM_ID));
|
|
4587
|
+
if (!(inTokenSymbol == 'SOL')) return [3, 3];
|
|
4682
4588
|
console.log("inTokenSymbol === SOL", inTokenSymbol);
|
|
4683
4589
|
lamports = amountIn.add(new anchor_1.BN(this.minimumBalanceForRentExemptAccountLamports));
|
|
4684
|
-
if (!!skipBalanceChecks) return [3,
|
|
4590
|
+
if (!!skipBalanceChecks) return [3, 2];
|
|
4685
4591
|
_e = anchor_1.BN.bind;
|
|
4686
4592
|
return [4, this.provider.connection.getBalance(publicKey)];
|
|
4687
|
-
case
|
|
4593
|
+
case 1:
|
|
4688
4594
|
unWrappedSolBalance = new (_e.apply(anchor_1.BN, [void 0, _f.sent()]))();
|
|
4689
4595
|
if (unWrappedSolBalance.lt(lamports)) {
|
|
4690
4596
|
throw "Insufficient SOL Funds";
|
|
4691
4597
|
}
|
|
4692
|
-
_f.label =
|
|
4693
|
-
case
|
|
4598
|
+
_f.label = 2;
|
|
4599
|
+
case 2:
|
|
4694
4600
|
if (!ephemeralSignerPubkey) {
|
|
4695
4601
|
wrappedSolAccount = new web3_js_1.Keypair();
|
|
4696
4602
|
additionalSigners.push(wrappedSolAccount);
|
|
@@ -4708,17 +4614,17 @@ var PerpetualsClient = (function () {
|
|
|
4708
4614
|
postInstructions = [
|
|
4709
4615
|
(0, spl_token_1.createCloseAccountInstruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), publicKey, publicKey),
|
|
4710
4616
|
];
|
|
4711
|
-
return [3,
|
|
4712
|
-
case
|
|
4713
|
-
if (!!skipBalanceChecks) return [3,
|
|
4617
|
+
return [3, 5];
|
|
4618
|
+
case 3:
|
|
4619
|
+
if (!!skipBalanceChecks) return [3, 5];
|
|
4714
4620
|
return [4, (0, utils_1.checkIfAccountExists)(fundingAccount, this.provider.connection)];
|
|
4715
|
-
case
|
|
4621
|
+
case 4:
|
|
4716
4622
|
if (!(_f.sent())) {
|
|
4717
4623
|
throw "Insufficient Funds , token Account doesn't exist";
|
|
4718
4624
|
}
|
|
4719
|
-
_f.label =
|
|
4720
|
-
case
|
|
4721
|
-
_f.trys.push([
|
|
4625
|
+
_f.label = 5;
|
|
4626
|
+
case 5:
|
|
4627
|
+
_f.trys.push([5, 7, , 8]);
|
|
4722
4628
|
if (enableHeapSizeIx) {
|
|
4723
4629
|
heapSizeIx = web3_js_1.ComputeBudgetProgram.requestHeapFrame({
|
|
4724
4630
|
bytes: 64 * 1024,
|
|
@@ -4760,15 +4666,15 @@ var PerpetualsClient = (function () {
|
|
|
4760
4666
|
})
|
|
4761
4667
|
.remainingAccounts(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], custodyAccountMetas, true), custodyOracleAccountMetas, true), markets, true), (isWhitelistedUser ? [whitelistMeta] : []), true))
|
|
4762
4668
|
.instruction()];
|
|
4763
|
-
case
|
|
4669
|
+
case 6:
|
|
4764
4670
|
addCompoundingLiquidity = _f.sent();
|
|
4765
4671
|
instructions.push(addCompoundingLiquidity);
|
|
4766
|
-
return [3,
|
|
4767
|
-
case
|
|
4672
|
+
return [3, 8];
|
|
4673
|
+
case 7:
|
|
4768
4674
|
err_16 = _f.sent();
|
|
4769
4675
|
console.log("perpClient addCompoundingLiquidity error:: ", err_16);
|
|
4770
|
-
return [3,
|
|
4771
|
-
case
|
|
4676
|
+
return [3, 8];
|
|
4677
|
+
case 8: return [2, {
|
|
4772
4678
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
4773
4679
|
additionalSigners: additionalSigners
|
|
4774
4680
|
}];
|
|
@@ -4782,14 +4688,14 @@ var PerpetualsClient = (function () {
|
|
|
4782
4688
|
args_1[_i - 5] = arguments[_i];
|
|
4783
4689
|
}
|
|
4784
4690
|
return __awaiter(_this, __spreadArray([compoundingAmountIn_1, minAmountOut_1, outTokenSymbol_1, rewardTokenMint_1, poolConfig_1], args_1, true), void 0, function (compoundingAmountIn, minAmountOut, outTokenSymbol, rewardTokenMint, poolConfig, createUserATA, ephemeralSignerPubkey, userPublicKey, enableHeapSizeIx, isWhitelistedUser) {
|
|
4785
|
-
var publicKey, userReceivingTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, rewardCustody, outCustodyConfig, lpTokenMint, compoundingTokenMint, lamports,
|
|
4691
|
+
var publicKey, userReceivingTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, rewardCustody, outCustodyConfig, lpTokenMint, compoundingTokenMint, lamports, custodyAccountMetas, custodyOracleAccountMetas, markets, _a, _b, custody, _c, _d, market, compoundingTokenAccount, heapSizeIx, whitelistPda, whitelistMeta, removeCompoundingLiquidity, err_17;
|
|
4786
4692
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
4787
4693
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
4788
4694
|
if (userPublicKey === void 0) { userPublicKey = undefined; }
|
|
4789
4695
|
if (enableHeapSizeIx === void 0) { enableHeapSizeIx = true; }
|
|
4790
4696
|
if (isWhitelistedUser === void 0) { isWhitelistedUser = false; }
|
|
4791
|
-
return __generator(this, function (
|
|
4792
|
-
switch (
|
|
4697
|
+
return __generator(this, function (_e) {
|
|
4698
|
+
switch (_e.label) {
|
|
4793
4699
|
case 0:
|
|
4794
4700
|
publicKey = userPublicKey !== null && userPublicKey !== void 0 ? userPublicKey : this.provider.wallet.publicKey;
|
|
4795
4701
|
preInstructions = [];
|
|
@@ -4800,45 +4706,35 @@ var PerpetualsClient = (function () {
|
|
|
4800
4706
|
outCustodyConfig = poolConfig.custodies.find(function (i) { return i.mintKey.equals(poolConfig.getTokenFromSymbol(outTokenSymbol).mintKey); });
|
|
4801
4707
|
lpTokenMint = poolConfig.stakedLpTokenMint;
|
|
4802
4708
|
compoundingTokenMint = poolConfig.compoundingTokenMint;
|
|
4803
|
-
if (
|
|
4804
|
-
|
|
4805
|
-
|
|
4806
|
-
|
|
4807
|
-
|
|
4709
|
+
if (outCustodyConfig.symbol == 'SOL') {
|
|
4710
|
+
lamports = this.minimumBalanceForRentExemptAccountLamports;
|
|
4711
|
+
if (!ephemeralSignerPubkey) {
|
|
4712
|
+
wrappedSolAccount = new web3_js_1.Keypair();
|
|
4713
|
+
additionalSigners.push(wrappedSolAccount);
|
|
4714
|
+
}
|
|
4715
|
+
preInstructions = [
|
|
4716
|
+
web3_js_1.SystemProgram.createAccount({
|
|
4717
|
+
fromPubkey: publicKey,
|
|
4718
|
+
newAccountPubkey: (ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey),
|
|
4719
|
+
lamports: lamports,
|
|
4720
|
+
space: 165,
|
|
4721
|
+
programId: spl_token_1.TOKEN_PROGRAM_ID,
|
|
4722
|
+
}),
|
|
4723
|
+
(0, spl_token_1.createInitializeAccount3Instruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), spl_token_1.NATIVE_MINT, publicKey),
|
|
4724
|
+
];
|
|
4725
|
+
postInstructions = [
|
|
4726
|
+
(0, spl_token_1.createCloseAccountInstruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), publicKey, publicKey),
|
|
4727
|
+
];
|
|
4808
4728
|
}
|
|
4809
|
-
|
|
4810
|
-
|
|
4811
|
-
|
|
4812
|
-
newAccountPubkey: (ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey),
|
|
4813
|
-
lamports: lamports,
|
|
4814
|
-
space: 165,
|
|
4815
|
-
programId: spl_token_1.TOKEN_PROGRAM_ID,
|
|
4816
|
-
}),
|
|
4817
|
-
(0, spl_token_1.createInitializeAccount3Instruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), spl_token_1.NATIVE_MINT, publicKey),
|
|
4818
|
-
];
|
|
4819
|
-
postInstructions = [
|
|
4820
|
-
(0, spl_token_1.createCloseAccountInstruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), publicKey, publicKey),
|
|
4821
|
-
];
|
|
4822
|
-
return [3, 4];
|
|
4823
|
-
case 1:
|
|
4824
|
-
userReceivingTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(outCustodyConfig.mintKey, publicKey, true, poolConfig.getTokenFromSymbol(outTokenSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID);
|
|
4825
|
-
_a = createUserATA;
|
|
4826
|
-
if (!_a) return [3, 3];
|
|
4827
|
-
return [4, (0, utils_1.checkIfAccountExists)(userReceivingTokenAccount, this.provider.connection)];
|
|
4828
|
-
case 2:
|
|
4829
|
-
_a = !(_f.sent());
|
|
4830
|
-
_f.label = 3;
|
|
4831
|
-
case 3:
|
|
4832
|
-
if (_a) {
|
|
4833
|
-
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, userReceivingTokenAccount, publicKey, outCustodyConfig.mintKey, poolConfig.getTokenFromSymbol(outTokenSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID));
|
|
4729
|
+
else {
|
|
4730
|
+
userReceivingTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(outCustodyConfig.mintKey, publicKey, true, poolConfig.getTokenFromSymbol(outTokenSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID);
|
|
4731
|
+
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(publicKey, userReceivingTokenAccount, publicKey, outCustodyConfig.mintKey, poolConfig.getTokenFromSymbol(outTokenSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID));
|
|
4834
4732
|
}
|
|
4835
|
-
_f.label = 4;
|
|
4836
|
-
case 4:
|
|
4837
4733
|
custodyAccountMetas = [];
|
|
4838
4734
|
custodyOracleAccountMetas = [];
|
|
4839
4735
|
markets = [];
|
|
4840
|
-
for (
|
|
4841
|
-
custody =
|
|
4736
|
+
for (_a = 0, _b = poolConfig.custodies; _a < _b.length; _a++) {
|
|
4737
|
+
custody = _b[_a];
|
|
4842
4738
|
custodyAccountMetas.push({
|
|
4843
4739
|
pubkey: custody.custodyAccount,
|
|
4844
4740
|
isSigner: false,
|
|
@@ -4850,8 +4746,8 @@ var PerpetualsClient = (function () {
|
|
|
4850
4746
|
isWritable: false,
|
|
4851
4747
|
});
|
|
4852
4748
|
}
|
|
4853
|
-
for (
|
|
4854
|
-
market =
|
|
4749
|
+
for (_c = 0, _d = poolConfig.markets; _c < _d.length; _c++) {
|
|
4750
|
+
market = _d[_c];
|
|
4855
4751
|
markets.push({
|
|
4856
4752
|
pubkey: market.marketAccount,
|
|
4857
4753
|
isSigner: false,
|
|
@@ -4859,9 +4755,9 @@ var PerpetualsClient = (function () {
|
|
|
4859
4755
|
});
|
|
4860
4756
|
}
|
|
4861
4757
|
compoundingTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(compoundingTokenMint, publicKey, true);
|
|
4862
|
-
|
|
4863
|
-
case
|
|
4864
|
-
|
|
4758
|
+
_e.label = 1;
|
|
4759
|
+
case 1:
|
|
4760
|
+
_e.trys.push([1, 3, , 4]);
|
|
4865
4761
|
if (enableHeapSizeIx) {
|
|
4866
4762
|
heapSizeIx = web3_js_1.ComputeBudgetProgram.requestHeapFrame({
|
|
4867
4763
|
bytes: 64 * 1024,
|
|
@@ -4903,15 +4799,15 @@ var PerpetualsClient = (function () {
|
|
|
4903
4799
|
})
|
|
4904
4800
|
.remainingAccounts(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], custodyAccountMetas, true), custodyOracleAccountMetas, true), markets, true), (isWhitelistedUser ? [whitelistMeta] : []), true))
|
|
4905
4801
|
.instruction()];
|
|
4906
|
-
case
|
|
4907
|
-
removeCompoundingLiquidity =
|
|
4802
|
+
case 2:
|
|
4803
|
+
removeCompoundingLiquidity = _e.sent();
|
|
4908
4804
|
instructions.push(removeCompoundingLiquidity);
|
|
4909
|
-
return [3,
|
|
4910
|
-
case
|
|
4911
|
-
err_17 =
|
|
4805
|
+
return [3, 4];
|
|
4806
|
+
case 3:
|
|
4807
|
+
err_17 = _e.sent();
|
|
4912
4808
|
console.log("perpClient removeCompoundingLiquidity error:: ", err_17);
|
|
4913
|
-
return [3,
|
|
4914
|
-
case
|
|
4809
|
+
return [3, 4];
|
|
4810
|
+
case 4: return [2, {
|
|
4915
4811
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
4916
4812
|
additionalSigners: additionalSigners
|
|
4917
4813
|
}];
|
|
@@ -4925,10 +4821,10 @@ var PerpetualsClient = (function () {
|
|
|
4925
4821
|
args_1[_i - 3] = arguments[_i];
|
|
4926
4822
|
}
|
|
4927
4823
|
return __awaiter(_this, __spreadArray([amount_1, rewardTokenMint_1, poolConfig_1], args_1, true), void 0, function (amount, rewardTokenMint, poolConfig, createUserATA, userPublicKey) {
|
|
4928
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustody, lpTokenMint, compoundingTokenMint, compoudingTokenAccount,
|
|
4824
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustody, lpTokenMint, compoundingTokenMint, compoudingTokenAccount, flpStakeAccount, tokenStakeAccount, tokenStakeAccounts, _a, poolStakedLpVault, custodyAccountMetas, custodyOracleAccountMetas, markets, _b, _c, custody, _d, _e, market, migrateStake, err_18;
|
|
4929
4825
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
4930
|
-
return __generator(this, function (
|
|
4931
|
-
switch (
|
|
4826
|
+
return __generator(this, function (_f) {
|
|
4827
|
+
switch (_f.label) {
|
|
4932
4828
|
case 0:
|
|
4933
4829
|
publicKey = userPublicKey !== null && userPublicKey !== void 0 ? userPublicKey : this.provider.wallet.publicKey;
|
|
4934
4830
|
preInstructions = [];
|
|
@@ -4939,27 +4835,18 @@ var PerpetualsClient = (function () {
|
|
|
4939
4835
|
lpTokenMint = poolConfig.stakedLpTokenMint;
|
|
4940
4836
|
compoundingTokenMint = poolConfig.compoundingTokenMint;
|
|
4941
4837
|
compoudingTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(compoundingTokenMint, publicKey, true);
|
|
4942
|
-
|
|
4943
|
-
if (!_a) return [3, 2];
|
|
4944
|
-
return [4, (0, utils_1.checkIfAccountExists)(compoudingTokenAccount, this.provider.connection)];
|
|
4945
|
-
case 1:
|
|
4946
|
-
_a = !(_g.sent());
|
|
4947
|
-
_g.label = 2;
|
|
4948
|
-
case 2:
|
|
4949
|
-
if (_a) {
|
|
4950
|
-
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, compoudingTokenAccount, publicKey, compoundingTokenMint));
|
|
4951
|
-
}
|
|
4838
|
+
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(publicKey, compoudingTokenAccount, publicKey, compoundingTokenMint, spl_token_1.TOKEN_PROGRAM_ID));
|
|
4952
4839
|
flpStakeAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("stake"), publicKey.toBuffer(), poolConfig.poolAddress.toBuffer()], this.programId)[0];
|
|
4953
4840
|
tokenStakeAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("token_stake"), publicKey.toBuffer()], this.programId)[0];
|
|
4954
4841
|
tokenStakeAccounts = [];
|
|
4955
|
-
|
|
4956
|
-
if (!
|
|
4842
|
+
_a = tokenStakeAccount;
|
|
4843
|
+
if (!_a) return [3, 2];
|
|
4957
4844
|
return [4, (0, utils_1.checkIfAccountExists)(tokenStakeAccount, this.provider.connection)];
|
|
4958
|
-
case
|
|
4959
|
-
|
|
4960
|
-
|
|
4961
|
-
case
|
|
4962
|
-
if (
|
|
4845
|
+
case 1:
|
|
4846
|
+
_a = (_f.sent());
|
|
4847
|
+
_f.label = 2;
|
|
4848
|
+
case 2:
|
|
4849
|
+
if (_a) {
|
|
4963
4850
|
tokenStakeAccounts.push({
|
|
4964
4851
|
pubkey: tokenStakeAccount,
|
|
4965
4852
|
isSigner: false,
|
|
@@ -4970,8 +4857,8 @@ var PerpetualsClient = (function () {
|
|
|
4970
4857
|
custodyAccountMetas = [];
|
|
4971
4858
|
custodyOracleAccountMetas = [];
|
|
4972
4859
|
markets = [];
|
|
4973
|
-
for (
|
|
4974
|
-
custody =
|
|
4860
|
+
for (_b = 0, _c = poolConfig.custodies; _b < _c.length; _b++) {
|
|
4861
|
+
custody = _c[_b];
|
|
4975
4862
|
custodyAccountMetas.push({
|
|
4976
4863
|
pubkey: custody.custodyAccount,
|
|
4977
4864
|
isSigner: false,
|
|
@@ -4983,17 +4870,17 @@ var PerpetualsClient = (function () {
|
|
|
4983
4870
|
isWritable: false,
|
|
4984
4871
|
});
|
|
4985
4872
|
}
|
|
4986
|
-
for (
|
|
4987
|
-
market =
|
|
4873
|
+
for (_d = 0, _e = poolConfig.markets; _d < _e.length; _d++) {
|
|
4874
|
+
market = _e[_d];
|
|
4988
4875
|
markets.push({
|
|
4989
4876
|
pubkey: market.marketAccount,
|
|
4990
4877
|
isSigner: false,
|
|
4991
4878
|
isWritable: false,
|
|
4992
4879
|
});
|
|
4993
4880
|
}
|
|
4994
|
-
|
|
4995
|
-
case
|
|
4996
|
-
|
|
4881
|
+
_f.label = 3;
|
|
4882
|
+
case 3:
|
|
4883
|
+
_f.trys.push([3, 5, , 6]);
|
|
4997
4884
|
return [4, this.program.methods
|
|
4998
4885
|
.migrateStake({
|
|
4999
4886
|
amount: amount
|
|
@@ -5018,15 +4905,15 @@ var PerpetualsClient = (function () {
|
|
|
5018
4905
|
})
|
|
5019
4906
|
.remainingAccounts(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], custodyAccountMetas, true), custodyOracleAccountMetas, true), markets, true), tokenStakeAccounts, true))
|
|
5020
4907
|
.instruction()];
|
|
5021
|
-
case
|
|
5022
|
-
migrateStake =
|
|
4908
|
+
case 4:
|
|
4909
|
+
migrateStake = _f.sent();
|
|
5023
4910
|
instructions.push(migrateStake);
|
|
5024
|
-
return [3,
|
|
5025
|
-
case
|
|
5026
|
-
err_18 =
|
|
4911
|
+
return [3, 6];
|
|
4912
|
+
case 5:
|
|
4913
|
+
err_18 = _f.sent();
|
|
5027
4914
|
console.log("perpClient migrateStake error:: ", err_18);
|
|
5028
|
-
return [3,
|
|
5029
|
-
case
|
|
4915
|
+
return [3, 6];
|
|
4916
|
+
case 6: return [2, {
|
|
5030
4917
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5031
4918
|
additionalSigners: additionalSigners
|
|
5032
4919
|
}];
|
|
@@ -5203,14 +5090,10 @@ var PerpetualsClient = (function () {
|
|
|
5203
5090
|
additionalSigners = [];
|
|
5204
5091
|
_a.label = 1;
|
|
5205
5092
|
case 1:
|
|
5206
|
-
_a.trys.push([1,
|
|
5093
|
+
_a.trys.push([1, 3, , 4]);
|
|
5207
5094
|
tokenStakeAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("token_stake"), owner.toBuffer()], this.programId)[0];
|
|
5208
5095
|
userTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(poolConfig.tokenMint, owner, true);
|
|
5209
|
-
|
|
5210
|
-
case 2:
|
|
5211
|
-
if (!(_a.sent())) {
|
|
5212
|
-
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(feePayer, userTokenAccount, owner, poolConfig.tokenMint));
|
|
5213
|
-
}
|
|
5096
|
+
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(feePayer, userTokenAccount, owner, poolConfig.tokenMint, spl_token_1.TOKEN_PROGRAM_ID));
|
|
5214
5097
|
return [4, this.program.methods
|
|
5215
5098
|
.depositTokenStake({
|
|
5216
5099
|
depositAmount: depositAmount
|
|
@@ -5230,15 +5113,15 @@ var PerpetualsClient = (function () {
|
|
|
5230
5113
|
tokenMint: poolConfig.tokenMint,
|
|
5231
5114
|
})
|
|
5232
5115
|
.instruction()];
|
|
5233
|
-
case
|
|
5116
|
+
case 2:
|
|
5234
5117
|
depositTokenStakeInstruction = _a.sent();
|
|
5235
5118
|
instructions.push(depositTokenStakeInstruction);
|
|
5236
|
-
return [3,
|
|
5237
|
-
case
|
|
5119
|
+
return [3, 4];
|
|
5120
|
+
case 3:
|
|
5238
5121
|
err_21 = _a.sent();
|
|
5239
5122
|
console.log("perpClient depositStakingInstruction error:: ", err_21);
|
|
5240
5123
|
throw err_21;
|
|
5241
|
-
case
|
|
5124
|
+
case 4: return [2, {
|
|
5242
5125
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5243
5126
|
additionalSigners: additionalSigners
|
|
5244
5127
|
}];
|
|
@@ -5296,14 +5179,10 @@ var PerpetualsClient = (function () {
|
|
|
5296
5179
|
additionalSigners = [];
|
|
5297
5180
|
_a.label = 1;
|
|
5298
5181
|
case 1:
|
|
5299
|
-
_a.trys.push([1,
|
|
5182
|
+
_a.trys.push([1, 3, , 4]);
|
|
5300
5183
|
tokenStakeAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("token_stake"), owner.toBuffer()], this.programId)[0];
|
|
5301
5184
|
userTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(poolConfig.tokenMint, owner, true);
|
|
5302
|
-
|
|
5303
|
-
case 2:
|
|
5304
|
-
if (!(_a.sent())) {
|
|
5305
|
-
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(this.provider.wallet.publicKey, userTokenAccount, owner, poolConfig.tokenMint));
|
|
5306
|
-
}
|
|
5185
|
+
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(this.provider.wallet.publicKey, userTokenAccount, owner, poolConfig.tokenMint, spl_token_1.TOKEN_PROGRAM_ID));
|
|
5307
5186
|
return [4, this.program.methods
|
|
5308
5187
|
.unstakeTokenInstant({
|
|
5309
5188
|
unstakeAmount: unstakeAmount
|
|
@@ -5322,15 +5201,15 @@ var PerpetualsClient = (function () {
|
|
|
5322
5201
|
tokenMint: poolConfig.tokenMint,
|
|
5323
5202
|
})
|
|
5324
5203
|
.instruction()];
|
|
5325
|
-
case
|
|
5204
|
+
case 2:
|
|
5326
5205
|
unstakeTokenInstantInstruction = _a.sent();
|
|
5327
5206
|
instructions.push(unstakeTokenInstantInstruction);
|
|
5328
|
-
return [3,
|
|
5329
|
-
case
|
|
5207
|
+
return [3, 4];
|
|
5208
|
+
case 3:
|
|
5330
5209
|
err_23 = _a.sent();
|
|
5331
5210
|
console.log("perpClient unstakeTokenInstantInstruction error:: ", err_23);
|
|
5332
5211
|
throw err_23;
|
|
5333
|
-
case
|
|
5212
|
+
case 4: return [2, {
|
|
5334
5213
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5335
5214
|
additionalSigners: additionalSigners
|
|
5336
5215
|
}];
|
|
@@ -5348,14 +5227,10 @@ var PerpetualsClient = (function () {
|
|
|
5348
5227
|
additionalSigners = [];
|
|
5349
5228
|
_a.label = 1;
|
|
5350
5229
|
case 1:
|
|
5351
|
-
_a.trys.push([1,
|
|
5230
|
+
_a.trys.push([1, 3, , 4]);
|
|
5352
5231
|
tokenStakeAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("token_stake"), owner.toBuffer()], this.programId)[0];
|
|
5353
5232
|
userTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(poolConfig.tokenMint, owner, true);
|
|
5354
|
-
|
|
5355
|
-
case 2:
|
|
5356
|
-
if (!(_a.sent())) {
|
|
5357
|
-
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(this.provider.wallet.publicKey, userTokenAccount, owner, poolConfig.tokenMint));
|
|
5358
|
-
}
|
|
5233
|
+
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(this.provider.wallet.publicKey, userTokenAccount, owner, poolConfig.tokenMint, spl_token_1.TOKEN_PROGRAM_ID));
|
|
5359
5234
|
return [4, this.program.methods
|
|
5360
5235
|
.withdrawToken({
|
|
5361
5236
|
withdrawRequestId: withdrawRequestId
|
|
@@ -5374,15 +5249,15 @@ var PerpetualsClient = (function () {
|
|
|
5374
5249
|
tokenMint: poolConfig.tokenMint,
|
|
5375
5250
|
})
|
|
5376
5251
|
.instruction()];
|
|
5377
|
-
case
|
|
5252
|
+
case 2:
|
|
5378
5253
|
withdrawTokenInstruction = _a.sent();
|
|
5379
5254
|
instructions.push(withdrawTokenInstruction);
|
|
5380
|
-
return [3,
|
|
5381
|
-
case
|
|
5255
|
+
return [3, 4];
|
|
5256
|
+
case 3:
|
|
5382
5257
|
err_24 = _a.sent();
|
|
5383
5258
|
console.log("perpClient withdrawTokenInstruction error:: ", err_24);
|
|
5384
5259
|
throw err_24;
|
|
5385
|
-
case
|
|
5260
|
+
case 4: return [2, {
|
|
5386
5261
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5387
5262
|
additionalSigners: additionalSigners
|
|
5388
5263
|
}];
|
|
@@ -5435,31 +5310,22 @@ var PerpetualsClient = (function () {
|
|
|
5435
5310
|
args_1[_i - 2] = arguments[_i];
|
|
5436
5311
|
}
|
|
5437
5312
|
return __awaiter(_this, __spreadArray([owner_1, poolConfig_1], args_1, true), void 0, function (owner, poolConfig, createUserATA, userPublicKey) {
|
|
5438
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, userTokenAccount,
|
|
5313
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, userTokenAccount, collectTokenRewardInstruction, err_26;
|
|
5439
5314
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
5440
|
-
return __generator(this, function (
|
|
5441
|
-
switch (
|
|
5315
|
+
return __generator(this, function (_a) {
|
|
5316
|
+
switch (_a.label) {
|
|
5442
5317
|
case 0:
|
|
5443
5318
|
publicKey = userPublicKey !== null && userPublicKey !== void 0 ? userPublicKey : this.provider.wallet.publicKey;
|
|
5444
5319
|
preInstructions = [];
|
|
5445
5320
|
instructions = [];
|
|
5446
5321
|
postInstructions = [];
|
|
5447
5322
|
additionalSigners = [];
|
|
5448
|
-
|
|
5323
|
+
_a.label = 1;
|
|
5449
5324
|
case 1:
|
|
5450
|
-
|
|
5325
|
+
_a.trys.push([1, 3, , 4]);
|
|
5451
5326
|
tokenStakeAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("token_stake"), owner.toBuffer()], this.programId)[0];
|
|
5452
5327
|
userTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(poolConfig.tokenMint, owner, true);
|
|
5453
|
-
|
|
5454
|
-
if (!_a) return [3, 3];
|
|
5455
|
-
return [4, (0, utils_1.checkIfAccountExists)(userTokenAccount, this.provider.connection)];
|
|
5456
|
-
case 2:
|
|
5457
|
-
_a = !(_b.sent());
|
|
5458
|
-
_b.label = 3;
|
|
5459
|
-
case 3:
|
|
5460
|
-
if (_a) {
|
|
5461
|
-
instructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, userTokenAccount, publicKey, poolConfig.tokenMint));
|
|
5462
|
-
}
|
|
5328
|
+
instructions.push((0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(publicKey, userTokenAccount, publicKey, poolConfig.tokenMint, spl_token_1.TOKEN_PROGRAM_ID));
|
|
5463
5329
|
return [4, this.program.methods
|
|
5464
5330
|
.collectTokenReward({})
|
|
5465
5331
|
.accounts({
|
|
@@ -5476,15 +5342,15 @@ var PerpetualsClient = (function () {
|
|
|
5476
5342
|
tokenMint: poolConfig.tokenMint,
|
|
5477
5343
|
})
|
|
5478
5344
|
.instruction()];
|
|
5479
|
-
case
|
|
5480
|
-
collectTokenRewardInstruction =
|
|
5345
|
+
case 2:
|
|
5346
|
+
collectTokenRewardInstruction = _a.sent();
|
|
5481
5347
|
instructions.push(collectTokenRewardInstruction);
|
|
5482
|
-
return [3,
|
|
5483
|
-
case
|
|
5484
|
-
err_26 =
|
|
5348
|
+
return [3, 4];
|
|
5349
|
+
case 3:
|
|
5350
|
+
err_26 = _a.sent();
|
|
5485
5351
|
console.log("perpClient collectTokenRewardInstruction error:: ", err_26);
|
|
5486
5352
|
throw err_26;
|
|
5487
|
-
case
|
|
5353
|
+
case 4: return [2, {
|
|
5488
5354
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5489
5355
|
additionalSigners: additionalSigners
|
|
5490
5356
|
}];
|
|
@@ -5498,32 +5364,23 @@ var PerpetualsClient = (function () {
|
|
|
5498
5364
|
args_1[_i - 3] = arguments[_i];
|
|
5499
5365
|
}
|
|
5500
5366
|
return __awaiter(_this, __spreadArray([owner_1, rewardSymbol_1, poolConfig_1], args_1, true), void 0, function (owner, rewardSymbol, poolConfig, createUserATA) {
|
|
5501
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyMint, tokenStakeAccount, userTokenAccount,
|
|
5367
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyMint, tokenStakeAccount, userTokenAccount, collectRevenueInstruction, err_27;
|
|
5502
5368
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
5503
|
-
return __generator(this, function (
|
|
5504
|
-
switch (
|
|
5369
|
+
return __generator(this, function (_a) {
|
|
5370
|
+
switch (_a.label) {
|
|
5505
5371
|
case 0:
|
|
5506
5372
|
publicKey = this.provider.wallet.publicKey;
|
|
5507
5373
|
preInstructions = [];
|
|
5508
5374
|
instructions = [];
|
|
5509
5375
|
postInstructions = [];
|
|
5510
5376
|
additionalSigners = [];
|
|
5511
|
-
|
|
5377
|
+
_a.label = 1;
|
|
5512
5378
|
case 1:
|
|
5513
|
-
|
|
5379
|
+
_a.trys.push([1, 3, , 4]);
|
|
5514
5380
|
rewardCustodyMint = poolConfig.getTokenFromSymbol(rewardSymbol).mintKey;
|
|
5515
5381
|
tokenStakeAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("token_stake"), owner.toBuffer()], this.programId)[0];
|
|
5516
5382
|
userTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(rewardCustodyMint, owner, true);
|
|
5517
|
-
|
|
5518
|
-
if (!_a) return [3, 3];
|
|
5519
|
-
return [4, (0, utils_1.checkIfAccountExists)(userTokenAccount, this.provider.connection)];
|
|
5520
|
-
case 2:
|
|
5521
|
-
_a = !(_b.sent());
|
|
5522
|
-
_b.label = 3;
|
|
5523
|
-
case 3:
|
|
5524
|
-
if (_a) {
|
|
5525
|
-
instructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, userTokenAccount, publicKey, rewardCustodyMint));
|
|
5526
|
-
}
|
|
5383
|
+
instructions.push((0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(publicKey, userTokenAccount, publicKey, rewardCustodyMint, spl_token_1.TOKEN_PROGRAM_ID));
|
|
5527
5384
|
return [4, this.program.methods
|
|
5528
5385
|
.collectRevenue({})
|
|
5529
5386
|
.accounts({
|
|
@@ -5540,15 +5397,15 @@ var PerpetualsClient = (function () {
|
|
|
5540
5397
|
receivingTokenMint: rewardCustodyMint,
|
|
5541
5398
|
})
|
|
5542
5399
|
.instruction()];
|
|
5543
|
-
case
|
|
5544
|
-
collectRevenueInstruction =
|
|
5400
|
+
case 2:
|
|
5401
|
+
collectRevenueInstruction = _a.sent();
|
|
5545
5402
|
instructions.push(collectRevenueInstruction);
|
|
5546
|
-
return [3,
|
|
5547
|
-
case
|
|
5548
|
-
err_27 =
|
|
5403
|
+
return [3, 4];
|
|
5404
|
+
case 3:
|
|
5405
|
+
err_27 = _a.sent();
|
|
5549
5406
|
console.log("perpClient collectRevenueInstruction error:: ", err_27);
|
|
5550
5407
|
throw err_27;
|
|
5551
|
-
case
|
|
5408
|
+
case 4: return [2, {
|
|
5552
5409
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5553
5410
|
additionalSigners: additionalSigners
|
|
5554
5411
|
}];
|
|
@@ -5562,32 +5419,23 @@ var PerpetualsClient = (function () {
|
|
|
5562
5419
|
args_1[_i - 3] = arguments[_i];
|
|
5563
5420
|
}
|
|
5564
5421
|
return __awaiter(_this, __spreadArray([owner_1, rebateSymbol_1, poolConfig_1], args_1, true), void 0, function (owner, rebateSymbol, poolConfig, createUserATA) {
|
|
5565
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rebateMint, tokenStakeAccount, userTokenAccount,
|
|
5422
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rebateMint, tokenStakeAccount, userTokenAccount, collectRebateInstruction, err_28;
|
|
5566
5423
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
5567
|
-
return __generator(this, function (
|
|
5568
|
-
switch (
|
|
5424
|
+
return __generator(this, function (_a) {
|
|
5425
|
+
switch (_a.label) {
|
|
5569
5426
|
case 0:
|
|
5570
5427
|
publicKey = this.provider.wallet.publicKey;
|
|
5571
5428
|
preInstructions = [];
|
|
5572
5429
|
instructions = [];
|
|
5573
5430
|
postInstructions = [];
|
|
5574
5431
|
additionalSigners = [];
|
|
5575
|
-
|
|
5432
|
+
_a.label = 1;
|
|
5576
5433
|
case 1:
|
|
5577
|
-
|
|
5434
|
+
_a.trys.push([1, 3, , 4]);
|
|
5578
5435
|
rebateMint = poolConfig.getTokenFromSymbol(rebateSymbol).mintKey;
|
|
5579
5436
|
tokenStakeAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("token_stake"), owner.toBuffer()], this.programId)[0];
|
|
5580
5437
|
userTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(rebateMint, owner, true);
|
|
5581
|
-
|
|
5582
|
-
if (!_a) return [3, 3];
|
|
5583
|
-
return [4, (0, utils_1.checkIfAccountExists)(userTokenAccount, this.provider.connection)];
|
|
5584
|
-
case 2:
|
|
5585
|
-
_a = !(_b.sent());
|
|
5586
|
-
_b.label = 3;
|
|
5587
|
-
case 3:
|
|
5588
|
-
if (_a) {
|
|
5589
|
-
instructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, userTokenAccount, publicKey, rebateMint));
|
|
5590
|
-
}
|
|
5438
|
+
instructions.push((0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(publicKey, userTokenAccount, publicKey, rebateMint, spl_token_1.TOKEN_PROGRAM_ID));
|
|
5591
5439
|
return [4, this.program.methods
|
|
5592
5440
|
.collectRebate()
|
|
5593
5441
|
.accounts({
|
|
@@ -5604,15 +5452,15 @@ var PerpetualsClient = (function () {
|
|
|
5604
5452
|
receivingTokenMint: rebateMint,
|
|
5605
5453
|
})
|
|
5606
5454
|
.instruction()];
|
|
5607
|
-
case
|
|
5608
|
-
collectRebateInstruction =
|
|
5455
|
+
case 2:
|
|
5456
|
+
collectRebateInstruction = _a.sent();
|
|
5609
5457
|
instructions.push(collectRebateInstruction);
|
|
5610
|
-
return [3,
|
|
5611
|
-
case
|
|
5612
|
-
err_28 =
|
|
5458
|
+
return [3, 4];
|
|
5459
|
+
case 3:
|
|
5460
|
+
err_28 = _a.sent();
|
|
5613
5461
|
console.log("perpClient collectRebateInstruction error:: ", err_28);
|
|
5614
5462
|
throw err_28;
|
|
5615
|
-
case
|
|
5463
|
+
case 4: return [2, {
|
|
5616
5464
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5617
5465
|
additionalSigners: additionalSigners
|
|
5618
5466
|
}];
|
|
@@ -5796,11 +5644,11 @@ var PerpetualsClient = (function () {
|
|
|
5796
5644
|
args_1[_i - 11] = arguments[_i];
|
|
5797
5645
|
}
|
|
5798
5646
|
return __awaiter(_this, __spreadArray([targetSymbol_1, collateralSymbol_1, reserveSymbol_1, receiveSymbol_1, side_1, orderId_1, limitPrice_1, sizeAmount_1, stopLossPrice_1, takeProfitPrice_1, poolConfig_1], args_1, true), void 0, function (targetSymbol, collateralSymbol, reserveSymbol, receiveSymbol, side, orderId, limitPrice, sizeAmount, stopLossPrice, takeProfitPrice, poolConfig, createUserATA, ephemeralSignerPubkey, userPublicKey) {
|
|
5799
|
-
var publicKey, targetCustodyConfig, reserveCustodyConfig, collateralCustodyConfig, receiveCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, wrappedSolAccount, userReceivingTokenAccount, lamports,
|
|
5647
|
+
var publicKey, targetCustodyConfig, reserveCustodyConfig, collateralCustodyConfig, receiveCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, wrappedSolAccount, userReceivingTokenAccount, lamports, positionAccount, orderAccount, editLimitOrder, err_31;
|
|
5800
5648
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
5801
5649
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
5802
|
-
return __generator(this, function (
|
|
5803
|
-
switch (
|
|
5650
|
+
return __generator(this, function (_a) {
|
|
5651
|
+
switch (_a.label) {
|
|
5804
5652
|
case 0:
|
|
5805
5653
|
publicKey = userPublicKey !== null && userPublicKey !== void 0 ? userPublicKey : this.provider.wallet.publicKey;
|
|
5806
5654
|
targetCustodyConfig = poolConfig.custodies.find(function (i) { return i.mintKey.equals(poolConfig.getTokenFromSymbol(targetSymbol).mintKey); });
|
|
@@ -5812,43 +5660,33 @@ var PerpetualsClient = (function () {
|
|
|
5812
5660
|
instructions = [];
|
|
5813
5661
|
postInstructions = [];
|
|
5814
5662
|
additionalSigners = [];
|
|
5815
|
-
|
|
5663
|
+
_a.label = 1;
|
|
5816
5664
|
case 1:
|
|
5817
|
-
|
|
5818
|
-
if (
|
|
5819
|
-
|
|
5820
|
-
|
|
5821
|
-
|
|
5822
|
-
|
|
5665
|
+
_a.trys.push([1, 3, , 4]);
|
|
5666
|
+
if (reserveSymbol == 'SOL') {
|
|
5667
|
+
lamports = (this.minimumBalanceForRentExemptAccountLamports);
|
|
5668
|
+
if (!ephemeralSignerPubkey) {
|
|
5669
|
+
wrappedSolAccount = new web3_js_1.Keypair();
|
|
5670
|
+
additionalSigners.push(wrappedSolAccount);
|
|
5671
|
+
}
|
|
5672
|
+
preInstructions = [
|
|
5673
|
+
web3_js_1.SystemProgram.createAccount({
|
|
5674
|
+
fromPubkey: publicKey,
|
|
5675
|
+
newAccountPubkey: (ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey),
|
|
5676
|
+
lamports: lamports,
|
|
5677
|
+
space: 165,
|
|
5678
|
+
programId: spl_token_1.TOKEN_PROGRAM_ID,
|
|
5679
|
+
}),
|
|
5680
|
+
(0, spl_token_1.createInitializeAccount3Instruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), spl_token_1.NATIVE_MINT, publicKey),
|
|
5681
|
+
];
|
|
5682
|
+
postInstructions = [
|
|
5683
|
+
(0, spl_token_1.createCloseAccountInstruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), publicKey, publicKey),
|
|
5684
|
+
];
|
|
5823
5685
|
}
|
|
5824
|
-
|
|
5825
|
-
|
|
5826
|
-
|
|
5827
|
-
newAccountPubkey: (ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey),
|
|
5828
|
-
lamports: lamports,
|
|
5829
|
-
space: 165,
|
|
5830
|
-
programId: spl_token_1.TOKEN_PROGRAM_ID,
|
|
5831
|
-
}),
|
|
5832
|
-
(0, spl_token_1.createInitializeAccount3Instruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), spl_token_1.NATIVE_MINT, publicKey),
|
|
5833
|
-
];
|
|
5834
|
-
postInstructions = [
|
|
5835
|
-
(0, spl_token_1.createCloseAccountInstruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), publicKey, publicKey),
|
|
5836
|
-
];
|
|
5837
|
-
return [3, 5];
|
|
5838
|
-
case 2:
|
|
5839
|
-
userReceivingTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(poolConfig.getTokenFromSymbol(reserveSymbol).mintKey, publicKey, true, poolConfig.getTokenFromSymbol(reserveSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID);
|
|
5840
|
-
_a = createUserATA;
|
|
5841
|
-
if (!_a) return [3, 4];
|
|
5842
|
-
return [4, (0, utils_1.checkIfAccountExists)(userReceivingTokenAccount, this.provider.connection)];
|
|
5843
|
-
case 3:
|
|
5844
|
-
_a = !(_b.sent());
|
|
5845
|
-
_b.label = 4;
|
|
5846
|
-
case 4:
|
|
5847
|
-
if (_a) {
|
|
5848
|
-
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, userReceivingTokenAccount, publicKey, poolConfig.getTokenFromSymbol(reserveSymbol).mintKey, poolConfig.getTokenFromSymbol(reserveSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID));
|
|
5686
|
+
else {
|
|
5687
|
+
userReceivingTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(poolConfig.getTokenFromSymbol(reserveSymbol).mintKey, publicKey, true, poolConfig.getTokenFromSymbol(reserveSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID);
|
|
5688
|
+
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(publicKey, userReceivingTokenAccount, publicKey, poolConfig.getTokenFromSymbol(reserveSymbol).mintKey, poolConfig.getTokenFromSymbol(reserveSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID));
|
|
5849
5689
|
}
|
|
5850
|
-
_b.label = 5;
|
|
5851
|
-
case 5:
|
|
5852
5690
|
positionAccount = poolConfig.getPositionFromMarketPk(publicKey, marketAccount);
|
|
5853
5691
|
orderAccount = poolConfig.getOrderFromMarketPk(publicKey, marketAccount);
|
|
5854
5692
|
return [4, this.program.methods
|
|
@@ -5882,15 +5720,15 @@ var PerpetualsClient = (function () {
|
|
|
5882
5720
|
receivingMint: poolConfig.getTokenFromSymbol(reserveSymbol).mintKey
|
|
5883
5721
|
})
|
|
5884
5722
|
.instruction()];
|
|
5885
|
-
case
|
|
5886
|
-
editLimitOrder =
|
|
5723
|
+
case 2:
|
|
5724
|
+
editLimitOrder = _a.sent();
|
|
5887
5725
|
instructions.push(editLimitOrder);
|
|
5888
|
-
return [3,
|
|
5889
|
-
case
|
|
5890
|
-
err_31 =
|
|
5726
|
+
return [3, 4];
|
|
5727
|
+
case 3:
|
|
5728
|
+
err_31 = _a.sent();
|
|
5891
5729
|
console.log("perpClient editLimitOrder error:: ", err_31);
|
|
5892
5730
|
throw err_31;
|
|
5893
|
-
case
|
|
5731
|
+
case 4: return [2, {
|
|
5894
5732
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5895
5733
|
additionalSigners: additionalSigners
|
|
5896
5734
|
}];
|
|
@@ -6248,13 +6086,13 @@ var PerpetualsClient = (function () {
|
|
|
6248
6086
|
args_1[_i - 9] = arguments[_i];
|
|
6249
6087
|
}
|
|
6250
6088
|
return __awaiter(_this, __spreadArray([owner_1, targetSymbol_1, collateralSymbol_1, receivingSymbol_1, side_1, orderId_1, isStopLoss_1, privilege_1, poolConfig_1], args_1, true), void 0, function (owner, targetSymbol, collateralSymbol, receivingSymbol, side, orderId, isStopLoss, privilege, poolConfig, createUserATA, ephemeralSignerPubkey, tokenStakeAccount, userReferralAccount) {
|
|
6251
|
-
var payerPubkey, targetCustodyConfig, collateralCustodyConfig, receivingCustodyConfig, marketAccount, userReceivingTokenAccount, userReceivingTokenAccountCollateral, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, collateralToken, receivingToken,
|
|
6089
|
+
var payerPubkey, targetCustodyConfig, collateralCustodyConfig, receivingCustodyConfig, marketAccount, userReceivingTokenAccount, userReceivingTokenAccountCollateral, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, collateralToken, receivingToken, positionAccount, orderAccount, custodyAccountMetas, custodyOracleAccountMetas, _a, _b, custody, executeTriggerWithSwap, err_38;
|
|
6252
6090
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
6253
6091
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
6254
6092
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
6255
6093
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
6256
|
-
return __generator(this, function (
|
|
6257
|
-
switch (
|
|
6094
|
+
return __generator(this, function (_c) {
|
|
6095
|
+
switch (_c.label) {
|
|
6258
6096
|
case 0:
|
|
6259
6097
|
payerPubkey = this.provider.wallet.publicKey;
|
|
6260
6098
|
targetCustodyConfig = poolConfig.custodies.find(function (i) { return i.mintKey.equals(poolConfig.getTokenFromSymbol(targetSymbol).mintKey); });
|
|
@@ -6267,42 +6105,23 @@ var PerpetualsClient = (function () {
|
|
|
6267
6105
|
additionalSigners = [];
|
|
6268
6106
|
collateralToken = poolConfig.getTokenFromSymbol(collateralSymbol);
|
|
6269
6107
|
receivingToken = poolConfig.getTokenFromSymbol(receivingSymbol);
|
|
6270
|
-
|
|
6108
|
+
_c.label = 1;
|
|
6271
6109
|
case 1:
|
|
6272
|
-
|
|
6273
|
-
if (
|
|
6274
|
-
return [3, 7];
|
|
6275
|
-
case 2:
|
|
6276
|
-
userReceivingTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(poolConfig.getTokenFromSymbol(receivingSymbol).mintKey, owner, true, receivingToken.isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID);
|
|
6277
|
-
_a = createUserATA;
|
|
6278
|
-
if (!_a) return [3, 4];
|
|
6279
|
-
return [4, (0, utils_1.checkIfAccountExists)(userReceivingTokenAccount, this.provider.connection)];
|
|
6280
|
-
case 3:
|
|
6281
|
-
_a = !(_e.sent());
|
|
6282
|
-
_e.label = 4;
|
|
6283
|
-
case 4:
|
|
6284
|
-
if (_a) {
|
|
6285
|
-
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(payerPubkey, userReceivingTokenAccount, owner, poolConfig.getTokenFromSymbol(receivingSymbol).mintKey));
|
|
6110
|
+
_c.trys.push([1, 3, , 4]);
|
|
6111
|
+
if (false) {
|
|
6286
6112
|
}
|
|
6287
|
-
|
|
6288
|
-
|
|
6289
|
-
|
|
6290
|
-
|
|
6291
|
-
|
|
6292
|
-
_b = !(_e.sent());
|
|
6293
|
-
_e.label = 6;
|
|
6294
|
-
case 6:
|
|
6295
|
-
if (_b) {
|
|
6296
|
-
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(payerPubkey, userReceivingTokenAccountCollateral, owner, poolConfig.getTokenFromSymbol(collateralSymbol).mintKey));
|
|
6113
|
+
else {
|
|
6114
|
+
userReceivingTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(poolConfig.getTokenFromSymbol(receivingSymbol).mintKey, owner, true, receivingToken.isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID);
|
|
6115
|
+
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(payerPubkey, userReceivingTokenAccount, owner, poolConfig.getTokenFromSymbol(receivingSymbol).mintKey, spl_token_1.TOKEN_PROGRAM_ID));
|
|
6116
|
+
userReceivingTokenAccountCollateral = (0, spl_token_1.getAssociatedTokenAddressSync)(poolConfig.getTokenFromSymbol(collateralSymbol).mintKey, owner, true, poolConfig.getTokenFromSymbol(collateralSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID);
|
|
6117
|
+
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(payerPubkey, userReceivingTokenAccountCollateral, owner, poolConfig.getTokenFromSymbol(collateralSymbol).mintKey, poolConfig.getTokenFromSymbol(collateralSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID));
|
|
6297
6118
|
}
|
|
6298
|
-
_e.label = 7;
|
|
6299
|
-
case 7:
|
|
6300
6119
|
positionAccount = poolConfig.getPositionFromMarketPk(owner, marketAccount);
|
|
6301
6120
|
orderAccount = poolConfig.getOrderFromMarketPk(owner, marketAccount);
|
|
6302
6121
|
custodyAccountMetas = [];
|
|
6303
6122
|
custodyOracleAccountMetas = [];
|
|
6304
|
-
for (
|
|
6305
|
-
custody =
|
|
6123
|
+
for (_a = 0, _b = poolConfig.custodies; _a < _b.length; _a++) {
|
|
6124
|
+
custody = _b[_a];
|
|
6306
6125
|
custodyAccountMetas.push({
|
|
6307
6126
|
pubkey: custody.custodyAccount,
|
|
6308
6127
|
isSigner: false,
|
|
@@ -6349,15 +6168,15 @@ var PerpetualsClient = (function () {
|
|
|
6349
6168
|
})
|
|
6350
6169
|
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
6351
6170
|
.instruction()];
|
|
6352
|
-
case
|
|
6353
|
-
executeTriggerWithSwap =
|
|
6171
|
+
case 2:
|
|
6172
|
+
executeTriggerWithSwap = _c.sent();
|
|
6354
6173
|
instructions.push(executeTriggerWithSwap);
|
|
6355
|
-
return [3,
|
|
6356
|
-
case
|
|
6357
|
-
err_38 =
|
|
6174
|
+
return [3, 4];
|
|
6175
|
+
case 3:
|
|
6176
|
+
err_38 = _c.sent();
|
|
6358
6177
|
console.log("perpClient executeTriggerWithSwap error:: ", err_38);
|
|
6359
6178
|
throw err_38;
|
|
6360
|
-
case
|
|
6179
|
+
case 4: return [2, {
|
|
6361
6180
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6362
6181
|
additionalSigners: additionalSigners
|
|
6363
6182
|
}];
|
|
@@ -6371,13 +6190,13 @@ var PerpetualsClient = (function () {
|
|
|
6371
6190
|
args_1[_i - 8] = arguments[_i];
|
|
6372
6191
|
}
|
|
6373
6192
|
return __awaiter(_this, __spreadArray([owner_1, targetSymbol_1, collateralSymbol_1, side_1, orderId_1, isStopLoss_1, privilege_1, poolConfig_1], args_1, true), void 0, function (owner, targetSymbol, collateralSymbol, side, orderId, isStopLoss, privilege, poolConfig, createUserATA, ephemeralSignerPubkey, tokenStakeAccount, userReferralAccount) {
|
|
6374
|
-
var payerPubkey, targetCustodyConfig, collateralCustodyConfig, marketAccount, userReceivingTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners,
|
|
6193
|
+
var payerPubkey, targetCustodyConfig, collateralCustodyConfig, marketAccount, userReceivingTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, positionAccount, orderAccount, executeTriggerOrder, err_39;
|
|
6375
6194
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
6376
6195
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
6377
6196
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
6378
6197
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
6379
|
-
return __generator(this, function (
|
|
6380
|
-
switch (
|
|
6198
|
+
return __generator(this, function (_a) {
|
|
6199
|
+
switch (_a.label) {
|
|
6381
6200
|
case 0:
|
|
6382
6201
|
payerPubkey = this.provider.wallet.publicKey;
|
|
6383
6202
|
targetCustodyConfig = poolConfig.custodies.find(function (i) { return i.mintKey.equals(poolConfig.getTokenFromSymbol(targetSymbol).mintKey); });
|
|
@@ -6387,25 +6206,15 @@ var PerpetualsClient = (function () {
|
|
|
6387
6206
|
instructions = [];
|
|
6388
6207
|
postInstructions = [];
|
|
6389
6208
|
additionalSigners = [];
|
|
6390
|
-
|
|
6209
|
+
_a.label = 1;
|
|
6391
6210
|
case 1:
|
|
6392
|
-
|
|
6393
|
-
if (
|
|
6394
|
-
|
|
6395
|
-
|
|
6396
|
-
|
|
6397
|
-
|
|
6398
|
-
if (!_a) return [3, 4];
|
|
6399
|
-
return [4, (0, utils_1.checkIfAccountExists)(userReceivingTokenAccount, this.provider.connection)];
|
|
6400
|
-
case 3:
|
|
6401
|
-
_a = !(_b.sent());
|
|
6402
|
-
_b.label = 4;
|
|
6403
|
-
case 4:
|
|
6404
|
-
if (_a) {
|
|
6405
|
-
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(payerPubkey, userReceivingTokenAccount, owner, poolConfig.getTokenFromSymbol(collateralSymbol).mintKey, poolConfig.getTokenFromSymbol(collateralSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID));
|
|
6211
|
+
_a.trys.push([1, 3, , 4]);
|
|
6212
|
+
if (false) {
|
|
6213
|
+
}
|
|
6214
|
+
else {
|
|
6215
|
+
userReceivingTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(poolConfig.getTokenFromSymbol(collateralSymbol).mintKey, owner, true, poolConfig.getTokenFromSymbol(collateralSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID);
|
|
6216
|
+
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(payerPubkey, userReceivingTokenAccount, owner, poolConfig.getTokenFromSymbol(collateralSymbol).mintKey, poolConfig.getTokenFromSymbol(collateralSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID));
|
|
6406
6217
|
}
|
|
6407
|
-
_b.label = 5;
|
|
6408
|
-
case 5:
|
|
6409
6218
|
positionAccount = poolConfig.getPositionFromMarketPk(owner, marketAccount);
|
|
6410
6219
|
orderAccount = poolConfig.getOrderFromMarketPk(owner, marketAccount);
|
|
6411
6220
|
return [4, this.program.methods
|
|
@@ -6437,15 +6246,15 @@ var PerpetualsClient = (function () {
|
|
|
6437
6246
|
})
|
|
6438
6247
|
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
6439
6248
|
.instruction()];
|
|
6440
|
-
case
|
|
6441
|
-
executeTriggerOrder =
|
|
6249
|
+
case 2:
|
|
6250
|
+
executeTriggerOrder = _a.sent();
|
|
6442
6251
|
instructions.push(executeTriggerOrder);
|
|
6443
|
-
return [3,
|
|
6444
|
-
case
|
|
6445
|
-
err_39 =
|
|
6252
|
+
return [3, 4];
|
|
6253
|
+
case 3:
|
|
6254
|
+
err_39 = _a.sent();
|
|
6446
6255
|
console.log("perpClient executeTriggerOrder error:: ", err_39);
|
|
6447
6256
|
throw err_39;
|
|
6448
|
-
case
|
|
6257
|
+
case 4: return [2, {
|
|
6449
6258
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6450
6259
|
additionalSigners: additionalSigners
|
|
6451
6260
|
}];
|
|
@@ -6459,15 +6268,15 @@ var PerpetualsClient = (function () {
|
|
|
6459
6268
|
args_1[_i - 5] = arguments[_i];
|
|
6460
6269
|
}
|
|
6461
6270
|
return __awaiter(_this, __spreadArray([userInputTokenSymbol_1, userOutputTokenSymbol_1, amountIn_1, minAmountOut_1, poolConfig_1], args_1, true), void 0, function (userInputTokenSymbol, userOutputTokenSymbol, amountIn, minAmountOut, poolConfig, useFeesPool, createUserATA, unWrapSol, skipBalanceChecks, ephemeralSignerPubkey, isWhitelistedUser, userPublicKey) {
|
|
6462
|
-
var userInputCustodyConfig, userOutputCustodyConfig, publicKey, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, userOutputTokenAccount, userInputTokenAccount, wsolAssociatedTokenAccount,
|
|
6271
|
+
var userInputCustodyConfig, userOutputCustodyConfig, publicKey, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, userOutputTokenAccount, userInputTokenAccount, wsolAssociatedTokenAccount, unWrappedSolBalance, _a, wsolAssociatedTokenAccount, closeWsolATAIns, accCreationLamports, lamports, unWrappedSolBalance, _b, tokenAccountBalance, _c, lamports, custodyAccountMetas, custodyOracleAccountMetas, _d, _e, custody, whitelistPda, whitelistMeta, params, inx, closeWsolATAIns, err_40;
|
|
6463
6272
|
if (useFeesPool === void 0) { useFeesPool = false; }
|
|
6464
6273
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
6465
6274
|
if (unWrapSol === void 0) { unWrapSol = false; }
|
|
6466
6275
|
if (skipBalanceChecks === void 0) { skipBalanceChecks = false; }
|
|
6467
6276
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
6468
6277
|
if (isWhitelistedUser === void 0) { isWhitelistedUser = false; }
|
|
6469
|
-
return __generator(this, function (
|
|
6470
|
-
switch (
|
|
6278
|
+
return __generator(this, function (_f) {
|
|
6279
|
+
switch (_f.label) {
|
|
6471
6280
|
case 0:
|
|
6472
6281
|
userInputCustodyConfig = poolConfig.custodies.find(function (i) { return i.mintKey.equals(poolConfig.getTokenFromSymbol(userInputTokenSymbol).mintKey); });
|
|
6473
6282
|
if (!userInputCustodyConfig) {
|
|
@@ -6482,26 +6291,21 @@ var PerpetualsClient = (function () {
|
|
|
6482
6291
|
instructions = [];
|
|
6483
6292
|
postInstructions = [];
|
|
6484
6293
|
additionalSigners = [];
|
|
6485
|
-
if (!(userInputTokenSymbol == 'SOL' && userOutputTokenSymbol == 'WSOL')) return [3,
|
|
6294
|
+
if (!(userInputTokenSymbol == 'SOL' && userOutputTokenSymbol == 'WSOL')) return [3, 4];
|
|
6486
6295
|
return [4, (0, spl_token_1.getAssociatedTokenAddress)(spl_token_1.NATIVE_MINT, publicKey, true)];
|
|
6487
6296
|
case 1:
|
|
6488
|
-
wsolAssociatedTokenAccount =
|
|
6489
|
-
|
|
6490
|
-
|
|
6491
|
-
wsolATAExist = _g.sent();
|
|
6492
|
-
if (!wsolATAExist) {
|
|
6493
|
-
instructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, wsolAssociatedTokenAccount, publicKey, spl_token_1.NATIVE_MINT));
|
|
6494
|
-
}
|
|
6495
|
-
if (!!skipBalanceChecks) return [3, 4];
|
|
6297
|
+
wsolAssociatedTokenAccount = _f.sent();
|
|
6298
|
+
instructions.push((0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(publicKey, wsolAssociatedTokenAccount, publicKey, spl_token_1.NATIVE_MINT, spl_token_1.TOKEN_PROGRAM_ID));
|
|
6299
|
+
if (!!skipBalanceChecks) return [3, 3];
|
|
6496
6300
|
_a = anchor_1.BN.bind;
|
|
6497
6301
|
return [4, this.provider.connection.getBalance(publicKey)];
|
|
6498
|
-
case
|
|
6499
|
-
unWrappedSolBalance = new (_a.apply(anchor_1.BN, [void 0,
|
|
6302
|
+
case 2:
|
|
6303
|
+
unWrappedSolBalance = new (_a.apply(anchor_1.BN, [void 0, _f.sent()]))();
|
|
6500
6304
|
if (unWrappedSolBalance.lt(amountIn)) {
|
|
6501
6305
|
throw "Insufficient SOL Funds";
|
|
6502
6306
|
}
|
|
6503
|
-
|
|
6504
|
-
case
|
|
6307
|
+
_f.label = 3;
|
|
6308
|
+
case 3:
|
|
6505
6309
|
instructions.push(web3_js_1.SystemProgram.transfer({
|
|
6506
6310
|
fromPubkey: publicKey,
|
|
6507
6311
|
toPubkey: wsolAssociatedTokenAccount,
|
|
@@ -6511,7 +6315,7 @@ var PerpetualsClient = (function () {
|
|
|
6511
6315
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6512
6316
|
additionalSigners: additionalSigners
|
|
6513
6317
|
}];
|
|
6514
|
-
case
|
|
6318
|
+
case 4:
|
|
6515
6319
|
if (userInputTokenSymbol == 'WSOL' && userOutputTokenSymbol == 'SOL') {
|
|
6516
6320
|
console.log("WSOL=> SOL : NOTE : ONLY WAY IS TO CLOSE THE WSOL ATA and GET ALL SOL ");
|
|
6517
6321
|
wsolAssociatedTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(spl_token_1.NATIVE_MINT, publicKey, true);
|
|
@@ -6522,20 +6326,20 @@ var PerpetualsClient = (function () {
|
|
|
6522
6326
|
additionalSigners: additionalSigners
|
|
6523
6327
|
}];
|
|
6524
6328
|
}
|
|
6525
|
-
|
|
6526
|
-
case
|
|
6527
|
-
|
|
6528
|
-
if (!(userInputTokenSymbol == 'SOL')) return [3,
|
|
6329
|
+
_f.label = 5;
|
|
6330
|
+
case 5:
|
|
6331
|
+
_f.trys.push([5, 16, , 17]);
|
|
6332
|
+
if (!(userInputTokenSymbol == 'SOL')) return [3, 8];
|
|
6529
6333
|
console.log("userInputTokenSymbol === sol", userInputTokenSymbol);
|
|
6530
6334
|
return [4, (0, spl_token_1.getMinimumBalanceForRentExemptAccount)(this.provider.connection)];
|
|
6531
|
-
case
|
|
6532
|
-
accCreationLamports = (
|
|
6335
|
+
case 6:
|
|
6336
|
+
accCreationLamports = (_f.sent());
|
|
6533
6337
|
console.log("accCreationLamports:", accCreationLamports);
|
|
6534
6338
|
lamports = amountIn.add(new anchor_1.BN(accCreationLamports));
|
|
6535
6339
|
_b = anchor_1.BN.bind;
|
|
6536
6340
|
return [4, this.provider.connection.getBalance(publicKey)];
|
|
6537
|
-
case
|
|
6538
|
-
unWrappedSolBalance = new (_b.apply(anchor_1.BN, [void 0,
|
|
6341
|
+
case 7:
|
|
6342
|
+
unWrappedSolBalance = new (_b.apply(anchor_1.BN, [void 0, _f.sent()]))();
|
|
6539
6343
|
if (unWrappedSolBalance.lt(amountIn)) {
|
|
6540
6344
|
throw "Insufficient SOL Funds";
|
|
6541
6345
|
}
|
|
@@ -6557,25 +6361,25 @@ var PerpetualsClient = (function () {
|
|
|
6557
6361
|
postInstructions = [
|
|
6558
6362
|
(0, spl_token_1.createCloseAccountInstruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), publicKey, publicKey),
|
|
6559
6363
|
];
|
|
6560
|
-
return [3,
|
|
6561
|
-
case
|
|
6364
|
+
return [3, 11];
|
|
6365
|
+
case 8:
|
|
6562
6366
|
userInputTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(poolConfig.getTokenFromSymbol(userInputTokenSymbol).mintKey, publicKey, true, poolConfig.getTokenFromSymbol(userInputTokenSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID);
|
|
6563
6367
|
return [4, (0, utils_1.checkIfAccountExists)(userInputTokenAccount, this.provider.connection)];
|
|
6564
|
-
case
|
|
6565
|
-
if (!(
|
|
6368
|
+
case 9:
|
|
6369
|
+
if (!(_f.sent())) {
|
|
6566
6370
|
throw "Insufficient Funds , Token Account doesn't exist";
|
|
6567
6371
|
}
|
|
6568
|
-
if (!!skipBalanceChecks) return [3,
|
|
6372
|
+
if (!!skipBalanceChecks) return [3, 11];
|
|
6569
6373
|
_c = anchor_1.BN.bind;
|
|
6570
6374
|
return [4, this.provider.connection.getTokenAccountBalance(userInputTokenAccount)];
|
|
6571
|
-
case
|
|
6572
|
-
tokenAccountBalance = new (_c.apply(anchor_1.BN, [void 0, (
|
|
6375
|
+
case 10:
|
|
6376
|
+
tokenAccountBalance = new (_c.apply(anchor_1.BN, [void 0, (_f.sent()).value.amount]))();
|
|
6573
6377
|
if (tokenAccountBalance.lt(amountIn)) {
|
|
6574
6378
|
throw "Insufficient Funds need more ".concat(amountIn.sub(tokenAccountBalance), " tokens");
|
|
6575
6379
|
}
|
|
6576
|
-
|
|
6577
|
-
case
|
|
6578
|
-
if (!(userOutputTokenSymbol == 'SOL')) return [3,
|
|
6380
|
+
_f.label = 11;
|
|
6381
|
+
case 11:
|
|
6382
|
+
if (!(userOutputTokenSymbol == 'SOL')) return [3, 12];
|
|
6579
6383
|
lamports = (this.minimumBalanceForRentExemptAccountLamports);
|
|
6580
6384
|
if (!ephemeralSignerPubkey) {
|
|
6581
6385
|
wrappedSolAccount = new web3_js_1.Keypair();
|
|
@@ -6595,26 +6399,17 @@ var PerpetualsClient = (function () {
|
|
|
6595
6399
|
postInstructions = [
|
|
6596
6400
|
(0, spl_token_1.createCloseAccountInstruction)((ephemeralSignerPubkey ? ephemeralSignerPubkey : wrappedSolAccount.publicKey), publicKey, publicKey),
|
|
6597
6401
|
];
|
|
6598
|
-
return [3,
|
|
6599
|
-
case
|
|
6402
|
+
return [3, 14];
|
|
6403
|
+
case 12: return [4, (0, spl_token_1.getAssociatedTokenAddress)(poolConfig.getTokenFromSymbol(userOutputTokenSymbol).mintKey, publicKey, true, poolConfig.getTokenFromSymbol(userOutputTokenSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID)];
|
|
6404
|
+
case 13:
|
|
6405
|
+
userOutputTokenAccount = _f.sent();
|
|
6406
|
+
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(publicKey, userOutputTokenAccount, publicKey, poolConfig.getTokenFromSymbol(userOutputTokenSymbol).mintKey, poolConfig.getTokenFromSymbol(userOutputTokenSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID));
|
|
6407
|
+
_f.label = 14;
|
|
6600
6408
|
case 14:
|
|
6601
|
-
userOutputTokenAccount = _g.sent();
|
|
6602
|
-
_d = createUserATA;
|
|
6603
|
-
if (!_d) return [3, 16];
|
|
6604
|
-
return [4, (0, utils_1.checkIfAccountExists)(userOutputTokenAccount, this.provider.connection)];
|
|
6605
|
-
case 15:
|
|
6606
|
-
_d = !(_g.sent());
|
|
6607
|
-
_g.label = 16;
|
|
6608
|
-
case 16:
|
|
6609
|
-
if (_d) {
|
|
6610
|
-
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, userOutputTokenAccount, publicKey, poolConfig.getTokenFromSymbol(userOutputTokenSymbol).mintKey, poolConfig.getTokenFromSymbol(userOutputTokenSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID));
|
|
6611
|
-
}
|
|
6612
|
-
_g.label = 17;
|
|
6613
|
-
case 17:
|
|
6614
6409
|
custodyAccountMetas = [];
|
|
6615
6410
|
custodyOracleAccountMetas = [];
|
|
6616
|
-
for (
|
|
6617
|
-
custody =
|
|
6411
|
+
for (_d = 0, _e = poolConfig.custodies; _d < _e.length; _d++) {
|
|
6412
|
+
custody = _e[_d];
|
|
6618
6413
|
custodyAccountMetas.push({
|
|
6619
6414
|
pubkey: custody.custodyAccount,
|
|
6620
6415
|
isSigner: false,
|
|
@@ -6662,19 +6457,19 @@ var PerpetualsClient = (function () {
|
|
|
6662
6457
|
})
|
|
6663
6458
|
.remainingAccounts(__spreadArray(__spreadArray(__spreadArray([], custodyAccountMetas, true), custodyOracleAccountMetas, true), (isWhitelistedUser ? [whitelistMeta] : []), true))
|
|
6664
6459
|
.instruction()];
|
|
6665
|
-
case
|
|
6666
|
-
inx =
|
|
6460
|
+
case 15:
|
|
6461
|
+
inx = _f.sent();
|
|
6667
6462
|
instructions.push(inx);
|
|
6668
6463
|
if (userOutputTokenSymbol == 'SOL' && unWrapSol) {
|
|
6669
6464
|
closeWsolATAIns = (0, spl_token_1.createCloseAccountInstruction)(userOutputTokenAccount, publicKey, publicKey);
|
|
6670
6465
|
instructions.push(closeWsolATAIns);
|
|
6671
6466
|
}
|
|
6672
|
-
return [3,
|
|
6673
|
-
case
|
|
6674
|
-
err_40 =
|
|
6467
|
+
return [3, 17];
|
|
6468
|
+
case 16:
|
|
6469
|
+
err_40 = _f.sent();
|
|
6675
6470
|
console.error("perpClient Swap error:: ", err_40);
|
|
6676
6471
|
throw err_40;
|
|
6677
|
-
case
|
|
6472
|
+
case 17: return [2, {
|
|
6678
6473
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6679
6474
|
additionalSigners: additionalSigners
|
|
6680
6475
|
}];
|
|
@@ -7716,15 +7511,11 @@ var PerpetualsClient = (function () {
|
|
|
7716
7511
|
additionalSigners = [];
|
|
7717
7512
|
_a.label = 1;
|
|
7718
7513
|
case 1:
|
|
7719
|
-
_a.trys.push([1,
|
|
7514
|
+
_a.trys.push([1, 4, , 5]);
|
|
7720
7515
|
return [4, (0, spl_token_1.getAssociatedTokenAddress)(poolConfig.tokenMint, publicKey, true)];
|
|
7721
7516
|
case 2:
|
|
7722
7517
|
receivingTokenAccount = _a.sent();
|
|
7723
|
-
|
|
7724
|
-
case 3:
|
|
7725
|
-
if (!(_a.sent())) {
|
|
7726
|
-
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, receivingTokenAccount, publicKey, poolConfig.tokenMint));
|
|
7727
|
-
}
|
|
7518
|
+
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(publicKey, receivingTokenAccount, publicKey, poolConfig.tokenMint, spl_token_1.TOKEN_PROGRAM_ID));
|
|
7728
7519
|
return [4, this.program.methods
|
|
7729
7520
|
.withdrawInstantFees({})
|
|
7730
7521
|
.accounts({
|
|
@@ -7739,15 +7530,15 @@ var PerpetualsClient = (function () {
|
|
|
7739
7530
|
receivingTokenMint: poolConfig.tokenMint,
|
|
7740
7531
|
})
|
|
7741
7532
|
.instruction()];
|
|
7742
|
-
case
|
|
7533
|
+
case 3:
|
|
7743
7534
|
withdrawInstantFeeInstruction = _a.sent();
|
|
7744
7535
|
instructions.push(withdrawInstantFeeInstruction);
|
|
7745
|
-
return [3,
|
|
7746
|
-
case
|
|
7536
|
+
return [3, 5];
|
|
7537
|
+
case 4:
|
|
7747
7538
|
err_57 = _a.sent();
|
|
7748
7539
|
console.log("perpClient withdrawInstantFeeInstruction error:: ", err_57);
|
|
7749
7540
|
throw err_57;
|
|
7750
|
-
case
|
|
7541
|
+
case 5: return [2, {
|
|
7751
7542
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
7752
7543
|
additionalSigners: additionalSigners
|
|
7753
7544
|
}];
|
|
@@ -7766,15 +7557,11 @@ var PerpetualsClient = (function () {
|
|
|
7766
7557
|
additionalSigners = [];
|
|
7767
7558
|
_a.label = 1;
|
|
7768
7559
|
case 1:
|
|
7769
|
-
_a.trys.push([1,
|
|
7560
|
+
_a.trys.push([1, 4, , 5]);
|
|
7770
7561
|
return [4, (0, spl_token_1.getAssociatedTokenAddress)(poolConfig.tokenMint, publicKey, true)];
|
|
7771
7562
|
case 2:
|
|
7772
7563
|
receivingTokenAccount = _a.sent();
|
|
7773
|
-
|
|
7774
|
-
case 3:
|
|
7775
|
-
if (!(_a.sent())) {
|
|
7776
|
-
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, receivingTokenAccount, publicKey, poolConfig.tokenMint));
|
|
7777
|
-
}
|
|
7564
|
+
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(publicKey, receivingTokenAccount, publicKey, poolConfig.tokenMint, spl_token_1.TOKEN_PROGRAM_ID));
|
|
7778
7565
|
return [4, this.program.methods
|
|
7779
7566
|
.withdrawUnclaimedTokens({})
|
|
7780
7567
|
.accounts({
|
|
@@ -7789,15 +7576,15 @@ var PerpetualsClient = (function () {
|
|
|
7789
7576
|
receivingTokenMint: poolConfig.tokenMint,
|
|
7790
7577
|
})
|
|
7791
7578
|
.instruction()];
|
|
7792
|
-
case
|
|
7579
|
+
case 3:
|
|
7793
7580
|
withdrawUnclaimedTokensInstruction = _a.sent();
|
|
7794
7581
|
instructions.push(withdrawUnclaimedTokensInstruction);
|
|
7795
|
-
return [3,
|
|
7796
|
-
case
|
|
7582
|
+
return [3, 5];
|
|
7583
|
+
case 4:
|
|
7797
7584
|
err_58 = _a.sent();
|
|
7798
7585
|
console.log("perpClient withdrawUnclaimedTokensInstruction error:: ", err_58);
|
|
7799
7586
|
throw err_58;
|
|
7800
|
-
case
|
|
7587
|
+
case 5: return [2, {
|
|
7801
7588
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
7802
7589
|
additionalSigners: additionalSigners
|
|
7803
7590
|
}];
|