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