flash-sdk 10.4.0 → 10.5.0-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/MarketAccount.js +1 -1
- package/dist/PerpetualsClient.d.ts +292 -146
- package/dist/PerpetualsClient.js +728 -1059
- package/dist/PoolAccount.d.ts +3 -0
- package/dist/PoolConfig.d.ts +3 -1
- package/dist/PoolConfig.js +4 -2
- package/dist/PoolConfig.json +1041 -526
- package/dist/PositionAccount.d.ts +3 -2
- package/dist/TokenStakeAccount.d.ts +2 -2
- package/dist/TokenStakeAccount.js +2 -2
- package/dist/backupOracle.d.ts +0 -1
- package/dist/backupOracle.js +3 -3
- package/dist/idl/perpetuals.d.ts +3432 -2072
- package/dist/idl/perpetuals.js +4979 -3619
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/testSize.d.ts +0 -0
- package/dist/testSize.js +0 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/index.d.ts +22 -4
- package/dist/types/index.js +3 -2
- package/dist/utils/getReferralAccounts.d.ts +1 -1
- package/dist/utils/getReferralAccounts.js +3 -8
- package/package.json +1 -1
- package/dist/TradingAccount.d.ts +0 -23
- package/dist/TradingAccount.js +0 -17
package/dist/PerpetualsClient.js
CHANGED
|
@@ -638,24 +638,42 @@ var PerpetualsClient = (function () {
|
|
|
638
638
|
var averageEntryPrice = totalValue.div(totalSize);
|
|
639
639
|
return averageEntryPrice;
|
|
640
640
|
};
|
|
641
|
-
this.
|
|
642
|
-
var
|
|
643
|
-
var
|
|
644
|
-
|
|
645
|
-
|
|
641
|
+
this.getLeverageContractHelper = function (positionAccount, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, isInitial, poolConfig) {
|
|
642
|
+
var pnl = _this.getPnlSync(positionAccount, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, targetCustodyAccount.pricing.delaySeconds, poolConfig);
|
|
643
|
+
var exitFee = _this.getExitFeeSync(positionAccount, targetCustodyAccount, collateralCustodyAccount, collateralPrice, collateralEmaPrice);
|
|
644
|
+
var lockFeeUsd = _this.getLockFeeAndUnsettledUsdForPosition(positionAccount, collateralCustodyAccount, currentTimestamp);
|
|
645
|
+
var unsettledFeesUsd = exitFee.exitFeeUsd.add(lockFeeUsd);
|
|
646
|
+
var lossUsd = pnl.lossUsd.add(unsettledFeesUsd);
|
|
647
|
+
var currentMarginUsd = constants_1.BN_ZERO;
|
|
648
|
+
if (isInitial) {
|
|
649
|
+
currentMarginUsd = positionAccount.collateralUsd.sub(lossUsd);
|
|
650
|
+
}
|
|
651
|
+
else {
|
|
652
|
+
currentMarginUsd = positionAccount.collateralUsd.add(pnl.profitUsd).sub(lossUsd);
|
|
653
|
+
}
|
|
654
|
+
if (currentMarginUsd.gt(constants_1.BN_ZERO)) {
|
|
655
|
+
return positionAccount.sizeUsd.mul(new anchor_1.BN(constants_1.BPS_POWER)).div(currentMarginUsd);
|
|
646
656
|
}
|
|
647
657
|
else {
|
|
648
658
|
return new anchor_1.BN(Number.MAX_SAFE_INTEGER);
|
|
649
659
|
}
|
|
650
660
|
};
|
|
651
|
-
this.
|
|
661
|
+
this.getLeverageSync = function (positionAccount, finalCollateralUsd, finalSizeUsd, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, isInitial, poolConfig) {
|
|
662
|
+
positionAccount = positionAccount.clone();
|
|
663
|
+
positionAccount.sizeUsd = finalSizeUsd;
|
|
664
|
+
positionAccount.sizeAmount = targetPrice.getTokenAmount(finalSizeUsd, targetCustodyAccount.decimals);
|
|
665
|
+
positionAccount.collateralUsd = finalCollateralUsd;
|
|
666
|
+
return _this.getLeverageContractHelper(positionAccount, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, isInitial, poolConfig);
|
|
667
|
+
};
|
|
668
|
+
this.getLeverageAtAmountEntryWithSwapSync = function (positionAccount, inputDeltaAmount, sizeDeltaAmount, side, poolAccount, inputTokenPrice, inputTokenEmaPrice, inputTokenCustodyAccount, collateralTokenPrice, collateralTokenEmaPrice, collateralTokenCustodyAccount, targetTokenPrice, targetTokenEmaPrice, targetTokenCustodyAccount, swapPoolAumUsdMax, poolConfig, pnlUsd, enableDebuglogs) {
|
|
669
|
+
if (enableDebuglogs === void 0) { enableDebuglogs = false; }
|
|
652
670
|
var finalCollateralAmount = constants_1.BN_ZERO;
|
|
653
671
|
if (!inputDeltaAmount.isZero()) {
|
|
654
672
|
if (inputTokenCustodyAccount.publicKey.equals(collateralTokenCustodyAccount.publicKey)) {
|
|
655
673
|
finalCollateralAmount = inputDeltaAmount;
|
|
656
674
|
}
|
|
657
675
|
else {
|
|
658
|
-
var swapAmountOut = _this.getSwapAmountAndFeesSync(inputDeltaAmount, constants_1.BN_ZERO, poolAccount, inputTokenPrice, inputTokenEmaPrice, inputTokenCustodyAccount,
|
|
676
|
+
var swapAmountOut = _this.getSwapAmountAndFeesSync(inputDeltaAmount, constants_1.BN_ZERO, poolAccount, inputTokenPrice, inputTokenEmaPrice, inputTokenCustodyAccount, collateralTokenPrice, collateralTokenEmaPrice, collateralTokenCustodyAccount, swapPoolAumUsdMax, poolConfig).minAmountOut;
|
|
659
677
|
finalCollateralAmount = swapAmountOut;
|
|
660
678
|
}
|
|
661
679
|
}
|
|
@@ -681,11 +699,13 @@ var PerpetualsClient = (function () {
|
|
|
681
699
|
entryOraclePrice.price = _this.getAveragePriceSync(positionEntryPrice.price, positionAccount.sizeAmount, entryOraclePrice.price, sizeDeltaAmount);
|
|
682
700
|
}
|
|
683
701
|
var collateralMinOraclePrice = _this.getMinAndMaxOraclePriceSync(collateralTokenPrice, collateralTokenEmaPrice, collateralTokenCustodyAccount).min;
|
|
684
|
-
var
|
|
685
|
-
var
|
|
686
|
-
var currentCollateralUsdIncludingPnl = currentCollateralUsd.add(pnlUsd).sub(openFeeUsd);
|
|
702
|
+
var finalCollateralUsd = collateralMinOraclePrice.getAssetAmountUsd(finalCollateralAmount, collateralTokenCustodyAccount.decimals).add(positionAccount.collateralUsd);
|
|
703
|
+
var currentCollateralUsdIncludingPnl = finalCollateralUsd.add(pnlUsd).sub(openFeeUsd);
|
|
687
704
|
var sizeAmount = positionAccount.sizeAmount.add(sizeDeltaAmount);
|
|
688
705
|
var sizeAmountUsd = entryOraclePrice.getAssetAmountUsd(sizeAmount, targetTokenCustodyAccount.decimals);
|
|
706
|
+
if (enableDebuglogs) {
|
|
707
|
+
console.log("SDK logs : finalCollateralUsd:", finalCollateralUsd.toString(), "finalCollateralAmount:", finalCollateralAmount.toString(), "sizeAmount:", sizeAmount.toString(), "sizeAmountUsd:", sizeAmountUsd.toString(), "sizeDeltaAmount:", sizeDeltaAmount.toString(), "sizeUsd:", sizeUsd.toString(), "currentCollateralUsdIncludingPnl:", currentCollateralUsdIncludingPnl.toString(), "finalCollateralUsd :", finalCollateralUsd.toString(), "pnlUsd :", pnlUsd.toString());
|
|
708
|
+
}
|
|
689
709
|
if (currentCollateralUsdIncludingPnl.gt(constants_1.BN_ZERO)) {
|
|
690
710
|
return sizeAmountUsd.mul(new anchor_1.BN(constants_1.BPS_POWER)).div(currentCollateralUsdIncludingPnl);
|
|
691
711
|
}
|
|
@@ -693,68 +713,6 @@ var PerpetualsClient = (function () {
|
|
|
693
713
|
return new anchor_1.BN(Number.MAX_SAFE_INTEGER);
|
|
694
714
|
}
|
|
695
715
|
};
|
|
696
|
-
this.getEntryPriceAndFeeSync = function (positionAccount, marketCorrelation, collateralDeltaAmount, sizeDeltaAmount, side, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, discountBps) {
|
|
697
|
-
if (discountBps === void 0) { discountBps = constants_1.BN_ZERO; }
|
|
698
|
-
if (collateralDeltaAmount.isNeg() || sizeDeltaAmount.isNeg()) {
|
|
699
|
-
throw new Error("Delta Amounts cannot be negative.");
|
|
700
|
-
}
|
|
701
|
-
var sizeUsd = targetPrice.getAssetAmountUsd(sizeDeltaAmount, targetCustodyAccount.decimals);
|
|
702
|
-
var entryOraclePrice = _this.getEntryPriceUsdSync(side, targetPrice, targetEmaPrice, targetCustodyAccount, sizeUsd);
|
|
703
|
-
if (positionAccount === null) {
|
|
704
|
-
var data = __assign({}, types_1.DEFAULT_POSITION);
|
|
705
|
-
positionAccount = PositionAccount_1.PositionAccount.from(web3_js_1.PublicKey.default, data);
|
|
706
|
-
var sizeUsd_1 = entryOraclePrice.getAssetAmountUsd(sizeDeltaAmount, targetCustodyAccount.decimals);
|
|
707
|
-
positionAccount.sizeUsd = sizeUsd_1;
|
|
708
|
-
positionAccount.sizeDecimals = targetCustodyAccount.decimals;
|
|
709
|
-
positionAccount.collateralDecimals = collateralCustodyAccount.decimals;
|
|
710
|
-
positionAccount.lockedDecimals = collateralCustodyAccount.decimals;
|
|
711
|
-
}
|
|
712
|
-
else {
|
|
713
|
-
positionAccount = positionAccount.clone();
|
|
714
|
-
var positionEntryPrice = OraclePrice_1.OraclePrice.from({
|
|
715
|
-
price: positionAccount.entryPrice.price,
|
|
716
|
-
exponent: new anchor_1.BN(positionAccount.entryPrice.exponent),
|
|
717
|
-
confidence: constants_1.BN_ZERO,
|
|
718
|
-
timestamp: constants_1.BN_ZERO
|
|
719
|
-
});
|
|
720
|
-
entryOraclePrice.price = _this.getAveragePriceSync(positionEntryPrice.price, positionAccount.sizeAmount, entryOraclePrice.price, sizeDeltaAmount);
|
|
721
|
-
var sizeDeltaUsd = entryOraclePrice.getAssetAmountUsd(sizeDeltaAmount, targetCustodyAccount.decimals);
|
|
722
|
-
positionAccount.sizeUsd = positionAccount.sizeUsd.add(sizeDeltaUsd);
|
|
723
|
-
}
|
|
724
|
-
positionAccount.collateralAmount = positionAccount.collateralAmount.add(collateralDeltaAmount);
|
|
725
|
-
positionAccount.sizeAmount = positionAccount.sizeAmount.add(sizeDeltaAmount);
|
|
726
|
-
var lockFeeUsd = _this.getLockFeeAndUnsettledUsdForPosition(positionAccount, collateralCustodyAccount, currentTimestamp);
|
|
727
|
-
var liquidationPrice = _this.getLiquidationPriceSync(positionAccount.collateralAmount, positionAccount.sizeAmount, entryOraclePrice, lockFeeUsd, marketCorrelation, side, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, positionAccount);
|
|
728
|
-
var sizeAmountUsd = entryOraclePrice.getAssetAmountUsd(sizeDeltaAmount, targetCustodyAccount.decimals);
|
|
729
|
-
var collateralTokenMinOraclePrice = _this.getMinAndMaxOraclePriceSync(collateralPrice, collateralEmaPrice, collateralCustodyAccount).min;
|
|
730
|
-
var feeUsd = constants_1.BN_ZERO;
|
|
731
|
-
var feeAmount = constants_1.BN_ZERO;
|
|
732
|
-
var feeUsdAfterDiscount = constants_1.BN_ZERO;
|
|
733
|
-
var feeAmountAfterDiscount = constants_1.BN_ZERO;
|
|
734
|
-
if (positionAccount !== null && sizeDeltaAmount.isZero()) {
|
|
735
|
-
}
|
|
736
|
-
else {
|
|
737
|
-
feeUsd = sizeAmountUsd.mul(targetCustodyAccount.fees.openPosition).div(new anchor_1.BN(constants_1.RATE_POWER));
|
|
738
|
-
feeAmount = feeUsd.mul(new anchor_1.BN(Math.pow(10, collateralCustodyAccount.decimals))).div(collateralTokenMinOraclePrice.price);
|
|
739
|
-
if (discountBps.gt(constants_1.BN_ZERO)) {
|
|
740
|
-
feeUsdAfterDiscount = feeUsd.mul(discountBps).div(new anchor_1.BN(constants_1.BPS_POWER));
|
|
741
|
-
feeUsdAfterDiscount = feeUsd.sub(feeUsdAfterDiscount);
|
|
742
|
-
feeAmountAfterDiscount = feeUsdAfterDiscount.mul(new anchor_1.BN(Math.pow(10, collateralCustodyAccount.decimals))).div(collateralTokenMinOraclePrice.price);
|
|
743
|
-
}
|
|
744
|
-
else {
|
|
745
|
-
feeUsdAfterDiscount = feeUsd;
|
|
746
|
-
feeAmountAfterDiscount = feeAmount;
|
|
747
|
-
}
|
|
748
|
-
}
|
|
749
|
-
return {
|
|
750
|
-
entryOraclePrice: entryOraclePrice,
|
|
751
|
-
feeUsd: feeUsd,
|
|
752
|
-
feeAmount: feeAmount,
|
|
753
|
-
feeUsdAfterDiscount: feeUsdAfterDiscount,
|
|
754
|
-
feeAmountAfterDiscount: feeAmountAfterDiscount,
|
|
755
|
-
liquidationPrice: liquidationPrice
|
|
756
|
-
};
|
|
757
|
-
};
|
|
758
716
|
this.getEntryPriceAndFeeSyncV2 = function (positionAccount, marketCorrelation, collateralDeltaAmount, sizeDeltaAmount, side, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, discountBps, enableLogs) {
|
|
759
717
|
if (discountBps === void 0) { discountBps = constants_1.BN_ZERO; }
|
|
760
718
|
if (enableLogs === void 0) { enableLogs = false; }
|
|
@@ -766,8 +724,8 @@ var PerpetualsClient = (function () {
|
|
|
766
724
|
if (positionAccount === null) {
|
|
767
725
|
var data = __assign({}, types_1.DEFAULT_POSITION);
|
|
768
726
|
positionAccount = PositionAccount_1.PositionAccount.from(web3_js_1.PublicKey.default, data);
|
|
769
|
-
var
|
|
770
|
-
positionAccount.sizeUsd =
|
|
727
|
+
var sizeUsd_1 = entryOraclePrice.getAssetAmountUsd(sizeDeltaAmount, targetCustodyAccount.decimals);
|
|
728
|
+
positionAccount.sizeUsd = sizeUsd_1;
|
|
771
729
|
positionAccount.sizeDecimals = targetCustodyAccount.decimals;
|
|
772
730
|
positionAccount.collateralDecimals = collateralCustodyAccount.decimals;
|
|
773
731
|
positionAccount.lockedDecimals = collateralCustodyAccount.decimals;
|
|
@@ -784,12 +742,13 @@ var PerpetualsClient = (function () {
|
|
|
784
742
|
var sizeDeltaUsd = entryOraclePrice.getAssetAmountUsd(sizeDeltaAmount, targetCustodyAccount.decimals);
|
|
785
743
|
positionAccount.sizeUsd = positionAccount.sizeUsd.add(sizeDeltaUsd);
|
|
786
744
|
}
|
|
787
|
-
|
|
745
|
+
var collateralMinMaxPrice = _this.getMinAndMaxOraclePriceSync(collateralPrice, collateralEmaPrice, collateralCustodyAccount);
|
|
746
|
+
var collateralDeltaUsd = collateralMinMaxPrice.min.getAssetAmountUsd(collateralDeltaAmount, collateralCustodyAccount.decimals);
|
|
747
|
+
positionAccount.collateralUsd = positionAccount.collateralUsd.add(collateralDeltaUsd);
|
|
788
748
|
positionAccount.sizeAmount = positionAccount.sizeAmount.add(sizeDeltaAmount);
|
|
789
|
-
var
|
|
790
|
-
var liquidationPrice = _this.
|
|
749
|
+
var lockAndUnsettledFeeUsd = _this.getLockFeeAndUnsettledUsdForPosition(positionAccount, collateralCustodyAccount, currentTimestamp);
|
|
750
|
+
var liquidationPrice = _this.getLiquidationPriceContractHelper(entryOraclePrice, lockAndUnsettledFeeUsd, side, targetCustodyAccount, positionAccount);
|
|
791
751
|
var sizeAmountUsd = entryOraclePrice.getAssetAmountUsd(sizeDeltaAmount, targetCustodyAccount.decimals);
|
|
792
|
-
var collateralTokenMinOraclePrice = _this.getMinAndMaxOraclePriceSync(collateralPrice, collateralEmaPrice, collateralCustodyAccount).min;
|
|
793
752
|
var feeUsd = constants_1.BN_ZERO;
|
|
794
753
|
var feeAmount = constants_1.BN_ZERO;
|
|
795
754
|
var feeUsdAfterDiscount = constants_1.BN_ZERO;
|
|
@@ -798,11 +757,11 @@ var PerpetualsClient = (function () {
|
|
|
798
757
|
}
|
|
799
758
|
else {
|
|
800
759
|
feeUsd = sizeAmountUsd.mul(targetCustodyAccount.fees.openPosition).div(new anchor_1.BN(constants_1.RATE_POWER));
|
|
801
|
-
feeAmount = feeUsd.mul(new anchor_1.BN(Math.pow(10, collateralCustodyAccount.decimals))).div(
|
|
760
|
+
feeAmount = feeUsd.mul(new anchor_1.BN(Math.pow(10, collateralCustodyAccount.decimals))).div(collateralMinMaxPrice.min.price);
|
|
802
761
|
if (discountBps.gt(constants_1.BN_ZERO)) {
|
|
803
762
|
feeUsdAfterDiscount = feeUsd.mul(discountBps).div(new anchor_1.BN(constants_1.BPS_POWER));
|
|
804
763
|
feeUsdAfterDiscount = feeUsd.sub(feeUsdAfterDiscount);
|
|
805
|
-
feeAmountAfterDiscount = feeUsdAfterDiscount.mul(new anchor_1.BN(Math.pow(10, collateralCustodyAccount.decimals))).div(
|
|
764
|
+
feeAmountAfterDiscount = feeUsdAfterDiscount.mul(new anchor_1.BN(Math.pow(10, collateralCustodyAccount.decimals))).div(collateralMinMaxPrice.min.price);
|
|
806
765
|
}
|
|
807
766
|
else {
|
|
808
767
|
feeUsdAfterDiscount = feeUsd;
|
|
@@ -861,25 +820,26 @@ var PerpetualsClient = (function () {
|
|
|
861
820
|
if (collateralDeltaAmount.isNeg() || sizeDeltaAmount.isNeg()) {
|
|
862
821
|
throw new Error("Delta Amounts cannot be negative ");
|
|
863
822
|
}
|
|
864
|
-
resultingPositionAccount.collateralAmount = resultingPositionAccount.collateralAmount.sub(collateralDeltaAmount);
|
|
865
|
-
resultingPositionAccount.sizeAmount = resultingPositionAccount.sizeAmount.sub(sizeDeltaAmount);
|
|
866
823
|
if (resultingPositionAccount.collateralAmount.isNeg() || resultingPositionAccount.sizeAmount.isNeg()) {
|
|
867
824
|
throw new Error("cannot remove/close more than collateral/Size");
|
|
868
825
|
}
|
|
869
826
|
var sizeUsd = targetPrice.getAssetAmountUsd(sizeDeltaAmount, targetCustodyAccount.decimals);
|
|
870
827
|
var exitOraclePrice = _this.getExitOraclePriceSync(side, targetPrice, targetEmaPrice, targetCustodyAccount, sizeUsd);
|
|
871
|
-
var
|
|
828
|
+
var collateralMinMaxPrice = _this.getMinAndMaxOraclePriceSync(collateralPrice, collateralEmaPrice, collateralCustodyAccount);
|
|
829
|
+
var collateralDeltaUsd = collateralMinMaxPrice.min.getAssetAmountUsd(collateralDeltaAmount, collateralCustodyAccount.decimals);
|
|
830
|
+
resultingPositionAccount.collateralUsd = resultingPositionAccount.collateralUsd.sub(collateralDeltaUsd);
|
|
831
|
+
resultingPositionAccount.sizeAmount = resultingPositionAccount.sizeAmount.sub(sizeDeltaAmount);
|
|
872
832
|
var lockAndUnsettledFeeUsd = _this.getLockFeeAndUnsettledUsdForPosition(resultingPositionAccount, collateralCustodyAccount, currentTimestamp);
|
|
873
|
-
var lockAndUnsettledFee =
|
|
833
|
+
var lockAndUnsettledFee = collateralMinMaxPrice.min.getTokenAmount(lockAndUnsettledFeeUsd, collateralCustodyAccount.decimals);
|
|
874
834
|
var sizeAmountUsd = exitOraclePrice.getAssetAmountUsd(sizeDeltaAmount, targetCustodyAccount.decimals);
|
|
875
835
|
var exitFeeUsd = sizeAmountUsd.mul(targetCustodyAccount.fees.closePosition).div(new anchor_1.BN(constants_1.RATE_POWER));
|
|
876
|
-
var exitFeeAmount =
|
|
836
|
+
var exitFeeAmount = collateralMinMaxPrice.max.getTokenAmount(exitFeeUsd, collateralCustodyAccount.decimals);
|
|
877
837
|
var exitFeeUsdAfterDiscount = constants_1.BN_ZERO;
|
|
878
838
|
var exitFeeAmountAfterDiscount = constants_1.BN_ZERO;
|
|
879
839
|
if (discountBps.gt(constants_1.BN_ZERO)) {
|
|
880
840
|
exitFeeUsdAfterDiscount = exitFeeUsd.mul(discountBps).div(new anchor_1.BN(constants_1.BPS_POWER));
|
|
881
841
|
exitFeeUsdAfterDiscount = exitFeeUsd.sub(exitFeeUsdAfterDiscount);
|
|
882
|
-
exitFeeAmountAfterDiscount =
|
|
842
|
+
exitFeeAmountAfterDiscount = collateralMinMaxPrice.max.getTokenAmount(exitFeeUsdAfterDiscount, collateralCustodyAccount.decimals);
|
|
883
843
|
}
|
|
884
844
|
else {
|
|
885
845
|
exitFeeUsdAfterDiscount = exitFeeUsd;
|
|
@@ -889,7 +849,7 @@ var PerpetualsClient = (function () {
|
|
|
889
849
|
price: positionAccount.entryPrice.price, exponent: new anchor_1.BN(positionAccount.entryPrice.exponent), confidence: constants_1.BN_ZERO, timestamp: constants_1.BN_ZERO
|
|
890
850
|
});
|
|
891
851
|
resultingPositionAccount.sizeUsd = positionEntryOraclePrice.getAssetAmountUsd(resultingPositionAccount.sizeAmount, targetCustodyAccount.decimals);
|
|
892
|
-
var liquidationPrice = _this.
|
|
852
|
+
var liquidationPrice = _this.getLiquidationPriceContractHelper(positionEntryOraclePrice, lockAndUnsettledFeeUsd, side, targetCustodyAccount, positionAccount);
|
|
893
853
|
return {
|
|
894
854
|
exitOraclePrice: exitOraclePrice,
|
|
895
855
|
borrowFeeUsd: lockAndUnsettledFeeUsd,
|
|
@@ -902,13 +862,11 @@ var PerpetualsClient = (function () {
|
|
|
902
862
|
};
|
|
903
863
|
};
|
|
904
864
|
this.getTradeSpread = function (targetCustodyAccount, sizeUsd) {
|
|
905
|
-
if (targetCustodyAccount.pricing.tradeSpreadMax.sub(targetCustodyAccount.pricing.tradeSpreadMin).isZero()
|
|
906
|
-
||
|
|
907
|
-
sizeUsd.isZero()) {
|
|
865
|
+
if (targetCustodyAccount.pricing.tradeSpreadMax.sub(targetCustodyAccount.pricing.tradeSpreadMin).isZero() || sizeUsd.isZero()) {
|
|
908
866
|
return constants_1.BN_ZERO;
|
|
909
867
|
}
|
|
910
868
|
var slope = ((targetCustodyAccount.pricing.tradeSpreadMax.sub(targetCustodyAccount.pricing.tradeSpreadMin)).mul(new anchor_1.BN(Math.pow(10, (constants_1.RATE_DECIMALS + constants_1.BPS_DECIMALS)))))
|
|
911
|
-
.div(targetCustodyAccount.pricing.
|
|
869
|
+
.div(targetCustodyAccount.pricing.maxPositionSizeUsd);
|
|
912
870
|
var variable = (slope.mul(sizeUsd)).div(new anchor_1.BN(Math.pow(10, (constants_1.RATE_DECIMALS + constants_1.BPS_DECIMALS))));
|
|
913
871
|
var finalSpread = targetCustodyAccount.pricing.tradeSpreadMin.add(variable);
|
|
914
872
|
return finalSpread;
|
|
@@ -923,21 +881,11 @@ var PerpetualsClient = (function () {
|
|
|
923
881
|
var exitOraclePrice = OraclePrice_1.OraclePrice.from({ price: exitPriceBN, exponent: maxPrice.exponent, confidence: maxPrice.confidence, timestamp: maxPrice.timestamp });
|
|
924
882
|
return exitOraclePrice;
|
|
925
883
|
};
|
|
926
|
-
this.getExitOraclePriceWithoutSpreadSync = function (side, targetPrice, targetEmaPrice, targetCustodyAccount) {
|
|
927
|
-
var _a = _this.getMinAndMaxOraclePriceSync(targetPrice, targetEmaPrice, targetCustodyAccount), minPrice = _a.min, maxPrice = _a.max;
|
|
928
|
-
if ((0, types_1.isVariant)(side, 'long')) {
|
|
929
|
-
return minPrice;
|
|
930
|
-
}
|
|
931
|
-
else {
|
|
932
|
-
return maxPrice;
|
|
933
|
-
}
|
|
934
|
-
};
|
|
935
884
|
this.getSizeAmountFromLeverageAndCollateral = function (collateralAmtWithFee, leverage, marketToken, collateralToken, side, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, discountBps) {
|
|
936
885
|
if (discountBps === void 0) { discountBps = constants_1.BN_ZERO; }
|
|
937
886
|
var collateralTokenMinPrice = _this.getMinAndMaxPriceSync(collateralPrice, collateralEmaPrice, collateralCustodyAccount).min;
|
|
938
887
|
var collateralTokenMinPriceUi = new bignumber_js_1.default(collateralTokenMinPrice.toString()).dividedBy(Math.pow(10, constants_1.USD_DECIMALS));
|
|
939
|
-
var collateralAmtMinUsdUi = new bignumber_js_1.default(collateralAmtWithFee.toString()).dividedBy(Math.pow(10, collateralToken.decimals))
|
|
940
|
-
.multipliedBy(collateralTokenMinPriceUi);
|
|
888
|
+
var collateralAmtMinUsdUi = new bignumber_js_1.default(collateralAmtWithFee.toString()).dividedBy(Math.pow(10, collateralToken.decimals)).multipliedBy(collateralTokenMinPriceUi);
|
|
941
889
|
var openPosFeeRateUi = new bignumber_js_1.default(targetCustodyAccount.fees.openPosition.toString()).dividedBy(Math.pow(10, constants_1.RATE_DECIMALS));
|
|
942
890
|
if (!discountBps.isZero()) {
|
|
943
891
|
var discountBpsUi = new bignumber_js_1.default(discountBps.toString()).dividedBy(Math.pow(10, constants_1.BPS_DECIMALS));
|
|
@@ -945,20 +893,20 @@ var PerpetualsClient = (function () {
|
|
|
945
893
|
}
|
|
946
894
|
var sizeUsdUi = collateralAmtMinUsdUi.multipliedBy(leverage)
|
|
947
895
|
.dividedBy(new bignumber_js_1.default(1).plus((new bignumber_js_1.default(2).multipliedBy(openPosFeeRateUi)).multipliedBy(leverage)));
|
|
948
|
-
var
|
|
949
|
-
var entryOraclePrice = _this.getEntryPriceUsdSync(side, targetPrice, targetEmaPrice, targetCustodyAccount,
|
|
896
|
+
var sizeUsd = (0, utils_1.uiDecimalsToNative)(sizeUsdUi.toString(), constants_1.USD_DECIMALS);
|
|
897
|
+
var entryOraclePrice = _this.getEntryPriceUsdSync(side, targetPrice, targetEmaPrice, targetCustodyAccount, sizeUsd);
|
|
950
898
|
var entryPriceUsdUi = new bignumber_js_1.default(entryOraclePrice.toUiPrice(constants_1.ORACLE_EXPONENT));
|
|
951
899
|
var sizeAmountUi = sizeUsdUi.dividedBy(entryPriceUsdUi);
|
|
952
900
|
return (0, utils_1.uiDecimalsToNative)(sizeAmountUi.toFixed(marketToken.decimals, bignumber_js_1.default.ROUND_DOWN), marketToken.decimals);
|
|
953
901
|
};
|
|
954
|
-
this.getSizeAmountWithSwapSync = function (amountIn, leverage, side, poolAccount, inputTokenPrice, inputTokenEmaPrice, inputTokenCustodyAccount, collateralTokenPrice, collateralTokenEmaPrice, collateralTokenCustodyAccount, swapOutTokenPrice, swapOutTokenEmaPrice, swapOutTokenCustodyAccount, targetTokenPrice, targetTokenEmaPrice, targetTokenCustodyAccount, swapPoolAumUsdMax,
|
|
902
|
+
this.getSizeAmountWithSwapSync = function (amountIn, leverage, side, poolAccount, inputTokenPrice, inputTokenEmaPrice, inputTokenCustodyAccount, collateralTokenPrice, collateralTokenEmaPrice, collateralTokenCustodyAccount, swapOutTokenPrice, swapOutTokenEmaPrice, swapOutTokenCustodyAccount, targetTokenPrice, targetTokenEmaPrice, targetTokenCustodyAccount, swapPoolAumUsdMax, poolConfig, discountBps) {
|
|
955
903
|
if (discountBps === void 0) { discountBps = constants_1.BN_ZERO; }
|
|
956
904
|
var finalCollateralAmount = constants_1.BN_ZERO;
|
|
957
905
|
if (inputTokenCustodyAccount.publicKey.equals(collateralTokenCustodyAccount.publicKey)) {
|
|
958
906
|
finalCollateralAmount = amountIn;
|
|
959
907
|
}
|
|
960
908
|
else {
|
|
961
|
-
var swapAmountOut = _this.getSwapAmountAndFeesSync(amountIn, constants_1.BN_ZERO, poolAccount, inputTokenPrice, inputTokenEmaPrice, inputTokenCustodyAccount, swapOutTokenPrice, swapOutTokenEmaPrice, swapOutTokenCustodyAccount, swapPoolAumUsdMax,
|
|
909
|
+
var swapAmountOut = _this.getSwapAmountAndFeesSync(amountIn, constants_1.BN_ZERO, poolAccount, inputTokenPrice, inputTokenEmaPrice, inputTokenCustodyAccount, swapOutTokenPrice, swapOutTokenEmaPrice, swapOutTokenCustodyAccount, swapPoolAumUsdMax, poolConfig).minAmountOut;
|
|
962
910
|
finalCollateralAmount = swapAmountOut;
|
|
963
911
|
}
|
|
964
912
|
var collateralTokenMinPrice = _this.getMinAndMaxPriceSync(collateralTokenPrice, collateralTokenEmaPrice, collateralTokenCustodyAccount).min;
|
|
@@ -972,8 +920,8 @@ var PerpetualsClient = (function () {
|
|
|
972
920
|
}
|
|
973
921
|
var sizeUsdUi = collateralAmtMinUsdUi.multipliedBy(leverage)
|
|
974
922
|
.dividedBy(new bignumber_js_1.default(1).plus((new bignumber_js_1.default(2).multipliedBy(openPosFeeRateUi)).multipliedBy(leverage)));
|
|
975
|
-
var
|
|
976
|
-
var entryOraclePrice = _this.getEntryPriceUsdSync(side, targetTokenPrice, targetTokenEmaPrice, targetTokenCustodyAccount,
|
|
923
|
+
var sizeUsd = (0, utils_1.uiDecimalsToNative)(sizeUsdUi.toFixed(constants_1.USD_DECIMALS), constants_1.USD_DECIMALS);
|
|
924
|
+
var entryOraclePrice = _this.getEntryPriceUsdSync(side, targetTokenPrice, targetTokenEmaPrice, targetTokenCustodyAccount, sizeUsd);
|
|
977
925
|
var entryPriceUsdUi = new bignumber_js_1.default(entryOraclePrice.toUiPrice(constants_1.ORACLE_EXPONENT));
|
|
978
926
|
var sizeAmountUi = sizeUsdUi.dividedBy(entryPriceUsdUi);
|
|
979
927
|
return (0, utils_1.uiDecimalsToNative)(sizeAmountUi.toFixed(targetTokenCustodyAccount.decimals, bignumber_js_1.default.ROUND_DOWN), targetTokenCustodyAccount.decimals);
|
|
@@ -996,7 +944,7 @@ var PerpetualsClient = (function () {
|
|
|
996
944
|
var collateralAmtWithFeeUi = collateralWithFeeUsdUi.dividedBy(collateralTokenMinPriceUi);
|
|
997
945
|
return (0, utils_1.uiDecimalsToNative)(collateralAmtWithFeeUi.toFixed(collateralToken.decimals, bignumber_js_1.default.ROUND_DOWN), collateralToken.decimals);
|
|
998
946
|
};
|
|
999
|
-
this.getCollateralAmountWithSwapSync = function (sizeAmount, leverage, side, poolAccount, inputTokenPrice, inputTokenEmaPrice, inputTokenCustodyAccount, swapOutTokenPrice, swapOutTokenEmaPrice, swapOutTokenCustodyAccount, collateralTokenPrice, collateralTokenEmaPrice, collateralTokenCustodyAccount, targetTokenPrice, targetTokenEmaPrice, targetTokenCustodyAccount, swapPoolAumUsdMax,
|
|
947
|
+
this.getCollateralAmountWithSwapSync = function (sizeAmount, leverage, side, poolAccount, inputTokenPrice, inputTokenEmaPrice, inputTokenCustodyAccount, swapOutTokenPrice, swapOutTokenEmaPrice, swapOutTokenCustodyAccount, collateralTokenPrice, collateralTokenEmaPrice, collateralTokenCustodyAccount, targetTokenPrice, targetTokenEmaPrice, targetTokenCustodyAccount, swapPoolAumUsdMax, poolConfig) {
|
|
1000
948
|
var collateralTokenMinPrice = _this.getMinAndMaxPriceSync(collateralTokenPrice, collateralTokenEmaPrice, collateralTokenCustodyAccount).min;
|
|
1001
949
|
var collateralTokenMinPriceUi = new bignumber_js_1.default(collateralTokenMinPrice.toString()).dividedBy(Math.pow(10, constants_1.USD_DECIMALS));
|
|
1002
950
|
var sizeUsd = targetTokenPrice.getAssetAmountUsd(sizeAmount, targetTokenCustodyAccount.decimals);
|
|
@@ -1013,11 +961,11 @@ var PerpetualsClient = (function () {
|
|
|
1013
961
|
collateralInInputToken = collateralAmountWithFee;
|
|
1014
962
|
}
|
|
1015
963
|
else {
|
|
1016
|
-
collateralInInputToken = _this.getSwapAmountAndFeesSync(constants_1.BN_ZERO, collateralAmountWithFee, poolAccount, inputTokenPrice, inputTokenEmaPrice, inputTokenCustodyAccount, swapOutTokenPrice, swapOutTokenEmaPrice, swapOutTokenCustodyAccount, swapPoolAumUsdMax,
|
|
964
|
+
collateralInInputToken = _this.getSwapAmountAndFeesSync(constants_1.BN_ZERO, collateralAmountWithFee, poolAccount, inputTokenPrice, inputTokenEmaPrice, inputTokenCustodyAccount, swapOutTokenPrice, swapOutTokenEmaPrice, swapOutTokenCustodyAccount, swapPoolAumUsdMax, poolConfig).minAmountIn;
|
|
1017
965
|
}
|
|
1018
966
|
return collateralInInputToken;
|
|
1019
967
|
};
|
|
1020
|
-
this.getDecreaseSizeCollateralAndFeeSync = function (positionAccount, marketCorrelation, sizeDeltaUsd, keepLevSame, targetPrice, targetEmaPrice, marketConfig, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, side, poolConfig, discountBps, debugLogs) {
|
|
968
|
+
this.getDecreaseSizeCollateralAndFeeSync = function (positionAccount, marketCorrelation, maxPayOffBps, sizeDeltaUsd, keepLevSame, targetPrice, targetEmaPrice, marketConfig, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, side, poolConfig, discountBps, debugLogs) {
|
|
1021
969
|
if (discountBps === void 0) { discountBps = constants_1.BN_ZERO; }
|
|
1022
970
|
if (debugLogs === void 0) { debugLogs = false; }
|
|
1023
971
|
if (!marketConfig.marketAccount.equals(positionAccount.market)) {
|
|
@@ -1039,10 +987,9 @@ var PerpetualsClient = (function () {
|
|
|
1039
987
|
var decimalPower = new anchor_1.BN(Math.pow(10, targetCustodyAccount.decimals));
|
|
1040
988
|
var closeRatio = (positionDelta.sizeAmount.mul(decimalPower)).div(positionAccount.sizeAmount);
|
|
1041
989
|
positionDelta.sizeUsd = (positionAccount.sizeUsd.mul(closeRatio)).div(decimalPower);
|
|
1042
|
-
positionDelta.unsettledFeesUsd = (positionAccount.unsettledFeesUsd.mul(closeRatio)).div(decimalPower);
|
|
1043
990
|
positionDelta.lockedAmount = (positionAccount.lockedAmount.mul(closeRatio)).div(decimalPower);
|
|
1044
|
-
positionDelta.
|
|
1045
|
-
positionDelta.
|
|
991
|
+
positionDelta.collateralUsd = (positionAccount.collateralUsd.mul(closeRatio)).div(decimalPower);
|
|
992
|
+
positionDelta.unsettledFeesUsd = (positionAccount.unsettledFeesUsd.mul(closeRatio)).div(decimalPower);
|
|
1046
993
|
positionDelta.degenSizeUsd = positionAccount.degenSizeUsd.mul(closeRatio).div(decimalPower);
|
|
1047
994
|
var newPnl = _this.getPnlSync(positionDelta, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, targetCustodyAccount.pricing.delaySeconds, poolConfig);
|
|
1048
995
|
var exitFeeUsd = positionDelta.sizeUsd.mul(targetCustodyAccount.fees.closePosition).div(new anchor_1.BN(constants_1.RATE_POWER));
|
|
@@ -1052,30 +999,37 @@ var PerpetualsClient = (function () {
|
|
|
1052
999
|
}
|
|
1053
1000
|
var lockAndUnsettledFeeUsd = _this.getLockFeeAndUnsettledUsdForPosition(positionDelta, collateralCustodyAccount, currentTimestamp);
|
|
1054
1001
|
var totalFeesUsd = (exitFeeUsd.add(lockAndUnsettledFeeUsd));
|
|
1055
|
-
var currentCollateralUsd =
|
|
1002
|
+
var currentCollateralUsd = positionDelta.collateralUsd;
|
|
1056
1003
|
var liabilityUsd = newPnl.lossUsd.add(totalFeesUsd);
|
|
1057
|
-
var assetsUsd = newPnl.profitUsd.add(currentCollateralUsd);
|
|
1058
|
-
var closeAmount, feesAmount;
|
|
1004
|
+
var assetsUsd = anchor_1.BN.min(newPnl.profitUsd.add(currentCollateralUsd), collateralMinMaxPrice.max.getAssetAmountUsd(positionDelta.lockedAmount, collateralCustodyAccount.decimals));
|
|
1059
1005
|
if (debugLogs) {
|
|
1060
1006
|
console.log("assetsUsd.sub(liabilityUsd):", collateralCustodyAccount.decimals, assetsUsd.toString(), liabilityUsd.toString(), assetsUsd.sub(liabilityUsd).toString());
|
|
1061
1007
|
}
|
|
1008
|
+
var closeAmountUsd, feesAmountUsd;
|
|
1062
1009
|
if (assetsUsd.gte(liabilityUsd)) {
|
|
1063
|
-
|
|
1064
|
-
|
|
1010
|
+
closeAmountUsd = assetsUsd.sub(liabilityUsd);
|
|
1011
|
+
feesAmountUsd = totalFeesUsd;
|
|
1065
1012
|
}
|
|
1066
1013
|
else {
|
|
1067
|
-
|
|
1068
|
-
|
|
1014
|
+
closeAmountUsd = constants_1.BN_ZERO;
|
|
1015
|
+
feesAmountUsd = assetsUsd.sub(newPnl.lossUsd);
|
|
1016
|
+
}
|
|
1017
|
+
var closeAmount = collateralMinMaxPrice.max.getTokenAmount(closeAmountUsd, collateralCustodyAccount.decimals);
|
|
1018
|
+
var newLockAmount = collateralMinMaxPrice.max.getTokenAmount(_this.getLockedUsd(constants_1.BN_ZERO, closeAmountUsd, side, marketCorrelation, maxPayOffBps), collateralCustodyAccount.decimals);
|
|
1019
|
+
if (newLockAmount.gt(positionDelta.lockedAmount)) {
|
|
1020
|
+
positionDelta.lockedAmount = constants_1.BN_ZERO;
|
|
1021
|
+
}
|
|
1022
|
+
else {
|
|
1023
|
+
positionDelta.lockedAmount = positionDelta.lockedAmount.sub(newLockAmount);
|
|
1069
1024
|
}
|
|
1070
1025
|
var newPosition = PositionAccount_1.PositionAccount.from(positionAccount.publicKey, __assign({}, positionAccount));
|
|
1071
1026
|
newPosition.sizeAmount = positionAccount.sizeAmount.sub(positionDelta.sizeAmount);
|
|
1072
1027
|
newPosition.sizeUsd = positionAccount.sizeUsd.sub(positionDelta.sizeUsd);
|
|
1073
|
-
newPosition.lockedUsd = positionAccount.lockedUsd.sub(positionDelta.lockedUsd);
|
|
1074
1028
|
newPosition.lockedAmount = positionAccount.lockedAmount.sub(positionDelta.lockedAmount);
|
|
1075
|
-
newPosition.
|
|
1029
|
+
newPosition.collateralUsd = positionAccount.collateralUsd.sub(positionDelta.collateralUsd);
|
|
1076
1030
|
newPosition.unsettledFeesUsd = positionAccount.unsettledFeesUsd.sub(positionDelta.unsettledFeesUsd);
|
|
1077
|
-
newPosition.collateralUsd = collateralMinMaxPrice.min.getAssetAmountUsd(newPosition.collateralAmount, collateralCustodyAccount.decimals);
|
|
1078
1031
|
newPosition.degenSizeUsd = positionAccount.degenSizeUsd.sub(positionDelta.degenSizeUsd);
|
|
1032
|
+
newPosition.collateralUsd = newPosition.collateralUsd.add(closeAmountUsd);
|
|
1079
1033
|
var feeUsdWithDiscount = constants_1.BN_ZERO;
|
|
1080
1034
|
var feeUsd = sizeDeltaUsd.mul(targetCustodyAccount.fees.closePosition).div(new anchor_1.BN(constants_1.RATE_POWER));
|
|
1081
1035
|
if (discountBps.gt(constants_1.BN_ZERO)) {
|
|
@@ -1089,29 +1043,30 @@ var PerpetualsClient = (function () {
|
|
|
1089
1043
|
feeUsdWithDiscount = feeUsdWithDiscount.add(lockAndUnsettledFeeUsd);
|
|
1090
1044
|
if (keepLevSame) {
|
|
1091
1045
|
var collateralAmountReceived = closeAmount;
|
|
1092
|
-
var
|
|
1093
|
-
var _a = _this.getMaxWithdrawableAmountSyncInternal(newPosition, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, poolConfig
|
|
1046
|
+
var collateralAmountReceivedUsd = closeAmountUsd;
|
|
1047
|
+
var _a = _this.getMaxWithdrawableAmountSyncInternal(newPosition, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, poolConfig), maxWithdrawableAmount = _a.maxWithdrawableAmount, maxWithdrawableAmountUsd = _a.maxWithdrawableAmountUsd, diffUsd = _a.diffUsd;
|
|
1094
1048
|
if (debugLogs) {
|
|
1095
1049
|
console.log("maxWithdrawableAmount ", maxWithdrawableAmount.toString(), keepLevSame);
|
|
1096
1050
|
console.log("collateralAmountReceived ", collateralAmountReceived.toString(), keepLevSame);
|
|
1097
1051
|
}
|
|
1098
|
-
if (
|
|
1052
|
+
if (collateralAmountReceivedUsd.lt(constants_1.BN_ZERO)) {
|
|
1099
1053
|
collateralAmountReceived = constants_1.BN_ZERO;
|
|
1100
|
-
|
|
1054
|
+
collateralAmountReceivedUsd = constants_1.BN_ZERO;
|
|
1101
1055
|
}
|
|
1102
|
-
else if (
|
|
1056
|
+
else if (collateralAmountReceivedUsd.gt(maxWithdrawableAmountUsd)) {
|
|
1103
1057
|
if (debugLogs) {
|
|
1104
1058
|
console.log("exceeding to redicing maxWithdrawableAmount ", maxWithdrawableAmount.toString(), collateralAmountReceived.toString());
|
|
1105
1059
|
}
|
|
1106
1060
|
collateralAmountReceived = maxWithdrawableAmount;
|
|
1107
|
-
|
|
1061
|
+
collateralAmountReceivedUsd = maxWithdrawableAmountUsd;
|
|
1108
1062
|
}
|
|
1109
1063
|
var entryPrice = OraclePrice_1.OraclePrice.from({ price: newPosition.entryPrice.price, exponent: new anchor_1.BN(newPosition.entryPrice.exponent), confidence: constants_1.BN_ZERO, timestamp: constants_1.BN_ZERO });
|
|
1110
|
-
|
|
1111
|
-
var
|
|
1064
|
+
newPosition.collateralUsd = newPosition.collateralUsd.sub(collateralAmountReceivedUsd);
|
|
1065
|
+
var lockAndUnsettledFeeUsdNew = _this.getLockFeeAndUnsettledUsdForPosition(newPosition, collateralCustodyAccount, currentTimestamp);
|
|
1066
|
+
var finalLiquidationPrice = _this.getLiquidationPriceContractHelper(entryPrice, lockAndUnsettledFeeUsdNew, side, targetCustodyAccount, newPosition);
|
|
1112
1067
|
var finalPnl = _this.getPnlSync(newPosition, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, targetCustodyAccount.pricing.delaySeconds, poolConfig);
|
|
1113
1068
|
var finalPnlUsd = finalPnl.profitUsd.sub(finalPnl.lossUsd);
|
|
1114
|
-
var newLev = _this.getLeverageSync(newPosition
|
|
1069
|
+
var newLev = _this.getLeverageSync(newPosition, newPosition.collateralUsd, newPosition.sizeUsd, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, false, poolConfig);
|
|
1115
1070
|
return {
|
|
1116
1071
|
newSizeUsd: newPosition.sizeUsd,
|
|
1117
1072
|
feeUsd: feeUsd,
|
|
@@ -1119,8 +1074,9 @@ var PerpetualsClient = (function () {
|
|
|
1119
1074
|
lockAndUnsettledFeeUsd: lockAndUnsettledFeeUsd,
|
|
1120
1075
|
newLev: newLev,
|
|
1121
1076
|
liquidationPrice: finalLiquidationPrice,
|
|
1122
|
-
|
|
1123
|
-
|
|
1077
|
+
collateralAmountReceived: collateralAmountReceived,
|
|
1078
|
+
collateralAmountReceivedUsd: collateralAmountReceivedUsd,
|
|
1079
|
+
newCollateralUsd: newPosition.collateralUsd.add(diffUsd),
|
|
1124
1080
|
newPnl: finalPnlUsd
|
|
1125
1081
|
};
|
|
1126
1082
|
}
|
|
@@ -1128,8 +1084,7 @@ var PerpetualsClient = (function () {
|
|
|
1128
1084
|
throw "only same leverage is supported for now";
|
|
1129
1085
|
}
|
|
1130
1086
|
};
|
|
1131
|
-
this.getMaxWithdrawableAmountSyncInternal = function (positionAccount, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, poolConfig,
|
|
1132
|
-
if (closeAmount === void 0) { closeAmount = constants_1.BN_ZERO; }
|
|
1087
|
+
this.getMaxWithdrawableAmountSyncInternal = function (positionAccount, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, poolConfig, errorBandwidthPercentageUi) {
|
|
1133
1088
|
if (errorBandwidthPercentageUi === void 0) { errorBandwidthPercentageUi = 5; }
|
|
1134
1089
|
if (errorBandwidthPercentageUi > 100 || errorBandwidthPercentageUi < 0) {
|
|
1135
1090
|
throw new Error("errorBandwidthPercentageUi cannot be >100 or <0");
|
|
@@ -1138,61 +1093,87 @@ var PerpetualsClient = (function () {
|
|
|
1138
1093
|
(new anchor_1.BN(targetCustodyAccount.pricing.maxInitDegenLeverage)).mul(new anchor_1.BN(100 - errorBandwidthPercentageUi)).div(new anchor_1.BN(100))
|
|
1139
1094
|
: (new anchor_1.BN(targetCustodyAccount.pricing.maxInitLeverage)).mul(new anchor_1.BN(100 - errorBandwidthPercentageUi)).div(new anchor_1.BN(100));
|
|
1140
1095
|
var profitLoss = _this.getPnlSync(positionAccount, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, targetCustodyAccount.pricing.delaySeconds, poolConfig);
|
|
1141
|
-
var
|
|
1096
|
+
var collateralMinMaxPrice = _this.getMinAndMaxOraclePriceSync(collateralPrice, collateralEmaPrice, collateralCustodyAccount);
|
|
1142
1097
|
var exitFeeUsd = positionAccount.sizeUsd.mul(targetCustodyAccount.fees.closePosition).div(new anchor_1.BN(constants_1.RATE_POWER));
|
|
1143
1098
|
var lockAndUnsettledFeeUsd = _this.getLockFeeAndUnsettledUsdForPosition(positionAccount, collateralCustodyAccount, currentTimestamp);
|
|
1144
1099
|
var lossUsd = profitLoss.lossUsd.add(exitFeeUsd).add(lockAndUnsettledFeeUsd);
|
|
1145
|
-
var currentCollateralUsd = collateralMinPrice.getAssetAmountUsd(positionAccount.collateralAmount.add(closeAmount), collateralCustodyAccount.decimals);
|
|
1146
1100
|
var availableInitMarginUsd = constants_1.BN_ZERO;
|
|
1147
|
-
if (profitLoss.lossUsd.lt(
|
|
1148
|
-
availableInitMarginUsd =
|
|
1101
|
+
if (profitLoss.lossUsd.lt(positionAccount.collateralUsd)) {
|
|
1102
|
+
availableInitMarginUsd = positionAccount.collateralUsd.sub(lossUsd);
|
|
1149
1103
|
}
|
|
1150
1104
|
else {
|
|
1151
1105
|
console.log("profitLoss.lossUsd > coll :: should have been liquidated");
|
|
1152
|
-
return { maxWithdrawableAmount: constants_1.BN_ZERO,
|
|
1106
|
+
return { maxWithdrawableAmount: constants_1.BN_ZERO, maxWithdrawableAmountUsd: constants_1.BN_ZERO, diffUsd: constants_1.BN_ZERO };
|
|
1153
1107
|
}
|
|
1154
1108
|
var maxRemovableCollateralUsd = availableInitMarginUsd.sub(positionAccount.sizeUsd.muln(constants_1.BPS_POWER).div(MAX_INIT_LEVERAGE));
|
|
1155
1109
|
if (maxRemovableCollateralUsd.isNeg()) {
|
|
1156
|
-
return { maxWithdrawableAmount: constants_1.BN_ZERO,
|
|
1110
|
+
return { maxWithdrawableAmount: constants_1.BN_ZERO, maxWithdrawableAmountUsd: constants_1.BN_ZERO, diffUsd: constants_1.BN_ZERO };
|
|
1157
1111
|
}
|
|
1158
1112
|
var maxWithdrawableAmount = constants_1.BN_ZERO;
|
|
1159
|
-
var
|
|
1113
|
+
var maxWithdrawableAmountUsd = constants_1.BN_ZERO;
|
|
1114
|
+
var diffUsd = constants_1.BN_ZERO;
|
|
1160
1115
|
var remainingCollateralUsd = availableInitMarginUsd.sub(maxRemovableCollateralUsd);
|
|
1161
1116
|
var isDegenMode = positionAccount.isDegenMode();
|
|
1162
1117
|
if (remainingCollateralUsd.lt(new anchor_1.BN(isDegenMode ? targetCustodyAccount.pricing.minDegenCollateralUsd : targetCustodyAccount.pricing.minCollateralUsd))) {
|
|
1163
|
-
|
|
1164
|
-
var updatedMaxRemovableCollateralUsd = maxRemovableCollateralUsd.sub(
|
|
1118
|
+
diffUsd = (new anchor_1.BN(isDegenMode ? targetCustodyAccount.pricing.minDegenCollateralUsd : targetCustodyAccount.pricing.minCollateralUsd)).sub(remainingCollateralUsd);
|
|
1119
|
+
var updatedMaxRemovableCollateralUsd = maxRemovableCollateralUsd.sub(diffUsd);
|
|
1165
1120
|
if (updatedMaxRemovableCollateralUsd.isNeg()) {
|
|
1166
|
-
return { maxWithdrawableAmount: constants_1.BN_ZERO,
|
|
1121
|
+
return { maxWithdrawableAmount: constants_1.BN_ZERO, maxWithdrawableAmountUsd: constants_1.BN_ZERO, diffUsd: constants_1.BN_ZERO };
|
|
1167
1122
|
}
|
|
1168
1123
|
else {
|
|
1169
|
-
maxWithdrawableAmount =
|
|
1124
|
+
maxWithdrawableAmount = collateralMinMaxPrice.max.getTokenAmount(updatedMaxRemovableCollateralUsd, collateralCustodyAccount.decimals);
|
|
1125
|
+
maxWithdrawableAmountUsd = updatedMaxRemovableCollateralUsd;
|
|
1170
1126
|
}
|
|
1171
1127
|
}
|
|
1172
1128
|
else {
|
|
1173
|
-
maxWithdrawableAmount =
|
|
1129
|
+
maxWithdrawableAmount = collateralMinMaxPrice.max.getTokenAmount(maxRemovableCollateralUsd, collateralCustodyAccount.decimals);
|
|
1130
|
+
maxWithdrawableAmountUsd = maxRemovableCollateralUsd;
|
|
1174
1131
|
}
|
|
1175
|
-
return { maxWithdrawableAmount: maxWithdrawableAmount,
|
|
1132
|
+
return { maxWithdrawableAmount: maxWithdrawableAmount, maxWithdrawableAmountUsd: maxWithdrawableAmountUsd, diffUsd: diffUsd };
|
|
1176
1133
|
};
|
|
1177
|
-
this.
|
|
1134
|
+
this.getFinalCloseAmountUsdSync = function (positionAccount, marketCorrelation, side, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, poolConfig) {
|
|
1178
1135
|
var position = PositionAccount_1.PositionAccount.from(positionAccount.publicKey, __assign({}, positionAccount));
|
|
1179
1136
|
var collateralMinMaxPrice = _this.getMinAndMaxOraclePriceSync(collateralPrice, collateralEmaPrice, collateralCustodyAccount);
|
|
1180
|
-
var collateralUsd = collateralMinMaxPrice.min.getAssetAmountUsd(position.collateralAmount, collateralCustodyAccount.decimals);
|
|
1181
1137
|
var newPnl = _this.getPnlSync(position, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, targetCustodyAccount.pricing.delaySeconds, poolConfig);
|
|
1182
1138
|
var exitPriceAndFee = _this.getExitPriceAndFeeSync(positionAccount, marketCorrelation, positionAccount.collateralAmount, positionAccount.sizeAmount, side, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp);
|
|
1183
1139
|
var totalFeesUsd = (exitPriceAndFee.exitFeeUsd.add(exitPriceAndFee.borrowFeeUsd));
|
|
1184
1140
|
var liabilityUsd = newPnl.lossUsd.add(totalFeesUsd);
|
|
1185
|
-
var assetsUsd = newPnl.profitUsd.add(collateralMinMaxPrice.
|
|
1186
|
-
var
|
|
1141
|
+
var assetsUsd = anchor_1.BN.min(newPnl.profitUsd.add(positionAccount.collateralUsd), collateralMinMaxPrice.max.getAssetAmountUsd(positionAccount.lockedAmount, collateralCustodyAccount.decimals));
|
|
1142
|
+
var closeAmountUsd, feesAmountUsd;
|
|
1187
1143
|
if (assetsUsd.gt(liabilityUsd)) {
|
|
1188
|
-
|
|
1189
|
-
|
|
1144
|
+
closeAmountUsd = assetsUsd.sub(liabilityUsd);
|
|
1145
|
+
feesAmountUsd = totalFeesUsd;
|
|
1190
1146
|
}
|
|
1191
1147
|
else {
|
|
1192
|
-
|
|
1193
|
-
|
|
1148
|
+
closeAmountUsd = constants_1.BN_ZERO;
|
|
1149
|
+
feesAmountUsd = assetsUsd.sub(newPnl.lossUsd);
|
|
1194
1150
|
}
|
|
1195
|
-
return {
|
|
1151
|
+
return { closeAmountUsd: closeAmountUsd, feesAmountUsd: feesAmountUsd };
|
|
1152
|
+
};
|
|
1153
|
+
this.getMaxAddableCollateralSync = function (positionAccount, targetCustodyAccount, collateralCustodyAccount, collateralPrice, collateralEmaPrice, errorBandwidthPercentageUi) {
|
|
1154
|
+
if (errorBandwidthPercentageUi === void 0) { errorBandwidthPercentageUi = 5; }
|
|
1155
|
+
if (errorBandwidthPercentageUi > 100 || errorBandwidthPercentageUi < 0) {
|
|
1156
|
+
throw new Error('errorBandwidthPercentageUi cannot be >100 or <0');
|
|
1157
|
+
}
|
|
1158
|
+
var rawMinInitLev = positionAccount.isDegenMode()
|
|
1159
|
+
? new anchor_1.BN(targetCustodyAccount.pricing.minInitDegenLeverage)
|
|
1160
|
+
: new anchor_1.BN(targetCustodyAccount.pricing.minInitLeverage);
|
|
1161
|
+
var MIN_INIT_LEVERAGE = rawMinInitLev
|
|
1162
|
+
.mul(new anchor_1.BN(100 + errorBandwidthPercentageUi))
|
|
1163
|
+
.div(new anchor_1.BN(100));
|
|
1164
|
+
var requiredCollateralUsdForMinLev = positionAccount.sizeUsd
|
|
1165
|
+
.muln(constants_1.BPS_POWER)
|
|
1166
|
+
.div(MIN_INIT_LEVERAGE);
|
|
1167
|
+
var currentCollateralUsd = positionAccount.collateralUsd;
|
|
1168
|
+
var maxAddableCollateralUsd = requiredCollateralUsdForMinLev.gt(currentCollateralUsd)
|
|
1169
|
+
? requiredCollateralUsdForMinLev.sub(currentCollateralUsd)
|
|
1170
|
+
: constants_1.BN_ZERO;
|
|
1171
|
+
var collateralMinMaxPrice = _this.getMinAndMaxOraclePriceSync(collateralPrice, collateralEmaPrice, collateralCustodyAccount);
|
|
1172
|
+
var maxAddableAmount = collateralMinMaxPrice.min.getTokenAmount(maxAddableCollateralUsd, collateralCustodyAccount.decimals);
|
|
1173
|
+
return {
|
|
1174
|
+
maxAddableAmount: maxAddableAmount,
|
|
1175
|
+
maxAddableAmountUsd: maxAddableCollateralUsd,
|
|
1176
|
+
};
|
|
1196
1177
|
};
|
|
1197
1178
|
this.getMaxWithdrawableAmountSync = function (positionAccount, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, poolConfig, errorBandwidthPercentageUi) {
|
|
1198
1179
|
if (errorBandwidthPercentageUi === void 0) { errorBandwidthPercentageUi = 5; }
|
|
@@ -1205,34 +1186,37 @@ var PerpetualsClient = (function () {
|
|
|
1205
1186
|
var maxRemoveableCollateralUsdAfterMinRequired = positionAccount.collateralUsd.sub((positionAccount.isDegenMode() ? new anchor_1.BN(targetCustodyAccount.pricing.minDegenCollateralUsd) : new anchor_1.BN(targetCustodyAccount.pricing.minCollateralUsd)).mul(new anchor_1.BN(100 + errorBandwidthPercentageUi)).div(new anchor_1.BN(100)));
|
|
1206
1187
|
if (maxRemoveableCollateralUsdAfterMinRequired.isNeg()) {
|
|
1207
1188
|
console.log("THIS cannot happen but still");
|
|
1208
|
-
return constants_1.BN_ZERO;
|
|
1189
|
+
return { maxWithdrawableAmount: constants_1.BN_ZERO, maxWithdrawableAmountUsd: constants_1.BN_ZERO };
|
|
1209
1190
|
}
|
|
1210
1191
|
var profitLoss = _this.getPnlSync(positionAccount, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, targetCustodyAccount.pricing.delaySeconds, poolConfig);
|
|
1211
|
-
var
|
|
1192
|
+
var collateralMinMaxPrice = _this.getMinAndMaxOraclePriceSync(collateralPrice, collateralEmaPrice, collateralCustodyAccount);
|
|
1212
1193
|
var exitFeeUsd = positionAccount.sizeUsd.mul(targetCustodyAccount.fees.closePosition).div(new anchor_1.BN(constants_1.RATE_POWER));
|
|
1213
1194
|
var lockAndUnsettledFeeUsd = _this.getLockFeeAndUnsettledUsdForPosition(positionAccount, collateralCustodyAccount, currentTimestamp);
|
|
1214
1195
|
var lossUsd = profitLoss.lossUsd.add(exitFeeUsd).add(lockAndUnsettledFeeUsd);
|
|
1215
|
-
var currentCollateralUsd =
|
|
1196
|
+
var currentCollateralUsd = positionAccount.collateralUsd;
|
|
1216
1197
|
var availableInitMarginUsd = constants_1.BN_ZERO;
|
|
1217
1198
|
if (profitLoss.lossUsd.lt(currentCollateralUsd)) {
|
|
1218
1199
|
availableInitMarginUsd = currentCollateralUsd.sub(lossUsd);
|
|
1219
1200
|
}
|
|
1220
1201
|
else {
|
|
1221
1202
|
console.log("profitLoss.lossUsd > coll :: should have been liquidated");
|
|
1222
|
-
return constants_1.BN_ZERO;
|
|
1203
|
+
return { maxWithdrawableAmount: constants_1.BN_ZERO, maxWithdrawableAmountUsd: constants_1.BN_ZERO };
|
|
1223
1204
|
}
|
|
1224
1205
|
var maxRemovableCollateralUsd = availableInitMarginUsd.sub(positionAccount.sizeUsd.muln(constants_1.BPS_POWER).div(MAX_INIT_LEVERAGE));
|
|
1225
1206
|
if (maxRemovableCollateralUsd.isNeg()) {
|
|
1226
|
-
return constants_1.BN_ZERO;
|
|
1207
|
+
return { maxWithdrawableAmount: constants_1.BN_ZERO, maxWithdrawableAmountUsd: constants_1.BN_ZERO };
|
|
1227
1208
|
}
|
|
1228
1209
|
var maxWithdrawableAmount;
|
|
1210
|
+
var maxWithdrawableAmountUsd = constants_1.BN_ZERO;
|
|
1229
1211
|
if (maxRemoveableCollateralUsdAfterMinRequired.lt(maxRemovableCollateralUsd)) {
|
|
1230
|
-
maxWithdrawableAmount =
|
|
1212
|
+
maxWithdrawableAmount = collateralMinMaxPrice.max.getTokenAmount(maxRemoveableCollateralUsdAfterMinRequired, collateralCustodyAccount.decimals);
|
|
1213
|
+
maxWithdrawableAmountUsd = maxRemoveableCollateralUsdAfterMinRequired;
|
|
1231
1214
|
}
|
|
1232
1215
|
else {
|
|
1233
|
-
maxWithdrawableAmount =
|
|
1216
|
+
maxWithdrawableAmount = collateralMinMaxPrice.max.getTokenAmount(maxRemovableCollateralUsd, collateralCustodyAccount.decimals);
|
|
1217
|
+
maxWithdrawableAmountUsd = maxRemovableCollateralUsd;
|
|
1234
1218
|
}
|
|
1235
|
-
return maxWithdrawableAmount;
|
|
1219
|
+
return { maxWithdrawableAmount: maxWithdrawableAmount, maxWithdrawableAmountUsd: maxWithdrawableAmountUsd };
|
|
1236
1220
|
};
|
|
1237
1221
|
this.getCumulativeLockFeeSync = function (custodyAccount, currentTimestamp) {
|
|
1238
1222
|
var cumulativeLockFee = constants_1.BN_ZERO;
|
|
@@ -1270,12 +1254,12 @@ var PerpetualsClient = (function () {
|
|
|
1270
1254
|
var cumulativeLockFee = _this.getCumulativeLockFeeSync(collateralCustodyAccount, currentTimestamp);
|
|
1271
1255
|
var lockFeeUsd = constants_1.BN_ZERO;
|
|
1272
1256
|
if (cumulativeLockFee.gt(position.cumulativeLockFeeSnapshot)) {
|
|
1273
|
-
lockFeeUsd = cumulativeLockFee.sub(position.cumulativeLockFeeSnapshot).mul(position.
|
|
1257
|
+
lockFeeUsd = cumulativeLockFee.sub(position.cumulativeLockFeeSnapshot).mul(position.sizeUsd).div(new anchor_1.BN(constants_1.RATE_POWER));
|
|
1274
1258
|
}
|
|
1275
1259
|
lockFeeUsd = lockFeeUsd.add(position.unsettledFeesUsd);
|
|
1276
1260
|
return lockFeeUsd;
|
|
1277
1261
|
};
|
|
1278
|
-
this.getLockedUsd = function (
|
|
1262
|
+
this.getLockedUsd = function (sizeUsd, collateralUsd, side, marketCorrelation, maxPayOffBps) {
|
|
1279
1263
|
var maxPayOffBpsNew = constants_1.BN_ZERO;
|
|
1280
1264
|
if (marketCorrelation || (0, types_1.isVariant)(side, 'short')) {
|
|
1281
1265
|
maxPayOffBpsNew = anchor_1.BN.min(new anchor_1.BN(constants_1.BPS_POWER), maxPayOffBps);
|
|
@@ -1283,193 +1267,146 @@ var PerpetualsClient = (function () {
|
|
|
1283
1267
|
else {
|
|
1284
1268
|
maxPayOffBpsNew = maxPayOffBps;
|
|
1285
1269
|
}
|
|
1286
|
-
var lockedUsd = (
|
|
1270
|
+
var lockedUsd = ((sizeUsd.add(collateralUsd)).mul(maxPayOffBpsNew)).div(new anchor_1.BN(constants_1.BPS_POWER));
|
|
1287
1271
|
return lockedUsd;
|
|
1288
1272
|
};
|
|
1289
|
-
this.
|
|
1273
|
+
this.getLiquidationPriceContractHelper = function (entryOraclePrice, lockAndUnsettledFeeUsd, side, targetCustodyAccount, positionAccount) {
|
|
1290
1274
|
var zeroOraclePrice = OraclePrice_1.OraclePrice.from({
|
|
1291
1275
|
price: constants_1.BN_ZERO,
|
|
1292
1276
|
exponent: constants_1.BN_ZERO,
|
|
1293
1277
|
confidence: constants_1.BN_ZERO,
|
|
1294
1278
|
timestamp: constants_1.BN_ZERO
|
|
1295
1279
|
});
|
|
1296
|
-
if (collateralAmount.isZero() || sizeAmount.isZero()) {
|
|
1297
|
-
return zeroOraclePrice;
|
|
1298
|
-
}
|
|
1299
1280
|
if (positionAccount.entryPrice.exponent && !entryOraclePrice.exponent.eq(new anchor_1.BN(positionAccount.entryPrice.exponent))) {
|
|
1300
1281
|
throw new Error("Exponent mismatch : ".concat(positionAccount.entryPrice.exponent, " & ").concat(entryOraclePrice.exponent.toString(), " ").concat(entryOraclePrice === null || entryOraclePrice === void 0 ? void 0 : entryOraclePrice.toUiPrice(8)));
|
|
1301
1282
|
}
|
|
1302
1283
|
var exitFeeUsd = positionAccount.sizeUsd.mul(targetCustodyAccount.fees.closePosition).div(new anchor_1.BN(constants_1.RATE_POWER));
|
|
1303
1284
|
var unsettledLossUsd = exitFeeUsd.add(lockAndUnsettledFeeUsd);
|
|
1304
1285
|
var liablitiesUsd = positionAccount.sizeUsd.mul(new anchor_1.BN(constants_1.BPS_POWER)).div(new anchor_1.BN(targetCustodyAccount.pricing.maxLeverage)).add(unsettledLossUsd);
|
|
1305
|
-
var targetMinMaxPriceOracle = _this.getMinAndMaxOraclePriceSync(targetPrice, targetEmaPrice, targetCustodyAccount);
|
|
1306
|
-
var collateralMinMaxPriceOracle = _this.getMinAndMaxOraclePriceSync(collateralPrice, collateralEmaPrice, collateralCustodyAccount);
|
|
1307
1286
|
var liquidationPrice;
|
|
1308
|
-
if (
|
|
1309
|
-
var
|
|
1310
|
-
|
|
1311
|
-
|
|
1287
|
+
if (positionAccount.collateralUsd.gte(liablitiesUsd)) {
|
|
1288
|
+
var priceDiffLossOracle = OraclePrice_1.OraclePrice.from({
|
|
1289
|
+
price: (positionAccount.collateralUsd.sub(liablitiesUsd)).mul(new anchor_1.BN(Math.pow(10, (positionAccount.sizeDecimals + 3))))
|
|
1290
|
+
.div(positionAccount.sizeAmount),
|
|
1291
|
+
exponent: new anchor_1.BN(-1 * constants_1.RATE_DECIMALS),
|
|
1292
|
+
confidence: constants_1.BN_ZERO,
|
|
1293
|
+
timestamp: constants_1.BN_ZERO
|
|
1294
|
+
}).scale_to_exponent(new anchor_1.BN(entryOraclePrice.exponent));
|
|
1295
|
+
if ((0, types_1.isVariant)(side, 'long')) {
|
|
1296
|
+
liquidationPrice = OraclePrice_1.OraclePrice.from({
|
|
1297
|
+
price: entryOraclePrice.price.sub(priceDiffLossOracle.price),
|
|
1298
|
+
exponent: new anchor_1.BN(entryOraclePrice.exponent),
|
|
1299
|
+
confidence: constants_1.BN_ZERO,
|
|
1300
|
+
timestamp: constants_1.BN_ZERO
|
|
1301
|
+
});
|
|
1312
1302
|
}
|
|
1313
1303
|
else {
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1304
|
+
liquidationPrice = OraclePrice_1.OraclePrice.from({
|
|
1305
|
+
price: entryOraclePrice.price.add(priceDiffLossOracle.price),
|
|
1306
|
+
exponent: new anchor_1.BN(entryOraclePrice.exponent),
|
|
1307
|
+
confidence: constants_1.BN_ZERO,
|
|
1308
|
+
timestamp: constants_1.BN_ZERO
|
|
1309
|
+
});
|
|
1317
1310
|
}
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1311
|
+
}
|
|
1312
|
+
else {
|
|
1313
|
+
var priceDiffProfitOracle = OraclePrice_1.OraclePrice.from({
|
|
1314
|
+
price: (liablitiesUsd.sub(positionAccount.collateralUsd)).mul(new anchor_1.BN(Math.pow(10, (positionAccount.sizeDecimals + 3))))
|
|
1315
|
+
.div(positionAccount.sizeAmount),
|
|
1321
1316
|
exponent: new anchor_1.BN(-1 * constants_1.RATE_DECIMALS),
|
|
1322
1317
|
confidence: constants_1.BN_ZERO,
|
|
1323
1318
|
timestamp: constants_1.BN_ZERO
|
|
1324
|
-
});
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
if (assetsUsd.gte(liablitiesUsd)) {
|
|
1330
|
-
var priceDiffLossOracle = OraclePrice_1.OraclePrice.from({
|
|
1331
|
-
price: (assetsUsd.sub(liablitiesUsd)).mul(new anchor_1.BN(Math.pow(10, (positionAccount.sizeDecimals + 3))))
|
|
1332
|
-
.div(positionAccount.sizeAmount),
|
|
1333
|
-
exponent: new anchor_1.BN(-1 * constants_1.RATE_DECIMALS),
|
|
1319
|
+
}).scale_to_exponent(new anchor_1.BN(entryOraclePrice.exponent));
|
|
1320
|
+
if ((0, types_1.isVariant)(side, 'long')) {
|
|
1321
|
+
liquidationPrice = OraclePrice_1.OraclePrice.from({
|
|
1322
|
+
price: entryOraclePrice.price.add(priceDiffProfitOracle.price),
|
|
1323
|
+
exponent: new anchor_1.BN(entryOraclePrice.exponent),
|
|
1334
1324
|
confidence: constants_1.BN_ZERO,
|
|
1335
1325
|
timestamp: constants_1.BN_ZERO
|
|
1336
|
-
})
|
|
1337
|
-
if ((0, types_1.isVariant)(side, 'long')) {
|
|
1338
|
-
liquidationPrice = OraclePrice_1.OraclePrice.from({
|
|
1339
|
-
price: entryOraclePrice.price.sub(priceDiffLossOracle.price),
|
|
1340
|
-
exponent: new anchor_1.BN(entryOraclePrice.exponent),
|
|
1341
|
-
confidence: constants_1.BN_ZERO,
|
|
1342
|
-
timestamp: constants_1.BN_ZERO
|
|
1343
|
-
});
|
|
1344
|
-
}
|
|
1345
|
-
else {
|
|
1346
|
-
liquidationPrice = OraclePrice_1.OraclePrice.from({
|
|
1347
|
-
price: entryOraclePrice.price.add(priceDiffLossOracle.price),
|
|
1348
|
-
exponent: new anchor_1.BN(entryOraclePrice.exponent),
|
|
1349
|
-
confidence: constants_1.BN_ZERO,
|
|
1350
|
-
timestamp: constants_1.BN_ZERO
|
|
1351
|
-
});
|
|
1352
|
-
}
|
|
1326
|
+
});
|
|
1353
1327
|
}
|
|
1354
1328
|
else {
|
|
1355
|
-
|
|
1356
|
-
price:
|
|
1357
|
-
|
|
1358
|
-
exponent: new anchor_1.BN(-1 * constants_1.RATE_DECIMALS),
|
|
1329
|
+
liquidationPrice = OraclePrice_1.OraclePrice.from({
|
|
1330
|
+
price: entryOraclePrice.price.sub(priceDiffProfitOracle.price),
|
|
1331
|
+
exponent: new anchor_1.BN(entryOraclePrice.exponent),
|
|
1359
1332
|
confidence: constants_1.BN_ZERO,
|
|
1360
1333
|
timestamp: constants_1.BN_ZERO
|
|
1361
|
-
})
|
|
1362
|
-
if ((0, types_1.isVariant)(side, 'long')) {
|
|
1363
|
-
liquidationPrice = OraclePrice_1.OraclePrice.from({
|
|
1364
|
-
price: entryOraclePrice.price.add(priceDiffProfitOracle.price),
|
|
1365
|
-
exponent: new anchor_1.BN(entryOraclePrice.exponent),
|
|
1366
|
-
confidence: constants_1.BN_ZERO,
|
|
1367
|
-
timestamp: constants_1.BN_ZERO
|
|
1368
|
-
});
|
|
1369
|
-
}
|
|
1370
|
-
else {
|
|
1371
|
-
liquidationPrice = OraclePrice_1.OraclePrice.from({
|
|
1372
|
-
price: entryOraclePrice.price.sub(priceDiffProfitOracle.price),
|
|
1373
|
-
exponent: new anchor_1.BN(entryOraclePrice.exponent),
|
|
1374
|
-
confidence: constants_1.BN_ZERO,
|
|
1375
|
-
timestamp: constants_1.BN_ZERO
|
|
1376
|
-
});
|
|
1377
|
-
}
|
|
1334
|
+
});
|
|
1378
1335
|
}
|
|
1379
1336
|
}
|
|
1380
1337
|
return liquidationPrice.price.isNeg() ? zeroOraclePrice : liquidationPrice;
|
|
1381
1338
|
};
|
|
1382
|
-
this.
|
|
1339
|
+
this.getLiquidationPriceSync = function (collateralUsd, sizeAmount, entryOraclePrice, lockAndUnsettledFeeUsd, side, targetPrice, targetCustodyAccount, positionAccount) {
|
|
1340
|
+
var newPositionAccount = positionAccount.clone();
|
|
1341
|
+
newPositionAccount.sizeAmount = sizeAmount;
|
|
1342
|
+
newPositionAccount.sizeUsd = targetPrice.getAssetAmountUsd(sizeAmount, targetCustodyAccount.decimals);
|
|
1343
|
+
newPositionAccount.collateralUsd = collateralUsd;
|
|
1344
|
+
return _this.getLiquidationPriceContractHelper(entryOraclePrice, lockAndUnsettledFeeUsd, side, targetCustodyAccount, newPositionAccount);
|
|
1345
|
+
};
|
|
1346
|
+
this.getLiquidationPriceWithOrder = function (collateralUsd, sizeAmount, sizeUsd, sizeDecimals, limitOraclePrice, side, targetCustodyAccount) {
|
|
1383
1347
|
var zeroOraclePrice = OraclePrice_1.OraclePrice.from({
|
|
1384
1348
|
price: constants_1.BN_ZERO,
|
|
1385
1349
|
exponent: constants_1.BN_ZERO,
|
|
1386
1350
|
confidence: constants_1.BN_ZERO,
|
|
1387
1351
|
timestamp: constants_1.BN_ZERO
|
|
1388
1352
|
});
|
|
1389
|
-
if (collateralAmount.isZero() || sizeAmount.isZero()) {
|
|
1390
|
-
return zeroOraclePrice;
|
|
1391
|
-
}
|
|
1392
1353
|
var exitFeeUsd = sizeUsd.mul(targetCustodyAccount.fees.closePosition).div(new anchor_1.BN(constants_1.RATE_POWER));
|
|
1393
1354
|
var unsettledLossUsd = exitFeeUsd;
|
|
1394
1355
|
var liablitiesUsd = sizeUsd.mul(new anchor_1.BN(constants_1.BPS_POWER)).div(new anchor_1.BN(targetCustodyAccount.pricing.maxLeverage)).add(unsettledLossUsd);
|
|
1395
|
-
var targetMinMaxPriceOracle = _this.getMinAndMaxOraclePriceSync(targetPrice, targetEmaPrice, targetCustodyAccount);
|
|
1396
|
-
var collateralMinMaxPriceOracle = _this.getMinAndMaxOraclePriceSync(collateralPrice, collateralEmaPrice, collateralCustodyAccount);
|
|
1397
1356
|
var liquidationPrice;
|
|
1398
|
-
if (
|
|
1399
|
-
var
|
|
1400
|
-
|
|
1401
|
-
|
|
1357
|
+
if (collateralUsd.gte(liablitiesUsd)) {
|
|
1358
|
+
var priceDiffLossOracle = OraclePrice_1.OraclePrice.from({
|
|
1359
|
+
price: (collateralUsd.sub(liablitiesUsd)).mul(new anchor_1.BN(Math.pow(10, (sizeDecimals + 3))))
|
|
1360
|
+
.div(sizeAmount),
|
|
1361
|
+
exponent: new anchor_1.BN(-1 * constants_1.RATE_DECIMALS),
|
|
1362
|
+
confidence: constants_1.BN_ZERO,
|
|
1363
|
+
timestamp: constants_1.BN_ZERO
|
|
1364
|
+
}).scale_to_exponent(new anchor_1.BN(limitOraclePrice.exponent));
|
|
1365
|
+
if ((0, types_1.isVariant)(side, 'long')) {
|
|
1366
|
+
liquidationPrice = OraclePrice_1.OraclePrice.from({
|
|
1367
|
+
price: limitOraclePrice.price.sub(priceDiffLossOracle.price),
|
|
1368
|
+
exponent: new anchor_1.BN(limitOraclePrice.exponent),
|
|
1369
|
+
confidence: constants_1.BN_ZERO,
|
|
1370
|
+
timestamp: constants_1.BN_ZERO
|
|
1371
|
+
});
|
|
1402
1372
|
}
|
|
1403
1373
|
else {
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1374
|
+
liquidationPrice = OraclePrice_1.OraclePrice.from({
|
|
1375
|
+
price: limitOraclePrice.price.add(priceDiffLossOracle.price),
|
|
1376
|
+
exponent: new anchor_1.BN(limitOraclePrice.exponent),
|
|
1377
|
+
confidence: constants_1.BN_ZERO,
|
|
1378
|
+
timestamp: constants_1.BN_ZERO
|
|
1379
|
+
});
|
|
1407
1380
|
}
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1381
|
+
}
|
|
1382
|
+
else {
|
|
1383
|
+
var priceDiffProfitOracle = OraclePrice_1.OraclePrice.from({
|
|
1384
|
+
price: (liablitiesUsd.sub(collateralUsd)).mul(new anchor_1.BN(Math.pow(10, (sizeDecimals + 3))))
|
|
1385
|
+
.div(sizeAmount),
|
|
1411
1386
|
exponent: new anchor_1.BN(-1 * constants_1.RATE_DECIMALS),
|
|
1412
1387
|
confidence: constants_1.BN_ZERO,
|
|
1413
1388
|
timestamp: constants_1.BN_ZERO
|
|
1414
|
-
});
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
if (assetsUsd.gte(liablitiesUsd)) {
|
|
1420
|
-
var priceDiffLossOracle = OraclePrice_1.OraclePrice.from({
|
|
1421
|
-
price: (assetsUsd.sub(liablitiesUsd)).mul(new anchor_1.BN(Math.pow(10, (sizeDecimals + 3))))
|
|
1422
|
-
.div(sizeAmount),
|
|
1423
|
-
exponent: new anchor_1.BN(-1 * constants_1.RATE_DECIMALS),
|
|
1389
|
+
}).scale_to_exponent(new anchor_1.BN(limitOraclePrice.exponent));
|
|
1390
|
+
if ((0, types_1.isVariant)(side, 'long')) {
|
|
1391
|
+
liquidationPrice = OraclePrice_1.OraclePrice.from({
|
|
1392
|
+
price: limitOraclePrice.price.add(priceDiffProfitOracle.price),
|
|
1393
|
+
exponent: new anchor_1.BN(limitOraclePrice.exponent),
|
|
1424
1394
|
confidence: constants_1.BN_ZERO,
|
|
1425
1395
|
timestamp: constants_1.BN_ZERO
|
|
1426
|
-
})
|
|
1427
|
-
if ((0, types_1.isVariant)(side, 'long')) {
|
|
1428
|
-
liquidationPrice = OraclePrice_1.OraclePrice.from({
|
|
1429
|
-
price: limitOraclePrice.price.sub(priceDiffLossOracle.price),
|
|
1430
|
-
exponent: new anchor_1.BN(limitOraclePrice.exponent),
|
|
1431
|
-
confidence: constants_1.BN_ZERO,
|
|
1432
|
-
timestamp: constants_1.BN_ZERO
|
|
1433
|
-
});
|
|
1434
|
-
}
|
|
1435
|
-
else {
|
|
1436
|
-
liquidationPrice = OraclePrice_1.OraclePrice.from({
|
|
1437
|
-
price: limitOraclePrice.price.add(priceDiffLossOracle.price),
|
|
1438
|
-
exponent: new anchor_1.BN(limitOraclePrice.exponent),
|
|
1439
|
-
confidence: constants_1.BN_ZERO,
|
|
1440
|
-
timestamp: constants_1.BN_ZERO
|
|
1441
|
-
});
|
|
1442
|
-
}
|
|
1396
|
+
});
|
|
1443
1397
|
}
|
|
1444
1398
|
else {
|
|
1445
|
-
|
|
1446
|
-
price:
|
|
1447
|
-
|
|
1448
|
-
exponent: new anchor_1.BN(-1 * constants_1.RATE_DECIMALS),
|
|
1399
|
+
liquidationPrice = OraclePrice_1.OraclePrice.from({
|
|
1400
|
+
price: limitOraclePrice.price.sub(priceDiffProfitOracle.price),
|
|
1401
|
+
exponent: new anchor_1.BN(limitOraclePrice.exponent),
|
|
1449
1402
|
confidence: constants_1.BN_ZERO,
|
|
1450
1403
|
timestamp: constants_1.BN_ZERO
|
|
1451
|
-
})
|
|
1452
|
-
if ((0, types_1.isVariant)(side, 'long')) {
|
|
1453
|
-
liquidationPrice = OraclePrice_1.OraclePrice.from({
|
|
1454
|
-
price: limitOraclePrice.price.add(priceDiffProfitOracle.price),
|
|
1455
|
-
exponent: new anchor_1.BN(limitOraclePrice.exponent),
|
|
1456
|
-
confidence: constants_1.BN_ZERO,
|
|
1457
|
-
timestamp: constants_1.BN_ZERO
|
|
1458
|
-
});
|
|
1459
|
-
}
|
|
1460
|
-
else {
|
|
1461
|
-
liquidationPrice = OraclePrice_1.OraclePrice.from({
|
|
1462
|
-
price: limitOraclePrice.price.sub(priceDiffProfitOracle.price),
|
|
1463
|
-
exponent: new anchor_1.BN(limitOraclePrice.exponent),
|
|
1464
|
-
confidence: constants_1.BN_ZERO,
|
|
1465
|
-
timestamp: constants_1.BN_ZERO
|
|
1466
|
-
});
|
|
1467
|
-
}
|
|
1404
|
+
});
|
|
1468
1405
|
}
|
|
1469
1406
|
}
|
|
1470
1407
|
return liquidationPrice.price.isNeg() ? zeroOraclePrice : liquidationPrice;
|
|
1471
1408
|
};
|
|
1472
|
-
this.getMaxProfitPriceSync = function (entryPrice, marketCorrelation, side, positionAccount) {
|
|
1409
|
+
this.getMaxProfitPriceSync = function (entryPrice, marketCorrelation, side, collateralPrice, positionAccount) {
|
|
1473
1410
|
var zeroOraclePrice = OraclePrice_1.OraclePrice.from({
|
|
1474
1411
|
price: constants_1.BN_ZERO,
|
|
1475
1412
|
exponent: constants_1.BN_ZERO,
|
|
@@ -1480,7 +1417,7 @@ var PerpetualsClient = (function () {
|
|
|
1480
1417
|
return zeroOraclePrice;
|
|
1481
1418
|
}
|
|
1482
1419
|
var priceDiffProfit = OraclePrice_1.OraclePrice.from({
|
|
1483
|
-
price: positionAccount.
|
|
1420
|
+
price: (collateralPrice.price.mul(positionAccount.lockedAmount)).mul(new anchor_1.BN(10).pow(new anchor_1.BN(positionAccount.sizeDecimals + 3)))
|
|
1484
1421
|
.div(positionAccount.sizeAmount),
|
|
1485
1422
|
exponent: new anchor_1.BN(-1 * constants_1.RATE_DECIMALS),
|
|
1486
1423
|
confidence: constants_1.BN_ZERO,
|
|
@@ -1508,7 +1445,7 @@ var PerpetualsClient = (function () {
|
|
|
1508
1445
|
}
|
|
1509
1446
|
return maxProfitPrice.price.isNeg() ? zeroOraclePrice : maxProfitPrice;
|
|
1510
1447
|
};
|
|
1511
|
-
this.getEstimateProfitLossforTpSlEntry = function (positionAccount, isTakeProfit, userEntrytpSlOraclePrice, collateralDeltaAmount, sizeDeltaAmount, side, marketAccountPk, targetTokenPrice, targetTokenEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, poolConfig) {
|
|
1448
|
+
this.getEstimateProfitLossforTpSlEntry = function (positionAccount, isTakeProfit, userEntrytpSlOraclePrice, collateralDeltaAmount, sizeDeltaAmount, side, marketCorrelation, maxPayOffBps, marketAccountPk, targetTokenPrice, targetTokenEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, poolConfig) {
|
|
1512
1449
|
if (collateralDeltaAmount.isNeg() || sizeDeltaAmount.isNeg()) {
|
|
1513
1450
|
throw new Error("Delta Amounts cannot be negative.");
|
|
1514
1451
|
}
|
|
@@ -1538,10 +1475,9 @@ var PerpetualsClient = (function () {
|
|
|
1538
1475
|
positionAccount.sizeUsd = positionAccount.sizeUsd.add(sizeDeltaUsd);
|
|
1539
1476
|
positionAccount.sizeAmount = positionAccount.sizeAmount.add(sizeDeltaAmount);
|
|
1540
1477
|
positionAccount.market = marketAccountPk;
|
|
1541
|
-
|
|
1542
|
-
positionAccount.
|
|
1543
|
-
positionAccount.
|
|
1544
|
-
positionAccount.collateralUsd = collateralPrice.getAssetAmountUsd(positionAccount.collateralAmount, collateralCustodyAccount.decimals);
|
|
1478
|
+
var collateralDeltaUsd = collateralPrice.getAssetAmountUsd(collateralDeltaAmount, collateralCustodyAccount.decimals);
|
|
1479
|
+
positionAccount.collateralUsd = positionAccount.collateralUsd.add(collateralDeltaUsd);
|
|
1480
|
+
positionAccount.lockedAmount = positionAccount.lockedAmount.add(collateralPrice.getTokenAmount(_this.getLockedUsd(sizeDeltaUsd, collateralDeltaUsd, side, marketCorrelation, maxPayOffBps), collateralCustodyAccount.decimals));
|
|
1545
1481
|
var currentTime = new anchor_1.BN((0, utils_1.getUnixTs)());
|
|
1546
1482
|
var pnl = _this.getPnlSync(positionAccount, userEntrytpSlOraclePrice, userEntrytpSlOraclePrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTime, targetCustodyAccount.pricing.delaySeconds, poolConfig);
|
|
1547
1483
|
var pnlUsd = pnl.profitUsd.sub(pnl.lossUsd);
|
|
@@ -1613,6 +1549,9 @@ var PerpetualsClient = (function () {
|
|
|
1613
1549
|
});
|
|
1614
1550
|
};
|
|
1615
1551
|
this.getPnlSync = function (positionAccount, targetTokenPrice, targetTokenEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, delay, poolConfig) {
|
|
1552
|
+
return _this.getPnlContractHelper(positionAccount, targetTokenPrice, targetTokenEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, delay, poolConfig);
|
|
1553
|
+
};
|
|
1554
|
+
this.getPnlContractHelper = function (positionAccount, targetTokenPrice, targetTokenEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, delay, poolConfig) {
|
|
1616
1555
|
if (positionAccount.sizeUsd.isZero() || positionAccount.entryPrice.price.isZero()) {
|
|
1617
1556
|
return {
|
|
1618
1557
|
profitUsd: constants_1.BN_ZERO,
|
|
@@ -1671,7 +1610,7 @@ var PerpetualsClient = (function () {
|
|
|
1671
1610
|
}
|
|
1672
1611
|
if (priceDiffProfit.price.gt(constants_1.BN_ZERO)) {
|
|
1673
1612
|
return {
|
|
1674
|
-
profitUsd:
|
|
1613
|
+
profitUsd: priceDiffProfit.getAssetAmountUsd(positionAccount.sizeAmount, positionAccount.sizeDecimals),
|
|
1675
1614
|
lossUsd: constants_1.BN_ZERO,
|
|
1676
1615
|
};
|
|
1677
1616
|
}
|
|
@@ -1762,6 +1701,9 @@ var PerpetualsClient = (function () {
|
|
|
1762
1701
|
}
|
|
1763
1702
|
};
|
|
1764
1703
|
this.getAssetsUnderManagementUsdSync = function (poolAccount, tokenPrices, tokenEmaPrices, custodies, markets, aumCalcMode, currentTime, poolConfig) {
|
|
1704
|
+
return _this.getAssetsUnderManagementUsdContractHelper(poolAccount, tokenPrices, tokenEmaPrices, custodies, markets, aumCalcMode, currentTime, poolConfig);
|
|
1705
|
+
};
|
|
1706
|
+
this.getAssetsUnderManagementUsdContractHelper = function (poolAccount, tokenPrices, tokenEmaPrices, custodies, markets, aumCalcMode, currentTime, poolConfig) {
|
|
1765
1707
|
var poolAmountUsd = constants_1.BN_ZERO;
|
|
1766
1708
|
for (var index = 0; index < custodies.length; index++) {
|
|
1767
1709
|
if (custodies.length != poolAccount.custodies.length || !custodies[index].publicKey.equals(poolAccount.custodies[index])) {
|
|
@@ -1774,6 +1716,7 @@ var PerpetualsClient = (function () {
|
|
|
1774
1716
|
var token_amount_usd = tokenMinMaxPrice.max.getAssetAmountUsd(custodies[index].assets.owned, custodies[index].decimals);
|
|
1775
1717
|
poolAmountUsd = poolAmountUsd.add(token_amount_usd);
|
|
1776
1718
|
}
|
|
1719
|
+
poolAmountUsd = poolAmountUsd.sub(poolAccount.feesObligationUsd.add(poolAccount.rebateObligationUsd));
|
|
1777
1720
|
if (aumCalcMode === "includePnl") {
|
|
1778
1721
|
var poolEquityUsd = poolAmountUsd;
|
|
1779
1722
|
for (var index = 0; index < markets.length; index++) {
|
|
@@ -1783,11 +1726,12 @@ var PerpetualsClient = (function () {
|
|
|
1783
1726
|
var targetCustodyId = poolAccount.getCustodyId(markets[index].targetCustody);
|
|
1784
1727
|
var collateralCustodyId = poolAccount.getCustodyId(markets[index].collateralCustody);
|
|
1785
1728
|
var position = markets[index].getCollectivePosition();
|
|
1729
|
+
poolEquityUsd = poolEquityUsd.sub(position.collateralUsd);
|
|
1786
1730
|
var collectivePnl = _this.getPnlSync(position, tokenPrices[targetCustodyId], tokenEmaPrices[targetCustodyId], custodies[targetCustodyId], tokenPrices[collateralCustodyId], tokenEmaPrices[collateralCustodyId], custodies[collateralCustodyId], currentTime, custodies[targetCustodyId].pricing.delaySeconds, poolConfig);
|
|
1787
1731
|
var collateralMinMaxPrice = _this.getMinAndMaxOraclePriceSync(tokenPrices[collateralCustodyId], tokenEmaPrices[collateralCustodyId], custodies[collateralCustodyId]);
|
|
1788
|
-
var
|
|
1789
|
-
var
|
|
1790
|
-
poolEquityUsd = (poolEquityUsd.add(collectiveLossUsd)).sub(
|
|
1732
|
+
var collectiveLossUsd = anchor_1.BN.min(collectivePnl.lossUsd, position.collateralUsd);
|
|
1733
|
+
var collectiveProfitUsd = anchor_1.BN.min(collectivePnl.profitUsd, collateralMinMaxPrice.max.getAssetAmountUsd(position.lockedAmount, custodies[collateralCustodyId].decimals).sub(position.collateralUsd));
|
|
1734
|
+
poolEquityUsd = (poolEquityUsd.add(collectiveLossUsd)).sub(collectiveProfitUsd);
|
|
1791
1735
|
}
|
|
1792
1736
|
return { poolAmountUsd: poolAmountUsd, poolEquityUsd: poolEquityUsd };
|
|
1793
1737
|
}
|
|
@@ -1795,14 +1739,6 @@ var PerpetualsClient = (function () {
|
|
|
1795
1739
|
return { poolAmountUsd: poolAmountUsd, poolEquityUsd: constants_1.BN_ZERO };
|
|
1796
1740
|
}
|
|
1797
1741
|
};
|
|
1798
|
-
this.getNftFinalDiscount = function (perpetualsAccount, nftTradingAccount, currentTime) {
|
|
1799
|
-
if (currentTime.sub(nftTradingAccount.timestamp).lt(constants_1.DAY_SECONDS) && nftTradingAccount.counter.gt(new anchor_1.BN(perpetualsAccount.tradeLimit))) {
|
|
1800
|
-
return { discountBn: constants_1.BN_ZERO };
|
|
1801
|
-
}
|
|
1802
|
-
else {
|
|
1803
|
-
return { discountBn: perpetualsAccount.tradingDiscount[nftTradingAccount.level - 1] };
|
|
1804
|
-
}
|
|
1805
|
-
};
|
|
1806
1742
|
this.getFeeDiscount = function (perpetualsAccount, tokenStakeAccount, currentTime) {
|
|
1807
1743
|
if (tokenStakeAccount.level === 0) {
|
|
1808
1744
|
return { discountBn: constants_1.BN_ZERO };
|
|
@@ -1887,7 +1823,7 @@ var PerpetualsClient = (function () {
|
|
|
1887
1823
|
});
|
|
1888
1824
|
};
|
|
1889
1825
|
this.getStakedLpTokenPrice = function (poolKey, POOL_CONFIG) { return __awaiter(_this, void 0, void 0, function () {
|
|
1890
|
-
var backUpOracleInstructionPromise, custodies, custodyMetas, marketMetas, _i, custodies_1, token, _a, custodies_2, custody, _b, _c, market, transaction, backUpOracleInstruction, result, index, res;
|
|
1826
|
+
var backUpOracleInstructionPromise, custodies, custodyMetas, marketMetas, _i, custodies_1, token, _a, custodies_2, custody, _b, _c, market, transaction, backUpOracleInstruction, setCULimitIx, result, index, res;
|
|
1891
1827
|
var _d;
|
|
1892
1828
|
return __generator(this, function (_e) {
|
|
1893
1829
|
switch (_e.label) {
|
|
@@ -1935,6 +1871,8 @@ var PerpetualsClient = (function () {
|
|
|
1935
1871
|
return [4, backUpOracleInstructionPromise];
|
|
1936
1872
|
case 2:
|
|
1937
1873
|
backUpOracleInstruction = _e.sent();
|
|
1874
|
+
setCULimitIx = web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({ units: 450000 });
|
|
1875
|
+
transaction.instructions.unshift(setCULimitIx);
|
|
1938
1876
|
(_d = transaction.instructions).unshift.apply(_d, backUpOracleInstruction);
|
|
1939
1877
|
return [4, this.viewHelper.simulateTransaction(transaction)];
|
|
1940
1878
|
case 3:
|
|
@@ -2001,7 +1939,7 @@ var PerpetualsClient = (function () {
|
|
|
2001
1939
|
args_1[_i - 4] = arguments[_i];
|
|
2002
1940
|
}
|
|
2003
1941
|
return __awaiter(_this, __spreadArray([amount_1, poolKey_1, depositCustodyKey_1, POOL_CONFIG_1], args_1, true), void 0, function (amount, poolKey, depositCustodyKey, POOL_CONFIG, userPublicKey, enableBackupOracle) {
|
|
2004
|
-
var custodies, custodyMetas, marketMetas, _a, custodies_5, token, _b, custodies_6, custody, _c, _d, market, depositCustodyConfig, transaction, backUpOracleInstruction, result, index, res;
|
|
1942
|
+
var custodies, custodyMetas, marketMetas, _a, custodies_5, token, _b, custodies_6, custody, _c, _d, market, depositCustodyConfig, transaction, setCULimitIx, backUpOracleInstruction, result, index, res;
|
|
2005
1943
|
var _e;
|
|
2006
1944
|
if (userPublicKey === void 0) { userPublicKey = undefined; }
|
|
2007
1945
|
if (enableBackupOracle === void 0) { enableBackupOracle = false; }
|
|
@@ -2052,6 +1990,8 @@ var PerpetualsClient = (function () {
|
|
|
2052
1990
|
.transaction()];
|
|
2053
1991
|
case 1:
|
|
2054
1992
|
transaction = _f.sent();
|
|
1993
|
+
setCULimitIx = web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({ units: 450000 });
|
|
1994
|
+
transaction.instructions.unshift(setCULimitIx);
|
|
2055
1995
|
if (!enableBackupOracle) return [3, 3];
|
|
2056
1996
|
return [4, (0, backupOracle_1.createBackupOracleInstruction)(POOL_CONFIG.poolAddress.toBase58(), true)];
|
|
2057
1997
|
case 2:
|
|
@@ -2061,6 +2001,14 @@ var PerpetualsClient = (function () {
|
|
|
2061
2001
|
case 3: return [4, this.viewHelper.simulateTransaction(transaction, userPublicKey)];
|
|
2062
2002
|
case 4:
|
|
2063
2003
|
result = _f.sent();
|
|
2004
|
+
if (result.value.err) {
|
|
2005
|
+
console.error('error Simulation failed:::', result);
|
|
2006
|
+
return [2, {
|
|
2007
|
+
amount: undefined,
|
|
2008
|
+
fee: undefined,
|
|
2009
|
+
error: 'Simulation failed: ' + JSON.stringify(result.value.err),
|
|
2010
|
+
}];
|
|
2011
|
+
}
|
|
2064
2012
|
index = perpetuals_1.IDL.instructions.findIndex(function (f) { return f.name === 'getAddLiquidityAmountAndFee'; });
|
|
2065
2013
|
res = this.viewHelper.decodeLogs(result, index, 'getAddLiquidityAmountAndFee');
|
|
2066
2014
|
return [2, {
|
|
@@ -2077,7 +2025,7 @@ var PerpetualsClient = (function () {
|
|
|
2077
2025
|
args_1[_i - 4] = arguments[_i];
|
|
2078
2026
|
}
|
|
2079
2027
|
return __awaiter(_this, __spreadArray([amount_1, poolKey_1, removeTokenCustodyKey_1, POOL_CONFIG_1], args_1, true), void 0, function (amount, poolKey, removeTokenCustodyKey, POOL_CONFIG, userPublicKey, enableBackupOracle) {
|
|
2080
|
-
var custodies, custodyMetas, marketMetas, _a, custodies_7, token, _b, custodies_8, custody, _c, _d, market, removeCustodyConfig, transaction, backUpOracleInstruction, result, index, res;
|
|
2028
|
+
var custodies, custodyMetas, marketMetas, _a, custodies_7, token, _b, custodies_8, custody, _c, _d, market, removeCustodyConfig, transaction, setCULimitIx, backUpOracleInstruction, result, index, res;
|
|
2081
2029
|
var _e;
|
|
2082
2030
|
if (userPublicKey === void 0) { userPublicKey = undefined; }
|
|
2083
2031
|
if (enableBackupOracle === void 0) { enableBackupOracle = false; }
|
|
@@ -2128,6 +2076,8 @@ var PerpetualsClient = (function () {
|
|
|
2128
2076
|
.transaction()];
|
|
2129
2077
|
case 1:
|
|
2130
2078
|
transaction = _f.sent();
|
|
2079
|
+
setCULimitIx = web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({ units: 450000 });
|
|
2080
|
+
transaction.instructions.unshift(setCULimitIx);
|
|
2131
2081
|
if (!enableBackupOracle) return [3, 3];
|
|
2132
2082
|
return [4, (0, backupOracle_1.createBackupOracleInstruction)(POOL_CONFIG.poolAddress.toBase58(), true)];
|
|
2133
2083
|
case 2:
|
|
@@ -2139,9 +2089,11 @@ var PerpetualsClient = (function () {
|
|
|
2139
2089
|
result = _f.sent();
|
|
2140
2090
|
index = perpetuals_1.IDL.instructions.findIndex(function (f) { return f.name === 'getRemoveLiquidityAmountAndFee'; });
|
|
2141
2091
|
if (result.value.err) {
|
|
2092
|
+
console.error('error Simulation failed:', result);
|
|
2142
2093
|
return [2, {
|
|
2143
|
-
amount:
|
|
2144
|
-
fee:
|
|
2094
|
+
amount: undefined,
|
|
2095
|
+
fee: undefined,
|
|
2096
|
+
error: 'Simulation failed: ' + JSON.stringify(result.value.err),
|
|
2145
2097
|
}];
|
|
2146
2098
|
}
|
|
2147
2099
|
res = this.viewHelper.decodeLogs(result, index, 'getRemoveLiquidityAmountAndFee');
|
|
@@ -2154,7 +2106,7 @@ var PerpetualsClient = (function () {
|
|
|
2154
2106
|
});
|
|
2155
2107
|
};
|
|
2156
2108
|
this.getCompoundingLPTokenPrice = function (poolKey, POOL_CONFIG) { return __awaiter(_this, void 0, void 0, function () {
|
|
2157
|
-
var backUpOracleInstructionPromise, custodies, custodyMetas, marketMetas, _i, custodies_9, token, _a, custodies_10, custody, _b, _c, market, backUpOracleInstruction, transaction, result, index, res;
|
|
2109
|
+
var backUpOracleInstructionPromise, custodies, custodyMetas, marketMetas, _i, custodies_9, token, _a, custodies_10, custody, _b, _c, market, backUpOracleInstruction, transaction, setCULimitIx, result, index, res;
|
|
2158
2110
|
var _d;
|
|
2159
2111
|
return __generator(this, function (_e) {
|
|
2160
2112
|
switch (_e.label) {
|
|
@@ -2202,6 +2154,8 @@ var PerpetualsClient = (function () {
|
|
|
2202
2154
|
.transaction()];
|
|
2203
2155
|
case 2:
|
|
2204
2156
|
transaction = _e.sent();
|
|
2157
|
+
setCULimitIx = web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({ units: 450000 });
|
|
2158
|
+
transaction.instructions.unshift(setCULimitIx);
|
|
2205
2159
|
(_d = transaction.instructions).unshift.apply(_d, backUpOracleInstruction);
|
|
2206
2160
|
return [4, this.viewHelper.simulateTransaction(transaction)];
|
|
2207
2161
|
case 3:
|
|
@@ -2551,11 +2505,10 @@ var PerpetualsClient = (function () {
|
|
|
2551
2505
|
for (var _i = 8; _i < arguments.length; _i++) {
|
|
2552
2506
|
args_1[_i - 8] = arguments[_i];
|
|
2553
2507
|
}
|
|
2554
|
-
return __awaiter(_this, __spreadArray([targetSymbol_1, collateralSymbol_1, priceWithSlippage_1, collateralWithfee_1, size_1, side_1, poolConfig_1, privilege_1], args_1, true), void 0, function (targetSymbol, collateralSymbol, priceWithSlippage, collateralWithfee, size, side, poolConfig, privilege, tokenStakeAccount, userReferralAccount,
|
|
2508
|
+
return __awaiter(_this, __spreadArray([targetSymbol_1, collateralSymbol_1, priceWithSlippage_1, collateralWithfee_1, size_1, side_1, poolConfig_1, privilege_1], args_1, true), void 0, function (targetSymbol, collateralSymbol, priceWithSlippage, collateralWithfee, size, side, poolConfig, privilege, tokenStakeAccount, userReferralAccount, skipBalanceChecks, ephemeralSignerPubkey) {
|
|
2555
2509
|
var publicKey, targetCustodyConfig, collateralCustodyConfig, collateralToken, marketAccount, userCollateralTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, lamports, unWrappedSolBalance, _a, tokenAccountBalance, _b, positionAccount, params, instruction;
|
|
2556
2510
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
2557
2511
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
2558
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
2559
2512
|
if (skipBalanceChecks === void 0) { skipBalanceChecks = false; }
|
|
2560
2513
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
2561
2514
|
return __generator(this, function (_c) {
|
|
@@ -2648,7 +2601,7 @@ var PerpetualsClient = (function () {
|
|
|
2648
2601
|
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
|
2649
2602
|
fundingMint: collateralCustodyConfig.mintKey
|
|
2650
2603
|
})
|
|
2651
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
2604
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
2652
2605
|
.instruction()];
|
|
2653
2606
|
case 7:
|
|
2654
2607
|
instruction = _c.sent();
|
|
@@ -2666,11 +2619,10 @@ var PerpetualsClient = (function () {
|
|
|
2666
2619
|
for (var _i = 6; _i < arguments.length; _i++) {
|
|
2667
2620
|
args_1[_i - 6] = arguments[_i];
|
|
2668
2621
|
}
|
|
2669
|
-
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,
|
|
2622
|
+
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) {
|
|
2670
2623
|
var publicKey, userReceivingTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, lamports, _a, collateralCustodyConfig, targetCustodyConfig, marketAccount, positionAccount, instruction, closeWsolATAIns, error_1;
|
|
2671
2624
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
2672
2625
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
2673
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
2674
2626
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
2675
2627
|
if (closeUsersWSOLATA === void 0) { closeUsersWSOLATA = false; }
|
|
2676
2628
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
@@ -2749,7 +2701,7 @@ var PerpetualsClient = (function () {
|
|
|
2749
2701
|
collateralMint: collateralCustodyConfig.mintKey,
|
|
2750
2702
|
collateralTokenProgram: poolConfig.getTokenFromSymbol(collateralSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID
|
|
2751
2703
|
})
|
|
2752
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
2704
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
2753
2705
|
.instruction()];
|
|
2754
2706
|
case 6:
|
|
2755
2707
|
instruction = _b.sent();
|
|
@@ -2771,16 +2723,15 @@ var PerpetualsClient = (function () {
|
|
|
2771
2723
|
});
|
|
2772
2724
|
});
|
|
2773
2725
|
};
|
|
2774
|
-
this.swapAndOpen = function (targetTokenSymbol_1, collateralTokenSymbol_1, userInputTokenSymbol_1, amountIn_1,
|
|
2726
|
+
this.swapAndOpen = function (targetTokenSymbol_1, collateralTokenSymbol_1, userInputTokenSymbol_1, amountIn_1, priceWithSlippage_1, sizeAmount_1, side_1, poolConfig_1, privilege_1) {
|
|
2775
2727
|
var args_1 = [];
|
|
2776
|
-
for (var _i =
|
|
2777
|
-
args_1[_i -
|
|
2728
|
+
for (var _i = 9; _i < arguments.length; _i++) {
|
|
2729
|
+
args_1[_i - 9] = arguments[_i];
|
|
2778
2730
|
}
|
|
2779
|
-
return __awaiter(_this, __spreadArray([targetTokenSymbol_1, collateralTokenSymbol_1, userInputTokenSymbol_1, amountIn_1,
|
|
2780
|
-
var publicKey, userInputCustodyConfig, collateralCustodyConfig, targetCustodyConfig, marketAccount, positionAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, targetToken, userInputTokenAccount, userInputToken, lamports, unWrappedSolBalance, _a, userOutputTokenAccount, tokenAccountBalance, _b, userOutputTokenAccount,
|
|
2731
|
+
return __awaiter(_this, __spreadArray([targetTokenSymbol_1, collateralTokenSymbol_1, userInputTokenSymbol_1, amountIn_1, priceWithSlippage_1, sizeAmount_1, side_1, poolConfig_1, privilege_1], args_1, true), void 0, function (targetTokenSymbol, collateralTokenSymbol, userInputTokenSymbol, amountIn, priceWithSlippage, sizeAmount, side, poolConfig, privilege, tokenStakeAccount, userReferralAccount, skipBalanceChecks, ephemeralSignerPubkey) {
|
|
2732
|
+
var publicKey, userInputCustodyConfig, collateralCustodyConfig, targetCustodyConfig, marketAccount, positionAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, targetToken, userInputTokenAccount, userInputToken, lamports, unWrappedSolBalance, _a, userOutputTokenAccount, tokenAccountBalance, _b, userOutputTokenAccount, inx, err_3;
|
|
2781
2733
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
2782
2734
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
2783
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
2784
2735
|
if (skipBalanceChecks === void 0) { skipBalanceChecks = false; }
|
|
2785
2736
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
2786
2737
|
return __generator(this, function (_c) {
|
|
@@ -2874,18 +2825,10 @@ var PerpetualsClient = (function () {
|
|
|
2874
2825
|
}
|
|
2875
2826
|
_c.label = 10;
|
|
2876
2827
|
case 10:
|
|
2877
|
-
|
|
2878
|
-
pubkey: collateralCustodyConfig.mintKey,
|
|
2879
|
-
isSigner: false,
|
|
2880
|
-
isWritable: false
|
|
2881
|
-
};
|
|
2882
|
-
_c.label = 11;
|
|
2883
|
-
case 11:
|
|
2884
|
-
_c.trys.push([11, 13, , 14]);
|
|
2828
|
+
_c.trys.push([10, 12, , 13]);
|
|
2885
2829
|
return [4, this.program.methods
|
|
2886
2830
|
.swapAndOpen({
|
|
2887
2831
|
amountIn: amountIn,
|
|
2888
|
-
minCollateralAmountOut: minCollateralAmountOut,
|
|
2889
2832
|
priceWithSlippage: priceWithSlippage,
|
|
2890
2833
|
sizeAmount: sizeAmount,
|
|
2891
2834
|
privilege: privilege
|
|
@@ -2916,17 +2859,17 @@ var PerpetualsClient = (function () {
|
|
|
2916
2859
|
collateralMint: collateralCustodyConfig.mintKey,
|
|
2917
2860
|
collateralTokenProgram: poolConfig.getTokenFromSymbol(collateralTokenSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID
|
|
2918
2861
|
})
|
|
2919
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
2862
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
2920
2863
|
.instruction()];
|
|
2921
|
-
case
|
|
2864
|
+
case 11:
|
|
2922
2865
|
inx = _c.sent();
|
|
2923
2866
|
instructions.push(inx);
|
|
2924
|
-
return [3,
|
|
2925
|
-
case
|
|
2867
|
+
return [3, 13];
|
|
2868
|
+
case 12:
|
|
2926
2869
|
err_3 = _c.sent();
|
|
2927
2870
|
console.error("perpClient SwapAndOpen error:: ", err_3);
|
|
2928
2871
|
throw err_3;
|
|
2929
|
-
case
|
|
2872
|
+
case 13: return [2, {
|
|
2930
2873
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
2931
2874
|
additionalSigners: additionalSigners
|
|
2932
2875
|
}];
|
|
@@ -2934,16 +2877,15 @@ var PerpetualsClient = (function () {
|
|
|
2934
2877
|
});
|
|
2935
2878
|
});
|
|
2936
2879
|
};
|
|
2937
|
-
this.closeAndSwap = function (targetTokenSymbol_1, userOutputTokenSymbol_1, collateralTokenSymbol_1,
|
|
2880
|
+
this.closeAndSwap = function (targetTokenSymbol_1, userOutputTokenSymbol_1, collateralTokenSymbol_1, priceWithSlippage_1, side_1, poolConfig_1, privilege_1) {
|
|
2938
2881
|
var args_1 = [];
|
|
2939
|
-
for (var _i =
|
|
2940
|
-
args_1[_i -
|
|
2882
|
+
for (var _i = 7; _i < arguments.length; _i++) {
|
|
2883
|
+
args_1[_i - 7] = arguments[_i];
|
|
2941
2884
|
}
|
|
2942
|
-
return __awaiter(_this, __spreadArray([targetTokenSymbol_1, userOutputTokenSymbol_1, collateralTokenSymbol_1,
|
|
2943
|
-
var publicKey, userOutputCustodyConfig, collateralCustodyConfig, targetCustodyConfig, marketAccount, positionAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, userReceivingTokenAccount, collateralToken, userOutputToken, lamports, userCollateralTokenAccount,
|
|
2885
|
+
return __awaiter(_this, __spreadArray([targetTokenSymbol_1, userOutputTokenSymbol_1, collateralTokenSymbol_1, priceWithSlippage_1, side_1, poolConfig_1, privilege_1], args_1, true), void 0, function (targetTokenSymbol, userOutputTokenSymbol, collateralTokenSymbol, priceWithSlippage, side, poolConfig, privilege, tokenStakeAccount, userReferralAccount, ephemeralSignerPubkey) {
|
|
2886
|
+
var publicKey, userOutputCustodyConfig, collateralCustodyConfig, targetCustodyConfig, marketAccount, positionAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, userReceivingTokenAccount, collateralToken, userOutputToken, lamports, userCollateralTokenAccount, inx, err_4;
|
|
2944
2887
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
2945
2888
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
2946
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
2947
2889
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
2948
2890
|
return __generator(this, function (_a) {
|
|
2949
2891
|
switch (_a.label) {
|
|
@@ -3009,18 +2951,12 @@ var PerpetualsClient = (function () {
|
|
|
3009
2951
|
if (!(_a.sent())) {
|
|
3010
2952
|
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, userCollateralTokenAccount, publicKey, collateralToken.mintKey, collateralToken.isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID));
|
|
3011
2953
|
}
|
|
3012
|
-
rebateMintAccount = {
|
|
3013
|
-
pubkey: collateralCustodyConfig.mintKey,
|
|
3014
|
-
isSigner: false,
|
|
3015
|
-
isWritable: false
|
|
3016
|
-
};
|
|
3017
2954
|
_a.label = 5;
|
|
3018
2955
|
case 5:
|
|
3019
2956
|
_a.trys.push([5, 7, , 8]);
|
|
3020
2957
|
return [4, this.program.methods
|
|
3021
2958
|
.closeAndSwap({
|
|
3022
2959
|
priceWithSlippage: priceWithSlippage,
|
|
3023
|
-
minSwapAmountOut: minSwapAmountOut,
|
|
3024
2960
|
privilege: privilege
|
|
3025
2961
|
})
|
|
3026
2962
|
.accounts({
|
|
@@ -3049,7 +2985,7 @@ var PerpetualsClient = (function () {
|
|
|
3049
2985
|
collateralMint: collateralCustodyConfig.mintKey,
|
|
3050
2986
|
collateralTokenProgram: collateralToken.isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID
|
|
3051
2987
|
})
|
|
3052
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
2988
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
3053
2989
|
.instruction()];
|
|
3054
2990
|
case 6:
|
|
3055
2991
|
inx = _a.sent();
|
|
@@ -3170,12 +3106,12 @@ var PerpetualsClient = (function () {
|
|
|
3170
3106
|
});
|
|
3171
3107
|
});
|
|
3172
3108
|
};
|
|
3173
|
-
this.swapAndAddCollateral = function (targetSymbol_1, inputSymbol_1, collateralSymbol_1, amountIn_1,
|
|
3109
|
+
this.swapAndAddCollateral = function (targetSymbol_1, inputSymbol_1, collateralSymbol_1, amountIn_1, side_1, positionPubKey_1, poolConfig_1) {
|
|
3174
3110
|
var args_1 = [];
|
|
3175
|
-
for (var _i =
|
|
3176
|
-
args_1[_i -
|
|
3111
|
+
for (var _i = 7; _i < arguments.length; _i++) {
|
|
3112
|
+
args_1[_i - 7] = arguments[_i];
|
|
3177
3113
|
}
|
|
3178
|
-
return __awaiter(_this, __spreadArray([targetSymbol_1, inputSymbol_1, collateralSymbol_1, amountIn_1,
|
|
3114
|
+
return __awaiter(_this, __spreadArray([targetSymbol_1, inputSymbol_1, collateralSymbol_1, amountIn_1, side_1, positionPubKey_1, poolConfig_1], args_1, true), void 0, function (targetSymbol, inputSymbol, collateralSymbol, amountIn, side, positionPubKey, poolConfig, skipBalanceChecks, ephemeralSignerPubkey) {
|
|
3179
3115
|
var publicKey, collateralCustodyConfig, targetCustodyConfig, inputCustodyConfig, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, userInputTokenAccount, lamports, unWrappedSolBalance, _a, tokenAccountBalance, _b, userCollateralTokenAccount, marketAccount, instruction;
|
|
3180
3116
|
if (skipBalanceChecks === void 0) { skipBalanceChecks = false; }
|
|
3181
3117
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
@@ -3254,7 +3190,6 @@ var PerpetualsClient = (function () {
|
|
|
3254
3190
|
marketAccount = poolConfig.getMarketPk(targetCustodyConfig.custodyAccount, collateralCustodyConfig.custodyAccount, side);
|
|
3255
3191
|
return [4, this.program.methods.swapAndAddCollateral({
|
|
3256
3192
|
amountIn: amountIn,
|
|
3257
|
-
minCollateralAmountOut: minCollateralAmountOut,
|
|
3258
3193
|
}).accounts({
|
|
3259
3194
|
owner: publicKey,
|
|
3260
3195
|
feePayer: publicKey,
|
|
@@ -3290,12 +3225,12 @@ var PerpetualsClient = (function () {
|
|
|
3290
3225
|
});
|
|
3291
3226
|
});
|
|
3292
3227
|
};
|
|
3293
|
-
this.removeCollateral = function (
|
|
3228
|
+
this.removeCollateral = function (collateralDeltaUsd_1, marketSymbol_1, collateralSymbol_1, side_1, positionPubKey_1, poolConfig_1) {
|
|
3294
3229
|
var args_1 = [];
|
|
3295
3230
|
for (var _i = 6; _i < arguments.length; _i++) {
|
|
3296
3231
|
args_1[_i - 6] = arguments[_i];
|
|
3297
3232
|
}
|
|
3298
|
-
return __awaiter(_this, __spreadArray([
|
|
3233
|
+
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) {
|
|
3299
3234
|
var publicKey, collateralCustodyConfig, targetCustodyConfig, userReceivingTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, lamports, _a, marketAccount, instruction, closeWsolATAIns, error_2;
|
|
3300
3235
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
3301
3236
|
if (closeUsersWSOLATA === void 0) { closeUsersWSOLATA = false; }
|
|
@@ -3359,7 +3294,7 @@ var PerpetualsClient = (function () {
|
|
|
3359
3294
|
marketAccount = poolConfig.getMarketPk(targetCustodyConfig.custodyAccount, collateralCustodyConfig.custodyAccount, side);
|
|
3360
3295
|
return [4, this.program.methods
|
|
3361
3296
|
.removeCollateral({
|
|
3362
|
-
|
|
3297
|
+
collateralDeltaUsd: collateralDeltaUsd,
|
|
3363
3298
|
})
|
|
3364
3299
|
.accounts({
|
|
3365
3300
|
owner: publicKey,
|
|
@@ -3401,12 +3336,12 @@ var PerpetualsClient = (function () {
|
|
|
3401
3336
|
});
|
|
3402
3337
|
});
|
|
3403
3338
|
};
|
|
3404
|
-
this.removeCollateralAndSwap = function (targetSymbol_1, collateralSymbol_1, outputSymbol_1,
|
|
3339
|
+
this.removeCollateralAndSwap = function (targetSymbol_1, collateralSymbol_1, outputSymbol_1, collateralDeltaUsd_1, side_1, poolConfig_1) {
|
|
3405
3340
|
var args_1 = [];
|
|
3406
|
-
for (var _i =
|
|
3407
|
-
args_1[_i -
|
|
3341
|
+
for (var _i = 6; _i < arguments.length; _i++) {
|
|
3342
|
+
args_1[_i - 6] = arguments[_i];
|
|
3408
3343
|
}
|
|
3409
|
-
return __awaiter(_this, __spreadArray([targetSymbol_1, collateralSymbol_1, outputSymbol_1,
|
|
3344
|
+
return __awaiter(_this, __spreadArray([targetSymbol_1, collateralSymbol_1, outputSymbol_1, collateralDeltaUsd_1, side_1, poolConfig_1], args_1, true), void 0, function (targetSymbol, collateralSymbol, outputSymbol, collateralDeltaUsd, side, poolConfig, ephemeralSignerPubkey) {
|
|
3410
3345
|
var publicKey, targetCustodyConfig, collateralCustodyConfig, outputCustodyConfig, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, userReceivingTokenAccount, lamports, userCollateralTokenAccount, marketAccount, positionAccount, instruction;
|
|
3411
3346
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
3412
3347
|
return __generator(this, function (_a) {
|
|
@@ -3463,8 +3398,7 @@ var PerpetualsClient = (function () {
|
|
|
3463
3398
|
positionAccount = poolConfig.getPositionFromMarketPk(publicKey, marketAccount);
|
|
3464
3399
|
return [4, this.program.methods
|
|
3465
3400
|
.removeCollateralAndSwap({
|
|
3466
|
-
|
|
3467
|
-
minSwapAmountOut: minSwapAmountOut,
|
|
3401
|
+
collateralDeltaUsd: collateralDeltaUsd,
|
|
3468
3402
|
})
|
|
3469
3403
|
.accounts({
|
|
3470
3404
|
owner: publicKey,
|
|
@@ -3509,11 +3443,10 @@ var PerpetualsClient = (function () {
|
|
|
3509
3443
|
for (var _i = 8; _i < arguments.length; _i++) {
|
|
3510
3444
|
args_1[_i - 8] = arguments[_i];
|
|
3511
3445
|
}
|
|
3512
|
-
return __awaiter(_this, __spreadArray([targetSymbol_1, collateralSymbol_1, positionPubKey_1, side_1, poolConfig_1, priceWithSlippage_1, sizeDelta_1, privilege_1], args_1, true), void 0, function (targetSymbol, collateralSymbol, positionPubKey, side, poolConfig, priceWithSlippage, sizeDelta, privilege, tokenStakeAccount, userReferralAccount
|
|
3446
|
+
return __awaiter(_this, __spreadArray([targetSymbol_1, collateralSymbol_1, positionPubKey_1, side_1, poolConfig_1, priceWithSlippage_1, sizeDelta_1, privilege_1], args_1, true), void 0, function (targetSymbol, collateralSymbol, positionPubKey, side, poolConfig, priceWithSlippage, sizeDelta, privilege, tokenStakeAccount, userReferralAccount) {
|
|
3513
3447
|
var publicKey, collateralCustodyConfig, targetCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, instruction;
|
|
3514
3448
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
3515
3449
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
3516
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
3517
3450
|
return __generator(this, function (_a) {
|
|
3518
3451
|
switch (_a.label) {
|
|
3519
3452
|
case 0:
|
|
@@ -3556,7 +3489,7 @@ var PerpetualsClient = (function () {
|
|
|
3556
3489
|
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
|
3557
3490
|
collateralMint: collateralCustodyConfig.mintKey
|
|
3558
3491
|
})
|
|
3559
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
3492
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
3560
3493
|
.instruction()];
|
|
3561
3494
|
case 1:
|
|
3562
3495
|
instruction = _a.sent();
|
|
@@ -3574,11 +3507,10 @@ var PerpetualsClient = (function () {
|
|
|
3574
3507
|
for (var _i = 8; _i < arguments.length; _i++) {
|
|
3575
3508
|
args_1[_i - 8] = arguments[_i];
|
|
3576
3509
|
}
|
|
3577
|
-
return __awaiter(_this, __spreadArray([targetSymbol_1, collateralSymbol_1, side_1, positionPubKey_1, poolConfig_1, priceWithSlippage_1, sizeDelta_1, privilege_1], args_1, true), void 0, function (targetSymbol, collateralSymbol, side, positionPubKey, poolConfig, priceWithSlippage, sizeDelta, privilege, tokenStakeAccount, userReferralAccount
|
|
3510
|
+
return __awaiter(_this, __spreadArray([targetSymbol_1, collateralSymbol_1, side_1, positionPubKey_1, poolConfig_1, priceWithSlippage_1, sizeDelta_1, privilege_1], args_1, true), void 0, function (targetSymbol, collateralSymbol, side, positionPubKey, poolConfig, priceWithSlippage, sizeDelta, privilege, tokenStakeAccount, userReferralAccount) {
|
|
3578
3511
|
var publicKey, collateralCustodyConfig, targetCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, instruction;
|
|
3579
3512
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
3580
3513
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
3581
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
3582
3514
|
return __generator(this, function (_a) {
|
|
3583
3515
|
switch (_a.label) {
|
|
3584
3516
|
case 0:
|
|
@@ -3621,7 +3553,7 @@ var PerpetualsClient = (function () {
|
|
|
3621
3553
|
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
|
3622
3554
|
collateralMint: collateralCustodyConfig.mintKey
|
|
3623
3555
|
})
|
|
3624
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
3556
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
3625
3557
|
.instruction()];
|
|
3626
3558
|
case 1:
|
|
3627
3559
|
instruction = _a.sent();
|
|
@@ -4088,119 +4020,8 @@ var PerpetualsClient = (function () {
|
|
|
4088
4020
|
}
|
|
4089
4021
|
});
|
|
4090
4022
|
}); };
|
|
4091
|
-
this.updateNftAccount = function (nftMint, updateReferer, updateBooster, flpStakeAccounts) { return __awaiter(_this, void 0, void 0, function () {
|
|
4092
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, nftTradingAccount, nftReferralAccount, nftTokenAccount, flpStakeAccountMetas, _i, flpStakeAccounts_1, flpStakeAccountPk, updateNftTradingAccountInstruction, err_8;
|
|
4093
|
-
return __generator(this, function (_a) {
|
|
4094
|
-
switch (_a.label) {
|
|
4095
|
-
case 0:
|
|
4096
|
-
publicKey = this.provider.wallet.publicKey;
|
|
4097
|
-
preInstructions = [];
|
|
4098
|
-
instructions = [];
|
|
4099
|
-
postInstructions = [];
|
|
4100
|
-
additionalSigners = [];
|
|
4101
|
-
_a.label = 1;
|
|
4102
|
-
case 1:
|
|
4103
|
-
_a.trys.push([1, 4, , 5]);
|
|
4104
|
-
nftTradingAccount = web3_js_1.PublicKey.findProgramAddressSync([
|
|
4105
|
-
Buffer.from("trading"),
|
|
4106
|
-
nftMint.toBuffer(),
|
|
4107
|
-
], this.programId)[0];
|
|
4108
|
-
nftReferralAccount = web3_js_1.PublicKey.findProgramAddressSync([
|
|
4109
|
-
Buffer.from("referral"),
|
|
4110
|
-
publicKey.toBuffer(),
|
|
4111
|
-
], this.programId)[0];
|
|
4112
|
-
return [4, (0, spl_token_1.getAssociatedTokenAddress)(nftMint, publicKey, true)];
|
|
4113
|
-
case 2:
|
|
4114
|
-
nftTokenAccount = _a.sent();
|
|
4115
|
-
flpStakeAccountMetas = [];
|
|
4116
|
-
for (_i = 0, flpStakeAccounts_1 = flpStakeAccounts; _i < flpStakeAccounts_1.length; _i++) {
|
|
4117
|
-
flpStakeAccountPk = flpStakeAccounts_1[_i];
|
|
4118
|
-
flpStakeAccountMetas.push({
|
|
4119
|
-
pubkey: flpStakeAccountPk,
|
|
4120
|
-
isSigner: false,
|
|
4121
|
-
isWritable: true,
|
|
4122
|
-
});
|
|
4123
|
-
}
|
|
4124
|
-
return [4, this.program.methods
|
|
4125
|
-
.updateTradingAccount({
|
|
4126
|
-
updateReferer: updateReferer,
|
|
4127
|
-
updateBooster: updateBooster
|
|
4128
|
-
})
|
|
4129
|
-
.accounts({
|
|
4130
|
-
owner: publicKey,
|
|
4131
|
-
feePayer: publicKey,
|
|
4132
|
-
nftTokenAccount: nftTokenAccount,
|
|
4133
|
-
referralAccount: nftReferralAccount,
|
|
4134
|
-
tradingAccount: nftTradingAccount
|
|
4135
|
-
})
|
|
4136
|
-
.instruction()];
|
|
4137
|
-
case 3:
|
|
4138
|
-
updateNftTradingAccountInstruction = _a.sent();
|
|
4139
|
-
instructions.push(updateNftTradingAccountInstruction);
|
|
4140
|
-
return [3, 5];
|
|
4141
|
-
case 4:
|
|
4142
|
-
err_8 = _a.sent();
|
|
4143
|
-
console.log("perpClient updateNftAccount error:: ", err_8);
|
|
4144
|
-
throw err_8;
|
|
4145
|
-
case 5: return [2, {
|
|
4146
|
-
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
4147
|
-
additionalSigners: additionalSigners
|
|
4148
|
-
}];
|
|
4149
|
-
}
|
|
4150
|
-
});
|
|
4151
|
-
}); };
|
|
4152
|
-
this.levelUp = function (poolConfig, nftMint, authorizationRulesAccount) { return __awaiter(_this, void 0, void 0, function () {
|
|
4153
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, nftTradingAccount, metadataAccount, levelUpInstruction, err_9;
|
|
4154
|
-
return __generator(this, function (_a) {
|
|
4155
|
-
switch (_a.label) {
|
|
4156
|
-
case 0:
|
|
4157
|
-
publicKey = this.provider.wallet.publicKey;
|
|
4158
|
-
preInstructions = [];
|
|
4159
|
-
instructions = [];
|
|
4160
|
-
postInstructions = [];
|
|
4161
|
-
additionalSigners = [];
|
|
4162
|
-
_a.label = 1;
|
|
4163
|
-
case 1:
|
|
4164
|
-
_a.trys.push([1, 3, , 4]);
|
|
4165
|
-
nftTradingAccount = web3_js_1.PublicKey.findProgramAddressSync([
|
|
4166
|
-
Buffer.from("trading"),
|
|
4167
|
-
nftMint.toBuffer(),
|
|
4168
|
-
], this.programId)[0];
|
|
4169
|
-
metadataAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("metadata"), constants_1.METAPLEX_PROGRAM_ID.toBuffer(), nftMint.toBuffer()], constants_1.METAPLEX_PROGRAM_ID)[0];
|
|
4170
|
-
return [4, this.program.methods
|
|
4171
|
-
.levelUp({})
|
|
4172
|
-
.accounts({
|
|
4173
|
-
owner: publicKey,
|
|
4174
|
-
perpetuals: this.perpetuals.publicKey,
|
|
4175
|
-
pool: poolConfig.poolAddress,
|
|
4176
|
-
metadataAccount: metadataAccount,
|
|
4177
|
-
nftMint: nftMint,
|
|
4178
|
-
metadataProgram: constants_1.METAPLEX_PROGRAM_ID,
|
|
4179
|
-
tradingAccount: nftTradingAccount,
|
|
4180
|
-
transferAuthority: this.authority.publicKey,
|
|
4181
|
-
authorizationRulesAccount: authorizationRulesAccount,
|
|
4182
|
-
authorizationRulesProgram: new web3_js_1.PublicKey('auth9SigNpDKz4sJJ1DfCTuZrZNSAgh9sFD3rboVmgg'),
|
|
4183
|
-
systemProgram: web3_js_1.SystemProgram.programId,
|
|
4184
|
-
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY
|
|
4185
|
-
})
|
|
4186
|
-
.instruction()];
|
|
4187
|
-
case 2:
|
|
4188
|
-
levelUpInstruction = _a.sent();
|
|
4189
|
-
instructions.push(levelUpInstruction);
|
|
4190
|
-
return [3, 4];
|
|
4191
|
-
case 3:
|
|
4192
|
-
err_9 = _a.sent();
|
|
4193
|
-
console.log("perpClient levelUp error:: ", err_9);
|
|
4194
|
-
throw err_9;
|
|
4195
|
-
case 4: return [2, {
|
|
4196
|
-
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
4197
|
-
additionalSigners: additionalSigners
|
|
4198
|
-
}];
|
|
4199
|
-
}
|
|
4200
|
-
});
|
|
4201
|
-
}); };
|
|
4202
4023
|
this.depositStake = function (owner, feePayer, depositAmount, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
4203
|
-
var preInstructions, instructions, postInstructions, additionalSigners, lpTokenMint, poolStakedLpVault, flpStakeAccount, userLpTokenAccount, depositStakeInstruction,
|
|
4024
|
+
var preInstructions, instructions, postInstructions, additionalSigners, lpTokenMint, poolStakedLpVault, flpStakeAccount, userLpTokenAccount, depositStakeInstruction, err_8;
|
|
4204
4025
|
return __generator(this, function (_a) {
|
|
4205
4026
|
switch (_a.label) {
|
|
4206
4027
|
case 0:
|
|
@@ -4242,9 +4063,9 @@ var PerpetualsClient = (function () {
|
|
|
4242
4063
|
instructions.push(depositStakeInstruction);
|
|
4243
4064
|
return [3, 5];
|
|
4244
4065
|
case 4:
|
|
4245
|
-
|
|
4246
|
-
console.log("perpClient depositStaking error:: ",
|
|
4247
|
-
throw
|
|
4066
|
+
err_8 = _a.sent();
|
|
4067
|
+
console.log("perpClient depositStaking error:: ", err_8);
|
|
4068
|
+
throw err_8;
|
|
4248
4069
|
case 5: return [2, {
|
|
4249
4070
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
4250
4071
|
additionalSigners: additionalSigners
|
|
@@ -4253,7 +4074,7 @@ var PerpetualsClient = (function () {
|
|
|
4253
4074
|
});
|
|
4254
4075
|
}); };
|
|
4255
4076
|
this.refreshStakeWithAllFlpStakeAccounts = function (rewardSymbol, poolConfig, flpStakeAccountPks) { return __awaiter(_this, void 0, void 0, function () {
|
|
4256
|
-
var rewardCustodyMint, rewardCustodyConfig, pool, feeDistributionTokenAccount, custodyAccountMetas, _i, _a, custody, maxFlpStakeAccountPkLength, flpStakeAccountMetas, _b, flpStakeAccountPks_1, flpStakeAccountPk, refreshStakeInstruction,
|
|
4077
|
+
var rewardCustodyMint, rewardCustodyConfig, pool, feeDistributionTokenAccount, custodyAccountMetas, _i, _a, custody, maxFlpStakeAccountPkLength, flpStakeAccountMetas, _b, flpStakeAccountPks_1, flpStakeAccountPk, refreshStakeInstruction, err_9;
|
|
4257
4078
|
return __generator(this, function (_c) {
|
|
4258
4079
|
switch (_c.label) {
|
|
4259
4080
|
case 0:
|
|
@@ -4300,9 +4121,9 @@ var PerpetualsClient = (function () {
|
|
|
4300
4121
|
refreshStakeInstruction = _c.sent();
|
|
4301
4122
|
return [2, refreshStakeInstruction];
|
|
4302
4123
|
case 2:
|
|
4303
|
-
|
|
4304
|
-
console.log("perpClient refreshStaking error:: ",
|
|
4305
|
-
throw
|
|
4124
|
+
err_9 = _c.sent();
|
|
4125
|
+
console.log("perpClient refreshStaking error:: ", err_9);
|
|
4126
|
+
throw err_9;
|
|
4306
4127
|
case 3: return [2];
|
|
4307
4128
|
}
|
|
4308
4129
|
});
|
|
@@ -4313,7 +4134,7 @@ var PerpetualsClient = (function () {
|
|
|
4313
4134
|
args_1[_i - 3] = arguments[_i];
|
|
4314
4135
|
}
|
|
4315
4136
|
return __awaiter(_this, __spreadArray([rewardSymbol_1, poolConfig_1, flpStakeAccountPk_1], args_1, true), void 0, function (rewardSymbol, poolConfig, flpStakeAccountPk, userPublicKey) {
|
|
4316
|
-
var publicKey, rewardCustodyMint, rewardCustodyConfig, pool, feeDistributionTokenAccount, custodyAccountMetas, _a, _b, custody, stakeAccountMetas, tokenStakeAccount, refreshStakeInstruction,
|
|
4137
|
+
var publicKey, rewardCustodyMint, rewardCustodyConfig, pool, feeDistributionTokenAccount, custodyAccountMetas, _a, _b, custody, stakeAccountMetas, tokenStakeAccount, refreshStakeInstruction, err_10;
|
|
4317
4138
|
if (userPublicKey === void 0) { userPublicKey = undefined; }
|
|
4318
4139
|
return __generator(this, function (_c) {
|
|
4319
4140
|
switch (_c.label) {
|
|
@@ -4361,9 +4182,9 @@ var PerpetualsClient = (function () {
|
|
|
4361
4182
|
refreshStakeInstruction = _c.sent();
|
|
4362
4183
|
return [2, refreshStakeInstruction];
|
|
4363
4184
|
case 2:
|
|
4364
|
-
|
|
4365
|
-
console.log("perpClient refreshStaking error:: ",
|
|
4366
|
-
throw
|
|
4185
|
+
err_10 = _c.sent();
|
|
4186
|
+
console.log("perpClient refreshStaking error:: ", err_10);
|
|
4187
|
+
throw err_10;
|
|
4367
4188
|
case 3: return [2];
|
|
4368
4189
|
}
|
|
4369
4190
|
});
|
|
@@ -4375,7 +4196,7 @@ var PerpetualsClient = (function () {
|
|
|
4375
4196
|
args_1[_i - 3] = arguments[_i];
|
|
4376
4197
|
}
|
|
4377
4198
|
return __awaiter(_this, __spreadArray([rewardSymbol_1, unstakeAmount_1, poolConfig_1], args_1, true), void 0, function (rewardSymbol, unstakeAmount, poolConfig, userPublicKey) {
|
|
4378
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyConfig, pool, flpStakeAccount, tokenStakeAccount, tokenStakeAccounts, _a, unstakeInstantInstruction,
|
|
4199
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyConfig, pool, flpStakeAccount, tokenStakeAccount, tokenStakeAccounts, _a, unstakeInstantInstruction, err_11;
|
|
4379
4200
|
if (userPublicKey === void 0) { userPublicKey = undefined; }
|
|
4380
4201
|
return __generator(this, function (_b) {
|
|
4381
4202
|
switch (_b.label) {
|
|
@@ -4427,9 +4248,9 @@ var PerpetualsClient = (function () {
|
|
|
4427
4248
|
instructions.push(unstakeInstantInstruction);
|
|
4428
4249
|
return [3, 6];
|
|
4429
4250
|
case 5:
|
|
4430
|
-
|
|
4431
|
-
console.log("perpClient unstakeInstant error:: ",
|
|
4432
|
-
throw
|
|
4251
|
+
err_11 = _b.sent();
|
|
4252
|
+
console.log("perpClient unstakeInstant error:: ", err_11);
|
|
4253
|
+
throw err_11;
|
|
4433
4254
|
case 6: return [2, {
|
|
4434
4255
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
4435
4256
|
additionalSigners: additionalSigners
|
|
@@ -4439,7 +4260,7 @@ var PerpetualsClient = (function () {
|
|
|
4439
4260
|
});
|
|
4440
4261
|
};
|
|
4441
4262
|
this.setFeeShareBps = function (poolConfig, flpStakeAccountPks) { return __awaiter(_this, void 0, void 0, function () {
|
|
4442
|
-
var publicKey, pool, custodyAccountMetas, _i, _a, custody, maxFlpStakeAccountPkLength, flpStakeAccountMetas, _b, flpStakeAccountPks_2, flpStakeAccountPk, refreshStakeInstruction,
|
|
4263
|
+
var publicKey, pool, custodyAccountMetas, _i, _a, custody, maxFlpStakeAccountPkLength, flpStakeAccountMetas, _b, flpStakeAccountPks_2, flpStakeAccountPk, refreshStakeInstruction, err_12;
|
|
4443
4264
|
return __generator(this, function (_c) {
|
|
4444
4265
|
switch (_c.label) {
|
|
4445
4266
|
case 0:
|
|
@@ -4483,15 +4304,15 @@ var PerpetualsClient = (function () {
|
|
|
4483
4304
|
refreshStakeInstruction = _c.sent();
|
|
4484
4305
|
return [2, refreshStakeInstruction];
|
|
4485
4306
|
case 2:
|
|
4486
|
-
|
|
4487
|
-
console.log("perpClient refreshStaking error:: ",
|
|
4488
|
-
throw
|
|
4307
|
+
err_12 = _c.sent();
|
|
4308
|
+
console.log("perpClient refreshStaking error:: ", err_12);
|
|
4309
|
+
throw err_12;
|
|
4489
4310
|
case 3: return [2];
|
|
4490
4311
|
}
|
|
4491
4312
|
});
|
|
4492
4313
|
}); };
|
|
4493
4314
|
this.unstakeRequest = function (unstakeAmount, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
4494
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, pool, flpStakeAccount, unstakeRequestInstruction,
|
|
4315
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, pool, flpStakeAccount, unstakeRequestInstruction, err_13;
|
|
4495
4316
|
return __generator(this, function (_a) {
|
|
4496
4317
|
switch (_a.label) {
|
|
4497
4318
|
case 0:
|
|
@@ -4525,9 +4346,9 @@ var PerpetualsClient = (function () {
|
|
|
4525
4346
|
instructions.push(unstakeRequestInstruction);
|
|
4526
4347
|
return [3, 4];
|
|
4527
4348
|
case 3:
|
|
4528
|
-
|
|
4529
|
-
console.log("perpClient unstakeRequest error:: ",
|
|
4530
|
-
throw
|
|
4349
|
+
err_13 = _a.sent();
|
|
4350
|
+
console.log("perpClient unstakeRequest error:: ", err_13);
|
|
4351
|
+
throw err_13;
|
|
4531
4352
|
case 4: return [2, {
|
|
4532
4353
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
4533
4354
|
additionalSigners: additionalSigners
|
|
@@ -4541,7 +4362,7 @@ var PerpetualsClient = (function () {
|
|
|
4541
4362
|
args_1[_i - 1] = arguments[_i];
|
|
4542
4363
|
}
|
|
4543
4364
|
return __awaiter(_this, __spreadArray([poolConfig_1], args_1, true), void 0, function (poolConfig, pendingActivation, deactivated, createUserLPTA, userPublicKey) {
|
|
4544
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, lpTokenMint, pool, poolStakedLpVault, flpStakeAccount, userLpTokenAccount, _a, withdrawStakeInstruction,
|
|
4365
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, lpTokenMint, pool, poolStakedLpVault, flpStakeAccount, userLpTokenAccount, _a, withdrawStakeInstruction, err_14;
|
|
4545
4366
|
if (pendingActivation === void 0) { pendingActivation = true; }
|
|
4546
4367
|
if (deactivated === void 0) { deactivated = true; }
|
|
4547
4368
|
if (createUserLPTA === void 0) { createUserLPTA = true; }
|
|
@@ -4597,9 +4418,9 @@ var PerpetualsClient = (function () {
|
|
|
4597
4418
|
instructions.push(withdrawStakeInstruction);
|
|
4598
4419
|
return [3, 6];
|
|
4599
4420
|
case 5:
|
|
4600
|
-
|
|
4601
|
-
console.log("perpClient withdrawStake error:: ",
|
|
4602
|
-
throw
|
|
4421
|
+
err_14 = _b.sent();
|
|
4422
|
+
console.log("perpClient withdrawStake error:: ", err_14);
|
|
4423
|
+
throw err_14;
|
|
4603
4424
|
case 6: return [2, {
|
|
4604
4425
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
4605
4426
|
additionalSigners: additionalSigners
|
|
@@ -4614,7 +4435,7 @@ var PerpetualsClient = (function () {
|
|
|
4614
4435
|
args_1[_i - 3] = arguments[_i];
|
|
4615
4436
|
}
|
|
4616
4437
|
return __awaiter(_this, __spreadArray([rewardSymbol_1, poolConfig_1, tokenStakeAccount_1], args_1, true), void 0, function (rewardSymbol, poolConfig, tokenStakeAccount, createUserATA) {
|
|
4617
|
-
var publicKey, rewardCustodyMint, rewardCustodyConfig, preInstructions, instructions, postInstructions, additionalSigners, pool, flpStakeAccount, receivingTokenAccount, _a, tokenStakeAccounts, withdrawStakeInstruction,
|
|
4438
|
+
var publicKey, rewardCustodyMint, rewardCustodyConfig, preInstructions, instructions, postInstructions, additionalSigners, pool, flpStakeAccount, receivingTokenAccount, _a, tokenStakeAccounts, withdrawStakeInstruction, err_15;
|
|
4618
4439
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
4619
4440
|
return __generator(this, function (_b) {
|
|
4620
4441
|
switch (_b.label) {
|
|
@@ -4675,9 +4496,9 @@ var PerpetualsClient = (function () {
|
|
|
4675
4496
|
instructions.push(withdrawStakeInstruction);
|
|
4676
4497
|
return [3, 6];
|
|
4677
4498
|
case 5:
|
|
4678
|
-
|
|
4679
|
-
console.log("perpClient withdrawStake error:: ",
|
|
4680
|
-
throw
|
|
4499
|
+
err_15 = _b.sent();
|
|
4500
|
+
console.log("perpClient withdrawStake error:: ", err_15);
|
|
4501
|
+
throw err_15;
|
|
4681
4502
|
case 6: return [2, {
|
|
4682
4503
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
4683
4504
|
additionalSigners: additionalSigners
|
|
@@ -4691,11 +4512,13 @@ var PerpetualsClient = (function () {
|
|
|
4691
4512
|
for (var _i = 5; _i < arguments.length; _i++) {
|
|
4692
4513
|
args_1[_i - 5] = arguments[_i];
|
|
4693
4514
|
}
|
|
4694
|
-
return __awaiter(_this, __spreadArray([amountIn_1, minCompoundingAmountOut_1, inTokenSymbol_1, rewardTokenMint_1, poolConfig_1], args_1, true), void 0, function (amountIn, minCompoundingAmountOut, inTokenSymbol, rewardTokenMint, poolConfig, skipBalanceChecks, ephemeralSignerPubkey, userPublicKey) {
|
|
4695
|
-
var publicKey, preInstructions, instructions, additionalSigners, postInstructions, rewardCustody, inCustodyConfig, lpTokenMint, compoundingTokenMint, wrappedSolAccount, lpTokenAccount, compoundingTokenAccount, fundingAccount, custodyAccountMetas, custodyOracleAccountMetas, markets, _a, _b, custody, _c, _d, market, lamports, unWrappedSolBalance, _e, addCompoundingLiquidity,
|
|
4515
|
+
return __awaiter(_this, __spreadArray([amountIn_1, minCompoundingAmountOut_1, inTokenSymbol_1, rewardTokenMint_1, poolConfig_1], args_1, true), void 0, function (amountIn, minCompoundingAmountOut, inTokenSymbol, rewardTokenMint, poolConfig, skipBalanceChecks, ephemeralSignerPubkey, userPublicKey, enableHeapSizeIx, enableDebugLogs) {
|
|
4516
|
+
var publicKey, preInstructions, instructions, additionalSigners, postInstructions, rewardCustody, inCustodyConfig, lpTokenMint, compoundingTokenMint, wrappedSolAccount, lpTokenAccount, compoundingTokenAccount, fundingAccount, custodyAccountMetas, custodyOracleAccountMetas, markets, _a, _b, custody, _c, _d, market, lamports, unWrappedSolBalance, _e, heapSizeIx, addCompoundingLiquidity, err_16;
|
|
4696
4517
|
if (skipBalanceChecks === void 0) { skipBalanceChecks = false; }
|
|
4697
4518
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
4698
4519
|
if (userPublicKey === void 0) { userPublicKey = undefined; }
|
|
4520
|
+
if (enableHeapSizeIx === void 0) { enableHeapSizeIx = true; }
|
|
4521
|
+
if (enableDebugLogs === void 0) { enableDebugLogs = false; }
|
|
4699
4522
|
return __generator(this, function (_f) {
|
|
4700
4523
|
switch (_f.label) {
|
|
4701
4524
|
case 0:
|
|
@@ -4786,6 +4609,15 @@ var PerpetualsClient = (function () {
|
|
|
4786
4609
|
_f.label = 7;
|
|
4787
4610
|
case 7:
|
|
4788
4611
|
_f.trys.push([7, 9, , 10]);
|
|
4612
|
+
if (enableHeapSizeIx) {
|
|
4613
|
+
heapSizeIx = web3_js_1.ComputeBudgetProgram.requestHeapFrame({
|
|
4614
|
+
bytes: 64 * 1024,
|
|
4615
|
+
});
|
|
4616
|
+
if (enableDebugLogs) {
|
|
4617
|
+
console.log("SDK: adding 64 liq Data heapSizeIx for addCompoundingLiquidity");
|
|
4618
|
+
}
|
|
4619
|
+
preInstructions.push(heapSizeIx);
|
|
4620
|
+
}
|
|
4789
4621
|
return [4, this.program.methods
|
|
4790
4622
|
.addCompoundingLiquidity({
|
|
4791
4623
|
amountIn: amountIn,
|
|
@@ -4820,8 +4652,8 @@ var PerpetualsClient = (function () {
|
|
|
4820
4652
|
instructions.push(addCompoundingLiquidity);
|
|
4821
4653
|
return [3, 10];
|
|
4822
4654
|
case 9:
|
|
4823
|
-
|
|
4824
|
-
console.log("perpClient addCompoundingLiquidity error:: ",
|
|
4655
|
+
err_16 = _f.sent();
|
|
4656
|
+
console.log("perpClient addCompoundingLiquidity error:: ", err_16);
|
|
4825
4657
|
return [3, 10];
|
|
4826
4658
|
case 10: return [2, {
|
|
4827
4659
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
@@ -4836,11 +4668,13 @@ var PerpetualsClient = (function () {
|
|
|
4836
4668
|
for (var _i = 5; _i < arguments.length; _i++) {
|
|
4837
4669
|
args_1[_i - 5] = arguments[_i];
|
|
4838
4670
|
}
|
|
4839
|
-
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) {
|
|
4840
|
-
var publicKey, userReceivingTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, rewardCustody, outCustodyConfig, lpTokenMint, compoundingTokenMint, lamports, _a, custodyAccountMetas, custodyOracleAccountMetas, markets, _b, _c, custody, _d, _e, market, compoundingTokenAccount, removeCompoundingLiquidity,
|
|
4671
|
+
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, enableDebugLogs) {
|
|
4672
|
+
var publicKey, userReceivingTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, rewardCustody, outCustodyConfig, lpTokenMint, compoundingTokenMint, lamports, _a, custodyAccountMetas, custodyOracleAccountMetas, markets, _b, _c, custody, _d, _e, market, compoundingTokenAccount, heapSizeIx, removeCompoundingLiquidity, err_17;
|
|
4841
4673
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
4842
4674
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
4843
4675
|
if (userPublicKey === void 0) { userPublicKey = undefined; }
|
|
4676
|
+
if (enableHeapSizeIx === void 0) { enableHeapSizeIx = true; }
|
|
4677
|
+
if (enableDebugLogs === void 0) { enableDebugLogs = false; }
|
|
4844
4678
|
return __generator(this, function (_f) {
|
|
4845
4679
|
switch (_f.label) {
|
|
4846
4680
|
case 0:
|
|
@@ -4915,6 +4749,15 @@ var PerpetualsClient = (function () {
|
|
|
4915
4749
|
_f.label = 5;
|
|
4916
4750
|
case 5:
|
|
4917
4751
|
_f.trys.push([5, 7, , 8]);
|
|
4752
|
+
if (enableHeapSizeIx) {
|
|
4753
|
+
heapSizeIx = web3_js_1.ComputeBudgetProgram.requestHeapFrame({
|
|
4754
|
+
bytes: 64 * 1024,
|
|
4755
|
+
});
|
|
4756
|
+
if (enableDebugLogs) {
|
|
4757
|
+
console.log("SDK: adding 64 liq Data heapSizeIx for addCompoundingLiquidity");
|
|
4758
|
+
}
|
|
4759
|
+
preInstructions.push(heapSizeIx);
|
|
4760
|
+
}
|
|
4918
4761
|
return [4, this.program.methods
|
|
4919
4762
|
.removeCompoundingLiquidity({
|
|
4920
4763
|
compoundingAmountIn: compoundingAmountIn,
|
|
@@ -4949,8 +4792,8 @@ var PerpetualsClient = (function () {
|
|
|
4949
4792
|
instructions.push(removeCompoundingLiquidity);
|
|
4950
4793
|
return [3, 8];
|
|
4951
4794
|
case 7:
|
|
4952
|
-
|
|
4953
|
-
console.log("perpClient removeCompoundingLiquidity error:: ",
|
|
4795
|
+
err_17 = _f.sent();
|
|
4796
|
+
console.log("perpClient removeCompoundingLiquidity error:: ", err_17);
|
|
4954
4797
|
return [3, 8];
|
|
4955
4798
|
case 8: return [2, {
|
|
4956
4799
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
@@ -4966,7 +4809,7 @@ var PerpetualsClient = (function () {
|
|
|
4966
4809
|
args_1[_i - 3] = arguments[_i];
|
|
4967
4810
|
}
|
|
4968
4811
|
return __awaiter(_this, __spreadArray([amount_1, rewardTokenMint_1, poolConfig_1], args_1, true), void 0, function (amount, rewardTokenMint, poolConfig, createUserATA) {
|
|
4969
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustody, lpTokenMint, compoundingTokenMint, compoudingTokenAccount, _a, flpStakeAccount, tokenStakeAccount, tokenStakeAccounts, _b, poolStakedLpVault, custodyAccountMetas, custodyOracleAccountMetas, markets, _c, _d, custody, _e, _f, market, migrateStake,
|
|
4812
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustody, lpTokenMint, compoundingTokenMint, compoudingTokenAccount, _a, flpStakeAccount, tokenStakeAccount, tokenStakeAccounts, _b, poolStakedLpVault, custodyAccountMetas, custodyOracleAccountMetas, markets, _c, _d, custody, _e, _f, market, migrateStake, err_18;
|
|
4970
4813
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
4971
4814
|
return __generator(this, function (_g) {
|
|
4972
4815
|
switch (_g.label) {
|
|
@@ -5064,8 +4907,8 @@ var PerpetualsClient = (function () {
|
|
|
5064
4907
|
instructions.push(migrateStake);
|
|
5065
4908
|
return [3, 8];
|
|
5066
4909
|
case 7:
|
|
5067
|
-
|
|
5068
|
-
console.log("perpClient migrateStake error:: ",
|
|
4910
|
+
err_18 = _g.sent();
|
|
4911
|
+
console.log("perpClient migrateStake error:: ", err_18);
|
|
5069
4912
|
return [3, 8];
|
|
5070
4913
|
case 8: return [2, {
|
|
5071
4914
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
@@ -5076,7 +4919,7 @@ var PerpetualsClient = (function () {
|
|
|
5076
4919
|
});
|
|
5077
4920
|
};
|
|
5078
4921
|
this.migrateFlp = function (amount, rewardTokenMint, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
5079
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustody, lpTokenMint, compoundingTokenMint, compoudingTokenAccount, flpStakeAccount, poolStakedLpVault, custodyAccountMetas, custodyOracleAccountMetas, markets, _i, _a, custody, _b, _c, market, migrateFlp,
|
|
4922
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustody, lpTokenMint, compoundingTokenMint, compoudingTokenAccount, flpStakeAccount, poolStakedLpVault, custodyAccountMetas, custodyOracleAccountMetas, markets, _i, _a, custody, _b, _c, market, migrateFlp, err_19;
|
|
5080
4923
|
return __generator(this, function (_d) {
|
|
5081
4924
|
switch (_d.label) {
|
|
5082
4925
|
case 0:
|
|
@@ -5148,8 +4991,8 @@ var PerpetualsClient = (function () {
|
|
|
5148
4991
|
instructions.push(migrateFlp);
|
|
5149
4992
|
return [3, 4];
|
|
5150
4993
|
case 3:
|
|
5151
|
-
|
|
5152
|
-
console.log("perpClient migrateFlp error:: ",
|
|
4994
|
+
err_19 = _d.sent();
|
|
4995
|
+
console.log("perpClient migrateFlp error:: ", err_19);
|
|
5153
4996
|
return [3, 4];
|
|
5154
4997
|
case 4: return [2, {
|
|
5155
4998
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
@@ -5164,7 +5007,7 @@ var PerpetualsClient = (function () {
|
|
|
5164
5007
|
args_1[_i - 1] = arguments[_i];
|
|
5165
5008
|
}
|
|
5166
5009
|
return __awaiter(_this, __spreadArray([poolConfig_1], args_1, true), void 0, function (poolConfig, rewardTokenSymbol) {
|
|
5167
|
-
var instructions, additionalSigners, rewardCustody, lpTokenMint, custodyAccountMetas, custodyOracleAccountMetas, markets, _a, _b, custody, _c, _d, market, compoundingFee,
|
|
5010
|
+
var instructions, additionalSigners, rewardCustody, lpTokenMint, custodyAccountMetas, custodyOracleAccountMetas, markets, _a, _b, custody, _c, _d, market, compoundingFee, err_20;
|
|
5168
5011
|
if (rewardTokenSymbol === void 0) { rewardTokenSymbol = 'USDC'; }
|
|
5169
5012
|
return __generator(this, function (_e) {
|
|
5170
5013
|
switch (_e.label) {
|
|
@@ -5222,8 +5065,8 @@ var PerpetualsClient = (function () {
|
|
|
5222
5065
|
instructions.push(compoundingFee);
|
|
5223
5066
|
return [3, 4];
|
|
5224
5067
|
case 3:
|
|
5225
|
-
|
|
5226
|
-
console.log("perpClient compoundingFee error:: ",
|
|
5068
|
+
err_20 = _e.sent();
|
|
5069
|
+
console.log("perpClient compoundingFee error:: ", err_20);
|
|
5227
5070
|
return [3, 4];
|
|
5228
5071
|
case 4: return [2, {
|
|
5229
5072
|
instructions: __spreadArray([], instructions, true),
|
|
@@ -5233,146 +5076,8 @@ var PerpetualsClient = (function () {
|
|
|
5233
5076
|
});
|
|
5234
5077
|
});
|
|
5235
5078
|
};
|
|
5236
|
-
this.burnAndClaim = function (owner, nftMint, poolConfig, createAta) { return __awaiter(_this, void 0, void 0, function () {
|
|
5237
|
-
var preInstructions, instructions, postInstructions, additionalSigners, userTokenAccount, _a, nftTokenAccount, nftTradingAccount, metadataAccount, collectionMetadata, edition, tokenRecord, burnAndClaimInstruction, err_23;
|
|
5238
|
-
return __generator(this, function (_b) {
|
|
5239
|
-
switch (_b.label) {
|
|
5240
|
-
case 0:
|
|
5241
|
-
preInstructions = [];
|
|
5242
|
-
instructions = [];
|
|
5243
|
-
postInstructions = [];
|
|
5244
|
-
additionalSigners = [];
|
|
5245
|
-
_b.label = 1;
|
|
5246
|
-
case 1:
|
|
5247
|
-
_b.trys.push([1, 7, , 8]);
|
|
5248
|
-
return [4, (0, spl_token_1.getAssociatedTokenAddress)(poolConfig.tokenMint, owner, true)];
|
|
5249
|
-
case 2:
|
|
5250
|
-
userTokenAccount = _b.sent();
|
|
5251
|
-
_a = createAta;
|
|
5252
|
-
if (!_a) return [3, 4];
|
|
5253
|
-
return [4, (0, utils_1.checkIfAccountExists)(userTokenAccount, this.provider.connection)];
|
|
5254
|
-
case 3:
|
|
5255
|
-
_a = !(_b.sent());
|
|
5256
|
-
_b.label = 4;
|
|
5257
|
-
case 4:
|
|
5258
|
-
if (_a) {
|
|
5259
|
-
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(owner, userTokenAccount, owner, poolConfig.tokenMint));
|
|
5260
|
-
}
|
|
5261
|
-
return [4, (0, spl_token_1.getAssociatedTokenAddress)(nftMint, owner, true)];
|
|
5262
|
-
case 5:
|
|
5263
|
-
nftTokenAccount = _b.sent();
|
|
5264
|
-
nftTradingAccount = web3_js_1.PublicKey.findProgramAddressSync([
|
|
5265
|
-
Buffer.from("trading"),
|
|
5266
|
-
nftMint.toBuffer(),
|
|
5267
|
-
], this.programId)[0];
|
|
5268
|
-
metadataAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("metadata"), constants_1.METAPLEX_PROGRAM_ID.toBuffer(), nftMint.toBuffer()], constants_1.METAPLEX_PROGRAM_ID)[0];
|
|
5269
|
-
collectionMetadata = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("metadata"), constants_1.METAPLEX_PROGRAM_ID.toBuffer(), poolConfig.nftCollectionAddress.toBuffer()], constants_1.METAPLEX_PROGRAM_ID)[0];
|
|
5270
|
-
edition = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("metadata"), constants_1.METAPLEX_PROGRAM_ID.toBuffer(), nftMint.toBuffer(), Buffer.from("edition")], constants_1.METAPLEX_PROGRAM_ID)[0];
|
|
5271
|
-
tokenRecord = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("metadata"), constants_1.METAPLEX_PROGRAM_ID.toBuffer(), nftMint.toBuffer(), Buffer.from("token_record"), nftTokenAccount.toBuffer()], constants_1.METAPLEX_PROGRAM_ID)[0];
|
|
5272
|
-
return [4, this.program.methods
|
|
5273
|
-
.burnAndClaim({})
|
|
5274
|
-
.accounts({
|
|
5275
|
-
owner: owner,
|
|
5276
|
-
receivingTokenAccount: userTokenAccount,
|
|
5277
|
-
perpetuals: this.perpetuals.publicKey,
|
|
5278
|
-
tokenVault: poolConfig.tokenVault,
|
|
5279
|
-
tokenVaultTokenAccount: poolConfig.tokenVaultTokenAccount,
|
|
5280
|
-
metadataAccount: metadataAccount,
|
|
5281
|
-
collectionMetadata: collectionMetadata,
|
|
5282
|
-
edition: edition,
|
|
5283
|
-
tokenRecord: tokenRecord,
|
|
5284
|
-
tradingAccount: nftTradingAccount,
|
|
5285
|
-
transferAuthority: poolConfig.transferAuthority,
|
|
5286
|
-
metadataProgram: constants_1.METAPLEX_PROGRAM_ID,
|
|
5287
|
-
nftMint: nftMint,
|
|
5288
|
-
nftTokenAccount: nftTokenAccount,
|
|
5289
|
-
systemProgram: web3_js_1.SystemProgram.programId,
|
|
5290
|
-
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
5291
|
-
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
|
5292
|
-
eventAuthority: this.eventAuthority.publicKey,
|
|
5293
|
-
program: this.programId,
|
|
5294
|
-
receivingTokenMint: poolConfig.tokenMint,
|
|
5295
|
-
})
|
|
5296
|
-
.instruction()];
|
|
5297
|
-
case 6:
|
|
5298
|
-
burnAndClaimInstruction = _b.sent();
|
|
5299
|
-
instructions.push(burnAndClaimInstruction);
|
|
5300
|
-
return [3, 8];
|
|
5301
|
-
case 7:
|
|
5302
|
-
err_23 = _b.sent();
|
|
5303
|
-
console.log("perpClient burnAndClaimInstruction error:: ", err_23);
|
|
5304
|
-
throw err_23;
|
|
5305
|
-
case 8: return [2, {
|
|
5306
|
-
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5307
|
-
additionalSigners: additionalSigners
|
|
5308
|
-
}];
|
|
5309
|
-
}
|
|
5310
|
-
});
|
|
5311
|
-
}); };
|
|
5312
|
-
this.burnAndStake = function (owner, feePayer, nftMint, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
5313
|
-
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, nftTokenAccount, nftTradingAccount, metadataAccount, collectionMetadata, edition, tokenRecord, burnAndStakeInstruction, err_24;
|
|
5314
|
-
return __generator(this, function (_a) {
|
|
5315
|
-
switch (_a.label) {
|
|
5316
|
-
case 0:
|
|
5317
|
-
preInstructions = [];
|
|
5318
|
-
instructions = [];
|
|
5319
|
-
postInstructions = [];
|
|
5320
|
-
additionalSigners = [];
|
|
5321
|
-
_a.label = 1;
|
|
5322
|
-
case 1:
|
|
5323
|
-
_a.trys.push([1, 3, , 4]);
|
|
5324
|
-
tokenStakeAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("token_stake"), owner.toBuffer()], this.programId)[0];
|
|
5325
|
-
nftTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(nftMint, owner, true);
|
|
5326
|
-
nftTradingAccount = web3_js_1.PublicKey.findProgramAddressSync([
|
|
5327
|
-
Buffer.from("trading"),
|
|
5328
|
-
nftMint.toBuffer(),
|
|
5329
|
-
], this.programId)[0];
|
|
5330
|
-
metadataAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("metadata"), constants_1.METAPLEX_PROGRAM_ID.toBuffer(), nftMint.toBuffer()], constants_1.METAPLEX_PROGRAM_ID)[0];
|
|
5331
|
-
collectionMetadata = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("metadata"), constants_1.METAPLEX_PROGRAM_ID.toBuffer(), poolConfig.nftCollectionAddress.toBuffer()], constants_1.METAPLEX_PROGRAM_ID)[0];
|
|
5332
|
-
edition = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("metadata"), constants_1.METAPLEX_PROGRAM_ID.toBuffer(), nftMint.toBuffer(), Buffer.from("edition")], constants_1.METAPLEX_PROGRAM_ID)[0];
|
|
5333
|
-
tokenRecord = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("metadata"), constants_1.METAPLEX_PROGRAM_ID.toBuffer(), nftMint.toBuffer(), Buffer.from("token_record"), nftTokenAccount.toBuffer()], constants_1.METAPLEX_PROGRAM_ID)[0];
|
|
5334
|
-
return [4, this.program.methods
|
|
5335
|
-
.burnAndStake({})
|
|
5336
|
-
.accounts({
|
|
5337
|
-
owner: owner,
|
|
5338
|
-
feePayer: feePayer,
|
|
5339
|
-
perpetuals: this.perpetuals.publicKey,
|
|
5340
|
-
tokenVault: poolConfig.tokenVault,
|
|
5341
|
-
tokenVaultTokenAccount: poolConfig.tokenVaultTokenAccount,
|
|
5342
|
-
tokenStakeAccount: tokenStakeAccount,
|
|
5343
|
-
metadataAccount: metadataAccount,
|
|
5344
|
-
collectionMetadata: collectionMetadata,
|
|
5345
|
-
edition: edition,
|
|
5346
|
-
tokenRecord: tokenRecord,
|
|
5347
|
-
tradingAccount: nftTradingAccount,
|
|
5348
|
-
transferAuthority: poolConfig.transferAuthority,
|
|
5349
|
-
metadataProgram: constants_1.METAPLEX_PROGRAM_ID,
|
|
5350
|
-
nftMint: nftMint,
|
|
5351
|
-
nftTokenAccount: nftTokenAccount,
|
|
5352
|
-
systemProgram: web3_js_1.SystemProgram.programId,
|
|
5353
|
-
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
5354
|
-
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
|
5355
|
-
eventAuthority: this.eventAuthority.publicKey,
|
|
5356
|
-
program: this.programId
|
|
5357
|
-
})
|
|
5358
|
-
.instruction()];
|
|
5359
|
-
case 2:
|
|
5360
|
-
burnAndStakeInstruction = _a.sent();
|
|
5361
|
-
instructions.push(burnAndStakeInstruction);
|
|
5362
|
-
return [3, 4];
|
|
5363
|
-
case 3:
|
|
5364
|
-
err_24 = _a.sent();
|
|
5365
|
-
console.log("perpClient burnAndStakeInstruction error:: ", err_24);
|
|
5366
|
-
throw err_24;
|
|
5367
|
-
case 4: return [2, {
|
|
5368
|
-
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5369
|
-
additionalSigners: additionalSigners
|
|
5370
|
-
}];
|
|
5371
|
-
}
|
|
5372
|
-
});
|
|
5373
|
-
}); };
|
|
5374
5079
|
this.depositTokenStake = function (owner, feePayer, depositAmount, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
5375
|
-
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, userTokenAccount, depositTokenStakeInstruction,
|
|
5080
|
+
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, userTokenAccount, depositTokenStakeInstruction, err_21;
|
|
5376
5081
|
return __generator(this, function (_a) {
|
|
5377
5082
|
switch (_a.label) {
|
|
5378
5083
|
case 0:
|
|
@@ -5414,9 +5119,9 @@ var PerpetualsClient = (function () {
|
|
|
5414
5119
|
instructions.push(depositTokenStakeInstruction);
|
|
5415
5120
|
return [3, 5];
|
|
5416
5121
|
case 4:
|
|
5417
|
-
|
|
5418
|
-
console.log("perpClient depositStakingInstruction error:: ",
|
|
5419
|
-
throw
|
|
5122
|
+
err_21 = _a.sent();
|
|
5123
|
+
console.log("perpClient depositStakingInstruction error:: ", err_21);
|
|
5124
|
+
throw err_21;
|
|
5420
5125
|
case 5: return [2, {
|
|
5421
5126
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5422
5127
|
additionalSigners: additionalSigners
|
|
@@ -5425,7 +5130,7 @@ var PerpetualsClient = (function () {
|
|
|
5425
5130
|
});
|
|
5426
5131
|
}); };
|
|
5427
5132
|
this.unstakeTokenRequest = function (owner, unstakeAmount, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
5428
|
-
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, unstakeTokenRequestInstruction,
|
|
5133
|
+
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, unstakeTokenRequestInstruction, err_22;
|
|
5429
5134
|
return __generator(this, function (_a) {
|
|
5430
5135
|
switch (_a.label) {
|
|
5431
5136
|
case 0:
|
|
@@ -5454,9 +5159,9 @@ var PerpetualsClient = (function () {
|
|
|
5454
5159
|
instructions.push(unstakeTokenRequestInstruction);
|
|
5455
5160
|
return [3, 4];
|
|
5456
5161
|
case 3:
|
|
5457
|
-
|
|
5458
|
-
console.log("perpClient unstakeTokenRequestInstruction error:: ",
|
|
5459
|
-
throw
|
|
5162
|
+
err_22 = _a.sent();
|
|
5163
|
+
console.log("perpClient unstakeTokenRequestInstruction error:: ", err_22);
|
|
5164
|
+
throw err_22;
|
|
5460
5165
|
case 4: return [2, {
|
|
5461
5166
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5462
5167
|
additionalSigners: additionalSigners
|
|
@@ -5465,7 +5170,7 @@ var PerpetualsClient = (function () {
|
|
|
5465
5170
|
});
|
|
5466
5171
|
}); };
|
|
5467
5172
|
this.unstakeTokenInstant = function (owner, unstakeAmount, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
5468
|
-
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, userTokenAccount, unstakeTokenInstantInstruction,
|
|
5173
|
+
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, userTokenAccount, unstakeTokenInstantInstruction, err_23;
|
|
5469
5174
|
return __generator(this, function (_a) {
|
|
5470
5175
|
switch (_a.label) {
|
|
5471
5176
|
case 0:
|
|
@@ -5506,9 +5211,9 @@ var PerpetualsClient = (function () {
|
|
|
5506
5211
|
instructions.push(unstakeTokenInstantInstruction);
|
|
5507
5212
|
return [3, 5];
|
|
5508
5213
|
case 4:
|
|
5509
|
-
|
|
5510
|
-
console.log("perpClient unstakeTokenInstantInstruction error:: ",
|
|
5511
|
-
throw
|
|
5214
|
+
err_23 = _a.sent();
|
|
5215
|
+
console.log("perpClient unstakeTokenInstantInstruction error:: ", err_23);
|
|
5216
|
+
throw err_23;
|
|
5512
5217
|
case 5: return [2, {
|
|
5513
5218
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5514
5219
|
additionalSigners: additionalSigners
|
|
@@ -5517,7 +5222,7 @@ var PerpetualsClient = (function () {
|
|
|
5517
5222
|
});
|
|
5518
5223
|
}); };
|
|
5519
5224
|
this.withdrawToken = function (owner, withdrawRequestId, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
5520
|
-
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, userTokenAccount, withdrawTokenInstruction,
|
|
5225
|
+
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, userTokenAccount, withdrawTokenInstruction, err_24;
|
|
5521
5226
|
return __generator(this, function (_a) {
|
|
5522
5227
|
switch (_a.label) {
|
|
5523
5228
|
case 0:
|
|
@@ -5558,9 +5263,9 @@ var PerpetualsClient = (function () {
|
|
|
5558
5263
|
instructions.push(withdrawTokenInstruction);
|
|
5559
5264
|
return [3, 5];
|
|
5560
5265
|
case 4:
|
|
5561
|
-
|
|
5562
|
-
console.log("perpClient withdrawTokenInstruction error:: ",
|
|
5563
|
-
throw
|
|
5266
|
+
err_24 = _a.sent();
|
|
5267
|
+
console.log("perpClient withdrawTokenInstruction error:: ", err_24);
|
|
5268
|
+
throw err_24;
|
|
5564
5269
|
case 5: return [2, {
|
|
5565
5270
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5566
5271
|
additionalSigners: additionalSigners
|
|
@@ -5569,7 +5274,7 @@ var PerpetualsClient = (function () {
|
|
|
5569
5274
|
});
|
|
5570
5275
|
}); };
|
|
5571
5276
|
this.cancelUnstakeRequest = function (owner, withdrawRequestId, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
5572
|
-
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, cancelUnstakeRequestInstruction,
|
|
5277
|
+
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, cancelUnstakeRequestInstruction, err_25;
|
|
5573
5278
|
return __generator(this, function (_a) {
|
|
5574
5279
|
switch (_a.label) {
|
|
5575
5280
|
case 0:
|
|
@@ -5598,9 +5303,9 @@ var PerpetualsClient = (function () {
|
|
|
5598
5303
|
instructions.push(cancelUnstakeRequestInstruction);
|
|
5599
5304
|
return [3, 4];
|
|
5600
5305
|
case 3:
|
|
5601
|
-
|
|
5602
|
-
console.log("perpClient cancelUnstakeRequestInstruction error:: ",
|
|
5603
|
-
throw
|
|
5306
|
+
err_25 = _a.sent();
|
|
5307
|
+
console.log("perpClient cancelUnstakeRequestInstruction error:: ", err_25);
|
|
5308
|
+
throw err_25;
|
|
5604
5309
|
case 4: return [2, {
|
|
5605
5310
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5606
5311
|
additionalSigners: additionalSigners
|
|
@@ -5614,7 +5319,7 @@ var PerpetualsClient = (function () {
|
|
|
5614
5319
|
args_1[_i - 2] = arguments[_i];
|
|
5615
5320
|
}
|
|
5616
5321
|
return __awaiter(_this, __spreadArray([owner_1, poolConfig_1], args_1, true), void 0, function (owner, poolConfig, createUserATA) {
|
|
5617
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, userTokenAccount, _a, collectTokenRewardInstruction,
|
|
5322
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, userTokenAccount, _a, collectTokenRewardInstruction, err_26;
|
|
5618
5323
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
5619
5324
|
return __generator(this, function (_b) {
|
|
5620
5325
|
switch (_b.label) {
|
|
@@ -5660,9 +5365,9 @@ var PerpetualsClient = (function () {
|
|
|
5660
5365
|
instructions.push(collectTokenRewardInstruction);
|
|
5661
5366
|
return [3, 6];
|
|
5662
5367
|
case 5:
|
|
5663
|
-
|
|
5664
|
-
console.log("perpClient collectTokenRewardInstruction error:: ",
|
|
5665
|
-
throw
|
|
5368
|
+
err_26 = _b.sent();
|
|
5369
|
+
console.log("perpClient collectTokenRewardInstruction error:: ", err_26);
|
|
5370
|
+
throw err_26;
|
|
5666
5371
|
case 6: return [2, {
|
|
5667
5372
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5668
5373
|
additionalSigners: additionalSigners
|
|
@@ -5677,7 +5382,7 @@ var PerpetualsClient = (function () {
|
|
|
5677
5382
|
args_1[_i - 3] = arguments[_i];
|
|
5678
5383
|
}
|
|
5679
5384
|
return __awaiter(_this, __spreadArray([owner_1, rewardSymbol_1, poolConfig_1], args_1, true), void 0, function (owner, rewardSymbol, poolConfig, createUserATA) {
|
|
5680
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyMint, tokenStakeAccount, userTokenAccount, _a, collectRevenueInstruction,
|
|
5385
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyMint, tokenStakeAccount, userTokenAccount, _a, collectRevenueInstruction, err_27;
|
|
5681
5386
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
5682
5387
|
return __generator(this, function (_b) {
|
|
5683
5388
|
switch (_b.label) {
|
|
@@ -5724,9 +5429,9 @@ var PerpetualsClient = (function () {
|
|
|
5724
5429
|
instructions.push(collectRevenueInstruction);
|
|
5725
5430
|
return [3, 6];
|
|
5726
5431
|
case 5:
|
|
5727
|
-
|
|
5728
|
-
console.log("perpClient collectRevenueInstruction error:: ",
|
|
5729
|
-
throw
|
|
5432
|
+
err_27 = _b.sent();
|
|
5433
|
+
console.log("perpClient collectRevenueInstruction error:: ", err_27);
|
|
5434
|
+
throw err_27;
|
|
5730
5435
|
case 6: return [2, {
|
|
5731
5436
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5732
5437
|
additionalSigners: additionalSigners
|
|
@@ -5735,179 +5440,18 @@ var PerpetualsClient = (function () {
|
|
|
5735
5440
|
});
|
|
5736
5441
|
});
|
|
5737
5442
|
};
|
|
5738
|
-
this.
|
|
5739
|
-
var publicKey, rewardCustodyMint, instructions, additionalSigners, fbNftProgramData, rewardVault, rewardTokenAccount, nftTransferAuthority, initRewardVault, err_32;
|
|
5740
|
-
return __generator(this, function (_a) {
|
|
5741
|
-
switch (_a.label) {
|
|
5742
|
-
case 0:
|
|
5743
|
-
publicKey = this.provider.wallet.publicKey;
|
|
5744
|
-
rewardCustodyMint = poolConfig.getTokenFromSymbol(rewardSymbol).mintKey;
|
|
5745
|
-
instructions = [];
|
|
5746
|
-
additionalSigners = [];
|
|
5747
|
-
_a.label = 1;
|
|
5748
|
-
case 1:
|
|
5749
|
-
_a.trys.push([1, 3, , 4]);
|
|
5750
|
-
fbNftProgramData = web3_js_1.PublicKey.findProgramAddressSync([this.programFbnftReward.programId.toBuffer()], new web3_js_1.PublicKey("BPFLoaderUpgradeab1e11111111111111111111111"))[0];
|
|
5751
|
-
rewardVault = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("reward_vault")], this.programFbnftReward.programId)[0];
|
|
5752
|
-
rewardTokenAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("reward_token_account")], this.programFbnftReward.programId)[0];
|
|
5753
|
-
nftTransferAuthority = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("transfer_authority")], this.programFbnftReward.programId)[0];
|
|
5754
|
-
return [4, this.programFbnftReward.methods
|
|
5755
|
-
.initRewardVault({
|
|
5756
|
-
nftCount: nftCount
|
|
5757
|
-
})
|
|
5758
|
-
.accounts({
|
|
5759
|
-
admin: publicKey,
|
|
5760
|
-
transferAuthority: nftTransferAuthority,
|
|
5761
|
-
rewardVault: rewardVault,
|
|
5762
|
-
rewardMint: rewardCustodyMint,
|
|
5763
|
-
rewardTokenAccount: rewardTokenAccount,
|
|
5764
|
-
collectionMint: collectionMint,
|
|
5765
|
-
programData: fbNftProgramData,
|
|
5766
|
-
systemProgram: web3_js_1.SystemProgram.programId,
|
|
5767
|
-
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
5768
|
-
rent: web3_js_1.SYSVAR_RENT_PUBKEY
|
|
5769
|
-
})
|
|
5770
|
-
.instruction()];
|
|
5771
|
-
case 2:
|
|
5772
|
-
initRewardVault = _a.sent();
|
|
5773
|
-
instructions.push(initRewardVault);
|
|
5774
|
-
return [3, 4];
|
|
5775
|
-
case 3:
|
|
5776
|
-
err_32 = _a.sent();
|
|
5777
|
-
console.log("perpClient InitRewardVault error:: ", err_32);
|
|
5778
|
-
throw err_32;
|
|
5779
|
-
case 4: return [2, {
|
|
5780
|
-
instructions: __spreadArray([], instructions, true),
|
|
5781
|
-
additionalSigners: additionalSigners
|
|
5782
|
-
}];
|
|
5783
|
-
}
|
|
5784
|
-
});
|
|
5785
|
-
}); };
|
|
5786
|
-
this.distributeReward = function (rewardAmount, rewardSymbol, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
5787
|
-
var publicKey, rewardCustodyMint, instructions, additionalSigners, fundingAccount, rewardVault, rewardTokenAccount, distributeReward, err_33;
|
|
5788
|
-
return __generator(this, function (_a) {
|
|
5789
|
-
switch (_a.label) {
|
|
5790
|
-
case 0:
|
|
5791
|
-
publicKey = this.provider.wallet.publicKey;
|
|
5792
|
-
rewardCustodyMint = poolConfig.getTokenFromSymbol(rewardSymbol).mintKey;
|
|
5793
|
-
instructions = [];
|
|
5794
|
-
additionalSigners = [];
|
|
5795
|
-
_a.label = 1;
|
|
5796
|
-
case 1:
|
|
5797
|
-
_a.trys.push([1, 3, , 4]);
|
|
5798
|
-
fundingAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(rewardCustodyMint, publicKey, true);
|
|
5799
|
-
rewardVault = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("reward_vault")], this.programFbnftReward.programId)[0];
|
|
5800
|
-
rewardTokenAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("reward_token_account")], this.programFbnftReward.programId)[0];
|
|
5801
|
-
return [4, this.programFbnftReward.methods
|
|
5802
|
-
.distributeRewards({
|
|
5803
|
-
rewardAmount: rewardAmount
|
|
5804
|
-
})
|
|
5805
|
-
.accounts({
|
|
5806
|
-
admin: publicKey,
|
|
5807
|
-
fundingAccount: fundingAccount,
|
|
5808
|
-
rewardVault: rewardVault,
|
|
5809
|
-
rewardTokenAccount: rewardTokenAccount,
|
|
5810
|
-
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
5811
|
-
})
|
|
5812
|
-
.instruction()];
|
|
5813
|
-
case 2:
|
|
5814
|
-
distributeReward = _a.sent();
|
|
5815
|
-
instructions.push(distributeReward);
|
|
5816
|
-
return [3, 4];
|
|
5817
|
-
case 3:
|
|
5818
|
-
err_33 = _a.sent();
|
|
5819
|
-
console.log("perpClient distributeReward error:: ", err_33);
|
|
5820
|
-
throw err_33;
|
|
5821
|
-
case 4: return [2, {
|
|
5822
|
-
instructions: __spreadArray([], instructions, true),
|
|
5823
|
-
additionalSigners: additionalSigners
|
|
5824
|
-
}];
|
|
5825
|
-
}
|
|
5826
|
-
});
|
|
5827
|
-
}); };
|
|
5828
|
-
this.collectNftReward = function (rewardSymbol_1, poolConfig_1, nftMint_1) {
|
|
5443
|
+
this.collectRebate = function (owner_1, rebateSymbol_1, poolConfig_1) {
|
|
5829
5444
|
var args_1 = [];
|
|
5830
5445
|
for (var _i = 3; _i < arguments.length; _i++) {
|
|
5831
5446
|
args_1[_i - 3] = arguments[_i];
|
|
5832
5447
|
}
|
|
5833
|
-
return __awaiter(_this, __spreadArray([
|
|
5834
|
-
var publicKey,
|
|
5448
|
+
return __awaiter(_this, __spreadArray([owner_1, rebateSymbol_1, poolConfig_1], args_1, true), void 0, function (owner, rebateSymbol, poolConfig, createUserATA) {
|
|
5449
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rebateMint, tokenStakeAccount, userTokenAccount, _a, collectRebateInstruction, err_28;
|
|
5835
5450
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
5836
5451
|
return __generator(this, function (_b) {
|
|
5837
5452
|
switch (_b.label) {
|
|
5838
5453
|
case 0:
|
|
5839
5454
|
publicKey = this.provider.wallet.publicKey;
|
|
5840
|
-
rewardToken = poolConfig.getTokenFromSymbol(rewardSymbol);
|
|
5841
|
-
rewardCustodyMint = rewardToken.mintKey;
|
|
5842
|
-
instructions = [];
|
|
5843
|
-
additionalSigners = [];
|
|
5844
|
-
_b.label = 1;
|
|
5845
|
-
case 1:
|
|
5846
|
-
_b.trys.push([1, 5, , 6]);
|
|
5847
|
-
nftTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(nftMint, publicKey, true);
|
|
5848
|
-
metadataAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("metadata"), constants_1.METAPLEX_PROGRAM_ID.toBuffer(), nftMint.toBuffer()], constants_1.METAPLEX_PROGRAM_ID)[0];
|
|
5849
|
-
receivingTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(rewardCustodyMint, publicKey, true, rewardToken.isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID);
|
|
5850
|
-
_a = createUserATA;
|
|
5851
|
-
if (!_a) return [3, 3];
|
|
5852
|
-
return [4, (0, utils_1.checkIfAccountExists)(receivingTokenAccount, this.provider.connection)];
|
|
5853
|
-
case 2:
|
|
5854
|
-
_a = !(_b.sent());
|
|
5855
|
-
_b.label = 3;
|
|
5856
|
-
case 3:
|
|
5857
|
-
if (_a) {
|
|
5858
|
-
instructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, receivingTokenAccount, publicKey, rewardCustodyMint, rewardToken.isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID));
|
|
5859
|
-
}
|
|
5860
|
-
rewardRecord = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("reward_record"), nftMint.toBuffer()], this.programFbnftReward.programId)[0];
|
|
5861
|
-
rewardVault = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("reward_vault")], this.programFbnftReward.programId)[0];
|
|
5862
|
-
rewardTokenAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("reward_token_account")], this.programFbnftReward.programId)[0];
|
|
5863
|
-
nftTransferAuthority = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("transfer_authority")], this.programFbnftReward.programId)[0];
|
|
5864
|
-
return [4, this.programFbnftReward.methods
|
|
5865
|
-
.collectReward()
|
|
5866
|
-
.accounts({
|
|
5867
|
-
owner: publicKey,
|
|
5868
|
-
feePayer: publicKey,
|
|
5869
|
-
nftMint: nftMint,
|
|
5870
|
-
nftTokenAccount: nftTokenAccount,
|
|
5871
|
-
metadataAccount: metadataAccount,
|
|
5872
|
-
receivingAccount: receivingTokenAccount,
|
|
5873
|
-
rewardRecord: rewardRecord,
|
|
5874
|
-
rewardVault: rewardVault,
|
|
5875
|
-
rewardTokenAccount: rewardTokenAccount,
|
|
5876
|
-
transferAuthority: nftTransferAuthority,
|
|
5877
|
-
systemProgram: web3_js_1.SystemProgram.programId,
|
|
5878
|
-
tokenProgram: rewardToken.isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID,
|
|
5879
|
-
})
|
|
5880
|
-
.instruction()];
|
|
5881
|
-
case 4:
|
|
5882
|
-
collectNftReward = _b.sent();
|
|
5883
|
-
instructions.push(collectNftReward);
|
|
5884
|
-
return [3, 6];
|
|
5885
|
-
case 5:
|
|
5886
|
-
err_34 = _b.sent();
|
|
5887
|
-
throw err_34;
|
|
5888
|
-
case 6: return [2, {
|
|
5889
|
-
instructions: __spreadArray([], instructions, true),
|
|
5890
|
-
additionalSigners: additionalSigners
|
|
5891
|
-
}];
|
|
5892
|
-
}
|
|
5893
|
-
});
|
|
5894
|
-
});
|
|
5895
|
-
};
|
|
5896
|
-
this.collectAndDistributeFee = function (rewardSymbol_1, poolConfig_1) {
|
|
5897
|
-
var args_1 = [];
|
|
5898
|
-
for (var _i = 2; _i < arguments.length; _i++) {
|
|
5899
|
-
args_1[_i - 2] = arguments[_i];
|
|
5900
|
-
}
|
|
5901
|
-
return __awaiter(_this, __spreadArray([rewardSymbol_1, poolConfig_1], args_1, true), void 0, function (rewardSymbol, poolConfig, createUserATA, nftTradingAccount) {
|
|
5902
|
-
var publicKey, rewardToken, rewardCustodyMint, rewardCustodyConfig, preInstructions, instructions, postInstructions, additionalSigners, pool, flpStakeAccount, receivingTokenAccount, _a, tradingAccount, rewardVault, rewardTokenAccount, withdrawStakeInstruction, err_35;
|
|
5903
|
-
if (createUserATA === void 0) { createUserATA = true; }
|
|
5904
|
-
return __generator(this, function (_b) {
|
|
5905
|
-
switch (_b.label) {
|
|
5906
|
-
case 0:
|
|
5907
|
-
publicKey = this.provider.wallet.publicKey;
|
|
5908
|
-
rewardToken = poolConfig.getTokenFromSymbol(rewardSymbol);
|
|
5909
|
-
rewardCustodyMint = rewardToken.mintKey;
|
|
5910
|
-
rewardCustodyConfig = poolConfig.custodies.find(function (i) { return i.mintKey.equals(rewardToken.mintKey); });
|
|
5911
5455
|
preInstructions = [];
|
|
5912
5456
|
instructions = [];
|
|
5913
5457
|
postInstructions = [];
|
|
@@ -5915,59 +5459,43 @@ var PerpetualsClient = (function () {
|
|
|
5915
5459
|
_b.label = 1;
|
|
5916
5460
|
case 1:
|
|
5917
5461
|
_b.trys.push([1, 5, , 6]);
|
|
5918
|
-
|
|
5919
|
-
|
|
5920
|
-
|
|
5462
|
+
rebateMint = poolConfig.getTokenFromSymbol(rebateSymbol).mintKey;
|
|
5463
|
+
tokenStakeAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("token_stake"), owner.toBuffer()], this.programId)[0];
|
|
5464
|
+
userTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(rebateMint, owner, true);
|
|
5921
5465
|
_a = createUserATA;
|
|
5922
5466
|
if (!_a) return [3, 3];
|
|
5923
|
-
return [4, (0, utils_1.checkIfAccountExists)(
|
|
5467
|
+
return [4, (0, utils_1.checkIfAccountExists)(userTokenAccount, this.provider.connection)];
|
|
5924
5468
|
case 2:
|
|
5925
5469
|
_a = !(_b.sent());
|
|
5926
5470
|
_b.label = 3;
|
|
5927
5471
|
case 3:
|
|
5928
5472
|
if (_a) {
|
|
5929
|
-
|
|
5473
|
+
instructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, userTokenAccount, publicKey, rebateMint));
|
|
5930
5474
|
}
|
|
5931
|
-
|
|
5932
|
-
|
|
5933
|
-
tradingAccount.push({
|
|
5934
|
-
pubkey: nftTradingAccount,
|
|
5935
|
-
isSigner: false,
|
|
5936
|
-
isWritable: true,
|
|
5937
|
-
});
|
|
5938
|
-
}
|
|
5939
|
-
rewardVault = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("reward_vault")], this.programFbnftReward.programId)[0];
|
|
5940
|
-
rewardTokenAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("reward_token_account")], this.programFbnftReward.programId)[0];
|
|
5941
|
-
return [4, this.programPerpComposability.methods
|
|
5942
|
-
.collectAndDistributeFee()
|
|
5475
|
+
return [4, this.program.methods
|
|
5476
|
+
.collectRebate()
|
|
5943
5477
|
.accounts({
|
|
5944
|
-
|
|
5945
|
-
|
|
5946
|
-
receivingTokenAccount: receivingTokenAccount,
|
|
5947
|
-
transferAuthority: poolConfig.transferAuthority,
|
|
5478
|
+
owner: owner,
|
|
5479
|
+
receivingTokenAccount: userTokenAccount,
|
|
5948
5480
|
perpetuals: this.perpetuals.publicKey,
|
|
5949
|
-
|
|
5950
|
-
|
|
5951
|
-
|
|
5952
|
-
|
|
5953
|
-
systemProgram: web3_js_1.SystemProgram.programId,
|
|
5481
|
+
transferAuthority: poolConfig.transferAuthority,
|
|
5482
|
+
rebateVault: poolConfig.rebateVault,
|
|
5483
|
+
rebateTokenAccount: poolConfig.rebateTokenAccount,
|
|
5484
|
+
tokenStakeAccount: tokenStakeAccount,
|
|
5954
5485
|
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
5955
5486
|
eventAuthority: this.eventAuthority.publicKey,
|
|
5956
|
-
|
|
5957
|
-
|
|
5958
|
-
rewardVault: rewardVault,
|
|
5959
|
-
rewardTokenAccount: rewardTokenAccount
|
|
5487
|
+
program: this.programId,
|
|
5488
|
+
receivingTokenMint: rebateMint,
|
|
5960
5489
|
})
|
|
5961
|
-
.remainingAccounts(tradingAccount)
|
|
5962
5490
|
.instruction()];
|
|
5963
5491
|
case 4:
|
|
5964
|
-
|
|
5965
|
-
instructions.push(
|
|
5492
|
+
collectRebateInstruction = _b.sent();
|
|
5493
|
+
instructions.push(collectRebateInstruction);
|
|
5966
5494
|
return [3, 6];
|
|
5967
5495
|
case 5:
|
|
5968
|
-
|
|
5969
|
-
console.log("perpClient
|
|
5970
|
-
throw
|
|
5496
|
+
err_28 = _b.sent();
|
|
5497
|
+
console.log("perpClient collectRebateInstruction error:: ", err_28);
|
|
5498
|
+
throw err_28;
|
|
5971
5499
|
case 6: return [2, {
|
|
5972
5500
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5973
5501
|
additionalSigners: additionalSigners
|
|
@@ -5976,13 +5504,60 @@ var PerpetualsClient = (function () {
|
|
|
5976
5504
|
});
|
|
5977
5505
|
});
|
|
5978
5506
|
};
|
|
5507
|
+
this.settleRebates = function (rebateSymbol, rewardSymbol, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
5508
|
+
var preInstructions, instructions, postInstructions, additionalSigners, rewardCustody, rebateMint, settleRebatesInstruction, err_29;
|
|
5509
|
+
return __generator(this, function (_a) {
|
|
5510
|
+
switch (_a.label) {
|
|
5511
|
+
case 0:
|
|
5512
|
+
preInstructions = [];
|
|
5513
|
+
instructions = [];
|
|
5514
|
+
postInstructions = [];
|
|
5515
|
+
additionalSigners = [];
|
|
5516
|
+
_a.label = 1;
|
|
5517
|
+
case 1:
|
|
5518
|
+
_a.trys.push([1, 3, , 4]);
|
|
5519
|
+
rewardCustody = poolConfig.custodies.find(function (i) { return i.mintKey.equals(poolConfig.getTokenFromSymbol(rewardSymbol).mintKey); });
|
|
5520
|
+
rebateMint = poolConfig.getTokenFromSymbol(rebateSymbol).mintKey;
|
|
5521
|
+
return [4, this.program.methods
|
|
5522
|
+
.settleRebates()
|
|
5523
|
+
.accounts({
|
|
5524
|
+
transferAuthority: poolConfig.transferAuthority,
|
|
5525
|
+
perpetuals: this.perpetuals.publicKey,
|
|
5526
|
+
pool: poolConfig.poolAddress,
|
|
5527
|
+
rewardCustody: rewardCustody.custodyAccount,
|
|
5528
|
+
rewardCustodyOracleAccount: this.useExtOracleAccount ? rewardCustody.extOracleAccount : rewardCustody.intOracleAccount,
|
|
5529
|
+
rewardCustodyTokenAccount: rewardCustody.tokenAccount,
|
|
5530
|
+
rebateVault: poolConfig.rebateVault,
|
|
5531
|
+
rebateTokenAccount: poolConfig.rebateTokenAccount,
|
|
5532
|
+
tokenMint: rebateMint,
|
|
5533
|
+
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
5534
|
+
eventAuthority: this.eventAuthority.publicKey,
|
|
5535
|
+
program: this.programId,
|
|
5536
|
+
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY
|
|
5537
|
+
})
|
|
5538
|
+
.instruction()];
|
|
5539
|
+
case 2:
|
|
5540
|
+
settleRebatesInstruction = _a.sent();
|
|
5541
|
+
instructions.push(settleRebatesInstruction);
|
|
5542
|
+
return [3, 4];
|
|
5543
|
+
case 3:
|
|
5544
|
+
err_29 = _a.sent();
|
|
5545
|
+
console.log("perpClient settleRebatesInstruction error:: ", err_29);
|
|
5546
|
+
throw err_29;
|
|
5547
|
+
case 4: return [2, {
|
|
5548
|
+
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5549
|
+
additionalSigners: additionalSigners
|
|
5550
|
+
}];
|
|
5551
|
+
}
|
|
5552
|
+
});
|
|
5553
|
+
}); };
|
|
5979
5554
|
this.placeLimitOrder = function (targetSymbol_1, collateralSymbol_1, reserveSymbol_1, receiveSymbol_1, side_1, limitPrice_1, reserveAmount_1, sizeAmount_1, stopLossPrice_1, takeProfitPrice_1, poolConfig_1) {
|
|
5980
5555
|
var args_1 = [];
|
|
5981
5556
|
for (var _i = 11; _i < arguments.length; _i++) {
|
|
5982
5557
|
args_1[_i - 11] = arguments[_i];
|
|
5983
5558
|
}
|
|
5984
5559
|
return __awaiter(_this, __spreadArray([targetSymbol_1, collateralSymbol_1, reserveSymbol_1, receiveSymbol_1, side_1, limitPrice_1, reserveAmount_1, sizeAmount_1, stopLossPrice_1, takeProfitPrice_1, poolConfig_1], args_1, true), void 0, function (targetSymbol, collateralSymbol, reserveSymbol, receiveSymbol, side, limitPrice, reserveAmount, sizeAmount, stopLossPrice, takeProfitPrice, poolConfig, skipBalanceChecks, ephemeralSignerPubkey) {
|
|
5985
|
-
var publicKey, targetCustodyConfig, reserveCustodyConfig, collateralCustodyConfig, receiveCustodyConfig, marketAccount, userReserveTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, accCreationLamports, lamports, unWrappedSolBalance, _a, tokenAccountBalance, _b, positionAccount, orderAccount, placeLimitOrder,
|
|
5560
|
+
var publicKey, targetCustodyConfig, reserveCustodyConfig, collateralCustodyConfig, receiveCustodyConfig, marketAccount, userReserveTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, accCreationLamports, lamports, unWrappedSolBalance, _a, tokenAccountBalance, _b, positionAccount, orderAccount, placeLimitOrder, err_30;
|
|
5986
5561
|
if (skipBalanceChecks === void 0) { skipBalanceChecks = false; }
|
|
5987
5562
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
5988
5563
|
return __generator(this, function (_c) {
|
|
@@ -6088,9 +5663,9 @@ var PerpetualsClient = (function () {
|
|
|
6088
5663
|
instructions.push(placeLimitOrder);
|
|
6089
5664
|
return [3, 10];
|
|
6090
5665
|
case 9:
|
|
6091
|
-
|
|
6092
|
-
console.log("perpClient placeLimitOrder error:: ",
|
|
6093
|
-
throw
|
|
5666
|
+
err_30 = _c.sent();
|
|
5667
|
+
console.log("perpClient placeLimitOrder error:: ", err_30);
|
|
5668
|
+
throw err_30;
|
|
6094
5669
|
case 10: return [2, {
|
|
6095
5670
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6096
5671
|
additionalSigners: additionalSigners
|
|
@@ -6105,7 +5680,7 @@ var PerpetualsClient = (function () {
|
|
|
6105
5680
|
args_1[_i - 11] = arguments[_i];
|
|
6106
5681
|
}
|
|
6107
5682
|
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) {
|
|
6108
|
-
var publicKey, targetCustodyConfig, reserveCustodyConfig, collateralCustodyConfig, receiveCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, wrappedSolAccount, userReceivingTokenAccount, lamports, _a, positionAccount, orderAccount, editLimitOrder,
|
|
5683
|
+
var publicKey, targetCustodyConfig, reserveCustodyConfig, collateralCustodyConfig, receiveCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, wrappedSolAccount, userReceivingTokenAccount, lamports, _a, positionAccount, orderAccount, editLimitOrder, err_31;
|
|
6109
5684
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
6110
5685
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
6111
5686
|
return __generator(this, function (_b) {
|
|
@@ -6196,9 +5771,9 @@ var PerpetualsClient = (function () {
|
|
|
6196
5771
|
instructions.push(editLimitOrder);
|
|
6197
5772
|
return [3, 8];
|
|
6198
5773
|
case 7:
|
|
6199
|
-
|
|
6200
|
-
console.log("perpClient editLimitOrder error:: ",
|
|
6201
|
-
throw
|
|
5774
|
+
err_31 = _b.sent();
|
|
5775
|
+
console.log("perpClient editLimitOrder error:: ", err_31);
|
|
5776
|
+
throw err_31;
|
|
6202
5777
|
case 8: return [2, {
|
|
6203
5778
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6204
5779
|
additionalSigners: additionalSigners
|
|
@@ -6212,11 +5787,10 @@ var PerpetualsClient = (function () {
|
|
|
6212
5787
|
for (var _i = 7; _i < arguments.length; _i++) {
|
|
6213
5788
|
args_1[_i - 7] = arguments[_i];
|
|
6214
5789
|
}
|
|
6215
|
-
return __awaiter(_this, __spreadArray([userPubkey_1, targetSymbol_1, collateralSymbol_1, side_1, orderId_1, poolConfig_1, privilege_1], args_1, true), void 0, function (userPubkey, targetSymbol, collateralSymbol, side, orderId, poolConfig, privilege, tokenStakeAccount, userReferralAccount
|
|
6216
|
-
var publicKey, targetCustodyConfig, collateralCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, positionAccount, orderAccount, executeLimitOrder,
|
|
5790
|
+
return __awaiter(_this, __spreadArray([userPubkey_1, targetSymbol_1, collateralSymbol_1, side_1, orderId_1, poolConfig_1, privilege_1], args_1, true), void 0, function (userPubkey, targetSymbol, collateralSymbol, side, orderId, poolConfig, privilege, tokenStakeAccount, userReferralAccount) {
|
|
5791
|
+
var publicKey, targetCustodyConfig, collateralCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, positionAccount, orderAccount, executeLimitOrder, err_32;
|
|
6217
5792
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
6218
5793
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
6219
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
6220
5794
|
return __generator(this, function (_a) {
|
|
6221
5795
|
switch (_a.label) {
|
|
6222
5796
|
case 0:
|
|
@@ -6259,16 +5833,16 @@ var PerpetualsClient = (function () {
|
|
|
6259
5833
|
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
|
6260
5834
|
collateralMint: collateralCustodyConfig.mintKey,
|
|
6261
5835
|
})
|
|
6262
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
5836
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
6263
5837
|
.instruction()];
|
|
6264
5838
|
case 2:
|
|
6265
5839
|
executeLimitOrder = _a.sent();
|
|
6266
5840
|
instructions.push(executeLimitOrder);
|
|
6267
5841
|
return [3, 4];
|
|
6268
5842
|
case 3:
|
|
6269
|
-
|
|
6270
|
-
console.log("perpClient executeLimitOrder error:: ",
|
|
6271
|
-
throw
|
|
5843
|
+
err_32 = _a.sent();
|
|
5844
|
+
console.log("perpClient executeLimitOrder error:: ", err_32);
|
|
5845
|
+
throw err_32;
|
|
6272
5846
|
case 4: return [2, {
|
|
6273
5847
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6274
5848
|
additionalSigners: additionalSigners
|
|
@@ -6282,11 +5856,10 @@ var PerpetualsClient = (function () {
|
|
|
6282
5856
|
for (var _i = 8; _i < arguments.length; _i++) {
|
|
6283
5857
|
args_1[_i - 8] = arguments[_i];
|
|
6284
5858
|
}
|
|
6285
|
-
return __awaiter(_this, __spreadArray([userPubkey_1, targetSymbol_1, collateralSymbol_1, reserveSymbol_1, side_1, orderId_1, poolConfig_1, privilege_1], args_1, true), void 0, function (userPubkey, targetSymbol, collateralSymbol, reserveSymbol, side, orderId, poolConfig, privilege, tokenStakeAccount, userReferralAccount
|
|
6286
|
-
var publicKey, targetCustodyConfig, collateralCustodyConfig, reserveCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, positionAccount, orderAccount, executeLimitWithSwap,
|
|
5859
|
+
return __awaiter(_this, __spreadArray([userPubkey_1, targetSymbol_1, collateralSymbol_1, reserveSymbol_1, side_1, orderId_1, poolConfig_1, privilege_1], args_1, true), void 0, function (userPubkey, targetSymbol, collateralSymbol, reserveSymbol, side, orderId, poolConfig, privilege, tokenStakeAccount, userReferralAccount) {
|
|
5860
|
+
var publicKey, targetCustodyConfig, collateralCustodyConfig, reserveCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, positionAccount, orderAccount, executeLimitWithSwap, err_33;
|
|
6287
5861
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
6288
5862
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
6289
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
6290
5863
|
return __generator(this, function (_a) {
|
|
6291
5864
|
switch (_a.label) {
|
|
6292
5865
|
case 0:
|
|
@@ -6332,16 +5905,16 @@ var PerpetualsClient = (function () {
|
|
|
6332
5905
|
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
|
6333
5906
|
collateralMint: collateralCustodyConfig.mintKey,
|
|
6334
5907
|
})
|
|
6335
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
5908
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
6336
5909
|
.instruction()];
|
|
6337
5910
|
case 2:
|
|
6338
5911
|
executeLimitWithSwap = _a.sent();
|
|
6339
5912
|
instructions.push(executeLimitWithSwap);
|
|
6340
5913
|
return [3, 4];
|
|
6341
5914
|
case 3:
|
|
6342
|
-
|
|
6343
|
-
console.log("perpClient executeLimitWithSwap error:: ",
|
|
6344
|
-
throw
|
|
5915
|
+
err_33 = _a.sent();
|
|
5916
|
+
console.log("perpClient executeLimitWithSwap error:: ", err_33);
|
|
5917
|
+
throw err_33;
|
|
6345
5918
|
case 4: return [2, {
|
|
6346
5919
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6347
5920
|
additionalSigners: additionalSigners
|
|
@@ -6351,7 +5924,7 @@ var PerpetualsClient = (function () {
|
|
|
6351
5924
|
});
|
|
6352
5925
|
};
|
|
6353
5926
|
this.placeTriggerOrder = function (targetSymbol, collateralSymbol, receiveSymbol, side, triggerPrice, deltaSizeAmount, isStopLoss, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
6354
|
-
var publicKey, targetCustodyConfig, collateralCustodyConfig, receivingCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, positionAccount, orderAccount, placeTriggerOrder,
|
|
5927
|
+
var publicKey, targetCustodyConfig, collateralCustodyConfig, receivingCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, positionAccount, orderAccount, placeTriggerOrder, err_34;
|
|
6355
5928
|
return __generator(this, function (_a) {
|
|
6356
5929
|
switch (_a.label) {
|
|
6357
5930
|
case 0:
|
|
@@ -6399,9 +5972,9 @@ var PerpetualsClient = (function () {
|
|
|
6399
5972
|
instructions.push(placeTriggerOrder);
|
|
6400
5973
|
return [3, 4];
|
|
6401
5974
|
case 3:
|
|
6402
|
-
|
|
6403
|
-
console.log("perpClient placeTriggerOrder error:: ",
|
|
6404
|
-
throw
|
|
5975
|
+
err_34 = _a.sent();
|
|
5976
|
+
console.log("perpClient placeTriggerOrder error:: ", err_34);
|
|
5977
|
+
throw err_34;
|
|
6405
5978
|
case 4: return [2, {
|
|
6406
5979
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6407
5980
|
additionalSigners: additionalSigners
|
|
@@ -6410,7 +5983,7 @@ var PerpetualsClient = (function () {
|
|
|
6410
5983
|
});
|
|
6411
5984
|
}); };
|
|
6412
5985
|
this.editTriggerOrder = function (targetSymbol, collateralSymbol, receiveSymbol, side, orderId, triggerPrice, deltaSizeAmount, isStopLoss, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
6413
|
-
var publicKey, targetCustodyConfig, collateralCustodyConfig, receivingCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, positionAccount, orderAccount, editTriggerOrder,
|
|
5986
|
+
var publicKey, targetCustodyConfig, collateralCustodyConfig, receivingCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, positionAccount, orderAccount, editTriggerOrder, err_35;
|
|
6414
5987
|
return __generator(this, function (_a) {
|
|
6415
5988
|
switch (_a.label) {
|
|
6416
5989
|
case 0:
|
|
@@ -6457,9 +6030,9 @@ var PerpetualsClient = (function () {
|
|
|
6457
6030
|
instructions.push(editTriggerOrder);
|
|
6458
6031
|
return [3, 4];
|
|
6459
6032
|
case 3:
|
|
6460
|
-
|
|
6461
|
-
console.log("perpClient editTriggerOrder error:: ",
|
|
6462
|
-
throw
|
|
6033
|
+
err_35 = _a.sent();
|
|
6034
|
+
console.log("perpClient editTriggerOrder error:: ", err_35);
|
|
6035
|
+
throw err_35;
|
|
6463
6036
|
case 4: return [2, {
|
|
6464
6037
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6465
6038
|
additionalSigners: additionalSigners
|
|
@@ -6468,7 +6041,7 @@ var PerpetualsClient = (function () {
|
|
|
6468
6041
|
});
|
|
6469
6042
|
}); };
|
|
6470
6043
|
this.cancelTriggerOrder = function (targetSymbol, collateralSymbol, side, orderId, isStopLoss, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
6471
|
-
var publicKey, targetCustodyConfig, collateralCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, orderAccount, cancelTriggerOrder,
|
|
6044
|
+
var publicKey, targetCustodyConfig, collateralCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, orderAccount, cancelTriggerOrder, err_36;
|
|
6472
6045
|
return __generator(this, function (_a) {
|
|
6473
6046
|
switch (_a.label) {
|
|
6474
6047
|
case 0:
|
|
@@ -6501,9 +6074,9 @@ var PerpetualsClient = (function () {
|
|
|
6501
6074
|
instructions.push(cancelTriggerOrder);
|
|
6502
6075
|
return [3, 4];
|
|
6503
6076
|
case 3:
|
|
6504
|
-
|
|
6505
|
-
console.log("perpClient cancelTriggerOrder error:: ",
|
|
6506
|
-
throw
|
|
6077
|
+
err_36 = _a.sent();
|
|
6078
|
+
console.log("perpClient cancelTriggerOrder error:: ", err_36);
|
|
6079
|
+
throw err_36;
|
|
6507
6080
|
case 4: return [2, {
|
|
6508
6081
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6509
6082
|
additionalSigners: additionalSigners
|
|
@@ -6512,7 +6085,7 @@ var PerpetualsClient = (function () {
|
|
|
6512
6085
|
});
|
|
6513
6086
|
}); };
|
|
6514
6087
|
this.cancelAllTriggerOrders = function (targetSymbol, collateralSymbol, side, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
6515
|
-
var publicKey, targetCustodyConfig, collateralCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, orderAccount, positionAccount, cancelAllTriggerOrders,
|
|
6088
|
+
var publicKey, targetCustodyConfig, collateralCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, orderAccount, positionAccount, cancelAllTriggerOrders, err_37;
|
|
6516
6089
|
return __generator(this, function (_a) {
|
|
6517
6090
|
switch (_a.label) {
|
|
6518
6091
|
case 0:
|
|
@@ -6543,9 +6116,9 @@ var PerpetualsClient = (function () {
|
|
|
6543
6116
|
instructions.push(cancelAllTriggerOrders);
|
|
6544
6117
|
return [3, 4];
|
|
6545
6118
|
case 3:
|
|
6546
|
-
|
|
6547
|
-
console.log("perpClient cancelAllTriggerOrders error:: ",
|
|
6548
|
-
throw
|
|
6119
|
+
err_37 = _a.sent();
|
|
6120
|
+
console.log("perpClient cancelAllTriggerOrders error:: ", err_37);
|
|
6121
|
+
throw err_37;
|
|
6549
6122
|
case 4: return [2, {
|
|
6550
6123
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6551
6124
|
additionalSigners: additionalSigners
|
|
@@ -6558,13 +6131,12 @@ var PerpetualsClient = (function () {
|
|
|
6558
6131
|
for (var _i = 9; _i < arguments.length; _i++) {
|
|
6559
6132
|
args_1[_i - 9] = arguments[_i];
|
|
6560
6133
|
}
|
|
6561
|
-
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
|
|
6562
|
-
var payerPubkey, targetCustodyConfig, collateralCustodyConfig, receivingCustodyConfig, marketAccount, userReceivingTokenAccount, userReceivingTokenAccountCollateral, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, collateralToken, receivingToken, _a, _b, positionAccount, orderAccount, custodyAccountMetas, custodyOracleAccountMetas, _c, _d, custody, executeTriggerWithSwap,
|
|
6134
|
+
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) {
|
|
6135
|
+
var payerPubkey, targetCustodyConfig, collateralCustodyConfig, receivingCustodyConfig, marketAccount, userReceivingTokenAccount, userReceivingTokenAccountCollateral, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, collateralToken, receivingToken, _a, _b, positionAccount, orderAccount, custodyAccountMetas, custodyOracleAccountMetas, _c, _d, custody, executeTriggerWithSwap, err_38;
|
|
6563
6136
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
6564
6137
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
6565
6138
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
6566
6139
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
6567
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
6568
6140
|
return __generator(this, function (_e) {
|
|
6569
6141
|
switch (_e.label) {
|
|
6570
6142
|
case 0:
|
|
@@ -6659,16 +6231,16 @@ var PerpetualsClient = (function () {
|
|
|
6659
6231
|
collateralMint: collateralCustodyConfig.mintKey,
|
|
6660
6232
|
collateralTokenProgram: collateralToken.isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID
|
|
6661
6233
|
})
|
|
6662
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
6234
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
6663
6235
|
.instruction()];
|
|
6664
6236
|
case 8:
|
|
6665
6237
|
executeTriggerWithSwap = _e.sent();
|
|
6666
6238
|
instructions.push(executeTriggerWithSwap);
|
|
6667
6239
|
return [3, 10];
|
|
6668
6240
|
case 9:
|
|
6669
|
-
|
|
6670
|
-
console.log("perpClient executeTriggerWithSwap error:: ",
|
|
6671
|
-
throw
|
|
6241
|
+
err_38 = _e.sent();
|
|
6242
|
+
console.log("perpClient executeTriggerWithSwap error:: ", err_38);
|
|
6243
|
+
throw err_38;
|
|
6672
6244
|
case 10: return [2, {
|
|
6673
6245
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6674
6246
|
additionalSigners: additionalSigners
|
|
@@ -6682,13 +6254,12 @@ var PerpetualsClient = (function () {
|
|
|
6682
6254
|
for (var _i = 8; _i < arguments.length; _i++) {
|
|
6683
6255
|
args_1[_i - 8] = arguments[_i];
|
|
6684
6256
|
}
|
|
6685
|
-
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
|
|
6686
|
-
var payerPubkey, targetCustodyConfig, collateralCustodyConfig, marketAccount, userReceivingTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, _a, positionAccount, orderAccount, executeTriggerOrder,
|
|
6257
|
+
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) {
|
|
6258
|
+
var payerPubkey, targetCustodyConfig, collateralCustodyConfig, marketAccount, userReceivingTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, _a, positionAccount, orderAccount, executeTriggerOrder, err_39;
|
|
6687
6259
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
6688
6260
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
6689
6261
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
6690
6262
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
6691
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
6692
6263
|
return __generator(this, function (_b) {
|
|
6693
6264
|
switch (_b.label) {
|
|
6694
6265
|
case 0:
|
|
@@ -6748,16 +6319,16 @@ var PerpetualsClient = (function () {
|
|
|
6748
6319
|
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
|
6749
6320
|
receivingMint: collateralCustodyConfig.mintKey
|
|
6750
6321
|
})
|
|
6751
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
6322
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
6752
6323
|
.instruction()];
|
|
6753
6324
|
case 6:
|
|
6754
6325
|
executeTriggerOrder = _b.sent();
|
|
6755
6326
|
instructions.push(executeTriggerOrder);
|
|
6756
6327
|
return [3, 8];
|
|
6757
6328
|
case 7:
|
|
6758
|
-
|
|
6759
|
-
console.log("perpClient executeTriggerOrder error:: ",
|
|
6760
|
-
throw
|
|
6329
|
+
err_39 = _b.sent();
|
|
6330
|
+
console.log("perpClient executeTriggerOrder error:: ", err_39);
|
|
6331
|
+
throw err_39;
|
|
6761
6332
|
case 8: return [2, {
|
|
6762
6333
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6763
6334
|
additionalSigners: additionalSigners
|
|
@@ -6772,7 +6343,7 @@ var PerpetualsClient = (function () {
|
|
|
6772
6343
|
args_1[_i - 5] = arguments[_i];
|
|
6773
6344
|
}
|
|
6774
6345
|
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) {
|
|
6775
|
-
var userInputCustodyConfig, userOutputCustodyConfig, publicKey, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, userOutputTokenAccount, userInputTokenAccount, wsolAssociatedTokenAccount, wsolATAExist, unWrappedSolBalance, _a, wsolAssociatedTokenAccount, closeWsolATAIns, accCreationLamports, lamports, unWrappedSolBalance, _b, tokenAccountBalance, _c, lamports, _d, custodyAccountMetas, custodyOracleAccountMetas, _e, _f, custody, params, inx, closeWsolATAIns,
|
|
6346
|
+
var userInputCustodyConfig, userOutputCustodyConfig, publicKey, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, userOutputTokenAccount, userInputTokenAccount, wsolAssociatedTokenAccount, wsolATAExist, unWrappedSolBalance, _a, wsolAssociatedTokenAccount, closeWsolATAIns, accCreationLamports, lamports, unWrappedSolBalance, _b, tokenAccountBalance, _c, lamports, _d, custodyAccountMetas, custodyOracleAccountMetas, _e, _f, custody, params, inx, closeWsolATAIns, err_40;
|
|
6776
6347
|
if (useFeesPool === void 0) { useFeesPool = false; }
|
|
6777
6348
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
6778
6349
|
if (unWrapSol === void 0) { unWrapSol = false; }
|
|
@@ -6977,9 +6548,9 @@ var PerpetualsClient = (function () {
|
|
|
6977
6548
|
}
|
|
6978
6549
|
return [3, 20];
|
|
6979
6550
|
case 19:
|
|
6980
|
-
|
|
6981
|
-
console.error("perpClient Swap error:: ",
|
|
6982
|
-
throw
|
|
6551
|
+
err_40 = _g.sent();
|
|
6552
|
+
console.error("perpClient Swap error:: ", err_40);
|
|
6553
|
+
throw err_40;
|
|
6983
6554
|
case 20: return [2, {
|
|
6984
6555
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6985
6556
|
additionalSigners: additionalSigners
|
|
@@ -6989,7 +6560,7 @@ var PerpetualsClient = (function () {
|
|
|
6989
6560
|
});
|
|
6990
6561
|
};
|
|
6991
6562
|
this.swapFeeInternal = function (rewardTokenSymbol, swapTokenSymbol, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
6992
|
-
var rewardCustody, custody, publicKey, preInstructions, instructions, postInstructions, additionalSigners, custodyAccountMetas, custodyOracleAccountMetas, _i, _a, custody_1, params, inx,
|
|
6563
|
+
var rewardCustody, custody, publicKey, preInstructions, instructions, postInstructions, additionalSigners, custodyAccountMetas, custodyOracleAccountMetas, _i, _a, custody_1, params, inx, err_41;
|
|
6993
6564
|
return __generator(this, function (_b) {
|
|
6994
6565
|
switch (_b.label) {
|
|
6995
6566
|
case 0:
|
|
@@ -7034,11 +6605,7 @@ var PerpetualsClient = (function () {
|
|
|
7034
6605
|
rewardCustody: rewardCustody.custodyAccount,
|
|
7035
6606
|
rewardCustodyOracleAccount: this.useExtOracleAccount ? rewardCustody.extOracleAccount : rewardCustody.intOracleAccount,
|
|
7036
6607
|
rewardCustodyTokenAccount: rewardCustody.tokenAccount,
|
|
7037
|
-
custody: custody.custodyAccount,
|
|
7038
|
-
custodyOracleAccount: this.useExtOracleAccount ? custody.extOracleAccount : custody.intOracleAccount,
|
|
7039
|
-
custodyTokenAccount: custody.tokenAccount,
|
|
7040
6608
|
eventAuthority: this.eventAuthority.publicKey,
|
|
7041
|
-
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
7042
6609
|
program: this.programId,
|
|
7043
6610
|
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY
|
|
7044
6611
|
})
|
|
@@ -7049,9 +6616,9 @@ var PerpetualsClient = (function () {
|
|
|
7049
6616
|
instructions.push(inx);
|
|
7050
6617
|
return [3, 4];
|
|
7051
6618
|
case 3:
|
|
7052
|
-
|
|
7053
|
-
console.error("perpClient Swap error:: ",
|
|
7054
|
-
throw
|
|
6619
|
+
err_41 = _b.sent();
|
|
6620
|
+
console.error("perpClient Swap error:: ", err_41);
|
|
6621
|
+
throw err_41;
|
|
7055
6622
|
case 4: return [2, {
|
|
7056
6623
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
7057
6624
|
additionalSigners: additionalSigners
|
|
@@ -7060,7 +6627,7 @@ var PerpetualsClient = (function () {
|
|
|
7060
6627
|
});
|
|
7061
6628
|
}); };
|
|
7062
6629
|
this.setLpTokenPrice = function (poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7063
|
-
var instructions, additionalSigners, custodyAccountMetas, custodyOracleAccountMetas, markets, _i, _a, custody, _b, _c, market, setLpTokenPriceInstruction,
|
|
6630
|
+
var instructions, additionalSigners, custodyAccountMetas, custodyOracleAccountMetas, markets, _i, _a, custody, _b, _c, market, setLpTokenPriceInstruction, err_42;
|
|
7064
6631
|
return __generator(this, function (_d) {
|
|
7065
6632
|
switch (_d.label) {
|
|
7066
6633
|
case 0:
|
|
@@ -7108,9 +6675,9 @@ var PerpetualsClient = (function () {
|
|
|
7108
6675
|
instructions.push(setLpTokenPriceInstruction);
|
|
7109
6676
|
return [3, 4];
|
|
7110
6677
|
case 3:
|
|
7111
|
-
|
|
7112
|
-
console.log("perpClient setLpTokenPriceInstruction error:: ",
|
|
7113
|
-
throw
|
|
6678
|
+
err_42 = _d.sent();
|
|
6679
|
+
console.log("perpClient setLpTokenPriceInstruction error:: ", err_42);
|
|
6680
|
+
throw err_42;
|
|
7114
6681
|
case 4: return [2, {
|
|
7115
6682
|
instructions: __spreadArray([], instructions, true),
|
|
7116
6683
|
additionalSigners: additionalSigners
|
|
@@ -7158,7 +6725,7 @@ var PerpetualsClient = (function () {
|
|
|
7158
6725
|
});
|
|
7159
6726
|
}); };
|
|
7160
6727
|
this.setAdminSigners = function (admins, minSignatures) { return __awaiter(_this, void 0, void 0, function () {
|
|
7161
|
-
var adminMetas, _i, admins_2, admin,
|
|
6728
|
+
var adminMetas, _i, admins_2, admin, err_43;
|
|
7162
6729
|
return __generator(this, function (_a) {
|
|
7163
6730
|
switch (_a.label) {
|
|
7164
6731
|
case 0:
|
|
@@ -7188,16 +6755,16 @@ var PerpetualsClient = (function () {
|
|
|
7188
6755
|
_a.sent();
|
|
7189
6756
|
return [3, 4];
|
|
7190
6757
|
case 3:
|
|
7191
|
-
|
|
6758
|
+
err_43 = _a.sent();
|
|
7192
6759
|
if (this.printErrors) {
|
|
7193
|
-
console.error("setAdminSigners err:",
|
|
6760
|
+
console.error("setAdminSigners err:", err_43);
|
|
7194
6761
|
}
|
|
7195
|
-
throw
|
|
6762
|
+
throw err_43;
|
|
7196
6763
|
case 4: return [2];
|
|
7197
6764
|
}
|
|
7198
6765
|
});
|
|
7199
6766
|
}); };
|
|
7200
|
-
this.addPool = function (name, maxAumUsd, permissions, metadataSymbol, metadataTitle, metadataUri, stakingFeeShareBps, vpVolumeFactor) { return __awaiter(_this, void 0, void 0, function () {
|
|
6767
|
+
this.addPool = function (name, maxAumUsd, permissions, metadataSymbol, metadataTitle, metadataUri, stakingFeeShareBps, vpVolumeFactor, stakingFeeBoostBps, minLpPriceUsd, maxLpPriceUsd, thresholdUsd) { return __awaiter(_this, void 0, void 0, function () {
|
|
7201
6768
|
return __generator(this, function (_a) {
|
|
7202
6769
|
switch (_a.label) {
|
|
7203
6770
|
case 0: return [4, this.program.methods
|
|
@@ -7209,7 +6776,11 @@ var PerpetualsClient = (function () {
|
|
|
7209
6776
|
metadataTitle: metadataTitle,
|
|
7210
6777
|
metadataUri: metadataUri,
|
|
7211
6778
|
stakingFeeShareBps: stakingFeeShareBps,
|
|
7212
|
-
vpVolumeFactor: vpVolumeFactor
|
|
6779
|
+
vpVolumeFactor: vpVolumeFactor,
|
|
6780
|
+
stakingFeeBoostBps: stakingFeeBoostBps,
|
|
6781
|
+
minLpPriceUsd: minLpPriceUsd,
|
|
6782
|
+
maxLpPriceUsd: maxLpPriceUsd,
|
|
6783
|
+
thresholdUsd: thresholdUsd
|
|
7213
6784
|
})
|
|
7214
6785
|
.accounts({
|
|
7215
6786
|
admin: this.provider.wallet.publicKey,
|
|
@@ -7257,7 +6828,7 @@ var PerpetualsClient = (function () {
|
|
|
7257
6828
|
}
|
|
7258
6829
|
});
|
|
7259
6830
|
}); };
|
|
7260
|
-
this.addCustody = function (poolName, tokenMint, isToken222, isStable, isVirtual, oracle, pricing, permissions, fees, borrowRate, ratios, depegAdjustment) { return __awaiter(_this, void 0, void 0, function () {
|
|
6831
|
+
this.addCustody = function (poolName, tokenMint, isToken222, isStable, isVirtual, oracle, pricing, permissions, fees, borrowRate, ratios, depegAdjustment, rewardThreshold, minReserveUsd, limitPriceBufferBps) { return __awaiter(_this, void 0, void 0, function () {
|
|
7261
6832
|
var trx_id, error_3;
|
|
7262
6833
|
return __generator(this, function (_a) {
|
|
7263
6834
|
switch (_a.label) {
|
|
@@ -7275,6 +6846,9 @@ var PerpetualsClient = (function () {
|
|
|
7275
6846
|
fees: fees,
|
|
7276
6847
|
borrowRate: borrowRate,
|
|
7277
6848
|
ratios: ratios,
|
|
6849
|
+
rewardThreshold: rewardThreshold,
|
|
6850
|
+
minReserveUsd: minReserveUsd,
|
|
6851
|
+
limitPriceBufferBps: limitPriceBufferBps
|
|
7278
6852
|
})
|
|
7279
6853
|
.accounts({
|
|
7280
6854
|
admin: this.admin,
|
|
@@ -7381,7 +6955,7 @@ var PerpetualsClient = (function () {
|
|
|
7381
6955
|
});
|
|
7382
6956
|
}); };
|
|
7383
6957
|
this.protocolWithdrawFees = function (rewardSymbol, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7384
|
-
var publicKey, custodyConfig, receivingTokenAccount, instructions, additionalSigners, withdrawFeesIx,
|
|
6958
|
+
var publicKey, custodyConfig, receivingTokenAccount, instructions, additionalSigners, withdrawFeesIx, err_44;
|
|
7385
6959
|
return __generator(this, function (_a) {
|
|
7386
6960
|
switch (_a.label) {
|
|
7387
6961
|
case 0:
|
|
@@ -7414,9 +6988,9 @@ var PerpetualsClient = (function () {
|
|
|
7414
6988
|
instructions.push(withdrawFeesIx);
|
|
7415
6989
|
return [3, 5];
|
|
7416
6990
|
case 4:
|
|
7417
|
-
|
|
7418
|
-
console.log("perpClient setPool error:: ",
|
|
7419
|
-
throw
|
|
6991
|
+
err_44 = _a.sent();
|
|
6992
|
+
console.log("perpClient setPool error:: ", err_44);
|
|
6993
|
+
throw err_44;
|
|
7420
6994
|
case 5: return [2, {
|
|
7421
6995
|
instructions: __spreadArray([], instructions, true),
|
|
7422
6996
|
additionalSigners: additionalSigners
|
|
@@ -7425,7 +6999,7 @@ var PerpetualsClient = (function () {
|
|
|
7425
6999
|
});
|
|
7426
7000
|
}); };
|
|
7427
7001
|
this.moveProtocolFees = function (rewardSymbol, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7428
|
-
var publicKey, custodyConfig, instructions, additionalSigners, moveProtocolFeesIx,
|
|
7002
|
+
var publicKey, custodyConfig, instructions, additionalSigners, moveProtocolFeesIx, err_45;
|
|
7429
7003
|
return __generator(this, function (_a) {
|
|
7430
7004
|
switch (_a.label) {
|
|
7431
7005
|
case 0:
|
|
@@ -7459,9 +7033,9 @@ var PerpetualsClient = (function () {
|
|
|
7459
7033
|
instructions.push(moveProtocolFeesIx);
|
|
7460
7034
|
return [3, 4];
|
|
7461
7035
|
case 3:
|
|
7462
|
-
|
|
7463
|
-
console.log("perpClient setPool error:: ",
|
|
7464
|
-
throw
|
|
7036
|
+
err_45 = _a.sent();
|
|
7037
|
+
console.log("perpClient setPool error:: ", err_45);
|
|
7038
|
+
throw err_45;
|
|
7465
7039
|
case 4: return [2, {
|
|
7466
7040
|
instructions: __spreadArray([], instructions, true),
|
|
7467
7041
|
additionalSigners: additionalSigners
|
|
@@ -7470,7 +7044,7 @@ var PerpetualsClient = (function () {
|
|
|
7470
7044
|
});
|
|
7471
7045
|
}); };
|
|
7472
7046
|
this.setProtocolFeeShareBps = function (feeShareBps, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7473
|
-
var publicKey, setProtocolFeeShareBpsIx,
|
|
7047
|
+
var publicKey, setProtocolFeeShareBpsIx, err_46;
|
|
7474
7048
|
return __generator(this, function (_a) {
|
|
7475
7049
|
switch (_a.label) {
|
|
7476
7050
|
case 0:
|
|
@@ -7490,15 +7064,15 @@ var PerpetualsClient = (function () {
|
|
|
7490
7064
|
setProtocolFeeShareBpsIx = _a.sent();
|
|
7491
7065
|
return [2, setProtocolFeeShareBpsIx];
|
|
7492
7066
|
case 2:
|
|
7493
|
-
|
|
7494
|
-
console.log("perpClient setProtocolFeeShareBpsIx error:: ",
|
|
7495
|
-
throw
|
|
7067
|
+
err_46 = _a.sent();
|
|
7068
|
+
console.log("perpClient setProtocolFeeShareBpsIx error:: ", err_46);
|
|
7069
|
+
throw err_46;
|
|
7496
7070
|
case 3: return [2];
|
|
7497
7071
|
}
|
|
7498
7072
|
});
|
|
7499
7073
|
}); };
|
|
7500
7074
|
this.setPermissions = function (permissions) { return __awaiter(_this, void 0, void 0, function () {
|
|
7501
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, setPermissionsInstruction,
|
|
7075
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, setPermissionsInstruction, err_47;
|
|
7502
7076
|
return __generator(this, function (_a) {
|
|
7503
7077
|
switch (_a.label) {
|
|
7504
7078
|
case 0:
|
|
@@ -7525,9 +7099,9 @@ var PerpetualsClient = (function () {
|
|
|
7525
7099
|
instructions.push(setPermissionsInstruction);
|
|
7526
7100
|
return [3, 4];
|
|
7527
7101
|
case 3:
|
|
7528
|
-
|
|
7529
|
-
console.log("perpClient setPool error:: ",
|
|
7530
|
-
throw
|
|
7102
|
+
err_47 = _a.sent();
|
|
7103
|
+
console.log("perpClient setPool error:: ", err_47);
|
|
7104
|
+
throw err_47;
|
|
7531
7105
|
case 4: return [2, {
|
|
7532
7106
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
7533
7107
|
additionalSigners: additionalSigners
|
|
@@ -7536,7 +7110,7 @@ var PerpetualsClient = (function () {
|
|
|
7536
7110
|
});
|
|
7537
7111
|
}); };
|
|
7538
7112
|
this.reimburse = function (tokenMint, amountIn, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7539
|
-
var custodyAccountMetas, custodyOracleAccountMetas, markets, _i, _a, custody, _b, _c, market, instructions, additionalSigners, custodyConfig, reimburse, _d, _e,
|
|
7113
|
+
var custodyAccountMetas, custodyOracleAccountMetas, markets, _i, _a, custody, _b, _c, market, instructions, additionalSigners, custodyConfig, reimburse, _d, _e, err_48;
|
|
7540
7114
|
var _f;
|
|
7541
7115
|
return __generator(this, function (_g) {
|
|
7542
7116
|
switch (_g.label) {
|
|
@@ -7597,9 +7171,9 @@ var PerpetualsClient = (function () {
|
|
|
7597
7171
|
instructions.push(reimburse);
|
|
7598
7172
|
return [3, 5];
|
|
7599
7173
|
case 4:
|
|
7600
|
-
|
|
7601
|
-
console.log("perpClient setPool error:: ",
|
|
7602
|
-
throw
|
|
7174
|
+
err_48 = _g.sent();
|
|
7175
|
+
console.log("perpClient setPool error:: ", err_48);
|
|
7176
|
+
throw err_48;
|
|
7603
7177
|
case 5: return [2, {
|
|
7604
7178
|
instructions: __spreadArray([], instructions, true),
|
|
7605
7179
|
additionalSigners: additionalSigners
|
|
@@ -7608,7 +7182,7 @@ var PerpetualsClient = (function () {
|
|
|
7608
7182
|
});
|
|
7609
7183
|
}); };
|
|
7610
7184
|
this.setInternalOraclePrice = function (tokenMint, useCurrentTime, price, expo, conf, ema, publishTime, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7611
|
-
var instructions, additionalSigners, custodyConfig, setInternalOraclePrice,
|
|
7185
|
+
var instructions, additionalSigners, custodyConfig, setInternalOraclePrice, err_49;
|
|
7612
7186
|
return __generator(this, function (_a) {
|
|
7613
7187
|
switch (_a.label) {
|
|
7614
7188
|
case 0:
|
|
@@ -7642,9 +7216,9 @@ var PerpetualsClient = (function () {
|
|
|
7642
7216
|
instructions.push(setInternalOraclePrice);
|
|
7643
7217
|
return [3, 4];
|
|
7644
7218
|
case 3:
|
|
7645
|
-
|
|
7646
|
-
console.log("perpClient setInternalOracleAccount error:: ",
|
|
7647
|
-
throw
|
|
7219
|
+
err_49 = _a.sent();
|
|
7220
|
+
console.log("perpClient setInternalOracleAccount error:: ", err_49);
|
|
7221
|
+
throw err_49;
|
|
7648
7222
|
case 4: return [2, {
|
|
7649
7223
|
instructions: __spreadArray([], instructions, true),
|
|
7650
7224
|
additionalSigners: additionalSigners
|
|
@@ -7653,7 +7227,7 @@ var PerpetualsClient = (function () {
|
|
|
7653
7227
|
});
|
|
7654
7228
|
}); };
|
|
7655
7229
|
this.setInternalOraclePriceBatch = function (useCurrentTime, tokenMintList, tokenInternalPrices, POOL_CONFIGS) { return __awaiter(_this, void 0, void 0, function () {
|
|
7656
|
-
var ALL_CUSTODY_CONFIGS, accountMetas, _loop_1, _i, tokenMintList_1, tokenMint, instructions, additionalSigners, setInternalOraclePrice,
|
|
7230
|
+
var ALL_CUSTODY_CONFIGS, accountMetas, _loop_1, _i, tokenMintList_1, tokenMint, instructions, additionalSigners, setInternalOraclePrice, err_50;
|
|
7657
7231
|
return __generator(this, function (_a) {
|
|
7658
7232
|
switch (_a.label) {
|
|
7659
7233
|
case 0:
|
|
@@ -7699,9 +7273,9 @@ var PerpetualsClient = (function () {
|
|
|
7699
7273
|
instructions.push(setInternalOraclePrice);
|
|
7700
7274
|
return [3, 4];
|
|
7701
7275
|
case 3:
|
|
7702
|
-
|
|
7703
|
-
console.log("perpClient setInternalOracleAccount error:: ",
|
|
7704
|
-
throw
|
|
7276
|
+
err_50 = _a.sent();
|
|
7277
|
+
console.log("perpClient setInternalOracleAccount error:: ", err_50);
|
|
7278
|
+
throw err_50;
|
|
7705
7279
|
case 4: return [2, {
|
|
7706
7280
|
instructions: __spreadArray([], instructions, true),
|
|
7707
7281
|
additionalSigners: additionalSigners
|
|
@@ -7710,7 +7284,7 @@ var PerpetualsClient = (function () {
|
|
|
7710
7284
|
});
|
|
7711
7285
|
}); };
|
|
7712
7286
|
this.setInternalOracleEmaPriceBatch = function (tokenMintList, tokenInternalEmaPrices, POOL_CONFIGS) { return __awaiter(_this, void 0, void 0, function () {
|
|
7713
|
-
var ALL_CUSTODY_CONFIGS, accountMetas, _loop_2, _i, tokenMintList_2, tokenMint, instructions, additionalSigners, setInternalOraclePrice,
|
|
7287
|
+
var ALL_CUSTODY_CONFIGS, accountMetas, _loop_2, _i, tokenMintList_2, tokenMint, instructions, additionalSigners, setInternalOraclePrice, err_51;
|
|
7714
7288
|
return __generator(this, function (_a) {
|
|
7715
7289
|
switch (_a.label) {
|
|
7716
7290
|
case 0:
|
|
@@ -7750,9 +7324,9 @@ var PerpetualsClient = (function () {
|
|
|
7750
7324
|
instructions.push(setInternalOraclePrice);
|
|
7751
7325
|
return [3, 4];
|
|
7752
7326
|
case 3:
|
|
7753
|
-
|
|
7754
|
-
console.log("perpClient setInternalOracleAccount error:: ",
|
|
7755
|
-
throw
|
|
7327
|
+
err_51 = _a.sent();
|
|
7328
|
+
console.log("perpClient setInternalOracleAccount error:: ", err_51);
|
|
7329
|
+
throw err_51;
|
|
7756
7330
|
case 4: return [2, {
|
|
7757
7331
|
instructions: __spreadArray([], instructions, true),
|
|
7758
7332
|
additionalSigners: additionalSigners
|
|
@@ -7761,7 +7335,7 @@ var PerpetualsClient = (function () {
|
|
|
7761
7335
|
});
|
|
7762
7336
|
}); };
|
|
7763
7337
|
this.renameFlp = function (flag, lpTokenName, lpTokenSymbol, lpTokenUri, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7764
|
-
var publicKey, instructions, additionalSigners, lpTokenMint, lpMetadataAccount, renameFlp,
|
|
7338
|
+
var publicKey, instructions, additionalSigners, lpTokenMint, lpMetadataAccount, renameFlp, err_52;
|
|
7765
7339
|
return __generator(this, function (_a) {
|
|
7766
7340
|
switch (_a.label) {
|
|
7767
7341
|
case 0:
|
|
@@ -7799,8 +7373,8 @@ var PerpetualsClient = (function () {
|
|
|
7799
7373
|
instructions.push(renameFlp);
|
|
7800
7374
|
return [3, 4];
|
|
7801
7375
|
case 3:
|
|
7802
|
-
|
|
7803
|
-
console.log("perpClient renameFlp error:: ",
|
|
7376
|
+
err_52 = _a.sent();
|
|
7377
|
+
console.log("perpClient renameFlp error:: ", err_52);
|
|
7804
7378
|
return [3, 4];
|
|
7805
7379
|
case 4: return [2, {
|
|
7806
7380
|
instructions: __spreadArray([], instructions, true),
|
|
@@ -7810,7 +7384,7 @@ var PerpetualsClient = (function () {
|
|
|
7810
7384
|
});
|
|
7811
7385
|
}); };
|
|
7812
7386
|
this.initStake = function (stakingFeeShareBps, rewardSymbol, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7813
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, lpTokenMint, stakedLpTokenAccount, rewardCustodyConfig, initStakeInstruction,
|
|
7387
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, lpTokenMint, stakedLpTokenAccount, rewardCustodyConfig, initStakeInstruction, err_53;
|
|
7814
7388
|
return __generator(this, function (_a) {
|
|
7815
7389
|
switch (_a.label) {
|
|
7816
7390
|
case 0:
|
|
@@ -7848,9 +7422,9 @@ var PerpetualsClient = (function () {
|
|
|
7848
7422
|
instructions.push(initStakeInstruction);
|
|
7849
7423
|
return [3, 4];
|
|
7850
7424
|
case 3:
|
|
7851
|
-
|
|
7852
|
-
console.log("perpClient InitStaking error:: ",
|
|
7853
|
-
throw
|
|
7425
|
+
err_53 = _a.sent();
|
|
7426
|
+
console.log("perpClient InitStaking error:: ", err_53);
|
|
7427
|
+
throw err_53;
|
|
7854
7428
|
case 4: return [2, {
|
|
7855
7429
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
7856
7430
|
additionalSigners: additionalSigners
|
|
@@ -7859,7 +7433,7 @@ var PerpetualsClient = (function () {
|
|
|
7859
7433
|
});
|
|
7860
7434
|
}); };
|
|
7861
7435
|
this.initCompounding = function (feeShareBps, metadataTitle, metadataSymbol, metadataUri, rewardSymbol, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7862
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyConfig, compoundingTokenMint, compoundingVault, metadataAccount, initCompoundingInstruction,
|
|
7436
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyConfig, compoundingTokenMint, compoundingVault, metadataAccount, initCompoundingInstruction, err_54;
|
|
7863
7437
|
return __generator(this, function (_a) {
|
|
7864
7438
|
switch (_a.label) {
|
|
7865
7439
|
case 0:
|
|
@@ -7888,7 +7462,6 @@ var PerpetualsClient = (function () {
|
|
|
7888
7462
|
transferAuthority: poolConfig.transferAuthority,
|
|
7889
7463
|
perpetuals: this.perpetuals.publicKey,
|
|
7890
7464
|
pool: poolConfig.poolAddress,
|
|
7891
|
-
custody: rewardCustodyConfig.custodyAccount,
|
|
7892
7465
|
lpTokenMint: poolConfig.stakedLpTokenMint,
|
|
7893
7466
|
compoundingVault: compoundingVault,
|
|
7894
7467
|
compoundingTokenMint: compoundingTokenMint,
|
|
@@ -7904,9 +7477,9 @@ var PerpetualsClient = (function () {
|
|
|
7904
7477
|
instructions.push(initCompoundingInstruction);
|
|
7905
7478
|
return [3, 4];
|
|
7906
7479
|
case 3:
|
|
7907
|
-
|
|
7908
|
-
console.log("perpClient initCompounding error:: ",
|
|
7909
|
-
throw
|
|
7480
|
+
err_54 = _a.sent();
|
|
7481
|
+
console.log("perpClient initCompounding error:: ", err_54);
|
|
7482
|
+
throw err_54;
|
|
7910
7483
|
case 4: return [2, {
|
|
7911
7484
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
7912
7485
|
additionalSigners: additionalSigners
|
|
@@ -7915,7 +7488,7 @@ var PerpetualsClient = (function () {
|
|
|
7915
7488
|
});
|
|
7916
7489
|
}); };
|
|
7917
7490
|
this.initTokenVault = function (token_permissions, tokens_to_distribute, withdrawTimeLimit, withdrawInstantFee, stakeLevel, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7918
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, tokenMint, fundingTokenAccount, initTokenVaultInstruction,
|
|
7491
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, tokenMint, fundingTokenAccount, initTokenVaultInstruction, err_55;
|
|
7919
7492
|
return __generator(this, function (_a) {
|
|
7920
7493
|
switch (_a.label) {
|
|
7921
7494
|
case 0:
|
|
@@ -7956,9 +7529,9 @@ var PerpetualsClient = (function () {
|
|
|
7956
7529
|
instructions.push(initTokenVaultInstruction);
|
|
7957
7530
|
return [3, 4];
|
|
7958
7531
|
case 3:
|
|
7959
|
-
|
|
7960
|
-
console.log("perpClient InitTokenVaultInstruction error:: ",
|
|
7961
|
-
throw
|
|
7532
|
+
err_55 = _a.sent();
|
|
7533
|
+
console.log("perpClient InitTokenVaultInstruction error:: ", err_55);
|
|
7534
|
+
throw err_55;
|
|
7962
7535
|
case 4: return [2, {
|
|
7963
7536
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
7964
7537
|
additionalSigners: additionalSigners
|
|
@@ -7967,7 +7540,7 @@ var PerpetualsClient = (function () {
|
|
|
7967
7540
|
});
|
|
7968
7541
|
}); };
|
|
7969
7542
|
this.setTokenVaultConfig = function (token_permissions, withdrawTimeLimit, withdrawInstantFee, stakeLevel, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7970
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, setTokenVaultConfigInstruction,
|
|
7543
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, setTokenVaultConfigInstruction, err_56;
|
|
7971
7544
|
return __generator(this, function (_a) {
|
|
7972
7545
|
switch (_a.label) {
|
|
7973
7546
|
case 0:
|
|
@@ -7998,9 +7571,9 @@ var PerpetualsClient = (function () {
|
|
|
7998
7571
|
instructions.push(setTokenVaultConfigInstruction);
|
|
7999
7572
|
return [3, 4];
|
|
8000
7573
|
case 3:
|
|
8001
|
-
|
|
8002
|
-
console.log("perpClient setTokenVaultConfigInstruction error:: ",
|
|
8003
|
-
throw
|
|
7574
|
+
err_56 = _a.sent();
|
|
7575
|
+
console.log("perpClient setTokenVaultConfigInstruction error:: ", err_56);
|
|
7576
|
+
throw err_56;
|
|
8004
7577
|
case 4: return [2, {
|
|
8005
7578
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
8006
7579
|
additionalSigners: additionalSigners
|
|
@@ -8009,7 +7582,7 @@ var PerpetualsClient = (function () {
|
|
|
8009
7582
|
});
|
|
8010
7583
|
}); };
|
|
8011
7584
|
this.withdrawInstantFee = function (poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
8012
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, receivingTokenAccount, withdrawInstantFeeInstruction,
|
|
7585
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, receivingTokenAccount, withdrawInstantFeeInstruction, err_57;
|
|
8013
7586
|
return __generator(this, function (_a) {
|
|
8014
7587
|
switch (_a.label) {
|
|
8015
7588
|
case 0:
|
|
@@ -8048,9 +7621,59 @@ var PerpetualsClient = (function () {
|
|
|
8048
7621
|
instructions.push(withdrawInstantFeeInstruction);
|
|
8049
7622
|
return [3, 6];
|
|
8050
7623
|
case 5:
|
|
8051
|
-
|
|
8052
|
-
console.log("perpClient withdrawInstantFeeInstruction error:: ",
|
|
8053
|
-
throw
|
|
7624
|
+
err_57 = _a.sent();
|
|
7625
|
+
console.log("perpClient withdrawInstantFeeInstruction error:: ", err_57);
|
|
7626
|
+
throw err_57;
|
|
7627
|
+
case 6: return [2, {
|
|
7628
|
+
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
7629
|
+
additionalSigners: additionalSigners
|
|
7630
|
+
}];
|
|
7631
|
+
}
|
|
7632
|
+
});
|
|
7633
|
+
}); };
|
|
7634
|
+
this.withdrawUnclaimedTokens = function (poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7635
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, receivingTokenAccount, withdrawUnclaimedTokensInstruction, err_58;
|
|
7636
|
+
return __generator(this, function (_a) {
|
|
7637
|
+
switch (_a.label) {
|
|
7638
|
+
case 0:
|
|
7639
|
+
publicKey = this.provider.wallet.publicKey;
|
|
7640
|
+
preInstructions = [];
|
|
7641
|
+
instructions = [];
|
|
7642
|
+
postInstructions = [];
|
|
7643
|
+
additionalSigners = [];
|
|
7644
|
+
_a.label = 1;
|
|
7645
|
+
case 1:
|
|
7646
|
+
_a.trys.push([1, 5, , 6]);
|
|
7647
|
+
return [4, (0, spl_token_1.getAssociatedTokenAddress)(poolConfig.tokenMint, publicKey, true)];
|
|
7648
|
+
case 2:
|
|
7649
|
+
receivingTokenAccount = _a.sent();
|
|
7650
|
+
return [4, (0, utils_1.checkIfAccountExists)(receivingTokenAccount, this.provider.connection)];
|
|
7651
|
+
case 3:
|
|
7652
|
+
if (!(_a.sent())) {
|
|
7653
|
+
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, receivingTokenAccount, publicKey, poolConfig.tokenMint));
|
|
7654
|
+
}
|
|
7655
|
+
return [4, this.program.methods
|
|
7656
|
+
.withdrawUnclaimedTokens({})
|
|
7657
|
+
.accounts({
|
|
7658
|
+
admin: publicKey,
|
|
7659
|
+
multisig: this.multisig.publicKey,
|
|
7660
|
+
perpetuals: this.perpetuals.publicKey,
|
|
7661
|
+
transferAuthority: poolConfig.transferAuthority,
|
|
7662
|
+
tokenVault: poolConfig.tokenVault,
|
|
7663
|
+
tokenVaultTokenAccount: poolConfig.tokenVaultTokenAccount,
|
|
7664
|
+
receivingTokenAccount: receivingTokenAccount,
|
|
7665
|
+
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
7666
|
+
receivingTokenMint: poolConfig.tokenMint,
|
|
7667
|
+
})
|
|
7668
|
+
.instruction()];
|
|
7669
|
+
case 4:
|
|
7670
|
+
withdrawUnclaimedTokensInstruction = _a.sent();
|
|
7671
|
+
instructions.push(withdrawUnclaimedTokensInstruction);
|
|
7672
|
+
return [3, 6];
|
|
7673
|
+
case 5:
|
|
7674
|
+
err_58 = _a.sent();
|
|
7675
|
+
console.log("perpClient withdrawUnclaimedTokensInstruction error:: ", err_58);
|
|
7676
|
+
throw err_58;
|
|
8054
7677
|
case 6: return [2, {
|
|
8055
7678
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
8056
7679
|
additionalSigners: additionalSigners
|
|
@@ -8059,7 +7682,7 @@ var PerpetualsClient = (function () {
|
|
|
8059
7682
|
});
|
|
8060
7683
|
}); };
|
|
8061
7684
|
this.initRevenueTokenAccount = function (feeShareBps, rewardSymbol, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
8062
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyMint, initRevenueTokenAccountInstruction,
|
|
7685
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyMint, initRevenueTokenAccountInstruction, err_59;
|
|
8063
7686
|
return __generator(this, function (_a) {
|
|
8064
7687
|
switch (_a.label) {
|
|
8065
7688
|
case 0:
|
|
@@ -8096,9 +7719,55 @@ var PerpetualsClient = (function () {
|
|
|
8096
7719
|
instructions.push(initRevenueTokenAccountInstruction);
|
|
8097
7720
|
return [3, 4];
|
|
8098
7721
|
case 3:
|
|
8099
|
-
|
|
8100
|
-
console.log("perpClient initRevenueTokenAccountInstruction error:: ",
|
|
8101
|
-
throw
|
|
7722
|
+
err_59 = _a.sent();
|
|
7723
|
+
console.log("perpClient initRevenueTokenAccountInstruction error:: ", err_59);
|
|
7724
|
+
throw err_59;
|
|
7725
|
+
case 4: return [2, {
|
|
7726
|
+
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
7727
|
+
additionalSigners: additionalSigners
|
|
7728
|
+
}];
|
|
7729
|
+
}
|
|
7730
|
+
});
|
|
7731
|
+
}); };
|
|
7732
|
+
this.initRebateVault = function (allowRebatePayout, rebateSymbol, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7733
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rebateCustodyMint, initRebateVaultInstruction, err_60;
|
|
7734
|
+
return __generator(this, function (_a) {
|
|
7735
|
+
switch (_a.label) {
|
|
7736
|
+
case 0:
|
|
7737
|
+
publicKey = this.provider.wallet.publicKey;
|
|
7738
|
+
preInstructions = [];
|
|
7739
|
+
instructions = [];
|
|
7740
|
+
postInstructions = [];
|
|
7741
|
+
additionalSigners = [];
|
|
7742
|
+
_a.label = 1;
|
|
7743
|
+
case 1:
|
|
7744
|
+
_a.trys.push([1, 3, , 4]);
|
|
7745
|
+
rebateCustodyMint = poolConfig.getTokenFromSymbol(rebateSymbol).mintKey;
|
|
7746
|
+
return [4, this.program.methods
|
|
7747
|
+
.initRebateVault({
|
|
7748
|
+
allowRebatePayout: allowRebatePayout
|
|
7749
|
+
})
|
|
7750
|
+
.accounts({
|
|
7751
|
+
admin: publicKey,
|
|
7752
|
+
multisig: this.multisig.publicKey,
|
|
7753
|
+
transferAuthority: poolConfig.transferAuthority,
|
|
7754
|
+
perpetuals: this.perpetuals.publicKey,
|
|
7755
|
+
rebateMint: rebateCustodyMint,
|
|
7756
|
+
rebateTokenAccount: poolConfig.rebateTokenAccount,
|
|
7757
|
+
rebateVault: poolConfig.rebateVault,
|
|
7758
|
+
systemProgram: web3_js_1.SystemProgram.programId,
|
|
7759
|
+
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
7760
|
+
rent: web3_js_1.SYSVAR_RENT_PUBKEY
|
|
7761
|
+
})
|
|
7762
|
+
.instruction()];
|
|
7763
|
+
case 2:
|
|
7764
|
+
initRebateVaultInstruction = _a.sent();
|
|
7765
|
+
instructions.push(initRebateVaultInstruction);
|
|
7766
|
+
return [3, 4];
|
|
7767
|
+
case 3:
|
|
7768
|
+
err_60 = _a.sent();
|
|
7769
|
+
console.log("perpClient initRebateVaultInstruction error:: ", err_60);
|
|
7770
|
+
throw err_60;
|
|
8102
7771
|
case 4: return [2, {
|
|
8103
7772
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
8104
7773
|
additionalSigners: additionalSigners
|
|
@@ -8107,7 +7776,7 @@ var PerpetualsClient = (function () {
|
|
|
8107
7776
|
});
|
|
8108
7777
|
}); };
|
|
8109
7778
|
this.distributeTokenReward = function (amount, epochCount, rewardSymbol, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
8110
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyMint, fundingTokenAccount, revenueFundingTokenAccount, distributeTokenRewardInstruction,
|
|
7779
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyMint, fundingTokenAccount, revenueFundingTokenAccount, distributeTokenRewardInstruction, err_61;
|
|
8111
7780
|
return __generator(this, function (_a) {
|
|
8112
7781
|
switch (_a.label) {
|
|
8113
7782
|
case 0:
|
|
@@ -8146,9 +7815,9 @@ var PerpetualsClient = (function () {
|
|
|
8146
7815
|
instructions.push(distributeTokenRewardInstruction);
|
|
8147
7816
|
return [3, 4];
|
|
8148
7817
|
case 3:
|
|
8149
|
-
|
|
8150
|
-
console.log("perpClient distributeTokenRewardInstruction error:: ",
|
|
8151
|
-
throw
|
|
7818
|
+
err_61 = _a.sent();
|
|
7819
|
+
console.log("perpClient distributeTokenRewardInstruction error:: ", err_61);
|
|
7820
|
+
throw err_61;
|
|
8152
7821
|
case 4: return [2, {
|
|
8153
7822
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
8154
7823
|
additionalSigners: additionalSigners
|
|
@@ -8157,7 +7826,7 @@ var PerpetualsClient = (function () {
|
|
|
8157
7826
|
});
|
|
8158
7827
|
}); };
|
|
8159
7828
|
this.setTokenStakeLevel = function (owner, stakeLevel) { return __awaiter(_this, void 0, void 0, function () {
|
|
8160
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, setTokenStakeLevelInstruction,
|
|
7829
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, setTokenStakeLevelInstruction, err_62;
|
|
8161
7830
|
return __generator(this, function (_a) {
|
|
8162
7831
|
switch (_a.label) {
|
|
8163
7832
|
case 0:
|
|
@@ -8185,9 +7854,9 @@ var PerpetualsClient = (function () {
|
|
|
8185
7854
|
instructions.push(setTokenStakeLevelInstruction);
|
|
8186
7855
|
return [3, 4];
|
|
8187
7856
|
case 3:
|
|
8188
|
-
|
|
8189
|
-
console.log("perpClient setTokenStakeLevelInstruction error:: ",
|
|
8190
|
-
throw
|
|
7857
|
+
err_62 = _a.sent();
|
|
7858
|
+
console.log("perpClient setTokenStakeLevelInstruction error:: ", err_62);
|
|
7859
|
+
throw err_62;
|
|
8191
7860
|
case 4: return [2, {
|
|
8192
7861
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
8193
7862
|
additionalSigners: additionalSigners
|
|
@@ -8196,7 +7865,7 @@ var PerpetualsClient = (function () {
|
|
|
8196
7865
|
});
|
|
8197
7866
|
}); };
|
|
8198
7867
|
this.setTokenReward = function (owner, amount, epochCount, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
8199
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, setTokenRewardInstruction,
|
|
7868
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, setTokenRewardInstruction, err_63;
|
|
8200
7869
|
return __generator(this, function (_a) {
|
|
8201
7870
|
switch (_a.label) {
|
|
8202
7871
|
case 0:
|
|
@@ -8228,9 +7897,9 @@ var PerpetualsClient = (function () {
|
|
|
8228
7897
|
instructions.push(setTokenRewardInstruction);
|
|
8229
7898
|
return [3, 4];
|
|
8230
7899
|
case 3:
|
|
8231
|
-
|
|
8232
|
-
console.log("perpClient setTokenRewardInstruction error:: ",
|
|
8233
|
-
throw
|
|
7900
|
+
err_63 = _a.sent();
|
|
7901
|
+
console.log("perpClient setTokenRewardInstruction error:: ", err_63);
|
|
7902
|
+
throw err_63;
|
|
8234
7903
|
case 4: return [2, {
|
|
8235
7904
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
8236
7905
|
additionalSigners: additionalSigners
|
|
@@ -8239,7 +7908,7 @@ var PerpetualsClient = (function () {
|
|
|
8239
7908
|
});
|
|
8240
7909
|
}); };
|
|
8241
7910
|
this.resizeInternalOracle = function (extOracle, tokenMint, intOracleAccount) { return __awaiter(_this, void 0, void 0, function () {
|
|
8242
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, resizeInternalOracleInstruction,
|
|
7911
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, resizeInternalOracleInstruction, err_64;
|
|
8243
7912
|
return __generator(this, function (_a) {
|
|
8244
7913
|
switch (_a.label) {
|
|
8245
7914
|
case 0:
|
|
@@ -8268,9 +7937,9 @@ var PerpetualsClient = (function () {
|
|
|
8268
7937
|
instructions.push(resizeInternalOracleInstruction);
|
|
8269
7938
|
return [3, 4];
|
|
8270
7939
|
case 3:
|
|
8271
|
-
|
|
8272
|
-
console.log("perpClient resizeInternalOracleInstruction error:: ",
|
|
8273
|
-
throw
|
|
7940
|
+
err_64 = _a.sent();
|
|
7941
|
+
console.log("perpClient resizeInternalOracleInstruction error:: ", err_64);
|
|
7942
|
+
throw err_64;
|
|
8274
7943
|
case 4: return [2, {
|
|
8275
7944
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
8276
7945
|
additionalSigners: additionalSigners
|