flash-sdk 9.0.0 → 9.0.1-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/MarketAccount.js +1 -1
- package/dist/PerpetualsClient.d.ts +294 -139
- package/dist/PerpetualsClient.js +635 -1023
- package/dist/PoolAccount.d.ts +3 -0
- package/dist/PoolConfig.d.ts +3 -1
- package/dist/PoolConfig.js +4 -2
- package/dist/PoolConfig.json +85 -3261
- package/dist/PositionAccount.d.ts +3 -2
- package/dist/TokenStakeAccount.d.ts +2 -2
- package/dist/TokenStakeAccount.js +2 -2
- package/dist/idl/perpetuals.d.ts +3040 -1712
- package/dist/idl/perpetuals.js +3040 -1712
- 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 +1 -2
- 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,41 @@ 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, swapOutTokenPrice, swapOutTokenEmaPrice, swapOutTokenCustodyAccount, collateralTokenPrice, collateralTokenEmaPrice, collateralTokenCustodyAccount, targetTokenPrice, targetTokenEmaPrice, targetTokenCustodyAccount, swapPoolAumUsdMax, poolConfig, pnlUsd) {
|
|
652
669
|
var finalCollateralAmount = constants_1.BN_ZERO;
|
|
653
670
|
if (!inputDeltaAmount.isZero()) {
|
|
654
671
|
if (inputTokenCustodyAccount.publicKey.equals(collateralTokenCustodyAccount.publicKey)) {
|
|
655
672
|
finalCollateralAmount = inputDeltaAmount;
|
|
656
673
|
}
|
|
657
674
|
else {
|
|
658
|
-
var swapAmountOut = _this.getSwapAmountAndFeesSync(inputDeltaAmount, constants_1.BN_ZERO, poolAccount, inputTokenPrice, inputTokenEmaPrice, inputTokenCustodyAccount, swapOutTokenPrice, swapOutTokenEmaPrice, swapOutTokenCustodyAccount, swapPoolAumUsdMax,
|
|
675
|
+
var swapAmountOut = _this.getSwapAmountAndFeesSync(inputDeltaAmount, constants_1.BN_ZERO, poolAccount, inputTokenPrice, inputTokenEmaPrice, inputTokenCustodyAccount, swapOutTokenPrice, swapOutTokenEmaPrice, swapOutTokenCustodyAccount, swapPoolAumUsdMax, poolConfig).minAmountOut;
|
|
659
676
|
finalCollateralAmount = swapAmountOut;
|
|
660
677
|
}
|
|
661
678
|
}
|
|
@@ -681,9 +698,8 @@ var PerpetualsClient = (function () {
|
|
|
681
698
|
entryOraclePrice.price = _this.getAveragePriceSync(positionEntryPrice.price, positionAccount.sizeAmount, entryOraclePrice.price, sizeDeltaAmount);
|
|
682
699
|
}
|
|
683
700
|
var collateralMinOraclePrice = _this.getMinAndMaxOraclePriceSync(collateralTokenPrice, collateralTokenEmaPrice, collateralTokenCustodyAccount).min;
|
|
684
|
-
var
|
|
685
|
-
var
|
|
686
|
-
var currentCollateralUsdIncludingPnl = currentCollateralUsd.add(pnlUsd).sub(openFeeUsd);
|
|
701
|
+
var finalCollateralUsd = collateralMinOraclePrice.getAssetAmountUsd(finalCollateralAmount, collateralTokenCustodyAccount.decimals);
|
|
702
|
+
var currentCollateralUsdIncludingPnl = finalCollateralUsd.add(pnlUsd).sub(openFeeUsd);
|
|
687
703
|
var sizeAmount = positionAccount.sizeAmount.add(sizeDeltaAmount);
|
|
688
704
|
var sizeAmountUsd = entryOraclePrice.getAssetAmountUsd(sizeAmount, targetTokenCustodyAccount.decimals);
|
|
689
705
|
if (currentCollateralUsdIncludingPnl.gt(constants_1.BN_ZERO)) {
|
|
@@ -693,68 +709,6 @@ var PerpetualsClient = (function () {
|
|
|
693
709
|
return new anchor_1.BN(Number.MAX_SAFE_INTEGER);
|
|
694
710
|
}
|
|
695
711
|
};
|
|
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
712
|
this.getEntryPriceAndFeeSyncV2 = function (positionAccount, marketCorrelation, collateralDeltaAmount, sizeDeltaAmount, side, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, discountBps, enableLogs) {
|
|
759
713
|
if (discountBps === void 0) { discountBps = constants_1.BN_ZERO; }
|
|
760
714
|
if (enableLogs === void 0) { enableLogs = false; }
|
|
@@ -766,8 +720,8 @@ var PerpetualsClient = (function () {
|
|
|
766
720
|
if (positionAccount === null) {
|
|
767
721
|
var data = __assign({}, types_1.DEFAULT_POSITION);
|
|
768
722
|
positionAccount = PositionAccount_1.PositionAccount.from(web3_js_1.PublicKey.default, data);
|
|
769
|
-
var
|
|
770
|
-
positionAccount.sizeUsd =
|
|
723
|
+
var sizeUsd_1 = entryOraclePrice.getAssetAmountUsd(sizeDeltaAmount, targetCustodyAccount.decimals);
|
|
724
|
+
positionAccount.sizeUsd = sizeUsd_1;
|
|
771
725
|
positionAccount.sizeDecimals = targetCustodyAccount.decimals;
|
|
772
726
|
positionAccount.collateralDecimals = collateralCustodyAccount.decimals;
|
|
773
727
|
positionAccount.lockedDecimals = collateralCustodyAccount.decimals;
|
|
@@ -784,12 +738,13 @@ var PerpetualsClient = (function () {
|
|
|
784
738
|
var sizeDeltaUsd = entryOraclePrice.getAssetAmountUsd(sizeDeltaAmount, targetCustodyAccount.decimals);
|
|
785
739
|
positionAccount.sizeUsd = positionAccount.sizeUsd.add(sizeDeltaUsd);
|
|
786
740
|
}
|
|
787
|
-
|
|
741
|
+
var collateralMinMaxPrice = _this.getMinAndMaxOraclePriceSync(collateralPrice, collateralEmaPrice, collateralCustodyAccount);
|
|
742
|
+
var collateralDeltaUsd = collateralMinMaxPrice.min.getAssetAmountUsd(collateralDeltaAmount, collateralCustodyAccount.decimals);
|
|
743
|
+
positionAccount.collateralUsd = positionAccount.collateralUsd.add(collateralDeltaUsd);
|
|
788
744
|
positionAccount.sizeAmount = positionAccount.sizeAmount.add(sizeDeltaAmount);
|
|
789
|
-
var
|
|
790
|
-
var liquidationPrice = _this.
|
|
745
|
+
var lockAndUnsettledFeeUsd = _this.getLockFeeAndUnsettledUsdForPosition(positionAccount, collateralCustodyAccount, currentTimestamp);
|
|
746
|
+
var liquidationPrice = _this.getLiquidationPriceContractHelper(entryOraclePrice, lockAndUnsettledFeeUsd, side, targetCustodyAccount, positionAccount);
|
|
791
747
|
var sizeAmountUsd = entryOraclePrice.getAssetAmountUsd(sizeDeltaAmount, targetCustodyAccount.decimals);
|
|
792
|
-
var collateralTokenMinOraclePrice = _this.getMinAndMaxOraclePriceSync(collateralPrice, collateralEmaPrice, collateralCustodyAccount).min;
|
|
793
748
|
var feeUsd = constants_1.BN_ZERO;
|
|
794
749
|
var feeAmount = constants_1.BN_ZERO;
|
|
795
750
|
var feeUsdAfterDiscount = constants_1.BN_ZERO;
|
|
@@ -798,11 +753,11 @@ var PerpetualsClient = (function () {
|
|
|
798
753
|
}
|
|
799
754
|
else {
|
|
800
755
|
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(
|
|
756
|
+
feeAmount = feeUsd.mul(new anchor_1.BN(Math.pow(10, collateralCustodyAccount.decimals))).div(collateralMinMaxPrice.min.price);
|
|
802
757
|
if (discountBps.gt(constants_1.BN_ZERO)) {
|
|
803
758
|
feeUsdAfterDiscount = feeUsd.mul(discountBps).div(new anchor_1.BN(constants_1.BPS_POWER));
|
|
804
759
|
feeUsdAfterDiscount = feeUsd.sub(feeUsdAfterDiscount);
|
|
805
|
-
feeAmountAfterDiscount = feeUsdAfterDiscount.mul(new anchor_1.BN(Math.pow(10, collateralCustodyAccount.decimals))).div(
|
|
760
|
+
feeAmountAfterDiscount = feeUsdAfterDiscount.mul(new anchor_1.BN(Math.pow(10, collateralCustodyAccount.decimals))).div(collateralMinMaxPrice.min.price);
|
|
806
761
|
}
|
|
807
762
|
else {
|
|
808
763
|
feeUsdAfterDiscount = feeUsd;
|
|
@@ -861,25 +816,26 @@ var PerpetualsClient = (function () {
|
|
|
861
816
|
if (collateralDeltaAmount.isNeg() || sizeDeltaAmount.isNeg()) {
|
|
862
817
|
throw new Error("Delta Amounts cannot be negative ");
|
|
863
818
|
}
|
|
864
|
-
resultingPositionAccount.collateralAmount = resultingPositionAccount.collateralAmount.sub(collateralDeltaAmount);
|
|
865
|
-
resultingPositionAccount.sizeAmount = resultingPositionAccount.sizeAmount.sub(sizeDeltaAmount);
|
|
866
819
|
if (resultingPositionAccount.collateralAmount.isNeg() || resultingPositionAccount.sizeAmount.isNeg()) {
|
|
867
820
|
throw new Error("cannot remove/close more than collateral/Size");
|
|
868
821
|
}
|
|
869
822
|
var sizeUsd = targetPrice.getAssetAmountUsd(sizeDeltaAmount, targetCustodyAccount.decimals);
|
|
870
823
|
var exitOraclePrice = _this.getExitOraclePriceSync(side, targetPrice, targetEmaPrice, targetCustodyAccount, sizeUsd);
|
|
871
|
-
var
|
|
824
|
+
var collateralMinMaxPrice = _this.getMinAndMaxOraclePriceSync(collateralPrice, collateralEmaPrice, collateralCustodyAccount);
|
|
825
|
+
var collateralDeltaUsd = collateralMinMaxPrice.min.getAssetAmountUsd(collateralDeltaAmount, collateralCustodyAccount.decimals);
|
|
826
|
+
resultingPositionAccount.collateralUsd = resultingPositionAccount.collateralUsd.sub(collateralDeltaUsd);
|
|
827
|
+
resultingPositionAccount.sizeAmount = resultingPositionAccount.sizeAmount.sub(sizeDeltaAmount);
|
|
872
828
|
var lockAndUnsettledFeeUsd = _this.getLockFeeAndUnsettledUsdForPosition(resultingPositionAccount, collateralCustodyAccount, currentTimestamp);
|
|
873
|
-
var lockAndUnsettledFee =
|
|
829
|
+
var lockAndUnsettledFee = collateralMinMaxPrice.min.getTokenAmount(lockAndUnsettledFeeUsd, collateralCustodyAccount.decimals);
|
|
874
830
|
var sizeAmountUsd = exitOraclePrice.getAssetAmountUsd(sizeDeltaAmount, targetCustodyAccount.decimals);
|
|
875
831
|
var exitFeeUsd = sizeAmountUsd.mul(targetCustodyAccount.fees.closePosition).div(new anchor_1.BN(constants_1.RATE_POWER));
|
|
876
|
-
var exitFeeAmount =
|
|
832
|
+
var exitFeeAmount = collateralMinMaxPrice.max.getTokenAmount(exitFeeUsd, collateralCustodyAccount.decimals);
|
|
877
833
|
var exitFeeUsdAfterDiscount = constants_1.BN_ZERO;
|
|
878
834
|
var exitFeeAmountAfterDiscount = constants_1.BN_ZERO;
|
|
879
835
|
if (discountBps.gt(constants_1.BN_ZERO)) {
|
|
880
836
|
exitFeeUsdAfterDiscount = exitFeeUsd.mul(discountBps).div(new anchor_1.BN(constants_1.BPS_POWER));
|
|
881
837
|
exitFeeUsdAfterDiscount = exitFeeUsd.sub(exitFeeUsdAfterDiscount);
|
|
882
|
-
exitFeeAmountAfterDiscount =
|
|
838
|
+
exitFeeAmountAfterDiscount = collateralMinMaxPrice.max.getTokenAmount(exitFeeUsdAfterDiscount, collateralCustodyAccount.decimals);
|
|
883
839
|
}
|
|
884
840
|
else {
|
|
885
841
|
exitFeeUsdAfterDiscount = exitFeeUsd;
|
|
@@ -889,7 +845,7 @@ var PerpetualsClient = (function () {
|
|
|
889
845
|
price: positionAccount.entryPrice.price, exponent: new anchor_1.BN(positionAccount.entryPrice.exponent), confidence: constants_1.BN_ZERO, timestamp: constants_1.BN_ZERO
|
|
890
846
|
});
|
|
891
847
|
resultingPositionAccount.sizeUsd = positionEntryOraclePrice.getAssetAmountUsd(resultingPositionAccount.sizeAmount, targetCustodyAccount.decimals);
|
|
892
|
-
var liquidationPrice = _this.
|
|
848
|
+
var liquidationPrice = _this.getLiquidationPriceContractHelper(positionEntryOraclePrice, lockAndUnsettledFeeUsd, side, targetCustodyAccount, positionAccount);
|
|
893
849
|
return {
|
|
894
850
|
exitOraclePrice: exitOraclePrice,
|
|
895
851
|
borrowFeeUsd: lockAndUnsettledFeeUsd,
|
|
@@ -902,13 +858,11 @@ var PerpetualsClient = (function () {
|
|
|
902
858
|
};
|
|
903
859
|
};
|
|
904
860
|
this.getTradeSpread = function (targetCustodyAccount, sizeUsd) {
|
|
905
|
-
if (targetCustodyAccount.pricing.tradeSpreadMax.sub(targetCustodyAccount.pricing.tradeSpreadMin).isZero()
|
|
906
|
-
||
|
|
907
|
-
sizeUsd.isZero()) {
|
|
861
|
+
if (targetCustodyAccount.pricing.tradeSpreadMax.sub(targetCustodyAccount.pricing.tradeSpreadMin).isZero() || sizeUsd.isZero()) {
|
|
908
862
|
return constants_1.BN_ZERO;
|
|
909
863
|
}
|
|
910
864
|
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.
|
|
865
|
+
.div(targetCustodyAccount.pricing.maxPositionSizeUsd);
|
|
912
866
|
var variable = (slope.mul(sizeUsd)).div(new anchor_1.BN(Math.pow(10, (constants_1.RATE_DECIMALS + constants_1.BPS_DECIMALS))));
|
|
913
867
|
var finalSpread = targetCustodyAccount.pricing.tradeSpreadMin.add(variable);
|
|
914
868
|
return finalSpread;
|
|
@@ -923,21 +877,11 @@ var PerpetualsClient = (function () {
|
|
|
923
877
|
var exitOraclePrice = OraclePrice_1.OraclePrice.from({ price: exitPriceBN, exponent: maxPrice.exponent, confidence: maxPrice.confidence, timestamp: maxPrice.timestamp });
|
|
924
878
|
return exitOraclePrice;
|
|
925
879
|
};
|
|
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
880
|
this.getSizeAmountFromLeverageAndCollateral = function (collateralAmtWithFee, leverage, marketToken, collateralToken, side, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, discountBps) {
|
|
936
881
|
if (discountBps === void 0) { discountBps = constants_1.BN_ZERO; }
|
|
937
882
|
var collateralTokenMinPrice = _this.getMinAndMaxPriceSync(collateralPrice, collateralEmaPrice, collateralCustodyAccount).min;
|
|
938
883
|
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);
|
|
884
|
+
var collateralAmtMinUsdUi = new bignumber_js_1.default(collateralAmtWithFee.toString()).dividedBy(Math.pow(10, collateralToken.decimals)).multipliedBy(collateralTokenMinPriceUi);
|
|
941
885
|
var openPosFeeRateUi = new bignumber_js_1.default(targetCustodyAccount.fees.openPosition.toString()).dividedBy(Math.pow(10, constants_1.RATE_DECIMALS));
|
|
942
886
|
if (!discountBps.isZero()) {
|
|
943
887
|
var discountBpsUi = new bignumber_js_1.default(discountBps.toString()).dividedBy(Math.pow(10, constants_1.BPS_DECIMALS));
|
|
@@ -945,20 +889,20 @@ var PerpetualsClient = (function () {
|
|
|
945
889
|
}
|
|
946
890
|
var sizeUsdUi = collateralAmtMinUsdUi.multipliedBy(leverage)
|
|
947
891
|
.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,
|
|
892
|
+
var sizeUsd = (0, utils_1.uiDecimalsToNative)(sizeUsdUi.toString(), constants_1.USD_DECIMALS);
|
|
893
|
+
var entryOraclePrice = _this.getEntryPriceUsdSync(side, targetPrice, targetEmaPrice, targetCustodyAccount, sizeUsd);
|
|
950
894
|
var entryPriceUsdUi = new bignumber_js_1.default(entryOraclePrice.toUiPrice(constants_1.ORACLE_EXPONENT));
|
|
951
895
|
var sizeAmountUi = sizeUsdUi.dividedBy(entryPriceUsdUi);
|
|
952
896
|
return (0, utils_1.uiDecimalsToNative)(sizeAmountUi.toFixed(marketToken.decimals, bignumber_js_1.default.ROUND_DOWN), marketToken.decimals);
|
|
953
897
|
};
|
|
954
|
-
this.getSizeAmountWithSwapSync = function (amountIn, leverage, side, poolAccount, inputTokenPrice, inputTokenEmaPrice, inputTokenCustodyAccount, collateralTokenPrice, collateralTokenEmaPrice, collateralTokenCustodyAccount, swapOutTokenPrice, swapOutTokenEmaPrice, swapOutTokenCustodyAccount, targetTokenPrice, targetTokenEmaPrice, targetTokenCustodyAccount, swapPoolAumUsdMax,
|
|
898
|
+
this.getSizeAmountWithSwapSync = function (amountIn, leverage, side, poolAccount, inputTokenPrice, inputTokenEmaPrice, inputTokenCustodyAccount, collateralTokenPrice, collateralTokenEmaPrice, collateralTokenCustodyAccount, swapOutTokenPrice, swapOutTokenEmaPrice, swapOutTokenCustodyAccount, targetTokenPrice, targetTokenEmaPrice, targetTokenCustodyAccount, swapPoolAumUsdMax, poolConfig, discountBps) {
|
|
955
899
|
if (discountBps === void 0) { discountBps = constants_1.BN_ZERO; }
|
|
956
900
|
var finalCollateralAmount = constants_1.BN_ZERO;
|
|
957
901
|
if (inputTokenCustodyAccount.publicKey.equals(collateralTokenCustodyAccount.publicKey)) {
|
|
958
902
|
finalCollateralAmount = amountIn;
|
|
959
903
|
}
|
|
960
904
|
else {
|
|
961
|
-
var swapAmountOut = _this.getSwapAmountAndFeesSync(amountIn, constants_1.BN_ZERO, poolAccount, inputTokenPrice, inputTokenEmaPrice, inputTokenCustodyAccount, swapOutTokenPrice, swapOutTokenEmaPrice, swapOutTokenCustodyAccount, swapPoolAumUsdMax,
|
|
905
|
+
var swapAmountOut = _this.getSwapAmountAndFeesSync(amountIn, constants_1.BN_ZERO, poolAccount, inputTokenPrice, inputTokenEmaPrice, inputTokenCustodyAccount, swapOutTokenPrice, swapOutTokenEmaPrice, swapOutTokenCustodyAccount, swapPoolAumUsdMax, poolConfig).minAmountOut;
|
|
962
906
|
finalCollateralAmount = swapAmountOut;
|
|
963
907
|
}
|
|
964
908
|
var collateralTokenMinPrice = _this.getMinAndMaxPriceSync(collateralTokenPrice, collateralTokenEmaPrice, collateralTokenCustodyAccount).min;
|
|
@@ -972,8 +916,8 @@ var PerpetualsClient = (function () {
|
|
|
972
916
|
}
|
|
973
917
|
var sizeUsdUi = collateralAmtMinUsdUi.multipliedBy(leverage)
|
|
974
918
|
.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,
|
|
919
|
+
var sizeUsd = (0, utils_1.uiDecimalsToNative)(sizeUsdUi.toFixed(constants_1.USD_DECIMALS), constants_1.USD_DECIMALS);
|
|
920
|
+
var entryOraclePrice = _this.getEntryPriceUsdSync(side, targetTokenPrice, targetTokenEmaPrice, targetTokenCustodyAccount, sizeUsd);
|
|
977
921
|
var entryPriceUsdUi = new bignumber_js_1.default(entryOraclePrice.toUiPrice(constants_1.ORACLE_EXPONENT));
|
|
978
922
|
var sizeAmountUi = sizeUsdUi.dividedBy(entryPriceUsdUi);
|
|
979
923
|
return (0, utils_1.uiDecimalsToNative)(sizeAmountUi.toFixed(targetTokenCustodyAccount.decimals, bignumber_js_1.default.ROUND_DOWN), targetTokenCustodyAccount.decimals);
|
|
@@ -996,7 +940,7 @@ var PerpetualsClient = (function () {
|
|
|
996
940
|
var collateralAmtWithFeeUi = collateralWithFeeUsdUi.dividedBy(collateralTokenMinPriceUi);
|
|
997
941
|
return (0, utils_1.uiDecimalsToNative)(collateralAmtWithFeeUi.toFixed(collateralToken.decimals, bignumber_js_1.default.ROUND_DOWN), collateralToken.decimals);
|
|
998
942
|
};
|
|
999
|
-
this.getCollateralAmountWithSwapSync = function (sizeAmount, leverage, side, poolAccount, inputTokenPrice, inputTokenEmaPrice, inputTokenCustodyAccount, swapOutTokenPrice, swapOutTokenEmaPrice, swapOutTokenCustodyAccount, collateralTokenPrice, collateralTokenEmaPrice, collateralTokenCustodyAccount, targetTokenPrice, targetTokenEmaPrice, targetTokenCustodyAccount, swapPoolAumUsdMax,
|
|
943
|
+
this.getCollateralAmountWithSwapSync = function (sizeAmount, leverage, side, poolAccount, inputTokenPrice, inputTokenEmaPrice, inputTokenCustodyAccount, swapOutTokenPrice, swapOutTokenEmaPrice, swapOutTokenCustodyAccount, collateralTokenPrice, collateralTokenEmaPrice, collateralTokenCustodyAccount, targetTokenPrice, targetTokenEmaPrice, targetTokenCustodyAccount, swapPoolAumUsdMax, poolConfig) {
|
|
1000
944
|
var collateralTokenMinPrice = _this.getMinAndMaxPriceSync(collateralTokenPrice, collateralTokenEmaPrice, collateralTokenCustodyAccount).min;
|
|
1001
945
|
var collateralTokenMinPriceUi = new bignumber_js_1.default(collateralTokenMinPrice.toString()).dividedBy(Math.pow(10, constants_1.USD_DECIMALS));
|
|
1002
946
|
var sizeUsd = targetTokenPrice.getAssetAmountUsd(sizeAmount, targetTokenCustodyAccount.decimals);
|
|
@@ -1013,7 +957,7 @@ var PerpetualsClient = (function () {
|
|
|
1013
957
|
collateralInInputToken = collateralAmountWithFee;
|
|
1014
958
|
}
|
|
1015
959
|
else {
|
|
1016
|
-
collateralInInputToken = _this.getSwapAmountAndFeesSync(constants_1.BN_ZERO, collateralAmountWithFee, poolAccount, inputTokenPrice, inputTokenEmaPrice, inputTokenCustodyAccount, swapOutTokenPrice, swapOutTokenEmaPrice, swapOutTokenCustodyAccount, swapPoolAumUsdMax,
|
|
960
|
+
collateralInInputToken = _this.getSwapAmountAndFeesSync(constants_1.BN_ZERO, collateralAmountWithFee, poolAccount, inputTokenPrice, inputTokenEmaPrice, inputTokenCustodyAccount, swapOutTokenPrice, swapOutTokenEmaPrice, swapOutTokenCustodyAccount, swapPoolAumUsdMax, poolConfig).minAmountIn;
|
|
1017
961
|
}
|
|
1018
962
|
return collateralInInputToken;
|
|
1019
963
|
};
|
|
@@ -1039,10 +983,10 @@ var PerpetualsClient = (function () {
|
|
|
1039
983
|
var decimalPower = new anchor_1.BN(Math.pow(10, targetCustodyAccount.decimals));
|
|
1040
984
|
var closeRatio = (positionDelta.sizeAmount.mul(decimalPower)).div(positionAccount.sizeAmount);
|
|
1041
985
|
positionDelta.sizeUsd = (positionAccount.sizeUsd.mul(closeRatio)).div(decimalPower);
|
|
1042
|
-
positionDelta.unsettledFeesUsd = (positionAccount.unsettledFeesUsd.mul(closeRatio)).div(decimalPower);
|
|
1043
986
|
positionDelta.lockedAmount = (positionAccount.lockedAmount.mul(closeRatio)).div(decimalPower);
|
|
1044
987
|
positionDelta.lockedUsd = (positionAccount.lockedUsd.mul(closeRatio)).div(decimalPower);
|
|
1045
|
-
positionDelta.
|
|
988
|
+
positionDelta.collateralUsd = (positionAccount.collateralUsd.mul(closeRatio)).div(decimalPower);
|
|
989
|
+
positionDelta.unsettledFeesUsd = (positionAccount.unsettledFeesUsd.mul(closeRatio)).div(decimalPower);
|
|
1046
990
|
positionDelta.degenSizeUsd = positionAccount.degenSizeUsd.mul(closeRatio).div(decimalPower);
|
|
1047
991
|
var newPnl = _this.getPnlSync(positionDelta, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, targetCustodyAccount.pricing.delaySeconds, poolConfig);
|
|
1048
992
|
var exitFeeUsd = positionDelta.sizeUsd.mul(targetCustodyAccount.fees.closePosition).div(new anchor_1.BN(constants_1.RATE_POWER));
|
|
@@ -1052,29 +996,29 @@ var PerpetualsClient = (function () {
|
|
|
1052
996
|
}
|
|
1053
997
|
var lockAndUnsettledFeeUsd = _this.getLockFeeAndUnsettledUsdForPosition(positionDelta, collateralCustodyAccount, currentTimestamp);
|
|
1054
998
|
var totalFeesUsd = (exitFeeUsd.add(lockAndUnsettledFeeUsd));
|
|
1055
|
-
var currentCollateralUsd =
|
|
999
|
+
var currentCollateralUsd = positionDelta.collateralUsd;
|
|
1056
1000
|
var liabilityUsd = newPnl.lossUsd.add(totalFeesUsd);
|
|
1057
|
-
var assetsUsd = newPnl.profitUsd.add(currentCollateralUsd);
|
|
1058
|
-
var closeAmount, feesAmount;
|
|
1001
|
+
var assetsUsd = anchor_1.BN.min(newPnl.profitUsd.add(currentCollateralUsd), collateralMinMaxPrice.max.getAssetAmountUsd(positionDelta.lockedAmount, collateralCustodyAccount.decimals));
|
|
1059
1002
|
if (debugLogs) {
|
|
1060
1003
|
console.log("assetsUsd.sub(liabilityUsd):", collateralCustodyAccount.decimals, assetsUsd.toString(), liabilityUsd.toString(), assetsUsd.sub(liabilityUsd).toString());
|
|
1061
1004
|
}
|
|
1005
|
+
var closeAmountUsd, feesAmountUsd;
|
|
1062
1006
|
if (assetsUsd.gte(liabilityUsd)) {
|
|
1063
|
-
|
|
1064
|
-
|
|
1007
|
+
closeAmountUsd = assetsUsd.sub(liabilityUsd);
|
|
1008
|
+
feesAmountUsd = totalFeesUsd;
|
|
1065
1009
|
}
|
|
1066
1010
|
else {
|
|
1067
|
-
|
|
1068
|
-
|
|
1011
|
+
closeAmountUsd = constants_1.BN_ZERO;
|
|
1012
|
+
feesAmountUsd = assetsUsd.sub(newPnl.lossUsd);
|
|
1069
1013
|
}
|
|
1014
|
+
var closeAmount = collateralMinMaxPrice.max.getTokenAmount(closeAmountUsd, collateralCustodyAccount.decimals);
|
|
1070
1015
|
var newPosition = PositionAccount_1.PositionAccount.from(positionAccount.publicKey, __assign({}, positionAccount));
|
|
1071
1016
|
newPosition.sizeAmount = positionAccount.sizeAmount.sub(positionDelta.sizeAmount);
|
|
1072
1017
|
newPosition.sizeUsd = positionAccount.sizeUsd.sub(positionDelta.sizeUsd);
|
|
1073
1018
|
newPosition.lockedUsd = positionAccount.lockedUsd.sub(positionDelta.lockedUsd);
|
|
1074
1019
|
newPosition.lockedAmount = positionAccount.lockedAmount.sub(positionDelta.lockedAmount);
|
|
1075
|
-
newPosition.
|
|
1020
|
+
newPosition.collateralUsd = positionAccount.collateralUsd.sub(positionDelta.collateralUsd);
|
|
1076
1021
|
newPosition.unsettledFeesUsd = positionAccount.unsettledFeesUsd.sub(positionDelta.unsettledFeesUsd);
|
|
1077
|
-
newPosition.collateralUsd = collateralMinMaxPrice.min.getAssetAmountUsd(newPosition.collateralAmount, collateralCustodyAccount.decimals);
|
|
1078
1022
|
newPosition.degenSizeUsd = positionAccount.degenSizeUsd.sub(positionDelta.degenSizeUsd);
|
|
1079
1023
|
var feeUsdWithDiscount = constants_1.BN_ZERO;
|
|
1080
1024
|
var feeUsd = sizeDeltaUsd.mul(targetCustodyAccount.fees.closePosition).div(new anchor_1.BN(constants_1.RATE_POWER));
|
|
@@ -1089,8 +1033,8 @@ var PerpetualsClient = (function () {
|
|
|
1089
1033
|
feeUsdWithDiscount = feeUsdWithDiscount.add(lockAndUnsettledFeeUsd);
|
|
1090
1034
|
if (keepLevSame) {
|
|
1091
1035
|
var collateralAmountReceived = closeAmount;
|
|
1092
|
-
var collateralAmountRecievedUsd =
|
|
1093
|
-
var _a = _this.getMaxWithdrawableAmountSyncInternal(newPosition, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, poolConfig,
|
|
1036
|
+
var collateralAmountRecievedUsd = closeAmountUsd;
|
|
1037
|
+
var _a = _this.getMaxWithdrawableAmountSyncInternal(newPosition, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, poolConfig, closeAmountUsd), maxWithdrawableAmount = _a.maxWithdrawableAmount, diff = _a.diff;
|
|
1094
1038
|
if (debugLogs) {
|
|
1095
1039
|
console.log("maxWithdrawableAmount ", maxWithdrawableAmount.toString(), keepLevSame);
|
|
1096
1040
|
console.log("collateralAmountReceived ", collateralAmountReceived.toString(), keepLevSame);
|
|
@@ -1107,11 +1051,11 @@ var PerpetualsClient = (function () {
|
|
|
1107
1051
|
collateralAmountRecievedUsd = collateralMinMaxPrice.min.getAssetAmountUsd(maxWithdrawableAmount, collateralCustodyAccount.decimals);
|
|
1108
1052
|
}
|
|
1109
1053
|
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
|
-
var
|
|
1111
|
-
var finalLiquidationPrice = _this.
|
|
1054
|
+
var lockAndUnsettledFeeUsdNew = _this.getLockFeeAndUnsettledUsdForPosition(newPosition, collateralCustodyAccount, currentTimestamp);
|
|
1055
|
+
var finalLiquidationPrice = _this.getLiquidationPriceContractHelper(entryPrice, lockAndUnsettledFeeUsdNew, side, targetCustodyAccount, newPosition);
|
|
1112
1056
|
var finalPnl = _this.getPnlSync(newPosition, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, targetCustodyAccount.pricing.delaySeconds, poolConfig);
|
|
1113
1057
|
var finalPnlUsd = finalPnl.profitUsd.sub(finalPnl.lossUsd);
|
|
1114
|
-
var newLev = _this.getLeverageSync(newPosition
|
|
1058
|
+
var newLev = _this.getLeverageSync(newPosition, newPosition.collateralUsd, newPosition.sizeUsd, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, false, poolConfig);
|
|
1115
1059
|
return {
|
|
1116
1060
|
newSizeUsd: newPosition.sizeUsd,
|
|
1117
1061
|
feeUsd: feeUsd,
|
|
@@ -1120,6 +1064,7 @@ var PerpetualsClient = (function () {
|
|
|
1120
1064
|
newLev: newLev,
|
|
1121
1065
|
liquidationPrice: finalLiquidationPrice,
|
|
1122
1066
|
collateralAmountRecieved: collateralAmountReceived,
|
|
1067
|
+
collateralAmountRecievedUsd: collateralAmountRecievedUsd,
|
|
1123
1068
|
newCollateralAmount: newPosition.collateralAmount.add(diff),
|
|
1124
1069
|
newPnl: finalPnlUsd
|
|
1125
1070
|
};
|
|
@@ -1128,8 +1073,8 @@ var PerpetualsClient = (function () {
|
|
|
1128
1073
|
throw "only same leverage is supported for now";
|
|
1129
1074
|
}
|
|
1130
1075
|
};
|
|
1131
|
-
this.getMaxWithdrawableAmountSyncInternal = function (positionAccount, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, poolConfig,
|
|
1132
|
-
if (
|
|
1076
|
+
this.getMaxWithdrawableAmountSyncInternal = function (positionAccount, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, poolConfig, closeAmountUsd, errorBandwidthPercentageUi) {
|
|
1077
|
+
if (closeAmountUsd === void 0) { closeAmountUsd = constants_1.BN_ZERO; }
|
|
1133
1078
|
if (errorBandwidthPercentageUi === void 0) { errorBandwidthPercentageUi = 5; }
|
|
1134
1079
|
if (errorBandwidthPercentageUi > 100 || errorBandwidthPercentageUi < 0) {
|
|
1135
1080
|
throw new Error("errorBandwidthPercentageUi cannot be >100 or <0");
|
|
@@ -1138,24 +1083,25 @@ var PerpetualsClient = (function () {
|
|
|
1138
1083
|
(new anchor_1.BN(targetCustodyAccount.pricing.maxInitDegenLeverage)).mul(new anchor_1.BN(100 - errorBandwidthPercentageUi)).div(new anchor_1.BN(100))
|
|
1139
1084
|
: (new anchor_1.BN(targetCustodyAccount.pricing.maxInitLeverage)).mul(new anchor_1.BN(100 - errorBandwidthPercentageUi)).div(new anchor_1.BN(100));
|
|
1140
1085
|
var profitLoss = _this.getPnlSync(positionAccount, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, targetCustodyAccount.pricing.delaySeconds, poolConfig);
|
|
1141
|
-
var
|
|
1086
|
+
var collateralMinMaxPrice = _this.getMinAndMaxOraclePriceSync(collateralPrice, collateralEmaPrice, collateralCustodyAccount);
|
|
1142
1087
|
var exitFeeUsd = positionAccount.sizeUsd.mul(targetCustodyAccount.fees.closePosition).div(new anchor_1.BN(constants_1.RATE_POWER));
|
|
1143
1088
|
var lockAndUnsettledFeeUsd = _this.getLockFeeAndUnsettledUsdForPosition(positionAccount, collateralCustodyAccount, currentTimestamp);
|
|
1144
1089
|
var lossUsd = profitLoss.lossUsd.add(exitFeeUsd).add(lockAndUnsettledFeeUsd);
|
|
1145
|
-
var currentCollateralUsd =
|
|
1090
|
+
var currentCollateralUsd = positionAccount.collateralUsd.sub(closeAmountUsd);
|
|
1146
1091
|
var availableInitMarginUsd = constants_1.BN_ZERO;
|
|
1147
1092
|
if (profitLoss.lossUsd.lt(currentCollateralUsd)) {
|
|
1148
1093
|
availableInitMarginUsd = currentCollateralUsd.sub(lossUsd);
|
|
1149
1094
|
}
|
|
1150
1095
|
else {
|
|
1151
1096
|
console.log("profitLoss.lossUsd > coll :: should have been liquidated");
|
|
1152
|
-
return { maxWithdrawableAmount: constants_1.BN_ZERO, diff: constants_1.BN_ZERO };
|
|
1097
|
+
return { maxWithdrawableAmount: constants_1.BN_ZERO, maxWithdrawableAmountUsd: constants_1.BN_ZERO, diff: constants_1.BN_ZERO };
|
|
1153
1098
|
}
|
|
1154
1099
|
var maxRemovableCollateralUsd = availableInitMarginUsd.sub(positionAccount.sizeUsd.muln(constants_1.BPS_POWER).div(MAX_INIT_LEVERAGE));
|
|
1155
1100
|
if (maxRemovableCollateralUsd.isNeg()) {
|
|
1156
|
-
return { maxWithdrawableAmount: constants_1.BN_ZERO, diff: constants_1.BN_ZERO };
|
|
1101
|
+
return { maxWithdrawableAmount: constants_1.BN_ZERO, maxWithdrawableAmountUsd: constants_1.BN_ZERO, diff: constants_1.BN_ZERO };
|
|
1157
1102
|
}
|
|
1158
1103
|
var maxWithdrawableAmount = constants_1.BN_ZERO;
|
|
1104
|
+
var maxWithdrawableAmountUsd = constants_1.BN_ZERO;
|
|
1159
1105
|
var diff = constants_1.BN_ZERO;
|
|
1160
1106
|
var remainingCollateralUsd = availableInitMarginUsd.sub(maxRemovableCollateralUsd);
|
|
1161
1107
|
var isDegenMode = positionAccount.isDegenMode();
|
|
@@ -1163,36 +1109,37 @@ var PerpetualsClient = (function () {
|
|
|
1163
1109
|
diff = (new anchor_1.BN(isDegenMode ? targetCustodyAccount.pricing.minDegenCollateralUsd : targetCustodyAccount.pricing.minCollateralUsd)).sub(remainingCollateralUsd);
|
|
1164
1110
|
var updatedMaxRemovableCollateralUsd = maxRemovableCollateralUsd.sub(diff);
|
|
1165
1111
|
if (updatedMaxRemovableCollateralUsd.isNeg()) {
|
|
1166
|
-
return { maxWithdrawableAmount: constants_1.BN_ZERO, diff: constants_1.BN_ZERO };
|
|
1112
|
+
return { maxWithdrawableAmount: constants_1.BN_ZERO, maxWithdrawableAmountUsd: constants_1.BN_ZERO, diff: constants_1.BN_ZERO };
|
|
1167
1113
|
}
|
|
1168
1114
|
else {
|
|
1169
|
-
maxWithdrawableAmount =
|
|
1115
|
+
maxWithdrawableAmount = collateralMinMaxPrice.max.getTokenAmount(updatedMaxRemovableCollateralUsd, collateralCustodyAccount.decimals);
|
|
1116
|
+
maxWithdrawableAmountUsd = updatedMaxRemovableCollateralUsd;
|
|
1170
1117
|
}
|
|
1171
1118
|
}
|
|
1172
1119
|
else {
|
|
1173
|
-
maxWithdrawableAmount =
|
|
1120
|
+
maxWithdrawableAmount = collateralMinMaxPrice.max.getTokenAmount(maxRemovableCollateralUsd, collateralCustodyAccount.decimals);
|
|
1121
|
+
maxWithdrawableAmountUsd = maxRemovableCollateralUsd;
|
|
1174
1122
|
}
|
|
1175
|
-
return { maxWithdrawableAmount: maxWithdrawableAmount, diff: diff };
|
|
1123
|
+
return { maxWithdrawableAmount: maxWithdrawableAmount, maxWithdrawableAmountUsd: maxWithdrawableAmountUsd, diff: diff };
|
|
1176
1124
|
};
|
|
1177
|
-
this.
|
|
1125
|
+
this.getFinalCloseAmountUsdSync = function (positionAccount, marketCorrelation, side, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, poolConfig) {
|
|
1178
1126
|
var position = PositionAccount_1.PositionAccount.from(positionAccount.publicKey, __assign({}, positionAccount));
|
|
1179
1127
|
var collateralMinMaxPrice = _this.getMinAndMaxOraclePriceSync(collateralPrice, collateralEmaPrice, collateralCustodyAccount);
|
|
1180
|
-
var collateralUsd = collateralMinMaxPrice.min.getAssetAmountUsd(position.collateralAmount, collateralCustodyAccount.decimals);
|
|
1181
1128
|
var newPnl = _this.getPnlSync(position, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, targetCustodyAccount.pricing.delaySeconds, poolConfig);
|
|
1182
1129
|
var exitPriceAndFee = _this.getExitPriceAndFeeSync(positionAccount, marketCorrelation, positionAccount.collateralAmount, positionAccount.sizeAmount, side, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp);
|
|
1183
1130
|
var totalFeesUsd = (exitPriceAndFee.exitFeeUsd.add(exitPriceAndFee.borrowFeeUsd));
|
|
1184
1131
|
var liabilityUsd = newPnl.lossUsd.add(totalFeesUsd);
|
|
1185
|
-
var assetsUsd = newPnl.profitUsd.add(collateralMinMaxPrice.
|
|
1186
|
-
var
|
|
1132
|
+
var assetsUsd = anchor_1.BN.min(newPnl.profitUsd.add(positionAccount.collateralUsd), collateralMinMaxPrice.max.getAssetAmountUsd(positionAccount.lockedAmount, collateralCustodyAccount.decimals));
|
|
1133
|
+
var closeAmountUsd, feesAmountUsd;
|
|
1187
1134
|
if (assetsUsd.gt(liabilityUsd)) {
|
|
1188
|
-
|
|
1189
|
-
|
|
1135
|
+
closeAmountUsd = assetsUsd.sub(liabilityUsd);
|
|
1136
|
+
feesAmountUsd = totalFeesUsd;
|
|
1190
1137
|
}
|
|
1191
1138
|
else {
|
|
1192
|
-
|
|
1193
|
-
|
|
1139
|
+
closeAmountUsd = constants_1.BN_ZERO;
|
|
1140
|
+
feesAmountUsd = assetsUsd.sub(newPnl.lossUsd);
|
|
1194
1141
|
}
|
|
1195
|
-
return {
|
|
1142
|
+
return { closeAmountUsd: closeAmountUsd, feesAmountUsd: feesAmountUsd };
|
|
1196
1143
|
};
|
|
1197
1144
|
this.getMaxWithdrawableAmountSync = function (positionAccount, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, poolConfig, errorBandwidthPercentageUi) {
|
|
1198
1145
|
if (errorBandwidthPercentageUi === void 0) { errorBandwidthPercentageUi = 5; }
|
|
@@ -1205,34 +1152,37 @@ var PerpetualsClient = (function () {
|
|
|
1205
1152
|
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
1153
|
if (maxRemoveableCollateralUsdAfterMinRequired.isNeg()) {
|
|
1207
1154
|
console.log("THIS cannot happen but still");
|
|
1208
|
-
return constants_1.BN_ZERO;
|
|
1155
|
+
return { maxWithdrawableAmount: constants_1.BN_ZERO, maxWithdrawableAmountUsd: constants_1.BN_ZERO };
|
|
1209
1156
|
}
|
|
1210
1157
|
var profitLoss = _this.getPnlSync(positionAccount, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, targetCustodyAccount.pricing.delaySeconds, poolConfig);
|
|
1211
|
-
var
|
|
1158
|
+
var collateralMinMaxPrice = _this.getMinAndMaxOraclePriceSync(collateralPrice, collateralEmaPrice, collateralCustodyAccount);
|
|
1212
1159
|
var exitFeeUsd = positionAccount.sizeUsd.mul(targetCustodyAccount.fees.closePosition).div(new anchor_1.BN(constants_1.RATE_POWER));
|
|
1213
1160
|
var lockAndUnsettledFeeUsd = _this.getLockFeeAndUnsettledUsdForPosition(positionAccount, collateralCustodyAccount, currentTimestamp);
|
|
1214
1161
|
var lossUsd = profitLoss.lossUsd.add(exitFeeUsd).add(lockAndUnsettledFeeUsd);
|
|
1215
|
-
var currentCollateralUsd =
|
|
1162
|
+
var currentCollateralUsd = positionAccount.collateralUsd;
|
|
1216
1163
|
var availableInitMarginUsd = constants_1.BN_ZERO;
|
|
1217
1164
|
if (profitLoss.lossUsd.lt(currentCollateralUsd)) {
|
|
1218
1165
|
availableInitMarginUsd = currentCollateralUsd.sub(lossUsd);
|
|
1219
1166
|
}
|
|
1220
1167
|
else {
|
|
1221
1168
|
console.log("profitLoss.lossUsd > coll :: should have been liquidated");
|
|
1222
|
-
return constants_1.BN_ZERO;
|
|
1169
|
+
return { maxWithdrawableAmount: constants_1.BN_ZERO, maxWithdrawableAmountUsd: constants_1.BN_ZERO };
|
|
1223
1170
|
}
|
|
1224
1171
|
var maxRemovableCollateralUsd = availableInitMarginUsd.sub(positionAccount.sizeUsd.muln(constants_1.BPS_POWER).div(MAX_INIT_LEVERAGE));
|
|
1225
1172
|
if (maxRemovableCollateralUsd.isNeg()) {
|
|
1226
|
-
return constants_1.BN_ZERO;
|
|
1173
|
+
return { maxWithdrawableAmount: constants_1.BN_ZERO, maxWithdrawableAmountUsd: constants_1.BN_ZERO };
|
|
1227
1174
|
}
|
|
1228
1175
|
var maxWithdrawableAmount;
|
|
1176
|
+
var maxWithdrawableAmountUsd = constants_1.BN_ZERO;
|
|
1229
1177
|
if (maxRemoveableCollateralUsdAfterMinRequired.lt(maxRemovableCollateralUsd)) {
|
|
1230
|
-
maxWithdrawableAmount =
|
|
1178
|
+
maxWithdrawableAmount = collateralMinMaxPrice.max.getTokenAmount(maxRemoveableCollateralUsdAfterMinRequired, collateralCustodyAccount.decimals);
|
|
1179
|
+
maxWithdrawableAmountUsd = maxRemoveableCollateralUsdAfterMinRequired;
|
|
1231
1180
|
}
|
|
1232
1181
|
else {
|
|
1233
|
-
maxWithdrawableAmount =
|
|
1182
|
+
maxWithdrawableAmount = collateralMinMaxPrice.max.getTokenAmount(maxRemovableCollateralUsd, collateralCustodyAccount.decimals);
|
|
1183
|
+
maxWithdrawableAmountUsd = maxRemovableCollateralUsd;
|
|
1234
1184
|
}
|
|
1235
|
-
return maxWithdrawableAmount;
|
|
1185
|
+
return { maxWithdrawableAmount: maxWithdrawableAmount, maxWithdrawableAmountUsd: maxWithdrawableAmountUsd };
|
|
1236
1186
|
};
|
|
1237
1187
|
this.getCumulativeLockFeeSync = function (custodyAccount, currentTimestamp) {
|
|
1238
1188
|
var cumulativeLockFee = constants_1.BN_ZERO;
|
|
@@ -1286,185 +1236,138 @@ var PerpetualsClient = (function () {
|
|
|
1286
1236
|
var lockedUsd = (sideUsd.mul(maxPayOffBpsNew)).div(new anchor_1.BN(constants_1.BPS_POWER));
|
|
1287
1237
|
return lockedUsd;
|
|
1288
1238
|
};
|
|
1289
|
-
this.
|
|
1239
|
+
this.getLiquidationPriceContractHelper = function (entryOraclePrice, lockAndUnsettledFeeUsd, side, targetCustodyAccount, positionAccount) {
|
|
1290
1240
|
var zeroOraclePrice = OraclePrice_1.OraclePrice.from({
|
|
1291
1241
|
price: constants_1.BN_ZERO,
|
|
1292
1242
|
exponent: constants_1.BN_ZERO,
|
|
1293
1243
|
confidence: constants_1.BN_ZERO,
|
|
1294
1244
|
timestamp: constants_1.BN_ZERO
|
|
1295
1245
|
});
|
|
1296
|
-
if (collateralAmount.isZero() || sizeAmount.isZero()) {
|
|
1297
|
-
return zeroOraclePrice;
|
|
1298
|
-
}
|
|
1299
1246
|
if (positionAccount.entryPrice.exponent && !entryOraclePrice.exponent.eq(new anchor_1.BN(positionAccount.entryPrice.exponent))) {
|
|
1300
1247
|
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
1248
|
}
|
|
1302
1249
|
var exitFeeUsd = positionAccount.sizeUsd.mul(targetCustodyAccount.fees.closePosition).div(new anchor_1.BN(constants_1.RATE_POWER));
|
|
1303
1250
|
var unsettledLossUsd = exitFeeUsd.add(lockAndUnsettledFeeUsd);
|
|
1304
1251
|
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
1252
|
var liquidationPrice;
|
|
1308
|
-
if (
|
|
1309
|
-
var
|
|
1310
|
-
|
|
1311
|
-
|
|
1253
|
+
if (positionAccount.collateralUsd.gte(liablitiesUsd)) {
|
|
1254
|
+
var priceDiffLossOracle = OraclePrice_1.OraclePrice.from({
|
|
1255
|
+
price: (positionAccount.collateralUsd.sub(liablitiesUsd)).mul(new anchor_1.BN(Math.pow(10, (positionAccount.sizeDecimals + 3))))
|
|
1256
|
+
.div(positionAccount.sizeAmount),
|
|
1257
|
+
exponent: new anchor_1.BN(-1 * constants_1.RATE_DECIMALS),
|
|
1258
|
+
confidence: constants_1.BN_ZERO,
|
|
1259
|
+
timestamp: constants_1.BN_ZERO
|
|
1260
|
+
}).scale_to_exponent(new anchor_1.BN(entryOraclePrice.exponent));
|
|
1261
|
+
if ((0, types_1.isVariant)(side, 'long')) {
|
|
1262
|
+
liquidationPrice = OraclePrice_1.OraclePrice.from({
|
|
1263
|
+
price: entryOraclePrice.price.sub(priceDiffLossOracle.price),
|
|
1264
|
+
exponent: new anchor_1.BN(entryOraclePrice.exponent),
|
|
1265
|
+
confidence: constants_1.BN_ZERO,
|
|
1266
|
+
timestamp: constants_1.BN_ZERO
|
|
1267
|
+
});
|
|
1312
1268
|
}
|
|
1313
1269
|
else {
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1270
|
+
liquidationPrice = OraclePrice_1.OraclePrice.from({
|
|
1271
|
+
price: entryOraclePrice.price.add(priceDiffLossOracle.price),
|
|
1272
|
+
exponent: new anchor_1.BN(entryOraclePrice.exponent),
|
|
1273
|
+
confidence: constants_1.BN_ZERO,
|
|
1274
|
+
timestamp: constants_1.BN_ZERO
|
|
1275
|
+
});
|
|
1317
1276
|
}
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1277
|
+
}
|
|
1278
|
+
else {
|
|
1279
|
+
var priceDiffProfitOracle = OraclePrice_1.OraclePrice.from({
|
|
1280
|
+
price: (liablitiesUsd.sub(positionAccount.collateralUsd)).mul(new anchor_1.BN(Math.pow(10, (positionAccount.sizeDecimals + 3))))
|
|
1281
|
+
.div(positionAccount.sizeAmount),
|
|
1321
1282
|
exponent: new anchor_1.BN(-1 * constants_1.RATE_DECIMALS),
|
|
1322
1283
|
confidence: constants_1.BN_ZERO,
|
|
1323
1284
|
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),
|
|
1285
|
+
}).scale_to_exponent(new anchor_1.BN(entryOraclePrice.exponent));
|
|
1286
|
+
if ((0, types_1.isVariant)(side, 'long')) {
|
|
1287
|
+
liquidationPrice = OraclePrice_1.OraclePrice.from({
|
|
1288
|
+
price: entryOraclePrice.price.add(priceDiffProfitOracle.price),
|
|
1289
|
+
exponent: new anchor_1.BN(entryOraclePrice.exponent),
|
|
1334
1290
|
confidence: constants_1.BN_ZERO,
|
|
1335
1291
|
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
|
-
}
|
|
1292
|
+
});
|
|
1353
1293
|
}
|
|
1354
1294
|
else {
|
|
1355
|
-
|
|
1356
|
-
price:
|
|
1357
|
-
|
|
1358
|
-
exponent: new anchor_1.BN(-1 * constants_1.RATE_DECIMALS),
|
|
1295
|
+
liquidationPrice = OraclePrice_1.OraclePrice.from({
|
|
1296
|
+
price: entryOraclePrice.price.sub(priceDiffProfitOracle.price),
|
|
1297
|
+
exponent: new anchor_1.BN(entryOraclePrice.exponent),
|
|
1359
1298
|
confidence: constants_1.BN_ZERO,
|
|
1360
1299
|
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
|
-
}
|
|
1300
|
+
});
|
|
1378
1301
|
}
|
|
1379
1302
|
}
|
|
1380
1303
|
return liquidationPrice.price.isNeg() ? zeroOraclePrice : liquidationPrice;
|
|
1381
1304
|
};
|
|
1382
|
-
this.
|
|
1305
|
+
this.getLiquidationPriceSync = function (collateralUsd, sizeAmount, entryOraclePrice, lockAndUnsettledFeeUsd, side, targetPrice, targetCustodyAccount, positionAccount) {
|
|
1306
|
+
var newPositionAccount = positionAccount.clone();
|
|
1307
|
+
newPositionAccount.sizeAmount = sizeAmount;
|
|
1308
|
+
newPositionAccount.sizeUsd = targetPrice.getAssetAmountUsd(sizeAmount, targetCustodyAccount.decimals);
|
|
1309
|
+
newPositionAccount.collateralUsd = collateralUsd;
|
|
1310
|
+
return _this.getLiquidationPriceContractHelper(entryOraclePrice, lockAndUnsettledFeeUsd, side, targetCustodyAccount, newPositionAccount);
|
|
1311
|
+
};
|
|
1312
|
+
this.getLiquidationPriceWithOrder = function (collateralUsd, sizeAmount, sizeUsd, sizeDecimals, limitOraclePrice, side, targetCustodyAccount) {
|
|
1383
1313
|
var zeroOraclePrice = OraclePrice_1.OraclePrice.from({
|
|
1384
1314
|
price: constants_1.BN_ZERO,
|
|
1385
1315
|
exponent: constants_1.BN_ZERO,
|
|
1386
1316
|
confidence: constants_1.BN_ZERO,
|
|
1387
1317
|
timestamp: constants_1.BN_ZERO
|
|
1388
1318
|
});
|
|
1389
|
-
if (collateralAmount.isZero() || sizeAmount.isZero()) {
|
|
1390
|
-
return zeroOraclePrice;
|
|
1391
|
-
}
|
|
1392
1319
|
var exitFeeUsd = sizeUsd.mul(targetCustodyAccount.fees.closePosition).div(new anchor_1.BN(constants_1.RATE_POWER));
|
|
1393
1320
|
var unsettledLossUsd = exitFeeUsd;
|
|
1394
1321
|
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
1322
|
var liquidationPrice;
|
|
1398
|
-
if (
|
|
1399
|
-
var
|
|
1400
|
-
|
|
1401
|
-
|
|
1323
|
+
if (collateralUsd.gte(liablitiesUsd)) {
|
|
1324
|
+
var priceDiffLossOracle = OraclePrice_1.OraclePrice.from({
|
|
1325
|
+
price: (collateralUsd.sub(liablitiesUsd)).mul(new anchor_1.BN(Math.pow(10, (sizeDecimals + 3))))
|
|
1326
|
+
.div(sizeAmount),
|
|
1327
|
+
exponent: new anchor_1.BN(-1 * constants_1.RATE_DECIMALS),
|
|
1328
|
+
confidence: constants_1.BN_ZERO,
|
|
1329
|
+
timestamp: constants_1.BN_ZERO
|
|
1330
|
+
}).scale_to_exponent(new anchor_1.BN(limitOraclePrice.exponent));
|
|
1331
|
+
if ((0, types_1.isVariant)(side, 'long')) {
|
|
1332
|
+
liquidationPrice = OraclePrice_1.OraclePrice.from({
|
|
1333
|
+
price: limitOraclePrice.price.sub(priceDiffLossOracle.price),
|
|
1334
|
+
exponent: new anchor_1.BN(limitOraclePrice.exponent),
|
|
1335
|
+
confidence: constants_1.BN_ZERO,
|
|
1336
|
+
timestamp: constants_1.BN_ZERO
|
|
1337
|
+
});
|
|
1402
1338
|
}
|
|
1403
1339
|
else {
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1340
|
+
liquidationPrice = OraclePrice_1.OraclePrice.from({
|
|
1341
|
+
price: limitOraclePrice.price.add(priceDiffLossOracle.price),
|
|
1342
|
+
exponent: new anchor_1.BN(limitOraclePrice.exponent),
|
|
1343
|
+
confidence: constants_1.BN_ZERO,
|
|
1344
|
+
timestamp: constants_1.BN_ZERO
|
|
1345
|
+
});
|
|
1407
1346
|
}
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1347
|
+
}
|
|
1348
|
+
else {
|
|
1349
|
+
var priceDiffProfitOracle = OraclePrice_1.OraclePrice.from({
|
|
1350
|
+
price: (liablitiesUsd.sub(collateralUsd)).mul(new anchor_1.BN(Math.pow(10, (sizeDecimals + 3))))
|
|
1351
|
+
.div(sizeAmount),
|
|
1411
1352
|
exponent: new anchor_1.BN(-1 * constants_1.RATE_DECIMALS),
|
|
1412
1353
|
confidence: constants_1.BN_ZERO,
|
|
1413
1354
|
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),
|
|
1355
|
+
}).scale_to_exponent(new anchor_1.BN(limitOraclePrice.exponent));
|
|
1356
|
+
if ((0, types_1.isVariant)(side, 'long')) {
|
|
1357
|
+
liquidationPrice = OraclePrice_1.OraclePrice.from({
|
|
1358
|
+
price: limitOraclePrice.price.add(priceDiffProfitOracle.price),
|
|
1359
|
+
exponent: new anchor_1.BN(limitOraclePrice.exponent),
|
|
1424
1360
|
confidence: constants_1.BN_ZERO,
|
|
1425
1361
|
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
|
-
}
|
|
1362
|
+
});
|
|
1443
1363
|
}
|
|
1444
1364
|
else {
|
|
1445
|
-
|
|
1446
|
-
price:
|
|
1447
|
-
|
|
1448
|
-
exponent: new anchor_1.BN(-1 * constants_1.RATE_DECIMALS),
|
|
1365
|
+
liquidationPrice = OraclePrice_1.OraclePrice.from({
|
|
1366
|
+
price: limitOraclePrice.price.sub(priceDiffProfitOracle.price),
|
|
1367
|
+
exponent: new anchor_1.BN(limitOraclePrice.exponent),
|
|
1449
1368
|
confidence: constants_1.BN_ZERO,
|
|
1450
1369
|
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
|
-
}
|
|
1370
|
+
});
|
|
1468
1371
|
}
|
|
1469
1372
|
}
|
|
1470
1373
|
return liquidationPrice.price.isNeg() ? zeroOraclePrice : liquidationPrice;
|
|
@@ -1540,8 +1443,8 @@ var PerpetualsClient = (function () {
|
|
|
1540
1443
|
positionAccount.market = marketAccountPk;
|
|
1541
1444
|
positionAccount.lockedUsd = targetTokenPrice.getAssetAmountUsd(positionAccount.sizeAmount, targetCustodyAccount.decimals);
|
|
1542
1445
|
positionAccount.lockedAmount = collateralPrice.getTokenAmount(positionAccount.lockedUsd, collateralCustodyAccount.decimals);
|
|
1543
|
-
|
|
1544
|
-
positionAccount.collateralUsd =
|
|
1446
|
+
var collateralDeltaUsd = collateralPrice.getAssetAmountUsd(collateralDeltaAmount, collateralCustodyAccount.decimals);
|
|
1447
|
+
positionAccount.collateralUsd = positionAccount.collateralUsd.add(collateralDeltaUsd);
|
|
1545
1448
|
var currentTime = new anchor_1.BN((0, utils_1.getUnixTs)());
|
|
1546
1449
|
var pnl = _this.getPnlSync(positionAccount, userEntrytpSlOraclePrice, userEntrytpSlOraclePrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTime, targetCustodyAccount.pricing.delaySeconds, poolConfig);
|
|
1547
1450
|
var pnlUsd = pnl.profitUsd.sub(pnl.lossUsd);
|
|
@@ -1613,6 +1516,9 @@ var PerpetualsClient = (function () {
|
|
|
1613
1516
|
});
|
|
1614
1517
|
};
|
|
1615
1518
|
this.getPnlSync = function (positionAccount, targetTokenPrice, targetTokenEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, delay, poolConfig) {
|
|
1519
|
+
return _this.getPnlContractHelper(positionAccount, targetTokenPrice, targetTokenEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, delay, poolConfig);
|
|
1520
|
+
};
|
|
1521
|
+
this.getPnlContractHelper = function (positionAccount, targetTokenPrice, targetTokenEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, delay, poolConfig) {
|
|
1616
1522
|
if (positionAccount.sizeUsd.isZero() || positionAccount.entryPrice.price.isZero()) {
|
|
1617
1523
|
return {
|
|
1618
1524
|
profitUsd: constants_1.BN_ZERO,
|
|
@@ -1671,7 +1577,7 @@ var PerpetualsClient = (function () {
|
|
|
1671
1577
|
}
|
|
1672
1578
|
if (priceDiffProfit.price.gt(constants_1.BN_ZERO)) {
|
|
1673
1579
|
return {
|
|
1674
|
-
profitUsd:
|
|
1580
|
+
profitUsd: priceDiffProfit.getAssetAmountUsd(positionAccount.sizeAmount, positionAccount.sizeDecimals),
|
|
1675
1581
|
lossUsd: constants_1.BN_ZERO,
|
|
1676
1582
|
};
|
|
1677
1583
|
}
|
|
@@ -1762,6 +1668,9 @@ var PerpetualsClient = (function () {
|
|
|
1762
1668
|
}
|
|
1763
1669
|
};
|
|
1764
1670
|
this.getAssetsUnderManagementUsdSync = function (poolAccount, tokenPrices, tokenEmaPrices, custodies, markets, aumCalcMode, currentTime, poolConfig) {
|
|
1671
|
+
return _this.getAssetsUnderManagementUsdContractHelper(poolAccount, tokenPrices, tokenEmaPrices, custodies, markets, aumCalcMode, currentTime, poolConfig);
|
|
1672
|
+
};
|
|
1673
|
+
this.getAssetsUnderManagementUsdContractHelper = function (poolAccount, tokenPrices, tokenEmaPrices, custodies, markets, aumCalcMode, currentTime, poolConfig) {
|
|
1765
1674
|
var poolAmountUsd = constants_1.BN_ZERO;
|
|
1766
1675
|
for (var index = 0; index < custodies.length; index++) {
|
|
1767
1676
|
if (custodies.length != poolAccount.custodies.length || !custodies[index].publicKey.equals(poolAccount.custodies[index])) {
|
|
@@ -1774,6 +1683,7 @@ var PerpetualsClient = (function () {
|
|
|
1774
1683
|
var token_amount_usd = tokenMinMaxPrice.max.getAssetAmountUsd(custodies[index].assets.owned, custodies[index].decimals);
|
|
1775
1684
|
poolAmountUsd = poolAmountUsd.add(token_amount_usd);
|
|
1776
1685
|
}
|
|
1686
|
+
poolAmountUsd = poolAmountUsd.sub(poolAccount.feesObligationUsd.add(poolAccount.rebateObligationUsd));
|
|
1777
1687
|
if (aumCalcMode === "includePnl") {
|
|
1778
1688
|
var poolEquityUsd = poolAmountUsd;
|
|
1779
1689
|
for (var index = 0; index < markets.length; index++) {
|
|
@@ -1783,11 +1693,12 @@ var PerpetualsClient = (function () {
|
|
|
1783
1693
|
var targetCustodyId = poolAccount.getCustodyId(markets[index].targetCustody);
|
|
1784
1694
|
var collateralCustodyId = poolAccount.getCustodyId(markets[index].collateralCustody);
|
|
1785
1695
|
var position = markets[index].getCollectivePosition();
|
|
1696
|
+
poolEquityUsd = poolEquityUsd.sub(position.collateralUsd);
|
|
1786
1697
|
var collectivePnl = _this.getPnlSync(position, tokenPrices[targetCustodyId], tokenEmaPrices[targetCustodyId], custodies[targetCustodyId], tokenPrices[collateralCustodyId], tokenEmaPrices[collateralCustodyId], custodies[collateralCustodyId], currentTime, custodies[targetCustodyId].pricing.delaySeconds, poolConfig);
|
|
1787
1698
|
var collateralMinMaxPrice = _this.getMinAndMaxOraclePriceSync(tokenPrices[collateralCustodyId], tokenEmaPrices[collateralCustodyId], custodies[collateralCustodyId]);
|
|
1788
|
-
var
|
|
1789
|
-
var
|
|
1790
|
-
poolEquityUsd = (poolEquityUsd.add(collectiveLossUsd)).sub(
|
|
1699
|
+
var collectiveLossUsd = anchor_1.BN.min(collectivePnl.lossUsd, position.collateralUsd);
|
|
1700
|
+
var collectiveProfitUsd = anchor_1.BN.min(collectivePnl.profitUsd, collateralMinMaxPrice.max.getAssetAmountUsd(position.lockedAmount, custodies[collateralCustodyId].decimals).sub(position.collateralUsd));
|
|
1701
|
+
poolEquityUsd = (poolEquityUsd.add(collectiveLossUsd)).sub(collectiveProfitUsd);
|
|
1791
1702
|
}
|
|
1792
1703
|
return { poolAmountUsd: poolAmountUsd, poolEquityUsd: poolEquityUsd };
|
|
1793
1704
|
}
|
|
@@ -1795,14 +1706,6 @@ var PerpetualsClient = (function () {
|
|
|
1795
1706
|
return { poolAmountUsd: poolAmountUsd, poolEquityUsd: constants_1.BN_ZERO };
|
|
1796
1707
|
}
|
|
1797
1708
|
};
|
|
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
1709
|
this.getFeeDiscount = function (perpetualsAccount, tokenStakeAccount, currentTime) {
|
|
1807
1710
|
if (tokenStakeAccount.level === 0) {
|
|
1808
1711
|
return { discountBn: constants_1.BN_ZERO };
|
|
@@ -1887,7 +1790,7 @@ var PerpetualsClient = (function () {
|
|
|
1887
1790
|
});
|
|
1888
1791
|
};
|
|
1889
1792
|
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;
|
|
1793
|
+
var backUpOracleInstructionPromise, custodies, custodyMetas, marketMetas, _i, custodies_1, token, _a, custodies_2, custody, _b, _c, market, transaction, backUpOracleInstruction, setCULimitIx, result, index, res;
|
|
1891
1794
|
var _d;
|
|
1892
1795
|
return __generator(this, function (_e) {
|
|
1893
1796
|
switch (_e.label) {
|
|
@@ -1935,6 +1838,8 @@ var PerpetualsClient = (function () {
|
|
|
1935
1838
|
return [4, backUpOracleInstructionPromise];
|
|
1936
1839
|
case 2:
|
|
1937
1840
|
backUpOracleInstruction = _e.sent();
|
|
1841
|
+
setCULimitIx = web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({ units: 450000 });
|
|
1842
|
+
transaction.instructions.unshift(setCULimitIx);
|
|
1938
1843
|
(_d = transaction.instructions).unshift.apply(_d, backUpOracleInstruction);
|
|
1939
1844
|
return [4, this.viewHelper.simulateTransaction(transaction)];
|
|
1940
1845
|
case 3:
|
|
@@ -2001,7 +1906,7 @@ var PerpetualsClient = (function () {
|
|
|
2001
1906
|
args_1[_i - 4] = arguments[_i];
|
|
2002
1907
|
}
|
|
2003
1908
|
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;
|
|
1909
|
+
var custodies, custodyMetas, marketMetas, _a, custodies_5, token, _b, custodies_6, custody, _c, _d, market, depositCustodyConfig, transaction, setCULimitIx, backUpOracleInstruction, result, index, res;
|
|
2005
1910
|
var _e;
|
|
2006
1911
|
if (userPublicKey === void 0) { userPublicKey = undefined; }
|
|
2007
1912
|
if (enableBackupOracle === void 0) { enableBackupOracle = false; }
|
|
@@ -2052,6 +1957,8 @@ var PerpetualsClient = (function () {
|
|
|
2052
1957
|
.transaction()];
|
|
2053
1958
|
case 1:
|
|
2054
1959
|
transaction = _f.sent();
|
|
1960
|
+
setCULimitIx = web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({ units: 450000 });
|
|
1961
|
+
transaction.instructions.unshift(setCULimitIx);
|
|
2055
1962
|
if (!enableBackupOracle) return [3, 3];
|
|
2056
1963
|
return [4, (0, backupOracle_1.createBackupOracleInstruction)(POOL_CONFIG.poolAddress.toBase58(), true)];
|
|
2057
1964
|
case 2:
|
|
@@ -2061,6 +1968,14 @@ var PerpetualsClient = (function () {
|
|
|
2061
1968
|
case 3: return [4, this.viewHelper.simulateTransaction(transaction, userPublicKey)];
|
|
2062
1969
|
case 4:
|
|
2063
1970
|
result = _f.sent();
|
|
1971
|
+
if (result.value.err) {
|
|
1972
|
+
console.error('error Simulation failed:::', result);
|
|
1973
|
+
return [2, {
|
|
1974
|
+
amount: undefined,
|
|
1975
|
+
fee: undefined,
|
|
1976
|
+
error: 'Simulation failed: ' + JSON.stringify(result.value.err),
|
|
1977
|
+
}];
|
|
1978
|
+
}
|
|
2064
1979
|
index = perpetuals_1.IDL.instructions.findIndex(function (f) { return f.name === 'getAddLiquidityAmountAndFee'; });
|
|
2065
1980
|
res = this.viewHelper.decodeLogs(result, index, 'getAddLiquidityAmountAndFee');
|
|
2066
1981
|
return [2, {
|
|
@@ -2077,7 +1992,7 @@ var PerpetualsClient = (function () {
|
|
|
2077
1992
|
args_1[_i - 4] = arguments[_i];
|
|
2078
1993
|
}
|
|
2079
1994
|
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;
|
|
1995
|
+
var custodies, custodyMetas, marketMetas, _a, custodies_7, token, _b, custodies_8, custody, _c, _d, market, removeCustodyConfig, transaction, setCULimitIx, backUpOracleInstruction, result, index, res;
|
|
2081
1996
|
var _e;
|
|
2082
1997
|
if (userPublicKey === void 0) { userPublicKey = undefined; }
|
|
2083
1998
|
if (enableBackupOracle === void 0) { enableBackupOracle = false; }
|
|
@@ -2128,6 +2043,8 @@ var PerpetualsClient = (function () {
|
|
|
2128
2043
|
.transaction()];
|
|
2129
2044
|
case 1:
|
|
2130
2045
|
transaction = _f.sent();
|
|
2046
|
+
setCULimitIx = web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({ units: 450000 });
|
|
2047
|
+
transaction.instructions.unshift(setCULimitIx);
|
|
2131
2048
|
if (!enableBackupOracle) return [3, 3];
|
|
2132
2049
|
return [4, (0, backupOracle_1.createBackupOracleInstruction)(POOL_CONFIG.poolAddress.toBase58(), true)];
|
|
2133
2050
|
case 2:
|
|
@@ -2139,9 +2056,11 @@ var PerpetualsClient = (function () {
|
|
|
2139
2056
|
result = _f.sent();
|
|
2140
2057
|
index = perpetuals_1.IDL.instructions.findIndex(function (f) { return f.name === 'getRemoveLiquidityAmountAndFee'; });
|
|
2141
2058
|
if (result.value.err) {
|
|
2059
|
+
console.error('error Simulation failed:', result);
|
|
2142
2060
|
return [2, {
|
|
2143
|
-
amount:
|
|
2144
|
-
fee:
|
|
2061
|
+
amount: undefined,
|
|
2062
|
+
fee: undefined,
|
|
2063
|
+
error: 'Simulation failed: ' + JSON.stringify(result.value.err),
|
|
2145
2064
|
}];
|
|
2146
2065
|
}
|
|
2147
2066
|
res = this.viewHelper.decodeLogs(result, index, 'getRemoveLiquidityAmountAndFee');
|
|
@@ -2154,7 +2073,7 @@ var PerpetualsClient = (function () {
|
|
|
2154
2073
|
});
|
|
2155
2074
|
};
|
|
2156
2075
|
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;
|
|
2076
|
+
var backUpOracleInstructionPromise, custodies, custodyMetas, marketMetas, _i, custodies_9, token, _a, custodies_10, custody, _b, _c, market, backUpOracleInstruction, transaction, setCULimitIx, result, index, res;
|
|
2158
2077
|
var _d;
|
|
2159
2078
|
return __generator(this, function (_e) {
|
|
2160
2079
|
switch (_e.label) {
|
|
@@ -2202,6 +2121,8 @@ var PerpetualsClient = (function () {
|
|
|
2202
2121
|
.transaction()];
|
|
2203
2122
|
case 2:
|
|
2204
2123
|
transaction = _e.sent();
|
|
2124
|
+
setCULimitIx = web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({ units: 450000 });
|
|
2125
|
+
transaction.instructions.unshift(setCULimitIx);
|
|
2205
2126
|
(_d = transaction.instructions).unshift.apply(_d, backUpOracleInstruction);
|
|
2206
2127
|
return [4, this.viewHelper.simulateTransaction(transaction)];
|
|
2207
2128
|
case 3:
|
|
@@ -2218,7 +2139,7 @@ var PerpetualsClient = (function () {
|
|
|
2218
2139
|
args_1[_i - 4] = arguments[_i];
|
|
2219
2140
|
}
|
|
2220
2141
|
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) {
|
|
2221
|
-
var custodies, custodyMetas, marketMetas, _a, custodies_11, token, _b, custodies_12, custody, _c, _d, market, depositCustodyConfig, rewardCustody, transaction, backUpOracleInstruction, result, index, res;
|
|
2142
|
+
var custodies, custodyMetas, marketMetas, _a, custodies_11, token, _b, custodies_12, custody, _c, _d, market, depositCustodyConfig, rewardCustody, transaction, setCULimitIx, backUpOracleInstruction, result, index, res;
|
|
2222
2143
|
var _e;
|
|
2223
2144
|
if (userPublicKey === void 0) { userPublicKey = undefined; }
|
|
2224
2145
|
if (enableBackupOracle === void 0) { enableBackupOracle = false; }
|
|
@@ -2273,6 +2194,8 @@ var PerpetualsClient = (function () {
|
|
|
2273
2194
|
.transaction()];
|
|
2274
2195
|
case 1:
|
|
2275
2196
|
transaction = _f.sent();
|
|
2197
|
+
setCULimitIx = web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({ units: 450000 });
|
|
2198
|
+
transaction.instructions.unshift(setCULimitIx);
|
|
2276
2199
|
if (!enableBackupOracle) return [3, 3];
|
|
2277
2200
|
return [4, (0, backupOracle_1.createBackupOracleInstruction)(POOL_CONFIG.poolAddress.toBase58(), true)];
|
|
2278
2201
|
case 2:
|
|
@@ -2298,7 +2221,7 @@ var PerpetualsClient = (function () {
|
|
|
2298
2221
|
args_1[_i - 4] = arguments[_i];
|
|
2299
2222
|
}
|
|
2300
2223
|
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) {
|
|
2301
|
-
var custodies, custodyMetas, marketMetas, _a, custodies_13, token, _b, custodies_14, custody, _c, _d, market, removeCustodyConfig, rewardCustody, transaction, backUpOracleInstruction, result, index, res;
|
|
2224
|
+
var custodies, custodyMetas, marketMetas, _a, custodies_13, token, _b, custodies_14, custody, _c, _d, market, removeCustodyConfig, rewardCustody, transaction, setCULimitIx, backUpOracleInstruction, result, index, res;
|
|
2302
2225
|
var _e;
|
|
2303
2226
|
if (userPublicKey === void 0) { userPublicKey = undefined; }
|
|
2304
2227
|
if (enableBackupOracle === void 0) { enableBackupOracle = false; }
|
|
@@ -2353,6 +2276,8 @@ var PerpetualsClient = (function () {
|
|
|
2353
2276
|
.transaction()];
|
|
2354
2277
|
case 1:
|
|
2355
2278
|
transaction = _f.sent();
|
|
2279
|
+
setCULimitIx = web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({ units: 450000 });
|
|
2280
|
+
transaction.instructions.unshift(setCULimitIx);
|
|
2356
2281
|
if (!enableBackupOracle) return [3, 3];
|
|
2357
2282
|
return [4, (0, backupOracle_1.createBackupOracleInstruction)(POOL_CONFIG.poolAddress.toBase58(), true)];
|
|
2358
2283
|
case 2:
|
|
@@ -2547,11 +2472,10 @@ var PerpetualsClient = (function () {
|
|
|
2547
2472
|
for (var _i = 8; _i < arguments.length; _i++) {
|
|
2548
2473
|
args_1[_i - 8] = arguments[_i];
|
|
2549
2474
|
}
|
|
2550
|
-
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,
|
|
2475
|
+
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) {
|
|
2551
2476
|
var publicKey, targetCustodyConfig, collateralCustodyConfig, collateralToken, marketAccount, userCollateralTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, lamports, unWrappedSolBalance, _a, tokenAccountBalance, _b, positionAccount, params, instruction;
|
|
2552
2477
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
2553
2478
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
2554
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
2555
2479
|
if (skipBalanceChecks === void 0) { skipBalanceChecks = false; }
|
|
2556
2480
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
2557
2481
|
return __generator(this, function (_c) {
|
|
@@ -2644,7 +2568,7 @@ var PerpetualsClient = (function () {
|
|
|
2644
2568
|
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
|
2645
2569
|
fundingMint: collateralCustodyConfig.mintKey
|
|
2646
2570
|
})
|
|
2647
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
2571
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
2648
2572
|
.instruction()];
|
|
2649
2573
|
case 7:
|
|
2650
2574
|
instruction = _c.sent();
|
|
@@ -2662,11 +2586,10 @@ var PerpetualsClient = (function () {
|
|
|
2662
2586
|
for (var _i = 6; _i < arguments.length; _i++) {
|
|
2663
2587
|
args_1[_i - 6] = arguments[_i];
|
|
2664
2588
|
}
|
|
2665
|
-
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,
|
|
2589
|
+
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) {
|
|
2666
2590
|
var publicKey, userReceivingTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, lamports, _a, collateralCustodyConfig, targetCustodyConfig, marketAccount, positionAccount, instruction, closeWsolATAIns, error_1;
|
|
2667
2591
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
2668
2592
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
2669
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
2670
2593
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
2671
2594
|
if (closeUsersWSOLATA === void 0) { closeUsersWSOLATA = false; }
|
|
2672
2595
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
@@ -2745,7 +2668,7 @@ var PerpetualsClient = (function () {
|
|
|
2745
2668
|
collateralMint: collateralCustodyConfig.mintKey,
|
|
2746
2669
|
collateralTokenProgram: poolConfig.getTokenFromSymbol(collateralSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID
|
|
2747
2670
|
})
|
|
2748
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
2671
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
2749
2672
|
.instruction()];
|
|
2750
2673
|
case 6:
|
|
2751
2674
|
instruction = _b.sent();
|
|
@@ -2767,16 +2690,15 @@ var PerpetualsClient = (function () {
|
|
|
2767
2690
|
});
|
|
2768
2691
|
});
|
|
2769
2692
|
};
|
|
2770
|
-
this.swapAndOpen = function (targetTokenSymbol_1, collateralTokenSymbol_1, userInputTokenSymbol_1, amountIn_1,
|
|
2693
|
+
this.swapAndOpen = function (targetTokenSymbol_1, collateralTokenSymbol_1, userInputTokenSymbol_1, amountIn_1, priceWithSlippage_1, sizeAmount_1, side_1, poolConfig_1, privilege_1) {
|
|
2771
2694
|
var args_1 = [];
|
|
2772
|
-
for (var _i =
|
|
2773
|
-
args_1[_i -
|
|
2695
|
+
for (var _i = 9; _i < arguments.length; _i++) {
|
|
2696
|
+
args_1[_i - 9] = arguments[_i];
|
|
2774
2697
|
}
|
|
2775
|
-
return __awaiter(_this, __spreadArray([targetTokenSymbol_1, collateralTokenSymbol_1, userInputTokenSymbol_1, amountIn_1,
|
|
2776
|
-
var publicKey, userInputCustodyConfig, collateralCustodyConfig, targetCustodyConfig, marketAccount, positionAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, targetToken, userInputTokenAccount, userInputToken, lamports, unWrappedSolBalance, _a, userOutputTokenAccount, tokenAccountBalance, _b, userOutputTokenAccount,
|
|
2698
|
+
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) {
|
|
2699
|
+
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;
|
|
2777
2700
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
2778
2701
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
2779
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
2780
2702
|
if (skipBalanceChecks === void 0) { skipBalanceChecks = false; }
|
|
2781
2703
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
2782
2704
|
return __generator(this, function (_c) {
|
|
@@ -2870,18 +2792,10 @@ var PerpetualsClient = (function () {
|
|
|
2870
2792
|
}
|
|
2871
2793
|
_c.label = 10;
|
|
2872
2794
|
case 10:
|
|
2873
|
-
|
|
2874
|
-
pubkey: collateralCustodyConfig.mintKey,
|
|
2875
|
-
isSigner: false,
|
|
2876
|
-
isWritable: false
|
|
2877
|
-
};
|
|
2878
|
-
_c.label = 11;
|
|
2879
|
-
case 11:
|
|
2880
|
-
_c.trys.push([11, 13, , 14]);
|
|
2795
|
+
_c.trys.push([10, 12, , 13]);
|
|
2881
2796
|
return [4, this.program.methods
|
|
2882
2797
|
.swapAndOpen({
|
|
2883
2798
|
amountIn: amountIn,
|
|
2884
|
-
minCollateralAmountOut: minCollateralAmountOut,
|
|
2885
2799
|
priceWithSlippage: priceWithSlippage,
|
|
2886
2800
|
sizeAmount: sizeAmount,
|
|
2887
2801
|
privilege: privilege
|
|
@@ -2912,17 +2826,17 @@ var PerpetualsClient = (function () {
|
|
|
2912
2826
|
collateralMint: collateralCustodyConfig.mintKey,
|
|
2913
2827
|
collateralTokenProgram: poolConfig.getTokenFromSymbol(collateralTokenSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID
|
|
2914
2828
|
})
|
|
2915
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
2829
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
2916
2830
|
.instruction()];
|
|
2917
|
-
case
|
|
2831
|
+
case 11:
|
|
2918
2832
|
inx = _c.sent();
|
|
2919
2833
|
instructions.push(inx);
|
|
2920
|
-
return [3,
|
|
2921
|
-
case
|
|
2834
|
+
return [3, 13];
|
|
2835
|
+
case 12:
|
|
2922
2836
|
err_3 = _c.sent();
|
|
2923
2837
|
console.error("perpClient SwapAndOpen error:: ", err_3);
|
|
2924
2838
|
throw err_3;
|
|
2925
|
-
case
|
|
2839
|
+
case 13: return [2, {
|
|
2926
2840
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
2927
2841
|
additionalSigners: additionalSigners
|
|
2928
2842
|
}];
|
|
@@ -2930,16 +2844,15 @@ var PerpetualsClient = (function () {
|
|
|
2930
2844
|
});
|
|
2931
2845
|
});
|
|
2932
2846
|
};
|
|
2933
|
-
this.closeAndSwap = function (targetTokenSymbol_1, userOutputTokenSymbol_1, collateralTokenSymbol_1,
|
|
2847
|
+
this.closeAndSwap = function (targetTokenSymbol_1, userOutputTokenSymbol_1, collateralTokenSymbol_1, priceWithSlippage_1, side_1, poolConfig_1, privilege_1) {
|
|
2934
2848
|
var args_1 = [];
|
|
2935
|
-
for (var _i =
|
|
2936
|
-
args_1[_i -
|
|
2849
|
+
for (var _i = 7; _i < arguments.length; _i++) {
|
|
2850
|
+
args_1[_i - 7] = arguments[_i];
|
|
2937
2851
|
}
|
|
2938
|
-
return __awaiter(_this, __spreadArray([targetTokenSymbol_1, userOutputTokenSymbol_1, collateralTokenSymbol_1,
|
|
2939
|
-
var publicKey, userOutputCustodyConfig, collateralCustodyConfig, targetCustodyConfig, marketAccount, positionAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, userReceivingTokenAccount, collateralToken, userOutputToken, lamports, userCollateralTokenAccount,
|
|
2852
|
+
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) {
|
|
2853
|
+
var publicKey, userOutputCustodyConfig, collateralCustodyConfig, targetCustodyConfig, marketAccount, positionAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, userReceivingTokenAccount, collateralToken, userOutputToken, lamports, userCollateralTokenAccount, inx, err_4;
|
|
2940
2854
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
2941
2855
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
2942
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
2943
2856
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
2944
2857
|
return __generator(this, function (_a) {
|
|
2945
2858
|
switch (_a.label) {
|
|
@@ -3005,18 +2918,12 @@ var PerpetualsClient = (function () {
|
|
|
3005
2918
|
if (!(_a.sent())) {
|
|
3006
2919
|
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));
|
|
3007
2920
|
}
|
|
3008
|
-
rebateMintAccount = {
|
|
3009
|
-
pubkey: collateralCustodyConfig.mintKey,
|
|
3010
|
-
isSigner: false,
|
|
3011
|
-
isWritable: false
|
|
3012
|
-
};
|
|
3013
2921
|
_a.label = 5;
|
|
3014
2922
|
case 5:
|
|
3015
2923
|
_a.trys.push([5, 7, , 8]);
|
|
3016
2924
|
return [4, this.program.methods
|
|
3017
2925
|
.closeAndSwap({
|
|
3018
2926
|
priceWithSlippage: priceWithSlippage,
|
|
3019
|
-
minSwapAmountOut: minSwapAmountOut,
|
|
3020
2927
|
privilege: privilege
|
|
3021
2928
|
})
|
|
3022
2929
|
.accounts({
|
|
@@ -3045,7 +2952,7 @@ var PerpetualsClient = (function () {
|
|
|
3045
2952
|
collateralMint: collateralCustodyConfig.mintKey,
|
|
3046
2953
|
collateralTokenProgram: collateralToken.isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID
|
|
3047
2954
|
})
|
|
3048
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
2955
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
3049
2956
|
.instruction()];
|
|
3050
2957
|
case 6:
|
|
3051
2958
|
inx = _a.sent();
|
|
@@ -3166,12 +3073,12 @@ var PerpetualsClient = (function () {
|
|
|
3166
3073
|
});
|
|
3167
3074
|
});
|
|
3168
3075
|
};
|
|
3169
|
-
this.swapAndAddCollateral = function (targetSymbol_1, inputSymbol_1, collateralSymbol_1, amountIn_1,
|
|
3076
|
+
this.swapAndAddCollateral = function (targetSymbol_1, inputSymbol_1, collateralSymbol_1, amountIn_1, side_1, positionPubKey_1, poolConfig_1) {
|
|
3170
3077
|
var args_1 = [];
|
|
3171
|
-
for (var _i =
|
|
3172
|
-
args_1[_i -
|
|
3078
|
+
for (var _i = 7; _i < arguments.length; _i++) {
|
|
3079
|
+
args_1[_i - 7] = arguments[_i];
|
|
3173
3080
|
}
|
|
3174
|
-
return __awaiter(_this, __spreadArray([targetSymbol_1, inputSymbol_1, collateralSymbol_1, amountIn_1,
|
|
3081
|
+
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) {
|
|
3175
3082
|
var publicKey, collateralCustodyConfig, targetCustodyConfig, inputCustodyConfig, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, userInputTokenAccount, lamports, unWrappedSolBalance, _a, tokenAccountBalance, _b, userCollateralTokenAccount, marketAccount, instruction;
|
|
3176
3083
|
if (skipBalanceChecks === void 0) { skipBalanceChecks = false; }
|
|
3177
3084
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
@@ -3250,7 +3157,6 @@ var PerpetualsClient = (function () {
|
|
|
3250
3157
|
marketAccount = poolConfig.getMarketPk(targetCustodyConfig.custodyAccount, collateralCustodyConfig.custodyAccount, side);
|
|
3251
3158
|
return [4, this.program.methods.swapAndAddCollateral({
|
|
3252
3159
|
amountIn: amountIn,
|
|
3253
|
-
minCollateralAmountOut: minCollateralAmountOut,
|
|
3254
3160
|
}).accounts({
|
|
3255
3161
|
owner: publicKey,
|
|
3256
3162
|
feePayer: publicKey,
|
|
@@ -3286,12 +3192,12 @@ var PerpetualsClient = (function () {
|
|
|
3286
3192
|
});
|
|
3287
3193
|
});
|
|
3288
3194
|
};
|
|
3289
|
-
this.removeCollateral = function (
|
|
3195
|
+
this.removeCollateral = function (collateralDeltaUsd_1, marketSymbol_1, collateralSymbol_1, side_1, positionPubKey_1, poolConfig_1) {
|
|
3290
3196
|
var args_1 = [];
|
|
3291
3197
|
for (var _i = 6; _i < arguments.length; _i++) {
|
|
3292
3198
|
args_1[_i - 6] = arguments[_i];
|
|
3293
3199
|
}
|
|
3294
|
-
return __awaiter(_this, __spreadArray([
|
|
3200
|
+
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) {
|
|
3295
3201
|
var publicKey, collateralCustodyConfig, targetCustodyConfig, userReceivingTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, lamports, _a, marketAccount, instruction, closeWsolATAIns, error_2;
|
|
3296
3202
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
3297
3203
|
if (closeUsersWSOLATA === void 0) { closeUsersWSOLATA = false; }
|
|
@@ -3355,7 +3261,7 @@ var PerpetualsClient = (function () {
|
|
|
3355
3261
|
marketAccount = poolConfig.getMarketPk(targetCustodyConfig.custodyAccount, collateralCustodyConfig.custodyAccount, side);
|
|
3356
3262
|
return [4, this.program.methods
|
|
3357
3263
|
.removeCollateral({
|
|
3358
|
-
|
|
3264
|
+
collateralDeltaUsd: collateralDeltaUsd,
|
|
3359
3265
|
})
|
|
3360
3266
|
.accounts({
|
|
3361
3267
|
owner: publicKey,
|
|
@@ -3397,12 +3303,12 @@ var PerpetualsClient = (function () {
|
|
|
3397
3303
|
});
|
|
3398
3304
|
});
|
|
3399
3305
|
};
|
|
3400
|
-
this.removeCollateralAndSwap = function (targetSymbol_1, collateralSymbol_1, outputSymbol_1,
|
|
3306
|
+
this.removeCollateralAndSwap = function (targetSymbol_1, collateralSymbol_1, outputSymbol_1, collateralDeltaUsd_1, side_1, poolConfig_1) {
|
|
3401
3307
|
var args_1 = [];
|
|
3402
|
-
for (var _i =
|
|
3403
|
-
args_1[_i -
|
|
3308
|
+
for (var _i = 6; _i < arguments.length; _i++) {
|
|
3309
|
+
args_1[_i - 6] = arguments[_i];
|
|
3404
3310
|
}
|
|
3405
|
-
return __awaiter(_this, __spreadArray([targetSymbol_1, collateralSymbol_1, outputSymbol_1,
|
|
3311
|
+
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) {
|
|
3406
3312
|
var publicKey, targetCustodyConfig, collateralCustodyConfig, outputCustodyConfig, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, userReceivingTokenAccount, lamports, userCollateralTokenAccount, marketAccount, positionAccount, instruction;
|
|
3407
3313
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
3408
3314
|
return __generator(this, function (_a) {
|
|
@@ -3459,8 +3365,7 @@ var PerpetualsClient = (function () {
|
|
|
3459
3365
|
positionAccount = poolConfig.getPositionFromMarketPk(publicKey, marketAccount);
|
|
3460
3366
|
return [4, this.program.methods
|
|
3461
3367
|
.removeCollateralAndSwap({
|
|
3462
|
-
|
|
3463
|
-
minSwapAmountOut: minSwapAmountOut,
|
|
3368
|
+
collateralDeltaUsd: collateralDeltaUsd,
|
|
3464
3369
|
})
|
|
3465
3370
|
.accounts({
|
|
3466
3371
|
owner: publicKey,
|
|
@@ -3505,11 +3410,10 @@ var PerpetualsClient = (function () {
|
|
|
3505
3410
|
for (var _i = 8; _i < arguments.length; _i++) {
|
|
3506
3411
|
args_1[_i - 8] = arguments[_i];
|
|
3507
3412
|
}
|
|
3508
|
-
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
|
|
3413
|
+
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) {
|
|
3509
3414
|
var publicKey, collateralCustodyConfig, targetCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, instruction;
|
|
3510
3415
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
3511
3416
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
3512
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
3513
3417
|
return __generator(this, function (_a) {
|
|
3514
3418
|
switch (_a.label) {
|
|
3515
3419
|
case 0:
|
|
@@ -3552,7 +3456,7 @@ var PerpetualsClient = (function () {
|
|
|
3552
3456
|
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
|
3553
3457
|
collateralMint: collateralCustodyConfig.mintKey
|
|
3554
3458
|
})
|
|
3555
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
3459
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
3556
3460
|
.instruction()];
|
|
3557
3461
|
case 1:
|
|
3558
3462
|
instruction = _a.sent();
|
|
@@ -3570,11 +3474,10 @@ var PerpetualsClient = (function () {
|
|
|
3570
3474
|
for (var _i = 8; _i < arguments.length; _i++) {
|
|
3571
3475
|
args_1[_i - 8] = arguments[_i];
|
|
3572
3476
|
}
|
|
3573
|
-
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
|
|
3477
|
+
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) {
|
|
3574
3478
|
var publicKey, collateralCustodyConfig, targetCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, instruction;
|
|
3575
3479
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
3576
3480
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
3577
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
3578
3481
|
return __generator(this, function (_a) {
|
|
3579
3482
|
switch (_a.label) {
|
|
3580
3483
|
case 0:
|
|
@@ -3617,7 +3520,7 @@ var PerpetualsClient = (function () {
|
|
|
3617
3520
|
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
|
3618
3521
|
collateralMint: collateralCustodyConfig.mintKey
|
|
3619
3522
|
})
|
|
3620
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
3523
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
3621
3524
|
.instruction()];
|
|
3622
3525
|
case 1:
|
|
3623
3526
|
instruction = _a.sent();
|
|
@@ -4084,119 +3987,8 @@ var PerpetualsClient = (function () {
|
|
|
4084
3987
|
}
|
|
4085
3988
|
});
|
|
4086
3989
|
}); };
|
|
4087
|
-
this.updateNftAccount = function (nftMint, updateReferer, updateBooster, flpStakeAccounts) { return __awaiter(_this, void 0, void 0, function () {
|
|
4088
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, nftTradingAccount, nftReferralAccount, nftTokenAccount, flpStakeAccountMetas, _i, flpStakeAccounts_1, flpStakeAccountPk, updateNftTradingAccountInstruction, err_8;
|
|
4089
|
-
return __generator(this, function (_a) {
|
|
4090
|
-
switch (_a.label) {
|
|
4091
|
-
case 0:
|
|
4092
|
-
publicKey = this.provider.wallet.publicKey;
|
|
4093
|
-
preInstructions = [];
|
|
4094
|
-
instructions = [];
|
|
4095
|
-
postInstructions = [];
|
|
4096
|
-
additionalSigners = [];
|
|
4097
|
-
_a.label = 1;
|
|
4098
|
-
case 1:
|
|
4099
|
-
_a.trys.push([1, 4, , 5]);
|
|
4100
|
-
nftTradingAccount = web3_js_1.PublicKey.findProgramAddressSync([
|
|
4101
|
-
Buffer.from("trading"),
|
|
4102
|
-
nftMint.toBuffer(),
|
|
4103
|
-
], this.programId)[0];
|
|
4104
|
-
nftReferralAccount = web3_js_1.PublicKey.findProgramAddressSync([
|
|
4105
|
-
Buffer.from("referral"),
|
|
4106
|
-
publicKey.toBuffer(),
|
|
4107
|
-
], this.programId)[0];
|
|
4108
|
-
return [4, (0, spl_token_1.getAssociatedTokenAddress)(nftMint, publicKey, true)];
|
|
4109
|
-
case 2:
|
|
4110
|
-
nftTokenAccount = _a.sent();
|
|
4111
|
-
flpStakeAccountMetas = [];
|
|
4112
|
-
for (_i = 0, flpStakeAccounts_1 = flpStakeAccounts; _i < flpStakeAccounts_1.length; _i++) {
|
|
4113
|
-
flpStakeAccountPk = flpStakeAccounts_1[_i];
|
|
4114
|
-
flpStakeAccountMetas.push({
|
|
4115
|
-
pubkey: flpStakeAccountPk,
|
|
4116
|
-
isSigner: false,
|
|
4117
|
-
isWritable: true,
|
|
4118
|
-
});
|
|
4119
|
-
}
|
|
4120
|
-
return [4, this.program.methods
|
|
4121
|
-
.updateTradingAccount({
|
|
4122
|
-
updateReferer: updateReferer,
|
|
4123
|
-
updateBooster: updateBooster
|
|
4124
|
-
})
|
|
4125
|
-
.accounts({
|
|
4126
|
-
owner: publicKey,
|
|
4127
|
-
feePayer: publicKey,
|
|
4128
|
-
nftTokenAccount: nftTokenAccount,
|
|
4129
|
-
referralAccount: nftReferralAccount,
|
|
4130
|
-
tradingAccount: nftTradingAccount
|
|
4131
|
-
})
|
|
4132
|
-
.instruction()];
|
|
4133
|
-
case 3:
|
|
4134
|
-
updateNftTradingAccountInstruction = _a.sent();
|
|
4135
|
-
instructions.push(updateNftTradingAccountInstruction);
|
|
4136
|
-
return [3, 5];
|
|
4137
|
-
case 4:
|
|
4138
|
-
err_8 = _a.sent();
|
|
4139
|
-
console.log("perpClient updateNftAccount error:: ", err_8);
|
|
4140
|
-
throw err_8;
|
|
4141
|
-
case 5: return [2, {
|
|
4142
|
-
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
4143
|
-
additionalSigners: additionalSigners
|
|
4144
|
-
}];
|
|
4145
|
-
}
|
|
4146
|
-
});
|
|
4147
|
-
}); };
|
|
4148
|
-
this.levelUp = function (poolConfig, nftMint, authorizationRulesAccount) { return __awaiter(_this, void 0, void 0, function () {
|
|
4149
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, nftTradingAccount, metadataAccount, levelUpInstruction, err_9;
|
|
4150
|
-
return __generator(this, function (_a) {
|
|
4151
|
-
switch (_a.label) {
|
|
4152
|
-
case 0:
|
|
4153
|
-
publicKey = this.provider.wallet.publicKey;
|
|
4154
|
-
preInstructions = [];
|
|
4155
|
-
instructions = [];
|
|
4156
|
-
postInstructions = [];
|
|
4157
|
-
additionalSigners = [];
|
|
4158
|
-
_a.label = 1;
|
|
4159
|
-
case 1:
|
|
4160
|
-
_a.trys.push([1, 3, , 4]);
|
|
4161
|
-
nftTradingAccount = web3_js_1.PublicKey.findProgramAddressSync([
|
|
4162
|
-
Buffer.from("trading"),
|
|
4163
|
-
nftMint.toBuffer(),
|
|
4164
|
-
], this.programId)[0];
|
|
4165
|
-
metadataAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("metadata"), constants_1.METAPLEX_PROGRAM_ID.toBuffer(), nftMint.toBuffer()], constants_1.METAPLEX_PROGRAM_ID)[0];
|
|
4166
|
-
return [4, this.program.methods
|
|
4167
|
-
.levelUp({})
|
|
4168
|
-
.accounts({
|
|
4169
|
-
owner: publicKey,
|
|
4170
|
-
perpetuals: this.perpetuals.publicKey,
|
|
4171
|
-
pool: poolConfig.poolAddress,
|
|
4172
|
-
metadataAccount: metadataAccount,
|
|
4173
|
-
nftMint: nftMint,
|
|
4174
|
-
metadataProgram: constants_1.METAPLEX_PROGRAM_ID,
|
|
4175
|
-
tradingAccount: nftTradingAccount,
|
|
4176
|
-
transferAuthority: this.authority.publicKey,
|
|
4177
|
-
authorizationRulesAccount: authorizationRulesAccount,
|
|
4178
|
-
authorizationRulesProgram: new web3_js_1.PublicKey('auth9SigNpDKz4sJJ1DfCTuZrZNSAgh9sFD3rboVmgg'),
|
|
4179
|
-
systemProgram: web3_js_1.SystemProgram.programId,
|
|
4180
|
-
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY
|
|
4181
|
-
})
|
|
4182
|
-
.instruction()];
|
|
4183
|
-
case 2:
|
|
4184
|
-
levelUpInstruction = _a.sent();
|
|
4185
|
-
instructions.push(levelUpInstruction);
|
|
4186
|
-
return [3, 4];
|
|
4187
|
-
case 3:
|
|
4188
|
-
err_9 = _a.sent();
|
|
4189
|
-
console.log("perpClient levelUp error:: ", err_9);
|
|
4190
|
-
throw err_9;
|
|
4191
|
-
case 4: return [2, {
|
|
4192
|
-
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
4193
|
-
additionalSigners: additionalSigners
|
|
4194
|
-
}];
|
|
4195
|
-
}
|
|
4196
|
-
});
|
|
4197
|
-
}); };
|
|
4198
3990
|
this.depositStake = function (owner, feePayer, depositAmount, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
4199
|
-
var preInstructions, instructions, postInstructions, additionalSigners, lpTokenMint, poolStakedLpVault, flpStakeAccount, userLpTokenAccount, depositStakeInstruction,
|
|
3991
|
+
var preInstructions, instructions, postInstructions, additionalSigners, lpTokenMint, poolStakedLpVault, flpStakeAccount, userLpTokenAccount, depositStakeInstruction, err_8;
|
|
4200
3992
|
return __generator(this, function (_a) {
|
|
4201
3993
|
switch (_a.label) {
|
|
4202
3994
|
case 0:
|
|
@@ -4238,9 +4030,9 @@ var PerpetualsClient = (function () {
|
|
|
4238
4030
|
instructions.push(depositStakeInstruction);
|
|
4239
4031
|
return [3, 5];
|
|
4240
4032
|
case 4:
|
|
4241
|
-
|
|
4242
|
-
console.log("perpClient depositStaking error:: ",
|
|
4243
|
-
throw
|
|
4033
|
+
err_8 = _a.sent();
|
|
4034
|
+
console.log("perpClient depositStaking error:: ", err_8);
|
|
4035
|
+
throw err_8;
|
|
4244
4036
|
case 5: return [2, {
|
|
4245
4037
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
4246
4038
|
additionalSigners: additionalSigners
|
|
@@ -4249,7 +4041,7 @@ var PerpetualsClient = (function () {
|
|
|
4249
4041
|
});
|
|
4250
4042
|
}); };
|
|
4251
4043
|
this.refreshStakeWithAllFlpStakeAccounts = function (rewardSymbol, poolConfig, flpStakeAccountPks) { return __awaiter(_this, void 0, void 0, function () {
|
|
4252
|
-
var rewardCustodyMint, rewardCustodyConfig, pool, feeDistributionTokenAccount, custodyAccountMetas, _i, _a, custody, maxFlpStakeAccountPkLength, flpStakeAccountMetas, _b, flpStakeAccountPks_1, flpStakeAccountPk, refreshStakeInstruction,
|
|
4044
|
+
var rewardCustodyMint, rewardCustodyConfig, pool, feeDistributionTokenAccount, custodyAccountMetas, _i, _a, custody, maxFlpStakeAccountPkLength, flpStakeAccountMetas, _b, flpStakeAccountPks_1, flpStakeAccountPk, refreshStakeInstruction, err_9;
|
|
4253
4045
|
return __generator(this, function (_c) {
|
|
4254
4046
|
switch (_c.label) {
|
|
4255
4047
|
case 0:
|
|
@@ -4296,9 +4088,9 @@ var PerpetualsClient = (function () {
|
|
|
4296
4088
|
refreshStakeInstruction = _c.sent();
|
|
4297
4089
|
return [2, refreshStakeInstruction];
|
|
4298
4090
|
case 2:
|
|
4299
|
-
|
|
4300
|
-
console.log("perpClient refreshStaking error:: ",
|
|
4301
|
-
throw
|
|
4091
|
+
err_9 = _c.sent();
|
|
4092
|
+
console.log("perpClient refreshStaking error:: ", err_9);
|
|
4093
|
+
throw err_9;
|
|
4302
4094
|
case 3: return [2];
|
|
4303
4095
|
}
|
|
4304
4096
|
});
|
|
@@ -4309,7 +4101,7 @@ var PerpetualsClient = (function () {
|
|
|
4309
4101
|
args_1[_i - 3] = arguments[_i];
|
|
4310
4102
|
}
|
|
4311
4103
|
return __awaiter(_this, __spreadArray([rewardSymbol_1, poolConfig_1, flpStakeAccountPk_1], args_1, true), void 0, function (rewardSymbol, poolConfig, flpStakeAccountPk, userPublicKey) {
|
|
4312
|
-
var publicKey, rewardCustodyMint, rewardCustodyConfig, pool, feeDistributionTokenAccount, custodyAccountMetas, _a, _b, custody, stakeAccountMetas, tokenStakeAccount, refreshStakeInstruction,
|
|
4104
|
+
var publicKey, rewardCustodyMint, rewardCustodyConfig, pool, feeDistributionTokenAccount, custodyAccountMetas, _a, _b, custody, stakeAccountMetas, tokenStakeAccount, refreshStakeInstruction, err_10;
|
|
4313
4105
|
if (userPublicKey === void 0) { userPublicKey = undefined; }
|
|
4314
4106
|
return __generator(this, function (_c) {
|
|
4315
4107
|
switch (_c.label) {
|
|
@@ -4357,9 +4149,9 @@ var PerpetualsClient = (function () {
|
|
|
4357
4149
|
refreshStakeInstruction = _c.sent();
|
|
4358
4150
|
return [2, refreshStakeInstruction];
|
|
4359
4151
|
case 2:
|
|
4360
|
-
|
|
4361
|
-
console.log("perpClient refreshStaking error:: ",
|
|
4362
|
-
throw
|
|
4152
|
+
err_10 = _c.sent();
|
|
4153
|
+
console.log("perpClient refreshStaking error:: ", err_10);
|
|
4154
|
+
throw err_10;
|
|
4363
4155
|
case 3: return [2];
|
|
4364
4156
|
}
|
|
4365
4157
|
});
|
|
@@ -4371,7 +4163,7 @@ var PerpetualsClient = (function () {
|
|
|
4371
4163
|
args_1[_i - 3] = arguments[_i];
|
|
4372
4164
|
}
|
|
4373
4165
|
return __awaiter(_this, __spreadArray([rewardSymbol_1, unstakeAmount_1, poolConfig_1], args_1, true), void 0, function (rewardSymbol, unstakeAmount, poolConfig, userPublicKey) {
|
|
4374
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyConfig, pool, flpStakeAccount, tokenStakeAccount, tokenStakeAccounts, _a, unstakeInstantInstruction,
|
|
4166
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyConfig, pool, flpStakeAccount, tokenStakeAccount, tokenStakeAccounts, _a, unstakeInstantInstruction, err_11;
|
|
4375
4167
|
if (userPublicKey === void 0) { userPublicKey = undefined; }
|
|
4376
4168
|
return __generator(this, function (_b) {
|
|
4377
4169
|
switch (_b.label) {
|
|
@@ -4423,9 +4215,9 @@ var PerpetualsClient = (function () {
|
|
|
4423
4215
|
instructions.push(unstakeInstantInstruction);
|
|
4424
4216
|
return [3, 6];
|
|
4425
4217
|
case 5:
|
|
4426
|
-
|
|
4427
|
-
console.log("perpClient unstakeInstant error:: ",
|
|
4428
|
-
throw
|
|
4218
|
+
err_11 = _b.sent();
|
|
4219
|
+
console.log("perpClient unstakeInstant error:: ", err_11);
|
|
4220
|
+
throw err_11;
|
|
4429
4221
|
case 6: return [2, {
|
|
4430
4222
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
4431
4223
|
additionalSigners: additionalSigners
|
|
@@ -4435,7 +4227,7 @@ var PerpetualsClient = (function () {
|
|
|
4435
4227
|
});
|
|
4436
4228
|
};
|
|
4437
4229
|
this.setFeeShareBps = function (poolConfig, flpStakeAccountPks) { return __awaiter(_this, void 0, void 0, function () {
|
|
4438
|
-
var publicKey, pool, custodyAccountMetas, _i, _a, custody, maxFlpStakeAccountPkLength, flpStakeAccountMetas, _b, flpStakeAccountPks_2, flpStakeAccountPk, refreshStakeInstruction,
|
|
4230
|
+
var publicKey, pool, custodyAccountMetas, _i, _a, custody, maxFlpStakeAccountPkLength, flpStakeAccountMetas, _b, flpStakeAccountPks_2, flpStakeAccountPk, refreshStakeInstruction, err_12;
|
|
4439
4231
|
return __generator(this, function (_c) {
|
|
4440
4232
|
switch (_c.label) {
|
|
4441
4233
|
case 0:
|
|
@@ -4479,15 +4271,15 @@ var PerpetualsClient = (function () {
|
|
|
4479
4271
|
refreshStakeInstruction = _c.sent();
|
|
4480
4272
|
return [2, refreshStakeInstruction];
|
|
4481
4273
|
case 2:
|
|
4482
|
-
|
|
4483
|
-
console.log("perpClient refreshStaking error:: ",
|
|
4484
|
-
throw
|
|
4274
|
+
err_12 = _c.sent();
|
|
4275
|
+
console.log("perpClient refreshStaking error:: ", err_12);
|
|
4276
|
+
throw err_12;
|
|
4485
4277
|
case 3: return [2];
|
|
4486
4278
|
}
|
|
4487
4279
|
});
|
|
4488
4280
|
}); };
|
|
4489
4281
|
this.unstakeRequest = function (unstakeAmount, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
4490
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, pool, flpStakeAccount, unstakeRequestInstruction,
|
|
4282
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, pool, flpStakeAccount, unstakeRequestInstruction, err_13;
|
|
4491
4283
|
return __generator(this, function (_a) {
|
|
4492
4284
|
switch (_a.label) {
|
|
4493
4285
|
case 0:
|
|
@@ -4521,9 +4313,9 @@ var PerpetualsClient = (function () {
|
|
|
4521
4313
|
instructions.push(unstakeRequestInstruction);
|
|
4522
4314
|
return [3, 4];
|
|
4523
4315
|
case 3:
|
|
4524
|
-
|
|
4525
|
-
console.log("perpClient unstakeRequest error:: ",
|
|
4526
|
-
throw
|
|
4316
|
+
err_13 = _a.sent();
|
|
4317
|
+
console.log("perpClient unstakeRequest error:: ", err_13);
|
|
4318
|
+
throw err_13;
|
|
4527
4319
|
case 4: return [2, {
|
|
4528
4320
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
4529
4321
|
additionalSigners: additionalSigners
|
|
@@ -4537,7 +4329,7 @@ var PerpetualsClient = (function () {
|
|
|
4537
4329
|
args_1[_i - 1] = arguments[_i];
|
|
4538
4330
|
}
|
|
4539
4331
|
return __awaiter(_this, __spreadArray([poolConfig_1], args_1, true), void 0, function (poolConfig, pendingActivation, deactivated, createUserLPTA, userPublicKey) {
|
|
4540
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, lpTokenMint, pool, poolStakedLpVault, flpStakeAccount, userLpTokenAccount, _a, withdrawStakeInstruction,
|
|
4332
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, lpTokenMint, pool, poolStakedLpVault, flpStakeAccount, userLpTokenAccount, _a, withdrawStakeInstruction, err_14;
|
|
4541
4333
|
if (pendingActivation === void 0) { pendingActivation = true; }
|
|
4542
4334
|
if (deactivated === void 0) { deactivated = true; }
|
|
4543
4335
|
if (createUserLPTA === void 0) { createUserLPTA = true; }
|
|
@@ -4593,9 +4385,9 @@ var PerpetualsClient = (function () {
|
|
|
4593
4385
|
instructions.push(withdrawStakeInstruction);
|
|
4594
4386
|
return [3, 6];
|
|
4595
4387
|
case 5:
|
|
4596
|
-
|
|
4597
|
-
console.log("perpClient withdrawStake error:: ",
|
|
4598
|
-
throw
|
|
4388
|
+
err_14 = _b.sent();
|
|
4389
|
+
console.log("perpClient withdrawStake error:: ", err_14);
|
|
4390
|
+
throw err_14;
|
|
4599
4391
|
case 6: return [2, {
|
|
4600
4392
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
4601
4393
|
additionalSigners: additionalSigners
|
|
@@ -4610,7 +4402,7 @@ var PerpetualsClient = (function () {
|
|
|
4610
4402
|
args_1[_i - 3] = arguments[_i];
|
|
4611
4403
|
}
|
|
4612
4404
|
return __awaiter(_this, __spreadArray([rewardSymbol_1, poolConfig_1, tokenStakeAccount_1], args_1, true), void 0, function (rewardSymbol, poolConfig, tokenStakeAccount, createUserATA) {
|
|
4613
|
-
var publicKey, rewardCustodyMint, rewardCustodyConfig, preInstructions, instructions, postInstructions, additionalSigners, pool, flpStakeAccount, receivingTokenAccount, _a, tokenStakeAccounts, withdrawStakeInstruction,
|
|
4405
|
+
var publicKey, rewardCustodyMint, rewardCustodyConfig, preInstructions, instructions, postInstructions, additionalSigners, pool, flpStakeAccount, receivingTokenAccount, _a, tokenStakeAccounts, withdrawStakeInstruction, err_15;
|
|
4614
4406
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
4615
4407
|
return __generator(this, function (_b) {
|
|
4616
4408
|
switch (_b.label) {
|
|
@@ -4671,9 +4463,9 @@ var PerpetualsClient = (function () {
|
|
|
4671
4463
|
instructions.push(withdrawStakeInstruction);
|
|
4672
4464
|
return [3, 6];
|
|
4673
4465
|
case 5:
|
|
4674
|
-
|
|
4675
|
-
console.log("perpClient withdrawStake error:: ",
|
|
4676
|
-
throw
|
|
4466
|
+
err_15 = _b.sent();
|
|
4467
|
+
console.log("perpClient withdrawStake error:: ", err_15);
|
|
4468
|
+
throw err_15;
|
|
4677
4469
|
case 6: return [2, {
|
|
4678
4470
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
4679
4471
|
additionalSigners: additionalSigners
|
|
@@ -4688,7 +4480,7 @@ var PerpetualsClient = (function () {
|
|
|
4688
4480
|
args_1[_i - 5] = arguments[_i];
|
|
4689
4481
|
}
|
|
4690
4482
|
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) {
|
|
4691
|
-
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,
|
|
4483
|
+
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, err_16;
|
|
4692
4484
|
if (skipBalanceChecks === void 0) { skipBalanceChecks = false; }
|
|
4693
4485
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
4694
4486
|
if (userPublicKey === void 0) { userPublicKey = undefined; }
|
|
@@ -4816,8 +4608,8 @@ var PerpetualsClient = (function () {
|
|
|
4816
4608
|
instructions.push(addCompoundingLiquidity);
|
|
4817
4609
|
return [3, 10];
|
|
4818
4610
|
case 9:
|
|
4819
|
-
|
|
4820
|
-
console.log("perpClient addCompoundingLiquidity error:: ",
|
|
4611
|
+
err_16 = _f.sent();
|
|
4612
|
+
console.log("perpClient addCompoundingLiquidity error:: ", err_16);
|
|
4821
4613
|
return [3, 10];
|
|
4822
4614
|
case 10: return [2, {
|
|
4823
4615
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
@@ -4833,7 +4625,7 @@ var PerpetualsClient = (function () {
|
|
|
4833
4625
|
args_1[_i - 5] = arguments[_i];
|
|
4834
4626
|
}
|
|
4835
4627
|
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) {
|
|
4836
|
-
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,
|
|
4628
|
+
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, err_17;
|
|
4837
4629
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
4838
4630
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
4839
4631
|
if (userPublicKey === void 0) { userPublicKey = undefined; }
|
|
@@ -4945,8 +4737,8 @@ var PerpetualsClient = (function () {
|
|
|
4945
4737
|
instructions.push(removeCompoundingLiquidity);
|
|
4946
4738
|
return [3, 8];
|
|
4947
4739
|
case 7:
|
|
4948
|
-
|
|
4949
|
-
console.log("perpClient removeCompoundingLiquidity error:: ",
|
|
4740
|
+
err_17 = _f.sent();
|
|
4741
|
+
console.log("perpClient removeCompoundingLiquidity error:: ", err_17);
|
|
4950
4742
|
return [3, 8];
|
|
4951
4743
|
case 8: return [2, {
|
|
4952
4744
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
@@ -4962,7 +4754,7 @@ var PerpetualsClient = (function () {
|
|
|
4962
4754
|
args_1[_i - 3] = arguments[_i];
|
|
4963
4755
|
}
|
|
4964
4756
|
return __awaiter(_this, __spreadArray([amount_1, rewardTokenMint_1, poolConfig_1], args_1, true), void 0, function (amount, rewardTokenMint, poolConfig, createUserATA) {
|
|
4965
|
-
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,
|
|
4757
|
+
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;
|
|
4966
4758
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
4967
4759
|
return __generator(this, function (_g) {
|
|
4968
4760
|
switch (_g.label) {
|
|
@@ -5060,8 +4852,8 @@ var PerpetualsClient = (function () {
|
|
|
5060
4852
|
instructions.push(migrateStake);
|
|
5061
4853
|
return [3, 8];
|
|
5062
4854
|
case 7:
|
|
5063
|
-
|
|
5064
|
-
console.log("perpClient migrateStake error:: ",
|
|
4855
|
+
err_18 = _g.sent();
|
|
4856
|
+
console.log("perpClient migrateStake error:: ", err_18);
|
|
5065
4857
|
return [3, 8];
|
|
5066
4858
|
case 8: return [2, {
|
|
5067
4859
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
@@ -5072,7 +4864,7 @@ var PerpetualsClient = (function () {
|
|
|
5072
4864
|
});
|
|
5073
4865
|
};
|
|
5074
4866
|
this.migrateFlp = function (amount, rewardTokenMint, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
5075
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustody, lpTokenMint, compoundingTokenMint, compoudingTokenAccount, flpStakeAccount, poolStakedLpVault, custodyAccountMetas, custodyOracleAccountMetas, markets, _i, _a, custody, _b, _c, market, migrateFlp,
|
|
4867
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustody, lpTokenMint, compoundingTokenMint, compoudingTokenAccount, flpStakeAccount, poolStakedLpVault, custodyAccountMetas, custodyOracleAccountMetas, markets, _i, _a, custody, _b, _c, market, migrateFlp, err_19;
|
|
5076
4868
|
return __generator(this, function (_d) {
|
|
5077
4869
|
switch (_d.label) {
|
|
5078
4870
|
case 0:
|
|
@@ -5144,8 +4936,8 @@ var PerpetualsClient = (function () {
|
|
|
5144
4936
|
instructions.push(migrateFlp);
|
|
5145
4937
|
return [3, 4];
|
|
5146
4938
|
case 3:
|
|
5147
|
-
|
|
5148
|
-
console.log("perpClient migrateFlp error:: ",
|
|
4939
|
+
err_19 = _d.sent();
|
|
4940
|
+
console.log("perpClient migrateFlp error:: ", err_19);
|
|
5149
4941
|
return [3, 4];
|
|
5150
4942
|
case 4: return [2, {
|
|
5151
4943
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
@@ -5160,7 +4952,7 @@ var PerpetualsClient = (function () {
|
|
|
5160
4952
|
args_1[_i - 1] = arguments[_i];
|
|
5161
4953
|
}
|
|
5162
4954
|
return __awaiter(_this, __spreadArray([poolConfig_1], args_1, true), void 0, function (poolConfig, rewardTokenSymbol) {
|
|
5163
|
-
var instructions, additionalSigners, rewardCustody, lpTokenMint, custodyAccountMetas, custodyOracleAccountMetas, markets, _a, _b, custody, _c, _d, market, compoundingFee,
|
|
4955
|
+
var instructions, additionalSigners, rewardCustody, lpTokenMint, custodyAccountMetas, custodyOracleAccountMetas, markets, _a, _b, custody, _c, _d, market, compoundingFee, err_20;
|
|
5164
4956
|
if (rewardTokenSymbol === void 0) { rewardTokenSymbol = 'USDC'; }
|
|
5165
4957
|
return __generator(this, function (_e) {
|
|
5166
4958
|
switch (_e.label) {
|
|
@@ -5218,8 +5010,8 @@ var PerpetualsClient = (function () {
|
|
|
5218
5010
|
instructions.push(compoundingFee);
|
|
5219
5011
|
return [3, 4];
|
|
5220
5012
|
case 3:
|
|
5221
|
-
|
|
5222
|
-
console.log("perpClient compoundingFee error:: ",
|
|
5013
|
+
err_20 = _e.sent();
|
|
5014
|
+
console.log("perpClient compoundingFee error:: ", err_20);
|
|
5223
5015
|
return [3, 4];
|
|
5224
5016
|
case 4: return [2, {
|
|
5225
5017
|
instructions: __spreadArray([], instructions, true),
|
|
@@ -5229,162 +5021,24 @@ var PerpetualsClient = (function () {
|
|
|
5229
5021
|
});
|
|
5230
5022
|
});
|
|
5231
5023
|
};
|
|
5232
|
-
this.
|
|
5233
|
-
var preInstructions, instructions, postInstructions, additionalSigners,
|
|
5234
|
-
return __generator(this, function (
|
|
5235
|
-
switch (
|
|
5024
|
+
this.depositTokenStake = function (owner, feePayer, depositAmount, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
5025
|
+
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, userTokenAccount, depositTokenStakeInstruction, err_21;
|
|
5026
|
+
return __generator(this, function (_a) {
|
|
5027
|
+
switch (_a.label) {
|
|
5236
5028
|
case 0:
|
|
5237
5029
|
preInstructions = [];
|
|
5238
5030
|
instructions = [];
|
|
5239
5031
|
postInstructions = [];
|
|
5240
5032
|
additionalSigners = [];
|
|
5241
|
-
|
|
5033
|
+
_a.label = 1;
|
|
5242
5034
|
case 1:
|
|
5243
|
-
|
|
5244
|
-
|
|
5245
|
-
|
|
5246
|
-
userTokenAccount = _b.sent();
|
|
5247
|
-
_a = createAta;
|
|
5248
|
-
if (!_a) return [3, 4];
|
|
5035
|
+
_a.trys.push([1, 4, , 5]);
|
|
5036
|
+
tokenStakeAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("token_stake"), owner.toBuffer()], this.programId)[0];
|
|
5037
|
+
userTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(poolConfig.tokenMint, owner, true);
|
|
5249
5038
|
return [4, (0, utils_1.checkIfAccountExists)(userTokenAccount, this.provider.connection)];
|
|
5250
|
-
case
|
|
5251
|
-
|
|
5252
|
-
|
|
5253
|
-
case 4:
|
|
5254
|
-
if (_a) {
|
|
5255
|
-
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(owner, userTokenAccount, owner, poolConfig.tokenMint));
|
|
5256
|
-
}
|
|
5257
|
-
return [4, (0, spl_token_1.getAssociatedTokenAddress)(nftMint, owner, true)];
|
|
5258
|
-
case 5:
|
|
5259
|
-
nftTokenAccount = _b.sent();
|
|
5260
|
-
nftTradingAccount = web3_js_1.PublicKey.findProgramAddressSync([
|
|
5261
|
-
Buffer.from("trading"),
|
|
5262
|
-
nftMint.toBuffer(),
|
|
5263
|
-
], this.programId)[0];
|
|
5264
|
-
metadataAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("metadata"), constants_1.METAPLEX_PROGRAM_ID.toBuffer(), nftMint.toBuffer()], constants_1.METAPLEX_PROGRAM_ID)[0];
|
|
5265
|
-
collectionMetadata = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("metadata"), constants_1.METAPLEX_PROGRAM_ID.toBuffer(), poolConfig.nftCollectionAddress.toBuffer()], constants_1.METAPLEX_PROGRAM_ID)[0];
|
|
5266
|
-
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];
|
|
5267
|
-
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];
|
|
5268
|
-
return [4, this.program.methods
|
|
5269
|
-
.burnAndClaim({})
|
|
5270
|
-
.accounts({
|
|
5271
|
-
owner: owner,
|
|
5272
|
-
receivingTokenAccount: userTokenAccount,
|
|
5273
|
-
perpetuals: this.perpetuals.publicKey,
|
|
5274
|
-
tokenVault: poolConfig.tokenVault,
|
|
5275
|
-
tokenVaultTokenAccount: poolConfig.tokenVaultTokenAccount,
|
|
5276
|
-
metadataAccount: metadataAccount,
|
|
5277
|
-
collectionMetadata: collectionMetadata,
|
|
5278
|
-
edition: edition,
|
|
5279
|
-
tokenRecord: tokenRecord,
|
|
5280
|
-
tradingAccount: nftTradingAccount,
|
|
5281
|
-
transferAuthority: poolConfig.transferAuthority,
|
|
5282
|
-
metadataProgram: constants_1.METAPLEX_PROGRAM_ID,
|
|
5283
|
-
nftMint: nftMint,
|
|
5284
|
-
nftTokenAccount: nftTokenAccount,
|
|
5285
|
-
systemProgram: web3_js_1.SystemProgram.programId,
|
|
5286
|
-
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
5287
|
-
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
|
5288
|
-
eventAuthority: this.eventAuthority.publicKey,
|
|
5289
|
-
program: this.programId,
|
|
5290
|
-
receivingTokenMint: poolConfig.tokenMint,
|
|
5291
|
-
})
|
|
5292
|
-
.instruction()];
|
|
5293
|
-
case 6:
|
|
5294
|
-
burnAndClaimInstruction = _b.sent();
|
|
5295
|
-
instructions.push(burnAndClaimInstruction);
|
|
5296
|
-
return [3, 8];
|
|
5297
|
-
case 7:
|
|
5298
|
-
err_23 = _b.sent();
|
|
5299
|
-
console.log("perpClient burnAndClaimInstruction error:: ", err_23);
|
|
5300
|
-
throw err_23;
|
|
5301
|
-
case 8: return [2, {
|
|
5302
|
-
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5303
|
-
additionalSigners: additionalSigners
|
|
5304
|
-
}];
|
|
5305
|
-
}
|
|
5306
|
-
});
|
|
5307
|
-
}); };
|
|
5308
|
-
this.burnAndStake = function (owner, feePayer, nftMint, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
5309
|
-
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, nftTokenAccount, nftTradingAccount, metadataAccount, collectionMetadata, edition, tokenRecord, burnAndStakeInstruction, err_24;
|
|
5310
|
-
return __generator(this, function (_a) {
|
|
5311
|
-
switch (_a.label) {
|
|
5312
|
-
case 0:
|
|
5313
|
-
preInstructions = [];
|
|
5314
|
-
instructions = [];
|
|
5315
|
-
postInstructions = [];
|
|
5316
|
-
additionalSigners = [];
|
|
5317
|
-
_a.label = 1;
|
|
5318
|
-
case 1:
|
|
5319
|
-
_a.trys.push([1, 3, , 4]);
|
|
5320
|
-
tokenStakeAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("token_stake"), owner.toBuffer()], this.programId)[0];
|
|
5321
|
-
nftTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(nftMint, owner, true);
|
|
5322
|
-
nftTradingAccount = web3_js_1.PublicKey.findProgramAddressSync([
|
|
5323
|
-
Buffer.from("trading"),
|
|
5324
|
-
nftMint.toBuffer(),
|
|
5325
|
-
], this.programId)[0];
|
|
5326
|
-
metadataAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("metadata"), constants_1.METAPLEX_PROGRAM_ID.toBuffer(), nftMint.toBuffer()], constants_1.METAPLEX_PROGRAM_ID)[0];
|
|
5327
|
-
collectionMetadata = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("metadata"), constants_1.METAPLEX_PROGRAM_ID.toBuffer(), poolConfig.nftCollectionAddress.toBuffer()], constants_1.METAPLEX_PROGRAM_ID)[0];
|
|
5328
|
-
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];
|
|
5329
|
-
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];
|
|
5330
|
-
return [4, this.program.methods
|
|
5331
|
-
.burnAndStake({})
|
|
5332
|
-
.accounts({
|
|
5333
|
-
owner: owner,
|
|
5334
|
-
feePayer: feePayer,
|
|
5335
|
-
perpetuals: this.perpetuals.publicKey,
|
|
5336
|
-
tokenVault: poolConfig.tokenVault,
|
|
5337
|
-
tokenVaultTokenAccount: poolConfig.tokenVaultTokenAccount,
|
|
5338
|
-
tokenStakeAccount: tokenStakeAccount,
|
|
5339
|
-
metadataAccount: metadataAccount,
|
|
5340
|
-
collectionMetadata: collectionMetadata,
|
|
5341
|
-
edition: edition,
|
|
5342
|
-
tokenRecord: tokenRecord,
|
|
5343
|
-
tradingAccount: nftTradingAccount,
|
|
5344
|
-
transferAuthority: poolConfig.transferAuthority,
|
|
5345
|
-
metadataProgram: constants_1.METAPLEX_PROGRAM_ID,
|
|
5346
|
-
nftMint: nftMint,
|
|
5347
|
-
nftTokenAccount: nftTokenAccount,
|
|
5348
|
-
systemProgram: web3_js_1.SystemProgram.programId,
|
|
5349
|
-
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
5350
|
-
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
|
5351
|
-
eventAuthority: this.eventAuthority.publicKey,
|
|
5352
|
-
program: this.programId
|
|
5353
|
-
})
|
|
5354
|
-
.instruction()];
|
|
5355
|
-
case 2:
|
|
5356
|
-
burnAndStakeInstruction = _a.sent();
|
|
5357
|
-
instructions.push(burnAndStakeInstruction);
|
|
5358
|
-
return [3, 4];
|
|
5359
|
-
case 3:
|
|
5360
|
-
err_24 = _a.sent();
|
|
5361
|
-
console.log("perpClient burnAndStakeInstruction error:: ", err_24);
|
|
5362
|
-
throw err_24;
|
|
5363
|
-
case 4: return [2, {
|
|
5364
|
-
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5365
|
-
additionalSigners: additionalSigners
|
|
5366
|
-
}];
|
|
5367
|
-
}
|
|
5368
|
-
});
|
|
5369
|
-
}); };
|
|
5370
|
-
this.depositTokenStake = function (owner, feePayer, depositAmount, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
5371
|
-
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, userTokenAccount, depositTokenStakeInstruction, err_25;
|
|
5372
|
-
return __generator(this, function (_a) {
|
|
5373
|
-
switch (_a.label) {
|
|
5374
|
-
case 0:
|
|
5375
|
-
preInstructions = [];
|
|
5376
|
-
instructions = [];
|
|
5377
|
-
postInstructions = [];
|
|
5378
|
-
additionalSigners = [];
|
|
5379
|
-
_a.label = 1;
|
|
5380
|
-
case 1:
|
|
5381
|
-
_a.trys.push([1, 4, , 5]);
|
|
5382
|
-
tokenStakeAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("token_stake"), owner.toBuffer()], this.programId)[0];
|
|
5383
|
-
userTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(poolConfig.tokenMint, owner, true);
|
|
5384
|
-
return [4, (0, utils_1.checkIfAccountExists)(userTokenAccount, this.provider.connection)];
|
|
5385
|
-
case 2:
|
|
5386
|
-
if (!(_a.sent())) {
|
|
5387
|
-
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(feePayer, userTokenAccount, owner, poolConfig.tokenMint));
|
|
5039
|
+
case 2:
|
|
5040
|
+
if (!(_a.sent())) {
|
|
5041
|
+
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(feePayer, userTokenAccount, owner, poolConfig.tokenMint));
|
|
5388
5042
|
}
|
|
5389
5043
|
return [4, this.program.methods
|
|
5390
5044
|
.depositTokenStake({
|
|
@@ -5410,9 +5064,9 @@ var PerpetualsClient = (function () {
|
|
|
5410
5064
|
instructions.push(depositTokenStakeInstruction);
|
|
5411
5065
|
return [3, 5];
|
|
5412
5066
|
case 4:
|
|
5413
|
-
|
|
5414
|
-
console.log("perpClient depositStakingInstruction error:: ",
|
|
5415
|
-
throw
|
|
5067
|
+
err_21 = _a.sent();
|
|
5068
|
+
console.log("perpClient depositStakingInstruction error:: ", err_21);
|
|
5069
|
+
throw err_21;
|
|
5416
5070
|
case 5: return [2, {
|
|
5417
5071
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5418
5072
|
additionalSigners: additionalSigners
|
|
@@ -5421,7 +5075,7 @@ var PerpetualsClient = (function () {
|
|
|
5421
5075
|
});
|
|
5422
5076
|
}); };
|
|
5423
5077
|
this.unstakeTokenRequest = function (owner, unstakeAmount, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
5424
|
-
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, unstakeTokenRequestInstruction,
|
|
5078
|
+
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, unstakeTokenRequestInstruction, err_22;
|
|
5425
5079
|
return __generator(this, function (_a) {
|
|
5426
5080
|
switch (_a.label) {
|
|
5427
5081
|
case 0:
|
|
@@ -5450,9 +5104,9 @@ var PerpetualsClient = (function () {
|
|
|
5450
5104
|
instructions.push(unstakeTokenRequestInstruction);
|
|
5451
5105
|
return [3, 4];
|
|
5452
5106
|
case 3:
|
|
5453
|
-
|
|
5454
|
-
console.log("perpClient unstakeTokenRequestInstruction error:: ",
|
|
5455
|
-
throw
|
|
5107
|
+
err_22 = _a.sent();
|
|
5108
|
+
console.log("perpClient unstakeTokenRequestInstruction error:: ", err_22);
|
|
5109
|
+
throw err_22;
|
|
5456
5110
|
case 4: return [2, {
|
|
5457
5111
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5458
5112
|
additionalSigners: additionalSigners
|
|
@@ -5461,7 +5115,7 @@ var PerpetualsClient = (function () {
|
|
|
5461
5115
|
});
|
|
5462
5116
|
}); };
|
|
5463
5117
|
this.unstakeTokenInstant = function (owner, unstakeAmount, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
5464
|
-
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, userTokenAccount, unstakeTokenInstantInstruction,
|
|
5118
|
+
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, userTokenAccount, unstakeTokenInstantInstruction, err_23;
|
|
5465
5119
|
return __generator(this, function (_a) {
|
|
5466
5120
|
switch (_a.label) {
|
|
5467
5121
|
case 0:
|
|
@@ -5502,9 +5156,9 @@ var PerpetualsClient = (function () {
|
|
|
5502
5156
|
instructions.push(unstakeTokenInstantInstruction);
|
|
5503
5157
|
return [3, 5];
|
|
5504
5158
|
case 4:
|
|
5505
|
-
|
|
5506
|
-
console.log("perpClient unstakeTokenInstantInstruction error:: ",
|
|
5507
|
-
throw
|
|
5159
|
+
err_23 = _a.sent();
|
|
5160
|
+
console.log("perpClient unstakeTokenInstantInstruction error:: ", err_23);
|
|
5161
|
+
throw err_23;
|
|
5508
5162
|
case 5: return [2, {
|
|
5509
5163
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5510
5164
|
additionalSigners: additionalSigners
|
|
@@ -5513,7 +5167,7 @@ var PerpetualsClient = (function () {
|
|
|
5513
5167
|
});
|
|
5514
5168
|
}); };
|
|
5515
5169
|
this.withdrawToken = function (owner, withdrawRequestId, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
5516
|
-
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, userTokenAccount, withdrawTokenInstruction,
|
|
5170
|
+
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, userTokenAccount, withdrawTokenInstruction, err_24;
|
|
5517
5171
|
return __generator(this, function (_a) {
|
|
5518
5172
|
switch (_a.label) {
|
|
5519
5173
|
case 0:
|
|
@@ -5554,9 +5208,9 @@ var PerpetualsClient = (function () {
|
|
|
5554
5208
|
instructions.push(withdrawTokenInstruction);
|
|
5555
5209
|
return [3, 5];
|
|
5556
5210
|
case 4:
|
|
5557
|
-
|
|
5558
|
-
console.log("perpClient withdrawTokenInstruction error:: ",
|
|
5559
|
-
throw
|
|
5211
|
+
err_24 = _a.sent();
|
|
5212
|
+
console.log("perpClient withdrawTokenInstruction error:: ", err_24);
|
|
5213
|
+
throw err_24;
|
|
5560
5214
|
case 5: return [2, {
|
|
5561
5215
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5562
5216
|
additionalSigners: additionalSigners
|
|
@@ -5565,7 +5219,7 @@ var PerpetualsClient = (function () {
|
|
|
5565
5219
|
});
|
|
5566
5220
|
}); };
|
|
5567
5221
|
this.cancelUnstakeRequest = function (owner, withdrawRequestId, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
5568
|
-
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, cancelUnstakeRequestInstruction,
|
|
5222
|
+
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, cancelUnstakeRequestInstruction, err_25;
|
|
5569
5223
|
return __generator(this, function (_a) {
|
|
5570
5224
|
switch (_a.label) {
|
|
5571
5225
|
case 0:
|
|
@@ -5594,9 +5248,9 @@ var PerpetualsClient = (function () {
|
|
|
5594
5248
|
instructions.push(cancelUnstakeRequestInstruction);
|
|
5595
5249
|
return [3, 4];
|
|
5596
5250
|
case 3:
|
|
5597
|
-
|
|
5598
|
-
console.log("perpClient cancelUnstakeRequestInstruction error:: ",
|
|
5599
|
-
throw
|
|
5251
|
+
err_25 = _a.sent();
|
|
5252
|
+
console.log("perpClient cancelUnstakeRequestInstruction error:: ", err_25);
|
|
5253
|
+
throw err_25;
|
|
5600
5254
|
case 4: return [2, {
|
|
5601
5255
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5602
5256
|
additionalSigners: additionalSigners
|
|
@@ -5610,7 +5264,7 @@ var PerpetualsClient = (function () {
|
|
|
5610
5264
|
args_1[_i - 2] = arguments[_i];
|
|
5611
5265
|
}
|
|
5612
5266
|
return __awaiter(_this, __spreadArray([owner_1, poolConfig_1], args_1, true), void 0, function (owner, poolConfig, createUserATA) {
|
|
5613
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, userTokenAccount, _a, collectTokenRewardInstruction,
|
|
5267
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, userTokenAccount, _a, collectTokenRewardInstruction, err_26;
|
|
5614
5268
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
5615
5269
|
return __generator(this, function (_b) {
|
|
5616
5270
|
switch (_b.label) {
|
|
@@ -5656,9 +5310,9 @@ var PerpetualsClient = (function () {
|
|
|
5656
5310
|
instructions.push(collectTokenRewardInstruction);
|
|
5657
5311
|
return [3, 6];
|
|
5658
5312
|
case 5:
|
|
5659
|
-
|
|
5660
|
-
console.log("perpClient collectTokenRewardInstruction error:: ",
|
|
5661
|
-
throw
|
|
5313
|
+
err_26 = _b.sent();
|
|
5314
|
+
console.log("perpClient collectTokenRewardInstruction error:: ", err_26);
|
|
5315
|
+
throw err_26;
|
|
5662
5316
|
case 6: return [2, {
|
|
5663
5317
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5664
5318
|
additionalSigners: additionalSigners
|
|
@@ -5673,7 +5327,7 @@ var PerpetualsClient = (function () {
|
|
|
5673
5327
|
args_1[_i - 3] = arguments[_i];
|
|
5674
5328
|
}
|
|
5675
5329
|
return __awaiter(_this, __spreadArray([owner_1, rewardSymbol_1, poolConfig_1], args_1, true), void 0, function (owner, rewardSymbol, poolConfig, createUserATA) {
|
|
5676
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyMint, tokenStakeAccount, userTokenAccount, _a, collectRevenueInstruction,
|
|
5330
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyMint, tokenStakeAccount, userTokenAccount, _a, collectRevenueInstruction, err_27;
|
|
5677
5331
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
5678
5332
|
return __generator(this, function (_b) {
|
|
5679
5333
|
switch (_b.label) {
|
|
@@ -5720,9 +5374,9 @@ var PerpetualsClient = (function () {
|
|
|
5720
5374
|
instructions.push(collectRevenueInstruction);
|
|
5721
5375
|
return [3, 6];
|
|
5722
5376
|
case 5:
|
|
5723
|
-
|
|
5724
|
-
console.log("perpClient collectRevenueInstruction error:: ",
|
|
5725
|
-
throw
|
|
5377
|
+
err_27 = _b.sent();
|
|
5378
|
+
console.log("perpClient collectRevenueInstruction error:: ", err_27);
|
|
5379
|
+
throw err_27;
|
|
5726
5380
|
case 6: return [2, {
|
|
5727
5381
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5728
5382
|
additionalSigners: additionalSigners
|
|
@@ -5731,179 +5385,82 @@ var PerpetualsClient = (function () {
|
|
|
5731
5385
|
});
|
|
5732
5386
|
});
|
|
5733
5387
|
};
|
|
5734
|
-
this.
|
|
5735
|
-
var publicKey, rewardCustodyMint, instructions, additionalSigners, fbNftProgramData, rewardVault, rewardTokenAccount, nftTransferAuthority, initRewardVault, err_32;
|
|
5736
|
-
return __generator(this, function (_a) {
|
|
5737
|
-
switch (_a.label) {
|
|
5738
|
-
case 0:
|
|
5739
|
-
publicKey = this.provider.wallet.publicKey;
|
|
5740
|
-
rewardCustodyMint = poolConfig.getTokenFromSymbol(rewardSymbol).mintKey;
|
|
5741
|
-
instructions = [];
|
|
5742
|
-
additionalSigners = [];
|
|
5743
|
-
_a.label = 1;
|
|
5744
|
-
case 1:
|
|
5745
|
-
_a.trys.push([1, 3, , 4]);
|
|
5746
|
-
fbNftProgramData = web3_js_1.PublicKey.findProgramAddressSync([this.programFbnftReward.programId.toBuffer()], new web3_js_1.PublicKey("BPFLoaderUpgradeab1e11111111111111111111111"))[0];
|
|
5747
|
-
rewardVault = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("reward_vault")], this.programFbnftReward.programId)[0];
|
|
5748
|
-
rewardTokenAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("reward_token_account")], this.programFbnftReward.programId)[0];
|
|
5749
|
-
nftTransferAuthority = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("transfer_authority")], this.programFbnftReward.programId)[0];
|
|
5750
|
-
return [4, this.programFbnftReward.methods
|
|
5751
|
-
.initRewardVault({
|
|
5752
|
-
nftCount: nftCount
|
|
5753
|
-
})
|
|
5754
|
-
.accounts({
|
|
5755
|
-
admin: publicKey,
|
|
5756
|
-
transferAuthority: nftTransferAuthority,
|
|
5757
|
-
rewardVault: rewardVault,
|
|
5758
|
-
rewardMint: rewardCustodyMint,
|
|
5759
|
-
rewardTokenAccount: rewardTokenAccount,
|
|
5760
|
-
collectionMint: collectionMint,
|
|
5761
|
-
programData: fbNftProgramData,
|
|
5762
|
-
systemProgram: web3_js_1.SystemProgram.programId,
|
|
5763
|
-
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
5764
|
-
rent: web3_js_1.SYSVAR_RENT_PUBKEY
|
|
5765
|
-
})
|
|
5766
|
-
.instruction()];
|
|
5767
|
-
case 2:
|
|
5768
|
-
initRewardVault = _a.sent();
|
|
5769
|
-
instructions.push(initRewardVault);
|
|
5770
|
-
return [3, 4];
|
|
5771
|
-
case 3:
|
|
5772
|
-
err_32 = _a.sent();
|
|
5773
|
-
console.log("perpClient InitRewardVault error:: ", err_32);
|
|
5774
|
-
throw err_32;
|
|
5775
|
-
case 4: return [2, {
|
|
5776
|
-
instructions: __spreadArray([], instructions, true),
|
|
5777
|
-
additionalSigners: additionalSigners
|
|
5778
|
-
}];
|
|
5779
|
-
}
|
|
5780
|
-
});
|
|
5781
|
-
}); };
|
|
5782
|
-
this.distributeReward = function (rewardAmount, rewardSymbol, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
5783
|
-
var publicKey, rewardCustodyMint, instructions, additionalSigners, fundingAccount, rewardVault, rewardTokenAccount, distributeReward, err_33;
|
|
5784
|
-
return __generator(this, function (_a) {
|
|
5785
|
-
switch (_a.label) {
|
|
5786
|
-
case 0:
|
|
5787
|
-
publicKey = this.provider.wallet.publicKey;
|
|
5788
|
-
rewardCustodyMint = poolConfig.getTokenFromSymbol(rewardSymbol).mintKey;
|
|
5789
|
-
instructions = [];
|
|
5790
|
-
additionalSigners = [];
|
|
5791
|
-
_a.label = 1;
|
|
5792
|
-
case 1:
|
|
5793
|
-
_a.trys.push([1, 3, , 4]);
|
|
5794
|
-
fundingAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(rewardCustodyMint, publicKey, true);
|
|
5795
|
-
rewardVault = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("reward_vault")], this.programFbnftReward.programId)[0];
|
|
5796
|
-
rewardTokenAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("reward_token_account")], this.programFbnftReward.programId)[0];
|
|
5797
|
-
return [4, this.programFbnftReward.methods
|
|
5798
|
-
.distributeRewards({
|
|
5799
|
-
rewardAmount: rewardAmount
|
|
5800
|
-
})
|
|
5801
|
-
.accounts({
|
|
5802
|
-
admin: publicKey,
|
|
5803
|
-
fundingAccount: fundingAccount,
|
|
5804
|
-
rewardVault: rewardVault,
|
|
5805
|
-
rewardTokenAccount: rewardTokenAccount,
|
|
5806
|
-
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
5807
|
-
})
|
|
5808
|
-
.instruction()];
|
|
5809
|
-
case 2:
|
|
5810
|
-
distributeReward = _a.sent();
|
|
5811
|
-
instructions.push(distributeReward);
|
|
5812
|
-
return [3, 4];
|
|
5813
|
-
case 3:
|
|
5814
|
-
err_33 = _a.sent();
|
|
5815
|
-
console.log("perpClient distributeReward error:: ", err_33);
|
|
5816
|
-
throw err_33;
|
|
5817
|
-
case 4: return [2, {
|
|
5818
|
-
instructions: __spreadArray([], instructions, true),
|
|
5819
|
-
additionalSigners: additionalSigners
|
|
5820
|
-
}];
|
|
5821
|
-
}
|
|
5822
|
-
});
|
|
5823
|
-
}); };
|
|
5824
|
-
this.collectNftReward = function (rewardSymbol_1, poolConfig_1, nftMint_1) {
|
|
5388
|
+
this.collectRebate = function (owner_1, rebateSymbol_1, poolConfig_1) {
|
|
5825
5389
|
var args_1 = [];
|
|
5826
5390
|
for (var _i = 3; _i < arguments.length; _i++) {
|
|
5827
5391
|
args_1[_i - 3] = arguments[_i];
|
|
5828
5392
|
}
|
|
5829
|
-
return __awaiter(_this, __spreadArray([
|
|
5830
|
-
var publicKey,
|
|
5393
|
+
return __awaiter(_this, __spreadArray([owner_1, rebateSymbol_1, poolConfig_1], args_1, true), void 0, function (owner, rebateSymbol, poolConfig, createUserATA) {
|
|
5394
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rebateMint, tokenStakeAccount, userTokenAccount, _a, collectRebateInstruction, err_28;
|
|
5831
5395
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
5832
5396
|
return __generator(this, function (_b) {
|
|
5833
5397
|
switch (_b.label) {
|
|
5834
5398
|
case 0:
|
|
5835
5399
|
publicKey = this.provider.wallet.publicKey;
|
|
5836
|
-
|
|
5837
|
-
rewardCustodyMint = rewardToken.mintKey;
|
|
5400
|
+
preInstructions = [];
|
|
5838
5401
|
instructions = [];
|
|
5402
|
+
postInstructions = [];
|
|
5839
5403
|
additionalSigners = [];
|
|
5840
5404
|
_b.label = 1;
|
|
5841
5405
|
case 1:
|
|
5842
5406
|
_b.trys.push([1, 5, , 6]);
|
|
5843
|
-
|
|
5844
|
-
|
|
5845
|
-
|
|
5407
|
+
rebateMint = poolConfig.getTokenFromSymbol(rebateSymbol).mintKey;
|
|
5408
|
+
tokenStakeAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("token_stake"), owner.toBuffer()], this.programId)[0];
|
|
5409
|
+
userTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(rebateMint, owner, true);
|
|
5846
5410
|
_a = createUserATA;
|
|
5847
5411
|
if (!_a) return [3, 3];
|
|
5848
|
-
return [4, (0, utils_1.checkIfAccountExists)(
|
|
5412
|
+
return [4, (0, utils_1.checkIfAccountExists)(userTokenAccount, this.provider.connection)];
|
|
5849
5413
|
case 2:
|
|
5850
5414
|
_a = !(_b.sent());
|
|
5851
5415
|
_b.label = 3;
|
|
5852
5416
|
case 3:
|
|
5853
5417
|
if (_a) {
|
|
5854
|
-
instructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey,
|
|
5855
|
-
}
|
|
5856
|
-
|
|
5857
|
-
|
|
5858
|
-
rewardTokenAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("reward_token_account")], this.programFbnftReward.programId)[0];
|
|
5859
|
-
nftTransferAuthority = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("transfer_authority")], this.programFbnftReward.programId)[0];
|
|
5860
|
-
return [4, this.programFbnftReward.methods
|
|
5861
|
-
.collectReward()
|
|
5418
|
+
instructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, userTokenAccount, publicKey, rebateMint));
|
|
5419
|
+
}
|
|
5420
|
+
return [4, this.program.methods
|
|
5421
|
+
.collectRebate()
|
|
5862
5422
|
.accounts({
|
|
5863
|
-
owner:
|
|
5864
|
-
|
|
5865
|
-
|
|
5866
|
-
|
|
5867
|
-
|
|
5868
|
-
|
|
5869
|
-
|
|
5870
|
-
|
|
5871
|
-
|
|
5872
|
-
|
|
5873
|
-
|
|
5874
|
-
tokenProgram: rewardToken.isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID,
|
|
5423
|
+
owner: owner,
|
|
5424
|
+
receivingTokenAccount: userTokenAccount,
|
|
5425
|
+
perpetuals: this.perpetuals.publicKey,
|
|
5426
|
+
transferAuthority: poolConfig.transferAuthority,
|
|
5427
|
+
rebateVault: poolConfig.rebateVault,
|
|
5428
|
+
rebateTokenAccount: poolConfig.rebateTokenAccount,
|
|
5429
|
+
tokenStakeAccount: tokenStakeAccount,
|
|
5430
|
+
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
5431
|
+
eventAuthority: this.eventAuthority.publicKey,
|
|
5432
|
+
program: this.programId,
|
|
5433
|
+
receivingTokenMint: rebateMint,
|
|
5875
5434
|
})
|
|
5876
5435
|
.instruction()];
|
|
5877
5436
|
case 4:
|
|
5878
|
-
|
|
5879
|
-
instructions.push(
|
|
5437
|
+
collectRebateInstruction = _b.sent();
|
|
5438
|
+
instructions.push(collectRebateInstruction);
|
|
5880
5439
|
return [3, 6];
|
|
5881
5440
|
case 5:
|
|
5882
|
-
|
|
5883
|
-
|
|
5441
|
+
err_28 = _b.sent();
|
|
5442
|
+
console.log("perpClient collectRebateInstruction error:: ", err_28);
|
|
5443
|
+
throw err_28;
|
|
5884
5444
|
case 6: return [2, {
|
|
5885
|
-
instructions: __spreadArray([], instructions, true),
|
|
5445
|
+
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5886
5446
|
additionalSigners: additionalSigners
|
|
5887
5447
|
}];
|
|
5888
5448
|
}
|
|
5889
5449
|
});
|
|
5890
5450
|
});
|
|
5891
5451
|
};
|
|
5892
|
-
this.
|
|
5452
|
+
this.settleRebates = function (owner_1, rebateSymbol_1, rewardSymbol_1, poolConfig_1) {
|
|
5893
5453
|
var args_1 = [];
|
|
5894
|
-
for (var _i =
|
|
5895
|
-
args_1[_i -
|
|
5454
|
+
for (var _i = 4; _i < arguments.length; _i++) {
|
|
5455
|
+
args_1[_i - 4] = arguments[_i];
|
|
5896
5456
|
}
|
|
5897
|
-
return __awaiter(_this, __spreadArray([rewardSymbol_1, poolConfig_1], args_1, true), void 0, function (rewardSymbol, poolConfig, createUserATA
|
|
5898
|
-
var publicKey,
|
|
5457
|
+
return __awaiter(_this, __spreadArray([owner_1, rebateSymbol_1, rewardSymbol_1, poolConfig_1], args_1, true), void 0, function (owner, rebateSymbol, rewardSymbol, poolConfig, createUserATA) {
|
|
5458
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustody, rebateMint, userTokenAccount, _a, settleRebatesInstruction, err_29;
|
|
5899
5459
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
5900
5460
|
return __generator(this, function (_b) {
|
|
5901
5461
|
switch (_b.label) {
|
|
5902
5462
|
case 0:
|
|
5903
5463
|
publicKey = this.provider.wallet.publicKey;
|
|
5904
|
-
rewardToken = poolConfig.getTokenFromSymbol(rewardSymbol);
|
|
5905
|
-
rewardCustodyMint = rewardToken.mintKey;
|
|
5906
|
-
rewardCustodyConfig = poolConfig.custodies.find(function (i) { return i.mintKey.equals(rewardToken.mintKey); });
|
|
5907
5464
|
preInstructions = [];
|
|
5908
5465
|
instructions = [];
|
|
5909
5466
|
postInstructions = [];
|
|
@@ -5911,59 +5468,45 @@ var PerpetualsClient = (function () {
|
|
|
5911
5468
|
_b.label = 1;
|
|
5912
5469
|
case 1:
|
|
5913
5470
|
_b.trys.push([1, 5, , 6]);
|
|
5914
|
-
|
|
5915
|
-
|
|
5916
|
-
|
|
5471
|
+
rewardCustody = poolConfig.custodies.find(function (i) { return i.mintKey.equals(poolConfig.getTokenFromSymbol(rewardSymbol).mintKey); });
|
|
5472
|
+
rebateMint = poolConfig.getTokenFromSymbol(rebateSymbol).mintKey;
|
|
5473
|
+
userTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(rebateMint, owner, true);
|
|
5917
5474
|
_a = createUserATA;
|
|
5918
5475
|
if (!_a) return [3, 3];
|
|
5919
|
-
return [4, (0, utils_1.checkIfAccountExists)(
|
|
5476
|
+
return [4, (0, utils_1.checkIfAccountExists)(userTokenAccount, this.provider.connection)];
|
|
5920
5477
|
case 2:
|
|
5921
5478
|
_a = !(_b.sent());
|
|
5922
5479
|
_b.label = 3;
|
|
5923
5480
|
case 3:
|
|
5924
5481
|
if (_a) {
|
|
5925
|
-
|
|
5926
|
-
}
|
|
5927
|
-
tradingAccount = [];
|
|
5928
|
-
if (nftTradingAccount) {
|
|
5929
|
-
tradingAccount.push({
|
|
5930
|
-
pubkey: nftTradingAccount,
|
|
5931
|
-
isSigner: false,
|
|
5932
|
-
isWritable: true,
|
|
5933
|
-
});
|
|
5482
|
+
instructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, userTokenAccount, publicKey, rebateMint));
|
|
5934
5483
|
}
|
|
5935
|
-
|
|
5936
|
-
|
|
5937
|
-
return [4, this.programPerpComposability.methods
|
|
5938
|
-
.collectAndDistributeFee()
|
|
5484
|
+
return [4, this.program.methods
|
|
5485
|
+
.settleRebates()
|
|
5939
5486
|
.accounts({
|
|
5940
|
-
perpProgram: this.programId,
|
|
5941
|
-
owner: publicKey,
|
|
5942
|
-
receivingTokenAccount: receivingTokenAccount,
|
|
5943
5487
|
transferAuthority: poolConfig.transferAuthority,
|
|
5944
5488
|
perpetuals: this.perpetuals.publicKey,
|
|
5945
|
-
pool:
|
|
5946
|
-
|
|
5947
|
-
|
|
5948
|
-
|
|
5949
|
-
|
|
5489
|
+
pool: poolConfig.poolAddress,
|
|
5490
|
+
rewardCustody: rewardCustody.custodyAccount,
|
|
5491
|
+
rewardCustodyOracleAccount: this.useExtOracleAccount ? rewardCustody.extOracleAccount : rewardCustody.intOracleAccount,
|
|
5492
|
+
rewardCustodyTokenAccount: rewardCustody.tokenAccount,
|
|
5493
|
+
rebateVault: poolConfig.rebateVault,
|
|
5494
|
+
rebateTokenAccount: poolConfig.rebateTokenAccount,
|
|
5495
|
+
tokenMint: rebateMint,
|
|
5950
5496
|
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
5951
5497
|
eventAuthority: this.eventAuthority.publicKey,
|
|
5952
|
-
|
|
5953
|
-
|
|
5954
|
-
rewardVault: rewardVault,
|
|
5955
|
-
rewardTokenAccount: rewardTokenAccount
|
|
5498
|
+
program: this.programId,
|
|
5499
|
+
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY
|
|
5956
5500
|
})
|
|
5957
|
-
.remainingAccounts(tradingAccount)
|
|
5958
5501
|
.instruction()];
|
|
5959
5502
|
case 4:
|
|
5960
|
-
|
|
5961
|
-
instructions.push(
|
|
5503
|
+
settleRebatesInstruction = _b.sent();
|
|
5504
|
+
instructions.push(settleRebatesInstruction);
|
|
5962
5505
|
return [3, 6];
|
|
5963
5506
|
case 5:
|
|
5964
|
-
|
|
5965
|
-
console.log("perpClient
|
|
5966
|
-
throw
|
|
5507
|
+
err_29 = _b.sent();
|
|
5508
|
+
console.log("perpClient settleRebatesInstruction error:: ", err_29);
|
|
5509
|
+
throw err_29;
|
|
5967
5510
|
case 6: return [2, {
|
|
5968
5511
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5969
5512
|
additionalSigners: additionalSigners
|
|
@@ -5978,7 +5521,7 @@ var PerpetualsClient = (function () {
|
|
|
5978
5521
|
args_1[_i - 11] = arguments[_i];
|
|
5979
5522
|
}
|
|
5980
5523
|
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) {
|
|
5981
|
-
var publicKey, targetCustodyConfig, reserveCustodyConfig, collateralCustodyConfig, receiveCustodyConfig, marketAccount, userReserveTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, accCreationLamports, lamports, unWrappedSolBalance, _a, tokenAccountBalance, _b, positionAccount, orderAccount, placeLimitOrder,
|
|
5524
|
+
var publicKey, targetCustodyConfig, reserveCustodyConfig, collateralCustodyConfig, receiveCustodyConfig, marketAccount, userReserveTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, accCreationLamports, lamports, unWrappedSolBalance, _a, tokenAccountBalance, _b, positionAccount, orderAccount, placeLimitOrder, err_30;
|
|
5982
5525
|
if (skipBalanceChecks === void 0) { skipBalanceChecks = false; }
|
|
5983
5526
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
5984
5527
|
return __generator(this, function (_c) {
|
|
@@ -6084,9 +5627,9 @@ var PerpetualsClient = (function () {
|
|
|
6084
5627
|
instructions.push(placeLimitOrder);
|
|
6085
5628
|
return [3, 10];
|
|
6086
5629
|
case 9:
|
|
6087
|
-
|
|
6088
|
-
console.log("perpClient placeLimitOrder error:: ",
|
|
6089
|
-
throw
|
|
5630
|
+
err_30 = _c.sent();
|
|
5631
|
+
console.log("perpClient placeLimitOrder error:: ", err_30);
|
|
5632
|
+
throw err_30;
|
|
6090
5633
|
case 10: return [2, {
|
|
6091
5634
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6092
5635
|
additionalSigners: additionalSigners
|
|
@@ -6101,7 +5644,7 @@ var PerpetualsClient = (function () {
|
|
|
6101
5644
|
args_1[_i - 11] = arguments[_i];
|
|
6102
5645
|
}
|
|
6103
5646
|
return __awaiter(_this, __spreadArray([targetSymbol_1, collateralSymbol_1, reserveSymbol_1, receiveSymbol_1, side_1, orderId_1, limitPrice_1, sizeAmount_1, stopLossPrice_1, takeProfitPrice_1, poolConfig_1], args_1, true), void 0, function (targetSymbol, collateralSymbol, reserveSymbol, receiveSymbol, side, orderId, limitPrice, sizeAmount, stopLossPrice, takeProfitPrice, poolConfig, createUserATA, ephemeralSignerPubkey) {
|
|
6104
|
-
var publicKey, targetCustodyConfig, reserveCustodyConfig, collateralCustodyConfig, receiveCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, wrappedSolAccount, userReceivingTokenAccount, lamports, _a, positionAccount, orderAccount, editLimitOrder,
|
|
5647
|
+
var publicKey, targetCustodyConfig, reserveCustodyConfig, collateralCustodyConfig, receiveCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, wrappedSolAccount, userReceivingTokenAccount, lamports, _a, positionAccount, orderAccount, editLimitOrder, err_31;
|
|
6105
5648
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
6106
5649
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
6107
5650
|
return __generator(this, function (_b) {
|
|
@@ -6192,9 +5735,9 @@ var PerpetualsClient = (function () {
|
|
|
6192
5735
|
instructions.push(editLimitOrder);
|
|
6193
5736
|
return [3, 8];
|
|
6194
5737
|
case 7:
|
|
6195
|
-
|
|
6196
|
-
console.log("perpClient editLimitOrder error:: ",
|
|
6197
|
-
throw
|
|
5738
|
+
err_31 = _b.sent();
|
|
5739
|
+
console.log("perpClient editLimitOrder error:: ", err_31);
|
|
5740
|
+
throw err_31;
|
|
6198
5741
|
case 8: return [2, {
|
|
6199
5742
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6200
5743
|
additionalSigners: additionalSigners
|
|
@@ -6208,11 +5751,10 @@ var PerpetualsClient = (function () {
|
|
|
6208
5751
|
for (var _i = 7; _i < arguments.length; _i++) {
|
|
6209
5752
|
args_1[_i - 7] = arguments[_i];
|
|
6210
5753
|
}
|
|
6211
|
-
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
|
|
6212
|
-
var publicKey, targetCustodyConfig, collateralCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, positionAccount, orderAccount, executeLimitOrder,
|
|
5754
|
+
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) {
|
|
5755
|
+
var publicKey, targetCustodyConfig, collateralCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, positionAccount, orderAccount, executeLimitOrder, err_32;
|
|
6213
5756
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
6214
5757
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
6215
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
6216
5758
|
return __generator(this, function (_a) {
|
|
6217
5759
|
switch (_a.label) {
|
|
6218
5760
|
case 0:
|
|
@@ -6255,16 +5797,16 @@ var PerpetualsClient = (function () {
|
|
|
6255
5797
|
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
|
6256
5798
|
collateralMint: collateralCustodyConfig.mintKey,
|
|
6257
5799
|
})
|
|
6258
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
5800
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
6259
5801
|
.instruction()];
|
|
6260
5802
|
case 2:
|
|
6261
5803
|
executeLimitOrder = _a.sent();
|
|
6262
5804
|
instructions.push(executeLimitOrder);
|
|
6263
5805
|
return [3, 4];
|
|
6264
5806
|
case 3:
|
|
6265
|
-
|
|
6266
|
-
console.log("perpClient executeLimitOrder error:: ",
|
|
6267
|
-
throw
|
|
5807
|
+
err_32 = _a.sent();
|
|
5808
|
+
console.log("perpClient executeLimitOrder error:: ", err_32);
|
|
5809
|
+
throw err_32;
|
|
6268
5810
|
case 4: return [2, {
|
|
6269
5811
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6270
5812
|
additionalSigners: additionalSigners
|
|
@@ -6278,11 +5820,10 @@ var PerpetualsClient = (function () {
|
|
|
6278
5820
|
for (var _i = 8; _i < arguments.length; _i++) {
|
|
6279
5821
|
args_1[_i - 8] = arguments[_i];
|
|
6280
5822
|
}
|
|
6281
|
-
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
|
|
6282
|
-
var publicKey, targetCustodyConfig, collateralCustodyConfig, reserveCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, positionAccount, orderAccount, executeLimitWithSwap,
|
|
5823
|
+
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) {
|
|
5824
|
+
var publicKey, targetCustodyConfig, collateralCustodyConfig, reserveCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, positionAccount, orderAccount, executeLimitWithSwap, err_33;
|
|
6283
5825
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
6284
5826
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
6285
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
6286
5827
|
return __generator(this, function (_a) {
|
|
6287
5828
|
switch (_a.label) {
|
|
6288
5829
|
case 0:
|
|
@@ -6328,16 +5869,16 @@ var PerpetualsClient = (function () {
|
|
|
6328
5869
|
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
|
6329
5870
|
collateralMint: collateralCustodyConfig.mintKey,
|
|
6330
5871
|
})
|
|
6331
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
5872
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
6332
5873
|
.instruction()];
|
|
6333
5874
|
case 2:
|
|
6334
5875
|
executeLimitWithSwap = _a.sent();
|
|
6335
5876
|
instructions.push(executeLimitWithSwap);
|
|
6336
5877
|
return [3, 4];
|
|
6337
5878
|
case 3:
|
|
6338
|
-
|
|
6339
|
-
console.log("perpClient executeLimitWithSwap error:: ",
|
|
6340
|
-
throw
|
|
5879
|
+
err_33 = _a.sent();
|
|
5880
|
+
console.log("perpClient executeLimitWithSwap error:: ", err_33);
|
|
5881
|
+
throw err_33;
|
|
6341
5882
|
case 4: return [2, {
|
|
6342
5883
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6343
5884
|
additionalSigners: additionalSigners
|
|
@@ -6347,7 +5888,7 @@ var PerpetualsClient = (function () {
|
|
|
6347
5888
|
});
|
|
6348
5889
|
};
|
|
6349
5890
|
this.placeTriggerOrder = function (targetSymbol, collateralSymbol, receiveSymbol, side, triggerPrice, deltaSizeAmount, isStopLoss, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
6350
|
-
var publicKey, targetCustodyConfig, collateralCustodyConfig, receivingCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, positionAccount, orderAccount, placeTriggerOrder,
|
|
5891
|
+
var publicKey, targetCustodyConfig, collateralCustodyConfig, receivingCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, positionAccount, orderAccount, placeTriggerOrder, err_34;
|
|
6351
5892
|
return __generator(this, function (_a) {
|
|
6352
5893
|
switch (_a.label) {
|
|
6353
5894
|
case 0:
|
|
@@ -6395,9 +5936,9 @@ var PerpetualsClient = (function () {
|
|
|
6395
5936
|
instructions.push(placeTriggerOrder);
|
|
6396
5937
|
return [3, 4];
|
|
6397
5938
|
case 3:
|
|
6398
|
-
|
|
6399
|
-
console.log("perpClient placeTriggerOrder error:: ",
|
|
6400
|
-
throw
|
|
5939
|
+
err_34 = _a.sent();
|
|
5940
|
+
console.log("perpClient placeTriggerOrder error:: ", err_34);
|
|
5941
|
+
throw err_34;
|
|
6401
5942
|
case 4: return [2, {
|
|
6402
5943
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6403
5944
|
additionalSigners: additionalSigners
|
|
@@ -6406,7 +5947,7 @@ var PerpetualsClient = (function () {
|
|
|
6406
5947
|
});
|
|
6407
5948
|
}); };
|
|
6408
5949
|
this.editTriggerOrder = function (targetSymbol, collateralSymbol, receiveSymbol, side, orderId, triggerPrice, deltaSizeAmount, isStopLoss, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
6409
|
-
var publicKey, targetCustodyConfig, collateralCustodyConfig, receivingCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, positionAccount, orderAccount, editTriggerOrder,
|
|
5950
|
+
var publicKey, targetCustodyConfig, collateralCustodyConfig, receivingCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, positionAccount, orderAccount, editTriggerOrder, err_35;
|
|
6410
5951
|
return __generator(this, function (_a) {
|
|
6411
5952
|
switch (_a.label) {
|
|
6412
5953
|
case 0:
|
|
@@ -6453,9 +5994,9 @@ var PerpetualsClient = (function () {
|
|
|
6453
5994
|
instructions.push(editTriggerOrder);
|
|
6454
5995
|
return [3, 4];
|
|
6455
5996
|
case 3:
|
|
6456
|
-
|
|
6457
|
-
console.log("perpClient editTriggerOrder error:: ",
|
|
6458
|
-
throw
|
|
5997
|
+
err_35 = _a.sent();
|
|
5998
|
+
console.log("perpClient editTriggerOrder error:: ", err_35);
|
|
5999
|
+
throw err_35;
|
|
6459
6000
|
case 4: return [2, {
|
|
6460
6001
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6461
6002
|
additionalSigners: additionalSigners
|
|
@@ -6464,7 +6005,7 @@ var PerpetualsClient = (function () {
|
|
|
6464
6005
|
});
|
|
6465
6006
|
}); };
|
|
6466
6007
|
this.cancelTriggerOrder = function (targetSymbol, collateralSymbol, side, orderId, isStopLoss, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
6467
|
-
var publicKey, targetCustodyConfig, collateralCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, orderAccount, cancelTriggerOrder,
|
|
6008
|
+
var publicKey, targetCustodyConfig, collateralCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, orderAccount, cancelTriggerOrder, err_36;
|
|
6468
6009
|
return __generator(this, function (_a) {
|
|
6469
6010
|
switch (_a.label) {
|
|
6470
6011
|
case 0:
|
|
@@ -6497,9 +6038,9 @@ var PerpetualsClient = (function () {
|
|
|
6497
6038
|
instructions.push(cancelTriggerOrder);
|
|
6498
6039
|
return [3, 4];
|
|
6499
6040
|
case 3:
|
|
6500
|
-
|
|
6501
|
-
console.log("perpClient cancelTriggerOrder error:: ",
|
|
6502
|
-
throw
|
|
6041
|
+
err_36 = _a.sent();
|
|
6042
|
+
console.log("perpClient cancelTriggerOrder error:: ", err_36);
|
|
6043
|
+
throw err_36;
|
|
6503
6044
|
case 4: return [2, {
|
|
6504
6045
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6505
6046
|
additionalSigners: additionalSigners
|
|
@@ -6508,7 +6049,7 @@ var PerpetualsClient = (function () {
|
|
|
6508
6049
|
});
|
|
6509
6050
|
}); };
|
|
6510
6051
|
this.cancelAllTriggerOrders = function (targetSymbol, collateralSymbol, side, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
6511
|
-
var publicKey, targetCustodyConfig, collateralCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, orderAccount, positionAccount, cancelAllTriggerOrders,
|
|
6052
|
+
var publicKey, targetCustodyConfig, collateralCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, orderAccount, positionAccount, cancelAllTriggerOrders, err_37;
|
|
6512
6053
|
return __generator(this, function (_a) {
|
|
6513
6054
|
switch (_a.label) {
|
|
6514
6055
|
case 0:
|
|
@@ -6539,9 +6080,9 @@ var PerpetualsClient = (function () {
|
|
|
6539
6080
|
instructions.push(cancelAllTriggerOrders);
|
|
6540
6081
|
return [3, 4];
|
|
6541
6082
|
case 3:
|
|
6542
|
-
|
|
6543
|
-
console.log("perpClient cancelAllTriggerOrders error:: ",
|
|
6544
|
-
throw
|
|
6083
|
+
err_37 = _a.sent();
|
|
6084
|
+
console.log("perpClient cancelAllTriggerOrders error:: ", err_37);
|
|
6085
|
+
throw err_37;
|
|
6545
6086
|
case 4: return [2, {
|
|
6546
6087
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6547
6088
|
additionalSigners: additionalSigners
|
|
@@ -6554,13 +6095,12 @@ var PerpetualsClient = (function () {
|
|
|
6554
6095
|
for (var _i = 9; _i < arguments.length; _i++) {
|
|
6555
6096
|
args_1[_i - 9] = arguments[_i];
|
|
6556
6097
|
}
|
|
6557
|
-
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
|
|
6558
|
-
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,
|
|
6098
|
+
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) {
|
|
6099
|
+
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;
|
|
6559
6100
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
6560
6101
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
6561
6102
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
6562
6103
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
6563
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
6564
6104
|
return __generator(this, function (_e) {
|
|
6565
6105
|
switch (_e.label) {
|
|
6566
6106
|
case 0:
|
|
@@ -6655,16 +6195,16 @@ var PerpetualsClient = (function () {
|
|
|
6655
6195
|
collateralMint: collateralCustodyConfig.mintKey,
|
|
6656
6196
|
collateralTokenProgram: collateralToken.isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID
|
|
6657
6197
|
})
|
|
6658
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
6198
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
6659
6199
|
.instruction()];
|
|
6660
6200
|
case 8:
|
|
6661
6201
|
executeTriggerWithSwap = _e.sent();
|
|
6662
6202
|
instructions.push(executeTriggerWithSwap);
|
|
6663
6203
|
return [3, 10];
|
|
6664
6204
|
case 9:
|
|
6665
|
-
|
|
6666
|
-
console.log("perpClient executeTriggerWithSwap error:: ",
|
|
6667
|
-
throw
|
|
6205
|
+
err_38 = _e.sent();
|
|
6206
|
+
console.log("perpClient executeTriggerWithSwap error:: ", err_38);
|
|
6207
|
+
throw err_38;
|
|
6668
6208
|
case 10: return [2, {
|
|
6669
6209
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6670
6210
|
additionalSigners: additionalSigners
|
|
@@ -6678,13 +6218,12 @@ var PerpetualsClient = (function () {
|
|
|
6678
6218
|
for (var _i = 8; _i < arguments.length; _i++) {
|
|
6679
6219
|
args_1[_i - 8] = arguments[_i];
|
|
6680
6220
|
}
|
|
6681
|
-
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
|
|
6682
|
-
var payerPubkey, targetCustodyConfig, collateralCustodyConfig, marketAccount, userReceivingTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, _a, positionAccount, orderAccount, executeTriggerOrder,
|
|
6221
|
+
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) {
|
|
6222
|
+
var payerPubkey, targetCustodyConfig, collateralCustodyConfig, marketAccount, userReceivingTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, _a, positionAccount, orderAccount, executeTriggerOrder, err_39;
|
|
6683
6223
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
6684
6224
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
6685
6225
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
6686
6226
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
6687
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
6688
6227
|
return __generator(this, function (_b) {
|
|
6689
6228
|
switch (_b.label) {
|
|
6690
6229
|
case 0:
|
|
@@ -6744,16 +6283,16 @@ var PerpetualsClient = (function () {
|
|
|
6744
6283
|
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
|
6745
6284
|
receivingMint: collateralCustodyConfig.mintKey
|
|
6746
6285
|
})
|
|
6747
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
6286
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
6748
6287
|
.instruction()];
|
|
6749
6288
|
case 6:
|
|
6750
6289
|
executeTriggerOrder = _b.sent();
|
|
6751
6290
|
instructions.push(executeTriggerOrder);
|
|
6752
6291
|
return [3, 8];
|
|
6753
6292
|
case 7:
|
|
6754
|
-
|
|
6755
|
-
console.log("perpClient executeTriggerOrder error:: ",
|
|
6756
|
-
throw
|
|
6293
|
+
err_39 = _b.sent();
|
|
6294
|
+
console.log("perpClient executeTriggerOrder error:: ", err_39);
|
|
6295
|
+
throw err_39;
|
|
6757
6296
|
case 8: return [2, {
|
|
6758
6297
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6759
6298
|
additionalSigners: additionalSigners
|
|
@@ -6768,7 +6307,7 @@ var PerpetualsClient = (function () {
|
|
|
6768
6307
|
args_1[_i - 5] = arguments[_i];
|
|
6769
6308
|
}
|
|
6770
6309
|
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) {
|
|
6771
|
-
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,
|
|
6310
|
+
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;
|
|
6772
6311
|
if (useFeesPool === void 0) { useFeesPool = false; }
|
|
6773
6312
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
6774
6313
|
if (unWrapSol === void 0) { unWrapSol = false; }
|
|
@@ -6973,9 +6512,9 @@ var PerpetualsClient = (function () {
|
|
|
6973
6512
|
}
|
|
6974
6513
|
return [3, 20];
|
|
6975
6514
|
case 19:
|
|
6976
|
-
|
|
6977
|
-
console.error("perpClient Swap error:: ",
|
|
6978
|
-
throw
|
|
6515
|
+
err_40 = _g.sent();
|
|
6516
|
+
console.error("perpClient Swap error:: ", err_40);
|
|
6517
|
+
throw err_40;
|
|
6979
6518
|
case 20: return [2, {
|
|
6980
6519
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6981
6520
|
additionalSigners: additionalSigners
|
|
@@ -6985,7 +6524,7 @@ var PerpetualsClient = (function () {
|
|
|
6985
6524
|
});
|
|
6986
6525
|
};
|
|
6987
6526
|
this.swapFeeInternal = function (rewardTokenSymbol, swapTokenSymbol, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
6988
|
-
var rewardCustody, custody, publicKey, preInstructions, instructions, postInstructions, additionalSigners, custodyAccountMetas, custodyOracleAccountMetas, _i, _a, custody_1, params, inx,
|
|
6527
|
+
var rewardCustody, custody, publicKey, preInstructions, instructions, postInstructions, additionalSigners, custodyAccountMetas, custodyOracleAccountMetas, _i, _a, custody_1, params, inx, err_41;
|
|
6989
6528
|
return __generator(this, function (_b) {
|
|
6990
6529
|
switch (_b.label) {
|
|
6991
6530
|
case 0:
|
|
@@ -7030,11 +6569,7 @@ var PerpetualsClient = (function () {
|
|
|
7030
6569
|
rewardCustody: rewardCustody.custodyAccount,
|
|
7031
6570
|
rewardCustodyOracleAccount: this.useExtOracleAccount ? rewardCustody.extOracleAccount : rewardCustody.intOracleAccount,
|
|
7032
6571
|
rewardCustodyTokenAccount: rewardCustody.tokenAccount,
|
|
7033
|
-
custody: custody.custodyAccount,
|
|
7034
|
-
custodyOracleAccount: this.useExtOracleAccount ? custody.extOracleAccount : custody.intOracleAccount,
|
|
7035
|
-
custodyTokenAccount: custody.tokenAccount,
|
|
7036
6572
|
eventAuthority: this.eventAuthority.publicKey,
|
|
7037
|
-
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
7038
6573
|
program: this.programId,
|
|
7039
6574
|
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY
|
|
7040
6575
|
})
|
|
@@ -7045,9 +6580,9 @@ var PerpetualsClient = (function () {
|
|
|
7045
6580
|
instructions.push(inx);
|
|
7046
6581
|
return [3, 4];
|
|
7047
6582
|
case 3:
|
|
7048
|
-
|
|
7049
|
-
console.error("perpClient Swap error:: ",
|
|
7050
|
-
throw
|
|
6583
|
+
err_41 = _b.sent();
|
|
6584
|
+
console.error("perpClient Swap error:: ", err_41);
|
|
6585
|
+
throw err_41;
|
|
7051
6586
|
case 4: return [2, {
|
|
7052
6587
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
7053
6588
|
additionalSigners: additionalSigners
|
|
@@ -7056,7 +6591,7 @@ var PerpetualsClient = (function () {
|
|
|
7056
6591
|
});
|
|
7057
6592
|
}); };
|
|
7058
6593
|
this.setLpTokenPrice = function (poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7059
|
-
var instructions, additionalSigners, custodyAccountMetas, custodyOracleAccountMetas, markets, _i, _a, custody, _b, _c, market, setLpTokenPriceInstruction,
|
|
6594
|
+
var instructions, additionalSigners, custodyAccountMetas, custodyOracleAccountMetas, markets, _i, _a, custody, _b, _c, market, setLpTokenPriceInstruction, err_42;
|
|
7060
6595
|
return __generator(this, function (_d) {
|
|
7061
6596
|
switch (_d.label) {
|
|
7062
6597
|
case 0:
|
|
@@ -7104,9 +6639,9 @@ var PerpetualsClient = (function () {
|
|
|
7104
6639
|
instructions.push(setLpTokenPriceInstruction);
|
|
7105
6640
|
return [3, 4];
|
|
7106
6641
|
case 3:
|
|
7107
|
-
|
|
7108
|
-
console.log("perpClient setLpTokenPriceInstruction error:: ",
|
|
7109
|
-
throw
|
|
6642
|
+
err_42 = _d.sent();
|
|
6643
|
+
console.log("perpClient setLpTokenPriceInstruction error:: ", err_42);
|
|
6644
|
+
throw err_42;
|
|
7110
6645
|
case 4: return [2, {
|
|
7111
6646
|
instructions: __spreadArray([], instructions, true),
|
|
7112
6647
|
additionalSigners: additionalSigners
|
|
@@ -7154,7 +6689,7 @@ var PerpetualsClient = (function () {
|
|
|
7154
6689
|
});
|
|
7155
6690
|
}); };
|
|
7156
6691
|
this.setAdminSigners = function (admins, minSignatures) { return __awaiter(_this, void 0, void 0, function () {
|
|
7157
|
-
var adminMetas, _i, admins_2, admin,
|
|
6692
|
+
var adminMetas, _i, admins_2, admin, err_43;
|
|
7158
6693
|
return __generator(this, function (_a) {
|
|
7159
6694
|
switch (_a.label) {
|
|
7160
6695
|
case 0:
|
|
@@ -7184,11 +6719,11 @@ var PerpetualsClient = (function () {
|
|
|
7184
6719
|
_a.sent();
|
|
7185
6720
|
return [3, 4];
|
|
7186
6721
|
case 3:
|
|
7187
|
-
|
|
6722
|
+
err_43 = _a.sent();
|
|
7188
6723
|
if (this.printErrors) {
|
|
7189
|
-
console.error("setAdminSigners err:",
|
|
6724
|
+
console.error("setAdminSigners err:", err_43);
|
|
7190
6725
|
}
|
|
7191
|
-
throw
|
|
6726
|
+
throw err_43;
|
|
7192
6727
|
case 4: return [2];
|
|
7193
6728
|
}
|
|
7194
6729
|
});
|
|
@@ -7377,7 +6912,7 @@ var PerpetualsClient = (function () {
|
|
|
7377
6912
|
});
|
|
7378
6913
|
}); };
|
|
7379
6914
|
this.protocolWithdrawFees = function (rewardSymbol, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7380
|
-
var publicKey, custodyConfig, receivingTokenAccount, instructions, additionalSigners, withdrawFeesIx,
|
|
6915
|
+
var publicKey, custodyConfig, receivingTokenAccount, instructions, additionalSigners, withdrawFeesIx, err_44;
|
|
7381
6916
|
return __generator(this, function (_a) {
|
|
7382
6917
|
switch (_a.label) {
|
|
7383
6918
|
case 0:
|
|
@@ -7410,9 +6945,9 @@ var PerpetualsClient = (function () {
|
|
|
7410
6945
|
instructions.push(withdrawFeesIx);
|
|
7411
6946
|
return [3, 5];
|
|
7412
6947
|
case 4:
|
|
7413
|
-
|
|
7414
|
-
console.log("perpClient setPool error:: ",
|
|
7415
|
-
throw
|
|
6948
|
+
err_44 = _a.sent();
|
|
6949
|
+
console.log("perpClient setPool error:: ", err_44);
|
|
6950
|
+
throw err_44;
|
|
7416
6951
|
case 5: return [2, {
|
|
7417
6952
|
instructions: __spreadArray([], instructions, true),
|
|
7418
6953
|
additionalSigners: additionalSigners
|
|
@@ -7421,7 +6956,7 @@ var PerpetualsClient = (function () {
|
|
|
7421
6956
|
});
|
|
7422
6957
|
}); };
|
|
7423
6958
|
this.moveProtocolFees = function (rewardSymbol, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7424
|
-
var publicKey, custodyConfig, instructions, additionalSigners, moveProtocolFeesIx,
|
|
6959
|
+
var publicKey, custodyConfig, instructions, additionalSigners, moveProtocolFeesIx, err_45;
|
|
7425
6960
|
return __generator(this, function (_a) {
|
|
7426
6961
|
switch (_a.label) {
|
|
7427
6962
|
case 0:
|
|
@@ -7455,9 +6990,9 @@ var PerpetualsClient = (function () {
|
|
|
7455
6990
|
instructions.push(moveProtocolFeesIx);
|
|
7456
6991
|
return [3, 4];
|
|
7457
6992
|
case 3:
|
|
7458
|
-
|
|
7459
|
-
console.log("perpClient setPool error:: ",
|
|
7460
|
-
throw
|
|
6993
|
+
err_45 = _a.sent();
|
|
6994
|
+
console.log("perpClient setPool error:: ", err_45);
|
|
6995
|
+
throw err_45;
|
|
7461
6996
|
case 4: return [2, {
|
|
7462
6997
|
instructions: __spreadArray([], instructions, true),
|
|
7463
6998
|
additionalSigners: additionalSigners
|
|
@@ -7466,7 +7001,7 @@ var PerpetualsClient = (function () {
|
|
|
7466
7001
|
});
|
|
7467
7002
|
}); };
|
|
7468
7003
|
this.setProtocolFeeShareBps = function (feeShareBps, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7469
|
-
var publicKey, setProtocolFeeShareBpsIx,
|
|
7004
|
+
var publicKey, setProtocolFeeShareBpsIx, err_46;
|
|
7470
7005
|
return __generator(this, function (_a) {
|
|
7471
7006
|
switch (_a.label) {
|
|
7472
7007
|
case 0:
|
|
@@ -7486,15 +7021,15 @@ var PerpetualsClient = (function () {
|
|
|
7486
7021
|
setProtocolFeeShareBpsIx = _a.sent();
|
|
7487
7022
|
return [2, setProtocolFeeShareBpsIx];
|
|
7488
7023
|
case 2:
|
|
7489
|
-
|
|
7490
|
-
console.log("perpClient setProtocolFeeShareBpsIx error:: ",
|
|
7491
|
-
throw
|
|
7024
|
+
err_46 = _a.sent();
|
|
7025
|
+
console.log("perpClient setProtocolFeeShareBpsIx error:: ", err_46);
|
|
7026
|
+
throw err_46;
|
|
7492
7027
|
case 3: return [2];
|
|
7493
7028
|
}
|
|
7494
7029
|
});
|
|
7495
7030
|
}); };
|
|
7496
7031
|
this.setPermissions = function (permissions) { return __awaiter(_this, void 0, void 0, function () {
|
|
7497
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, setPermissionsInstruction,
|
|
7032
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, setPermissionsInstruction, err_47;
|
|
7498
7033
|
return __generator(this, function (_a) {
|
|
7499
7034
|
switch (_a.label) {
|
|
7500
7035
|
case 0:
|
|
@@ -7521,9 +7056,9 @@ var PerpetualsClient = (function () {
|
|
|
7521
7056
|
instructions.push(setPermissionsInstruction);
|
|
7522
7057
|
return [3, 4];
|
|
7523
7058
|
case 3:
|
|
7524
|
-
|
|
7525
|
-
console.log("perpClient setPool error:: ",
|
|
7526
|
-
throw
|
|
7059
|
+
err_47 = _a.sent();
|
|
7060
|
+
console.log("perpClient setPool error:: ", err_47);
|
|
7061
|
+
throw err_47;
|
|
7527
7062
|
case 4: return [2, {
|
|
7528
7063
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
7529
7064
|
additionalSigners: additionalSigners
|
|
@@ -7532,7 +7067,7 @@ var PerpetualsClient = (function () {
|
|
|
7532
7067
|
});
|
|
7533
7068
|
}); };
|
|
7534
7069
|
this.reimburse = function (tokenMint, amountIn, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7535
|
-
var custodyAccountMetas, custodyOracleAccountMetas, markets, _i, _a, custody, _b, _c, market, instructions, additionalSigners, custodyConfig, reimburse, _d, _e,
|
|
7070
|
+
var custodyAccountMetas, custodyOracleAccountMetas, markets, _i, _a, custody, _b, _c, market, instructions, additionalSigners, custodyConfig, reimburse, _d, _e, err_48;
|
|
7536
7071
|
var _f;
|
|
7537
7072
|
return __generator(this, function (_g) {
|
|
7538
7073
|
switch (_g.label) {
|
|
@@ -7593,9 +7128,9 @@ var PerpetualsClient = (function () {
|
|
|
7593
7128
|
instructions.push(reimburse);
|
|
7594
7129
|
return [3, 5];
|
|
7595
7130
|
case 4:
|
|
7596
|
-
|
|
7597
|
-
console.log("perpClient setPool error:: ",
|
|
7598
|
-
throw
|
|
7131
|
+
err_48 = _g.sent();
|
|
7132
|
+
console.log("perpClient setPool error:: ", err_48);
|
|
7133
|
+
throw err_48;
|
|
7599
7134
|
case 5: return [2, {
|
|
7600
7135
|
instructions: __spreadArray([], instructions, true),
|
|
7601
7136
|
additionalSigners: additionalSigners
|
|
@@ -7603,8 +7138,8 @@ var PerpetualsClient = (function () {
|
|
|
7603
7138
|
}
|
|
7604
7139
|
});
|
|
7605
7140
|
}); };
|
|
7606
|
-
this.setInternalOraclePrice = function (tokenMint, price, expo, conf, ema, publishTime, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7607
|
-
var instructions, additionalSigners, custodyConfig, setInternalOraclePrice,
|
|
7141
|
+
this.setInternalOraclePrice = function (tokenMint, useCurrentTime, price, expo, conf, ema, publishTime, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7142
|
+
var instructions, additionalSigners, custodyConfig, setInternalOraclePrice, err_49;
|
|
7608
7143
|
return __generator(this, function (_a) {
|
|
7609
7144
|
switch (_a.label) {
|
|
7610
7145
|
case 0:
|
|
@@ -7616,6 +7151,7 @@ var PerpetualsClient = (function () {
|
|
|
7616
7151
|
_a.trys.push([1, 3, , 4]);
|
|
7617
7152
|
return [4, this.program.methods
|
|
7618
7153
|
.setInternalOraclePrice({
|
|
7154
|
+
useCurrentTime: useCurrentTime,
|
|
7619
7155
|
price: price,
|
|
7620
7156
|
expo: expo,
|
|
7621
7157
|
conf: conf,
|
|
@@ -7637,9 +7173,9 @@ var PerpetualsClient = (function () {
|
|
|
7637
7173
|
instructions.push(setInternalOraclePrice);
|
|
7638
7174
|
return [3, 4];
|
|
7639
7175
|
case 3:
|
|
7640
|
-
|
|
7641
|
-
console.log("perpClient setInternalOracleAccount error:: ",
|
|
7642
|
-
throw
|
|
7176
|
+
err_49 = _a.sent();
|
|
7177
|
+
console.log("perpClient setInternalOracleAccount error:: ", err_49);
|
|
7178
|
+
throw err_49;
|
|
7643
7179
|
case 4: return [2, {
|
|
7644
7180
|
instructions: __spreadArray([], instructions, true),
|
|
7645
7181
|
additionalSigners: additionalSigners
|
|
@@ -7647,8 +7183,8 @@ var PerpetualsClient = (function () {
|
|
|
7647
7183
|
}
|
|
7648
7184
|
});
|
|
7649
7185
|
}); };
|
|
7650
|
-
this.setInternalOraclePriceBatch = function (tokenMintList, tokenInternalPrices, POOL_CONFIGS) { return __awaiter(_this, void 0, void 0, function () {
|
|
7651
|
-
var ALL_CUSTODY_CONFIGS, accountMetas, _loop_1, _i, tokenMintList_1, tokenMint, instructions, additionalSigners, setInternalOraclePrice,
|
|
7186
|
+
this.setInternalOraclePriceBatch = function (useCurrentTime, tokenMintList, tokenInternalPrices, POOL_CONFIGS) { return __awaiter(_this, void 0, void 0, function () {
|
|
7187
|
+
var ALL_CUSTODY_CONFIGS, accountMetas, _loop_1, _i, tokenMintList_1, tokenMint, instructions, additionalSigners, setInternalOraclePrice, err_50;
|
|
7652
7188
|
return __generator(this, function (_a) {
|
|
7653
7189
|
switch (_a.label) {
|
|
7654
7190
|
case 0:
|
|
@@ -7659,11 +7195,6 @@ var PerpetualsClient = (function () {
|
|
|
7659
7195
|
accountMetas = [];
|
|
7660
7196
|
_loop_1 = function (tokenMint) {
|
|
7661
7197
|
var custody = ALL_CUSTODY_CONFIGS.find(function (i) { return i.mintKey.equals(tokenMint); });
|
|
7662
|
-
accountMetas.push({
|
|
7663
|
-
pubkey: custody.custodyAccount,
|
|
7664
|
-
isSigner: false,
|
|
7665
|
-
isWritable: false,
|
|
7666
|
-
});
|
|
7667
7198
|
accountMetas.push({
|
|
7668
7199
|
pubkey: custody.intOracleAccount,
|
|
7669
7200
|
isSigner: false,
|
|
@@ -7686,6 +7217,7 @@ var PerpetualsClient = (function () {
|
|
|
7686
7217
|
_a.trys.push([1, 3, , 4]);
|
|
7687
7218
|
return [4, this.program.methods
|
|
7688
7219
|
.setInternalCurrentPrice({
|
|
7220
|
+
useCurrentTime: useCurrentTime,
|
|
7689
7221
|
prices: tokenInternalPrices
|
|
7690
7222
|
})
|
|
7691
7223
|
.accounts({
|
|
@@ -7698,9 +7230,9 @@ var PerpetualsClient = (function () {
|
|
|
7698
7230
|
instructions.push(setInternalOraclePrice);
|
|
7699
7231
|
return [3, 4];
|
|
7700
7232
|
case 3:
|
|
7701
|
-
|
|
7702
|
-
console.log("perpClient setInternalOracleAccount error:: ",
|
|
7703
|
-
throw
|
|
7233
|
+
err_50 = _a.sent();
|
|
7234
|
+
console.log("perpClient setInternalOracleAccount error:: ", err_50);
|
|
7235
|
+
throw err_50;
|
|
7704
7236
|
case 4: return [2, {
|
|
7705
7237
|
instructions: __spreadArray([], instructions, true),
|
|
7706
7238
|
additionalSigners: additionalSigners
|
|
@@ -7709,7 +7241,7 @@ var PerpetualsClient = (function () {
|
|
|
7709
7241
|
});
|
|
7710
7242
|
}); };
|
|
7711
7243
|
this.setInternalOracleEmaPriceBatch = function (tokenMintList, tokenInternalEmaPrices, POOL_CONFIGS) { return __awaiter(_this, void 0, void 0, function () {
|
|
7712
|
-
var ALL_CUSTODY_CONFIGS, accountMetas, _loop_2, _i, tokenMintList_2, tokenMint, instructions, additionalSigners, setInternalOraclePrice,
|
|
7244
|
+
var ALL_CUSTODY_CONFIGS, accountMetas, _loop_2, _i, tokenMintList_2, tokenMint, instructions, additionalSigners, setInternalOraclePrice, err_51;
|
|
7713
7245
|
return __generator(this, function (_a) {
|
|
7714
7246
|
switch (_a.label) {
|
|
7715
7247
|
case 0:
|
|
@@ -7720,21 +7252,11 @@ var PerpetualsClient = (function () {
|
|
|
7720
7252
|
accountMetas = [];
|
|
7721
7253
|
_loop_2 = function (tokenMint) {
|
|
7722
7254
|
var custody = ALL_CUSTODY_CONFIGS.find(function (i) { return i.mintKey.equals(tokenMint); });
|
|
7723
|
-
accountMetas.push({
|
|
7724
|
-
pubkey: custody.custodyAccount,
|
|
7725
|
-
isSigner: false,
|
|
7726
|
-
isWritable: false,
|
|
7727
|
-
});
|
|
7728
7255
|
accountMetas.push({
|
|
7729
7256
|
pubkey: custody.intOracleAccount,
|
|
7730
7257
|
isSigner: false,
|
|
7731
7258
|
isWritable: true,
|
|
7732
7259
|
});
|
|
7733
|
-
accountMetas.push({
|
|
7734
|
-
pubkey: custody.extOracleAccount,
|
|
7735
|
-
isSigner: false,
|
|
7736
|
-
isWritable: false,
|
|
7737
|
-
});
|
|
7738
7260
|
};
|
|
7739
7261
|
for (_i = 0, tokenMintList_2 = tokenMintList; _i < tokenMintList_2.length; _i++) {
|
|
7740
7262
|
tokenMint = tokenMintList_2[_i];
|
|
@@ -7759,9 +7281,9 @@ var PerpetualsClient = (function () {
|
|
|
7759
7281
|
instructions.push(setInternalOraclePrice);
|
|
7760
7282
|
return [3, 4];
|
|
7761
7283
|
case 3:
|
|
7762
|
-
|
|
7763
|
-
console.log("perpClient setInternalOracleAccount error:: ",
|
|
7764
|
-
throw
|
|
7284
|
+
err_51 = _a.sent();
|
|
7285
|
+
console.log("perpClient setInternalOracleAccount error:: ", err_51);
|
|
7286
|
+
throw err_51;
|
|
7765
7287
|
case 4: return [2, {
|
|
7766
7288
|
instructions: __spreadArray([], instructions, true),
|
|
7767
7289
|
additionalSigners: additionalSigners
|
|
@@ -7770,7 +7292,7 @@ var PerpetualsClient = (function () {
|
|
|
7770
7292
|
});
|
|
7771
7293
|
}); };
|
|
7772
7294
|
this.renameFlp = function (flag, lpTokenName, lpTokenSymbol, lpTokenUri, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7773
|
-
var publicKey, instructions, additionalSigners, lpTokenMint, lpMetadataAccount, renameFlp,
|
|
7295
|
+
var publicKey, instructions, additionalSigners, lpTokenMint, lpMetadataAccount, renameFlp, err_52;
|
|
7774
7296
|
return __generator(this, function (_a) {
|
|
7775
7297
|
switch (_a.label) {
|
|
7776
7298
|
case 0:
|
|
@@ -7808,8 +7330,8 @@ var PerpetualsClient = (function () {
|
|
|
7808
7330
|
instructions.push(renameFlp);
|
|
7809
7331
|
return [3, 4];
|
|
7810
7332
|
case 3:
|
|
7811
|
-
|
|
7812
|
-
console.log("perpClient renameFlp error:: ",
|
|
7333
|
+
err_52 = _a.sent();
|
|
7334
|
+
console.log("perpClient renameFlp error:: ", err_52);
|
|
7813
7335
|
return [3, 4];
|
|
7814
7336
|
case 4: return [2, {
|
|
7815
7337
|
instructions: __spreadArray([], instructions, true),
|
|
@@ -7819,7 +7341,7 @@ var PerpetualsClient = (function () {
|
|
|
7819
7341
|
});
|
|
7820
7342
|
}); };
|
|
7821
7343
|
this.initStake = function (stakingFeeShareBps, rewardSymbol, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7822
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, lpTokenMint, stakedLpTokenAccount, rewardCustodyConfig, initStakeInstruction,
|
|
7344
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, lpTokenMint, stakedLpTokenAccount, rewardCustodyConfig, initStakeInstruction, err_53;
|
|
7823
7345
|
return __generator(this, function (_a) {
|
|
7824
7346
|
switch (_a.label) {
|
|
7825
7347
|
case 0:
|
|
@@ -7857,9 +7379,9 @@ var PerpetualsClient = (function () {
|
|
|
7857
7379
|
instructions.push(initStakeInstruction);
|
|
7858
7380
|
return [3, 4];
|
|
7859
7381
|
case 3:
|
|
7860
|
-
|
|
7861
|
-
console.log("perpClient InitStaking error:: ",
|
|
7862
|
-
throw
|
|
7382
|
+
err_53 = _a.sent();
|
|
7383
|
+
console.log("perpClient InitStaking error:: ", err_53);
|
|
7384
|
+
throw err_53;
|
|
7863
7385
|
case 4: return [2, {
|
|
7864
7386
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
7865
7387
|
additionalSigners: additionalSigners
|
|
@@ -7868,7 +7390,7 @@ var PerpetualsClient = (function () {
|
|
|
7868
7390
|
});
|
|
7869
7391
|
}); };
|
|
7870
7392
|
this.initCompounding = function (feeShareBps, metadataTitle, metadataSymbol, metadataUri, rewardSymbol, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7871
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyConfig, compoundingTokenMint, compoundingVault, metadataAccount, initCompoundingInstruction,
|
|
7393
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyConfig, compoundingTokenMint, compoundingVault, metadataAccount, initCompoundingInstruction, err_54;
|
|
7872
7394
|
return __generator(this, function (_a) {
|
|
7873
7395
|
switch (_a.label) {
|
|
7874
7396
|
case 0:
|
|
@@ -7913,9 +7435,9 @@ var PerpetualsClient = (function () {
|
|
|
7913
7435
|
instructions.push(initCompoundingInstruction);
|
|
7914
7436
|
return [3, 4];
|
|
7915
7437
|
case 3:
|
|
7916
|
-
|
|
7917
|
-
console.log("perpClient initCompounding error:: ",
|
|
7918
|
-
throw
|
|
7438
|
+
err_54 = _a.sent();
|
|
7439
|
+
console.log("perpClient initCompounding error:: ", err_54);
|
|
7440
|
+
throw err_54;
|
|
7919
7441
|
case 4: return [2, {
|
|
7920
7442
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
7921
7443
|
additionalSigners: additionalSigners
|
|
@@ -7924,7 +7446,7 @@ var PerpetualsClient = (function () {
|
|
|
7924
7446
|
});
|
|
7925
7447
|
}); };
|
|
7926
7448
|
this.initTokenVault = function (token_permissions, tokens_to_distribute, withdrawTimeLimit, withdrawInstantFee, stakeLevel, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7927
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, tokenMint, fundingTokenAccount, initTokenVaultInstruction,
|
|
7449
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, tokenMint, fundingTokenAccount, initTokenVaultInstruction, err_55;
|
|
7928
7450
|
return __generator(this, function (_a) {
|
|
7929
7451
|
switch (_a.label) {
|
|
7930
7452
|
case 0:
|
|
@@ -7965,9 +7487,9 @@ var PerpetualsClient = (function () {
|
|
|
7965
7487
|
instructions.push(initTokenVaultInstruction);
|
|
7966
7488
|
return [3, 4];
|
|
7967
7489
|
case 3:
|
|
7968
|
-
|
|
7969
|
-
console.log("perpClient InitTokenVaultInstruction error:: ",
|
|
7970
|
-
throw
|
|
7490
|
+
err_55 = _a.sent();
|
|
7491
|
+
console.log("perpClient InitTokenVaultInstruction error:: ", err_55);
|
|
7492
|
+
throw err_55;
|
|
7971
7493
|
case 4: return [2, {
|
|
7972
7494
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
7973
7495
|
additionalSigners: additionalSigners
|
|
@@ -7976,7 +7498,7 @@ var PerpetualsClient = (function () {
|
|
|
7976
7498
|
});
|
|
7977
7499
|
}); };
|
|
7978
7500
|
this.setTokenVaultConfig = function (token_permissions, withdrawTimeLimit, withdrawInstantFee, stakeLevel, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7979
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, setTokenVaultConfigInstruction,
|
|
7501
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, setTokenVaultConfigInstruction, err_56;
|
|
7980
7502
|
return __generator(this, function (_a) {
|
|
7981
7503
|
switch (_a.label) {
|
|
7982
7504
|
case 0:
|
|
@@ -8007,9 +7529,9 @@ var PerpetualsClient = (function () {
|
|
|
8007
7529
|
instructions.push(setTokenVaultConfigInstruction);
|
|
8008
7530
|
return [3, 4];
|
|
8009
7531
|
case 3:
|
|
8010
|
-
|
|
8011
|
-
console.log("perpClient setTokenVaultConfigInstruction error:: ",
|
|
8012
|
-
throw
|
|
7532
|
+
err_56 = _a.sent();
|
|
7533
|
+
console.log("perpClient setTokenVaultConfigInstruction error:: ", err_56);
|
|
7534
|
+
throw err_56;
|
|
8013
7535
|
case 4: return [2, {
|
|
8014
7536
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
8015
7537
|
additionalSigners: additionalSigners
|
|
@@ -8018,7 +7540,7 @@ var PerpetualsClient = (function () {
|
|
|
8018
7540
|
});
|
|
8019
7541
|
}); };
|
|
8020
7542
|
this.withdrawInstantFee = function (poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
8021
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, receivingTokenAccount, withdrawInstantFeeInstruction,
|
|
7543
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, receivingTokenAccount, withdrawInstantFeeInstruction, err_57;
|
|
8022
7544
|
return __generator(this, function (_a) {
|
|
8023
7545
|
switch (_a.label) {
|
|
8024
7546
|
case 0:
|
|
@@ -8057,9 +7579,59 @@ var PerpetualsClient = (function () {
|
|
|
8057
7579
|
instructions.push(withdrawInstantFeeInstruction);
|
|
8058
7580
|
return [3, 6];
|
|
8059
7581
|
case 5:
|
|
8060
|
-
|
|
8061
|
-
console.log("perpClient withdrawInstantFeeInstruction error:: ",
|
|
8062
|
-
throw
|
|
7582
|
+
err_57 = _a.sent();
|
|
7583
|
+
console.log("perpClient withdrawInstantFeeInstruction error:: ", err_57);
|
|
7584
|
+
throw err_57;
|
|
7585
|
+
case 6: return [2, {
|
|
7586
|
+
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
7587
|
+
additionalSigners: additionalSigners
|
|
7588
|
+
}];
|
|
7589
|
+
}
|
|
7590
|
+
});
|
|
7591
|
+
}); };
|
|
7592
|
+
this.withdrawUnclaimedTokens = function (poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7593
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, receivingTokenAccount, withdrawUnclaimedTokensInstruction, err_58;
|
|
7594
|
+
return __generator(this, function (_a) {
|
|
7595
|
+
switch (_a.label) {
|
|
7596
|
+
case 0:
|
|
7597
|
+
publicKey = this.provider.wallet.publicKey;
|
|
7598
|
+
preInstructions = [];
|
|
7599
|
+
instructions = [];
|
|
7600
|
+
postInstructions = [];
|
|
7601
|
+
additionalSigners = [];
|
|
7602
|
+
_a.label = 1;
|
|
7603
|
+
case 1:
|
|
7604
|
+
_a.trys.push([1, 5, , 6]);
|
|
7605
|
+
return [4, (0, spl_token_1.getAssociatedTokenAddress)(poolConfig.tokenMint, publicKey, true)];
|
|
7606
|
+
case 2:
|
|
7607
|
+
receivingTokenAccount = _a.sent();
|
|
7608
|
+
return [4, (0, utils_1.checkIfAccountExists)(receivingTokenAccount, this.provider.connection)];
|
|
7609
|
+
case 3:
|
|
7610
|
+
if (!(_a.sent())) {
|
|
7611
|
+
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, receivingTokenAccount, publicKey, poolConfig.tokenMint));
|
|
7612
|
+
}
|
|
7613
|
+
return [4, this.program.methods
|
|
7614
|
+
.withdrawUnclaimedTokens({})
|
|
7615
|
+
.accounts({
|
|
7616
|
+
admin: publicKey,
|
|
7617
|
+
multisig: this.multisig.publicKey,
|
|
7618
|
+
perpetuals: this.perpetuals.publicKey,
|
|
7619
|
+
transferAuthority: poolConfig.transferAuthority,
|
|
7620
|
+
tokenVault: poolConfig.tokenVault,
|
|
7621
|
+
tokenVaultTokenAccount: poolConfig.tokenVaultTokenAccount,
|
|
7622
|
+
receivingTokenAccount: receivingTokenAccount,
|
|
7623
|
+
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
7624
|
+
receivingTokenMint: poolConfig.tokenMint,
|
|
7625
|
+
})
|
|
7626
|
+
.instruction()];
|
|
7627
|
+
case 4:
|
|
7628
|
+
withdrawUnclaimedTokensInstruction = _a.sent();
|
|
7629
|
+
instructions.push(withdrawUnclaimedTokensInstruction);
|
|
7630
|
+
return [3, 6];
|
|
7631
|
+
case 5:
|
|
7632
|
+
err_58 = _a.sent();
|
|
7633
|
+
console.log("perpClient withdrawUnclaimedTokensInstruction error:: ", err_58);
|
|
7634
|
+
throw err_58;
|
|
8063
7635
|
case 6: return [2, {
|
|
8064
7636
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
8065
7637
|
additionalSigners: additionalSigners
|
|
@@ -8068,7 +7640,7 @@ var PerpetualsClient = (function () {
|
|
|
8068
7640
|
});
|
|
8069
7641
|
}); };
|
|
8070
7642
|
this.initRevenueTokenAccount = function (feeShareBps, rewardSymbol, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
8071
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyMint, initRevenueTokenAccountInstruction,
|
|
7643
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyMint, initRevenueTokenAccountInstruction, err_59;
|
|
8072
7644
|
return __generator(this, function (_a) {
|
|
8073
7645
|
switch (_a.label) {
|
|
8074
7646
|
case 0:
|
|
@@ -8105,9 +7677,9 @@ var PerpetualsClient = (function () {
|
|
|
8105
7677
|
instructions.push(initRevenueTokenAccountInstruction);
|
|
8106
7678
|
return [3, 4];
|
|
8107
7679
|
case 3:
|
|
8108
|
-
|
|
8109
|
-
console.log("perpClient initRevenueTokenAccountInstruction error:: ",
|
|
8110
|
-
throw
|
|
7680
|
+
err_59 = _a.sent();
|
|
7681
|
+
console.log("perpClient initRevenueTokenAccountInstruction error:: ", err_59);
|
|
7682
|
+
throw err_59;
|
|
8111
7683
|
case 4: return [2, {
|
|
8112
7684
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
8113
7685
|
additionalSigners: additionalSigners
|
|
@@ -8116,7 +7688,7 @@ var PerpetualsClient = (function () {
|
|
|
8116
7688
|
});
|
|
8117
7689
|
}); };
|
|
8118
7690
|
this.distributeTokenReward = function (amount, epochCount, rewardSymbol, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
8119
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyMint, fundingTokenAccount, revenueFundingTokenAccount, distributeTokenRewardInstruction,
|
|
7691
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyMint, fundingTokenAccount, revenueFundingTokenAccount, distributeTokenRewardInstruction, err_60;
|
|
8120
7692
|
return __generator(this, function (_a) {
|
|
8121
7693
|
switch (_a.label) {
|
|
8122
7694
|
case 0:
|
|
@@ -8155,9 +7727,9 @@ var PerpetualsClient = (function () {
|
|
|
8155
7727
|
instructions.push(distributeTokenRewardInstruction);
|
|
8156
7728
|
return [3, 4];
|
|
8157
7729
|
case 3:
|
|
8158
|
-
|
|
8159
|
-
console.log("perpClient distributeTokenRewardInstruction error:: ",
|
|
8160
|
-
throw
|
|
7730
|
+
err_60 = _a.sent();
|
|
7731
|
+
console.log("perpClient distributeTokenRewardInstruction error:: ", err_60);
|
|
7732
|
+
throw err_60;
|
|
8161
7733
|
case 4: return [2, {
|
|
8162
7734
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
8163
7735
|
additionalSigners: additionalSigners
|
|
@@ -8166,7 +7738,7 @@ var PerpetualsClient = (function () {
|
|
|
8166
7738
|
});
|
|
8167
7739
|
}); };
|
|
8168
7740
|
this.setTokenStakeLevel = function (owner, stakeLevel) { return __awaiter(_this, void 0, void 0, function () {
|
|
8169
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, setTokenStakeLevelInstruction,
|
|
7741
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, setTokenStakeLevelInstruction, err_61;
|
|
8170
7742
|
return __generator(this, function (_a) {
|
|
8171
7743
|
switch (_a.label) {
|
|
8172
7744
|
case 0:
|
|
@@ -8194,9 +7766,9 @@ var PerpetualsClient = (function () {
|
|
|
8194
7766
|
instructions.push(setTokenStakeLevelInstruction);
|
|
8195
7767
|
return [3, 4];
|
|
8196
7768
|
case 3:
|
|
8197
|
-
|
|
8198
|
-
console.log("perpClient setTokenStakeLevelInstruction error:: ",
|
|
8199
|
-
throw
|
|
7769
|
+
err_61 = _a.sent();
|
|
7770
|
+
console.log("perpClient setTokenStakeLevelInstruction error:: ", err_61);
|
|
7771
|
+
throw err_61;
|
|
8200
7772
|
case 4: return [2, {
|
|
8201
7773
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
8202
7774
|
additionalSigners: additionalSigners
|
|
@@ -8205,7 +7777,7 @@ var PerpetualsClient = (function () {
|
|
|
8205
7777
|
});
|
|
8206
7778
|
}); };
|
|
8207
7779
|
this.setTokenReward = function (owner, amount, epochCount, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
8208
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, setTokenRewardInstruction,
|
|
7780
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, setTokenRewardInstruction, err_62;
|
|
8209
7781
|
return __generator(this, function (_a) {
|
|
8210
7782
|
switch (_a.label) {
|
|
8211
7783
|
case 0:
|
|
@@ -8237,9 +7809,49 @@ var PerpetualsClient = (function () {
|
|
|
8237
7809
|
instructions.push(setTokenRewardInstruction);
|
|
8238
7810
|
return [3, 4];
|
|
8239
7811
|
case 3:
|
|
8240
|
-
|
|
8241
|
-
console.log("perpClient setTokenRewardInstruction error:: ",
|
|
8242
|
-
throw
|
|
7812
|
+
err_62 = _a.sent();
|
|
7813
|
+
console.log("perpClient setTokenRewardInstruction error:: ", err_62);
|
|
7814
|
+
throw err_62;
|
|
7815
|
+
case 4: return [2, {
|
|
7816
|
+
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
7817
|
+
additionalSigners: additionalSigners
|
|
7818
|
+
}];
|
|
7819
|
+
}
|
|
7820
|
+
});
|
|
7821
|
+
}); };
|
|
7822
|
+
this.resizeInternalOracle = function (extOracle, tokenMint, intOracleAccount) { return __awaiter(_this, void 0, void 0, function () {
|
|
7823
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, resizeInternalOracleInstruction, err_63;
|
|
7824
|
+
return __generator(this, function (_a) {
|
|
7825
|
+
switch (_a.label) {
|
|
7826
|
+
case 0:
|
|
7827
|
+
publicKey = this.provider.wallet.publicKey;
|
|
7828
|
+
preInstructions = [];
|
|
7829
|
+
instructions = [];
|
|
7830
|
+
postInstructions = [];
|
|
7831
|
+
additionalSigners = [];
|
|
7832
|
+
_a.label = 1;
|
|
7833
|
+
case 1:
|
|
7834
|
+
_a.trys.push([1, 3, , 4]);
|
|
7835
|
+
return [4, this.program.methods
|
|
7836
|
+
.resizeInternalOracle({
|
|
7837
|
+
extOracle: extOracle
|
|
7838
|
+
})
|
|
7839
|
+
.accounts({
|
|
7840
|
+
admin: publicKey,
|
|
7841
|
+
multisig: this.multisig.publicKey,
|
|
7842
|
+
custodyTokenMint: tokenMint,
|
|
7843
|
+
intOracleAccount: intOracleAccount,
|
|
7844
|
+
systemProgram: web3_js_1.SystemProgram.programId,
|
|
7845
|
+
})
|
|
7846
|
+
.instruction()];
|
|
7847
|
+
case 2:
|
|
7848
|
+
resizeInternalOracleInstruction = _a.sent();
|
|
7849
|
+
instructions.push(resizeInternalOracleInstruction);
|
|
7850
|
+
return [3, 4];
|
|
7851
|
+
case 3:
|
|
7852
|
+
err_63 = _a.sent();
|
|
7853
|
+
console.log("perpClient resizeInternalOracleInstruction error:: ", err_63);
|
|
7854
|
+
throw err_63;
|
|
8243
7855
|
case 4: return [2, {
|
|
8244
7856
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
8245
7857
|
additionalSigners: additionalSigners
|