flash-sdk 2.5.0 → 2.5.1
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/PerpetualsClient.d.ts +50 -28
- package/dist/PerpetualsClient.js +89 -77
- package/dist/PoolAccount.d.ts +0 -2
- package/dist/PoolConfig.json +65 -12
- package/dist/TradingAccount.d.ts +2 -0
- package/dist/constants/index.d.ts +1 -0
- package/dist/constants/index.js +2 -1
- package/dist/idl/perpetuals.d.ts +111 -73
- package/dist/idl/perpetuals.js +111 -73
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
@@ -3,7 +3,7 @@ import { Program, AnchorProvider, BN } from "@coral-xyz/anchor";
|
|
3
3
|
import { PublicKey, TransactionInstruction, Commitment, Signer, AddressLookupTableAccount } from "@solana/web3.js";
|
4
4
|
import { PoolAccount } from "./PoolAccount";
|
5
5
|
import { PositionAccount } from "./PositionAccount";
|
6
|
-
import { AddLiquidityAmountAndFee, BorrowRateParams, EntryPriceAndFee, ExitPriceAndFee, Fees, OracleParams, Permissions, PricingParams, RemoveCollateralData, RemoveLiquidityAmountAndFee, Side, TokenRatios, MinAndMaxPrice, FeesAction, ContractOraclePrice, Privilege } from "./types";
|
6
|
+
import { AddLiquidityAmountAndFee, BorrowRateParams, EntryPriceAndFee, ExitPriceAndFee, Fees, OracleParams, Permissions, PricingParams, RemoveCollateralData, RemoveLiquidityAmountAndFee, Side, TokenRatios, MinAndMaxPrice, FeesAction, ContractOraclePrice, Privilege, PerpetualsAccount, Trading } from "./types";
|
7
7
|
import { OraclePrice } from "./OraclePrice";
|
8
8
|
import { CustodyAccount } from "./CustodyAccount";
|
9
9
|
import { Perpetuals } from "./idl/perpetuals";
|
@@ -249,6 +249,8 @@ export declare class PerpetualsClient {
|
|
249
249
|
inceptionTime: BN;
|
250
250
|
transferAuthorityBump: number;
|
251
251
|
perpetualsBump: number;
|
252
|
+
tradeLimit: number;
|
253
|
+
rebateLimitUsd: number;
|
252
254
|
name: string;
|
253
255
|
flpMint: PublicKey;
|
254
256
|
oracleAuthority: PublicKey;
|
@@ -273,8 +275,6 @@ export declare class PerpetualsClient {
|
|
273
275
|
flpMintBump: number;
|
274
276
|
flpTokenAccountBump: number;
|
275
277
|
vpVolumeFactor: number;
|
276
|
-
padding: number[] | BN[] | BN[];
|
277
|
-
stakingFeeBoostBps: BN[];
|
278
278
|
market: PublicKey;
|
279
279
|
delegate: PublicKey;
|
280
280
|
openTime: BN;
|
@@ -304,7 +304,7 @@ export declare class PerpetualsClient {
|
|
304
304
|
lockedDecimals: number;
|
305
305
|
collateralDecimals: number;
|
306
306
|
refererTradingAccount: PublicKey;
|
307
|
-
|
307
|
+
padding: BN[] | BN[];
|
308
308
|
nftMint: PublicKey;
|
309
309
|
level: number;
|
310
310
|
voltagePoints: BN;
|
@@ -318,6 +318,8 @@ export declare class PerpetualsClient {
|
|
318
318
|
lpRewardsUsd: BN;
|
319
319
|
referralRebateUsd: BN;
|
320
320
|
};
|
321
|
+
timestamp: BN;
|
322
|
+
counter: BN;
|
321
323
|
}>;
|
322
324
|
getPoolKey: (name: string) => PublicKey;
|
323
325
|
getPool: (name: string) => Promise<{
|
@@ -508,6 +510,8 @@ export declare class PerpetualsClient {
|
|
508
510
|
inceptionTime: BN;
|
509
511
|
transferAuthorityBump: number;
|
510
512
|
perpetualsBump: number;
|
513
|
+
tradeLimit: number;
|
514
|
+
rebateLimitUsd: number;
|
511
515
|
name: string;
|
512
516
|
flpMint: PublicKey;
|
513
517
|
oracleAuthority: PublicKey;
|
@@ -532,8 +536,6 @@ export declare class PerpetualsClient {
|
|
532
536
|
flpMintBump: number;
|
533
537
|
flpTokenAccountBump: number;
|
534
538
|
vpVolumeFactor: number;
|
535
|
-
padding: number[] | BN[] | BN[];
|
536
|
-
stakingFeeBoostBps: BN[];
|
537
539
|
market: PublicKey;
|
538
540
|
delegate: PublicKey;
|
539
541
|
openTime: BN;
|
@@ -563,7 +565,7 @@ export declare class PerpetualsClient {
|
|
563
565
|
lockedDecimals: number;
|
564
566
|
collateralDecimals: number;
|
565
567
|
refererTradingAccount: PublicKey;
|
566
|
-
|
568
|
+
padding: BN[] | BN[];
|
567
569
|
nftMint: PublicKey;
|
568
570
|
level: number;
|
569
571
|
voltagePoints: BN;
|
@@ -577,6 +579,8 @@ export declare class PerpetualsClient {
|
|
577
579
|
lpRewardsUsd: BN;
|
578
580
|
referralRebateUsd: BN;
|
579
581
|
};
|
582
|
+
timestamp: BN;
|
583
|
+
counter: BN;
|
580
584
|
}>;
|
581
585
|
getPools: () => Promise<{
|
582
586
|
pool: PublicKey;
|
@@ -766,6 +770,8 @@ export declare class PerpetualsClient {
|
|
766
770
|
inceptionTime: BN;
|
767
771
|
transferAuthorityBump: number;
|
768
772
|
perpetualsBump: number;
|
773
|
+
tradeLimit: number;
|
774
|
+
rebateLimitUsd: number;
|
769
775
|
name: string;
|
770
776
|
flpMint: PublicKey;
|
771
777
|
oracleAuthority: PublicKey;
|
@@ -790,8 +796,6 @@ export declare class PerpetualsClient {
|
|
790
796
|
flpMintBump: number;
|
791
797
|
flpTokenAccountBump: number;
|
792
798
|
vpVolumeFactor: number;
|
793
|
-
padding: number[] | BN[] | BN[];
|
794
|
-
stakingFeeBoostBps: BN[];
|
795
799
|
market: PublicKey;
|
796
800
|
delegate: PublicKey;
|
797
801
|
openTime: BN;
|
@@ -821,7 +825,7 @@ export declare class PerpetualsClient {
|
|
821
825
|
lockedDecimals: number;
|
822
826
|
collateralDecimals: number;
|
823
827
|
refererTradingAccount: PublicKey;
|
824
|
-
|
828
|
+
padding: BN[] | BN[];
|
825
829
|
nftMint: PublicKey;
|
826
830
|
level: number;
|
827
831
|
voltagePoints: BN;
|
@@ -835,6 +839,8 @@ export declare class PerpetualsClient {
|
|
835
839
|
lpRewardsUsd: BN;
|
836
840
|
referralRebateUsd: BN;
|
837
841
|
};
|
842
|
+
timestamp: BN;
|
843
|
+
counter: BN;
|
838
844
|
}[]>;
|
839
845
|
getPoolLpTokenKey: (name: string) => PublicKey;
|
840
846
|
getCustodyKey: (poolName: string, tokenMint: PublicKey) => PublicKey;
|
@@ -1027,6 +1033,8 @@ export declare class PerpetualsClient {
|
|
1027
1033
|
inceptionTime: BN;
|
1028
1034
|
transferAuthorityBump: number;
|
1029
1035
|
perpetualsBump: number;
|
1036
|
+
tradeLimit: number;
|
1037
|
+
rebateLimitUsd: number;
|
1030
1038
|
name: string;
|
1031
1039
|
flpMint: PublicKey;
|
1032
1040
|
oracleAuthority: PublicKey;
|
@@ -1051,8 +1059,6 @@ export declare class PerpetualsClient {
|
|
1051
1059
|
flpMintBump: number;
|
1052
1060
|
flpTokenAccountBump: number;
|
1053
1061
|
vpVolumeFactor: number;
|
1054
|
-
padding: number[] | BN[] | BN[];
|
1055
|
-
stakingFeeBoostBps: BN[];
|
1056
1062
|
market: PublicKey;
|
1057
1063
|
delegate: PublicKey;
|
1058
1064
|
openTime: BN;
|
@@ -1082,7 +1088,7 @@ export declare class PerpetualsClient {
|
|
1082
1088
|
lockedDecimals: number;
|
1083
1089
|
collateralDecimals: number;
|
1084
1090
|
refererTradingAccount: PublicKey;
|
1085
|
-
|
1091
|
+
padding: BN[] | BN[];
|
1086
1092
|
nftMint: PublicKey;
|
1087
1093
|
level: number;
|
1088
1094
|
voltagePoints: BN;
|
@@ -1096,6 +1102,8 @@ export declare class PerpetualsClient {
|
|
1096
1102
|
lpRewardsUsd: BN;
|
1097
1103
|
referralRebateUsd: BN;
|
1098
1104
|
};
|
1105
|
+
timestamp: BN;
|
1106
|
+
counter: BN;
|
1099
1107
|
}>;
|
1100
1108
|
getMarketPk(targetCustody: PublicKey, collateralCustody: PublicKey, side: Side): PublicKey;
|
1101
1109
|
getPositionKey(owner: PublicKey, targetCustody: PublicKey, collateralCustody: PublicKey, side: Side): PublicKey;
|
@@ -1287,6 +1295,8 @@ export declare class PerpetualsClient {
|
|
1287
1295
|
inceptionTime: BN;
|
1288
1296
|
transferAuthorityBump: number;
|
1289
1297
|
perpetualsBump: number;
|
1298
|
+
tradeLimit: number;
|
1299
|
+
rebateLimitUsd: number;
|
1290
1300
|
name: string;
|
1291
1301
|
flpMint: PublicKey;
|
1292
1302
|
oracleAuthority: PublicKey;
|
@@ -1311,8 +1321,6 @@ export declare class PerpetualsClient {
|
|
1311
1321
|
flpMintBump: number;
|
1312
1322
|
flpTokenAccountBump: number;
|
1313
1323
|
vpVolumeFactor: number;
|
1314
|
-
padding: number[] | BN[] | BN[];
|
1315
|
-
stakingFeeBoostBps: BN[];
|
1316
1324
|
market: PublicKey;
|
1317
1325
|
delegate: PublicKey;
|
1318
1326
|
openTime: BN;
|
@@ -1342,7 +1350,7 @@ export declare class PerpetualsClient {
|
|
1342
1350
|
lockedDecimals: number;
|
1343
1351
|
collateralDecimals: number;
|
1344
1352
|
refererTradingAccount: PublicKey;
|
1345
|
-
|
1353
|
+
padding: BN[] | BN[];
|
1346
1354
|
nftMint: PublicKey;
|
1347
1355
|
level: number;
|
1348
1356
|
voltagePoints: BN;
|
@@ -1356,6 +1364,8 @@ export declare class PerpetualsClient {
|
|
1356
1364
|
lpRewardsUsd: BN;
|
1357
1365
|
referralRebateUsd: BN;
|
1358
1366
|
};
|
1367
|
+
timestamp: BN;
|
1368
|
+
counter: BN;
|
1359
1369
|
}>;
|
1360
1370
|
getUserPosition: (owner: PublicKey, targetCustody: PublicKey, collateralCustody: PublicKey, side: Side) => Promise<{
|
1361
1371
|
pool: PublicKey;
|
@@ -1545,6 +1555,8 @@ export declare class PerpetualsClient {
|
|
1545
1555
|
inceptionTime: BN;
|
1546
1556
|
transferAuthorityBump: number;
|
1547
1557
|
perpetualsBump: number;
|
1558
|
+
tradeLimit: number;
|
1559
|
+
rebateLimitUsd: number;
|
1548
1560
|
name: string;
|
1549
1561
|
flpMint: PublicKey;
|
1550
1562
|
oracleAuthority: PublicKey;
|
@@ -1569,8 +1581,6 @@ export declare class PerpetualsClient {
|
|
1569
1581
|
flpMintBump: number;
|
1570
1582
|
flpTokenAccountBump: number;
|
1571
1583
|
vpVolumeFactor: number;
|
1572
|
-
padding: number[] | BN[] | BN[];
|
1573
|
-
stakingFeeBoostBps: BN[];
|
1574
1584
|
market: PublicKey;
|
1575
1585
|
delegate: PublicKey;
|
1576
1586
|
openTime: BN;
|
@@ -1600,7 +1610,7 @@ export declare class PerpetualsClient {
|
|
1600
1610
|
lockedDecimals: number;
|
1601
1611
|
collateralDecimals: number;
|
1602
1612
|
refererTradingAccount: PublicKey;
|
1603
|
-
|
1613
|
+
padding: BN[] | BN[];
|
1604
1614
|
nftMint: PublicKey;
|
1605
1615
|
level: number;
|
1606
1616
|
voltagePoints: BN;
|
@@ -1614,6 +1624,8 @@ export declare class PerpetualsClient {
|
|
1614
1624
|
lpRewardsUsd: BN;
|
1615
1625
|
referralRebateUsd: BN;
|
1616
1626
|
};
|
1627
|
+
timestamp: BN;
|
1628
|
+
counter: BN;
|
1617
1629
|
}>;
|
1618
1630
|
getUserPositions: (wallet: PublicKey, poolConfig: PoolConfig) => Promise<{
|
1619
1631
|
owner: PublicKey;
|
@@ -1836,6 +1848,8 @@ export declare class PerpetualsClient {
|
|
1836
1848
|
inceptionTime: BN;
|
1837
1849
|
transferAuthorityBump: number;
|
1838
1850
|
perpetualsBump: number;
|
1851
|
+
tradeLimit: number;
|
1852
|
+
rebateLimitUsd: number;
|
1839
1853
|
name: string;
|
1840
1854
|
flpMint: PublicKey;
|
1841
1855
|
oracleAuthority: PublicKey;
|
@@ -1860,8 +1874,6 @@ export declare class PerpetualsClient {
|
|
1860
1874
|
flpMintBump: number;
|
1861
1875
|
flpTokenAccountBump: number;
|
1862
1876
|
vpVolumeFactor: number;
|
1863
|
-
padding: number[] | BN[] | BN[];
|
1864
|
-
stakingFeeBoostBps: BN[];
|
1865
1877
|
market: PublicKey;
|
1866
1878
|
delegate: PublicKey;
|
1867
1879
|
openTime: BN;
|
@@ -1891,7 +1903,7 @@ export declare class PerpetualsClient {
|
|
1891
1903
|
lockedDecimals: number;
|
1892
1904
|
collateralDecimals: number;
|
1893
1905
|
refererTradingAccount: PublicKey;
|
1894
|
-
|
1906
|
+
padding: BN[] | BN[];
|
1895
1907
|
nftMint: PublicKey;
|
1896
1908
|
level: number;
|
1897
1909
|
voltagePoints: BN;
|
@@ -1905,6 +1917,8 @@ export declare class PerpetualsClient {
|
|
1905
1917
|
lpRewardsUsd: BN;
|
1906
1918
|
referralRebateUsd: BN;
|
1907
1919
|
};
|
1920
|
+
timestamp: BN;
|
1921
|
+
counter: BN;
|
1908
1922
|
}>[]>;
|
1909
1923
|
getAllPositions: () => Promise<import("@coral-xyz/anchor").ProgramAccount<{
|
1910
1924
|
pool: PublicKey;
|
@@ -2094,6 +2108,8 @@ export declare class PerpetualsClient {
|
|
2094
2108
|
inceptionTime: BN;
|
2095
2109
|
transferAuthorityBump: number;
|
2096
2110
|
perpetualsBump: number;
|
2111
|
+
tradeLimit: number;
|
2112
|
+
rebateLimitUsd: number;
|
2097
2113
|
name: string;
|
2098
2114
|
flpMint: PublicKey;
|
2099
2115
|
oracleAuthority: PublicKey;
|
@@ -2118,8 +2134,6 @@ export declare class PerpetualsClient {
|
|
2118
2134
|
flpMintBump: number;
|
2119
2135
|
flpTokenAccountBump: number;
|
2120
2136
|
vpVolumeFactor: number;
|
2121
|
-
padding: number[] | BN[] | BN[];
|
2122
|
-
stakingFeeBoostBps: BN[];
|
2123
2137
|
market: PublicKey;
|
2124
2138
|
delegate: PublicKey;
|
2125
2139
|
openTime: BN;
|
@@ -2149,7 +2163,7 @@ export declare class PerpetualsClient {
|
|
2149
2163
|
lockedDecimals: number;
|
2150
2164
|
collateralDecimals: number;
|
2151
2165
|
refererTradingAccount: PublicKey;
|
2152
|
-
|
2166
|
+
padding: BN[] | BN[];
|
2153
2167
|
nftMint: PublicKey;
|
2154
2168
|
level: number;
|
2155
2169
|
voltagePoints: BN;
|
@@ -2163,6 +2177,8 @@ export declare class PerpetualsClient {
|
|
2163
2177
|
lpRewardsUsd: BN;
|
2164
2178
|
referralRebateUsd: BN;
|
2165
2179
|
};
|
2180
|
+
timestamp: BN;
|
2181
|
+
counter: BN;
|
2166
2182
|
}>[]>;
|
2167
2183
|
getAccountDiscriminator: (name: string) => Buffer;
|
2168
2184
|
log: (...message: string[]) => void;
|
@@ -2175,7 +2191,6 @@ export declare class PerpetualsClient {
|
|
2175
2191
|
editCustody: (poolName: string, tokenMint: PublicKey, isStable: boolean, oracle: OracleParams, pricing: PricingParams, permissions: Permissions, fees: Fees, borrowRate: BorrowRateParams, ratios: TokenRatios[]) => Promise<void>;
|
2176
2192
|
removeCustody: (poolName: string, tokenMint: PublicKey, ratios: TokenRatios[]) => Promise<void>;
|
2177
2193
|
getLiquidationState: (positionAccount: PublicKey, poolName: string, tokenMint: PublicKey, collateralMint: PublicKey, poolConfig: PoolConfig) => Promise<any>;
|
2178
|
-
getLpTokenPrice: (poolConfig: PoolConfig) => Promise<any>;
|
2179
2194
|
liquidate: (positionAccount: PublicKey, poolConfig: PoolConfig, tokenMint: PublicKey, collateralMint: PublicKey, marketPk: PublicKey) => Promise<TransactionInstruction>;
|
2180
2195
|
getApyPercentageUi: (rewardCustodyAccount: CustodyAccount, previousSnapShotRewardPerLpStaked: BN, lpTokenUsdPrice: BN) => string;
|
2181
2196
|
getAddLiquidityAmountAndFeeSync: (amountIn: BN, poolAccount: PoolAccount, inputTokenPrice: OraclePrice, inputTokenEmaPrice: OraclePrice, inputTokenCustodyAccount: CustodyAccount, lpTokenSupplyAmount: BN, poolAumUsdMax: BN, poolConfig: PoolConfig) => AddLiquidityAmountAndFee;
|
@@ -2233,6 +2248,9 @@ export declare class PerpetualsClient {
|
|
2233
2248
|
poolAmountUsd: BN;
|
2234
2249
|
poolEquityUsd: BN;
|
2235
2250
|
};
|
2251
|
+
getNftFinalDiscount: (perpetualsAccount: PerpetualsAccount, nftTradingAccount: Trading, currentTime: BN) => {
|
2252
|
+
discountBn: BN;
|
2253
|
+
};
|
2236
2254
|
openPosition: (targetSymbol: string, collateralSymbol: string, priceWithSlippage: ContractOraclePrice, collateralWithfee: BN, size: BN, side: Side, poolConfig: PoolConfig, nftTradingAccount: PublicKey, nftReferralAccount: PublicKey, nftRebateTokenAccount: PublicKey, privilege: Privilege, skipBalanceChecks?: boolean) => Promise<{
|
2237
2255
|
instructions: TransactionInstruction[];
|
2238
2256
|
additionalSigners: Signer[];
|
@@ -2293,7 +2311,7 @@ export declare class PerpetualsClient {
|
|
2293
2311
|
instructions: TransactionInstruction[];
|
2294
2312
|
additionalSigners: Signer[];
|
2295
2313
|
}>;
|
2296
|
-
updateNftAccount: (nftMint: PublicKey
|
2314
|
+
updateNftAccount: (nftMint: PublicKey) => Promise<{
|
2297
2315
|
instructions: TransactionInstruction[];
|
2298
2316
|
additionalSigners: Signer[];
|
2299
2317
|
}>;
|
@@ -2324,7 +2342,7 @@ export declare class PerpetualsClient {
|
|
2324
2342
|
instructions: TransactionInstruction[];
|
2325
2343
|
additionalSigners: Signer[];
|
2326
2344
|
}>;
|
2327
|
-
collectStakeFees: (rewardSymbol: string, poolConfig: PoolConfig, nftTradingAccount?: PublicKey,
|
2345
|
+
collectStakeFees: (rewardSymbol: string, poolConfig: PoolConfig, nftTradingAccount?: PublicKey, createUserATA?: boolean) => Promise<{
|
2328
2346
|
instructions: TransactionInstruction[];
|
2329
2347
|
additionalSigners: Signer[];
|
2330
2348
|
}>;
|
@@ -2361,5 +2379,9 @@ export declare class PerpetualsClient {
|
|
2361
2379
|
instructions: TransactionInstruction[];
|
2362
2380
|
additionalSigners: Signer[];
|
2363
2381
|
}>;
|
2382
|
+
reimburse: (poolName: string, tokenMint: PublicKey, amountIn: BN, poolConfig: PoolConfig) => Promise<{
|
2383
|
+
instructions: TransactionInstruction[];
|
2384
|
+
additionalSigners: Signer[];
|
2385
|
+
}>;
|
2364
2386
|
sendTransaction(ixs: TransactionInstruction[], opts?: SendTransactionOpts): Promise<string>;
|
2365
2387
|
}
|
package/dist/PerpetualsClient.js
CHANGED
@@ -543,53 +543,6 @@ var PerpetualsClient = (function () {
|
|
543
543
|
}
|
544
544
|
});
|
545
545
|
}); };
|
546
|
-
this.getLpTokenPrice = function (poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
547
|
-
var custodyAccountMetas, custodyOracleAccountMetas, markets, _i, _a, custody, _b, _c, market;
|
548
|
-
return __generator(this, function (_d) {
|
549
|
-
switch (_d.label) {
|
550
|
-
case 0:
|
551
|
-
custodyAccountMetas = [];
|
552
|
-
custodyOracleAccountMetas = [];
|
553
|
-
markets = [];
|
554
|
-
for (_i = 0, _a = poolConfig.custodies; _i < _a.length; _i++) {
|
555
|
-
custody = _a[_i];
|
556
|
-
custodyAccountMetas.push({
|
557
|
-
pubkey: custody.custodyAccount,
|
558
|
-
isSigner: false,
|
559
|
-
isWritable: false,
|
560
|
-
});
|
561
|
-
custodyOracleAccountMetas.push({
|
562
|
-
pubkey: this.useCustomOracle ? custody.customOracleAddress : custody.oracleAddress,
|
563
|
-
isSigner: false,
|
564
|
-
isWritable: false,
|
565
|
-
});
|
566
|
-
}
|
567
|
-
for (_b = 0, _c = poolConfig.markets; _b < _c.length; _b++) {
|
568
|
-
market = _c[_b];
|
569
|
-
markets.push({
|
570
|
-
pubkey: market.marketAccount,
|
571
|
-
isSigner: false,
|
572
|
-
isWritable: false,
|
573
|
-
});
|
574
|
-
}
|
575
|
-
return [4, this.program.methods
|
576
|
-
.getLpTokenPrice({})
|
577
|
-
.accounts({
|
578
|
-
perpetuals: this.perpetuals.publicKey,
|
579
|
-
pool: poolConfig.poolAddress,
|
580
|
-
lpTokenMint: poolConfig.lpTokenMint,
|
581
|
-
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY
|
582
|
-
})
|
583
|
-
.remainingAccounts(__spreadArray(__spreadArray(__spreadArray([], custodyAccountMetas, true), custodyOracleAccountMetas, true), markets, true))
|
584
|
-
.view()
|
585
|
-
.catch(function (err) {
|
586
|
-
console.error(err);
|
587
|
-
throw err;
|
588
|
-
})];
|
589
|
-
case 1: return [2, _d.sent()];
|
590
|
-
}
|
591
|
-
});
|
592
|
-
}); };
|
593
546
|
this.liquidate = function (positionAccount, poolConfig, tokenMint, collateralMint, marketPk) { return __awaiter(_this, void 0, void 0, function () {
|
594
547
|
var targetCustodyConfig, collateralCustodyConfig;
|
595
548
|
return __generator(this, function (_a) {
|
@@ -1653,6 +1606,14 @@ var PerpetualsClient = (function () {
|
|
1653
1606
|
return { poolAmountUsd: poolAmountUsd, poolEquityUsd: constants_1.BN_ZERO };
|
1654
1607
|
}
|
1655
1608
|
};
|
1609
|
+
this.getNftFinalDiscount = function (perpetualsAccount, nftTradingAccount, currentTime) {
|
1610
|
+
if (currentTime.sub(nftTradingAccount.timestamp).lt(constants_1.DAY_SECONDS) && nftTradingAccount.counter.gt(new anchor_1.BN(perpetualsAccount.tradeLimit))) {
|
1611
|
+
return { discountBn: constants_1.BN_ZERO };
|
1612
|
+
}
|
1613
|
+
else {
|
1614
|
+
return { discountBn: perpetualsAccount.tradingDiscount[nftTradingAccount.level - 1] };
|
1615
|
+
}
|
1616
|
+
};
|
1656
1617
|
this.openPosition = function (targetSymbol, collateralSymbol, priceWithSlippage, collateralWithfee, size, side, poolConfig, nftTradingAccount, nftReferralAccount, nftRebateTokenAccount, privilege, skipBalanceChecks) {
|
1657
1618
|
if (skipBalanceChecks === void 0) { skipBalanceChecks = false; }
|
1658
1619
|
return __awaiter(_this, void 0, void 0, function () {
|
@@ -3245,8 +3206,8 @@ var PerpetualsClient = (function () {
|
|
3245
3206
|
}
|
3246
3207
|
});
|
3247
3208
|
}); };
|
3248
|
-
this.updateNftAccount = function (nftMint
|
3249
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, nftTradingAccount, nftReferralAccount, nftTokenAccount,
|
3209
|
+
this.updateNftAccount = function (nftMint) { return __awaiter(_this, void 0, void 0, function () {
|
3210
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, nftTradingAccount, nftReferralAccount, nftTokenAccount, updateNftTradingAccountInstruction, err_7;
|
3250
3211
|
return __generator(this, function (_a) {
|
3251
3212
|
switch (_a.label) {
|
3252
3213
|
case 0:
|
@@ -3269,20 +3230,8 @@ var PerpetualsClient = (function () {
|
|
3269
3230
|
return [4, (0, spl_token_1.getAssociatedTokenAddress)(nftMint, publicKey)];
|
3270
3231
|
case 2:
|
3271
3232
|
nftTokenAccount = _a.sent();
|
3272
|
-
flpStakeAccountMetas = [];
|
3273
|
-
for (_i = 0, flpStakeAccounts_1 = flpStakeAccounts; _i < flpStakeAccounts_1.length; _i++) {
|
3274
|
-
flpStakeAccountPk = flpStakeAccounts_1[_i];
|
3275
|
-
flpStakeAccountMetas.push({
|
3276
|
-
pubkey: flpStakeAccountPk,
|
3277
|
-
isSigner: false,
|
3278
|
-
isWritable: true,
|
3279
|
-
});
|
3280
|
-
}
|
3281
3233
|
return [4, this.program.methods
|
3282
|
-
.updateTradingAccount({
|
3283
|
-
updateReferer: updateReferer,
|
3284
|
-
updateBooster: updateBooster
|
3285
|
-
})
|
3234
|
+
.updateTradingAccount({})
|
3286
3235
|
.accounts({
|
3287
3236
|
owner: publicKey,
|
3288
3237
|
feePayer: publicKey,
|
@@ -3290,7 +3239,6 @@ var PerpetualsClient = (function () {
|
|
3290
3239
|
referralAccount: nftReferralAccount,
|
3291
3240
|
tradingAccount: nftTradingAccount
|
3292
3241
|
})
|
3293
|
-
.remainingAccounts(__spreadArray([], flpStakeAccountMetas, true))
|
3294
3242
|
.instruction()];
|
3295
3243
|
case 3:
|
3296
3244
|
updateNftTradingAccountInstruction = _a.sent();
|
@@ -3458,7 +3406,7 @@ var PerpetualsClient = (function () {
|
|
3458
3406
|
});
|
3459
3407
|
}); };
|
3460
3408
|
this.refreshStakeWithAllFlpStakeAccounts = function (poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
3461
|
-
var flpStakeAccounts, maxFlpStakeAccountLength, pendingActivationAccounts, _i,
|
3409
|
+
var flpStakeAccounts, maxFlpStakeAccountLength, pendingActivationAccounts, _i, flpStakeAccounts_1, flpStakeAccount, account, refreshStakeInstructions, i, batch, instruction;
|
3462
3410
|
return __generator(this, function (_a) {
|
3463
3411
|
switch (_a.label) {
|
3464
3412
|
case 0: return [4, this.program.account.flpStake.all()];
|
@@ -3467,8 +3415,8 @@ var PerpetualsClient = (function () {
|
|
3467
3415
|
console.log("total no of flpStakeAccounts: ", flpStakeAccounts.length);
|
3468
3416
|
maxFlpStakeAccountLength = 32 - (4 + poolConfig.custodies.length);
|
3469
3417
|
pendingActivationAccounts = [];
|
3470
|
-
for (_i = 0,
|
3471
|
-
flpStakeAccount =
|
3418
|
+
for (_i = 0, flpStakeAccounts_1 = flpStakeAccounts; _i < flpStakeAccounts_1.length; _i++) {
|
3419
|
+
flpStakeAccount = flpStakeAccounts_1[_i];
|
3472
3420
|
account = flpStakeAccount.account;
|
3473
3421
|
pendingActivationAccounts.push(flpStakeAccount.publicKey);
|
3474
3422
|
}
|
@@ -3755,10 +3703,10 @@ var PerpetualsClient = (function () {
|
|
3755
3703
|
});
|
3756
3704
|
});
|
3757
3705
|
};
|
3758
|
-
this.collectStakeFees = function (rewardSymbol, poolConfig, nftTradingAccount,
|
3706
|
+
this.collectStakeFees = function (rewardSymbol, poolConfig, nftTradingAccount, createUserATA) {
|
3759
3707
|
if (createUserATA === void 0) { createUserATA = true; }
|
3760
3708
|
return __awaiter(_this, void 0, void 0, function () {
|
3761
|
-
var publicKey, rewardCustodyMint, rewardCustodyConfig, preInstructions, instructions, postInstructions, additionalSigners, pool, flpStakeAccount, receivingTokenAccount, _a, tradingAccount,
|
3709
|
+
var publicKey, rewardCustodyMint, rewardCustodyConfig, preInstructions, instructions, postInstructions, additionalSigners, pool, flpStakeAccount, receivingTokenAccount, _a, tradingAccount, withdrawStakeInstruction, err_16;
|
3762
3710
|
return __generator(this, function (_b) {
|
3763
3711
|
switch (_b.label) {
|
3764
3712
|
case 0:
|
@@ -3793,14 +3741,6 @@ var PerpetualsClient = (function () {
|
|
3793
3741
|
isWritable: true,
|
3794
3742
|
});
|
3795
3743
|
}
|
3796
|
-
boostingAccount = [];
|
3797
|
-
if (nftBoostingAccount) {
|
3798
|
-
boostingAccount.push({
|
3799
|
-
pubkey: nftBoostingAccount,
|
3800
|
-
isSigner: false,
|
3801
|
-
isWritable: true,
|
3802
|
-
});
|
3803
|
-
}
|
3804
3744
|
return [4, this.program.methods
|
3805
3745
|
.collectStakeFees({})
|
3806
3746
|
.accounts({
|
@@ -3818,7 +3758,7 @@ var PerpetualsClient = (function () {
|
|
3818
3758
|
eventAuthority: this.eventAuthority.publicKey,
|
3819
3759
|
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY
|
3820
3760
|
})
|
3821
|
-
.remainingAccounts(
|
3761
|
+
.remainingAccounts(tradingAccount)
|
3822
3762
|
.instruction()];
|
3823
3763
|
case 4:
|
3824
3764
|
withdrawStakeInstruction = _b.sent();
|
@@ -4340,6 +4280,78 @@ var PerpetualsClient = (function () {
|
|
4340
4280
|
}
|
4341
4281
|
});
|
4342
4282
|
}); };
|
4283
|
+
this.reimburse = function (poolName, tokenMint, amountIn, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
4284
|
+
var custodyAccountMetas, custodyOracleAccountMetas, markets, _i, _a, custody, _b, _c, market, instructions, additionalSigners, custodyConfig, reimburse, _d, _e, err_26;
|
4285
|
+
var _f;
|
4286
|
+
return __generator(this, function (_g) {
|
4287
|
+
switch (_g.label) {
|
4288
|
+
case 0:
|
4289
|
+
custodyAccountMetas = [];
|
4290
|
+
custodyOracleAccountMetas = [];
|
4291
|
+
markets = [];
|
4292
|
+
for (_i = 0, _a = poolConfig.custodies; _i < _a.length; _i++) {
|
4293
|
+
custody = _a[_i];
|
4294
|
+
custodyAccountMetas.push({
|
4295
|
+
pubkey: custody.custodyAccount,
|
4296
|
+
isSigner: false,
|
4297
|
+
isWritable: false,
|
4298
|
+
});
|
4299
|
+
custodyOracleAccountMetas.push({
|
4300
|
+
pubkey: custody.customOracleAddress,
|
4301
|
+
isSigner: false,
|
4302
|
+
isWritable: false,
|
4303
|
+
});
|
4304
|
+
}
|
4305
|
+
for (_b = 0, _c = poolConfig.markets; _b < _c.length; _b++) {
|
4306
|
+
market = _c[_b];
|
4307
|
+
markets.push({
|
4308
|
+
pubkey: market.marketAccount,
|
4309
|
+
isSigner: false,
|
4310
|
+
isWritable: false,
|
4311
|
+
});
|
4312
|
+
}
|
4313
|
+
instructions = [];
|
4314
|
+
additionalSigners = [];
|
4315
|
+
custodyConfig = poolConfig.custodies.find(function (i) { return i.mintKey.equals(tokenMint); });
|
4316
|
+
console.log("custodyConfig: ", custodyConfig);
|
4317
|
+
_g.label = 1;
|
4318
|
+
case 1:
|
4319
|
+
_g.trys.push([1, 4, , 5]);
|
4320
|
+
_e = (_d = this.program.methods
|
4321
|
+
.reimburse({ amountIn: amountIn }))
|
4322
|
+
.accounts;
|
4323
|
+
_f = {
|
4324
|
+
admin: this.provider.wallet.publicKey,
|
4325
|
+
multisig: poolConfig.multisig
|
4326
|
+
};
|
4327
|
+
return [4, (0, spl_token_1.getAssociatedTokenAddress)(tokenMint, this.provider.wallet.publicKey)];
|
4328
|
+
case 2: return [4, _e.apply(_d, [(_f.fundingAccount = _g.sent(),
|
4329
|
+
_f.perpetuals = poolConfig.perpetuals,
|
4330
|
+
_f.pool = this.getPoolKey(poolName),
|
4331
|
+
_f.custody = this.getCustodyKey(poolName, tokenMint),
|
4332
|
+
_f.custodyOracleAccount = this.useCustomOracle ? custodyConfig.customOracleAddress : custodyConfig.oracleAddress,
|
4333
|
+
_f.custodyTokenAccount = custodyConfig.tokenAccount,
|
4334
|
+
_f.tokenProgram = spl_token_1.TOKEN_PROGRAM_ID,
|
4335
|
+
_f.program = poolConfig.programId,
|
4336
|
+
_f.ixSysvar = web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
4337
|
+
_f)])
|
4338
|
+
.remainingAccounts(__spreadArray(__spreadArray(__spreadArray([], custodyAccountMetas, true), custodyOracleAccountMetas, true), markets, true))
|
4339
|
+
.instruction()];
|
4340
|
+
case 3:
|
4341
|
+
reimburse = _g.sent();
|
4342
|
+
instructions.push(reimburse);
|
4343
|
+
return [3, 5];
|
4344
|
+
case 4:
|
4345
|
+
err_26 = _g.sent();
|
4346
|
+
console.log("perpClient setPool error:: ", err_26);
|
4347
|
+
throw err_26;
|
4348
|
+
case 5: return [2, {
|
4349
|
+
instructions: __spreadArray([], instructions, true),
|
4350
|
+
additionalSigners: additionalSigners
|
4351
|
+
}];
|
4352
|
+
}
|
4353
|
+
});
|
4354
|
+
}); };
|
4343
4355
|
this.provider = provider;
|
4344
4356
|
(0, anchor_1.setProvider)(provider);
|
4345
4357
|
this.program = new anchor_1.Program(perpetuals_1.IDL, programId);
|
package/dist/PoolAccount.d.ts
CHANGED
@@ -22,8 +22,6 @@ export declare class PoolAccount implements Pool {
|
|
22
22
|
flpMintBump: number;
|
23
23
|
flpTokenAccountBump: number;
|
24
24
|
vpVolumeFactor: number;
|
25
|
-
padding: number[];
|
26
|
-
stakingFeeBoostBps: BN[];
|
27
25
|
constructor(publicKey: PublicKey, parseData: Pool);
|
28
26
|
static from(publicKey: PublicKey, parseData: Pool): PoolAccount;
|
29
27
|
updatePoolData(parseData: Pool): void;
|