flash-sdk 9.0.2 → 9.0.3-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/MarketAccount.js +1 -1
- package/dist/PerpetualsClient.d.ts +303 -144
- package/dist/PerpetualsClient.js +718 -1076
- package/dist/PoolAccount.d.ts +3 -0
- package/dist/PoolConfig.d.ts +3 -1
- package/dist/PoolConfig.js +4 -2
- package/dist/PoolConfig.json +186 -3238
- package/dist/PositionAccount.d.ts +3 -2
- package/dist/TokenStakeAccount.d.ts +2 -2
- package/dist/TokenStakeAccount.js +2 -2
- package/dist/backupOracle.d.ts +0 -1
- package/dist/backupOracle.js +3 -3
- package/dist/idl/perpetuals.d.ts +3041 -1714
- package/dist/idl/perpetuals.js +3041 -1714
- 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 +18 -4
- package/dist/types/index.js +3 -2
- package/dist/utils/getReferralAccounts.d.ts +1 -1
- package/dist/utils/getReferralAccounts.js +3 -8
- package/package.json +1 -1
- package/dist/TradingAccount.d.ts +0 -24
- 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,11 +957,11 @@ 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
|
};
|
|
1020
|
-
this.getDecreaseSizeCollateralAndFeeSync = function (positionAccount, marketCorrelation, sizeDeltaUsd, keepLevSame, targetPrice, targetEmaPrice, marketConfig, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, side, poolConfig, discountBps, debugLogs) {
|
|
964
|
+
this.getDecreaseSizeCollateralAndFeeSync = function (positionAccount, marketCorrelation, maxPayOffBps, sizeDeltaUsd, keepLevSame, targetPrice, targetEmaPrice, marketConfig, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, side, poolConfig, discountBps, debugLogs) {
|
|
1021
965
|
if (discountBps === void 0) { discountBps = constants_1.BN_ZERO; }
|
|
1022
966
|
if (debugLogs === void 0) { debugLogs = false; }
|
|
1023
967
|
if (!marketConfig.marketAccount.equals(positionAccount.market)) {
|
|
@@ -1039,10 +983,9 @@ 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
|
-
positionDelta.
|
|
1045
|
-
positionDelta.
|
|
987
|
+
positionDelta.collateralUsd = (positionAccount.collateralUsd.mul(closeRatio)).div(decimalPower);
|
|
988
|
+
positionDelta.unsettledFeesUsd = (positionAccount.unsettledFeesUsd.mul(closeRatio)).div(decimalPower);
|
|
1046
989
|
positionDelta.degenSizeUsd = positionAccount.degenSizeUsd.mul(closeRatio).div(decimalPower);
|
|
1047
990
|
var newPnl = _this.getPnlSync(positionDelta, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, targetCustodyAccount.pricing.delaySeconds, poolConfig);
|
|
1048
991
|
var exitFeeUsd = positionDelta.sizeUsd.mul(targetCustodyAccount.fees.closePosition).div(new anchor_1.BN(constants_1.RATE_POWER));
|
|
@@ -1052,30 +995,37 @@ var PerpetualsClient = (function () {
|
|
|
1052
995
|
}
|
|
1053
996
|
var lockAndUnsettledFeeUsd = _this.getLockFeeAndUnsettledUsdForPosition(positionDelta, collateralCustodyAccount, currentTimestamp);
|
|
1054
997
|
var totalFeesUsd = (exitFeeUsd.add(lockAndUnsettledFeeUsd));
|
|
1055
|
-
var currentCollateralUsd =
|
|
998
|
+
var currentCollateralUsd = positionDelta.collateralUsd;
|
|
1056
999
|
var liabilityUsd = newPnl.lossUsd.add(totalFeesUsd);
|
|
1057
|
-
var assetsUsd = newPnl.profitUsd.add(currentCollateralUsd);
|
|
1058
|
-
var closeAmount, feesAmount;
|
|
1000
|
+
var assetsUsd = anchor_1.BN.min(newPnl.profitUsd.add(currentCollateralUsd), collateralMinMaxPrice.max.getAssetAmountUsd(positionDelta.lockedAmount, collateralCustodyAccount.decimals));
|
|
1059
1001
|
if (debugLogs) {
|
|
1060
1002
|
console.log("assetsUsd.sub(liabilityUsd):", collateralCustodyAccount.decimals, assetsUsd.toString(), liabilityUsd.toString(), assetsUsd.sub(liabilityUsd).toString());
|
|
1061
1003
|
}
|
|
1004
|
+
var closeAmountUsd, feesAmountUsd;
|
|
1062
1005
|
if (assetsUsd.gte(liabilityUsd)) {
|
|
1063
|
-
|
|
1064
|
-
|
|
1006
|
+
closeAmountUsd = assetsUsd.sub(liabilityUsd);
|
|
1007
|
+
feesAmountUsd = totalFeesUsd;
|
|
1008
|
+
}
|
|
1009
|
+
else {
|
|
1010
|
+
closeAmountUsd = constants_1.BN_ZERO;
|
|
1011
|
+
feesAmountUsd = assetsUsd.sub(newPnl.lossUsd);
|
|
1012
|
+
}
|
|
1013
|
+
var closeAmount = collateralMinMaxPrice.max.getTokenAmount(closeAmountUsd, collateralCustodyAccount.decimals);
|
|
1014
|
+
var newLockAmount = collateralMinMaxPrice.max.getTokenAmount(_this.getLockedUsd(constants_1.BN_ZERO, closeAmountUsd, side, marketCorrelation, maxPayOffBps), collateralCustodyAccount.decimals);
|
|
1015
|
+
if (newLockAmount.gt(positionDelta.lockedAmount)) {
|
|
1016
|
+
positionDelta.lockedAmount = constants_1.BN_ZERO;
|
|
1065
1017
|
}
|
|
1066
1018
|
else {
|
|
1067
|
-
|
|
1068
|
-
feesAmount = collateralMinMaxPrice.min.getTokenAmount(assetsUsd.sub(newPnl.lossUsd), collateralCustodyAccount.decimals);
|
|
1019
|
+
positionDelta.lockedAmount = positionDelta.lockedAmount.sub(newLockAmount);
|
|
1069
1020
|
}
|
|
1070
1021
|
var newPosition = PositionAccount_1.PositionAccount.from(positionAccount.publicKey, __assign({}, positionAccount));
|
|
1071
1022
|
newPosition.sizeAmount = positionAccount.sizeAmount.sub(positionDelta.sizeAmount);
|
|
1072
1023
|
newPosition.sizeUsd = positionAccount.sizeUsd.sub(positionDelta.sizeUsd);
|
|
1073
|
-
newPosition.lockedUsd = positionAccount.lockedUsd.sub(positionDelta.lockedUsd);
|
|
1074
1024
|
newPosition.lockedAmount = positionAccount.lockedAmount.sub(positionDelta.lockedAmount);
|
|
1075
|
-
newPosition.
|
|
1025
|
+
newPosition.collateralUsd = positionAccount.collateralUsd.sub(positionDelta.collateralUsd);
|
|
1076
1026
|
newPosition.unsettledFeesUsd = positionAccount.unsettledFeesUsd.sub(positionDelta.unsettledFeesUsd);
|
|
1077
|
-
newPosition.collateralUsd = collateralMinMaxPrice.min.getAssetAmountUsd(newPosition.collateralAmount, collateralCustodyAccount.decimals);
|
|
1078
1027
|
newPosition.degenSizeUsd = positionAccount.degenSizeUsd.sub(positionDelta.degenSizeUsd);
|
|
1028
|
+
newPosition.collateralUsd = newPosition.collateralUsd.add(closeAmountUsd);
|
|
1079
1029
|
var feeUsdWithDiscount = constants_1.BN_ZERO;
|
|
1080
1030
|
var feeUsd = sizeDeltaUsd.mul(targetCustodyAccount.fees.closePosition).div(new anchor_1.BN(constants_1.RATE_POWER));
|
|
1081
1031
|
if (discountBps.gt(constants_1.BN_ZERO)) {
|
|
@@ -1089,29 +1039,30 @@ var PerpetualsClient = (function () {
|
|
|
1089
1039
|
feeUsdWithDiscount = feeUsdWithDiscount.add(lockAndUnsettledFeeUsd);
|
|
1090
1040
|
if (keepLevSame) {
|
|
1091
1041
|
var collateralAmountReceived = closeAmount;
|
|
1092
|
-
var
|
|
1093
|
-
var _a = _this.getMaxWithdrawableAmountSyncInternal(newPosition, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, poolConfig
|
|
1042
|
+
var collateralAmountReceivedUsd = closeAmountUsd;
|
|
1043
|
+
var _a = _this.getMaxWithdrawableAmountSyncInternal(newPosition, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, poolConfig), maxWithdrawableAmount = _a.maxWithdrawableAmount, maxWithdrawableAmountUsd = _a.maxWithdrawableAmountUsd, diffUsd = _a.diffUsd;
|
|
1094
1044
|
if (debugLogs) {
|
|
1095
1045
|
console.log("maxWithdrawableAmount ", maxWithdrawableAmount.toString(), keepLevSame);
|
|
1096
1046
|
console.log("collateralAmountReceived ", collateralAmountReceived.toString(), keepLevSame);
|
|
1097
1047
|
}
|
|
1098
|
-
if (
|
|
1048
|
+
if (collateralAmountReceivedUsd.lt(constants_1.BN_ZERO)) {
|
|
1099
1049
|
collateralAmountReceived = constants_1.BN_ZERO;
|
|
1100
|
-
|
|
1050
|
+
collateralAmountReceivedUsd = constants_1.BN_ZERO;
|
|
1101
1051
|
}
|
|
1102
|
-
else if (
|
|
1052
|
+
else if (collateralAmountReceivedUsd.gt(maxWithdrawableAmountUsd)) {
|
|
1103
1053
|
if (debugLogs) {
|
|
1104
1054
|
console.log("exceeding to redicing maxWithdrawableAmount ", maxWithdrawableAmount.toString(), collateralAmountReceived.toString());
|
|
1105
1055
|
}
|
|
1106
1056
|
collateralAmountReceived = maxWithdrawableAmount;
|
|
1107
|
-
|
|
1057
|
+
collateralAmountReceivedUsd = maxWithdrawableAmountUsd;
|
|
1108
1058
|
}
|
|
1109
1059
|
var entryPrice = OraclePrice_1.OraclePrice.from({ price: newPosition.entryPrice.price, exponent: new anchor_1.BN(newPosition.entryPrice.exponent), confidence: constants_1.BN_ZERO, timestamp: constants_1.BN_ZERO });
|
|
1110
|
-
|
|
1111
|
-
var
|
|
1060
|
+
newPosition.collateralUsd = newPosition.collateralUsd.sub(collateralAmountReceivedUsd);
|
|
1061
|
+
var lockAndUnsettledFeeUsdNew = _this.getLockFeeAndUnsettledUsdForPosition(newPosition, collateralCustodyAccount, currentTimestamp);
|
|
1062
|
+
var finalLiquidationPrice = _this.getLiquidationPriceContractHelper(entryPrice, lockAndUnsettledFeeUsdNew, side, targetCustodyAccount, newPosition);
|
|
1112
1063
|
var finalPnl = _this.getPnlSync(newPosition, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, targetCustodyAccount.pricing.delaySeconds, poolConfig);
|
|
1113
1064
|
var finalPnlUsd = finalPnl.profitUsd.sub(finalPnl.lossUsd);
|
|
1114
|
-
var newLev = _this.getLeverageSync(newPosition
|
|
1065
|
+
var newLev = _this.getLeverageSync(newPosition, newPosition.collateralUsd, newPosition.sizeUsd, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, false, poolConfig);
|
|
1115
1066
|
return {
|
|
1116
1067
|
newSizeUsd: newPosition.sizeUsd,
|
|
1117
1068
|
feeUsd: feeUsd,
|
|
@@ -1119,8 +1070,9 @@ var PerpetualsClient = (function () {
|
|
|
1119
1070
|
lockAndUnsettledFeeUsd: lockAndUnsettledFeeUsd,
|
|
1120
1071
|
newLev: newLev,
|
|
1121
1072
|
liquidationPrice: finalLiquidationPrice,
|
|
1122
|
-
|
|
1123
|
-
|
|
1073
|
+
collateralAmountReceived: collateralAmountReceived,
|
|
1074
|
+
collateralAmountReceivedUsd: collateralAmountReceivedUsd,
|
|
1075
|
+
newCollateralUsd: newPosition.collateralUsd.add(diffUsd),
|
|
1124
1076
|
newPnl: finalPnlUsd
|
|
1125
1077
|
};
|
|
1126
1078
|
}
|
|
@@ -1128,8 +1080,7 @@ var PerpetualsClient = (function () {
|
|
|
1128
1080
|
throw "only same leverage is supported for now";
|
|
1129
1081
|
}
|
|
1130
1082
|
};
|
|
1131
|
-
this.getMaxWithdrawableAmountSyncInternal = function (positionAccount, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, poolConfig,
|
|
1132
|
-
if (closeAmount === void 0) { closeAmount = constants_1.BN_ZERO; }
|
|
1083
|
+
this.getMaxWithdrawableAmountSyncInternal = function (positionAccount, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, poolConfig, errorBandwidthPercentageUi) {
|
|
1133
1084
|
if (errorBandwidthPercentageUi === void 0) { errorBandwidthPercentageUi = 5; }
|
|
1134
1085
|
if (errorBandwidthPercentageUi > 100 || errorBandwidthPercentageUi < 0) {
|
|
1135
1086
|
throw new Error("errorBandwidthPercentageUi cannot be >100 or <0");
|
|
@@ -1138,61 +1089,62 @@ var PerpetualsClient = (function () {
|
|
|
1138
1089
|
(new anchor_1.BN(targetCustodyAccount.pricing.maxInitDegenLeverage)).mul(new anchor_1.BN(100 - errorBandwidthPercentageUi)).div(new anchor_1.BN(100))
|
|
1139
1090
|
: (new anchor_1.BN(targetCustodyAccount.pricing.maxInitLeverage)).mul(new anchor_1.BN(100 - errorBandwidthPercentageUi)).div(new anchor_1.BN(100));
|
|
1140
1091
|
var profitLoss = _this.getPnlSync(positionAccount, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, targetCustodyAccount.pricing.delaySeconds, poolConfig);
|
|
1141
|
-
var
|
|
1092
|
+
var collateralMinMaxPrice = _this.getMinAndMaxOraclePriceSync(collateralPrice, collateralEmaPrice, collateralCustodyAccount);
|
|
1142
1093
|
var exitFeeUsd = positionAccount.sizeUsd.mul(targetCustodyAccount.fees.closePosition).div(new anchor_1.BN(constants_1.RATE_POWER));
|
|
1143
1094
|
var lockAndUnsettledFeeUsd = _this.getLockFeeAndUnsettledUsdForPosition(positionAccount, collateralCustodyAccount, currentTimestamp);
|
|
1144
1095
|
var lossUsd = profitLoss.lossUsd.add(exitFeeUsd).add(lockAndUnsettledFeeUsd);
|
|
1145
|
-
var currentCollateralUsd = collateralMinPrice.getAssetAmountUsd(positionAccount.collateralAmount.add(closeAmount), collateralCustodyAccount.decimals);
|
|
1146
1096
|
var availableInitMarginUsd = constants_1.BN_ZERO;
|
|
1147
|
-
if (profitLoss.lossUsd.lt(
|
|
1148
|
-
availableInitMarginUsd =
|
|
1097
|
+
if (profitLoss.lossUsd.lt(positionAccount.collateralUsd)) {
|
|
1098
|
+
availableInitMarginUsd = positionAccount.collateralUsd.sub(lossUsd);
|
|
1149
1099
|
}
|
|
1150
1100
|
else {
|
|
1151
1101
|
console.log("profitLoss.lossUsd > coll :: should have been liquidated");
|
|
1152
|
-
return { maxWithdrawableAmount: constants_1.BN_ZERO,
|
|
1102
|
+
return { maxWithdrawableAmount: constants_1.BN_ZERO, maxWithdrawableAmountUsd: constants_1.BN_ZERO, diffUsd: constants_1.BN_ZERO };
|
|
1153
1103
|
}
|
|
1154
1104
|
var maxRemovableCollateralUsd = availableInitMarginUsd.sub(positionAccount.sizeUsd.muln(constants_1.BPS_POWER).div(MAX_INIT_LEVERAGE));
|
|
1155
1105
|
if (maxRemovableCollateralUsd.isNeg()) {
|
|
1156
|
-
return { maxWithdrawableAmount: constants_1.BN_ZERO,
|
|
1106
|
+
return { maxWithdrawableAmount: constants_1.BN_ZERO, maxWithdrawableAmountUsd: constants_1.BN_ZERO, diffUsd: constants_1.BN_ZERO };
|
|
1157
1107
|
}
|
|
1158
1108
|
var maxWithdrawableAmount = constants_1.BN_ZERO;
|
|
1159
|
-
var
|
|
1109
|
+
var maxWithdrawableAmountUsd = constants_1.BN_ZERO;
|
|
1110
|
+
var diffUsd = constants_1.BN_ZERO;
|
|
1160
1111
|
var remainingCollateralUsd = availableInitMarginUsd.sub(maxRemovableCollateralUsd);
|
|
1161
1112
|
var isDegenMode = positionAccount.isDegenMode();
|
|
1162
1113
|
if (remainingCollateralUsd.lt(new anchor_1.BN(isDegenMode ? targetCustodyAccount.pricing.minDegenCollateralUsd : targetCustodyAccount.pricing.minCollateralUsd))) {
|
|
1163
|
-
|
|
1164
|
-
var updatedMaxRemovableCollateralUsd = maxRemovableCollateralUsd.sub(
|
|
1114
|
+
diffUsd = (new anchor_1.BN(isDegenMode ? targetCustodyAccount.pricing.minDegenCollateralUsd : targetCustodyAccount.pricing.minCollateralUsd)).sub(remainingCollateralUsd);
|
|
1115
|
+
var updatedMaxRemovableCollateralUsd = maxRemovableCollateralUsd.sub(diffUsd);
|
|
1165
1116
|
if (updatedMaxRemovableCollateralUsd.isNeg()) {
|
|
1166
|
-
return { maxWithdrawableAmount: constants_1.BN_ZERO,
|
|
1117
|
+
return { maxWithdrawableAmount: constants_1.BN_ZERO, maxWithdrawableAmountUsd: constants_1.BN_ZERO, diffUsd: constants_1.BN_ZERO };
|
|
1167
1118
|
}
|
|
1168
1119
|
else {
|
|
1169
|
-
maxWithdrawableAmount =
|
|
1120
|
+
maxWithdrawableAmount = collateralMinMaxPrice.max.getTokenAmount(updatedMaxRemovableCollateralUsd, collateralCustodyAccount.decimals);
|
|
1121
|
+
maxWithdrawableAmountUsd = updatedMaxRemovableCollateralUsd;
|
|
1170
1122
|
}
|
|
1171
1123
|
}
|
|
1172
1124
|
else {
|
|
1173
|
-
maxWithdrawableAmount =
|
|
1125
|
+
maxWithdrawableAmount = collateralMinMaxPrice.max.getTokenAmount(maxRemovableCollateralUsd, collateralCustodyAccount.decimals);
|
|
1126
|
+
maxWithdrawableAmountUsd = maxRemovableCollateralUsd;
|
|
1174
1127
|
}
|
|
1175
|
-
return { maxWithdrawableAmount: maxWithdrawableAmount,
|
|
1128
|
+
return { maxWithdrawableAmount: maxWithdrawableAmount, maxWithdrawableAmountUsd: maxWithdrawableAmountUsd, diffUsd: diffUsd };
|
|
1176
1129
|
};
|
|
1177
|
-
this.
|
|
1130
|
+
this.getFinalCloseAmountUsdSync = function (positionAccount, marketCorrelation, side, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, poolConfig) {
|
|
1178
1131
|
var position = PositionAccount_1.PositionAccount.from(positionAccount.publicKey, __assign({}, positionAccount));
|
|
1179
1132
|
var collateralMinMaxPrice = _this.getMinAndMaxOraclePriceSync(collateralPrice, collateralEmaPrice, collateralCustodyAccount);
|
|
1180
|
-
var collateralUsd = collateralMinMaxPrice.min.getAssetAmountUsd(position.collateralAmount, collateralCustodyAccount.decimals);
|
|
1181
1133
|
var newPnl = _this.getPnlSync(position, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, targetCustodyAccount.pricing.delaySeconds, poolConfig);
|
|
1182
1134
|
var exitPriceAndFee = _this.getExitPriceAndFeeSync(positionAccount, marketCorrelation, positionAccount.collateralAmount, positionAccount.sizeAmount, side, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp);
|
|
1183
1135
|
var totalFeesUsd = (exitPriceAndFee.exitFeeUsd.add(exitPriceAndFee.borrowFeeUsd));
|
|
1184
1136
|
var liabilityUsd = newPnl.lossUsd.add(totalFeesUsd);
|
|
1185
|
-
var assetsUsd = newPnl.profitUsd.add(collateralMinMaxPrice.
|
|
1186
|
-
var
|
|
1137
|
+
var assetsUsd = anchor_1.BN.min(newPnl.profitUsd.add(positionAccount.collateralUsd), collateralMinMaxPrice.max.getAssetAmountUsd(positionAccount.lockedAmount, collateralCustodyAccount.decimals));
|
|
1138
|
+
var closeAmountUsd, feesAmountUsd;
|
|
1187
1139
|
if (assetsUsd.gt(liabilityUsd)) {
|
|
1188
|
-
|
|
1189
|
-
|
|
1140
|
+
closeAmountUsd = assetsUsd.sub(liabilityUsd);
|
|
1141
|
+
feesAmountUsd = totalFeesUsd;
|
|
1190
1142
|
}
|
|
1191
1143
|
else {
|
|
1192
|
-
|
|
1193
|
-
|
|
1144
|
+
closeAmountUsd = constants_1.BN_ZERO;
|
|
1145
|
+
feesAmountUsd = assetsUsd.sub(newPnl.lossUsd);
|
|
1194
1146
|
}
|
|
1195
|
-
return {
|
|
1147
|
+
return { closeAmountUsd: closeAmountUsd, feesAmountUsd: feesAmountUsd };
|
|
1196
1148
|
};
|
|
1197
1149
|
this.getMaxWithdrawableAmountSync = function (positionAccount, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, poolConfig, errorBandwidthPercentageUi) {
|
|
1198
1150
|
if (errorBandwidthPercentageUi === void 0) { errorBandwidthPercentageUi = 5; }
|
|
@@ -1205,34 +1157,37 @@ var PerpetualsClient = (function () {
|
|
|
1205
1157
|
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
1158
|
if (maxRemoveableCollateralUsdAfterMinRequired.isNeg()) {
|
|
1207
1159
|
console.log("THIS cannot happen but still");
|
|
1208
|
-
return constants_1.BN_ZERO;
|
|
1160
|
+
return { maxWithdrawableAmount: constants_1.BN_ZERO, maxWithdrawableAmountUsd: constants_1.BN_ZERO };
|
|
1209
1161
|
}
|
|
1210
1162
|
var profitLoss = _this.getPnlSync(positionAccount, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, targetCustodyAccount.pricing.delaySeconds, poolConfig);
|
|
1211
|
-
var
|
|
1163
|
+
var collateralMinMaxPrice = _this.getMinAndMaxOraclePriceSync(collateralPrice, collateralEmaPrice, collateralCustodyAccount);
|
|
1212
1164
|
var exitFeeUsd = positionAccount.sizeUsd.mul(targetCustodyAccount.fees.closePosition).div(new anchor_1.BN(constants_1.RATE_POWER));
|
|
1213
1165
|
var lockAndUnsettledFeeUsd = _this.getLockFeeAndUnsettledUsdForPosition(positionAccount, collateralCustodyAccount, currentTimestamp);
|
|
1214
1166
|
var lossUsd = profitLoss.lossUsd.add(exitFeeUsd).add(lockAndUnsettledFeeUsd);
|
|
1215
|
-
var currentCollateralUsd =
|
|
1167
|
+
var currentCollateralUsd = positionAccount.collateralUsd;
|
|
1216
1168
|
var availableInitMarginUsd = constants_1.BN_ZERO;
|
|
1217
1169
|
if (profitLoss.lossUsd.lt(currentCollateralUsd)) {
|
|
1218
1170
|
availableInitMarginUsd = currentCollateralUsd.sub(lossUsd);
|
|
1219
1171
|
}
|
|
1220
1172
|
else {
|
|
1221
1173
|
console.log("profitLoss.lossUsd > coll :: should have been liquidated");
|
|
1222
|
-
return constants_1.BN_ZERO;
|
|
1174
|
+
return { maxWithdrawableAmount: constants_1.BN_ZERO, maxWithdrawableAmountUsd: constants_1.BN_ZERO };
|
|
1223
1175
|
}
|
|
1224
1176
|
var maxRemovableCollateralUsd = availableInitMarginUsd.sub(positionAccount.sizeUsd.muln(constants_1.BPS_POWER).div(MAX_INIT_LEVERAGE));
|
|
1225
1177
|
if (maxRemovableCollateralUsd.isNeg()) {
|
|
1226
|
-
return constants_1.BN_ZERO;
|
|
1178
|
+
return { maxWithdrawableAmount: constants_1.BN_ZERO, maxWithdrawableAmountUsd: constants_1.BN_ZERO };
|
|
1227
1179
|
}
|
|
1228
1180
|
var maxWithdrawableAmount;
|
|
1181
|
+
var maxWithdrawableAmountUsd = constants_1.BN_ZERO;
|
|
1229
1182
|
if (maxRemoveableCollateralUsdAfterMinRequired.lt(maxRemovableCollateralUsd)) {
|
|
1230
|
-
maxWithdrawableAmount =
|
|
1183
|
+
maxWithdrawableAmount = collateralMinMaxPrice.max.getTokenAmount(maxRemoveableCollateralUsdAfterMinRequired, collateralCustodyAccount.decimals);
|
|
1184
|
+
maxWithdrawableAmountUsd = maxRemoveableCollateralUsdAfterMinRequired;
|
|
1231
1185
|
}
|
|
1232
1186
|
else {
|
|
1233
|
-
maxWithdrawableAmount =
|
|
1187
|
+
maxWithdrawableAmount = collateralMinMaxPrice.max.getTokenAmount(maxRemovableCollateralUsd, collateralCustodyAccount.decimals);
|
|
1188
|
+
maxWithdrawableAmountUsd = maxRemovableCollateralUsd;
|
|
1234
1189
|
}
|
|
1235
|
-
return maxWithdrawableAmount;
|
|
1190
|
+
return { maxWithdrawableAmount: maxWithdrawableAmount, maxWithdrawableAmountUsd: maxWithdrawableAmountUsd };
|
|
1236
1191
|
};
|
|
1237
1192
|
this.getCumulativeLockFeeSync = function (custodyAccount, currentTimestamp) {
|
|
1238
1193
|
var cumulativeLockFee = constants_1.BN_ZERO;
|
|
@@ -1270,12 +1225,12 @@ var PerpetualsClient = (function () {
|
|
|
1270
1225
|
var cumulativeLockFee = _this.getCumulativeLockFeeSync(collateralCustodyAccount, currentTimestamp);
|
|
1271
1226
|
var lockFeeUsd = constants_1.BN_ZERO;
|
|
1272
1227
|
if (cumulativeLockFee.gt(position.cumulativeLockFeeSnapshot)) {
|
|
1273
|
-
lockFeeUsd = cumulativeLockFee.sub(position.cumulativeLockFeeSnapshot).mul(position.
|
|
1228
|
+
lockFeeUsd = cumulativeLockFee.sub(position.cumulativeLockFeeSnapshot).mul(position.sizeUsd).div(new anchor_1.BN(constants_1.RATE_POWER));
|
|
1274
1229
|
}
|
|
1275
1230
|
lockFeeUsd = lockFeeUsd.add(position.unsettledFeesUsd);
|
|
1276
1231
|
return lockFeeUsd;
|
|
1277
1232
|
};
|
|
1278
|
-
this.getLockedUsd = function (
|
|
1233
|
+
this.getLockedUsd = function (sizeUsd, collateralUsd, side, marketCorrelation, maxPayOffBps) {
|
|
1279
1234
|
var maxPayOffBpsNew = constants_1.BN_ZERO;
|
|
1280
1235
|
if (marketCorrelation || (0, types_1.isVariant)(side, 'short')) {
|
|
1281
1236
|
maxPayOffBpsNew = anchor_1.BN.min(new anchor_1.BN(constants_1.BPS_POWER), maxPayOffBps);
|
|
@@ -1283,193 +1238,146 @@ var PerpetualsClient = (function () {
|
|
|
1283
1238
|
else {
|
|
1284
1239
|
maxPayOffBpsNew = maxPayOffBps;
|
|
1285
1240
|
}
|
|
1286
|
-
var lockedUsd = (
|
|
1241
|
+
var lockedUsd = ((sizeUsd.add(collateralUsd)).mul(maxPayOffBpsNew)).div(new anchor_1.BN(constants_1.BPS_POWER));
|
|
1287
1242
|
return lockedUsd;
|
|
1288
1243
|
};
|
|
1289
|
-
this.
|
|
1244
|
+
this.getLiquidationPriceContractHelper = function (entryOraclePrice, lockAndUnsettledFeeUsd, side, targetCustodyAccount, positionAccount) {
|
|
1290
1245
|
var zeroOraclePrice = OraclePrice_1.OraclePrice.from({
|
|
1291
1246
|
price: constants_1.BN_ZERO,
|
|
1292
1247
|
exponent: constants_1.BN_ZERO,
|
|
1293
1248
|
confidence: constants_1.BN_ZERO,
|
|
1294
1249
|
timestamp: constants_1.BN_ZERO
|
|
1295
1250
|
});
|
|
1296
|
-
if (collateralAmount.isZero() || sizeAmount.isZero()) {
|
|
1297
|
-
return zeroOraclePrice;
|
|
1298
|
-
}
|
|
1299
1251
|
if (positionAccount.entryPrice.exponent && !entryOraclePrice.exponent.eq(new anchor_1.BN(positionAccount.entryPrice.exponent))) {
|
|
1300
1252
|
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
1253
|
}
|
|
1302
1254
|
var exitFeeUsd = positionAccount.sizeUsd.mul(targetCustodyAccount.fees.closePosition).div(new anchor_1.BN(constants_1.RATE_POWER));
|
|
1303
1255
|
var unsettledLossUsd = exitFeeUsd.add(lockAndUnsettledFeeUsd);
|
|
1304
1256
|
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
1257
|
var liquidationPrice;
|
|
1308
|
-
if (
|
|
1309
|
-
var
|
|
1310
|
-
|
|
1311
|
-
|
|
1258
|
+
if (positionAccount.collateralUsd.gte(liablitiesUsd)) {
|
|
1259
|
+
var priceDiffLossOracle = OraclePrice_1.OraclePrice.from({
|
|
1260
|
+
price: (positionAccount.collateralUsd.sub(liablitiesUsd)).mul(new anchor_1.BN(Math.pow(10, (positionAccount.sizeDecimals + 3))))
|
|
1261
|
+
.div(positionAccount.sizeAmount),
|
|
1262
|
+
exponent: new anchor_1.BN(-1 * constants_1.RATE_DECIMALS),
|
|
1263
|
+
confidence: constants_1.BN_ZERO,
|
|
1264
|
+
timestamp: constants_1.BN_ZERO
|
|
1265
|
+
}).scale_to_exponent(new anchor_1.BN(entryOraclePrice.exponent));
|
|
1266
|
+
if ((0, types_1.isVariant)(side, 'long')) {
|
|
1267
|
+
liquidationPrice = OraclePrice_1.OraclePrice.from({
|
|
1268
|
+
price: entryOraclePrice.price.sub(priceDiffLossOracle.price),
|
|
1269
|
+
exponent: new anchor_1.BN(entryOraclePrice.exponent),
|
|
1270
|
+
confidence: constants_1.BN_ZERO,
|
|
1271
|
+
timestamp: constants_1.BN_ZERO
|
|
1272
|
+
});
|
|
1312
1273
|
}
|
|
1313
1274
|
else {
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1275
|
+
liquidationPrice = OraclePrice_1.OraclePrice.from({
|
|
1276
|
+
price: entryOraclePrice.price.add(priceDiffLossOracle.price),
|
|
1277
|
+
exponent: new anchor_1.BN(entryOraclePrice.exponent),
|
|
1278
|
+
confidence: constants_1.BN_ZERO,
|
|
1279
|
+
timestamp: constants_1.BN_ZERO
|
|
1280
|
+
});
|
|
1317
1281
|
}
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1282
|
+
}
|
|
1283
|
+
else {
|
|
1284
|
+
var priceDiffProfitOracle = OraclePrice_1.OraclePrice.from({
|
|
1285
|
+
price: (liablitiesUsd.sub(positionAccount.collateralUsd)).mul(new anchor_1.BN(Math.pow(10, (positionAccount.sizeDecimals + 3))))
|
|
1286
|
+
.div(positionAccount.sizeAmount),
|
|
1321
1287
|
exponent: new anchor_1.BN(-1 * constants_1.RATE_DECIMALS),
|
|
1322
1288
|
confidence: constants_1.BN_ZERO,
|
|
1323
1289
|
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),
|
|
1290
|
+
}).scale_to_exponent(new anchor_1.BN(entryOraclePrice.exponent));
|
|
1291
|
+
if ((0, types_1.isVariant)(side, 'long')) {
|
|
1292
|
+
liquidationPrice = OraclePrice_1.OraclePrice.from({
|
|
1293
|
+
price: entryOraclePrice.price.add(priceDiffProfitOracle.price),
|
|
1294
|
+
exponent: new anchor_1.BN(entryOraclePrice.exponent),
|
|
1334
1295
|
confidence: constants_1.BN_ZERO,
|
|
1335
1296
|
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
|
-
}
|
|
1297
|
+
});
|
|
1353
1298
|
}
|
|
1354
1299
|
else {
|
|
1355
|
-
|
|
1356
|
-
price:
|
|
1357
|
-
|
|
1358
|
-
exponent: new anchor_1.BN(-1 * constants_1.RATE_DECIMALS),
|
|
1300
|
+
liquidationPrice = OraclePrice_1.OraclePrice.from({
|
|
1301
|
+
price: entryOraclePrice.price.sub(priceDiffProfitOracle.price),
|
|
1302
|
+
exponent: new anchor_1.BN(entryOraclePrice.exponent),
|
|
1359
1303
|
confidence: constants_1.BN_ZERO,
|
|
1360
1304
|
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
|
-
}
|
|
1305
|
+
});
|
|
1378
1306
|
}
|
|
1379
1307
|
}
|
|
1380
1308
|
return liquidationPrice.price.isNeg() ? zeroOraclePrice : liquidationPrice;
|
|
1381
1309
|
};
|
|
1382
|
-
this.
|
|
1310
|
+
this.getLiquidationPriceSync = function (collateralUsd, sizeAmount, entryOraclePrice, lockAndUnsettledFeeUsd, side, targetPrice, targetCustodyAccount, positionAccount) {
|
|
1311
|
+
var newPositionAccount = positionAccount.clone();
|
|
1312
|
+
newPositionAccount.sizeAmount = sizeAmount;
|
|
1313
|
+
newPositionAccount.sizeUsd = targetPrice.getAssetAmountUsd(sizeAmount, targetCustodyAccount.decimals);
|
|
1314
|
+
newPositionAccount.collateralUsd = collateralUsd;
|
|
1315
|
+
return _this.getLiquidationPriceContractHelper(entryOraclePrice, lockAndUnsettledFeeUsd, side, targetCustodyAccount, newPositionAccount);
|
|
1316
|
+
};
|
|
1317
|
+
this.getLiquidationPriceWithOrder = function (collateralUsd, sizeAmount, sizeUsd, sizeDecimals, limitOraclePrice, side, targetCustodyAccount) {
|
|
1383
1318
|
var zeroOraclePrice = OraclePrice_1.OraclePrice.from({
|
|
1384
1319
|
price: constants_1.BN_ZERO,
|
|
1385
1320
|
exponent: constants_1.BN_ZERO,
|
|
1386
1321
|
confidence: constants_1.BN_ZERO,
|
|
1387
1322
|
timestamp: constants_1.BN_ZERO
|
|
1388
1323
|
});
|
|
1389
|
-
if (collateralAmount.isZero() || sizeAmount.isZero()) {
|
|
1390
|
-
return zeroOraclePrice;
|
|
1391
|
-
}
|
|
1392
1324
|
var exitFeeUsd = sizeUsd.mul(targetCustodyAccount.fees.closePosition).div(new anchor_1.BN(constants_1.RATE_POWER));
|
|
1393
1325
|
var unsettledLossUsd = exitFeeUsd;
|
|
1394
1326
|
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
1327
|
var liquidationPrice;
|
|
1398
|
-
if (
|
|
1399
|
-
var
|
|
1400
|
-
|
|
1401
|
-
|
|
1328
|
+
if (collateralUsd.gte(liablitiesUsd)) {
|
|
1329
|
+
var priceDiffLossOracle = OraclePrice_1.OraclePrice.from({
|
|
1330
|
+
price: (collateralUsd.sub(liablitiesUsd)).mul(new anchor_1.BN(Math.pow(10, (sizeDecimals + 3))))
|
|
1331
|
+
.div(sizeAmount),
|
|
1332
|
+
exponent: new anchor_1.BN(-1 * constants_1.RATE_DECIMALS),
|
|
1333
|
+
confidence: constants_1.BN_ZERO,
|
|
1334
|
+
timestamp: constants_1.BN_ZERO
|
|
1335
|
+
}).scale_to_exponent(new anchor_1.BN(limitOraclePrice.exponent));
|
|
1336
|
+
if ((0, types_1.isVariant)(side, 'long')) {
|
|
1337
|
+
liquidationPrice = OraclePrice_1.OraclePrice.from({
|
|
1338
|
+
price: limitOraclePrice.price.sub(priceDiffLossOracle.price),
|
|
1339
|
+
exponent: new anchor_1.BN(limitOraclePrice.exponent),
|
|
1340
|
+
confidence: constants_1.BN_ZERO,
|
|
1341
|
+
timestamp: constants_1.BN_ZERO
|
|
1342
|
+
});
|
|
1402
1343
|
}
|
|
1403
1344
|
else {
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1345
|
+
liquidationPrice = OraclePrice_1.OraclePrice.from({
|
|
1346
|
+
price: limitOraclePrice.price.add(priceDiffLossOracle.price),
|
|
1347
|
+
exponent: new anchor_1.BN(limitOraclePrice.exponent),
|
|
1348
|
+
confidence: constants_1.BN_ZERO,
|
|
1349
|
+
timestamp: constants_1.BN_ZERO
|
|
1350
|
+
});
|
|
1407
1351
|
}
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1352
|
+
}
|
|
1353
|
+
else {
|
|
1354
|
+
var priceDiffProfitOracle = OraclePrice_1.OraclePrice.from({
|
|
1355
|
+
price: (liablitiesUsd.sub(collateralUsd)).mul(new anchor_1.BN(Math.pow(10, (sizeDecimals + 3))))
|
|
1356
|
+
.div(sizeAmount),
|
|
1411
1357
|
exponent: new anchor_1.BN(-1 * constants_1.RATE_DECIMALS),
|
|
1412
1358
|
confidence: constants_1.BN_ZERO,
|
|
1413
1359
|
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),
|
|
1360
|
+
}).scale_to_exponent(new anchor_1.BN(limitOraclePrice.exponent));
|
|
1361
|
+
if ((0, types_1.isVariant)(side, 'long')) {
|
|
1362
|
+
liquidationPrice = OraclePrice_1.OraclePrice.from({
|
|
1363
|
+
price: limitOraclePrice.price.add(priceDiffProfitOracle.price),
|
|
1364
|
+
exponent: new anchor_1.BN(limitOraclePrice.exponent),
|
|
1424
1365
|
confidence: constants_1.BN_ZERO,
|
|
1425
1366
|
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
|
-
}
|
|
1367
|
+
});
|
|
1443
1368
|
}
|
|
1444
1369
|
else {
|
|
1445
|
-
|
|
1446
|
-
price:
|
|
1447
|
-
|
|
1448
|
-
exponent: new anchor_1.BN(-1 * constants_1.RATE_DECIMALS),
|
|
1370
|
+
liquidationPrice = OraclePrice_1.OraclePrice.from({
|
|
1371
|
+
price: limitOraclePrice.price.sub(priceDiffProfitOracle.price),
|
|
1372
|
+
exponent: new anchor_1.BN(limitOraclePrice.exponent),
|
|
1449
1373
|
confidence: constants_1.BN_ZERO,
|
|
1450
1374
|
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
|
-
}
|
|
1375
|
+
});
|
|
1468
1376
|
}
|
|
1469
1377
|
}
|
|
1470
1378
|
return liquidationPrice.price.isNeg() ? zeroOraclePrice : liquidationPrice;
|
|
1471
1379
|
};
|
|
1472
|
-
this.getMaxProfitPriceSync = function (entryPrice, marketCorrelation, side, positionAccount) {
|
|
1380
|
+
this.getMaxProfitPriceSync = function (entryPrice, marketCorrelation, side, collateralPrice, positionAccount) {
|
|
1473
1381
|
var zeroOraclePrice = OraclePrice_1.OraclePrice.from({
|
|
1474
1382
|
price: constants_1.BN_ZERO,
|
|
1475
1383
|
exponent: constants_1.BN_ZERO,
|
|
@@ -1480,7 +1388,7 @@ var PerpetualsClient = (function () {
|
|
|
1480
1388
|
return zeroOraclePrice;
|
|
1481
1389
|
}
|
|
1482
1390
|
var priceDiffProfit = OraclePrice_1.OraclePrice.from({
|
|
1483
|
-
price: positionAccount.
|
|
1391
|
+
price: (collateralPrice.price.mul(positionAccount.lockedAmount)).mul(new anchor_1.BN(10).pow(new anchor_1.BN(positionAccount.sizeDecimals + 3)))
|
|
1484
1392
|
.div(positionAccount.sizeAmount),
|
|
1485
1393
|
exponent: new anchor_1.BN(-1 * constants_1.RATE_DECIMALS),
|
|
1486
1394
|
confidence: constants_1.BN_ZERO,
|
|
@@ -1508,7 +1416,7 @@ var PerpetualsClient = (function () {
|
|
|
1508
1416
|
}
|
|
1509
1417
|
return maxProfitPrice.price.isNeg() ? zeroOraclePrice : maxProfitPrice;
|
|
1510
1418
|
};
|
|
1511
|
-
this.getEstimateProfitLossforTpSlEntry = function (positionAccount, isTakeProfit, userEntrytpSlOraclePrice, collateralDeltaAmount, sizeDeltaAmount, side, marketAccountPk, targetTokenPrice, targetTokenEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, poolConfig) {
|
|
1419
|
+
this.getEstimateProfitLossforTpSlEntry = function (positionAccount, isTakeProfit, userEntrytpSlOraclePrice, collateralDeltaAmount, sizeDeltaAmount, side, marketCorrelation, maxPayOffBps, marketAccountPk, targetTokenPrice, targetTokenEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, poolConfig) {
|
|
1512
1420
|
if (collateralDeltaAmount.isNeg() || sizeDeltaAmount.isNeg()) {
|
|
1513
1421
|
throw new Error("Delta Amounts cannot be negative.");
|
|
1514
1422
|
}
|
|
@@ -1538,10 +1446,9 @@ var PerpetualsClient = (function () {
|
|
|
1538
1446
|
positionAccount.sizeUsd = positionAccount.sizeUsd.add(sizeDeltaUsd);
|
|
1539
1447
|
positionAccount.sizeAmount = positionAccount.sizeAmount.add(sizeDeltaAmount);
|
|
1540
1448
|
positionAccount.market = marketAccountPk;
|
|
1541
|
-
|
|
1542
|
-
positionAccount.
|
|
1543
|
-
positionAccount.
|
|
1544
|
-
positionAccount.collateralUsd = collateralPrice.getAssetAmountUsd(positionAccount.collateralAmount, collateralCustodyAccount.decimals);
|
|
1449
|
+
var collateralDeltaUsd = collateralPrice.getAssetAmountUsd(collateralDeltaAmount, collateralCustodyAccount.decimals);
|
|
1450
|
+
positionAccount.collateralUsd = positionAccount.collateralUsd.add(collateralDeltaUsd);
|
|
1451
|
+
positionAccount.lockedAmount = positionAccount.lockedAmount.add(collateralPrice.getTokenAmount(_this.getLockedUsd(sizeDeltaUsd, collateralDeltaUsd, side, marketCorrelation, maxPayOffBps), collateralCustodyAccount.decimals));
|
|
1545
1452
|
var currentTime = new anchor_1.BN((0, utils_1.getUnixTs)());
|
|
1546
1453
|
var pnl = _this.getPnlSync(positionAccount, userEntrytpSlOraclePrice, userEntrytpSlOraclePrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTime, targetCustodyAccount.pricing.delaySeconds, poolConfig);
|
|
1547
1454
|
var pnlUsd = pnl.profitUsd.sub(pnl.lossUsd);
|
|
@@ -1613,6 +1520,9 @@ var PerpetualsClient = (function () {
|
|
|
1613
1520
|
});
|
|
1614
1521
|
};
|
|
1615
1522
|
this.getPnlSync = function (positionAccount, targetTokenPrice, targetTokenEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, delay, poolConfig) {
|
|
1523
|
+
return _this.getPnlContractHelper(positionAccount, targetTokenPrice, targetTokenEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, delay, poolConfig);
|
|
1524
|
+
};
|
|
1525
|
+
this.getPnlContractHelper = function (positionAccount, targetTokenPrice, targetTokenEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, delay, poolConfig) {
|
|
1616
1526
|
if (positionAccount.sizeUsd.isZero() || positionAccount.entryPrice.price.isZero()) {
|
|
1617
1527
|
return {
|
|
1618
1528
|
profitUsd: constants_1.BN_ZERO,
|
|
@@ -1671,7 +1581,7 @@ var PerpetualsClient = (function () {
|
|
|
1671
1581
|
}
|
|
1672
1582
|
if (priceDiffProfit.price.gt(constants_1.BN_ZERO)) {
|
|
1673
1583
|
return {
|
|
1674
|
-
profitUsd:
|
|
1584
|
+
profitUsd: priceDiffProfit.getAssetAmountUsd(positionAccount.sizeAmount, positionAccount.sizeDecimals),
|
|
1675
1585
|
lossUsd: constants_1.BN_ZERO,
|
|
1676
1586
|
};
|
|
1677
1587
|
}
|
|
@@ -1762,6 +1672,9 @@ var PerpetualsClient = (function () {
|
|
|
1762
1672
|
}
|
|
1763
1673
|
};
|
|
1764
1674
|
this.getAssetsUnderManagementUsdSync = function (poolAccount, tokenPrices, tokenEmaPrices, custodies, markets, aumCalcMode, currentTime, poolConfig) {
|
|
1675
|
+
return _this.getAssetsUnderManagementUsdContractHelper(poolAccount, tokenPrices, tokenEmaPrices, custodies, markets, aumCalcMode, currentTime, poolConfig);
|
|
1676
|
+
};
|
|
1677
|
+
this.getAssetsUnderManagementUsdContractHelper = function (poolAccount, tokenPrices, tokenEmaPrices, custodies, markets, aumCalcMode, currentTime, poolConfig) {
|
|
1765
1678
|
var poolAmountUsd = constants_1.BN_ZERO;
|
|
1766
1679
|
for (var index = 0; index < custodies.length; index++) {
|
|
1767
1680
|
if (custodies.length != poolAccount.custodies.length || !custodies[index].publicKey.equals(poolAccount.custodies[index])) {
|
|
@@ -1774,6 +1687,7 @@ var PerpetualsClient = (function () {
|
|
|
1774
1687
|
var token_amount_usd = tokenMinMaxPrice.max.getAssetAmountUsd(custodies[index].assets.owned, custodies[index].decimals);
|
|
1775
1688
|
poolAmountUsd = poolAmountUsd.add(token_amount_usd);
|
|
1776
1689
|
}
|
|
1690
|
+
poolAmountUsd = poolAmountUsd.sub(poolAccount.feesObligationUsd.add(poolAccount.rebateObligationUsd));
|
|
1777
1691
|
if (aumCalcMode === "includePnl") {
|
|
1778
1692
|
var poolEquityUsd = poolAmountUsd;
|
|
1779
1693
|
for (var index = 0; index < markets.length; index++) {
|
|
@@ -1783,11 +1697,12 @@ var PerpetualsClient = (function () {
|
|
|
1783
1697
|
var targetCustodyId = poolAccount.getCustodyId(markets[index].targetCustody);
|
|
1784
1698
|
var collateralCustodyId = poolAccount.getCustodyId(markets[index].collateralCustody);
|
|
1785
1699
|
var position = markets[index].getCollectivePosition();
|
|
1700
|
+
poolEquityUsd = poolEquityUsd.sub(position.collateralUsd);
|
|
1786
1701
|
var collectivePnl = _this.getPnlSync(position, tokenPrices[targetCustodyId], tokenEmaPrices[targetCustodyId], custodies[targetCustodyId], tokenPrices[collateralCustodyId], tokenEmaPrices[collateralCustodyId], custodies[collateralCustodyId], currentTime, custodies[targetCustodyId].pricing.delaySeconds, poolConfig);
|
|
1787
1702
|
var collateralMinMaxPrice = _this.getMinAndMaxOraclePriceSync(tokenPrices[collateralCustodyId], tokenEmaPrices[collateralCustodyId], custodies[collateralCustodyId]);
|
|
1788
|
-
var
|
|
1789
|
-
var
|
|
1790
|
-
poolEquityUsd = (poolEquityUsd.add(collectiveLossUsd)).sub(
|
|
1703
|
+
var collectiveLossUsd = anchor_1.BN.min(collectivePnl.lossUsd, position.collateralUsd);
|
|
1704
|
+
var collectiveProfitUsd = anchor_1.BN.min(collectivePnl.profitUsd, collateralMinMaxPrice.max.getAssetAmountUsd(position.lockedAmount, custodies[collateralCustodyId].decimals).sub(position.collateralUsd));
|
|
1705
|
+
poolEquityUsd = (poolEquityUsd.add(collectiveLossUsd)).sub(collectiveProfitUsd);
|
|
1791
1706
|
}
|
|
1792
1707
|
return { poolAmountUsd: poolAmountUsd, poolEquityUsd: poolEquityUsd };
|
|
1793
1708
|
}
|
|
@@ -1795,14 +1710,6 @@ var PerpetualsClient = (function () {
|
|
|
1795
1710
|
return { poolAmountUsd: poolAmountUsd, poolEquityUsd: constants_1.BN_ZERO };
|
|
1796
1711
|
}
|
|
1797
1712
|
};
|
|
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
1713
|
this.getFeeDiscount = function (perpetualsAccount, tokenStakeAccount, currentTime) {
|
|
1807
1714
|
if (tokenStakeAccount.level === 0) {
|
|
1808
1715
|
return { discountBn: constants_1.BN_ZERO };
|
|
@@ -1887,7 +1794,7 @@ var PerpetualsClient = (function () {
|
|
|
1887
1794
|
});
|
|
1888
1795
|
};
|
|
1889
1796
|
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;
|
|
1797
|
+
var backUpOracleInstructionPromise, custodies, custodyMetas, marketMetas, _i, custodies_1, token, _a, custodies_2, custody, _b, _c, market, transaction, backUpOracleInstruction, setCULimitIx, result, index, res;
|
|
1891
1798
|
var _d;
|
|
1892
1799
|
return __generator(this, function (_e) {
|
|
1893
1800
|
switch (_e.label) {
|
|
@@ -1935,6 +1842,8 @@ var PerpetualsClient = (function () {
|
|
|
1935
1842
|
return [4, backUpOracleInstructionPromise];
|
|
1936
1843
|
case 2:
|
|
1937
1844
|
backUpOracleInstruction = _e.sent();
|
|
1845
|
+
setCULimitIx = web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({ units: 450000 });
|
|
1846
|
+
transaction.instructions.unshift(setCULimitIx);
|
|
1938
1847
|
(_d = transaction.instructions).unshift.apply(_d, backUpOracleInstruction);
|
|
1939
1848
|
return [4, this.viewHelper.simulateTransaction(transaction)];
|
|
1940
1849
|
case 3:
|
|
@@ -2001,7 +1910,7 @@ var PerpetualsClient = (function () {
|
|
|
2001
1910
|
args_1[_i - 4] = arguments[_i];
|
|
2002
1911
|
}
|
|
2003
1912
|
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;
|
|
1913
|
+
var custodies, custodyMetas, marketMetas, _a, custodies_5, token, _b, custodies_6, custody, _c, _d, market, depositCustodyConfig, transaction, setCULimitIx, backUpOracleInstruction, result, index, res;
|
|
2005
1914
|
var _e;
|
|
2006
1915
|
if (userPublicKey === void 0) { userPublicKey = undefined; }
|
|
2007
1916
|
if (enableBackupOracle === void 0) { enableBackupOracle = false; }
|
|
@@ -2052,6 +1961,8 @@ var PerpetualsClient = (function () {
|
|
|
2052
1961
|
.transaction()];
|
|
2053
1962
|
case 1:
|
|
2054
1963
|
transaction = _f.sent();
|
|
1964
|
+
setCULimitIx = web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({ units: 450000 });
|
|
1965
|
+
transaction.instructions.unshift(setCULimitIx);
|
|
2055
1966
|
if (!enableBackupOracle) return [3, 3];
|
|
2056
1967
|
return [4, (0, backupOracle_1.createBackupOracleInstruction)(POOL_CONFIG.poolAddress.toBase58(), true)];
|
|
2057
1968
|
case 2:
|
|
@@ -2061,6 +1972,14 @@ var PerpetualsClient = (function () {
|
|
|
2061
1972
|
case 3: return [4, this.viewHelper.simulateTransaction(transaction, userPublicKey)];
|
|
2062
1973
|
case 4:
|
|
2063
1974
|
result = _f.sent();
|
|
1975
|
+
if (result.value.err) {
|
|
1976
|
+
console.error('error Simulation failed:::', result);
|
|
1977
|
+
return [2, {
|
|
1978
|
+
amount: undefined,
|
|
1979
|
+
fee: undefined,
|
|
1980
|
+
error: 'Simulation failed: ' + JSON.stringify(result.value.err),
|
|
1981
|
+
}];
|
|
1982
|
+
}
|
|
2064
1983
|
index = perpetuals_1.IDL.instructions.findIndex(function (f) { return f.name === 'getAddLiquidityAmountAndFee'; });
|
|
2065
1984
|
res = this.viewHelper.decodeLogs(result, index, 'getAddLiquidityAmountAndFee');
|
|
2066
1985
|
return [2, {
|
|
@@ -2077,7 +1996,7 @@ var PerpetualsClient = (function () {
|
|
|
2077
1996
|
args_1[_i - 4] = arguments[_i];
|
|
2078
1997
|
}
|
|
2079
1998
|
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;
|
|
1999
|
+
var custodies, custodyMetas, marketMetas, _a, custodies_7, token, _b, custodies_8, custody, _c, _d, market, removeCustodyConfig, transaction, setCULimitIx, backUpOracleInstruction, result, index, res;
|
|
2081
2000
|
var _e;
|
|
2082
2001
|
if (userPublicKey === void 0) { userPublicKey = undefined; }
|
|
2083
2002
|
if (enableBackupOracle === void 0) { enableBackupOracle = false; }
|
|
@@ -2128,6 +2047,8 @@ var PerpetualsClient = (function () {
|
|
|
2128
2047
|
.transaction()];
|
|
2129
2048
|
case 1:
|
|
2130
2049
|
transaction = _f.sent();
|
|
2050
|
+
setCULimitIx = web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({ units: 450000 });
|
|
2051
|
+
transaction.instructions.unshift(setCULimitIx);
|
|
2131
2052
|
if (!enableBackupOracle) return [3, 3];
|
|
2132
2053
|
return [4, (0, backupOracle_1.createBackupOracleInstruction)(POOL_CONFIG.poolAddress.toBase58(), true)];
|
|
2133
2054
|
case 2:
|
|
@@ -2139,9 +2060,11 @@ var PerpetualsClient = (function () {
|
|
|
2139
2060
|
result = _f.sent();
|
|
2140
2061
|
index = perpetuals_1.IDL.instructions.findIndex(function (f) { return f.name === 'getRemoveLiquidityAmountAndFee'; });
|
|
2141
2062
|
if (result.value.err) {
|
|
2063
|
+
console.error('error Simulation failed:', result);
|
|
2142
2064
|
return [2, {
|
|
2143
|
-
amount:
|
|
2144
|
-
fee:
|
|
2065
|
+
amount: undefined,
|
|
2066
|
+
fee: undefined,
|
|
2067
|
+
error: 'Simulation failed: ' + JSON.stringify(result.value.err),
|
|
2145
2068
|
}];
|
|
2146
2069
|
}
|
|
2147
2070
|
res = this.viewHelper.decodeLogs(result, index, 'getRemoveLiquidityAmountAndFee');
|
|
@@ -2154,7 +2077,7 @@ var PerpetualsClient = (function () {
|
|
|
2154
2077
|
});
|
|
2155
2078
|
};
|
|
2156
2079
|
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;
|
|
2080
|
+
var backUpOracleInstructionPromise, custodies, custodyMetas, marketMetas, _i, custodies_9, token, _a, custodies_10, custody, _b, _c, market, backUpOracleInstruction, transaction, setCULimitIx, result, index, res;
|
|
2158
2081
|
var _d;
|
|
2159
2082
|
return __generator(this, function (_e) {
|
|
2160
2083
|
switch (_e.label) {
|
|
@@ -2202,6 +2125,8 @@ var PerpetualsClient = (function () {
|
|
|
2202
2125
|
.transaction()];
|
|
2203
2126
|
case 2:
|
|
2204
2127
|
transaction = _e.sent();
|
|
2128
|
+
setCULimitIx = web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({ units: 450000 });
|
|
2129
|
+
transaction.instructions.unshift(setCULimitIx);
|
|
2205
2130
|
(_d = transaction.instructions).unshift.apply(_d, backUpOracleInstruction);
|
|
2206
2131
|
return [4, this.viewHelper.simulateTransaction(transaction)];
|
|
2207
2132
|
case 3:
|
|
@@ -2218,7 +2143,7 @@ var PerpetualsClient = (function () {
|
|
|
2218
2143
|
args_1[_i - 4] = arguments[_i];
|
|
2219
2144
|
}
|
|
2220
2145
|
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;
|
|
2146
|
+
var custodies, custodyMetas, marketMetas, _a, custodies_11, token, _b, custodies_12, custody, _c, _d, market, depositCustodyConfig, rewardCustody, transaction, setCULimitIx, backUpOracleInstruction, result, index, res;
|
|
2222
2147
|
var _e;
|
|
2223
2148
|
if (userPublicKey === void 0) { userPublicKey = undefined; }
|
|
2224
2149
|
if (enableBackupOracle === void 0) { enableBackupOracle = false; }
|
|
@@ -2273,6 +2198,8 @@ var PerpetualsClient = (function () {
|
|
|
2273
2198
|
.transaction()];
|
|
2274
2199
|
case 1:
|
|
2275
2200
|
transaction = _f.sent();
|
|
2201
|
+
setCULimitIx = web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({ units: 450000 });
|
|
2202
|
+
transaction.instructions.unshift(setCULimitIx);
|
|
2276
2203
|
if (!enableBackupOracle) return [3, 3];
|
|
2277
2204
|
return [4, (0, backupOracle_1.createBackupOracleInstruction)(POOL_CONFIG.poolAddress.toBase58(), true)];
|
|
2278
2205
|
case 2:
|
|
@@ -2298,7 +2225,7 @@ var PerpetualsClient = (function () {
|
|
|
2298
2225
|
args_1[_i - 4] = arguments[_i];
|
|
2299
2226
|
}
|
|
2300
2227
|
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;
|
|
2228
|
+
var custodies, custodyMetas, marketMetas, _a, custodies_13, token, _b, custodies_14, custody, _c, _d, market, removeCustodyConfig, rewardCustody, transaction, setCULimitIx, backUpOracleInstruction, result, index, res;
|
|
2302
2229
|
var _e;
|
|
2303
2230
|
if (userPublicKey === void 0) { userPublicKey = undefined; }
|
|
2304
2231
|
if (enableBackupOracle === void 0) { enableBackupOracle = false; }
|
|
@@ -2353,6 +2280,8 @@ var PerpetualsClient = (function () {
|
|
|
2353
2280
|
.transaction()];
|
|
2354
2281
|
case 1:
|
|
2355
2282
|
transaction = _f.sent();
|
|
2283
|
+
setCULimitIx = web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({ units: 450000 });
|
|
2284
|
+
transaction.instructions.unshift(setCULimitIx);
|
|
2356
2285
|
if (!enableBackupOracle) return [3, 3];
|
|
2357
2286
|
return [4, (0, backupOracle_1.createBackupOracleInstruction)(POOL_CONFIG.poolAddress.toBase58(), true)];
|
|
2358
2287
|
case 2:
|
|
@@ -2547,11 +2476,10 @@ var PerpetualsClient = (function () {
|
|
|
2547
2476
|
for (var _i = 8; _i < arguments.length; _i++) {
|
|
2548
2477
|
args_1[_i - 8] = arguments[_i];
|
|
2549
2478
|
}
|
|
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,
|
|
2479
|
+
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
2480
|
var publicKey, targetCustodyConfig, collateralCustodyConfig, collateralToken, marketAccount, userCollateralTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, lamports, unWrappedSolBalance, _a, tokenAccountBalance, _b, positionAccount, params, instruction;
|
|
2552
2481
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
2553
2482
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
2554
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
2555
2483
|
if (skipBalanceChecks === void 0) { skipBalanceChecks = false; }
|
|
2556
2484
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
2557
2485
|
return __generator(this, function (_c) {
|
|
@@ -2644,7 +2572,7 @@ var PerpetualsClient = (function () {
|
|
|
2644
2572
|
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
|
2645
2573
|
fundingMint: collateralCustodyConfig.mintKey
|
|
2646
2574
|
})
|
|
2647
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
2575
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
2648
2576
|
.instruction()];
|
|
2649
2577
|
case 7:
|
|
2650
2578
|
instruction = _c.sent();
|
|
@@ -2662,11 +2590,10 @@ var PerpetualsClient = (function () {
|
|
|
2662
2590
|
for (var _i = 6; _i < arguments.length; _i++) {
|
|
2663
2591
|
args_1[_i - 6] = arguments[_i];
|
|
2664
2592
|
}
|
|
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,
|
|
2593
|
+
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
2594
|
var publicKey, userReceivingTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, lamports, _a, collateralCustodyConfig, targetCustodyConfig, marketAccount, positionAccount, instruction, closeWsolATAIns, error_1;
|
|
2667
2595
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
2668
2596
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
2669
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
2670
2597
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
2671
2598
|
if (closeUsersWSOLATA === void 0) { closeUsersWSOLATA = false; }
|
|
2672
2599
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
@@ -2745,7 +2672,7 @@ var PerpetualsClient = (function () {
|
|
|
2745
2672
|
collateralMint: collateralCustodyConfig.mintKey,
|
|
2746
2673
|
collateralTokenProgram: poolConfig.getTokenFromSymbol(collateralSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID
|
|
2747
2674
|
})
|
|
2748
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
2675
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
2749
2676
|
.instruction()];
|
|
2750
2677
|
case 6:
|
|
2751
2678
|
instruction = _b.sent();
|
|
@@ -2767,16 +2694,15 @@ var PerpetualsClient = (function () {
|
|
|
2767
2694
|
});
|
|
2768
2695
|
});
|
|
2769
2696
|
};
|
|
2770
|
-
this.swapAndOpen = function (targetTokenSymbol_1, collateralTokenSymbol_1, userInputTokenSymbol_1, amountIn_1,
|
|
2697
|
+
this.swapAndOpen = function (targetTokenSymbol_1, collateralTokenSymbol_1, userInputTokenSymbol_1, amountIn_1, priceWithSlippage_1, sizeAmount_1, side_1, poolConfig_1, privilege_1) {
|
|
2771
2698
|
var args_1 = [];
|
|
2772
|
-
for (var _i =
|
|
2773
|
-
args_1[_i -
|
|
2699
|
+
for (var _i = 9; _i < arguments.length; _i++) {
|
|
2700
|
+
args_1[_i - 9] = arguments[_i];
|
|
2774
2701
|
}
|
|
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,
|
|
2702
|
+
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) {
|
|
2703
|
+
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
2704
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
2778
2705
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
2779
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
2780
2706
|
if (skipBalanceChecks === void 0) { skipBalanceChecks = false; }
|
|
2781
2707
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
2782
2708
|
return __generator(this, function (_c) {
|
|
@@ -2870,18 +2796,10 @@ var PerpetualsClient = (function () {
|
|
|
2870
2796
|
}
|
|
2871
2797
|
_c.label = 10;
|
|
2872
2798
|
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]);
|
|
2799
|
+
_c.trys.push([10, 12, , 13]);
|
|
2881
2800
|
return [4, this.program.methods
|
|
2882
2801
|
.swapAndOpen({
|
|
2883
2802
|
amountIn: amountIn,
|
|
2884
|
-
minCollateralAmountOut: minCollateralAmountOut,
|
|
2885
2803
|
priceWithSlippage: priceWithSlippage,
|
|
2886
2804
|
sizeAmount: sizeAmount,
|
|
2887
2805
|
privilege: privilege
|
|
@@ -2912,17 +2830,17 @@ var PerpetualsClient = (function () {
|
|
|
2912
2830
|
collateralMint: collateralCustodyConfig.mintKey,
|
|
2913
2831
|
collateralTokenProgram: poolConfig.getTokenFromSymbol(collateralTokenSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID
|
|
2914
2832
|
})
|
|
2915
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
2833
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
2916
2834
|
.instruction()];
|
|
2917
|
-
case
|
|
2835
|
+
case 11:
|
|
2918
2836
|
inx = _c.sent();
|
|
2919
2837
|
instructions.push(inx);
|
|
2920
|
-
return [3,
|
|
2921
|
-
case
|
|
2838
|
+
return [3, 13];
|
|
2839
|
+
case 12:
|
|
2922
2840
|
err_3 = _c.sent();
|
|
2923
2841
|
console.error("perpClient SwapAndOpen error:: ", err_3);
|
|
2924
2842
|
throw err_3;
|
|
2925
|
-
case
|
|
2843
|
+
case 13: return [2, {
|
|
2926
2844
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
2927
2845
|
additionalSigners: additionalSigners
|
|
2928
2846
|
}];
|
|
@@ -2930,16 +2848,15 @@ var PerpetualsClient = (function () {
|
|
|
2930
2848
|
});
|
|
2931
2849
|
});
|
|
2932
2850
|
};
|
|
2933
|
-
this.closeAndSwap = function (targetTokenSymbol_1, userOutputTokenSymbol_1, collateralTokenSymbol_1,
|
|
2851
|
+
this.closeAndSwap = function (targetTokenSymbol_1, userOutputTokenSymbol_1, collateralTokenSymbol_1, priceWithSlippage_1, side_1, poolConfig_1, privilege_1) {
|
|
2934
2852
|
var args_1 = [];
|
|
2935
|
-
for (var _i =
|
|
2936
|
-
args_1[_i -
|
|
2853
|
+
for (var _i = 7; _i < arguments.length; _i++) {
|
|
2854
|
+
args_1[_i - 7] = arguments[_i];
|
|
2937
2855
|
}
|
|
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,
|
|
2856
|
+
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) {
|
|
2857
|
+
var publicKey, userOutputCustodyConfig, collateralCustodyConfig, targetCustodyConfig, marketAccount, positionAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, userReceivingTokenAccount, collateralToken, userOutputToken, lamports, userCollateralTokenAccount, inx, err_4;
|
|
2940
2858
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
2941
2859
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
2942
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
2943
2860
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
2944
2861
|
return __generator(this, function (_a) {
|
|
2945
2862
|
switch (_a.label) {
|
|
@@ -3005,18 +2922,12 @@ var PerpetualsClient = (function () {
|
|
|
3005
2922
|
if (!(_a.sent())) {
|
|
3006
2923
|
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
2924
|
}
|
|
3008
|
-
rebateMintAccount = {
|
|
3009
|
-
pubkey: collateralCustodyConfig.mintKey,
|
|
3010
|
-
isSigner: false,
|
|
3011
|
-
isWritable: false
|
|
3012
|
-
};
|
|
3013
2925
|
_a.label = 5;
|
|
3014
2926
|
case 5:
|
|
3015
2927
|
_a.trys.push([5, 7, , 8]);
|
|
3016
2928
|
return [4, this.program.methods
|
|
3017
2929
|
.closeAndSwap({
|
|
3018
2930
|
priceWithSlippage: priceWithSlippage,
|
|
3019
|
-
minSwapAmountOut: minSwapAmountOut,
|
|
3020
2931
|
privilege: privilege
|
|
3021
2932
|
})
|
|
3022
2933
|
.accounts({
|
|
@@ -3045,7 +2956,7 @@ var PerpetualsClient = (function () {
|
|
|
3045
2956
|
collateralMint: collateralCustodyConfig.mintKey,
|
|
3046
2957
|
collateralTokenProgram: collateralToken.isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID
|
|
3047
2958
|
})
|
|
3048
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
2959
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
3049
2960
|
.instruction()];
|
|
3050
2961
|
case 6:
|
|
3051
2962
|
inx = _a.sent();
|
|
@@ -3166,12 +3077,12 @@ var PerpetualsClient = (function () {
|
|
|
3166
3077
|
});
|
|
3167
3078
|
});
|
|
3168
3079
|
};
|
|
3169
|
-
this.swapAndAddCollateral = function (targetSymbol_1, inputSymbol_1, collateralSymbol_1, amountIn_1,
|
|
3080
|
+
this.swapAndAddCollateral = function (targetSymbol_1, inputSymbol_1, collateralSymbol_1, amountIn_1, side_1, positionPubKey_1, poolConfig_1) {
|
|
3170
3081
|
var args_1 = [];
|
|
3171
|
-
for (var _i =
|
|
3172
|
-
args_1[_i -
|
|
3082
|
+
for (var _i = 7; _i < arguments.length; _i++) {
|
|
3083
|
+
args_1[_i - 7] = arguments[_i];
|
|
3173
3084
|
}
|
|
3174
|
-
return __awaiter(_this, __spreadArray([targetSymbol_1, inputSymbol_1, collateralSymbol_1, amountIn_1,
|
|
3085
|
+
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
3086
|
var publicKey, collateralCustodyConfig, targetCustodyConfig, inputCustodyConfig, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, userInputTokenAccount, lamports, unWrappedSolBalance, _a, tokenAccountBalance, _b, userCollateralTokenAccount, marketAccount, instruction;
|
|
3176
3087
|
if (skipBalanceChecks === void 0) { skipBalanceChecks = false; }
|
|
3177
3088
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
@@ -3250,7 +3161,6 @@ var PerpetualsClient = (function () {
|
|
|
3250
3161
|
marketAccount = poolConfig.getMarketPk(targetCustodyConfig.custodyAccount, collateralCustodyConfig.custodyAccount, side);
|
|
3251
3162
|
return [4, this.program.methods.swapAndAddCollateral({
|
|
3252
3163
|
amountIn: amountIn,
|
|
3253
|
-
minCollateralAmountOut: minCollateralAmountOut,
|
|
3254
3164
|
}).accounts({
|
|
3255
3165
|
owner: publicKey,
|
|
3256
3166
|
feePayer: publicKey,
|
|
@@ -3286,12 +3196,12 @@ var PerpetualsClient = (function () {
|
|
|
3286
3196
|
});
|
|
3287
3197
|
});
|
|
3288
3198
|
};
|
|
3289
|
-
this.removeCollateral = function (
|
|
3199
|
+
this.removeCollateral = function (collateralDeltaUsd_1, marketSymbol_1, collateralSymbol_1, side_1, positionPubKey_1, poolConfig_1) {
|
|
3290
3200
|
var args_1 = [];
|
|
3291
3201
|
for (var _i = 6; _i < arguments.length; _i++) {
|
|
3292
3202
|
args_1[_i - 6] = arguments[_i];
|
|
3293
3203
|
}
|
|
3294
|
-
return __awaiter(_this, __spreadArray([
|
|
3204
|
+
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
3205
|
var publicKey, collateralCustodyConfig, targetCustodyConfig, userReceivingTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, lamports, _a, marketAccount, instruction, closeWsolATAIns, error_2;
|
|
3296
3206
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
3297
3207
|
if (closeUsersWSOLATA === void 0) { closeUsersWSOLATA = false; }
|
|
@@ -3355,7 +3265,7 @@ var PerpetualsClient = (function () {
|
|
|
3355
3265
|
marketAccount = poolConfig.getMarketPk(targetCustodyConfig.custodyAccount, collateralCustodyConfig.custodyAccount, side);
|
|
3356
3266
|
return [4, this.program.methods
|
|
3357
3267
|
.removeCollateral({
|
|
3358
|
-
|
|
3268
|
+
collateralDeltaUsd: collateralDeltaUsd,
|
|
3359
3269
|
})
|
|
3360
3270
|
.accounts({
|
|
3361
3271
|
owner: publicKey,
|
|
@@ -3397,12 +3307,12 @@ var PerpetualsClient = (function () {
|
|
|
3397
3307
|
});
|
|
3398
3308
|
});
|
|
3399
3309
|
};
|
|
3400
|
-
this.removeCollateralAndSwap = function (targetSymbol_1, collateralSymbol_1, outputSymbol_1,
|
|
3310
|
+
this.removeCollateralAndSwap = function (targetSymbol_1, collateralSymbol_1, outputSymbol_1, collateralDeltaUsd_1, side_1, poolConfig_1) {
|
|
3401
3311
|
var args_1 = [];
|
|
3402
|
-
for (var _i =
|
|
3403
|
-
args_1[_i -
|
|
3312
|
+
for (var _i = 6; _i < arguments.length; _i++) {
|
|
3313
|
+
args_1[_i - 6] = arguments[_i];
|
|
3404
3314
|
}
|
|
3405
|
-
return __awaiter(_this, __spreadArray([targetSymbol_1, collateralSymbol_1, outputSymbol_1,
|
|
3315
|
+
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
3316
|
var publicKey, targetCustodyConfig, collateralCustodyConfig, outputCustodyConfig, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, userReceivingTokenAccount, lamports, userCollateralTokenAccount, marketAccount, positionAccount, instruction;
|
|
3407
3317
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
3408
3318
|
return __generator(this, function (_a) {
|
|
@@ -3459,8 +3369,7 @@ var PerpetualsClient = (function () {
|
|
|
3459
3369
|
positionAccount = poolConfig.getPositionFromMarketPk(publicKey, marketAccount);
|
|
3460
3370
|
return [4, this.program.methods
|
|
3461
3371
|
.removeCollateralAndSwap({
|
|
3462
|
-
|
|
3463
|
-
minSwapAmountOut: minSwapAmountOut,
|
|
3372
|
+
collateralDeltaUsd: collateralDeltaUsd,
|
|
3464
3373
|
})
|
|
3465
3374
|
.accounts({
|
|
3466
3375
|
owner: publicKey,
|
|
@@ -3505,11 +3414,10 @@ var PerpetualsClient = (function () {
|
|
|
3505
3414
|
for (var _i = 8; _i < arguments.length; _i++) {
|
|
3506
3415
|
args_1[_i - 8] = arguments[_i];
|
|
3507
3416
|
}
|
|
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
|
|
3417
|
+
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
3418
|
var publicKey, collateralCustodyConfig, targetCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, instruction;
|
|
3510
3419
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
3511
3420
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
3512
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
3513
3421
|
return __generator(this, function (_a) {
|
|
3514
3422
|
switch (_a.label) {
|
|
3515
3423
|
case 0:
|
|
@@ -3552,7 +3460,7 @@ var PerpetualsClient = (function () {
|
|
|
3552
3460
|
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
|
3553
3461
|
collateralMint: collateralCustodyConfig.mintKey
|
|
3554
3462
|
})
|
|
3555
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
3463
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
3556
3464
|
.instruction()];
|
|
3557
3465
|
case 1:
|
|
3558
3466
|
instruction = _a.sent();
|
|
@@ -3570,11 +3478,10 @@ var PerpetualsClient = (function () {
|
|
|
3570
3478
|
for (var _i = 8; _i < arguments.length; _i++) {
|
|
3571
3479
|
args_1[_i - 8] = arguments[_i];
|
|
3572
3480
|
}
|
|
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
|
|
3481
|
+
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
3482
|
var publicKey, collateralCustodyConfig, targetCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, instruction;
|
|
3575
3483
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
3576
3484
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
3577
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
3578
3485
|
return __generator(this, function (_a) {
|
|
3579
3486
|
switch (_a.label) {
|
|
3580
3487
|
case 0:
|
|
@@ -3617,7 +3524,7 @@ var PerpetualsClient = (function () {
|
|
|
3617
3524
|
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
|
3618
3525
|
collateralMint: collateralCustodyConfig.mintKey
|
|
3619
3526
|
})
|
|
3620
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
3527
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
3621
3528
|
.instruction()];
|
|
3622
3529
|
case 1:
|
|
3623
3530
|
instruction = _a.sent();
|
|
@@ -4084,119 +3991,8 @@ var PerpetualsClient = (function () {
|
|
|
4084
3991
|
}
|
|
4085
3992
|
});
|
|
4086
3993
|
}); };
|
|
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
3994
|
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,
|
|
3995
|
+
var preInstructions, instructions, postInstructions, additionalSigners, lpTokenMint, poolStakedLpVault, flpStakeAccount, userLpTokenAccount, depositStakeInstruction, err_8;
|
|
4200
3996
|
return __generator(this, function (_a) {
|
|
4201
3997
|
switch (_a.label) {
|
|
4202
3998
|
case 0:
|
|
@@ -4238,9 +4034,9 @@ var PerpetualsClient = (function () {
|
|
|
4238
4034
|
instructions.push(depositStakeInstruction);
|
|
4239
4035
|
return [3, 5];
|
|
4240
4036
|
case 4:
|
|
4241
|
-
|
|
4242
|
-
console.log("perpClient depositStaking error:: ",
|
|
4243
|
-
throw
|
|
4037
|
+
err_8 = _a.sent();
|
|
4038
|
+
console.log("perpClient depositStaking error:: ", err_8);
|
|
4039
|
+
throw err_8;
|
|
4244
4040
|
case 5: return [2, {
|
|
4245
4041
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
4246
4042
|
additionalSigners: additionalSigners
|
|
@@ -4249,7 +4045,7 @@ var PerpetualsClient = (function () {
|
|
|
4249
4045
|
});
|
|
4250
4046
|
}); };
|
|
4251
4047
|
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,
|
|
4048
|
+
var rewardCustodyMint, rewardCustodyConfig, pool, feeDistributionTokenAccount, custodyAccountMetas, _i, _a, custody, maxFlpStakeAccountPkLength, flpStakeAccountMetas, _b, flpStakeAccountPks_1, flpStakeAccountPk, refreshStakeInstruction, err_9;
|
|
4253
4049
|
return __generator(this, function (_c) {
|
|
4254
4050
|
switch (_c.label) {
|
|
4255
4051
|
case 0:
|
|
@@ -4296,9 +4092,9 @@ var PerpetualsClient = (function () {
|
|
|
4296
4092
|
refreshStakeInstruction = _c.sent();
|
|
4297
4093
|
return [2, refreshStakeInstruction];
|
|
4298
4094
|
case 2:
|
|
4299
|
-
|
|
4300
|
-
console.log("perpClient refreshStaking error:: ",
|
|
4301
|
-
throw
|
|
4095
|
+
err_9 = _c.sent();
|
|
4096
|
+
console.log("perpClient refreshStaking error:: ", err_9);
|
|
4097
|
+
throw err_9;
|
|
4302
4098
|
case 3: return [2];
|
|
4303
4099
|
}
|
|
4304
4100
|
});
|
|
@@ -4309,7 +4105,7 @@ var PerpetualsClient = (function () {
|
|
|
4309
4105
|
args_1[_i - 3] = arguments[_i];
|
|
4310
4106
|
}
|
|
4311
4107
|
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,
|
|
4108
|
+
var publicKey, rewardCustodyMint, rewardCustodyConfig, pool, feeDistributionTokenAccount, custodyAccountMetas, _a, _b, custody, stakeAccountMetas, tokenStakeAccount, refreshStakeInstruction, err_10;
|
|
4313
4109
|
if (userPublicKey === void 0) { userPublicKey = undefined; }
|
|
4314
4110
|
return __generator(this, function (_c) {
|
|
4315
4111
|
switch (_c.label) {
|
|
@@ -4357,9 +4153,9 @@ var PerpetualsClient = (function () {
|
|
|
4357
4153
|
refreshStakeInstruction = _c.sent();
|
|
4358
4154
|
return [2, refreshStakeInstruction];
|
|
4359
4155
|
case 2:
|
|
4360
|
-
|
|
4361
|
-
console.log("perpClient refreshStaking error:: ",
|
|
4362
|
-
throw
|
|
4156
|
+
err_10 = _c.sent();
|
|
4157
|
+
console.log("perpClient refreshStaking error:: ", err_10);
|
|
4158
|
+
throw err_10;
|
|
4363
4159
|
case 3: return [2];
|
|
4364
4160
|
}
|
|
4365
4161
|
});
|
|
@@ -4371,7 +4167,7 @@ var PerpetualsClient = (function () {
|
|
|
4371
4167
|
args_1[_i - 3] = arguments[_i];
|
|
4372
4168
|
}
|
|
4373
4169
|
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,
|
|
4170
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyConfig, pool, flpStakeAccount, tokenStakeAccount, tokenStakeAccounts, _a, unstakeInstantInstruction, err_11;
|
|
4375
4171
|
if (userPublicKey === void 0) { userPublicKey = undefined; }
|
|
4376
4172
|
return __generator(this, function (_b) {
|
|
4377
4173
|
switch (_b.label) {
|
|
@@ -4423,9 +4219,9 @@ var PerpetualsClient = (function () {
|
|
|
4423
4219
|
instructions.push(unstakeInstantInstruction);
|
|
4424
4220
|
return [3, 6];
|
|
4425
4221
|
case 5:
|
|
4426
|
-
|
|
4427
|
-
console.log("perpClient unstakeInstant error:: ",
|
|
4428
|
-
throw
|
|
4222
|
+
err_11 = _b.sent();
|
|
4223
|
+
console.log("perpClient unstakeInstant error:: ", err_11);
|
|
4224
|
+
throw err_11;
|
|
4429
4225
|
case 6: return [2, {
|
|
4430
4226
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
4431
4227
|
additionalSigners: additionalSigners
|
|
@@ -4435,7 +4231,7 @@ var PerpetualsClient = (function () {
|
|
|
4435
4231
|
});
|
|
4436
4232
|
};
|
|
4437
4233
|
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,
|
|
4234
|
+
var publicKey, pool, custodyAccountMetas, _i, _a, custody, maxFlpStakeAccountPkLength, flpStakeAccountMetas, _b, flpStakeAccountPks_2, flpStakeAccountPk, refreshStakeInstruction, err_12;
|
|
4439
4235
|
return __generator(this, function (_c) {
|
|
4440
4236
|
switch (_c.label) {
|
|
4441
4237
|
case 0:
|
|
@@ -4479,15 +4275,15 @@ var PerpetualsClient = (function () {
|
|
|
4479
4275
|
refreshStakeInstruction = _c.sent();
|
|
4480
4276
|
return [2, refreshStakeInstruction];
|
|
4481
4277
|
case 2:
|
|
4482
|
-
|
|
4483
|
-
console.log("perpClient refreshStaking error:: ",
|
|
4484
|
-
throw
|
|
4278
|
+
err_12 = _c.sent();
|
|
4279
|
+
console.log("perpClient refreshStaking error:: ", err_12);
|
|
4280
|
+
throw err_12;
|
|
4485
4281
|
case 3: return [2];
|
|
4486
4282
|
}
|
|
4487
4283
|
});
|
|
4488
4284
|
}); };
|
|
4489
4285
|
this.unstakeRequest = function (unstakeAmount, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
4490
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, pool, flpStakeAccount, unstakeRequestInstruction,
|
|
4286
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, pool, flpStakeAccount, unstakeRequestInstruction, err_13;
|
|
4491
4287
|
return __generator(this, function (_a) {
|
|
4492
4288
|
switch (_a.label) {
|
|
4493
4289
|
case 0:
|
|
@@ -4521,9 +4317,9 @@ var PerpetualsClient = (function () {
|
|
|
4521
4317
|
instructions.push(unstakeRequestInstruction);
|
|
4522
4318
|
return [3, 4];
|
|
4523
4319
|
case 3:
|
|
4524
|
-
|
|
4525
|
-
console.log("perpClient unstakeRequest error:: ",
|
|
4526
|
-
throw
|
|
4320
|
+
err_13 = _a.sent();
|
|
4321
|
+
console.log("perpClient unstakeRequest error:: ", err_13);
|
|
4322
|
+
throw err_13;
|
|
4527
4323
|
case 4: return [2, {
|
|
4528
4324
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
4529
4325
|
additionalSigners: additionalSigners
|
|
@@ -4537,7 +4333,7 @@ var PerpetualsClient = (function () {
|
|
|
4537
4333
|
args_1[_i - 1] = arguments[_i];
|
|
4538
4334
|
}
|
|
4539
4335
|
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,
|
|
4336
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, lpTokenMint, pool, poolStakedLpVault, flpStakeAccount, userLpTokenAccount, _a, withdrawStakeInstruction, err_14;
|
|
4541
4337
|
if (pendingActivation === void 0) { pendingActivation = true; }
|
|
4542
4338
|
if (deactivated === void 0) { deactivated = true; }
|
|
4543
4339
|
if (createUserLPTA === void 0) { createUserLPTA = true; }
|
|
@@ -4593,9 +4389,9 @@ var PerpetualsClient = (function () {
|
|
|
4593
4389
|
instructions.push(withdrawStakeInstruction);
|
|
4594
4390
|
return [3, 6];
|
|
4595
4391
|
case 5:
|
|
4596
|
-
|
|
4597
|
-
console.log("perpClient withdrawStake error:: ",
|
|
4598
|
-
throw
|
|
4392
|
+
err_14 = _b.sent();
|
|
4393
|
+
console.log("perpClient withdrawStake error:: ", err_14);
|
|
4394
|
+
throw err_14;
|
|
4599
4395
|
case 6: return [2, {
|
|
4600
4396
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
4601
4397
|
additionalSigners: additionalSigners
|
|
@@ -4610,7 +4406,7 @@ var PerpetualsClient = (function () {
|
|
|
4610
4406
|
args_1[_i - 3] = arguments[_i];
|
|
4611
4407
|
}
|
|
4612
4408
|
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,
|
|
4409
|
+
var publicKey, rewardCustodyMint, rewardCustodyConfig, preInstructions, instructions, postInstructions, additionalSigners, pool, flpStakeAccount, receivingTokenAccount, _a, tokenStakeAccounts, withdrawStakeInstruction, err_15;
|
|
4614
4410
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
4615
4411
|
return __generator(this, function (_b) {
|
|
4616
4412
|
switch (_b.label) {
|
|
@@ -4671,9 +4467,9 @@ var PerpetualsClient = (function () {
|
|
|
4671
4467
|
instructions.push(withdrawStakeInstruction);
|
|
4672
4468
|
return [3, 6];
|
|
4673
4469
|
case 5:
|
|
4674
|
-
|
|
4675
|
-
console.log("perpClient withdrawStake error:: ",
|
|
4676
|
-
throw
|
|
4470
|
+
err_15 = _b.sent();
|
|
4471
|
+
console.log("perpClient withdrawStake error:: ", err_15);
|
|
4472
|
+
throw err_15;
|
|
4677
4473
|
case 6: return [2, {
|
|
4678
4474
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
4679
4475
|
additionalSigners: additionalSigners
|
|
@@ -4688,7 +4484,7 @@ var PerpetualsClient = (function () {
|
|
|
4688
4484
|
args_1[_i - 5] = arguments[_i];
|
|
4689
4485
|
}
|
|
4690
4486
|
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,
|
|
4487
|
+
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
4488
|
if (skipBalanceChecks === void 0) { skipBalanceChecks = false; }
|
|
4693
4489
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
4694
4490
|
if (userPublicKey === void 0) { userPublicKey = undefined; }
|
|
@@ -4816,8 +4612,8 @@ var PerpetualsClient = (function () {
|
|
|
4816
4612
|
instructions.push(addCompoundingLiquidity);
|
|
4817
4613
|
return [3, 10];
|
|
4818
4614
|
case 9:
|
|
4819
|
-
|
|
4820
|
-
console.log("perpClient addCompoundingLiquidity error:: ",
|
|
4615
|
+
err_16 = _f.sent();
|
|
4616
|
+
console.log("perpClient addCompoundingLiquidity error:: ", err_16);
|
|
4821
4617
|
return [3, 10];
|
|
4822
4618
|
case 10: return [2, {
|
|
4823
4619
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
@@ -4833,7 +4629,7 @@ var PerpetualsClient = (function () {
|
|
|
4833
4629
|
args_1[_i - 5] = arguments[_i];
|
|
4834
4630
|
}
|
|
4835
4631
|
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,
|
|
4632
|
+
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
4633
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
4838
4634
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
4839
4635
|
if (userPublicKey === void 0) { userPublicKey = undefined; }
|
|
@@ -4945,8 +4741,8 @@ var PerpetualsClient = (function () {
|
|
|
4945
4741
|
instructions.push(removeCompoundingLiquidity);
|
|
4946
4742
|
return [3, 8];
|
|
4947
4743
|
case 7:
|
|
4948
|
-
|
|
4949
|
-
console.log("perpClient removeCompoundingLiquidity error:: ",
|
|
4744
|
+
err_17 = _f.sent();
|
|
4745
|
+
console.log("perpClient removeCompoundingLiquidity error:: ", err_17);
|
|
4950
4746
|
return [3, 8];
|
|
4951
4747
|
case 8: return [2, {
|
|
4952
4748
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
@@ -4962,7 +4758,7 @@ var PerpetualsClient = (function () {
|
|
|
4962
4758
|
args_1[_i - 3] = arguments[_i];
|
|
4963
4759
|
}
|
|
4964
4760
|
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,
|
|
4761
|
+
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
4762
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
4967
4763
|
return __generator(this, function (_g) {
|
|
4968
4764
|
switch (_g.label) {
|
|
@@ -5060,8 +4856,8 @@ var PerpetualsClient = (function () {
|
|
|
5060
4856
|
instructions.push(migrateStake);
|
|
5061
4857
|
return [3, 8];
|
|
5062
4858
|
case 7:
|
|
5063
|
-
|
|
5064
|
-
console.log("perpClient migrateStake error:: ",
|
|
4859
|
+
err_18 = _g.sent();
|
|
4860
|
+
console.log("perpClient migrateStake error:: ", err_18);
|
|
5065
4861
|
return [3, 8];
|
|
5066
4862
|
case 8: return [2, {
|
|
5067
4863
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
@@ -5072,7 +4868,7 @@ var PerpetualsClient = (function () {
|
|
|
5072
4868
|
});
|
|
5073
4869
|
};
|
|
5074
4870
|
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,
|
|
4871
|
+
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
4872
|
return __generator(this, function (_d) {
|
|
5077
4873
|
switch (_d.label) {
|
|
5078
4874
|
case 0:
|
|
@@ -5144,8 +4940,8 @@ var PerpetualsClient = (function () {
|
|
|
5144
4940
|
instructions.push(migrateFlp);
|
|
5145
4941
|
return [3, 4];
|
|
5146
4942
|
case 3:
|
|
5147
|
-
|
|
5148
|
-
console.log("perpClient migrateFlp error:: ",
|
|
4943
|
+
err_19 = _d.sent();
|
|
4944
|
+
console.log("perpClient migrateFlp error:: ", err_19);
|
|
5149
4945
|
return [3, 4];
|
|
5150
4946
|
case 4: return [2, {
|
|
5151
4947
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
@@ -5160,7 +4956,7 @@ var PerpetualsClient = (function () {
|
|
|
5160
4956
|
args_1[_i - 1] = arguments[_i];
|
|
5161
4957
|
}
|
|
5162
4958
|
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,
|
|
4959
|
+
var instructions, additionalSigners, rewardCustody, lpTokenMint, custodyAccountMetas, custodyOracleAccountMetas, markets, _a, _b, custody, _c, _d, market, compoundingFee, err_20;
|
|
5164
4960
|
if (rewardTokenSymbol === void 0) { rewardTokenSymbol = 'USDC'; }
|
|
5165
4961
|
return __generator(this, function (_e) {
|
|
5166
4962
|
switch (_e.label) {
|
|
@@ -5218,8 +5014,8 @@ var PerpetualsClient = (function () {
|
|
|
5218
5014
|
instructions.push(compoundingFee);
|
|
5219
5015
|
return [3, 4];
|
|
5220
5016
|
case 3:
|
|
5221
|
-
|
|
5222
|
-
console.log("perpClient compoundingFee error:: ",
|
|
5017
|
+
err_20 = _e.sent();
|
|
5018
|
+
console.log("perpClient compoundingFee error:: ", err_20);
|
|
5223
5019
|
return [3, 4];
|
|
5224
5020
|
case 4: return [2, {
|
|
5225
5021
|
instructions: __spreadArray([], instructions, true),
|
|
@@ -5229,158 +5025,20 @@ var PerpetualsClient = (function () {
|
|
|
5229
5025
|
});
|
|
5230
5026
|
});
|
|
5231
5027
|
};
|
|
5232
|
-
this.
|
|
5233
|
-
var preInstructions, instructions, postInstructions, additionalSigners,
|
|
5234
|
-
return __generator(this, function (
|
|
5235
|
-
switch (
|
|
5028
|
+
this.depositTokenStake = function (owner, feePayer, depositAmount, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
5029
|
+
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, userTokenAccount, depositTokenStakeInstruction, err_21;
|
|
5030
|
+
return __generator(this, function (_a) {
|
|
5031
|
+
switch (_a.label) {
|
|
5236
5032
|
case 0:
|
|
5237
5033
|
preInstructions = [];
|
|
5238
5034
|
instructions = [];
|
|
5239
5035
|
postInstructions = [];
|
|
5240
5036
|
additionalSigners = [];
|
|
5241
|
-
|
|
5037
|
+
_a.label = 1;
|
|
5242
5038
|
case 1:
|
|
5243
|
-
|
|
5244
|
-
|
|
5245
|
-
|
|
5246
|
-
userTokenAccount = _b.sent();
|
|
5247
|
-
_a = createAta;
|
|
5248
|
-
if (!_a) return [3, 4];
|
|
5249
|
-
return [4, (0, utils_1.checkIfAccountExists)(userTokenAccount, this.provider.connection)];
|
|
5250
|
-
case 3:
|
|
5251
|
-
_a = !(_b.sent());
|
|
5252
|
-
_b.label = 4;
|
|
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);
|
|
5039
|
+
_a.trys.push([1, 4, , 5]);
|
|
5040
|
+
tokenStakeAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("token_stake"), owner.toBuffer()], this.programId)[0];
|
|
5041
|
+
userTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(poolConfig.tokenMint, owner, true);
|
|
5384
5042
|
return [4, (0, utils_1.checkIfAccountExists)(userTokenAccount, this.provider.connection)];
|
|
5385
5043
|
case 2:
|
|
5386
5044
|
if (!(_a.sent())) {
|
|
@@ -5410,9 +5068,9 @@ var PerpetualsClient = (function () {
|
|
|
5410
5068
|
instructions.push(depositTokenStakeInstruction);
|
|
5411
5069
|
return [3, 5];
|
|
5412
5070
|
case 4:
|
|
5413
|
-
|
|
5414
|
-
console.log("perpClient depositStakingInstruction error:: ",
|
|
5415
|
-
throw
|
|
5071
|
+
err_21 = _a.sent();
|
|
5072
|
+
console.log("perpClient depositStakingInstruction error:: ", err_21);
|
|
5073
|
+
throw err_21;
|
|
5416
5074
|
case 5: return [2, {
|
|
5417
5075
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5418
5076
|
additionalSigners: additionalSigners
|
|
@@ -5421,7 +5079,7 @@ var PerpetualsClient = (function () {
|
|
|
5421
5079
|
});
|
|
5422
5080
|
}); };
|
|
5423
5081
|
this.unstakeTokenRequest = function (owner, unstakeAmount, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
5424
|
-
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, unstakeTokenRequestInstruction,
|
|
5082
|
+
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, unstakeTokenRequestInstruction, err_22;
|
|
5425
5083
|
return __generator(this, function (_a) {
|
|
5426
5084
|
switch (_a.label) {
|
|
5427
5085
|
case 0:
|
|
@@ -5450,9 +5108,9 @@ var PerpetualsClient = (function () {
|
|
|
5450
5108
|
instructions.push(unstakeTokenRequestInstruction);
|
|
5451
5109
|
return [3, 4];
|
|
5452
5110
|
case 3:
|
|
5453
|
-
|
|
5454
|
-
console.log("perpClient unstakeTokenRequestInstruction error:: ",
|
|
5455
|
-
throw
|
|
5111
|
+
err_22 = _a.sent();
|
|
5112
|
+
console.log("perpClient unstakeTokenRequestInstruction error:: ", err_22);
|
|
5113
|
+
throw err_22;
|
|
5456
5114
|
case 4: return [2, {
|
|
5457
5115
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5458
5116
|
additionalSigners: additionalSigners
|
|
@@ -5461,7 +5119,7 @@ var PerpetualsClient = (function () {
|
|
|
5461
5119
|
});
|
|
5462
5120
|
}); };
|
|
5463
5121
|
this.unstakeTokenInstant = function (owner, unstakeAmount, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
5464
|
-
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, userTokenAccount, unstakeTokenInstantInstruction,
|
|
5122
|
+
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, userTokenAccount, unstakeTokenInstantInstruction, err_23;
|
|
5465
5123
|
return __generator(this, function (_a) {
|
|
5466
5124
|
switch (_a.label) {
|
|
5467
5125
|
case 0:
|
|
@@ -5502,9 +5160,9 @@ var PerpetualsClient = (function () {
|
|
|
5502
5160
|
instructions.push(unstakeTokenInstantInstruction);
|
|
5503
5161
|
return [3, 5];
|
|
5504
5162
|
case 4:
|
|
5505
|
-
|
|
5506
|
-
console.log("perpClient unstakeTokenInstantInstruction error:: ",
|
|
5507
|
-
throw
|
|
5163
|
+
err_23 = _a.sent();
|
|
5164
|
+
console.log("perpClient unstakeTokenInstantInstruction error:: ", err_23);
|
|
5165
|
+
throw err_23;
|
|
5508
5166
|
case 5: return [2, {
|
|
5509
5167
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5510
5168
|
additionalSigners: additionalSigners
|
|
@@ -5513,7 +5171,7 @@ var PerpetualsClient = (function () {
|
|
|
5513
5171
|
});
|
|
5514
5172
|
}); };
|
|
5515
5173
|
this.withdrawToken = function (owner, withdrawRequestId, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
5516
|
-
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, userTokenAccount, withdrawTokenInstruction,
|
|
5174
|
+
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, userTokenAccount, withdrawTokenInstruction, err_24;
|
|
5517
5175
|
return __generator(this, function (_a) {
|
|
5518
5176
|
switch (_a.label) {
|
|
5519
5177
|
case 0:
|
|
@@ -5554,9 +5212,9 @@ var PerpetualsClient = (function () {
|
|
|
5554
5212
|
instructions.push(withdrawTokenInstruction);
|
|
5555
5213
|
return [3, 5];
|
|
5556
5214
|
case 4:
|
|
5557
|
-
|
|
5558
|
-
console.log("perpClient withdrawTokenInstruction error:: ",
|
|
5559
|
-
throw
|
|
5215
|
+
err_24 = _a.sent();
|
|
5216
|
+
console.log("perpClient withdrawTokenInstruction error:: ", err_24);
|
|
5217
|
+
throw err_24;
|
|
5560
5218
|
case 5: return [2, {
|
|
5561
5219
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5562
5220
|
additionalSigners: additionalSigners
|
|
@@ -5565,7 +5223,7 @@ var PerpetualsClient = (function () {
|
|
|
5565
5223
|
});
|
|
5566
5224
|
}); };
|
|
5567
5225
|
this.cancelUnstakeRequest = function (owner, withdrawRequestId, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
5568
|
-
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, cancelUnstakeRequestInstruction,
|
|
5226
|
+
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, cancelUnstakeRequestInstruction, err_25;
|
|
5569
5227
|
return __generator(this, function (_a) {
|
|
5570
5228
|
switch (_a.label) {
|
|
5571
5229
|
case 0:
|
|
@@ -5594,9 +5252,9 @@ var PerpetualsClient = (function () {
|
|
|
5594
5252
|
instructions.push(cancelUnstakeRequestInstruction);
|
|
5595
5253
|
return [3, 4];
|
|
5596
5254
|
case 3:
|
|
5597
|
-
|
|
5598
|
-
console.log("perpClient cancelUnstakeRequestInstruction error:: ",
|
|
5599
|
-
throw
|
|
5255
|
+
err_25 = _a.sent();
|
|
5256
|
+
console.log("perpClient cancelUnstakeRequestInstruction error:: ", err_25);
|
|
5257
|
+
throw err_25;
|
|
5600
5258
|
case 4: return [2, {
|
|
5601
5259
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5602
5260
|
additionalSigners: additionalSigners
|
|
@@ -5610,7 +5268,7 @@ var PerpetualsClient = (function () {
|
|
|
5610
5268
|
args_1[_i - 2] = arguments[_i];
|
|
5611
5269
|
}
|
|
5612
5270
|
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,
|
|
5271
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, userTokenAccount, _a, collectTokenRewardInstruction, err_26;
|
|
5614
5272
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
5615
5273
|
return __generator(this, function (_b) {
|
|
5616
5274
|
switch (_b.label) {
|
|
@@ -5656,9 +5314,9 @@ var PerpetualsClient = (function () {
|
|
|
5656
5314
|
instructions.push(collectTokenRewardInstruction);
|
|
5657
5315
|
return [3, 6];
|
|
5658
5316
|
case 5:
|
|
5659
|
-
|
|
5660
|
-
console.log("perpClient collectTokenRewardInstruction error:: ",
|
|
5661
|
-
throw
|
|
5317
|
+
err_26 = _b.sent();
|
|
5318
|
+
console.log("perpClient collectTokenRewardInstruction error:: ", err_26);
|
|
5319
|
+
throw err_26;
|
|
5662
5320
|
case 6: return [2, {
|
|
5663
5321
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5664
5322
|
additionalSigners: additionalSigners
|
|
@@ -5673,7 +5331,7 @@ var PerpetualsClient = (function () {
|
|
|
5673
5331
|
args_1[_i - 3] = arguments[_i];
|
|
5674
5332
|
}
|
|
5675
5333
|
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,
|
|
5334
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyMint, tokenStakeAccount, userTokenAccount, _a, collectRevenueInstruction, err_27;
|
|
5677
5335
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
5678
5336
|
return __generator(this, function (_b) {
|
|
5679
5337
|
switch (_b.label) {
|
|
@@ -5720,9 +5378,9 @@ var PerpetualsClient = (function () {
|
|
|
5720
5378
|
instructions.push(collectRevenueInstruction);
|
|
5721
5379
|
return [3, 6];
|
|
5722
5380
|
case 5:
|
|
5723
|
-
|
|
5724
|
-
console.log("perpClient collectRevenueInstruction error:: ",
|
|
5725
|
-
throw
|
|
5381
|
+
err_27 = _b.sent();
|
|
5382
|
+
console.log("perpClient collectRevenueInstruction error:: ", err_27);
|
|
5383
|
+
throw err_27;
|
|
5726
5384
|
case 6: return [2, {
|
|
5727
5385
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5728
5386
|
additionalSigners: additionalSigners
|
|
@@ -5731,179 +5389,18 @@ var PerpetualsClient = (function () {
|
|
|
5731
5389
|
});
|
|
5732
5390
|
});
|
|
5733
5391
|
};
|
|
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) {
|
|
5392
|
+
this.collectRebate = function (owner_1, rebateSymbol_1, poolConfig_1) {
|
|
5825
5393
|
var args_1 = [];
|
|
5826
5394
|
for (var _i = 3; _i < arguments.length; _i++) {
|
|
5827
5395
|
args_1[_i - 3] = arguments[_i];
|
|
5828
5396
|
}
|
|
5829
|
-
return __awaiter(_this, __spreadArray([
|
|
5830
|
-
var publicKey,
|
|
5397
|
+
return __awaiter(_this, __spreadArray([owner_1, rebateSymbol_1, poolConfig_1], args_1, true), void 0, function (owner, rebateSymbol, poolConfig, createUserATA) {
|
|
5398
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rebateMint, tokenStakeAccount, userTokenAccount, _a, collectRebateInstruction, err_28;
|
|
5831
5399
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
5832
5400
|
return __generator(this, function (_b) {
|
|
5833
5401
|
switch (_b.label) {
|
|
5834
5402
|
case 0:
|
|
5835
5403
|
publicKey = this.provider.wallet.publicKey;
|
|
5836
|
-
rewardToken = poolConfig.getTokenFromSymbol(rewardSymbol);
|
|
5837
|
-
rewardCustodyMint = rewardToken.mintKey;
|
|
5838
|
-
instructions = [];
|
|
5839
|
-
additionalSigners = [];
|
|
5840
|
-
_b.label = 1;
|
|
5841
|
-
case 1:
|
|
5842
|
-
_b.trys.push([1, 5, , 6]);
|
|
5843
|
-
nftTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(nftMint, publicKey, true);
|
|
5844
|
-
metadataAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("metadata"), constants_1.METAPLEX_PROGRAM_ID.toBuffer(), nftMint.toBuffer()], constants_1.METAPLEX_PROGRAM_ID)[0];
|
|
5845
|
-
receivingTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(rewardCustodyMint, publicKey, true, rewardToken.isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID);
|
|
5846
|
-
_a = createUserATA;
|
|
5847
|
-
if (!_a) return [3, 3];
|
|
5848
|
-
return [4, (0, utils_1.checkIfAccountExists)(receivingTokenAccount, this.provider.connection)];
|
|
5849
|
-
case 2:
|
|
5850
|
-
_a = !(_b.sent());
|
|
5851
|
-
_b.label = 3;
|
|
5852
|
-
case 3:
|
|
5853
|
-
if (_a) {
|
|
5854
|
-
instructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, receivingTokenAccount, publicKey, rewardCustodyMint, rewardToken.isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID));
|
|
5855
|
-
}
|
|
5856
|
-
rewardRecord = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("reward_record"), nftMint.toBuffer()], this.programFbnftReward.programId)[0];
|
|
5857
|
-
rewardVault = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("reward_vault")], this.programFbnftReward.programId)[0];
|
|
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()
|
|
5862
|
-
.accounts({
|
|
5863
|
-
owner: publicKey,
|
|
5864
|
-
feePayer: publicKey,
|
|
5865
|
-
nftMint: nftMint,
|
|
5866
|
-
nftTokenAccount: nftTokenAccount,
|
|
5867
|
-
metadataAccount: metadataAccount,
|
|
5868
|
-
receivingAccount: receivingTokenAccount,
|
|
5869
|
-
rewardRecord: rewardRecord,
|
|
5870
|
-
rewardVault: rewardVault,
|
|
5871
|
-
rewardTokenAccount: rewardTokenAccount,
|
|
5872
|
-
transferAuthority: nftTransferAuthority,
|
|
5873
|
-
systemProgram: web3_js_1.SystemProgram.programId,
|
|
5874
|
-
tokenProgram: rewardToken.isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID,
|
|
5875
|
-
})
|
|
5876
|
-
.instruction()];
|
|
5877
|
-
case 4:
|
|
5878
|
-
collectNftReward = _b.sent();
|
|
5879
|
-
instructions.push(collectNftReward);
|
|
5880
|
-
return [3, 6];
|
|
5881
|
-
case 5:
|
|
5882
|
-
err_34 = _b.sent();
|
|
5883
|
-
throw err_34;
|
|
5884
|
-
case 6: return [2, {
|
|
5885
|
-
instructions: __spreadArray([], instructions, true),
|
|
5886
|
-
additionalSigners: additionalSigners
|
|
5887
|
-
}];
|
|
5888
|
-
}
|
|
5889
|
-
});
|
|
5890
|
-
});
|
|
5891
|
-
};
|
|
5892
|
-
this.collectAndDistributeFee = function (rewardSymbol_1, poolConfig_1) {
|
|
5893
|
-
var args_1 = [];
|
|
5894
|
-
for (var _i = 2; _i < arguments.length; _i++) {
|
|
5895
|
-
args_1[_i - 2] = arguments[_i];
|
|
5896
|
-
}
|
|
5897
|
-
return __awaiter(_this, __spreadArray([rewardSymbol_1, poolConfig_1], args_1, true), void 0, function (rewardSymbol, poolConfig, createUserATA, nftTradingAccount) {
|
|
5898
|
-
var publicKey, rewardToken, rewardCustodyMint, rewardCustodyConfig, preInstructions, instructions, postInstructions, additionalSigners, pool, flpStakeAccount, receivingTokenAccount, _a, tradingAccount, rewardVault, rewardTokenAccount, withdrawStakeInstruction, err_35;
|
|
5899
|
-
if (createUserATA === void 0) { createUserATA = true; }
|
|
5900
|
-
return __generator(this, function (_b) {
|
|
5901
|
-
switch (_b.label) {
|
|
5902
|
-
case 0:
|
|
5903
|
-
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
5404
|
preInstructions = [];
|
|
5908
5405
|
instructions = [];
|
|
5909
5406
|
postInstructions = [];
|
|
@@ -5911,59 +5408,43 @@ var PerpetualsClient = (function () {
|
|
|
5911
5408
|
_b.label = 1;
|
|
5912
5409
|
case 1:
|
|
5913
5410
|
_b.trys.push([1, 5, , 6]);
|
|
5914
|
-
|
|
5915
|
-
|
|
5916
|
-
|
|
5411
|
+
rebateMint = poolConfig.getTokenFromSymbol(rebateSymbol).mintKey;
|
|
5412
|
+
tokenStakeAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("token_stake"), owner.toBuffer()], this.programId)[0];
|
|
5413
|
+
userTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(rebateMint, owner, true);
|
|
5917
5414
|
_a = createUserATA;
|
|
5918
5415
|
if (!_a) return [3, 3];
|
|
5919
|
-
return [4, (0, utils_1.checkIfAccountExists)(
|
|
5416
|
+
return [4, (0, utils_1.checkIfAccountExists)(userTokenAccount, this.provider.connection)];
|
|
5920
5417
|
case 2:
|
|
5921
5418
|
_a = !(_b.sent());
|
|
5922
5419
|
_b.label = 3;
|
|
5923
5420
|
case 3:
|
|
5924
5421
|
if (_a) {
|
|
5925
|
-
|
|
5926
|
-
}
|
|
5927
|
-
tradingAccount = [];
|
|
5928
|
-
if (nftTradingAccount) {
|
|
5929
|
-
tradingAccount.push({
|
|
5930
|
-
pubkey: nftTradingAccount,
|
|
5931
|
-
isSigner: false,
|
|
5932
|
-
isWritable: true,
|
|
5933
|
-
});
|
|
5422
|
+
instructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, userTokenAccount, publicKey, rebateMint));
|
|
5934
5423
|
}
|
|
5935
|
-
|
|
5936
|
-
|
|
5937
|
-
return [4, this.programPerpComposability.methods
|
|
5938
|
-
.collectAndDistributeFee()
|
|
5424
|
+
return [4, this.program.methods
|
|
5425
|
+
.collectRebate()
|
|
5939
5426
|
.accounts({
|
|
5940
|
-
|
|
5941
|
-
|
|
5942
|
-
receivingTokenAccount: receivingTokenAccount,
|
|
5943
|
-
transferAuthority: poolConfig.transferAuthority,
|
|
5427
|
+
owner: owner,
|
|
5428
|
+
receivingTokenAccount: userTokenAccount,
|
|
5944
5429
|
perpetuals: this.perpetuals.publicKey,
|
|
5945
|
-
|
|
5946
|
-
|
|
5947
|
-
|
|
5948
|
-
|
|
5949
|
-
systemProgram: web3_js_1.SystemProgram.programId,
|
|
5430
|
+
transferAuthority: poolConfig.transferAuthority,
|
|
5431
|
+
rebateVault: poolConfig.rebateVault,
|
|
5432
|
+
rebateTokenAccount: poolConfig.rebateTokenAccount,
|
|
5433
|
+
tokenStakeAccount: tokenStakeAccount,
|
|
5950
5434
|
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
5951
5435
|
eventAuthority: this.eventAuthority.publicKey,
|
|
5952
|
-
|
|
5953
|
-
|
|
5954
|
-
rewardVault: rewardVault,
|
|
5955
|
-
rewardTokenAccount: rewardTokenAccount
|
|
5436
|
+
program: this.programId,
|
|
5437
|
+
receivingTokenMint: rebateMint,
|
|
5956
5438
|
})
|
|
5957
|
-
.remainingAccounts(tradingAccount)
|
|
5958
5439
|
.instruction()];
|
|
5959
5440
|
case 4:
|
|
5960
|
-
|
|
5961
|
-
instructions.push(
|
|
5441
|
+
collectRebateInstruction = _b.sent();
|
|
5442
|
+
instructions.push(collectRebateInstruction);
|
|
5962
5443
|
return [3, 6];
|
|
5963
5444
|
case 5:
|
|
5964
|
-
|
|
5965
|
-
console.log("perpClient
|
|
5966
|
-
throw
|
|
5445
|
+
err_28 = _b.sent();
|
|
5446
|
+
console.log("perpClient collectRebateInstruction error:: ", err_28);
|
|
5447
|
+
throw err_28;
|
|
5967
5448
|
case 6: return [2, {
|
|
5968
5449
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5969
5450
|
additionalSigners: additionalSigners
|
|
@@ -5972,13 +5453,60 @@ var PerpetualsClient = (function () {
|
|
|
5972
5453
|
});
|
|
5973
5454
|
});
|
|
5974
5455
|
};
|
|
5456
|
+
this.settleRebates = function (rebateSymbol, rewardSymbol, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
5457
|
+
var preInstructions, instructions, postInstructions, additionalSigners, rewardCustody, rebateMint, settleRebatesInstruction, err_29;
|
|
5458
|
+
return __generator(this, function (_a) {
|
|
5459
|
+
switch (_a.label) {
|
|
5460
|
+
case 0:
|
|
5461
|
+
preInstructions = [];
|
|
5462
|
+
instructions = [];
|
|
5463
|
+
postInstructions = [];
|
|
5464
|
+
additionalSigners = [];
|
|
5465
|
+
_a.label = 1;
|
|
5466
|
+
case 1:
|
|
5467
|
+
_a.trys.push([1, 3, , 4]);
|
|
5468
|
+
rewardCustody = poolConfig.custodies.find(function (i) { return i.mintKey.equals(poolConfig.getTokenFromSymbol(rewardSymbol).mintKey); });
|
|
5469
|
+
rebateMint = poolConfig.getTokenFromSymbol(rebateSymbol).mintKey;
|
|
5470
|
+
return [4, this.program.methods
|
|
5471
|
+
.settleRebates()
|
|
5472
|
+
.accounts({
|
|
5473
|
+
transferAuthority: poolConfig.transferAuthority,
|
|
5474
|
+
perpetuals: this.perpetuals.publicKey,
|
|
5475
|
+
pool: poolConfig.poolAddress,
|
|
5476
|
+
rewardCustody: rewardCustody.custodyAccount,
|
|
5477
|
+
rewardCustodyOracleAccount: this.useExtOracleAccount ? rewardCustody.extOracleAccount : rewardCustody.intOracleAccount,
|
|
5478
|
+
rewardCustodyTokenAccount: rewardCustody.tokenAccount,
|
|
5479
|
+
rebateVault: poolConfig.rebateVault,
|
|
5480
|
+
rebateTokenAccount: poolConfig.rebateTokenAccount,
|
|
5481
|
+
tokenMint: rebateMint,
|
|
5482
|
+
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
5483
|
+
eventAuthority: this.eventAuthority.publicKey,
|
|
5484
|
+
program: this.programId,
|
|
5485
|
+
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY
|
|
5486
|
+
})
|
|
5487
|
+
.instruction()];
|
|
5488
|
+
case 2:
|
|
5489
|
+
settleRebatesInstruction = _a.sent();
|
|
5490
|
+
instructions.push(settleRebatesInstruction);
|
|
5491
|
+
return [3, 4];
|
|
5492
|
+
case 3:
|
|
5493
|
+
err_29 = _a.sent();
|
|
5494
|
+
console.log("perpClient settleRebatesInstruction error:: ", err_29);
|
|
5495
|
+
throw err_29;
|
|
5496
|
+
case 4: return [2, {
|
|
5497
|
+
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5498
|
+
additionalSigners: additionalSigners
|
|
5499
|
+
}];
|
|
5500
|
+
}
|
|
5501
|
+
});
|
|
5502
|
+
}); };
|
|
5975
5503
|
this.placeLimitOrder = function (targetSymbol_1, collateralSymbol_1, reserveSymbol_1, receiveSymbol_1, side_1, limitPrice_1, reserveAmount_1, sizeAmount_1, stopLossPrice_1, takeProfitPrice_1, poolConfig_1) {
|
|
5976
5504
|
var args_1 = [];
|
|
5977
5505
|
for (var _i = 11; _i < arguments.length; _i++) {
|
|
5978
5506
|
args_1[_i - 11] = arguments[_i];
|
|
5979
5507
|
}
|
|
5980
5508
|
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,
|
|
5509
|
+
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
5510
|
if (skipBalanceChecks === void 0) { skipBalanceChecks = false; }
|
|
5983
5511
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
5984
5512
|
return __generator(this, function (_c) {
|
|
@@ -6084,9 +5612,9 @@ var PerpetualsClient = (function () {
|
|
|
6084
5612
|
instructions.push(placeLimitOrder);
|
|
6085
5613
|
return [3, 10];
|
|
6086
5614
|
case 9:
|
|
6087
|
-
|
|
6088
|
-
console.log("perpClient placeLimitOrder error:: ",
|
|
6089
|
-
throw
|
|
5615
|
+
err_30 = _c.sent();
|
|
5616
|
+
console.log("perpClient placeLimitOrder error:: ", err_30);
|
|
5617
|
+
throw err_30;
|
|
6090
5618
|
case 10: return [2, {
|
|
6091
5619
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6092
5620
|
additionalSigners: additionalSigners
|
|
@@ -6101,7 +5629,7 @@ var PerpetualsClient = (function () {
|
|
|
6101
5629
|
args_1[_i - 11] = arguments[_i];
|
|
6102
5630
|
}
|
|
6103
5631
|
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,
|
|
5632
|
+
var publicKey, targetCustodyConfig, reserveCustodyConfig, collateralCustodyConfig, receiveCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, wrappedSolAccount, userReceivingTokenAccount, lamports, _a, positionAccount, orderAccount, editLimitOrder, err_31;
|
|
6105
5633
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
6106
5634
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
6107
5635
|
return __generator(this, function (_b) {
|
|
@@ -6192,9 +5720,9 @@ var PerpetualsClient = (function () {
|
|
|
6192
5720
|
instructions.push(editLimitOrder);
|
|
6193
5721
|
return [3, 8];
|
|
6194
5722
|
case 7:
|
|
6195
|
-
|
|
6196
|
-
console.log("perpClient editLimitOrder error:: ",
|
|
6197
|
-
throw
|
|
5723
|
+
err_31 = _b.sent();
|
|
5724
|
+
console.log("perpClient editLimitOrder error:: ", err_31);
|
|
5725
|
+
throw err_31;
|
|
6198
5726
|
case 8: return [2, {
|
|
6199
5727
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6200
5728
|
additionalSigners: additionalSigners
|
|
@@ -6208,11 +5736,10 @@ var PerpetualsClient = (function () {
|
|
|
6208
5736
|
for (var _i = 7; _i < arguments.length; _i++) {
|
|
6209
5737
|
args_1[_i - 7] = arguments[_i];
|
|
6210
5738
|
}
|
|
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,
|
|
5739
|
+
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) {
|
|
5740
|
+
var publicKey, targetCustodyConfig, collateralCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, positionAccount, orderAccount, executeLimitOrder, err_32;
|
|
6213
5741
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
6214
5742
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
6215
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
6216
5743
|
return __generator(this, function (_a) {
|
|
6217
5744
|
switch (_a.label) {
|
|
6218
5745
|
case 0:
|
|
@@ -6255,16 +5782,16 @@ var PerpetualsClient = (function () {
|
|
|
6255
5782
|
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
|
6256
5783
|
collateralMint: collateralCustodyConfig.mintKey,
|
|
6257
5784
|
})
|
|
6258
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
5785
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
6259
5786
|
.instruction()];
|
|
6260
5787
|
case 2:
|
|
6261
5788
|
executeLimitOrder = _a.sent();
|
|
6262
5789
|
instructions.push(executeLimitOrder);
|
|
6263
5790
|
return [3, 4];
|
|
6264
5791
|
case 3:
|
|
6265
|
-
|
|
6266
|
-
console.log("perpClient executeLimitOrder error:: ",
|
|
6267
|
-
throw
|
|
5792
|
+
err_32 = _a.sent();
|
|
5793
|
+
console.log("perpClient executeLimitOrder error:: ", err_32);
|
|
5794
|
+
throw err_32;
|
|
6268
5795
|
case 4: return [2, {
|
|
6269
5796
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6270
5797
|
additionalSigners: additionalSigners
|
|
@@ -6278,11 +5805,10 @@ var PerpetualsClient = (function () {
|
|
|
6278
5805
|
for (var _i = 8; _i < arguments.length; _i++) {
|
|
6279
5806
|
args_1[_i - 8] = arguments[_i];
|
|
6280
5807
|
}
|
|
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,
|
|
5808
|
+
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) {
|
|
5809
|
+
var publicKey, targetCustodyConfig, collateralCustodyConfig, reserveCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, positionAccount, orderAccount, executeLimitWithSwap, err_33;
|
|
6283
5810
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
6284
5811
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
6285
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
6286
5812
|
return __generator(this, function (_a) {
|
|
6287
5813
|
switch (_a.label) {
|
|
6288
5814
|
case 0:
|
|
@@ -6328,16 +5854,16 @@ var PerpetualsClient = (function () {
|
|
|
6328
5854
|
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
|
6329
5855
|
collateralMint: collateralCustodyConfig.mintKey,
|
|
6330
5856
|
})
|
|
6331
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
5857
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
6332
5858
|
.instruction()];
|
|
6333
5859
|
case 2:
|
|
6334
5860
|
executeLimitWithSwap = _a.sent();
|
|
6335
5861
|
instructions.push(executeLimitWithSwap);
|
|
6336
5862
|
return [3, 4];
|
|
6337
5863
|
case 3:
|
|
6338
|
-
|
|
6339
|
-
console.log("perpClient executeLimitWithSwap error:: ",
|
|
6340
|
-
throw
|
|
5864
|
+
err_33 = _a.sent();
|
|
5865
|
+
console.log("perpClient executeLimitWithSwap error:: ", err_33);
|
|
5866
|
+
throw err_33;
|
|
6341
5867
|
case 4: return [2, {
|
|
6342
5868
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6343
5869
|
additionalSigners: additionalSigners
|
|
@@ -6347,7 +5873,7 @@ var PerpetualsClient = (function () {
|
|
|
6347
5873
|
});
|
|
6348
5874
|
};
|
|
6349
5875
|
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,
|
|
5876
|
+
var publicKey, targetCustodyConfig, collateralCustodyConfig, receivingCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, positionAccount, orderAccount, placeTriggerOrder, err_34;
|
|
6351
5877
|
return __generator(this, function (_a) {
|
|
6352
5878
|
switch (_a.label) {
|
|
6353
5879
|
case 0:
|
|
@@ -6395,9 +5921,9 @@ var PerpetualsClient = (function () {
|
|
|
6395
5921
|
instructions.push(placeTriggerOrder);
|
|
6396
5922
|
return [3, 4];
|
|
6397
5923
|
case 3:
|
|
6398
|
-
|
|
6399
|
-
console.log("perpClient placeTriggerOrder error:: ",
|
|
6400
|
-
throw
|
|
5924
|
+
err_34 = _a.sent();
|
|
5925
|
+
console.log("perpClient placeTriggerOrder error:: ", err_34);
|
|
5926
|
+
throw err_34;
|
|
6401
5927
|
case 4: return [2, {
|
|
6402
5928
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6403
5929
|
additionalSigners: additionalSigners
|
|
@@ -6406,7 +5932,7 @@ var PerpetualsClient = (function () {
|
|
|
6406
5932
|
});
|
|
6407
5933
|
}); };
|
|
6408
5934
|
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,
|
|
5935
|
+
var publicKey, targetCustodyConfig, collateralCustodyConfig, receivingCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, positionAccount, orderAccount, editTriggerOrder, err_35;
|
|
6410
5936
|
return __generator(this, function (_a) {
|
|
6411
5937
|
switch (_a.label) {
|
|
6412
5938
|
case 0:
|
|
@@ -6453,9 +5979,9 @@ var PerpetualsClient = (function () {
|
|
|
6453
5979
|
instructions.push(editTriggerOrder);
|
|
6454
5980
|
return [3, 4];
|
|
6455
5981
|
case 3:
|
|
6456
|
-
|
|
6457
|
-
console.log("perpClient editTriggerOrder error:: ",
|
|
6458
|
-
throw
|
|
5982
|
+
err_35 = _a.sent();
|
|
5983
|
+
console.log("perpClient editTriggerOrder error:: ", err_35);
|
|
5984
|
+
throw err_35;
|
|
6459
5985
|
case 4: return [2, {
|
|
6460
5986
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6461
5987
|
additionalSigners: additionalSigners
|
|
@@ -6464,7 +5990,7 @@ var PerpetualsClient = (function () {
|
|
|
6464
5990
|
});
|
|
6465
5991
|
}); };
|
|
6466
5992
|
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,
|
|
5993
|
+
var publicKey, targetCustodyConfig, collateralCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, orderAccount, cancelTriggerOrder, err_36;
|
|
6468
5994
|
return __generator(this, function (_a) {
|
|
6469
5995
|
switch (_a.label) {
|
|
6470
5996
|
case 0:
|
|
@@ -6497,9 +6023,9 @@ var PerpetualsClient = (function () {
|
|
|
6497
6023
|
instructions.push(cancelTriggerOrder);
|
|
6498
6024
|
return [3, 4];
|
|
6499
6025
|
case 3:
|
|
6500
|
-
|
|
6501
|
-
console.log("perpClient cancelTriggerOrder error:: ",
|
|
6502
|
-
throw
|
|
6026
|
+
err_36 = _a.sent();
|
|
6027
|
+
console.log("perpClient cancelTriggerOrder error:: ", err_36);
|
|
6028
|
+
throw err_36;
|
|
6503
6029
|
case 4: return [2, {
|
|
6504
6030
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6505
6031
|
additionalSigners: additionalSigners
|
|
@@ -6508,7 +6034,7 @@ var PerpetualsClient = (function () {
|
|
|
6508
6034
|
});
|
|
6509
6035
|
}); };
|
|
6510
6036
|
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,
|
|
6037
|
+
var publicKey, targetCustodyConfig, collateralCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, orderAccount, positionAccount, cancelAllTriggerOrders, err_37;
|
|
6512
6038
|
return __generator(this, function (_a) {
|
|
6513
6039
|
switch (_a.label) {
|
|
6514
6040
|
case 0:
|
|
@@ -6539,9 +6065,9 @@ var PerpetualsClient = (function () {
|
|
|
6539
6065
|
instructions.push(cancelAllTriggerOrders);
|
|
6540
6066
|
return [3, 4];
|
|
6541
6067
|
case 3:
|
|
6542
|
-
|
|
6543
|
-
console.log("perpClient cancelAllTriggerOrders error:: ",
|
|
6544
|
-
throw
|
|
6068
|
+
err_37 = _a.sent();
|
|
6069
|
+
console.log("perpClient cancelAllTriggerOrders error:: ", err_37);
|
|
6070
|
+
throw err_37;
|
|
6545
6071
|
case 4: return [2, {
|
|
6546
6072
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6547
6073
|
additionalSigners: additionalSigners
|
|
@@ -6554,13 +6080,12 @@ var PerpetualsClient = (function () {
|
|
|
6554
6080
|
for (var _i = 9; _i < arguments.length; _i++) {
|
|
6555
6081
|
args_1[_i - 9] = arguments[_i];
|
|
6556
6082
|
}
|
|
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,
|
|
6083
|
+
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) {
|
|
6084
|
+
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
6085
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
6560
6086
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
6561
6087
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
6562
6088
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
6563
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
6564
6089
|
return __generator(this, function (_e) {
|
|
6565
6090
|
switch (_e.label) {
|
|
6566
6091
|
case 0:
|
|
@@ -6655,16 +6180,16 @@ var PerpetualsClient = (function () {
|
|
|
6655
6180
|
collateralMint: collateralCustodyConfig.mintKey,
|
|
6656
6181
|
collateralTokenProgram: collateralToken.isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID
|
|
6657
6182
|
})
|
|
6658
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
6183
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
6659
6184
|
.instruction()];
|
|
6660
6185
|
case 8:
|
|
6661
6186
|
executeTriggerWithSwap = _e.sent();
|
|
6662
6187
|
instructions.push(executeTriggerWithSwap);
|
|
6663
6188
|
return [3, 10];
|
|
6664
6189
|
case 9:
|
|
6665
|
-
|
|
6666
|
-
console.log("perpClient executeTriggerWithSwap error:: ",
|
|
6667
|
-
throw
|
|
6190
|
+
err_38 = _e.sent();
|
|
6191
|
+
console.log("perpClient executeTriggerWithSwap error:: ", err_38);
|
|
6192
|
+
throw err_38;
|
|
6668
6193
|
case 10: return [2, {
|
|
6669
6194
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6670
6195
|
additionalSigners: additionalSigners
|
|
@@ -6678,13 +6203,12 @@ var PerpetualsClient = (function () {
|
|
|
6678
6203
|
for (var _i = 8; _i < arguments.length; _i++) {
|
|
6679
6204
|
args_1[_i - 8] = arguments[_i];
|
|
6680
6205
|
}
|
|
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,
|
|
6206
|
+
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) {
|
|
6207
|
+
var payerPubkey, targetCustodyConfig, collateralCustodyConfig, marketAccount, userReceivingTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, _a, positionAccount, orderAccount, executeTriggerOrder, err_39;
|
|
6683
6208
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
6684
6209
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
6685
6210
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
6686
6211
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
6687
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
6688
6212
|
return __generator(this, function (_b) {
|
|
6689
6213
|
switch (_b.label) {
|
|
6690
6214
|
case 0:
|
|
@@ -6744,16 +6268,16 @@ var PerpetualsClient = (function () {
|
|
|
6744
6268
|
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
|
6745
6269
|
receivingMint: collateralCustodyConfig.mintKey
|
|
6746
6270
|
})
|
|
6747
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
6271
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
6748
6272
|
.instruction()];
|
|
6749
6273
|
case 6:
|
|
6750
6274
|
executeTriggerOrder = _b.sent();
|
|
6751
6275
|
instructions.push(executeTriggerOrder);
|
|
6752
6276
|
return [3, 8];
|
|
6753
6277
|
case 7:
|
|
6754
|
-
|
|
6755
|
-
console.log("perpClient executeTriggerOrder error:: ",
|
|
6756
|
-
throw
|
|
6278
|
+
err_39 = _b.sent();
|
|
6279
|
+
console.log("perpClient executeTriggerOrder error:: ", err_39);
|
|
6280
|
+
throw err_39;
|
|
6757
6281
|
case 8: return [2, {
|
|
6758
6282
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6759
6283
|
additionalSigners: additionalSigners
|
|
@@ -6768,7 +6292,7 @@ var PerpetualsClient = (function () {
|
|
|
6768
6292
|
args_1[_i - 5] = arguments[_i];
|
|
6769
6293
|
}
|
|
6770
6294
|
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,
|
|
6295
|
+
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
6296
|
if (useFeesPool === void 0) { useFeesPool = false; }
|
|
6773
6297
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
6774
6298
|
if (unWrapSol === void 0) { unWrapSol = false; }
|
|
@@ -6973,9 +6497,9 @@ var PerpetualsClient = (function () {
|
|
|
6973
6497
|
}
|
|
6974
6498
|
return [3, 20];
|
|
6975
6499
|
case 19:
|
|
6976
|
-
|
|
6977
|
-
console.error("perpClient Swap error:: ",
|
|
6978
|
-
throw
|
|
6500
|
+
err_40 = _g.sent();
|
|
6501
|
+
console.error("perpClient Swap error:: ", err_40);
|
|
6502
|
+
throw err_40;
|
|
6979
6503
|
case 20: return [2, {
|
|
6980
6504
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6981
6505
|
additionalSigners: additionalSigners
|
|
@@ -6985,7 +6509,7 @@ var PerpetualsClient = (function () {
|
|
|
6985
6509
|
});
|
|
6986
6510
|
};
|
|
6987
6511
|
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,
|
|
6512
|
+
var rewardCustody, custody, publicKey, preInstructions, instructions, postInstructions, additionalSigners, custodyAccountMetas, custodyOracleAccountMetas, _i, _a, custody_1, params, inx, err_41;
|
|
6989
6513
|
return __generator(this, function (_b) {
|
|
6990
6514
|
switch (_b.label) {
|
|
6991
6515
|
case 0:
|
|
@@ -7030,11 +6554,7 @@ var PerpetualsClient = (function () {
|
|
|
7030
6554
|
rewardCustody: rewardCustody.custodyAccount,
|
|
7031
6555
|
rewardCustodyOracleAccount: this.useExtOracleAccount ? rewardCustody.extOracleAccount : rewardCustody.intOracleAccount,
|
|
7032
6556
|
rewardCustodyTokenAccount: rewardCustody.tokenAccount,
|
|
7033
|
-
custody: custody.custodyAccount,
|
|
7034
|
-
custodyOracleAccount: this.useExtOracleAccount ? custody.extOracleAccount : custody.intOracleAccount,
|
|
7035
|
-
custodyTokenAccount: custody.tokenAccount,
|
|
7036
6557
|
eventAuthority: this.eventAuthority.publicKey,
|
|
7037
|
-
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
7038
6558
|
program: this.programId,
|
|
7039
6559
|
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY
|
|
7040
6560
|
})
|
|
@@ -7045,9 +6565,9 @@ var PerpetualsClient = (function () {
|
|
|
7045
6565
|
instructions.push(inx);
|
|
7046
6566
|
return [3, 4];
|
|
7047
6567
|
case 3:
|
|
7048
|
-
|
|
7049
|
-
console.error("perpClient Swap error:: ",
|
|
7050
|
-
throw
|
|
6568
|
+
err_41 = _b.sent();
|
|
6569
|
+
console.error("perpClient Swap error:: ", err_41);
|
|
6570
|
+
throw err_41;
|
|
7051
6571
|
case 4: return [2, {
|
|
7052
6572
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
7053
6573
|
additionalSigners: additionalSigners
|
|
@@ -7056,7 +6576,7 @@ var PerpetualsClient = (function () {
|
|
|
7056
6576
|
});
|
|
7057
6577
|
}); };
|
|
7058
6578
|
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,
|
|
6579
|
+
var instructions, additionalSigners, custodyAccountMetas, custodyOracleAccountMetas, markets, _i, _a, custody, _b, _c, market, setLpTokenPriceInstruction, err_42;
|
|
7060
6580
|
return __generator(this, function (_d) {
|
|
7061
6581
|
switch (_d.label) {
|
|
7062
6582
|
case 0:
|
|
@@ -7104,9 +6624,9 @@ var PerpetualsClient = (function () {
|
|
|
7104
6624
|
instructions.push(setLpTokenPriceInstruction);
|
|
7105
6625
|
return [3, 4];
|
|
7106
6626
|
case 3:
|
|
7107
|
-
|
|
7108
|
-
console.log("perpClient setLpTokenPriceInstruction error:: ",
|
|
7109
|
-
throw
|
|
6627
|
+
err_42 = _d.sent();
|
|
6628
|
+
console.log("perpClient setLpTokenPriceInstruction error:: ", err_42);
|
|
6629
|
+
throw err_42;
|
|
7110
6630
|
case 4: return [2, {
|
|
7111
6631
|
instructions: __spreadArray([], instructions, true),
|
|
7112
6632
|
additionalSigners: additionalSigners
|
|
@@ -7154,7 +6674,7 @@ var PerpetualsClient = (function () {
|
|
|
7154
6674
|
});
|
|
7155
6675
|
}); };
|
|
7156
6676
|
this.setAdminSigners = function (admins, minSignatures) { return __awaiter(_this, void 0, void 0, function () {
|
|
7157
|
-
var adminMetas, _i, admins_2, admin,
|
|
6677
|
+
var adminMetas, _i, admins_2, admin, err_43;
|
|
7158
6678
|
return __generator(this, function (_a) {
|
|
7159
6679
|
switch (_a.label) {
|
|
7160
6680
|
case 0:
|
|
@@ -7184,11 +6704,11 @@ var PerpetualsClient = (function () {
|
|
|
7184
6704
|
_a.sent();
|
|
7185
6705
|
return [3, 4];
|
|
7186
6706
|
case 3:
|
|
7187
|
-
|
|
6707
|
+
err_43 = _a.sent();
|
|
7188
6708
|
if (this.printErrors) {
|
|
7189
|
-
console.error("setAdminSigners err:",
|
|
6709
|
+
console.error("setAdminSigners err:", err_43);
|
|
7190
6710
|
}
|
|
7191
|
-
throw
|
|
6711
|
+
throw err_43;
|
|
7192
6712
|
case 4: return [2];
|
|
7193
6713
|
}
|
|
7194
6714
|
});
|
|
@@ -7377,7 +6897,7 @@ var PerpetualsClient = (function () {
|
|
|
7377
6897
|
});
|
|
7378
6898
|
}); };
|
|
7379
6899
|
this.protocolWithdrawFees = function (rewardSymbol, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7380
|
-
var publicKey, custodyConfig, receivingTokenAccount, instructions, additionalSigners, withdrawFeesIx,
|
|
6900
|
+
var publicKey, custodyConfig, receivingTokenAccount, instructions, additionalSigners, withdrawFeesIx, err_44;
|
|
7381
6901
|
return __generator(this, function (_a) {
|
|
7382
6902
|
switch (_a.label) {
|
|
7383
6903
|
case 0:
|
|
@@ -7410,9 +6930,9 @@ var PerpetualsClient = (function () {
|
|
|
7410
6930
|
instructions.push(withdrawFeesIx);
|
|
7411
6931
|
return [3, 5];
|
|
7412
6932
|
case 4:
|
|
7413
|
-
|
|
7414
|
-
console.log("perpClient setPool error:: ",
|
|
7415
|
-
throw
|
|
6933
|
+
err_44 = _a.sent();
|
|
6934
|
+
console.log("perpClient setPool error:: ", err_44);
|
|
6935
|
+
throw err_44;
|
|
7416
6936
|
case 5: return [2, {
|
|
7417
6937
|
instructions: __spreadArray([], instructions, true),
|
|
7418
6938
|
additionalSigners: additionalSigners
|
|
@@ -7421,7 +6941,7 @@ var PerpetualsClient = (function () {
|
|
|
7421
6941
|
});
|
|
7422
6942
|
}); };
|
|
7423
6943
|
this.moveProtocolFees = function (rewardSymbol, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7424
|
-
var publicKey, custodyConfig, instructions, additionalSigners, moveProtocolFeesIx,
|
|
6944
|
+
var publicKey, custodyConfig, instructions, additionalSigners, moveProtocolFeesIx, err_45;
|
|
7425
6945
|
return __generator(this, function (_a) {
|
|
7426
6946
|
switch (_a.label) {
|
|
7427
6947
|
case 0:
|
|
@@ -7455,9 +6975,9 @@ var PerpetualsClient = (function () {
|
|
|
7455
6975
|
instructions.push(moveProtocolFeesIx);
|
|
7456
6976
|
return [3, 4];
|
|
7457
6977
|
case 3:
|
|
7458
|
-
|
|
7459
|
-
console.log("perpClient setPool error:: ",
|
|
7460
|
-
throw
|
|
6978
|
+
err_45 = _a.sent();
|
|
6979
|
+
console.log("perpClient setPool error:: ", err_45);
|
|
6980
|
+
throw err_45;
|
|
7461
6981
|
case 4: return [2, {
|
|
7462
6982
|
instructions: __spreadArray([], instructions, true),
|
|
7463
6983
|
additionalSigners: additionalSigners
|
|
@@ -7466,7 +6986,7 @@ var PerpetualsClient = (function () {
|
|
|
7466
6986
|
});
|
|
7467
6987
|
}); };
|
|
7468
6988
|
this.setProtocolFeeShareBps = function (feeShareBps, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7469
|
-
var publicKey, setProtocolFeeShareBpsIx,
|
|
6989
|
+
var publicKey, setProtocolFeeShareBpsIx, err_46;
|
|
7470
6990
|
return __generator(this, function (_a) {
|
|
7471
6991
|
switch (_a.label) {
|
|
7472
6992
|
case 0:
|
|
@@ -7486,15 +7006,15 @@ var PerpetualsClient = (function () {
|
|
|
7486
7006
|
setProtocolFeeShareBpsIx = _a.sent();
|
|
7487
7007
|
return [2, setProtocolFeeShareBpsIx];
|
|
7488
7008
|
case 2:
|
|
7489
|
-
|
|
7490
|
-
console.log("perpClient setProtocolFeeShareBpsIx error:: ",
|
|
7491
|
-
throw
|
|
7009
|
+
err_46 = _a.sent();
|
|
7010
|
+
console.log("perpClient setProtocolFeeShareBpsIx error:: ", err_46);
|
|
7011
|
+
throw err_46;
|
|
7492
7012
|
case 3: return [2];
|
|
7493
7013
|
}
|
|
7494
7014
|
});
|
|
7495
7015
|
}); };
|
|
7496
7016
|
this.setPermissions = function (permissions) { return __awaiter(_this, void 0, void 0, function () {
|
|
7497
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, setPermissionsInstruction,
|
|
7017
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, setPermissionsInstruction, err_47;
|
|
7498
7018
|
return __generator(this, function (_a) {
|
|
7499
7019
|
switch (_a.label) {
|
|
7500
7020
|
case 0:
|
|
@@ -7521,9 +7041,9 @@ var PerpetualsClient = (function () {
|
|
|
7521
7041
|
instructions.push(setPermissionsInstruction);
|
|
7522
7042
|
return [3, 4];
|
|
7523
7043
|
case 3:
|
|
7524
|
-
|
|
7525
|
-
console.log("perpClient setPool error:: ",
|
|
7526
|
-
throw
|
|
7044
|
+
err_47 = _a.sent();
|
|
7045
|
+
console.log("perpClient setPool error:: ", err_47);
|
|
7046
|
+
throw err_47;
|
|
7527
7047
|
case 4: return [2, {
|
|
7528
7048
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
7529
7049
|
additionalSigners: additionalSigners
|
|
@@ -7532,7 +7052,7 @@ var PerpetualsClient = (function () {
|
|
|
7532
7052
|
});
|
|
7533
7053
|
}); };
|
|
7534
7054
|
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,
|
|
7055
|
+
var custodyAccountMetas, custodyOracleAccountMetas, markets, _i, _a, custody, _b, _c, market, instructions, additionalSigners, custodyConfig, reimburse, _d, _e, err_48;
|
|
7536
7056
|
var _f;
|
|
7537
7057
|
return __generator(this, function (_g) {
|
|
7538
7058
|
switch (_g.label) {
|
|
@@ -7593,9 +7113,9 @@ var PerpetualsClient = (function () {
|
|
|
7593
7113
|
instructions.push(reimburse);
|
|
7594
7114
|
return [3, 5];
|
|
7595
7115
|
case 4:
|
|
7596
|
-
|
|
7597
|
-
console.log("perpClient setPool error:: ",
|
|
7598
|
-
throw
|
|
7116
|
+
err_48 = _g.sent();
|
|
7117
|
+
console.log("perpClient setPool error:: ", err_48);
|
|
7118
|
+
throw err_48;
|
|
7599
7119
|
case 5: return [2, {
|
|
7600
7120
|
instructions: __spreadArray([], instructions, true),
|
|
7601
7121
|
additionalSigners: additionalSigners
|
|
@@ -7603,8 +7123,8 @@ var PerpetualsClient = (function () {
|
|
|
7603
7123
|
}
|
|
7604
7124
|
});
|
|
7605
7125
|
}); };
|
|
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,
|
|
7126
|
+
this.setInternalOraclePrice = function (tokenMint, useCurrentTime, price, expo, conf, ema, publishTime, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7127
|
+
var instructions, additionalSigners, custodyConfig, setInternalOraclePrice, err_49;
|
|
7608
7128
|
return __generator(this, function (_a) {
|
|
7609
7129
|
switch (_a.label) {
|
|
7610
7130
|
case 0:
|
|
@@ -7616,6 +7136,7 @@ var PerpetualsClient = (function () {
|
|
|
7616
7136
|
_a.trys.push([1, 3, , 4]);
|
|
7617
7137
|
return [4, this.program.methods
|
|
7618
7138
|
.setInternalOraclePrice({
|
|
7139
|
+
useCurrentTime: useCurrentTime,
|
|
7619
7140
|
price: price,
|
|
7620
7141
|
expo: expo,
|
|
7621
7142
|
conf: conf,
|
|
@@ -7637,9 +7158,9 @@ var PerpetualsClient = (function () {
|
|
|
7637
7158
|
instructions.push(setInternalOraclePrice);
|
|
7638
7159
|
return [3, 4];
|
|
7639
7160
|
case 3:
|
|
7640
|
-
|
|
7641
|
-
console.log("perpClient setInternalOracleAccount error:: ",
|
|
7642
|
-
throw
|
|
7161
|
+
err_49 = _a.sent();
|
|
7162
|
+
console.log("perpClient setInternalOracleAccount error:: ", err_49);
|
|
7163
|
+
throw err_49;
|
|
7643
7164
|
case 4: return [2, {
|
|
7644
7165
|
instructions: __spreadArray([], instructions, true),
|
|
7645
7166
|
additionalSigners: additionalSigners
|
|
@@ -7647,8 +7168,8 @@ var PerpetualsClient = (function () {
|
|
|
7647
7168
|
}
|
|
7648
7169
|
});
|
|
7649
7170
|
}); };
|
|
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,
|
|
7171
|
+
this.setInternalOraclePriceBatch = function (useCurrentTime, tokenMintList, tokenInternalPrices, POOL_CONFIGS) { return __awaiter(_this, void 0, void 0, function () {
|
|
7172
|
+
var ALL_CUSTODY_CONFIGS, accountMetas, _loop_1, _i, tokenMintList_1, tokenMint, instructions, additionalSigners, setInternalOraclePrice, err_50;
|
|
7652
7173
|
return __generator(this, function (_a) {
|
|
7653
7174
|
switch (_a.label) {
|
|
7654
7175
|
case 0:
|
|
@@ -7659,11 +7180,6 @@ var PerpetualsClient = (function () {
|
|
|
7659
7180
|
accountMetas = [];
|
|
7660
7181
|
_loop_1 = function (tokenMint) {
|
|
7661
7182
|
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
7183
|
accountMetas.push({
|
|
7668
7184
|
pubkey: custody.intOracleAccount,
|
|
7669
7185
|
isSigner: false,
|
|
@@ -7686,6 +7202,7 @@ var PerpetualsClient = (function () {
|
|
|
7686
7202
|
_a.trys.push([1, 3, , 4]);
|
|
7687
7203
|
return [4, this.program.methods
|
|
7688
7204
|
.setInternalCurrentPrice({
|
|
7205
|
+
useCurrentTime: useCurrentTime,
|
|
7689
7206
|
prices: tokenInternalPrices
|
|
7690
7207
|
})
|
|
7691
7208
|
.accounts({
|
|
@@ -7698,9 +7215,9 @@ var PerpetualsClient = (function () {
|
|
|
7698
7215
|
instructions.push(setInternalOraclePrice);
|
|
7699
7216
|
return [3, 4];
|
|
7700
7217
|
case 3:
|
|
7701
|
-
|
|
7702
|
-
console.log("perpClient setInternalOracleAccount error:: ",
|
|
7703
|
-
throw
|
|
7218
|
+
err_50 = _a.sent();
|
|
7219
|
+
console.log("perpClient setInternalOracleAccount error:: ", err_50);
|
|
7220
|
+
throw err_50;
|
|
7704
7221
|
case 4: return [2, {
|
|
7705
7222
|
instructions: __spreadArray([], instructions, true),
|
|
7706
7223
|
additionalSigners: additionalSigners
|
|
@@ -7709,7 +7226,7 @@ var PerpetualsClient = (function () {
|
|
|
7709
7226
|
});
|
|
7710
7227
|
}); };
|
|
7711
7228
|
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,
|
|
7229
|
+
var ALL_CUSTODY_CONFIGS, accountMetas, _loop_2, _i, tokenMintList_2, tokenMint, instructions, additionalSigners, setInternalOraclePrice, err_51;
|
|
7713
7230
|
return __generator(this, function (_a) {
|
|
7714
7231
|
switch (_a.label) {
|
|
7715
7232
|
case 0:
|
|
@@ -7720,21 +7237,11 @@ var PerpetualsClient = (function () {
|
|
|
7720
7237
|
accountMetas = [];
|
|
7721
7238
|
_loop_2 = function (tokenMint) {
|
|
7722
7239
|
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
7240
|
accountMetas.push({
|
|
7729
7241
|
pubkey: custody.intOracleAccount,
|
|
7730
7242
|
isSigner: false,
|
|
7731
7243
|
isWritable: true,
|
|
7732
7244
|
});
|
|
7733
|
-
accountMetas.push({
|
|
7734
|
-
pubkey: custody.extOracleAccount,
|
|
7735
|
-
isSigner: false,
|
|
7736
|
-
isWritable: false,
|
|
7737
|
-
});
|
|
7738
7245
|
};
|
|
7739
7246
|
for (_i = 0, tokenMintList_2 = tokenMintList; _i < tokenMintList_2.length; _i++) {
|
|
7740
7247
|
tokenMint = tokenMintList_2[_i];
|
|
@@ -7759,9 +7266,9 @@ var PerpetualsClient = (function () {
|
|
|
7759
7266
|
instructions.push(setInternalOraclePrice);
|
|
7760
7267
|
return [3, 4];
|
|
7761
7268
|
case 3:
|
|
7762
|
-
|
|
7763
|
-
console.log("perpClient setInternalOracleAccount error:: ",
|
|
7764
|
-
throw
|
|
7269
|
+
err_51 = _a.sent();
|
|
7270
|
+
console.log("perpClient setInternalOracleAccount error:: ", err_51);
|
|
7271
|
+
throw err_51;
|
|
7765
7272
|
case 4: return [2, {
|
|
7766
7273
|
instructions: __spreadArray([], instructions, true),
|
|
7767
7274
|
additionalSigners: additionalSigners
|
|
@@ -7770,7 +7277,7 @@ var PerpetualsClient = (function () {
|
|
|
7770
7277
|
});
|
|
7771
7278
|
}); };
|
|
7772
7279
|
this.renameFlp = function (flag, lpTokenName, lpTokenSymbol, lpTokenUri, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7773
|
-
var publicKey, instructions, additionalSigners, lpTokenMint, lpMetadataAccount, renameFlp,
|
|
7280
|
+
var publicKey, instructions, additionalSigners, lpTokenMint, lpMetadataAccount, renameFlp, err_52;
|
|
7774
7281
|
return __generator(this, function (_a) {
|
|
7775
7282
|
switch (_a.label) {
|
|
7776
7283
|
case 0:
|
|
@@ -7808,8 +7315,8 @@ var PerpetualsClient = (function () {
|
|
|
7808
7315
|
instructions.push(renameFlp);
|
|
7809
7316
|
return [3, 4];
|
|
7810
7317
|
case 3:
|
|
7811
|
-
|
|
7812
|
-
console.log("perpClient renameFlp error:: ",
|
|
7318
|
+
err_52 = _a.sent();
|
|
7319
|
+
console.log("perpClient renameFlp error:: ", err_52);
|
|
7813
7320
|
return [3, 4];
|
|
7814
7321
|
case 4: return [2, {
|
|
7815
7322
|
instructions: __spreadArray([], instructions, true),
|
|
@@ -7819,7 +7326,7 @@ var PerpetualsClient = (function () {
|
|
|
7819
7326
|
});
|
|
7820
7327
|
}); };
|
|
7821
7328
|
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,
|
|
7329
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, lpTokenMint, stakedLpTokenAccount, rewardCustodyConfig, initStakeInstruction, err_53;
|
|
7823
7330
|
return __generator(this, function (_a) {
|
|
7824
7331
|
switch (_a.label) {
|
|
7825
7332
|
case 0:
|
|
@@ -7857,9 +7364,9 @@ var PerpetualsClient = (function () {
|
|
|
7857
7364
|
instructions.push(initStakeInstruction);
|
|
7858
7365
|
return [3, 4];
|
|
7859
7366
|
case 3:
|
|
7860
|
-
|
|
7861
|
-
console.log("perpClient InitStaking error:: ",
|
|
7862
|
-
throw
|
|
7367
|
+
err_53 = _a.sent();
|
|
7368
|
+
console.log("perpClient InitStaking error:: ", err_53);
|
|
7369
|
+
throw err_53;
|
|
7863
7370
|
case 4: return [2, {
|
|
7864
7371
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
7865
7372
|
additionalSigners: additionalSigners
|
|
@@ -7868,7 +7375,7 @@ var PerpetualsClient = (function () {
|
|
|
7868
7375
|
});
|
|
7869
7376
|
}); };
|
|
7870
7377
|
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,
|
|
7378
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyConfig, compoundingTokenMint, compoundingVault, metadataAccount, initCompoundingInstruction, err_54;
|
|
7872
7379
|
return __generator(this, function (_a) {
|
|
7873
7380
|
switch (_a.label) {
|
|
7874
7381
|
case 0:
|
|
@@ -7897,7 +7404,6 @@ var PerpetualsClient = (function () {
|
|
|
7897
7404
|
transferAuthority: poolConfig.transferAuthority,
|
|
7898
7405
|
perpetuals: this.perpetuals.publicKey,
|
|
7899
7406
|
pool: poolConfig.poolAddress,
|
|
7900
|
-
custody: rewardCustodyConfig.custodyAccount,
|
|
7901
7407
|
lpTokenMint: poolConfig.stakedLpTokenMint,
|
|
7902
7408
|
compoundingVault: compoundingVault,
|
|
7903
7409
|
compoundingTokenMint: compoundingTokenMint,
|
|
@@ -7913,9 +7419,9 @@ var PerpetualsClient = (function () {
|
|
|
7913
7419
|
instructions.push(initCompoundingInstruction);
|
|
7914
7420
|
return [3, 4];
|
|
7915
7421
|
case 3:
|
|
7916
|
-
|
|
7917
|
-
console.log("perpClient initCompounding error:: ",
|
|
7918
|
-
throw
|
|
7422
|
+
err_54 = _a.sent();
|
|
7423
|
+
console.log("perpClient initCompounding error:: ", err_54);
|
|
7424
|
+
throw err_54;
|
|
7919
7425
|
case 4: return [2, {
|
|
7920
7426
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
7921
7427
|
additionalSigners: additionalSigners
|
|
@@ -7924,7 +7430,7 @@ var PerpetualsClient = (function () {
|
|
|
7924
7430
|
});
|
|
7925
7431
|
}); };
|
|
7926
7432
|
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,
|
|
7433
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, tokenMint, fundingTokenAccount, initTokenVaultInstruction, err_55;
|
|
7928
7434
|
return __generator(this, function (_a) {
|
|
7929
7435
|
switch (_a.label) {
|
|
7930
7436
|
case 0:
|
|
@@ -7965,9 +7471,9 @@ var PerpetualsClient = (function () {
|
|
|
7965
7471
|
instructions.push(initTokenVaultInstruction);
|
|
7966
7472
|
return [3, 4];
|
|
7967
7473
|
case 3:
|
|
7968
|
-
|
|
7969
|
-
console.log("perpClient InitTokenVaultInstruction error:: ",
|
|
7970
|
-
throw
|
|
7474
|
+
err_55 = _a.sent();
|
|
7475
|
+
console.log("perpClient InitTokenVaultInstruction error:: ", err_55);
|
|
7476
|
+
throw err_55;
|
|
7971
7477
|
case 4: return [2, {
|
|
7972
7478
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
7973
7479
|
additionalSigners: additionalSigners
|
|
@@ -7976,7 +7482,7 @@ var PerpetualsClient = (function () {
|
|
|
7976
7482
|
});
|
|
7977
7483
|
}); };
|
|
7978
7484
|
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,
|
|
7485
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, setTokenVaultConfigInstruction, err_56;
|
|
7980
7486
|
return __generator(this, function (_a) {
|
|
7981
7487
|
switch (_a.label) {
|
|
7982
7488
|
case 0:
|
|
@@ -8007,9 +7513,9 @@ var PerpetualsClient = (function () {
|
|
|
8007
7513
|
instructions.push(setTokenVaultConfigInstruction);
|
|
8008
7514
|
return [3, 4];
|
|
8009
7515
|
case 3:
|
|
8010
|
-
|
|
8011
|
-
console.log("perpClient setTokenVaultConfigInstruction error:: ",
|
|
8012
|
-
throw
|
|
7516
|
+
err_56 = _a.sent();
|
|
7517
|
+
console.log("perpClient setTokenVaultConfigInstruction error:: ", err_56);
|
|
7518
|
+
throw err_56;
|
|
8013
7519
|
case 4: return [2, {
|
|
8014
7520
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
8015
7521
|
additionalSigners: additionalSigners
|
|
@@ -8018,7 +7524,7 @@ var PerpetualsClient = (function () {
|
|
|
8018
7524
|
});
|
|
8019
7525
|
}); };
|
|
8020
7526
|
this.withdrawInstantFee = function (poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
8021
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, receivingTokenAccount, withdrawInstantFeeInstruction,
|
|
7527
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, receivingTokenAccount, withdrawInstantFeeInstruction, err_57;
|
|
8022
7528
|
return __generator(this, function (_a) {
|
|
8023
7529
|
switch (_a.label) {
|
|
8024
7530
|
case 0:
|
|
@@ -8057,9 +7563,59 @@ var PerpetualsClient = (function () {
|
|
|
8057
7563
|
instructions.push(withdrawInstantFeeInstruction);
|
|
8058
7564
|
return [3, 6];
|
|
8059
7565
|
case 5:
|
|
8060
|
-
|
|
8061
|
-
console.log("perpClient withdrawInstantFeeInstruction error:: ",
|
|
8062
|
-
throw
|
|
7566
|
+
err_57 = _a.sent();
|
|
7567
|
+
console.log("perpClient withdrawInstantFeeInstruction error:: ", err_57);
|
|
7568
|
+
throw err_57;
|
|
7569
|
+
case 6: return [2, {
|
|
7570
|
+
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
7571
|
+
additionalSigners: additionalSigners
|
|
7572
|
+
}];
|
|
7573
|
+
}
|
|
7574
|
+
});
|
|
7575
|
+
}); };
|
|
7576
|
+
this.withdrawUnclaimedTokens = function (poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7577
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, receivingTokenAccount, withdrawUnclaimedTokensInstruction, err_58;
|
|
7578
|
+
return __generator(this, function (_a) {
|
|
7579
|
+
switch (_a.label) {
|
|
7580
|
+
case 0:
|
|
7581
|
+
publicKey = this.provider.wallet.publicKey;
|
|
7582
|
+
preInstructions = [];
|
|
7583
|
+
instructions = [];
|
|
7584
|
+
postInstructions = [];
|
|
7585
|
+
additionalSigners = [];
|
|
7586
|
+
_a.label = 1;
|
|
7587
|
+
case 1:
|
|
7588
|
+
_a.trys.push([1, 5, , 6]);
|
|
7589
|
+
return [4, (0, spl_token_1.getAssociatedTokenAddress)(poolConfig.tokenMint, publicKey, true)];
|
|
7590
|
+
case 2:
|
|
7591
|
+
receivingTokenAccount = _a.sent();
|
|
7592
|
+
return [4, (0, utils_1.checkIfAccountExists)(receivingTokenAccount, this.provider.connection)];
|
|
7593
|
+
case 3:
|
|
7594
|
+
if (!(_a.sent())) {
|
|
7595
|
+
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, receivingTokenAccount, publicKey, poolConfig.tokenMint));
|
|
7596
|
+
}
|
|
7597
|
+
return [4, this.program.methods
|
|
7598
|
+
.withdrawUnclaimedTokens({})
|
|
7599
|
+
.accounts({
|
|
7600
|
+
admin: publicKey,
|
|
7601
|
+
multisig: this.multisig.publicKey,
|
|
7602
|
+
perpetuals: this.perpetuals.publicKey,
|
|
7603
|
+
transferAuthority: poolConfig.transferAuthority,
|
|
7604
|
+
tokenVault: poolConfig.tokenVault,
|
|
7605
|
+
tokenVaultTokenAccount: poolConfig.tokenVaultTokenAccount,
|
|
7606
|
+
receivingTokenAccount: receivingTokenAccount,
|
|
7607
|
+
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
7608
|
+
receivingTokenMint: poolConfig.tokenMint,
|
|
7609
|
+
})
|
|
7610
|
+
.instruction()];
|
|
7611
|
+
case 4:
|
|
7612
|
+
withdrawUnclaimedTokensInstruction = _a.sent();
|
|
7613
|
+
instructions.push(withdrawUnclaimedTokensInstruction);
|
|
7614
|
+
return [3, 6];
|
|
7615
|
+
case 5:
|
|
7616
|
+
err_58 = _a.sent();
|
|
7617
|
+
console.log("perpClient withdrawUnclaimedTokensInstruction error:: ", err_58);
|
|
7618
|
+
throw err_58;
|
|
8063
7619
|
case 6: return [2, {
|
|
8064
7620
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
8065
7621
|
additionalSigners: additionalSigners
|
|
@@ -8068,7 +7624,7 @@ var PerpetualsClient = (function () {
|
|
|
8068
7624
|
});
|
|
8069
7625
|
}); };
|
|
8070
7626
|
this.initRevenueTokenAccount = function (feeShareBps, rewardSymbol, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
8071
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyMint, initRevenueTokenAccountInstruction,
|
|
7627
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyMint, initRevenueTokenAccountInstruction, err_59;
|
|
8072
7628
|
return __generator(this, function (_a) {
|
|
8073
7629
|
switch (_a.label) {
|
|
8074
7630
|
case 0:
|
|
@@ -8105,9 +7661,55 @@ var PerpetualsClient = (function () {
|
|
|
8105
7661
|
instructions.push(initRevenueTokenAccountInstruction);
|
|
8106
7662
|
return [3, 4];
|
|
8107
7663
|
case 3:
|
|
8108
|
-
|
|
8109
|
-
console.log("perpClient initRevenueTokenAccountInstruction error:: ",
|
|
8110
|
-
throw
|
|
7664
|
+
err_59 = _a.sent();
|
|
7665
|
+
console.log("perpClient initRevenueTokenAccountInstruction error:: ", err_59);
|
|
7666
|
+
throw err_59;
|
|
7667
|
+
case 4: return [2, {
|
|
7668
|
+
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
7669
|
+
additionalSigners: additionalSigners
|
|
7670
|
+
}];
|
|
7671
|
+
}
|
|
7672
|
+
});
|
|
7673
|
+
}); };
|
|
7674
|
+
this.initRebateVault = function (allowRebatePayout, rebateSymbol, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7675
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rebateCustodyMint, initRebateVaultInstruction, err_60;
|
|
7676
|
+
return __generator(this, function (_a) {
|
|
7677
|
+
switch (_a.label) {
|
|
7678
|
+
case 0:
|
|
7679
|
+
publicKey = this.provider.wallet.publicKey;
|
|
7680
|
+
preInstructions = [];
|
|
7681
|
+
instructions = [];
|
|
7682
|
+
postInstructions = [];
|
|
7683
|
+
additionalSigners = [];
|
|
7684
|
+
_a.label = 1;
|
|
7685
|
+
case 1:
|
|
7686
|
+
_a.trys.push([1, 3, , 4]);
|
|
7687
|
+
rebateCustodyMint = poolConfig.getTokenFromSymbol(rebateSymbol).mintKey;
|
|
7688
|
+
return [4, this.program.methods
|
|
7689
|
+
.initRebateVault({
|
|
7690
|
+
allowRebatePayout: allowRebatePayout
|
|
7691
|
+
})
|
|
7692
|
+
.accounts({
|
|
7693
|
+
admin: publicKey,
|
|
7694
|
+
multisig: this.multisig.publicKey,
|
|
7695
|
+
transferAuthority: poolConfig.transferAuthority,
|
|
7696
|
+
perpetuals: this.perpetuals.publicKey,
|
|
7697
|
+
rebateMint: rebateCustodyMint,
|
|
7698
|
+
rebateTokenAccount: poolConfig.rebateTokenAccount,
|
|
7699
|
+
rebateVault: poolConfig.rebateVault,
|
|
7700
|
+
systemProgram: web3_js_1.SystemProgram.programId,
|
|
7701
|
+
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
7702
|
+
rent: web3_js_1.SYSVAR_RENT_PUBKEY
|
|
7703
|
+
})
|
|
7704
|
+
.instruction()];
|
|
7705
|
+
case 2:
|
|
7706
|
+
initRebateVaultInstruction = _a.sent();
|
|
7707
|
+
instructions.push(initRebateVaultInstruction);
|
|
7708
|
+
return [3, 4];
|
|
7709
|
+
case 3:
|
|
7710
|
+
err_60 = _a.sent();
|
|
7711
|
+
console.log("perpClient initRebateVaultInstruction error:: ", err_60);
|
|
7712
|
+
throw err_60;
|
|
8111
7713
|
case 4: return [2, {
|
|
8112
7714
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
8113
7715
|
additionalSigners: additionalSigners
|
|
@@ -8116,7 +7718,7 @@ var PerpetualsClient = (function () {
|
|
|
8116
7718
|
});
|
|
8117
7719
|
}); };
|
|
8118
7720
|
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,
|
|
7721
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyMint, fundingTokenAccount, revenueFundingTokenAccount, distributeTokenRewardInstruction, err_61;
|
|
8120
7722
|
return __generator(this, function (_a) {
|
|
8121
7723
|
switch (_a.label) {
|
|
8122
7724
|
case 0:
|
|
@@ -8155,9 +7757,9 @@ var PerpetualsClient = (function () {
|
|
|
8155
7757
|
instructions.push(distributeTokenRewardInstruction);
|
|
8156
7758
|
return [3, 4];
|
|
8157
7759
|
case 3:
|
|
8158
|
-
|
|
8159
|
-
console.log("perpClient distributeTokenRewardInstruction error:: ",
|
|
8160
|
-
throw
|
|
7760
|
+
err_61 = _a.sent();
|
|
7761
|
+
console.log("perpClient distributeTokenRewardInstruction error:: ", err_61);
|
|
7762
|
+
throw err_61;
|
|
8161
7763
|
case 4: return [2, {
|
|
8162
7764
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
8163
7765
|
additionalSigners: additionalSigners
|
|
@@ -8166,7 +7768,7 @@ var PerpetualsClient = (function () {
|
|
|
8166
7768
|
});
|
|
8167
7769
|
}); };
|
|
8168
7770
|
this.setTokenStakeLevel = function (owner, stakeLevel) { return __awaiter(_this, void 0, void 0, function () {
|
|
8169
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, setTokenStakeLevelInstruction,
|
|
7771
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, setTokenStakeLevelInstruction, err_62;
|
|
8170
7772
|
return __generator(this, function (_a) {
|
|
8171
7773
|
switch (_a.label) {
|
|
8172
7774
|
case 0:
|
|
@@ -8194,9 +7796,9 @@ var PerpetualsClient = (function () {
|
|
|
8194
7796
|
instructions.push(setTokenStakeLevelInstruction);
|
|
8195
7797
|
return [3, 4];
|
|
8196
7798
|
case 3:
|
|
8197
|
-
|
|
8198
|
-
console.log("perpClient setTokenStakeLevelInstruction error:: ",
|
|
8199
|
-
throw
|
|
7799
|
+
err_62 = _a.sent();
|
|
7800
|
+
console.log("perpClient setTokenStakeLevelInstruction error:: ", err_62);
|
|
7801
|
+
throw err_62;
|
|
8200
7802
|
case 4: return [2, {
|
|
8201
7803
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
8202
7804
|
additionalSigners: additionalSigners
|
|
@@ -8205,7 +7807,7 @@ var PerpetualsClient = (function () {
|
|
|
8205
7807
|
});
|
|
8206
7808
|
}); };
|
|
8207
7809
|
this.setTokenReward = function (owner, amount, epochCount, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
8208
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, setTokenRewardInstruction,
|
|
7810
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, setTokenRewardInstruction, err_63;
|
|
8209
7811
|
return __generator(this, function (_a) {
|
|
8210
7812
|
switch (_a.label) {
|
|
8211
7813
|
case 0:
|
|
@@ -8237,9 +7839,49 @@ var PerpetualsClient = (function () {
|
|
|
8237
7839
|
instructions.push(setTokenRewardInstruction);
|
|
8238
7840
|
return [3, 4];
|
|
8239
7841
|
case 3:
|
|
8240
|
-
|
|
8241
|
-
console.log("perpClient setTokenRewardInstruction error:: ",
|
|
8242
|
-
throw
|
|
7842
|
+
err_63 = _a.sent();
|
|
7843
|
+
console.log("perpClient setTokenRewardInstruction error:: ", err_63);
|
|
7844
|
+
throw err_63;
|
|
7845
|
+
case 4: return [2, {
|
|
7846
|
+
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
7847
|
+
additionalSigners: additionalSigners
|
|
7848
|
+
}];
|
|
7849
|
+
}
|
|
7850
|
+
});
|
|
7851
|
+
}); };
|
|
7852
|
+
this.resizeInternalOracle = function (extOracle, tokenMint, intOracleAccount) { return __awaiter(_this, void 0, void 0, function () {
|
|
7853
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, resizeInternalOracleInstruction, err_64;
|
|
7854
|
+
return __generator(this, function (_a) {
|
|
7855
|
+
switch (_a.label) {
|
|
7856
|
+
case 0:
|
|
7857
|
+
publicKey = this.provider.wallet.publicKey;
|
|
7858
|
+
preInstructions = [];
|
|
7859
|
+
instructions = [];
|
|
7860
|
+
postInstructions = [];
|
|
7861
|
+
additionalSigners = [];
|
|
7862
|
+
_a.label = 1;
|
|
7863
|
+
case 1:
|
|
7864
|
+
_a.trys.push([1, 3, , 4]);
|
|
7865
|
+
return [4, this.program.methods
|
|
7866
|
+
.resizeInternalOracle({
|
|
7867
|
+
extOracle: extOracle
|
|
7868
|
+
})
|
|
7869
|
+
.accounts({
|
|
7870
|
+
admin: publicKey,
|
|
7871
|
+
multisig: this.multisig.publicKey,
|
|
7872
|
+
custodyTokenMint: tokenMint,
|
|
7873
|
+
intOracleAccount: intOracleAccount,
|
|
7874
|
+
systemProgram: web3_js_1.SystemProgram.programId,
|
|
7875
|
+
})
|
|
7876
|
+
.instruction()];
|
|
7877
|
+
case 2:
|
|
7878
|
+
resizeInternalOracleInstruction = _a.sent();
|
|
7879
|
+
instructions.push(resizeInternalOracleInstruction);
|
|
7880
|
+
return [3, 4];
|
|
7881
|
+
case 3:
|
|
7882
|
+
err_64 = _a.sent();
|
|
7883
|
+
console.log("perpClient resizeInternalOracleInstruction error:: ", err_64);
|
|
7884
|
+
throw err_64;
|
|
8243
7885
|
case 4: return [2, {
|
|
8244
7886
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
8245
7887
|
additionalSigners: additionalSigners
|