flash-sdk 10.5.0 → 10.5.1-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/MarketAccount.js +1 -1
- package/dist/PerpetualsClient.d.ts +292 -146
- package/dist/PerpetualsClient.js +734 -1068
- package/dist/PoolAccount.d.ts +3 -0
- package/dist/PoolConfig.d.ts +3 -1
- package/dist/PoolConfig.js +4 -2
- package/dist/PoolConfig.json +1040 -525
- 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 +3868 -2448
- package/dist/idl/perpetuals.js +3979 -2559
- 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 +23 -4
- package/dist/types/index.js +3 -2
- package/dist/utils/getReferralAccounts.d.ts +1 -1
- package/dist/utils/getReferralAccounts.js +3 -8
- package/package.json +1 -1
- package/dist/TradingAccount.d.ts +0 -24
- package/dist/TradingAccount.js +0 -17
package/dist/PerpetualsClient.js
CHANGED
|
@@ -638,24 +638,41 @@ var PerpetualsClient = (function () {
|
|
|
638
638
|
var averageEntryPrice = totalValue.div(totalSize);
|
|
639
639
|
return averageEntryPrice;
|
|
640
640
|
};
|
|
641
|
-
this.
|
|
642
|
-
var
|
|
643
|
-
var
|
|
644
|
-
|
|
645
|
-
|
|
641
|
+
this.getLeverageContractHelper = function (positionAccount, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, isInitial, poolConfig) {
|
|
642
|
+
var pnl = _this.getPnlSync(positionAccount, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, targetCustodyAccount.pricing.delaySeconds, poolConfig);
|
|
643
|
+
var exitFee = _this.getExitFeeSync(positionAccount, targetCustodyAccount, collateralCustodyAccount, collateralPrice, collateralEmaPrice);
|
|
644
|
+
var lockFeeUsd = _this.getLockFeeAndUnsettledUsdForPosition(positionAccount, collateralCustodyAccount, currentTimestamp);
|
|
645
|
+
var unsettledFeesUsd = exitFee.exitFeeUsd.add(lockFeeUsd);
|
|
646
|
+
var lossUsd = pnl.lossUsd.add(unsettledFeesUsd);
|
|
647
|
+
var currentMarginUsd = constants_1.BN_ZERO;
|
|
648
|
+
if (isInitial) {
|
|
649
|
+
currentMarginUsd = positionAccount.collateralUsd.sub(lossUsd);
|
|
650
|
+
}
|
|
651
|
+
else {
|
|
652
|
+
currentMarginUsd = positionAccount.collateralUsd.add(pnl.profitUsd).sub(lossUsd);
|
|
653
|
+
}
|
|
654
|
+
if (currentMarginUsd.gt(constants_1.BN_ZERO)) {
|
|
655
|
+
return positionAccount.sizeUsd.mul(new anchor_1.BN(constants_1.BPS_POWER)).div(currentMarginUsd);
|
|
646
656
|
}
|
|
647
657
|
else {
|
|
648
658
|
return new anchor_1.BN(Number.MAX_SAFE_INTEGER);
|
|
649
659
|
}
|
|
650
660
|
};
|
|
651
|
-
this.
|
|
661
|
+
this.getLeverageSync = function (positionAccount, finalCollateralUsd, finalSizeUsd, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, isInitial, poolConfig) {
|
|
662
|
+
positionAccount = positionAccount.clone();
|
|
663
|
+
positionAccount.sizeUsd = finalSizeUsd;
|
|
664
|
+
positionAccount.collateralUsd = finalCollateralUsd;
|
|
665
|
+
return _this.getLeverageContractHelper(positionAccount, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, isInitial, poolConfig);
|
|
666
|
+
};
|
|
667
|
+
this.getLeverageAtAmountEntryWithSwapSync = function (positionAccount, inputDeltaAmount, sizeDeltaAmount, side, poolAccount, inputTokenPrice, inputTokenEmaPrice, inputTokenCustodyAccount, collateralTokenPrice, collateralTokenEmaPrice, collateralTokenCustodyAccount, targetTokenPrice, targetTokenEmaPrice, targetTokenCustodyAccount, swapPoolAumUsdMax, poolConfig, pnlUsd, enableDebuglogs) {
|
|
668
|
+
if (enableDebuglogs === void 0) { enableDebuglogs = false; }
|
|
652
669
|
var finalCollateralAmount = constants_1.BN_ZERO;
|
|
653
670
|
if (!inputDeltaAmount.isZero()) {
|
|
654
671
|
if (inputTokenCustodyAccount.publicKey.equals(collateralTokenCustodyAccount.publicKey)) {
|
|
655
672
|
finalCollateralAmount = inputDeltaAmount;
|
|
656
673
|
}
|
|
657
674
|
else {
|
|
658
|
-
var swapAmountOut = _this.getSwapAmountAndFeesSync(inputDeltaAmount, constants_1.BN_ZERO, poolAccount, inputTokenPrice, inputTokenEmaPrice, inputTokenCustodyAccount,
|
|
675
|
+
var swapAmountOut = _this.getSwapAmountAndFeesSync(inputDeltaAmount, constants_1.BN_ZERO, poolAccount, inputTokenPrice, inputTokenEmaPrice, inputTokenCustodyAccount, collateralTokenPrice, collateralTokenEmaPrice, collateralTokenCustodyAccount, swapPoolAumUsdMax, poolConfig).minAmountOut;
|
|
659
676
|
finalCollateralAmount = swapAmountOut;
|
|
660
677
|
}
|
|
661
678
|
}
|
|
@@ -681,11 +698,13 @@ var PerpetualsClient = (function () {
|
|
|
681
698
|
entryOraclePrice.price = _this.getAveragePriceSync(positionEntryPrice.price, positionAccount.sizeAmount, entryOraclePrice.price, sizeDeltaAmount);
|
|
682
699
|
}
|
|
683
700
|
var collateralMinOraclePrice = _this.getMinAndMaxOraclePriceSync(collateralTokenPrice, collateralTokenEmaPrice, collateralTokenCustodyAccount).min;
|
|
684
|
-
var
|
|
685
|
-
var
|
|
686
|
-
var currentCollateralUsdIncludingPnl = currentCollateralUsd.add(pnlUsd).sub(openFeeUsd);
|
|
701
|
+
var finalCollateralUsd = collateralMinOraclePrice.getAssetAmountUsd(finalCollateralAmount, collateralTokenCustodyAccount.decimals).add(positionAccount.collateralUsd);
|
|
702
|
+
var currentCollateralUsdIncludingPnl = finalCollateralUsd.add(pnlUsd).sub(openFeeUsd);
|
|
687
703
|
var sizeAmount = positionAccount.sizeAmount.add(sizeDeltaAmount);
|
|
688
704
|
var sizeAmountUsd = entryOraclePrice.getAssetAmountUsd(sizeAmount, targetTokenCustodyAccount.decimals);
|
|
705
|
+
if (enableDebuglogs) {
|
|
706
|
+
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());
|
|
707
|
+
}
|
|
689
708
|
if (currentCollateralUsdIncludingPnl.gt(constants_1.BN_ZERO)) {
|
|
690
709
|
return sizeAmountUsd.mul(new anchor_1.BN(constants_1.BPS_POWER)).div(currentCollateralUsdIncludingPnl);
|
|
691
710
|
}
|
|
@@ -693,81 +712,20 @@ var PerpetualsClient = (function () {
|
|
|
693
712
|
return new anchor_1.BN(Number.MAX_SAFE_INTEGER);
|
|
694
713
|
}
|
|
695
714
|
};
|
|
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
715
|
this.getEntryPriceAndFeeSyncV2 = function (positionAccount, marketCorrelation, collateralDeltaAmount, sizeDeltaAmount, side, targetPrice, targetEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, discountBps, enableLogs) {
|
|
759
716
|
if (discountBps === void 0) { discountBps = constants_1.BN_ZERO; }
|
|
760
717
|
if (enableLogs === void 0) { enableLogs = false; }
|
|
761
718
|
if (collateralDeltaAmount.isNeg() || sizeDeltaAmount.isNeg()) {
|
|
762
719
|
throw new Error("Delta Amounts cannot be negative.");
|
|
763
720
|
}
|
|
764
|
-
var
|
|
765
|
-
var
|
|
721
|
+
var sizeDeltaUsd = targetPrice.getAssetAmountUsd(sizeDeltaAmount, targetCustodyAccount.decimals);
|
|
722
|
+
var entryDeltaOraclePrice = _this.getEntryPriceUsdSync(side, targetPrice, targetEmaPrice, targetCustodyAccount, sizeDeltaUsd);
|
|
723
|
+
var lockAndUnsettledFeeUsd = constants_1.BN_ZERO;
|
|
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 = entryDeltaOraclePrice.getAssetAmountUsd(sizeDeltaAmount, targetCustodyAccount.decimals);
|
|
728
|
+
positionAccount.sizeUsd = sizeUsd;
|
|
771
729
|
positionAccount.sizeDecimals = targetCustodyAccount.decimals;
|
|
772
730
|
positionAccount.collateralDecimals = collateralCustodyAccount.decimals;
|
|
773
731
|
positionAccount.lockedDecimals = collateralCustodyAccount.decimals;
|
|
@@ -780,16 +738,17 @@ var PerpetualsClient = (function () {
|
|
|
780
738
|
confidence: constants_1.BN_ZERO,
|
|
781
739
|
timestamp: constants_1.BN_ZERO
|
|
782
740
|
});
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
741
|
+
lockAndUnsettledFeeUsd = _this.getLockFeeAndUnsettledUsdForPosition(positionAccount, collateralCustodyAccount, currentTimestamp);
|
|
742
|
+
entryDeltaOraclePrice.price = _this.getAveragePriceSync(positionEntryPrice.price, positionAccount.sizeAmount, entryDeltaOraclePrice.price, sizeDeltaAmount);
|
|
743
|
+
var sizeDeltaUsd_1 = entryDeltaOraclePrice.getAssetAmountUsd(sizeDeltaAmount, targetCustodyAccount.decimals);
|
|
744
|
+
positionAccount.sizeUsd = positionAccount.sizeUsd.add(sizeDeltaUsd_1);
|
|
786
745
|
}
|
|
787
|
-
|
|
746
|
+
var collateralMinMaxPrice = _this.getMinAndMaxOraclePriceSync(collateralPrice, collateralEmaPrice, collateralCustodyAccount);
|
|
747
|
+
var collateralDeltaUsd = collateralMinMaxPrice.min.getAssetAmountUsd(collateralDeltaAmount, collateralCustodyAccount.decimals);
|
|
748
|
+
positionAccount.collateralUsd = positionAccount.collateralUsd.add(collateralDeltaUsd);
|
|
788
749
|
positionAccount.sizeAmount = positionAccount.sizeAmount.add(sizeDeltaAmount);
|
|
789
|
-
var
|
|
790
|
-
var
|
|
791
|
-
var sizeAmountUsd = entryOraclePrice.getAssetAmountUsd(sizeDeltaAmount, targetCustodyAccount.decimals);
|
|
792
|
-
var collateralTokenMinOraclePrice = _this.getMinAndMaxOraclePriceSync(collateralPrice, collateralEmaPrice, collateralCustodyAccount).min;
|
|
750
|
+
var liquidationPrice = _this.getLiquidationPriceContractHelper(entryDeltaOraclePrice, lockAndUnsettledFeeUsd, side, targetCustodyAccount, positionAccount);
|
|
751
|
+
var sizeAmountUsd = entryDeltaOraclePrice.getAssetAmountUsd(sizeDeltaAmount, targetCustodyAccount.decimals);
|
|
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;
|
|
@@ -822,7 +781,7 @@ var PerpetualsClient = (function () {
|
|
|
822
781
|
console.log("volitlity fee zero:", "divergenceBps", divergenceBps.toString(), "maxDivergenceBps", targetCustodyAccount.oracle.maxDivergenceBps.toString());
|
|
823
782
|
}
|
|
824
783
|
return {
|
|
825
|
-
entryOraclePrice:
|
|
784
|
+
entryOraclePrice: entryDeltaOraclePrice,
|
|
826
785
|
feeUsd: feeUsd,
|
|
827
786
|
feeAmount: feeAmount,
|
|
828
787
|
vbFeeUsd: vbFeeUsd,
|
|
@@ -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;
|
|
1012
|
+
}
|
|
1013
|
+
else {
|
|
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;
|
|
1065
1021
|
}
|
|
1066
1022
|
else {
|
|
1067
|
-
|
|
1068
|
-
feesAmount = collateralMinMaxPrice.min.getTokenAmount(assetsUsd.sub(newPnl.lossUsd), collateralCustodyAccount.decimals);
|
|
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,144 @@ 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, entryOraclePrice, lockAndUnsettledFeeUsd, side, targetCustodyAccount, positionAccount) {
|
|
1340
|
+
var newPositionAccount = positionAccount.clone();
|
|
1341
|
+
newPositionAccount.collateralUsd = collateralUsd;
|
|
1342
|
+
return _this.getLiquidationPriceContractHelper(entryOraclePrice, lockAndUnsettledFeeUsd, side, targetCustodyAccount, newPositionAccount);
|
|
1343
|
+
};
|
|
1344
|
+
this.getLiquidationPriceWithOrder = function (collateralUsd, sizeAmount, sizeUsd, sizeDecimals, limitOraclePrice, side, targetCustodyAccount) {
|
|
1383
1345
|
var zeroOraclePrice = OraclePrice_1.OraclePrice.from({
|
|
1384
1346
|
price: constants_1.BN_ZERO,
|
|
1385
1347
|
exponent: constants_1.BN_ZERO,
|
|
1386
1348
|
confidence: constants_1.BN_ZERO,
|
|
1387
1349
|
timestamp: constants_1.BN_ZERO
|
|
1388
1350
|
});
|
|
1389
|
-
if (collateralAmount.isZero() || sizeAmount.isZero()) {
|
|
1390
|
-
return zeroOraclePrice;
|
|
1391
|
-
}
|
|
1392
1351
|
var exitFeeUsd = sizeUsd.mul(targetCustodyAccount.fees.closePosition).div(new anchor_1.BN(constants_1.RATE_POWER));
|
|
1393
1352
|
var unsettledLossUsd = exitFeeUsd;
|
|
1394
1353
|
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
1354
|
var liquidationPrice;
|
|
1398
|
-
if (
|
|
1399
|
-
var
|
|
1400
|
-
|
|
1401
|
-
|
|
1355
|
+
if (collateralUsd.gte(liablitiesUsd)) {
|
|
1356
|
+
var priceDiffLossOracle = OraclePrice_1.OraclePrice.from({
|
|
1357
|
+
price: (collateralUsd.sub(liablitiesUsd)).mul(new anchor_1.BN(Math.pow(10, (sizeDecimals + 3))))
|
|
1358
|
+
.div(sizeAmount),
|
|
1359
|
+
exponent: new anchor_1.BN(-1 * constants_1.RATE_DECIMALS),
|
|
1360
|
+
confidence: constants_1.BN_ZERO,
|
|
1361
|
+
timestamp: constants_1.BN_ZERO
|
|
1362
|
+
}).scale_to_exponent(new anchor_1.BN(limitOraclePrice.exponent));
|
|
1363
|
+
if ((0, types_1.isVariant)(side, 'long')) {
|
|
1364
|
+
liquidationPrice = OraclePrice_1.OraclePrice.from({
|
|
1365
|
+
price: limitOraclePrice.price.sub(priceDiffLossOracle.price),
|
|
1366
|
+
exponent: new anchor_1.BN(limitOraclePrice.exponent),
|
|
1367
|
+
confidence: constants_1.BN_ZERO,
|
|
1368
|
+
timestamp: constants_1.BN_ZERO
|
|
1369
|
+
});
|
|
1402
1370
|
}
|
|
1403
1371
|
else {
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1372
|
+
liquidationPrice = OraclePrice_1.OraclePrice.from({
|
|
1373
|
+
price: limitOraclePrice.price.add(priceDiffLossOracle.price),
|
|
1374
|
+
exponent: new anchor_1.BN(limitOraclePrice.exponent),
|
|
1375
|
+
confidence: constants_1.BN_ZERO,
|
|
1376
|
+
timestamp: constants_1.BN_ZERO
|
|
1377
|
+
});
|
|
1407
1378
|
}
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1379
|
+
}
|
|
1380
|
+
else {
|
|
1381
|
+
var priceDiffProfitOracle = OraclePrice_1.OraclePrice.from({
|
|
1382
|
+
price: (liablitiesUsd.sub(collateralUsd)).mul(new anchor_1.BN(Math.pow(10, (sizeDecimals + 3))))
|
|
1383
|
+
.div(sizeAmount),
|
|
1411
1384
|
exponent: new anchor_1.BN(-1 * constants_1.RATE_DECIMALS),
|
|
1412
1385
|
confidence: constants_1.BN_ZERO,
|
|
1413
1386
|
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),
|
|
1387
|
+
}).scale_to_exponent(new anchor_1.BN(limitOraclePrice.exponent));
|
|
1388
|
+
if ((0, types_1.isVariant)(side, 'long')) {
|
|
1389
|
+
liquidationPrice = OraclePrice_1.OraclePrice.from({
|
|
1390
|
+
price: limitOraclePrice.price.add(priceDiffProfitOracle.price),
|
|
1391
|
+
exponent: new anchor_1.BN(limitOraclePrice.exponent),
|
|
1424
1392
|
confidence: constants_1.BN_ZERO,
|
|
1425
1393
|
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
|
-
}
|
|
1394
|
+
});
|
|
1443
1395
|
}
|
|
1444
1396
|
else {
|
|
1445
|
-
|
|
1446
|
-
price:
|
|
1447
|
-
|
|
1448
|
-
exponent: new anchor_1.BN(-1 * constants_1.RATE_DECIMALS),
|
|
1397
|
+
liquidationPrice = OraclePrice_1.OraclePrice.from({
|
|
1398
|
+
price: limitOraclePrice.price.sub(priceDiffProfitOracle.price),
|
|
1399
|
+
exponent: new anchor_1.BN(limitOraclePrice.exponent),
|
|
1449
1400
|
confidence: constants_1.BN_ZERO,
|
|
1450
1401
|
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
|
-
}
|
|
1402
|
+
});
|
|
1468
1403
|
}
|
|
1469
1404
|
}
|
|
1470
1405
|
return liquidationPrice.price.isNeg() ? zeroOraclePrice : liquidationPrice;
|
|
1471
1406
|
};
|
|
1472
|
-
this.getMaxProfitPriceSync = function (entryPrice, marketCorrelation, side, positionAccount) {
|
|
1407
|
+
this.getMaxProfitPriceSync = function (entryPrice, marketCorrelation, side, collateralPrice, positionAccount) {
|
|
1473
1408
|
var zeroOraclePrice = OraclePrice_1.OraclePrice.from({
|
|
1474
1409
|
price: constants_1.BN_ZERO,
|
|
1475
1410
|
exponent: constants_1.BN_ZERO,
|
|
@@ -1480,7 +1415,7 @@ var PerpetualsClient = (function () {
|
|
|
1480
1415
|
return zeroOraclePrice;
|
|
1481
1416
|
}
|
|
1482
1417
|
var priceDiffProfit = OraclePrice_1.OraclePrice.from({
|
|
1483
|
-
price: positionAccount.
|
|
1418
|
+
price: (collateralPrice.price.mul(positionAccount.lockedAmount)).mul(new anchor_1.BN(10).pow(new anchor_1.BN(positionAccount.sizeDecimals + 3)))
|
|
1484
1419
|
.div(positionAccount.sizeAmount),
|
|
1485
1420
|
exponent: new anchor_1.BN(-1 * constants_1.RATE_DECIMALS),
|
|
1486
1421
|
confidence: constants_1.BN_ZERO,
|
|
@@ -1508,7 +1443,7 @@ var PerpetualsClient = (function () {
|
|
|
1508
1443
|
}
|
|
1509
1444
|
return maxProfitPrice.price.isNeg() ? zeroOraclePrice : maxProfitPrice;
|
|
1510
1445
|
};
|
|
1511
|
-
this.getEstimateProfitLossforTpSlEntry = function (positionAccount, isTakeProfit, userEntrytpSlOraclePrice, collateralDeltaAmount, sizeDeltaAmount, side, marketAccountPk, targetTokenPrice, targetTokenEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, poolConfig) {
|
|
1446
|
+
this.getEstimateProfitLossforTpSlEntry = function (positionAccount, isTakeProfit, userEntrytpSlOraclePrice, collateralDeltaAmount, sizeDeltaAmount, side, marketCorrelation, maxPayOffBps, marketAccountPk, targetTokenPrice, targetTokenEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, poolConfig) {
|
|
1512
1447
|
if (collateralDeltaAmount.isNeg() || sizeDeltaAmount.isNeg()) {
|
|
1513
1448
|
throw new Error("Delta Amounts cannot be negative.");
|
|
1514
1449
|
}
|
|
@@ -1538,10 +1473,9 @@ var PerpetualsClient = (function () {
|
|
|
1538
1473
|
positionAccount.sizeUsd = positionAccount.sizeUsd.add(sizeDeltaUsd);
|
|
1539
1474
|
positionAccount.sizeAmount = positionAccount.sizeAmount.add(sizeDeltaAmount);
|
|
1540
1475
|
positionAccount.market = marketAccountPk;
|
|
1541
|
-
|
|
1542
|
-
positionAccount.
|
|
1543
|
-
positionAccount.
|
|
1544
|
-
positionAccount.collateralUsd = collateralPrice.getAssetAmountUsd(positionAccount.collateralAmount, collateralCustodyAccount.decimals);
|
|
1476
|
+
var collateralDeltaUsd = collateralPrice.getAssetAmountUsd(collateralDeltaAmount, collateralCustodyAccount.decimals);
|
|
1477
|
+
positionAccount.collateralUsd = positionAccount.collateralUsd.add(collateralDeltaUsd);
|
|
1478
|
+
positionAccount.lockedAmount = positionAccount.lockedAmount.add(collateralPrice.getTokenAmount(_this.getLockedUsd(sizeDeltaUsd, collateralDeltaUsd, side, marketCorrelation, maxPayOffBps), collateralCustodyAccount.decimals));
|
|
1545
1479
|
var currentTime = new anchor_1.BN((0, utils_1.getUnixTs)());
|
|
1546
1480
|
var pnl = _this.getPnlSync(positionAccount, userEntrytpSlOraclePrice, userEntrytpSlOraclePrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTime, targetCustodyAccount.pricing.delaySeconds, poolConfig);
|
|
1547
1481
|
var pnlUsd = pnl.profitUsd.sub(pnl.lossUsd);
|
|
@@ -1613,6 +1547,9 @@ var PerpetualsClient = (function () {
|
|
|
1613
1547
|
});
|
|
1614
1548
|
};
|
|
1615
1549
|
this.getPnlSync = function (positionAccount, targetTokenPrice, targetTokenEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, delay, poolConfig) {
|
|
1550
|
+
return _this.getPnlContractHelper(positionAccount, targetTokenPrice, targetTokenEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, delay, poolConfig);
|
|
1551
|
+
};
|
|
1552
|
+
this.getPnlContractHelper = function (positionAccount, targetTokenPrice, targetTokenEmaPrice, targetCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, currentTimestamp, delay, poolConfig) {
|
|
1616
1553
|
if (positionAccount.sizeUsd.isZero() || positionAccount.entryPrice.price.isZero()) {
|
|
1617
1554
|
return {
|
|
1618
1555
|
profitUsd: constants_1.BN_ZERO,
|
|
@@ -1620,9 +1557,8 @@ var PerpetualsClient = (function () {
|
|
|
1620
1557
|
};
|
|
1621
1558
|
}
|
|
1622
1559
|
var side = poolConfig.getMarketConfigByPk(positionAccount.market).side;
|
|
1623
|
-
var sizeUsd =
|
|
1560
|
+
var sizeUsd = positionAccount.sizeUsd;
|
|
1624
1561
|
var exitOraclePrice = _this.getExitOraclePriceSync(side, targetTokenPrice, targetTokenEmaPrice, targetCustodyAccount, sizeUsd);
|
|
1625
|
-
var collateralMinPrice = _this.getMinAndMaxOraclePriceSync(collateralPrice, collateralEmaPrice, collateralCustodyAccount).min;
|
|
1626
1562
|
var priceDiffProfit, priceDiffLoss;
|
|
1627
1563
|
var positionEntryPrice = OraclePrice_1.OraclePrice.from({
|
|
1628
1564
|
price: positionAccount.entryPrice.price,
|
|
@@ -1671,7 +1607,7 @@ var PerpetualsClient = (function () {
|
|
|
1671
1607
|
}
|
|
1672
1608
|
if (priceDiffProfit.price.gt(constants_1.BN_ZERO)) {
|
|
1673
1609
|
return {
|
|
1674
|
-
profitUsd:
|
|
1610
|
+
profitUsd: priceDiffProfit.getAssetAmountUsd(positionAccount.sizeAmount, positionAccount.sizeDecimals),
|
|
1675
1611
|
lossUsd: constants_1.BN_ZERO,
|
|
1676
1612
|
};
|
|
1677
1613
|
}
|
|
@@ -1762,6 +1698,9 @@ var PerpetualsClient = (function () {
|
|
|
1762
1698
|
}
|
|
1763
1699
|
};
|
|
1764
1700
|
this.getAssetsUnderManagementUsdSync = function (poolAccount, tokenPrices, tokenEmaPrices, custodies, markets, aumCalcMode, currentTime, poolConfig) {
|
|
1701
|
+
return _this.getAssetsUnderManagementUsdContractHelper(poolAccount, tokenPrices, tokenEmaPrices, custodies, markets, aumCalcMode, currentTime, poolConfig);
|
|
1702
|
+
};
|
|
1703
|
+
this.getAssetsUnderManagementUsdContractHelper = function (poolAccount, tokenPrices, tokenEmaPrices, custodies, markets, aumCalcMode, currentTime, poolConfig) {
|
|
1765
1704
|
var poolAmountUsd = constants_1.BN_ZERO;
|
|
1766
1705
|
for (var index = 0; index < custodies.length; index++) {
|
|
1767
1706
|
if (custodies.length != poolAccount.custodies.length || !custodies[index].publicKey.equals(poolAccount.custodies[index])) {
|
|
@@ -1774,6 +1713,7 @@ var PerpetualsClient = (function () {
|
|
|
1774
1713
|
var token_amount_usd = tokenMinMaxPrice.max.getAssetAmountUsd(custodies[index].assets.owned, custodies[index].decimals);
|
|
1775
1714
|
poolAmountUsd = poolAmountUsd.add(token_amount_usd);
|
|
1776
1715
|
}
|
|
1716
|
+
poolAmountUsd = poolAmountUsd.sub(poolAccount.feesObligationUsd.add(poolAccount.rebateObligationUsd));
|
|
1777
1717
|
if (aumCalcMode === "includePnl") {
|
|
1778
1718
|
var poolEquityUsd = poolAmountUsd;
|
|
1779
1719
|
for (var index = 0; index < markets.length; index++) {
|
|
@@ -1783,11 +1723,12 @@ var PerpetualsClient = (function () {
|
|
|
1783
1723
|
var targetCustodyId = poolAccount.getCustodyId(markets[index].targetCustody);
|
|
1784
1724
|
var collateralCustodyId = poolAccount.getCustodyId(markets[index].collateralCustody);
|
|
1785
1725
|
var position = markets[index].getCollectivePosition();
|
|
1726
|
+
poolEquityUsd = poolEquityUsd.sub(position.collateralUsd);
|
|
1786
1727
|
var collectivePnl = _this.getPnlSync(position, tokenPrices[targetCustodyId], tokenEmaPrices[targetCustodyId], custodies[targetCustodyId], tokenPrices[collateralCustodyId], tokenEmaPrices[collateralCustodyId], custodies[collateralCustodyId], currentTime, custodies[targetCustodyId].pricing.delaySeconds, poolConfig);
|
|
1787
1728
|
var collateralMinMaxPrice = _this.getMinAndMaxOraclePriceSync(tokenPrices[collateralCustodyId], tokenEmaPrices[collateralCustodyId], custodies[collateralCustodyId]);
|
|
1788
|
-
var
|
|
1789
|
-
var
|
|
1790
|
-
poolEquityUsd = (poolEquityUsd.add(collectiveLossUsd)).sub(
|
|
1729
|
+
var collectiveLossUsd = anchor_1.BN.min(collectivePnl.lossUsd, position.collateralUsd);
|
|
1730
|
+
var collectiveProfitUsd = anchor_1.BN.min(collectivePnl.profitUsd, collateralMinMaxPrice.max.getAssetAmountUsd(position.lockedAmount, custodies[collateralCustodyId].decimals).sub(position.collateralUsd));
|
|
1731
|
+
poolEquityUsd = (poolEquityUsd.add(collectiveLossUsd)).sub(collectiveProfitUsd);
|
|
1791
1732
|
}
|
|
1792
1733
|
return { poolAmountUsd: poolAmountUsd, poolEquityUsd: poolEquityUsd };
|
|
1793
1734
|
}
|
|
@@ -1795,14 +1736,6 @@ var PerpetualsClient = (function () {
|
|
|
1795
1736
|
return { poolAmountUsd: poolAmountUsd, poolEquityUsd: constants_1.BN_ZERO };
|
|
1796
1737
|
}
|
|
1797
1738
|
};
|
|
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
1739
|
this.getFeeDiscount = function (perpetualsAccount, tokenStakeAccount, currentTime) {
|
|
1807
1740
|
if (tokenStakeAccount.level === 0) {
|
|
1808
1741
|
return { discountBn: constants_1.BN_ZERO };
|
|
@@ -1887,7 +1820,7 @@ var PerpetualsClient = (function () {
|
|
|
1887
1820
|
});
|
|
1888
1821
|
};
|
|
1889
1822
|
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;
|
|
1823
|
+
var backUpOracleInstructionPromise, custodies, custodyMetas, marketMetas, _i, custodies_1, token, _a, custodies_2, custody, _b, _c, market, transaction, backUpOracleInstruction, setCULimitIx, result, index, res;
|
|
1891
1824
|
var _d;
|
|
1892
1825
|
return __generator(this, function (_e) {
|
|
1893
1826
|
switch (_e.label) {
|
|
@@ -1935,6 +1868,8 @@ var PerpetualsClient = (function () {
|
|
|
1935
1868
|
return [4, backUpOracleInstructionPromise];
|
|
1936
1869
|
case 2:
|
|
1937
1870
|
backUpOracleInstruction = _e.sent();
|
|
1871
|
+
setCULimitIx = web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({ units: 450000 });
|
|
1872
|
+
transaction.instructions.unshift(setCULimitIx);
|
|
1938
1873
|
(_d = transaction.instructions).unshift.apply(_d, backUpOracleInstruction);
|
|
1939
1874
|
return [4, this.viewHelper.simulateTransaction(transaction)];
|
|
1940
1875
|
case 3:
|
|
@@ -2001,7 +1936,7 @@ var PerpetualsClient = (function () {
|
|
|
2001
1936
|
args_1[_i - 4] = arguments[_i];
|
|
2002
1937
|
}
|
|
2003
1938
|
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;
|
|
1939
|
+
var custodies, custodyMetas, marketMetas, _a, custodies_5, token, _b, custodies_6, custody, _c, _d, market, depositCustodyConfig, transaction, setCULimitIx, backUpOracleInstruction, result, index, res;
|
|
2005
1940
|
var _e;
|
|
2006
1941
|
if (userPublicKey === void 0) { userPublicKey = undefined; }
|
|
2007
1942
|
if (enableBackupOracle === void 0) { enableBackupOracle = false; }
|
|
@@ -2052,6 +1987,8 @@ var PerpetualsClient = (function () {
|
|
|
2052
1987
|
.transaction()];
|
|
2053
1988
|
case 1:
|
|
2054
1989
|
transaction = _f.sent();
|
|
1990
|
+
setCULimitIx = web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({ units: 450000 });
|
|
1991
|
+
transaction.instructions.unshift(setCULimitIx);
|
|
2055
1992
|
if (!enableBackupOracle) return [3, 3];
|
|
2056
1993
|
return [4, (0, backupOracle_1.createBackupOracleInstruction)(POOL_CONFIG.poolAddress.toBase58(), true)];
|
|
2057
1994
|
case 2:
|
|
@@ -2061,6 +1998,14 @@ var PerpetualsClient = (function () {
|
|
|
2061
1998
|
case 3: return [4, this.viewHelper.simulateTransaction(transaction, userPublicKey)];
|
|
2062
1999
|
case 4:
|
|
2063
2000
|
result = _f.sent();
|
|
2001
|
+
if (result.value.err) {
|
|
2002
|
+
console.error('error Simulation failed:::', result);
|
|
2003
|
+
return [2, {
|
|
2004
|
+
amount: undefined,
|
|
2005
|
+
fee: undefined,
|
|
2006
|
+
error: 'Simulation failed: ' + JSON.stringify(result.value.err),
|
|
2007
|
+
}];
|
|
2008
|
+
}
|
|
2064
2009
|
index = perpetuals_1.IDL.instructions.findIndex(function (f) { return f.name === 'getAddLiquidityAmountAndFee'; });
|
|
2065
2010
|
res = this.viewHelper.decodeLogs(result, index, 'getAddLiquidityAmountAndFee');
|
|
2066
2011
|
return [2, {
|
|
@@ -2077,7 +2022,7 @@ var PerpetualsClient = (function () {
|
|
|
2077
2022
|
args_1[_i - 4] = arguments[_i];
|
|
2078
2023
|
}
|
|
2079
2024
|
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;
|
|
2025
|
+
var custodies, custodyMetas, marketMetas, _a, custodies_7, token, _b, custodies_8, custody, _c, _d, market, removeCustodyConfig, transaction, setCULimitIx, backUpOracleInstruction, result, index, res;
|
|
2081
2026
|
var _e;
|
|
2082
2027
|
if (userPublicKey === void 0) { userPublicKey = undefined; }
|
|
2083
2028
|
if (enableBackupOracle === void 0) { enableBackupOracle = false; }
|
|
@@ -2128,6 +2073,8 @@ var PerpetualsClient = (function () {
|
|
|
2128
2073
|
.transaction()];
|
|
2129
2074
|
case 1:
|
|
2130
2075
|
transaction = _f.sent();
|
|
2076
|
+
setCULimitIx = web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({ units: 450000 });
|
|
2077
|
+
transaction.instructions.unshift(setCULimitIx);
|
|
2131
2078
|
if (!enableBackupOracle) return [3, 3];
|
|
2132
2079
|
return [4, (0, backupOracle_1.createBackupOracleInstruction)(POOL_CONFIG.poolAddress.toBase58(), true)];
|
|
2133
2080
|
case 2:
|
|
@@ -2139,9 +2086,11 @@ var PerpetualsClient = (function () {
|
|
|
2139
2086
|
result = _f.sent();
|
|
2140
2087
|
index = perpetuals_1.IDL.instructions.findIndex(function (f) { return f.name === 'getRemoveLiquidityAmountAndFee'; });
|
|
2141
2088
|
if (result.value.err) {
|
|
2089
|
+
console.error('error Simulation failed:', result);
|
|
2142
2090
|
return [2, {
|
|
2143
|
-
amount:
|
|
2144
|
-
fee:
|
|
2091
|
+
amount: undefined,
|
|
2092
|
+
fee: undefined,
|
|
2093
|
+
error: 'Simulation failed: ' + JSON.stringify(result.value.err),
|
|
2145
2094
|
}];
|
|
2146
2095
|
}
|
|
2147
2096
|
res = this.viewHelper.decodeLogs(result, index, 'getRemoveLiquidityAmountAndFee');
|
|
@@ -2154,7 +2103,7 @@ var PerpetualsClient = (function () {
|
|
|
2154
2103
|
});
|
|
2155
2104
|
};
|
|
2156
2105
|
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;
|
|
2106
|
+
var backUpOracleInstructionPromise, custodies, custodyMetas, marketMetas, _i, custodies_9, token, _a, custodies_10, custody, _b, _c, market, backUpOracleInstruction, transaction, setCULimitIx, result, index, res;
|
|
2158
2107
|
var _d;
|
|
2159
2108
|
return __generator(this, function (_e) {
|
|
2160
2109
|
switch (_e.label) {
|
|
@@ -2202,6 +2151,8 @@ var PerpetualsClient = (function () {
|
|
|
2202
2151
|
.transaction()];
|
|
2203
2152
|
case 2:
|
|
2204
2153
|
transaction = _e.sent();
|
|
2154
|
+
setCULimitIx = web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({ units: 450000 });
|
|
2155
|
+
transaction.instructions.unshift(setCULimitIx);
|
|
2205
2156
|
(_d = transaction.instructions).unshift.apply(_d, backUpOracleInstruction);
|
|
2206
2157
|
return [4, this.viewHelper.simulateTransaction(transaction)];
|
|
2207
2158
|
case 3:
|
|
@@ -2551,11 +2502,10 @@ var PerpetualsClient = (function () {
|
|
|
2551
2502
|
for (var _i = 8; _i < arguments.length; _i++) {
|
|
2552
2503
|
args_1[_i - 8] = arguments[_i];
|
|
2553
2504
|
}
|
|
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,
|
|
2505
|
+
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
2506
|
var publicKey, targetCustodyConfig, collateralCustodyConfig, collateralToken, marketAccount, userCollateralTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, lamports, unWrappedSolBalance, _a, tokenAccountBalance, _b, positionAccount, params, instruction;
|
|
2556
2507
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
2557
2508
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
2558
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
2559
2509
|
if (skipBalanceChecks === void 0) { skipBalanceChecks = false; }
|
|
2560
2510
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
2561
2511
|
return __generator(this, function (_c) {
|
|
@@ -2648,7 +2598,7 @@ var PerpetualsClient = (function () {
|
|
|
2648
2598
|
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
|
2649
2599
|
fundingMint: collateralCustodyConfig.mintKey
|
|
2650
2600
|
})
|
|
2651
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
2601
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
2652
2602
|
.instruction()];
|
|
2653
2603
|
case 7:
|
|
2654
2604
|
instruction = _c.sent();
|
|
@@ -2666,11 +2616,10 @@ var PerpetualsClient = (function () {
|
|
|
2666
2616
|
for (var _i = 6; _i < arguments.length; _i++) {
|
|
2667
2617
|
args_1[_i - 6] = arguments[_i];
|
|
2668
2618
|
}
|
|
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,
|
|
2619
|
+
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
2620
|
var publicKey, userReceivingTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, lamports, _a, collateralCustodyConfig, targetCustodyConfig, marketAccount, positionAccount, instruction, closeWsolATAIns, error_1;
|
|
2671
2621
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
2672
2622
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
2673
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
2674
2623
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
2675
2624
|
if (closeUsersWSOLATA === void 0) { closeUsersWSOLATA = false; }
|
|
2676
2625
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
@@ -2749,7 +2698,7 @@ var PerpetualsClient = (function () {
|
|
|
2749
2698
|
collateralMint: collateralCustodyConfig.mintKey,
|
|
2750
2699
|
collateralTokenProgram: poolConfig.getTokenFromSymbol(collateralSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID
|
|
2751
2700
|
})
|
|
2752
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
2701
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
2753
2702
|
.instruction()];
|
|
2754
2703
|
case 6:
|
|
2755
2704
|
instruction = _b.sent();
|
|
@@ -2771,16 +2720,15 @@ var PerpetualsClient = (function () {
|
|
|
2771
2720
|
});
|
|
2772
2721
|
});
|
|
2773
2722
|
};
|
|
2774
|
-
this.swapAndOpen = function (targetTokenSymbol_1, collateralTokenSymbol_1, userInputTokenSymbol_1, amountIn_1,
|
|
2723
|
+
this.swapAndOpen = function (targetTokenSymbol_1, collateralTokenSymbol_1, userInputTokenSymbol_1, amountIn_1, priceWithSlippage_1, sizeAmount_1, side_1, poolConfig_1, privilege_1) {
|
|
2775
2724
|
var args_1 = [];
|
|
2776
|
-
for (var _i =
|
|
2777
|
-
args_1[_i -
|
|
2725
|
+
for (var _i = 9; _i < arguments.length; _i++) {
|
|
2726
|
+
args_1[_i - 9] = arguments[_i];
|
|
2778
2727
|
}
|
|
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,
|
|
2728
|
+
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) {
|
|
2729
|
+
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
2730
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
2782
2731
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
2783
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
2784
2732
|
if (skipBalanceChecks === void 0) { skipBalanceChecks = false; }
|
|
2785
2733
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
2786
2734
|
return __generator(this, function (_c) {
|
|
@@ -2874,18 +2822,10 @@ var PerpetualsClient = (function () {
|
|
|
2874
2822
|
}
|
|
2875
2823
|
_c.label = 10;
|
|
2876
2824
|
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]);
|
|
2825
|
+
_c.trys.push([10, 12, , 13]);
|
|
2885
2826
|
return [4, this.program.methods
|
|
2886
2827
|
.swapAndOpen({
|
|
2887
2828
|
amountIn: amountIn,
|
|
2888
|
-
minCollateralAmountOut: minCollateralAmountOut,
|
|
2889
2829
|
priceWithSlippage: priceWithSlippage,
|
|
2890
2830
|
sizeAmount: sizeAmount,
|
|
2891
2831
|
privilege: privilege
|
|
@@ -2916,17 +2856,17 @@ var PerpetualsClient = (function () {
|
|
|
2916
2856
|
collateralMint: collateralCustodyConfig.mintKey,
|
|
2917
2857
|
collateralTokenProgram: poolConfig.getTokenFromSymbol(collateralTokenSymbol).isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID
|
|
2918
2858
|
})
|
|
2919
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
2859
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
2920
2860
|
.instruction()];
|
|
2921
|
-
case
|
|
2861
|
+
case 11:
|
|
2922
2862
|
inx = _c.sent();
|
|
2923
2863
|
instructions.push(inx);
|
|
2924
|
-
return [3,
|
|
2925
|
-
case
|
|
2864
|
+
return [3, 13];
|
|
2865
|
+
case 12:
|
|
2926
2866
|
err_3 = _c.sent();
|
|
2927
2867
|
console.error("perpClient SwapAndOpen error:: ", err_3);
|
|
2928
2868
|
throw err_3;
|
|
2929
|
-
case
|
|
2869
|
+
case 13: return [2, {
|
|
2930
2870
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
2931
2871
|
additionalSigners: additionalSigners
|
|
2932
2872
|
}];
|
|
@@ -2934,16 +2874,15 @@ var PerpetualsClient = (function () {
|
|
|
2934
2874
|
});
|
|
2935
2875
|
});
|
|
2936
2876
|
};
|
|
2937
|
-
this.closeAndSwap = function (targetTokenSymbol_1, userOutputTokenSymbol_1, collateralTokenSymbol_1,
|
|
2877
|
+
this.closeAndSwap = function (targetTokenSymbol_1, userOutputTokenSymbol_1, collateralTokenSymbol_1, priceWithSlippage_1, side_1, poolConfig_1, privilege_1) {
|
|
2938
2878
|
var args_1 = [];
|
|
2939
|
-
for (var _i =
|
|
2940
|
-
args_1[_i -
|
|
2879
|
+
for (var _i = 7; _i < arguments.length; _i++) {
|
|
2880
|
+
args_1[_i - 7] = arguments[_i];
|
|
2941
2881
|
}
|
|
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,
|
|
2882
|
+
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) {
|
|
2883
|
+
var publicKey, userOutputCustodyConfig, collateralCustodyConfig, targetCustodyConfig, marketAccount, positionAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, userReceivingTokenAccount, collateralToken, userOutputToken, lamports, userCollateralTokenAccount, inx, err_4;
|
|
2944
2884
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
2945
2885
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
2946
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
2947
2886
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
2948
2887
|
return __generator(this, function (_a) {
|
|
2949
2888
|
switch (_a.label) {
|
|
@@ -3009,18 +2948,12 @@ var PerpetualsClient = (function () {
|
|
|
3009
2948
|
if (!(_a.sent())) {
|
|
3010
2949
|
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
2950
|
}
|
|
3012
|
-
rebateMintAccount = {
|
|
3013
|
-
pubkey: collateralCustodyConfig.mintKey,
|
|
3014
|
-
isSigner: false,
|
|
3015
|
-
isWritable: false
|
|
3016
|
-
};
|
|
3017
2951
|
_a.label = 5;
|
|
3018
2952
|
case 5:
|
|
3019
2953
|
_a.trys.push([5, 7, , 8]);
|
|
3020
2954
|
return [4, this.program.methods
|
|
3021
2955
|
.closeAndSwap({
|
|
3022
2956
|
priceWithSlippage: priceWithSlippage,
|
|
3023
|
-
minSwapAmountOut: minSwapAmountOut,
|
|
3024
2957
|
privilege: privilege
|
|
3025
2958
|
})
|
|
3026
2959
|
.accounts({
|
|
@@ -3049,7 +2982,7 @@ var PerpetualsClient = (function () {
|
|
|
3049
2982
|
collateralMint: collateralCustodyConfig.mintKey,
|
|
3050
2983
|
collateralTokenProgram: collateralToken.isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID
|
|
3051
2984
|
})
|
|
3052
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
2985
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
3053
2986
|
.instruction()];
|
|
3054
2987
|
case 6:
|
|
3055
2988
|
inx = _a.sent();
|
|
@@ -3170,12 +3103,12 @@ var PerpetualsClient = (function () {
|
|
|
3170
3103
|
});
|
|
3171
3104
|
});
|
|
3172
3105
|
};
|
|
3173
|
-
this.swapAndAddCollateral = function (targetSymbol_1, inputSymbol_1, collateralSymbol_1, amountIn_1,
|
|
3106
|
+
this.swapAndAddCollateral = function (targetSymbol_1, inputSymbol_1, collateralSymbol_1, amountIn_1, side_1, positionPubKey_1, poolConfig_1) {
|
|
3174
3107
|
var args_1 = [];
|
|
3175
|
-
for (var _i =
|
|
3176
|
-
args_1[_i -
|
|
3108
|
+
for (var _i = 7; _i < arguments.length; _i++) {
|
|
3109
|
+
args_1[_i - 7] = arguments[_i];
|
|
3177
3110
|
}
|
|
3178
|
-
return __awaiter(_this, __spreadArray([targetSymbol_1, inputSymbol_1, collateralSymbol_1, amountIn_1,
|
|
3111
|
+
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
3112
|
var publicKey, collateralCustodyConfig, targetCustodyConfig, inputCustodyConfig, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, userInputTokenAccount, lamports, unWrappedSolBalance, _a, tokenAccountBalance, _b, userCollateralTokenAccount, marketAccount, instruction;
|
|
3180
3113
|
if (skipBalanceChecks === void 0) { skipBalanceChecks = false; }
|
|
3181
3114
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
@@ -3254,7 +3187,6 @@ var PerpetualsClient = (function () {
|
|
|
3254
3187
|
marketAccount = poolConfig.getMarketPk(targetCustodyConfig.custodyAccount, collateralCustodyConfig.custodyAccount, side);
|
|
3255
3188
|
return [4, this.program.methods.swapAndAddCollateral({
|
|
3256
3189
|
amountIn: amountIn,
|
|
3257
|
-
minCollateralAmountOut: minCollateralAmountOut,
|
|
3258
3190
|
}).accounts({
|
|
3259
3191
|
owner: publicKey,
|
|
3260
3192
|
feePayer: publicKey,
|
|
@@ -3290,12 +3222,12 @@ var PerpetualsClient = (function () {
|
|
|
3290
3222
|
});
|
|
3291
3223
|
});
|
|
3292
3224
|
};
|
|
3293
|
-
this.removeCollateral = function (
|
|
3225
|
+
this.removeCollateral = function (collateralDeltaUsd_1, marketSymbol_1, collateralSymbol_1, side_1, positionPubKey_1, poolConfig_1) {
|
|
3294
3226
|
var args_1 = [];
|
|
3295
3227
|
for (var _i = 6; _i < arguments.length; _i++) {
|
|
3296
3228
|
args_1[_i - 6] = arguments[_i];
|
|
3297
3229
|
}
|
|
3298
|
-
return __awaiter(_this, __spreadArray([
|
|
3230
|
+
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
3231
|
var publicKey, collateralCustodyConfig, targetCustodyConfig, userReceivingTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, lamports, _a, marketAccount, instruction, closeWsolATAIns, error_2;
|
|
3300
3232
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
3301
3233
|
if (closeUsersWSOLATA === void 0) { closeUsersWSOLATA = false; }
|
|
@@ -3359,7 +3291,7 @@ var PerpetualsClient = (function () {
|
|
|
3359
3291
|
marketAccount = poolConfig.getMarketPk(targetCustodyConfig.custodyAccount, collateralCustodyConfig.custodyAccount, side);
|
|
3360
3292
|
return [4, this.program.methods
|
|
3361
3293
|
.removeCollateral({
|
|
3362
|
-
|
|
3294
|
+
collateralDeltaUsd: collateralDeltaUsd,
|
|
3363
3295
|
})
|
|
3364
3296
|
.accounts({
|
|
3365
3297
|
owner: publicKey,
|
|
@@ -3401,12 +3333,12 @@ var PerpetualsClient = (function () {
|
|
|
3401
3333
|
});
|
|
3402
3334
|
});
|
|
3403
3335
|
};
|
|
3404
|
-
this.removeCollateralAndSwap = function (targetSymbol_1, collateralSymbol_1, outputSymbol_1,
|
|
3336
|
+
this.removeCollateralAndSwap = function (targetSymbol_1, collateralSymbol_1, outputSymbol_1, collateralDeltaUsd_1, side_1, poolConfig_1) {
|
|
3405
3337
|
var args_1 = [];
|
|
3406
|
-
for (var _i =
|
|
3407
|
-
args_1[_i -
|
|
3338
|
+
for (var _i = 6; _i < arguments.length; _i++) {
|
|
3339
|
+
args_1[_i - 6] = arguments[_i];
|
|
3408
3340
|
}
|
|
3409
|
-
return __awaiter(_this, __spreadArray([targetSymbol_1, collateralSymbol_1, outputSymbol_1,
|
|
3341
|
+
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
3342
|
var publicKey, targetCustodyConfig, collateralCustodyConfig, outputCustodyConfig, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, userReceivingTokenAccount, lamports, userCollateralTokenAccount, marketAccount, positionAccount, instruction;
|
|
3411
3343
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
3412
3344
|
return __generator(this, function (_a) {
|
|
@@ -3463,8 +3395,7 @@ var PerpetualsClient = (function () {
|
|
|
3463
3395
|
positionAccount = poolConfig.getPositionFromMarketPk(publicKey, marketAccount);
|
|
3464
3396
|
return [4, this.program.methods
|
|
3465
3397
|
.removeCollateralAndSwap({
|
|
3466
|
-
|
|
3467
|
-
minSwapAmountOut: minSwapAmountOut,
|
|
3398
|
+
collateralDeltaUsd: collateralDeltaUsd,
|
|
3468
3399
|
})
|
|
3469
3400
|
.accounts({
|
|
3470
3401
|
owner: publicKey,
|
|
@@ -3509,11 +3440,10 @@ var PerpetualsClient = (function () {
|
|
|
3509
3440
|
for (var _i = 8; _i < arguments.length; _i++) {
|
|
3510
3441
|
args_1[_i - 8] = arguments[_i];
|
|
3511
3442
|
}
|
|
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
|
|
3443
|
+
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
3444
|
var publicKey, collateralCustodyConfig, targetCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, instruction;
|
|
3514
3445
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
3515
3446
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
3516
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
3517
3447
|
return __generator(this, function (_a) {
|
|
3518
3448
|
switch (_a.label) {
|
|
3519
3449
|
case 0:
|
|
@@ -3556,7 +3486,7 @@ var PerpetualsClient = (function () {
|
|
|
3556
3486
|
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
|
3557
3487
|
collateralMint: collateralCustodyConfig.mintKey
|
|
3558
3488
|
})
|
|
3559
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
3489
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
3560
3490
|
.instruction()];
|
|
3561
3491
|
case 1:
|
|
3562
3492
|
instruction = _a.sent();
|
|
@@ -3574,11 +3504,10 @@ var PerpetualsClient = (function () {
|
|
|
3574
3504
|
for (var _i = 8; _i < arguments.length; _i++) {
|
|
3575
3505
|
args_1[_i - 8] = arguments[_i];
|
|
3576
3506
|
}
|
|
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
|
|
3507
|
+
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
3508
|
var publicKey, collateralCustodyConfig, targetCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, instruction;
|
|
3579
3509
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
3580
3510
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
3581
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
3582
3511
|
return __generator(this, function (_a) {
|
|
3583
3512
|
switch (_a.label) {
|
|
3584
3513
|
case 0:
|
|
@@ -3621,7 +3550,7 @@ var PerpetualsClient = (function () {
|
|
|
3621
3550
|
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
|
3622
3551
|
collateralMint: collateralCustodyConfig.mintKey
|
|
3623
3552
|
})
|
|
3624
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
3553
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
3625
3554
|
.instruction()];
|
|
3626
3555
|
case 1:
|
|
3627
3556
|
instruction = _a.sent();
|
|
@@ -4088,119 +4017,8 @@ var PerpetualsClient = (function () {
|
|
|
4088
4017
|
}
|
|
4089
4018
|
});
|
|
4090
4019
|
}); };
|
|
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
4020
|
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,
|
|
4021
|
+
var preInstructions, instructions, postInstructions, additionalSigners, lpTokenMint, poolStakedLpVault, flpStakeAccount, userLpTokenAccount, depositStakeInstruction, err_8;
|
|
4204
4022
|
return __generator(this, function (_a) {
|
|
4205
4023
|
switch (_a.label) {
|
|
4206
4024
|
case 0:
|
|
@@ -4242,9 +4060,9 @@ var PerpetualsClient = (function () {
|
|
|
4242
4060
|
instructions.push(depositStakeInstruction);
|
|
4243
4061
|
return [3, 5];
|
|
4244
4062
|
case 4:
|
|
4245
|
-
|
|
4246
|
-
console.log("perpClient depositStaking error:: ",
|
|
4247
|
-
throw
|
|
4063
|
+
err_8 = _a.sent();
|
|
4064
|
+
console.log("perpClient depositStaking error:: ", err_8);
|
|
4065
|
+
throw err_8;
|
|
4248
4066
|
case 5: return [2, {
|
|
4249
4067
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
4250
4068
|
additionalSigners: additionalSigners
|
|
@@ -4253,7 +4071,7 @@ var PerpetualsClient = (function () {
|
|
|
4253
4071
|
});
|
|
4254
4072
|
}); };
|
|
4255
4073
|
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,
|
|
4074
|
+
var rewardCustodyMint, rewardCustodyConfig, pool, feeDistributionTokenAccount, custodyAccountMetas, _i, _a, custody, maxFlpStakeAccountPkLength, flpStakeAccountMetas, _b, flpStakeAccountPks_1, flpStakeAccountPk, refreshStakeInstruction, err_9;
|
|
4257
4075
|
return __generator(this, function (_c) {
|
|
4258
4076
|
switch (_c.label) {
|
|
4259
4077
|
case 0:
|
|
@@ -4300,9 +4118,9 @@ var PerpetualsClient = (function () {
|
|
|
4300
4118
|
refreshStakeInstruction = _c.sent();
|
|
4301
4119
|
return [2, refreshStakeInstruction];
|
|
4302
4120
|
case 2:
|
|
4303
|
-
|
|
4304
|
-
console.log("perpClient refreshStaking error:: ",
|
|
4305
|
-
throw
|
|
4121
|
+
err_9 = _c.sent();
|
|
4122
|
+
console.log("perpClient refreshStaking error:: ", err_9);
|
|
4123
|
+
throw err_9;
|
|
4306
4124
|
case 3: return [2];
|
|
4307
4125
|
}
|
|
4308
4126
|
});
|
|
@@ -4313,7 +4131,7 @@ var PerpetualsClient = (function () {
|
|
|
4313
4131
|
args_1[_i - 3] = arguments[_i];
|
|
4314
4132
|
}
|
|
4315
4133
|
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,
|
|
4134
|
+
var publicKey, rewardCustodyMint, rewardCustodyConfig, pool, feeDistributionTokenAccount, custodyAccountMetas, _a, _b, custody, stakeAccountMetas, tokenStakeAccount, refreshStakeInstruction, err_10;
|
|
4317
4135
|
if (userPublicKey === void 0) { userPublicKey = undefined; }
|
|
4318
4136
|
return __generator(this, function (_c) {
|
|
4319
4137
|
switch (_c.label) {
|
|
@@ -4361,9 +4179,9 @@ var PerpetualsClient = (function () {
|
|
|
4361
4179
|
refreshStakeInstruction = _c.sent();
|
|
4362
4180
|
return [2, refreshStakeInstruction];
|
|
4363
4181
|
case 2:
|
|
4364
|
-
|
|
4365
|
-
console.log("perpClient refreshStaking error:: ",
|
|
4366
|
-
throw
|
|
4182
|
+
err_10 = _c.sent();
|
|
4183
|
+
console.log("perpClient refreshStaking error:: ", err_10);
|
|
4184
|
+
throw err_10;
|
|
4367
4185
|
case 3: return [2];
|
|
4368
4186
|
}
|
|
4369
4187
|
});
|
|
@@ -4375,7 +4193,7 @@ var PerpetualsClient = (function () {
|
|
|
4375
4193
|
args_1[_i - 3] = arguments[_i];
|
|
4376
4194
|
}
|
|
4377
4195
|
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,
|
|
4196
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyConfig, pool, flpStakeAccount, tokenStakeAccount, tokenStakeAccounts, _a, unstakeInstantInstruction, err_11;
|
|
4379
4197
|
if (userPublicKey === void 0) { userPublicKey = undefined; }
|
|
4380
4198
|
return __generator(this, function (_b) {
|
|
4381
4199
|
switch (_b.label) {
|
|
@@ -4427,9 +4245,9 @@ var PerpetualsClient = (function () {
|
|
|
4427
4245
|
instructions.push(unstakeInstantInstruction);
|
|
4428
4246
|
return [3, 6];
|
|
4429
4247
|
case 5:
|
|
4430
|
-
|
|
4431
|
-
console.log("perpClient unstakeInstant error:: ",
|
|
4432
|
-
throw
|
|
4248
|
+
err_11 = _b.sent();
|
|
4249
|
+
console.log("perpClient unstakeInstant error:: ", err_11);
|
|
4250
|
+
throw err_11;
|
|
4433
4251
|
case 6: return [2, {
|
|
4434
4252
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
4435
4253
|
additionalSigners: additionalSigners
|
|
@@ -4439,7 +4257,7 @@ var PerpetualsClient = (function () {
|
|
|
4439
4257
|
});
|
|
4440
4258
|
};
|
|
4441
4259
|
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,
|
|
4260
|
+
var publicKey, pool, custodyAccountMetas, _i, _a, custody, maxFlpStakeAccountPkLength, flpStakeAccountMetas, _b, flpStakeAccountPks_2, flpStakeAccountPk, refreshStakeInstruction, err_12;
|
|
4443
4261
|
return __generator(this, function (_c) {
|
|
4444
4262
|
switch (_c.label) {
|
|
4445
4263
|
case 0:
|
|
@@ -4483,15 +4301,15 @@ var PerpetualsClient = (function () {
|
|
|
4483
4301
|
refreshStakeInstruction = _c.sent();
|
|
4484
4302
|
return [2, refreshStakeInstruction];
|
|
4485
4303
|
case 2:
|
|
4486
|
-
|
|
4487
|
-
console.log("perpClient refreshStaking error:: ",
|
|
4488
|
-
throw
|
|
4304
|
+
err_12 = _c.sent();
|
|
4305
|
+
console.log("perpClient refreshStaking error:: ", err_12);
|
|
4306
|
+
throw err_12;
|
|
4489
4307
|
case 3: return [2];
|
|
4490
4308
|
}
|
|
4491
4309
|
});
|
|
4492
4310
|
}); };
|
|
4493
4311
|
this.unstakeRequest = function (unstakeAmount, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
4494
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, pool, flpStakeAccount, unstakeRequestInstruction,
|
|
4312
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, pool, flpStakeAccount, unstakeRequestInstruction, err_13;
|
|
4495
4313
|
return __generator(this, function (_a) {
|
|
4496
4314
|
switch (_a.label) {
|
|
4497
4315
|
case 0:
|
|
@@ -4525,9 +4343,9 @@ var PerpetualsClient = (function () {
|
|
|
4525
4343
|
instructions.push(unstakeRequestInstruction);
|
|
4526
4344
|
return [3, 4];
|
|
4527
4345
|
case 3:
|
|
4528
|
-
|
|
4529
|
-
console.log("perpClient unstakeRequest error:: ",
|
|
4530
|
-
throw
|
|
4346
|
+
err_13 = _a.sent();
|
|
4347
|
+
console.log("perpClient unstakeRequest error:: ", err_13);
|
|
4348
|
+
throw err_13;
|
|
4531
4349
|
case 4: return [2, {
|
|
4532
4350
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
4533
4351
|
additionalSigners: additionalSigners
|
|
@@ -4541,7 +4359,7 @@ var PerpetualsClient = (function () {
|
|
|
4541
4359
|
args_1[_i - 1] = arguments[_i];
|
|
4542
4360
|
}
|
|
4543
4361
|
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,
|
|
4362
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, lpTokenMint, pool, poolStakedLpVault, flpStakeAccount, userLpTokenAccount, _a, withdrawStakeInstruction, err_14;
|
|
4545
4363
|
if (pendingActivation === void 0) { pendingActivation = true; }
|
|
4546
4364
|
if (deactivated === void 0) { deactivated = true; }
|
|
4547
4365
|
if (createUserLPTA === void 0) { createUserLPTA = true; }
|
|
@@ -4597,9 +4415,9 @@ var PerpetualsClient = (function () {
|
|
|
4597
4415
|
instructions.push(withdrawStakeInstruction);
|
|
4598
4416
|
return [3, 6];
|
|
4599
4417
|
case 5:
|
|
4600
|
-
|
|
4601
|
-
console.log("perpClient withdrawStake error:: ",
|
|
4602
|
-
throw
|
|
4418
|
+
err_14 = _b.sent();
|
|
4419
|
+
console.log("perpClient withdrawStake error:: ", err_14);
|
|
4420
|
+
throw err_14;
|
|
4603
4421
|
case 6: return [2, {
|
|
4604
4422
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
4605
4423
|
additionalSigners: additionalSigners
|
|
@@ -4614,7 +4432,7 @@ var PerpetualsClient = (function () {
|
|
|
4614
4432
|
args_1[_i - 3] = arguments[_i];
|
|
4615
4433
|
}
|
|
4616
4434
|
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,
|
|
4435
|
+
var publicKey, rewardCustodyMint, rewardCustodyConfig, preInstructions, instructions, postInstructions, additionalSigners, pool, flpStakeAccount, receivingTokenAccount, _a, tokenStakeAccounts, withdrawStakeInstruction, err_15;
|
|
4618
4436
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
4619
4437
|
return __generator(this, function (_b) {
|
|
4620
4438
|
switch (_b.label) {
|
|
@@ -4675,9 +4493,9 @@ var PerpetualsClient = (function () {
|
|
|
4675
4493
|
instructions.push(withdrawStakeInstruction);
|
|
4676
4494
|
return [3, 6];
|
|
4677
4495
|
case 5:
|
|
4678
|
-
|
|
4679
|
-
console.log("perpClient withdrawStake error:: ",
|
|
4680
|
-
throw
|
|
4496
|
+
err_15 = _b.sent();
|
|
4497
|
+
console.log("perpClient withdrawStake error:: ", err_15);
|
|
4498
|
+
throw err_15;
|
|
4681
4499
|
case 6: return [2, {
|
|
4682
4500
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
4683
4501
|
additionalSigners: additionalSigners
|
|
@@ -4691,11 +4509,13 @@ var PerpetualsClient = (function () {
|
|
|
4691
4509
|
for (var _i = 5; _i < arguments.length; _i++) {
|
|
4692
4510
|
args_1[_i - 5] = arguments[_i];
|
|
4693
4511
|
}
|
|
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,
|
|
4512
|
+
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) {
|
|
4513
|
+
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
4514
|
if (skipBalanceChecks === void 0) { skipBalanceChecks = false; }
|
|
4697
4515
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
4698
4516
|
if (userPublicKey === void 0) { userPublicKey = undefined; }
|
|
4517
|
+
if (enableHeapSizeIx === void 0) { enableHeapSizeIx = true; }
|
|
4518
|
+
if (enableDebugLogs === void 0) { enableDebugLogs = false; }
|
|
4699
4519
|
return __generator(this, function (_f) {
|
|
4700
4520
|
switch (_f.label) {
|
|
4701
4521
|
case 0:
|
|
@@ -4786,6 +4606,15 @@ var PerpetualsClient = (function () {
|
|
|
4786
4606
|
_f.label = 7;
|
|
4787
4607
|
case 7:
|
|
4788
4608
|
_f.trys.push([7, 9, , 10]);
|
|
4609
|
+
if (enableHeapSizeIx) {
|
|
4610
|
+
heapSizeIx = web3_js_1.ComputeBudgetProgram.requestHeapFrame({
|
|
4611
|
+
bytes: 64 * 1024,
|
|
4612
|
+
});
|
|
4613
|
+
if (enableDebugLogs) {
|
|
4614
|
+
console.log("SDK: adding 64 liq Data heapSizeIx for addCompoundingLiquidity");
|
|
4615
|
+
}
|
|
4616
|
+
preInstructions.push(heapSizeIx);
|
|
4617
|
+
}
|
|
4789
4618
|
return [4, this.program.methods
|
|
4790
4619
|
.addCompoundingLiquidity({
|
|
4791
4620
|
amountIn: amountIn,
|
|
@@ -4820,8 +4649,8 @@ var PerpetualsClient = (function () {
|
|
|
4820
4649
|
instructions.push(addCompoundingLiquidity);
|
|
4821
4650
|
return [3, 10];
|
|
4822
4651
|
case 9:
|
|
4823
|
-
|
|
4824
|
-
console.log("perpClient addCompoundingLiquidity error:: ",
|
|
4652
|
+
err_16 = _f.sent();
|
|
4653
|
+
console.log("perpClient addCompoundingLiquidity error:: ", err_16);
|
|
4825
4654
|
return [3, 10];
|
|
4826
4655
|
case 10: return [2, {
|
|
4827
4656
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
@@ -4836,11 +4665,13 @@ var PerpetualsClient = (function () {
|
|
|
4836
4665
|
for (var _i = 5; _i < arguments.length; _i++) {
|
|
4837
4666
|
args_1[_i - 5] = arguments[_i];
|
|
4838
4667
|
}
|
|
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,
|
|
4668
|
+
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) {
|
|
4669
|
+
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
4670
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
4842
4671
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
4843
4672
|
if (userPublicKey === void 0) { userPublicKey = undefined; }
|
|
4673
|
+
if (enableHeapSizeIx === void 0) { enableHeapSizeIx = true; }
|
|
4674
|
+
if (enableDebugLogs === void 0) { enableDebugLogs = false; }
|
|
4844
4675
|
return __generator(this, function (_f) {
|
|
4845
4676
|
switch (_f.label) {
|
|
4846
4677
|
case 0:
|
|
@@ -4915,6 +4746,15 @@ var PerpetualsClient = (function () {
|
|
|
4915
4746
|
_f.label = 5;
|
|
4916
4747
|
case 5:
|
|
4917
4748
|
_f.trys.push([5, 7, , 8]);
|
|
4749
|
+
if (enableHeapSizeIx) {
|
|
4750
|
+
heapSizeIx = web3_js_1.ComputeBudgetProgram.requestHeapFrame({
|
|
4751
|
+
bytes: 64 * 1024,
|
|
4752
|
+
});
|
|
4753
|
+
if (enableDebugLogs) {
|
|
4754
|
+
console.log("SDK: adding 64 liq Data heapSizeIx for addCompoundingLiquidity");
|
|
4755
|
+
}
|
|
4756
|
+
preInstructions.push(heapSizeIx);
|
|
4757
|
+
}
|
|
4918
4758
|
return [4, this.program.methods
|
|
4919
4759
|
.removeCompoundingLiquidity({
|
|
4920
4760
|
compoundingAmountIn: compoundingAmountIn,
|
|
@@ -4949,8 +4789,8 @@ var PerpetualsClient = (function () {
|
|
|
4949
4789
|
instructions.push(removeCompoundingLiquidity);
|
|
4950
4790
|
return [3, 8];
|
|
4951
4791
|
case 7:
|
|
4952
|
-
|
|
4953
|
-
console.log("perpClient removeCompoundingLiquidity error:: ",
|
|
4792
|
+
err_17 = _f.sent();
|
|
4793
|
+
console.log("perpClient removeCompoundingLiquidity error:: ", err_17);
|
|
4954
4794
|
return [3, 8];
|
|
4955
4795
|
case 8: return [2, {
|
|
4956
4796
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
@@ -4966,7 +4806,7 @@ var PerpetualsClient = (function () {
|
|
|
4966
4806
|
args_1[_i - 3] = arguments[_i];
|
|
4967
4807
|
}
|
|
4968
4808
|
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,
|
|
4809
|
+
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
4810
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
4971
4811
|
return __generator(this, function (_g) {
|
|
4972
4812
|
switch (_g.label) {
|
|
@@ -5064,8 +4904,8 @@ var PerpetualsClient = (function () {
|
|
|
5064
4904
|
instructions.push(migrateStake);
|
|
5065
4905
|
return [3, 8];
|
|
5066
4906
|
case 7:
|
|
5067
|
-
|
|
5068
|
-
console.log("perpClient migrateStake error:: ",
|
|
4907
|
+
err_18 = _g.sent();
|
|
4908
|
+
console.log("perpClient migrateStake error:: ", err_18);
|
|
5069
4909
|
return [3, 8];
|
|
5070
4910
|
case 8: return [2, {
|
|
5071
4911
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
@@ -5076,7 +4916,7 @@ var PerpetualsClient = (function () {
|
|
|
5076
4916
|
});
|
|
5077
4917
|
};
|
|
5078
4918
|
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,
|
|
4919
|
+
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
4920
|
return __generator(this, function (_d) {
|
|
5081
4921
|
switch (_d.label) {
|
|
5082
4922
|
case 0:
|
|
@@ -5148,8 +4988,8 @@ var PerpetualsClient = (function () {
|
|
|
5148
4988
|
instructions.push(migrateFlp);
|
|
5149
4989
|
return [3, 4];
|
|
5150
4990
|
case 3:
|
|
5151
|
-
|
|
5152
|
-
console.log("perpClient migrateFlp error:: ",
|
|
4991
|
+
err_19 = _d.sent();
|
|
4992
|
+
console.log("perpClient migrateFlp error:: ", err_19);
|
|
5153
4993
|
return [3, 4];
|
|
5154
4994
|
case 4: return [2, {
|
|
5155
4995
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
@@ -5164,7 +5004,7 @@ var PerpetualsClient = (function () {
|
|
|
5164
5004
|
args_1[_i - 1] = arguments[_i];
|
|
5165
5005
|
}
|
|
5166
5006
|
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,
|
|
5007
|
+
var instructions, additionalSigners, rewardCustody, lpTokenMint, custodyAccountMetas, custodyOracleAccountMetas, markets, _a, _b, custody, _c, _d, market, compoundingFee, err_20;
|
|
5168
5008
|
if (rewardTokenSymbol === void 0) { rewardTokenSymbol = 'USDC'; }
|
|
5169
5009
|
return __generator(this, function (_e) {
|
|
5170
5010
|
switch (_e.label) {
|
|
@@ -5222,8 +5062,8 @@ var PerpetualsClient = (function () {
|
|
|
5222
5062
|
instructions.push(compoundingFee);
|
|
5223
5063
|
return [3, 4];
|
|
5224
5064
|
case 3:
|
|
5225
|
-
|
|
5226
|
-
console.log("perpClient compoundingFee error:: ",
|
|
5065
|
+
err_20 = _e.sent();
|
|
5066
|
+
console.log("perpClient compoundingFee error:: ", err_20);
|
|
5227
5067
|
return [3, 4];
|
|
5228
5068
|
case 4: return [2, {
|
|
5229
5069
|
instructions: __spreadArray([], instructions, true),
|
|
@@ -5233,146 +5073,8 @@ var PerpetualsClient = (function () {
|
|
|
5233
5073
|
});
|
|
5234
5074
|
});
|
|
5235
5075
|
};
|
|
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
5076
|
this.depositTokenStake = function (owner, feePayer, depositAmount, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
5375
|
-
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, userTokenAccount, depositTokenStakeInstruction,
|
|
5077
|
+
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, userTokenAccount, depositTokenStakeInstruction, err_21;
|
|
5376
5078
|
return __generator(this, function (_a) {
|
|
5377
5079
|
switch (_a.label) {
|
|
5378
5080
|
case 0:
|
|
@@ -5414,9 +5116,9 @@ var PerpetualsClient = (function () {
|
|
|
5414
5116
|
instructions.push(depositTokenStakeInstruction);
|
|
5415
5117
|
return [3, 5];
|
|
5416
5118
|
case 4:
|
|
5417
|
-
|
|
5418
|
-
console.log("perpClient depositStakingInstruction error:: ",
|
|
5419
|
-
throw
|
|
5119
|
+
err_21 = _a.sent();
|
|
5120
|
+
console.log("perpClient depositStakingInstruction error:: ", err_21);
|
|
5121
|
+
throw err_21;
|
|
5420
5122
|
case 5: return [2, {
|
|
5421
5123
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5422
5124
|
additionalSigners: additionalSigners
|
|
@@ -5425,7 +5127,7 @@ var PerpetualsClient = (function () {
|
|
|
5425
5127
|
});
|
|
5426
5128
|
}); };
|
|
5427
5129
|
this.unstakeTokenRequest = function (owner, unstakeAmount, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
5428
|
-
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, unstakeTokenRequestInstruction,
|
|
5130
|
+
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, unstakeTokenRequestInstruction, err_22;
|
|
5429
5131
|
return __generator(this, function (_a) {
|
|
5430
5132
|
switch (_a.label) {
|
|
5431
5133
|
case 0:
|
|
@@ -5454,9 +5156,9 @@ var PerpetualsClient = (function () {
|
|
|
5454
5156
|
instructions.push(unstakeTokenRequestInstruction);
|
|
5455
5157
|
return [3, 4];
|
|
5456
5158
|
case 3:
|
|
5457
|
-
|
|
5458
|
-
console.log("perpClient unstakeTokenRequestInstruction error:: ",
|
|
5459
|
-
throw
|
|
5159
|
+
err_22 = _a.sent();
|
|
5160
|
+
console.log("perpClient unstakeTokenRequestInstruction error:: ", err_22);
|
|
5161
|
+
throw err_22;
|
|
5460
5162
|
case 4: return [2, {
|
|
5461
5163
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5462
5164
|
additionalSigners: additionalSigners
|
|
@@ -5465,7 +5167,7 @@ var PerpetualsClient = (function () {
|
|
|
5465
5167
|
});
|
|
5466
5168
|
}); };
|
|
5467
5169
|
this.unstakeTokenInstant = function (owner, unstakeAmount, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
5468
|
-
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, userTokenAccount, unstakeTokenInstantInstruction,
|
|
5170
|
+
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, userTokenAccount, unstakeTokenInstantInstruction, err_23;
|
|
5469
5171
|
return __generator(this, function (_a) {
|
|
5470
5172
|
switch (_a.label) {
|
|
5471
5173
|
case 0:
|
|
@@ -5506,9 +5208,9 @@ var PerpetualsClient = (function () {
|
|
|
5506
5208
|
instructions.push(unstakeTokenInstantInstruction);
|
|
5507
5209
|
return [3, 5];
|
|
5508
5210
|
case 4:
|
|
5509
|
-
|
|
5510
|
-
console.log("perpClient unstakeTokenInstantInstruction error:: ",
|
|
5511
|
-
throw
|
|
5211
|
+
err_23 = _a.sent();
|
|
5212
|
+
console.log("perpClient unstakeTokenInstantInstruction error:: ", err_23);
|
|
5213
|
+
throw err_23;
|
|
5512
5214
|
case 5: return [2, {
|
|
5513
5215
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5514
5216
|
additionalSigners: additionalSigners
|
|
@@ -5517,7 +5219,7 @@ var PerpetualsClient = (function () {
|
|
|
5517
5219
|
});
|
|
5518
5220
|
}); };
|
|
5519
5221
|
this.withdrawToken = function (owner, withdrawRequestId, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
5520
|
-
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, userTokenAccount, withdrawTokenInstruction,
|
|
5222
|
+
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, userTokenAccount, withdrawTokenInstruction, err_24;
|
|
5521
5223
|
return __generator(this, function (_a) {
|
|
5522
5224
|
switch (_a.label) {
|
|
5523
5225
|
case 0:
|
|
@@ -5558,9 +5260,9 @@ var PerpetualsClient = (function () {
|
|
|
5558
5260
|
instructions.push(withdrawTokenInstruction);
|
|
5559
5261
|
return [3, 5];
|
|
5560
5262
|
case 4:
|
|
5561
|
-
|
|
5562
|
-
console.log("perpClient withdrawTokenInstruction error:: ",
|
|
5563
|
-
throw
|
|
5263
|
+
err_24 = _a.sent();
|
|
5264
|
+
console.log("perpClient withdrawTokenInstruction error:: ", err_24);
|
|
5265
|
+
throw err_24;
|
|
5564
5266
|
case 5: return [2, {
|
|
5565
5267
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5566
5268
|
additionalSigners: additionalSigners
|
|
@@ -5569,7 +5271,7 @@ var PerpetualsClient = (function () {
|
|
|
5569
5271
|
});
|
|
5570
5272
|
}); };
|
|
5571
5273
|
this.cancelUnstakeRequest = function (owner, withdrawRequestId, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
5572
|
-
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, cancelUnstakeRequestInstruction,
|
|
5274
|
+
var preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, cancelUnstakeRequestInstruction, err_25;
|
|
5573
5275
|
return __generator(this, function (_a) {
|
|
5574
5276
|
switch (_a.label) {
|
|
5575
5277
|
case 0:
|
|
@@ -5598,9 +5300,9 @@ var PerpetualsClient = (function () {
|
|
|
5598
5300
|
instructions.push(cancelUnstakeRequestInstruction);
|
|
5599
5301
|
return [3, 4];
|
|
5600
5302
|
case 3:
|
|
5601
|
-
|
|
5602
|
-
console.log("perpClient cancelUnstakeRequestInstruction error:: ",
|
|
5603
|
-
throw
|
|
5303
|
+
err_25 = _a.sent();
|
|
5304
|
+
console.log("perpClient cancelUnstakeRequestInstruction error:: ", err_25);
|
|
5305
|
+
throw err_25;
|
|
5604
5306
|
case 4: return [2, {
|
|
5605
5307
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5606
5308
|
additionalSigners: additionalSigners
|
|
@@ -5614,7 +5316,7 @@ var PerpetualsClient = (function () {
|
|
|
5614
5316
|
args_1[_i - 2] = arguments[_i];
|
|
5615
5317
|
}
|
|
5616
5318
|
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,
|
|
5319
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, userTokenAccount, _a, collectTokenRewardInstruction, err_26;
|
|
5618
5320
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
5619
5321
|
return __generator(this, function (_b) {
|
|
5620
5322
|
switch (_b.label) {
|
|
@@ -5660,9 +5362,9 @@ var PerpetualsClient = (function () {
|
|
|
5660
5362
|
instructions.push(collectTokenRewardInstruction);
|
|
5661
5363
|
return [3, 6];
|
|
5662
5364
|
case 5:
|
|
5663
|
-
|
|
5664
|
-
console.log("perpClient collectTokenRewardInstruction error:: ",
|
|
5665
|
-
throw
|
|
5365
|
+
err_26 = _b.sent();
|
|
5366
|
+
console.log("perpClient collectTokenRewardInstruction error:: ", err_26);
|
|
5367
|
+
throw err_26;
|
|
5666
5368
|
case 6: return [2, {
|
|
5667
5369
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5668
5370
|
additionalSigners: additionalSigners
|
|
@@ -5677,7 +5379,7 @@ var PerpetualsClient = (function () {
|
|
|
5677
5379
|
args_1[_i - 3] = arguments[_i];
|
|
5678
5380
|
}
|
|
5679
5381
|
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,
|
|
5382
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyMint, tokenStakeAccount, userTokenAccount, _a, collectRevenueInstruction, err_27;
|
|
5681
5383
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
5682
5384
|
return __generator(this, function (_b) {
|
|
5683
5385
|
switch (_b.label) {
|
|
@@ -5724,9 +5426,9 @@ var PerpetualsClient = (function () {
|
|
|
5724
5426
|
instructions.push(collectRevenueInstruction);
|
|
5725
5427
|
return [3, 6];
|
|
5726
5428
|
case 5:
|
|
5727
|
-
|
|
5728
|
-
console.log("perpClient collectRevenueInstruction error:: ",
|
|
5729
|
-
throw
|
|
5429
|
+
err_27 = _b.sent();
|
|
5430
|
+
console.log("perpClient collectRevenueInstruction error:: ", err_27);
|
|
5431
|
+
throw err_27;
|
|
5730
5432
|
case 6: return [2, {
|
|
5731
5433
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5732
5434
|
additionalSigners: additionalSigners
|
|
@@ -5735,179 +5437,18 @@ var PerpetualsClient = (function () {
|
|
|
5735
5437
|
});
|
|
5736
5438
|
});
|
|
5737
5439
|
};
|
|
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) {
|
|
5440
|
+
this.collectRebate = function (owner_1, rebateSymbol_1, poolConfig_1) {
|
|
5829
5441
|
var args_1 = [];
|
|
5830
5442
|
for (var _i = 3; _i < arguments.length; _i++) {
|
|
5831
5443
|
args_1[_i - 3] = arguments[_i];
|
|
5832
5444
|
}
|
|
5833
|
-
return __awaiter(_this, __spreadArray([
|
|
5834
|
-
var publicKey,
|
|
5445
|
+
return __awaiter(_this, __spreadArray([owner_1, rebateSymbol_1, poolConfig_1], args_1, true), void 0, function (owner, rebateSymbol, poolConfig, createUserATA) {
|
|
5446
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rebateMint, tokenStakeAccount, userTokenAccount, _a, collectRebateInstruction, err_28;
|
|
5835
5447
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
5836
5448
|
return __generator(this, function (_b) {
|
|
5837
5449
|
switch (_b.label) {
|
|
5838
5450
|
case 0:
|
|
5839
5451
|
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
5452
|
preInstructions = [];
|
|
5912
5453
|
instructions = [];
|
|
5913
5454
|
postInstructions = [];
|
|
@@ -5915,59 +5456,43 @@ var PerpetualsClient = (function () {
|
|
|
5915
5456
|
_b.label = 1;
|
|
5916
5457
|
case 1:
|
|
5917
5458
|
_b.trys.push([1, 5, , 6]);
|
|
5918
|
-
|
|
5919
|
-
|
|
5920
|
-
|
|
5459
|
+
rebateMint = poolConfig.getTokenFromSymbol(rebateSymbol).mintKey;
|
|
5460
|
+
tokenStakeAccount = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("token_stake"), owner.toBuffer()], this.programId)[0];
|
|
5461
|
+
userTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(rebateMint, owner, true);
|
|
5921
5462
|
_a = createUserATA;
|
|
5922
5463
|
if (!_a) return [3, 3];
|
|
5923
|
-
return [4, (0, utils_1.checkIfAccountExists)(
|
|
5464
|
+
return [4, (0, utils_1.checkIfAccountExists)(userTokenAccount, this.provider.connection)];
|
|
5924
5465
|
case 2:
|
|
5925
5466
|
_a = !(_b.sent());
|
|
5926
5467
|
_b.label = 3;
|
|
5927
5468
|
case 3:
|
|
5928
5469
|
if (_a) {
|
|
5929
|
-
|
|
5930
|
-
}
|
|
5931
|
-
tradingAccount = [];
|
|
5932
|
-
if (nftTradingAccount) {
|
|
5933
|
-
tradingAccount.push({
|
|
5934
|
-
pubkey: nftTradingAccount,
|
|
5935
|
-
isSigner: false,
|
|
5936
|
-
isWritable: true,
|
|
5937
|
-
});
|
|
5470
|
+
instructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, userTokenAccount, publicKey, rebateMint));
|
|
5938
5471
|
}
|
|
5939
|
-
|
|
5940
|
-
|
|
5941
|
-
return [4, this.programPerpComposability.methods
|
|
5942
|
-
.collectAndDistributeFee()
|
|
5472
|
+
return [4, this.program.methods
|
|
5473
|
+
.collectRebate()
|
|
5943
5474
|
.accounts({
|
|
5944
|
-
|
|
5945
|
-
|
|
5946
|
-
receivingTokenAccount: receivingTokenAccount,
|
|
5947
|
-
transferAuthority: poolConfig.transferAuthority,
|
|
5475
|
+
owner: owner,
|
|
5476
|
+
receivingTokenAccount: userTokenAccount,
|
|
5948
5477
|
perpetuals: this.perpetuals.publicKey,
|
|
5949
|
-
|
|
5950
|
-
|
|
5951
|
-
|
|
5952
|
-
|
|
5953
|
-
systemProgram: web3_js_1.SystemProgram.programId,
|
|
5478
|
+
transferAuthority: poolConfig.transferAuthority,
|
|
5479
|
+
rebateVault: poolConfig.rebateVault,
|
|
5480
|
+
rebateTokenAccount: poolConfig.rebateTokenAccount,
|
|
5481
|
+
tokenStakeAccount: tokenStakeAccount,
|
|
5954
5482
|
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
5955
5483
|
eventAuthority: this.eventAuthority.publicKey,
|
|
5956
|
-
|
|
5957
|
-
|
|
5958
|
-
rewardVault: rewardVault,
|
|
5959
|
-
rewardTokenAccount: rewardTokenAccount
|
|
5484
|
+
program: this.programId,
|
|
5485
|
+
receivingTokenMint: rebateMint,
|
|
5960
5486
|
})
|
|
5961
|
-
.remainingAccounts(tradingAccount)
|
|
5962
5487
|
.instruction()];
|
|
5963
5488
|
case 4:
|
|
5964
|
-
|
|
5965
|
-
instructions.push(
|
|
5489
|
+
collectRebateInstruction = _b.sent();
|
|
5490
|
+
instructions.push(collectRebateInstruction);
|
|
5966
5491
|
return [3, 6];
|
|
5967
5492
|
case 5:
|
|
5968
|
-
|
|
5969
|
-
console.log("perpClient
|
|
5970
|
-
throw
|
|
5493
|
+
err_28 = _b.sent();
|
|
5494
|
+
console.log("perpClient collectRebateInstruction error:: ", err_28);
|
|
5495
|
+
throw err_28;
|
|
5971
5496
|
case 6: return [2, {
|
|
5972
5497
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5973
5498
|
additionalSigners: additionalSigners
|
|
@@ -5976,13 +5501,60 @@ var PerpetualsClient = (function () {
|
|
|
5976
5501
|
});
|
|
5977
5502
|
});
|
|
5978
5503
|
};
|
|
5504
|
+
this.settleRebates = function (rebateSymbol, rewardSymbol, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
5505
|
+
var preInstructions, instructions, postInstructions, additionalSigners, rewardCustody, rebateMint, settleRebatesInstruction, err_29;
|
|
5506
|
+
return __generator(this, function (_a) {
|
|
5507
|
+
switch (_a.label) {
|
|
5508
|
+
case 0:
|
|
5509
|
+
preInstructions = [];
|
|
5510
|
+
instructions = [];
|
|
5511
|
+
postInstructions = [];
|
|
5512
|
+
additionalSigners = [];
|
|
5513
|
+
_a.label = 1;
|
|
5514
|
+
case 1:
|
|
5515
|
+
_a.trys.push([1, 3, , 4]);
|
|
5516
|
+
rewardCustody = poolConfig.custodies.find(function (i) { return i.mintKey.equals(poolConfig.getTokenFromSymbol(rewardSymbol).mintKey); });
|
|
5517
|
+
rebateMint = poolConfig.getTokenFromSymbol(rebateSymbol).mintKey;
|
|
5518
|
+
return [4, this.program.methods
|
|
5519
|
+
.settleRebates()
|
|
5520
|
+
.accounts({
|
|
5521
|
+
transferAuthority: poolConfig.transferAuthority,
|
|
5522
|
+
perpetuals: this.perpetuals.publicKey,
|
|
5523
|
+
pool: poolConfig.poolAddress,
|
|
5524
|
+
rewardCustody: rewardCustody.custodyAccount,
|
|
5525
|
+
rewardCustodyOracleAccount: this.useExtOracleAccount ? rewardCustody.extOracleAccount : rewardCustody.intOracleAccount,
|
|
5526
|
+
rewardCustodyTokenAccount: rewardCustody.tokenAccount,
|
|
5527
|
+
rebateVault: poolConfig.rebateVault,
|
|
5528
|
+
rebateTokenAccount: poolConfig.rebateTokenAccount,
|
|
5529
|
+
tokenMint: rebateMint,
|
|
5530
|
+
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
5531
|
+
eventAuthority: this.eventAuthority.publicKey,
|
|
5532
|
+
program: this.programId,
|
|
5533
|
+
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY
|
|
5534
|
+
})
|
|
5535
|
+
.instruction()];
|
|
5536
|
+
case 2:
|
|
5537
|
+
settleRebatesInstruction = _a.sent();
|
|
5538
|
+
instructions.push(settleRebatesInstruction);
|
|
5539
|
+
return [3, 4];
|
|
5540
|
+
case 3:
|
|
5541
|
+
err_29 = _a.sent();
|
|
5542
|
+
console.log("perpClient settleRebatesInstruction error:: ", err_29);
|
|
5543
|
+
throw err_29;
|
|
5544
|
+
case 4: return [2, {
|
|
5545
|
+
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
5546
|
+
additionalSigners: additionalSigners
|
|
5547
|
+
}];
|
|
5548
|
+
}
|
|
5549
|
+
});
|
|
5550
|
+
}); };
|
|
5979
5551
|
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
5552
|
var args_1 = [];
|
|
5981
5553
|
for (var _i = 11; _i < arguments.length; _i++) {
|
|
5982
5554
|
args_1[_i - 11] = arguments[_i];
|
|
5983
5555
|
}
|
|
5984
5556
|
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,
|
|
5557
|
+
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
5558
|
if (skipBalanceChecks === void 0) { skipBalanceChecks = false; }
|
|
5987
5559
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
5988
5560
|
return __generator(this, function (_c) {
|
|
@@ -6088,9 +5660,9 @@ var PerpetualsClient = (function () {
|
|
|
6088
5660
|
instructions.push(placeLimitOrder);
|
|
6089
5661
|
return [3, 10];
|
|
6090
5662
|
case 9:
|
|
6091
|
-
|
|
6092
|
-
console.log("perpClient placeLimitOrder error:: ",
|
|
6093
|
-
throw
|
|
5663
|
+
err_30 = _c.sent();
|
|
5664
|
+
console.log("perpClient placeLimitOrder error:: ", err_30);
|
|
5665
|
+
throw err_30;
|
|
6094
5666
|
case 10: return [2, {
|
|
6095
5667
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6096
5668
|
additionalSigners: additionalSigners
|
|
@@ -6105,7 +5677,7 @@ var PerpetualsClient = (function () {
|
|
|
6105
5677
|
args_1[_i - 11] = arguments[_i];
|
|
6106
5678
|
}
|
|
6107
5679
|
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,
|
|
5680
|
+
var publicKey, targetCustodyConfig, reserveCustodyConfig, collateralCustodyConfig, receiveCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, wrappedSolAccount, userReceivingTokenAccount, lamports, _a, positionAccount, orderAccount, editLimitOrder, err_31;
|
|
6109
5681
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
6110
5682
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
6111
5683
|
return __generator(this, function (_b) {
|
|
@@ -6196,9 +5768,9 @@ var PerpetualsClient = (function () {
|
|
|
6196
5768
|
instructions.push(editLimitOrder);
|
|
6197
5769
|
return [3, 8];
|
|
6198
5770
|
case 7:
|
|
6199
|
-
|
|
6200
|
-
console.log("perpClient editLimitOrder error:: ",
|
|
6201
|
-
throw
|
|
5771
|
+
err_31 = _b.sent();
|
|
5772
|
+
console.log("perpClient editLimitOrder error:: ", err_31);
|
|
5773
|
+
throw err_31;
|
|
6202
5774
|
case 8: return [2, {
|
|
6203
5775
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6204
5776
|
additionalSigners: additionalSigners
|
|
@@ -6212,11 +5784,10 @@ var PerpetualsClient = (function () {
|
|
|
6212
5784
|
for (var _i = 7; _i < arguments.length; _i++) {
|
|
6213
5785
|
args_1[_i - 7] = arguments[_i];
|
|
6214
5786
|
}
|
|
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,
|
|
5787
|
+
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) {
|
|
5788
|
+
var publicKey, targetCustodyConfig, collateralCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, positionAccount, orderAccount, executeLimitOrder, err_32;
|
|
6217
5789
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
6218
5790
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
6219
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
6220
5791
|
return __generator(this, function (_a) {
|
|
6221
5792
|
switch (_a.label) {
|
|
6222
5793
|
case 0:
|
|
@@ -6259,16 +5830,16 @@ var PerpetualsClient = (function () {
|
|
|
6259
5830
|
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
|
6260
5831
|
collateralMint: collateralCustodyConfig.mintKey,
|
|
6261
5832
|
})
|
|
6262
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
5833
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
6263
5834
|
.instruction()];
|
|
6264
5835
|
case 2:
|
|
6265
5836
|
executeLimitOrder = _a.sent();
|
|
6266
5837
|
instructions.push(executeLimitOrder);
|
|
6267
5838
|
return [3, 4];
|
|
6268
5839
|
case 3:
|
|
6269
|
-
|
|
6270
|
-
console.log("perpClient executeLimitOrder error:: ",
|
|
6271
|
-
throw
|
|
5840
|
+
err_32 = _a.sent();
|
|
5841
|
+
console.log("perpClient executeLimitOrder error:: ", err_32);
|
|
5842
|
+
throw err_32;
|
|
6272
5843
|
case 4: return [2, {
|
|
6273
5844
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6274
5845
|
additionalSigners: additionalSigners
|
|
@@ -6282,11 +5853,10 @@ var PerpetualsClient = (function () {
|
|
|
6282
5853
|
for (var _i = 8; _i < arguments.length; _i++) {
|
|
6283
5854
|
args_1[_i - 8] = arguments[_i];
|
|
6284
5855
|
}
|
|
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,
|
|
5856
|
+
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) {
|
|
5857
|
+
var publicKey, targetCustodyConfig, collateralCustodyConfig, reserveCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, positionAccount, orderAccount, executeLimitWithSwap, err_33;
|
|
6287
5858
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
6288
5859
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
6289
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
6290
5860
|
return __generator(this, function (_a) {
|
|
6291
5861
|
switch (_a.label) {
|
|
6292
5862
|
case 0:
|
|
@@ -6332,16 +5902,16 @@ var PerpetualsClient = (function () {
|
|
|
6332
5902
|
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
|
6333
5903
|
collateralMint: collateralCustodyConfig.mintKey,
|
|
6334
5904
|
})
|
|
6335
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
5905
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
6336
5906
|
.instruction()];
|
|
6337
5907
|
case 2:
|
|
6338
5908
|
executeLimitWithSwap = _a.sent();
|
|
6339
5909
|
instructions.push(executeLimitWithSwap);
|
|
6340
5910
|
return [3, 4];
|
|
6341
5911
|
case 3:
|
|
6342
|
-
|
|
6343
|
-
console.log("perpClient executeLimitWithSwap error:: ",
|
|
6344
|
-
throw
|
|
5912
|
+
err_33 = _a.sent();
|
|
5913
|
+
console.log("perpClient executeLimitWithSwap error:: ", err_33);
|
|
5914
|
+
throw err_33;
|
|
6345
5915
|
case 4: return [2, {
|
|
6346
5916
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6347
5917
|
additionalSigners: additionalSigners
|
|
@@ -6351,7 +5921,7 @@ var PerpetualsClient = (function () {
|
|
|
6351
5921
|
});
|
|
6352
5922
|
};
|
|
6353
5923
|
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,
|
|
5924
|
+
var publicKey, targetCustodyConfig, collateralCustodyConfig, receivingCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, positionAccount, orderAccount, placeTriggerOrder, err_34;
|
|
6355
5925
|
return __generator(this, function (_a) {
|
|
6356
5926
|
switch (_a.label) {
|
|
6357
5927
|
case 0:
|
|
@@ -6399,9 +5969,9 @@ var PerpetualsClient = (function () {
|
|
|
6399
5969
|
instructions.push(placeTriggerOrder);
|
|
6400
5970
|
return [3, 4];
|
|
6401
5971
|
case 3:
|
|
6402
|
-
|
|
6403
|
-
console.log("perpClient placeTriggerOrder error:: ",
|
|
6404
|
-
throw
|
|
5972
|
+
err_34 = _a.sent();
|
|
5973
|
+
console.log("perpClient placeTriggerOrder error:: ", err_34);
|
|
5974
|
+
throw err_34;
|
|
6405
5975
|
case 4: return [2, {
|
|
6406
5976
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6407
5977
|
additionalSigners: additionalSigners
|
|
@@ -6410,7 +5980,7 @@ var PerpetualsClient = (function () {
|
|
|
6410
5980
|
});
|
|
6411
5981
|
}); };
|
|
6412
5982
|
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,
|
|
5983
|
+
var publicKey, targetCustodyConfig, collateralCustodyConfig, receivingCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, positionAccount, orderAccount, editTriggerOrder, err_35;
|
|
6414
5984
|
return __generator(this, function (_a) {
|
|
6415
5985
|
switch (_a.label) {
|
|
6416
5986
|
case 0:
|
|
@@ -6457,9 +6027,9 @@ var PerpetualsClient = (function () {
|
|
|
6457
6027
|
instructions.push(editTriggerOrder);
|
|
6458
6028
|
return [3, 4];
|
|
6459
6029
|
case 3:
|
|
6460
|
-
|
|
6461
|
-
console.log("perpClient editTriggerOrder error:: ",
|
|
6462
|
-
throw
|
|
6030
|
+
err_35 = _a.sent();
|
|
6031
|
+
console.log("perpClient editTriggerOrder error:: ", err_35);
|
|
6032
|
+
throw err_35;
|
|
6463
6033
|
case 4: return [2, {
|
|
6464
6034
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6465
6035
|
additionalSigners: additionalSigners
|
|
@@ -6468,7 +6038,7 @@ var PerpetualsClient = (function () {
|
|
|
6468
6038
|
});
|
|
6469
6039
|
}); };
|
|
6470
6040
|
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,
|
|
6041
|
+
var publicKey, targetCustodyConfig, collateralCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, orderAccount, cancelTriggerOrder, err_36;
|
|
6472
6042
|
return __generator(this, function (_a) {
|
|
6473
6043
|
switch (_a.label) {
|
|
6474
6044
|
case 0:
|
|
@@ -6501,9 +6071,9 @@ var PerpetualsClient = (function () {
|
|
|
6501
6071
|
instructions.push(cancelTriggerOrder);
|
|
6502
6072
|
return [3, 4];
|
|
6503
6073
|
case 3:
|
|
6504
|
-
|
|
6505
|
-
console.log("perpClient cancelTriggerOrder error:: ",
|
|
6506
|
-
throw
|
|
6074
|
+
err_36 = _a.sent();
|
|
6075
|
+
console.log("perpClient cancelTriggerOrder error:: ", err_36);
|
|
6076
|
+
throw err_36;
|
|
6507
6077
|
case 4: return [2, {
|
|
6508
6078
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6509
6079
|
additionalSigners: additionalSigners
|
|
@@ -6512,7 +6082,7 @@ var PerpetualsClient = (function () {
|
|
|
6512
6082
|
});
|
|
6513
6083
|
}); };
|
|
6514
6084
|
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,
|
|
6085
|
+
var publicKey, targetCustodyConfig, collateralCustodyConfig, marketAccount, preInstructions, instructions, postInstructions, additionalSigners, orderAccount, positionAccount, cancelAllTriggerOrders, err_37;
|
|
6516
6086
|
return __generator(this, function (_a) {
|
|
6517
6087
|
switch (_a.label) {
|
|
6518
6088
|
case 0:
|
|
@@ -6543,9 +6113,9 @@ var PerpetualsClient = (function () {
|
|
|
6543
6113
|
instructions.push(cancelAllTriggerOrders);
|
|
6544
6114
|
return [3, 4];
|
|
6545
6115
|
case 3:
|
|
6546
|
-
|
|
6547
|
-
console.log("perpClient cancelAllTriggerOrders error:: ",
|
|
6548
|
-
throw
|
|
6116
|
+
err_37 = _a.sent();
|
|
6117
|
+
console.log("perpClient cancelAllTriggerOrders error:: ", err_37);
|
|
6118
|
+
throw err_37;
|
|
6549
6119
|
case 4: return [2, {
|
|
6550
6120
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6551
6121
|
additionalSigners: additionalSigners
|
|
@@ -6558,13 +6128,12 @@ var PerpetualsClient = (function () {
|
|
|
6558
6128
|
for (var _i = 9; _i < arguments.length; _i++) {
|
|
6559
6129
|
args_1[_i - 9] = arguments[_i];
|
|
6560
6130
|
}
|
|
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,
|
|
6131
|
+
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) {
|
|
6132
|
+
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
6133
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
6564
6134
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
6565
6135
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
6566
6136
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
6567
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
6568
6137
|
return __generator(this, function (_e) {
|
|
6569
6138
|
switch (_e.label) {
|
|
6570
6139
|
case 0:
|
|
@@ -6659,16 +6228,16 @@ var PerpetualsClient = (function () {
|
|
|
6659
6228
|
collateralMint: collateralCustodyConfig.mintKey,
|
|
6660
6229
|
collateralTokenProgram: collateralToken.isToken2022 ? spl_token_1.TOKEN_2022_PROGRAM_ID : spl_token_1.TOKEN_PROGRAM_ID
|
|
6661
6230
|
})
|
|
6662
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
6231
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
6663
6232
|
.instruction()];
|
|
6664
6233
|
case 8:
|
|
6665
6234
|
executeTriggerWithSwap = _e.sent();
|
|
6666
6235
|
instructions.push(executeTriggerWithSwap);
|
|
6667
6236
|
return [3, 10];
|
|
6668
6237
|
case 9:
|
|
6669
|
-
|
|
6670
|
-
console.log("perpClient executeTriggerWithSwap error:: ",
|
|
6671
|
-
throw
|
|
6238
|
+
err_38 = _e.sent();
|
|
6239
|
+
console.log("perpClient executeTriggerWithSwap error:: ", err_38);
|
|
6240
|
+
throw err_38;
|
|
6672
6241
|
case 10: return [2, {
|
|
6673
6242
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6674
6243
|
additionalSigners: additionalSigners
|
|
@@ -6682,13 +6251,12 @@ var PerpetualsClient = (function () {
|
|
|
6682
6251
|
for (var _i = 8; _i < arguments.length; _i++) {
|
|
6683
6252
|
args_1[_i - 8] = arguments[_i];
|
|
6684
6253
|
}
|
|
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,
|
|
6254
|
+
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) {
|
|
6255
|
+
var payerPubkey, targetCustodyConfig, collateralCustodyConfig, marketAccount, userReceivingTokenAccount, wrappedSolAccount, preInstructions, instructions, postInstructions, additionalSigners, _a, positionAccount, orderAccount, executeTriggerOrder, err_39;
|
|
6687
6256
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
6688
6257
|
if (ephemeralSignerPubkey === void 0) { ephemeralSignerPubkey = undefined; }
|
|
6689
6258
|
if (tokenStakeAccount === void 0) { tokenStakeAccount = web3_js_1.PublicKey.default; }
|
|
6690
6259
|
if (userReferralAccount === void 0) { userReferralAccount = web3_js_1.PublicKey.default; }
|
|
6691
|
-
if (rebateTokenAccount === void 0) { rebateTokenAccount = web3_js_1.PublicKey.default; }
|
|
6692
6260
|
return __generator(this, function (_b) {
|
|
6693
6261
|
switch (_b.label) {
|
|
6694
6262
|
case 0:
|
|
@@ -6748,16 +6316,16 @@ var PerpetualsClient = (function () {
|
|
|
6748
6316
|
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
|
6749
6317
|
receivingMint: collateralCustodyConfig.mintKey
|
|
6750
6318
|
})
|
|
6751
|
-
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount,
|
|
6319
|
+
.remainingAccounts(__spreadArray([], (0, getReferralAccounts_1.getReferralAccounts)(tokenStakeAccount, userReferralAccount, privilege), true))
|
|
6752
6320
|
.instruction()];
|
|
6753
6321
|
case 6:
|
|
6754
6322
|
executeTriggerOrder = _b.sent();
|
|
6755
6323
|
instructions.push(executeTriggerOrder);
|
|
6756
6324
|
return [3, 8];
|
|
6757
6325
|
case 7:
|
|
6758
|
-
|
|
6759
|
-
console.log("perpClient executeTriggerOrder error:: ",
|
|
6760
|
-
throw
|
|
6326
|
+
err_39 = _b.sent();
|
|
6327
|
+
console.log("perpClient executeTriggerOrder error:: ", err_39);
|
|
6328
|
+
throw err_39;
|
|
6761
6329
|
case 8: return [2, {
|
|
6762
6330
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6763
6331
|
additionalSigners: additionalSigners
|
|
@@ -6772,7 +6340,7 @@ var PerpetualsClient = (function () {
|
|
|
6772
6340
|
args_1[_i - 5] = arguments[_i];
|
|
6773
6341
|
}
|
|
6774
6342
|
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,
|
|
6343
|
+
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
6344
|
if (useFeesPool === void 0) { useFeesPool = false; }
|
|
6777
6345
|
if (createUserATA === void 0) { createUserATA = true; }
|
|
6778
6346
|
if (unWrapSol === void 0) { unWrapSol = false; }
|
|
@@ -6977,9 +6545,9 @@ var PerpetualsClient = (function () {
|
|
|
6977
6545
|
}
|
|
6978
6546
|
return [3, 20];
|
|
6979
6547
|
case 19:
|
|
6980
|
-
|
|
6981
|
-
console.error("perpClient Swap error:: ",
|
|
6982
|
-
throw
|
|
6548
|
+
err_40 = _g.sent();
|
|
6549
|
+
console.error("perpClient Swap error:: ", err_40);
|
|
6550
|
+
throw err_40;
|
|
6983
6551
|
case 20: return [2, {
|
|
6984
6552
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
6985
6553
|
additionalSigners: additionalSigners
|
|
@@ -6989,7 +6557,7 @@ var PerpetualsClient = (function () {
|
|
|
6989
6557
|
});
|
|
6990
6558
|
};
|
|
6991
6559
|
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,
|
|
6560
|
+
var rewardCustody, custody, publicKey, preInstructions, instructions, postInstructions, additionalSigners, custodyAccountMetas, custodyOracleAccountMetas, _i, _a, custody_1, params, inx, err_41;
|
|
6993
6561
|
return __generator(this, function (_b) {
|
|
6994
6562
|
switch (_b.label) {
|
|
6995
6563
|
case 0:
|
|
@@ -7034,11 +6602,7 @@ var PerpetualsClient = (function () {
|
|
|
7034
6602
|
rewardCustody: rewardCustody.custodyAccount,
|
|
7035
6603
|
rewardCustodyOracleAccount: this.useExtOracleAccount ? rewardCustody.extOracleAccount : rewardCustody.intOracleAccount,
|
|
7036
6604
|
rewardCustodyTokenAccount: rewardCustody.tokenAccount,
|
|
7037
|
-
custody: custody.custodyAccount,
|
|
7038
|
-
custodyOracleAccount: this.useExtOracleAccount ? custody.extOracleAccount : custody.intOracleAccount,
|
|
7039
|
-
custodyTokenAccount: custody.tokenAccount,
|
|
7040
6605
|
eventAuthority: this.eventAuthority.publicKey,
|
|
7041
|
-
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
7042
6606
|
program: this.programId,
|
|
7043
6607
|
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY
|
|
7044
6608
|
})
|
|
@@ -7049,9 +6613,9 @@ var PerpetualsClient = (function () {
|
|
|
7049
6613
|
instructions.push(inx);
|
|
7050
6614
|
return [3, 4];
|
|
7051
6615
|
case 3:
|
|
7052
|
-
|
|
7053
|
-
console.error("perpClient Swap error:: ",
|
|
7054
|
-
throw
|
|
6616
|
+
err_41 = _b.sent();
|
|
6617
|
+
console.error("perpClient Swap error:: ", err_41);
|
|
6618
|
+
throw err_41;
|
|
7055
6619
|
case 4: return [2, {
|
|
7056
6620
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
7057
6621
|
additionalSigners: additionalSigners
|
|
@@ -7060,7 +6624,7 @@ var PerpetualsClient = (function () {
|
|
|
7060
6624
|
});
|
|
7061
6625
|
}); };
|
|
7062
6626
|
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,
|
|
6627
|
+
var instructions, additionalSigners, custodyAccountMetas, custodyOracleAccountMetas, markets, _i, _a, custody, _b, _c, market, setLpTokenPriceInstruction, err_42;
|
|
7064
6628
|
return __generator(this, function (_d) {
|
|
7065
6629
|
switch (_d.label) {
|
|
7066
6630
|
case 0:
|
|
@@ -7108,9 +6672,9 @@ var PerpetualsClient = (function () {
|
|
|
7108
6672
|
instructions.push(setLpTokenPriceInstruction);
|
|
7109
6673
|
return [3, 4];
|
|
7110
6674
|
case 3:
|
|
7111
|
-
|
|
7112
|
-
console.log("perpClient setLpTokenPriceInstruction error:: ",
|
|
7113
|
-
throw
|
|
6675
|
+
err_42 = _d.sent();
|
|
6676
|
+
console.log("perpClient setLpTokenPriceInstruction error:: ", err_42);
|
|
6677
|
+
throw err_42;
|
|
7114
6678
|
case 4: return [2, {
|
|
7115
6679
|
instructions: __spreadArray([], instructions, true),
|
|
7116
6680
|
additionalSigners: additionalSigners
|
|
@@ -7158,7 +6722,7 @@ var PerpetualsClient = (function () {
|
|
|
7158
6722
|
});
|
|
7159
6723
|
}); };
|
|
7160
6724
|
this.setAdminSigners = function (admins, minSignatures) { return __awaiter(_this, void 0, void 0, function () {
|
|
7161
|
-
var adminMetas, _i, admins_2, admin,
|
|
6725
|
+
var adminMetas, _i, admins_2, admin, err_43;
|
|
7162
6726
|
return __generator(this, function (_a) {
|
|
7163
6727
|
switch (_a.label) {
|
|
7164
6728
|
case 0:
|
|
@@ -7188,16 +6752,16 @@ var PerpetualsClient = (function () {
|
|
|
7188
6752
|
_a.sent();
|
|
7189
6753
|
return [3, 4];
|
|
7190
6754
|
case 3:
|
|
7191
|
-
|
|
6755
|
+
err_43 = _a.sent();
|
|
7192
6756
|
if (this.printErrors) {
|
|
7193
|
-
console.error("setAdminSigners err:",
|
|
6757
|
+
console.error("setAdminSigners err:", err_43);
|
|
7194
6758
|
}
|
|
7195
|
-
throw
|
|
6759
|
+
throw err_43;
|
|
7196
6760
|
case 4: return [2];
|
|
7197
6761
|
}
|
|
7198
6762
|
});
|
|
7199
6763
|
}); };
|
|
7200
|
-
this.addPool = function (name, maxAumUsd, permissions, metadataSymbol, metadataTitle, metadataUri, stakingFeeShareBps, vpVolumeFactor) { return __awaiter(_this, void 0, void 0, function () {
|
|
6764
|
+
this.addPool = function (name, maxAumUsd, permissions, metadataSymbol, metadataTitle, metadataUri, stakingFeeShareBps, vpVolumeFactor, stakingFeeBoostBps, minLpPriceUsd, maxLpPriceUsd, thresholdUsd) { return __awaiter(_this, void 0, void 0, function () {
|
|
7201
6765
|
return __generator(this, function (_a) {
|
|
7202
6766
|
switch (_a.label) {
|
|
7203
6767
|
case 0: return [4, this.program.methods
|
|
@@ -7209,7 +6773,11 @@ var PerpetualsClient = (function () {
|
|
|
7209
6773
|
metadataTitle: metadataTitle,
|
|
7210
6774
|
metadataUri: metadataUri,
|
|
7211
6775
|
stakingFeeShareBps: stakingFeeShareBps,
|
|
7212
|
-
vpVolumeFactor: vpVolumeFactor
|
|
6776
|
+
vpVolumeFactor: vpVolumeFactor,
|
|
6777
|
+
stakingFeeBoostBps: stakingFeeBoostBps,
|
|
6778
|
+
minLpPriceUsd: minLpPriceUsd,
|
|
6779
|
+
maxLpPriceUsd: maxLpPriceUsd,
|
|
6780
|
+
thresholdUsd: thresholdUsd
|
|
7213
6781
|
})
|
|
7214
6782
|
.accounts({
|
|
7215
6783
|
admin: this.provider.wallet.publicKey,
|
|
@@ -7257,7 +6825,7 @@ var PerpetualsClient = (function () {
|
|
|
7257
6825
|
}
|
|
7258
6826
|
});
|
|
7259
6827
|
}); };
|
|
7260
|
-
this.addCustody = function (poolName, tokenMint, isToken222, isStable, isVirtual, oracle, pricing, permissions, fees, borrowRate, ratios, depegAdjustment) { return __awaiter(_this, void 0, void 0, function () {
|
|
6828
|
+
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
6829
|
var trx_id, error_3;
|
|
7262
6830
|
return __generator(this, function (_a) {
|
|
7263
6831
|
switch (_a.label) {
|
|
@@ -7275,6 +6843,9 @@ var PerpetualsClient = (function () {
|
|
|
7275
6843
|
fees: fees,
|
|
7276
6844
|
borrowRate: borrowRate,
|
|
7277
6845
|
ratios: ratios,
|
|
6846
|
+
rewardThreshold: rewardThreshold,
|
|
6847
|
+
minReserveUsd: minReserveUsd,
|
|
6848
|
+
limitPriceBufferBps: limitPriceBufferBps
|
|
7278
6849
|
})
|
|
7279
6850
|
.accounts({
|
|
7280
6851
|
admin: this.admin,
|
|
@@ -7381,7 +6952,7 @@ var PerpetualsClient = (function () {
|
|
|
7381
6952
|
});
|
|
7382
6953
|
}); };
|
|
7383
6954
|
this.protocolWithdrawFees = function (rewardSymbol, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7384
|
-
var publicKey, custodyConfig, receivingTokenAccount, instructions, additionalSigners, withdrawFeesIx,
|
|
6955
|
+
var publicKey, custodyConfig, receivingTokenAccount, instructions, additionalSigners, withdrawFeesIx, err_44;
|
|
7385
6956
|
return __generator(this, function (_a) {
|
|
7386
6957
|
switch (_a.label) {
|
|
7387
6958
|
case 0:
|
|
@@ -7414,9 +6985,9 @@ var PerpetualsClient = (function () {
|
|
|
7414
6985
|
instructions.push(withdrawFeesIx);
|
|
7415
6986
|
return [3, 5];
|
|
7416
6987
|
case 4:
|
|
7417
|
-
|
|
7418
|
-
console.log("perpClient setPool error:: ",
|
|
7419
|
-
throw
|
|
6988
|
+
err_44 = _a.sent();
|
|
6989
|
+
console.log("perpClient setPool error:: ", err_44);
|
|
6990
|
+
throw err_44;
|
|
7420
6991
|
case 5: return [2, {
|
|
7421
6992
|
instructions: __spreadArray([], instructions, true),
|
|
7422
6993
|
additionalSigners: additionalSigners
|
|
@@ -7425,7 +6996,7 @@ var PerpetualsClient = (function () {
|
|
|
7425
6996
|
});
|
|
7426
6997
|
}); };
|
|
7427
6998
|
this.moveProtocolFees = function (rewardSymbol, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7428
|
-
var publicKey, custodyConfig, instructions, additionalSigners, moveProtocolFeesIx,
|
|
6999
|
+
var publicKey, custodyConfig, instructions, additionalSigners, moveProtocolFeesIx, err_45;
|
|
7429
7000
|
return __generator(this, function (_a) {
|
|
7430
7001
|
switch (_a.label) {
|
|
7431
7002
|
case 0:
|
|
@@ -7459,9 +7030,9 @@ var PerpetualsClient = (function () {
|
|
|
7459
7030
|
instructions.push(moveProtocolFeesIx);
|
|
7460
7031
|
return [3, 4];
|
|
7461
7032
|
case 3:
|
|
7462
|
-
|
|
7463
|
-
console.log("perpClient setPool error:: ",
|
|
7464
|
-
throw
|
|
7033
|
+
err_45 = _a.sent();
|
|
7034
|
+
console.log("perpClient setPool error:: ", err_45);
|
|
7035
|
+
throw err_45;
|
|
7465
7036
|
case 4: return [2, {
|
|
7466
7037
|
instructions: __spreadArray([], instructions, true),
|
|
7467
7038
|
additionalSigners: additionalSigners
|
|
@@ -7470,7 +7041,7 @@ var PerpetualsClient = (function () {
|
|
|
7470
7041
|
});
|
|
7471
7042
|
}); };
|
|
7472
7043
|
this.setProtocolFeeShareBps = function (feeShareBps, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7473
|
-
var publicKey, setProtocolFeeShareBpsIx,
|
|
7044
|
+
var publicKey, setProtocolFeeShareBpsIx, err_46;
|
|
7474
7045
|
return __generator(this, function (_a) {
|
|
7475
7046
|
switch (_a.label) {
|
|
7476
7047
|
case 0:
|
|
@@ -7490,15 +7061,15 @@ var PerpetualsClient = (function () {
|
|
|
7490
7061
|
setProtocolFeeShareBpsIx = _a.sent();
|
|
7491
7062
|
return [2, setProtocolFeeShareBpsIx];
|
|
7492
7063
|
case 2:
|
|
7493
|
-
|
|
7494
|
-
console.log("perpClient setProtocolFeeShareBpsIx error:: ",
|
|
7495
|
-
throw
|
|
7064
|
+
err_46 = _a.sent();
|
|
7065
|
+
console.log("perpClient setProtocolFeeShareBpsIx error:: ", err_46);
|
|
7066
|
+
throw err_46;
|
|
7496
7067
|
case 3: return [2];
|
|
7497
7068
|
}
|
|
7498
7069
|
});
|
|
7499
7070
|
}); };
|
|
7500
7071
|
this.setPermissions = function (permissions) { return __awaiter(_this, void 0, void 0, function () {
|
|
7501
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, setPermissionsInstruction,
|
|
7072
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, setPermissionsInstruction, err_47;
|
|
7502
7073
|
return __generator(this, function (_a) {
|
|
7503
7074
|
switch (_a.label) {
|
|
7504
7075
|
case 0:
|
|
@@ -7525,9 +7096,9 @@ var PerpetualsClient = (function () {
|
|
|
7525
7096
|
instructions.push(setPermissionsInstruction);
|
|
7526
7097
|
return [3, 4];
|
|
7527
7098
|
case 3:
|
|
7528
|
-
|
|
7529
|
-
console.log("perpClient setPool error:: ",
|
|
7530
|
-
throw
|
|
7099
|
+
err_47 = _a.sent();
|
|
7100
|
+
console.log("perpClient setPool error:: ", err_47);
|
|
7101
|
+
throw err_47;
|
|
7531
7102
|
case 4: return [2, {
|
|
7532
7103
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
7533
7104
|
additionalSigners: additionalSigners
|
|
@@ -7536,7 +7107,7 @@ var PerpetualsClient = (function () {
|
|
|
7536
7107
|
});
|
|
7537
7108
|
}); };
|
|
7538
7109
|
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,
|
|
7110
|
+
var custodyAccountMetas, custodyOracleAccountMetas, markets, _i, _a, custody, _b, _c, market, instructions, additionalSigners, custodyConfig, reimburse, _d, _e, err_48;
|
|
7540
7111
|
var _f;
|
|
7541
7112
|
return __generator(this, function (_g) {
|
|
7542
7113
|
switch (_g.label) {
|
|
@@ -7597,9 +7168,9 @@ var PerpetualsClient = (function () {
|
|
|
7597
7168
|
instructions.push(reimburse);
|
|
7598
7169
|
return [3, 5];
|
|
7599
7170
|
case 4:
|
|
7600
|
-
|
|
7601
|
-
console.log("perpClient setPool error:: ",
|
|
7602
|
-
throw
|
|
7171
|
+
err_48 = _g.sent();
|
|
7172
|
+
console.log("perpClient setPool error:: ", err_48);
|
|
7173
|
+
throw err_48;
|
|
7603
7174
|
case 5: return [2, {
|
|
7604
7175
|
instructions: __spreadArray([], instructions, true),
|
|
7605
7176
|
additionalSigners: additionalSigners
|
|
@@ -7608,7 +7179,7 @@ var PerpetualsClient = (function () {
|
|
|
7608
7179
|
});
|
|
7609
7180
|
}); };
|
|
7610
7181
|
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,
|
|
7182
|
+
var instructions, additionalSigners, custodyConfig, setInternalOraclePrice, err_49;
|
|
7612
7183
|
return __generator(this, function (_a) {
|
|
7613
7184
|
switch (_a.label) {
|
|
7614
7185
|
case 0:
|
|
@@ -7642,9 +7213,9 @@ var PerpetualsClient = (function () {
|
|
|
7642
7213
|
instructions.push(setInternalOraclePrice);
|
|
7643
7214
|
return [3, 4];
|
|
7644
7215
|
case 3:
|
|
7645
|
-
|
|
7646
|
-
console.log("perpClient setInternalOracleAccount error:: ",
|
|
7647
|
-
throw
|
|
7216
|
+
err_49 = _a.sent();
|
|
7217
|
+
console.log("perpClient setInternalOracleAccount error:: ", err_49);
|
|
7218
|
+
throw err_49;
|
|
7648
7219
|
case 4: return [2, {
|
|
7649
7220
|
instructions: __spreadArray([], instructions, true),
|
|
7650
7221
|
additionalSigners: additionalSigners
|
|
@@ -7653,7 +7224,7 @@ var PerpetualsClient = (function () {
|
|
|
7653
7224
|
});
|
|
7654
7225
|
}); };
|
|
7655
7226
|
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,
|
|
7227
|
+
var ALL_CUSTODY_CONFIGS, accountMetas, _loop_1, _i, tokenMintList_1, tokenMint, instructions, additionalSigners, setInternalOraclePrice, err_50;
|
|
7657
7228
|
return __generator(this, function (_a) {
|
|
7658
7229
|
switch (_a.label) {
|
|
7659
7230
|
case 0:
|
|
@@ -7699,9 +7270,9 @@ var PerpetualsClient = (function () {
|
|
|
7699
7270
|
instructions.push(setInternalOraclePrice);
|
|
7700
7271
|
return [3, 4];
|
|
7701
7272
|
case 3:
|
|
7702
|
-
|
|
7703
|
-
console.log("perpClient setInternalOracleAccount error:: ",
|
|
7704
|
-
throw
|
|
7273
|
+
err_50 = _a.sent();
|
|
7274
|
+
console.log("perpClient setInternalOracleAccount error:: ", err_50);
|
|
7275
|
+
throw err_50;
|
|
7705
7276
|
case 4: return [2, {
|
|
7706
7277
|
instructions: __spreadArray([], instructions, true),
|
|
7707
7278
|
additionalSigners: additionalSigners
|
|
@@ -7710,7 +7281,7 @@ var PerpetualsClient = (function () {
|
|
|
7710
7281
|
});
|
|
7711
7282
|
}); };
|
|
7712
7283
|
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,
|
|
7284
|
+
var ALL_CUSTODY_CONFIGS, accountMetas, _loop_2, _i, tokenMintList_2, tokenMint, instructions, additionalSigners, setInternalOraclePrice, err_51;
|
|
7714
7285
|
return __generator(this, function (_a) {
|
|
7715
7286
|
switch (_a.label) {
|
|
7716
7287
|
case 0:
|
|
@@ -7750,9 +7321,9 @@ var PerpetualsClient = (function () {
|
|
|
7750
7321
|
instructions.push(setInternalOraclePrice);
|
|
7751
7322
|
return [3, 4];
|
|
7752
7323
|
case 3:
|
|
7753
|
-
|
|
7754
|
-
console.log("perpClient setInternalOracleAccount error:: ",
|
|
7755
|
-
throw
|
|
7324
|
+
err_51 = _a.sent();
|
|
7325
|
+
console.log("perpClient setInternalOracleAccount error:: ", err_51);
|
|
7326
|
+
throw err_51;
|
|
7756
7327
|
case 4: return [2, {
|
|
7757
7328
|
instructions: __spreadArray([], instructions, true),
|
|
7758
7329
|
additionalSigners: additionalSigners
|
|
@@ -7761,7 +7332,7 @@ var PerpetualsClient = (function () {
|
|
|
7761
7332
|
});
|
|
7762
7333
|
}); };
|
|
7763
7334
|
this.renameFlp = function (flag, lpTokenName, lpTokenSymbol, lpTokenUri, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7764
|
-
var publicKey, instructions, additionalSigners, lpTokenMint, lpMetadataAccount, renameFlp,
|
|
7335
|
+
var publicKey, instructions, additionalSigners, lpTokenMint, lpMetadataAccount, renameFlp, err_52;
|
|
7765
7336
|
return __generator(this, function (_a) {
|
|
7766
7337
|
switch (_a.label) {
|
|
7767
7338
|
case 0:
|
|
@@ -7799,8 +7370,8 @@ var PerpetualsClient = (function () {
|
|
|
7799
7370
|
instructions.push(renameFlp);
|
|
7800
7371
|
return [3, 4];
|
|
7801
7372
|
case 3:
|
|
7802
|
-
|
|
7803
|
-
console.log("perpClient renameFlp error:: ",
|
|
7373
|
+
err_52 = _a.sent();
|
|
7374
|
+
console.log("perpClient renameFlp error:: ", err_52);
|
|
7804
7375
|
return [3, 4];
|
|
7805
7376
|
case 4: return [2, {
|
|
7806
7377
|
instructions: __spreadArray([], instructions, true),
|
|
@@ -7810,7 +7381,7 @@ var PerpetualsClient = (function () {
|
|
|
7810
7381
|
});
|
|
7811
7382
|
}); };
|
|
7812
7383
|
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,
|
|
7384
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, lpTokenMint, stakedLpTokenAccount, rewardCustodyConfig, initStakeInstruction, err_53;
|
|
7814
7385
|
return __generator(this, function (_a) {
|
|
7815
7386
|
switch (_a.label) {
|
|
7816
7387
|
case 0:
|
|
@@ -7848,9 +7419,9 @@ var PerpetualsClient = (function () {
|
|
|
7848
7419
|
instructions.push(initStakeInstruction);
|
|
7849
7420
|
return [3, 4];
|
|
7850
7421
|
case 3:
|
|
7851
|
-
|
|
7852
|
-
console.log("perpClient InitStaking error:: ",
|
|
7853
|
-
throw
|
|
7422
|
+
err_53 = _a.sent();
|
|
7423
|
+
console.log("perpClient InitStaking error:: ", err_53);
|
|
7424
|
+
throw err_53;
|
|
7854
7425
|
case 4: return [2, {
|
|
7855
7426
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
7856
7427
|
additionalSigners: additionalSigners
|
|
@@ -7859,7 +7430,7 @@ var PerpetualsClient = (function () {
|
|
|
7859
7430
|
});
|
|
7860
7431
|
}); };
|
|
7861
7432
|
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,
|
|
7433
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyConfig, compoundingTokenMint, compoundingVault, metadataAccount, initCompoundingInstruction, err_54;
|
|
7863
7434
|
return __generator(this, function (_a) {
|
|
7864
7435
|
switch (_a.label) {
|
|
7865
7436
|
case 0:
|
|
@@ -7888,7 +7459,6 @@ var PerpetualsClient = (function () {
|
|
|
7888
7459
|
transferAuthority: poolConfig.transferAuthority,
|
|
7889
7460
|
perpetuals: this.perpetuals.publicKey,
|
|
7890
7461
|
pool: poolConfig.poolAddress,
|
|
7891
|
-
custody: rewardCustodyConfig.custodyAccount,
|
|
7892
7462
|
lpTokenMint: poolConfig.stakedLpTokenMint,
|
|
7893
7463
|
compoundingVault: compoundingVault,
|
|
7894
7464
|
compoundingTokenMint: compoundingTokenMint,
|
|
@@ -7904,9 +7474,9 @@ var PerpetualsClient = (function () {
|
|
|
7904
7474
|
instructions.push(initCompoundingInstruction);
|
|
7905
7475
|
return [3, 4];
|
|
7906
7476
|
case 3:
|
|
7907
|
-
|
|
7908
|
-
console.log("perpClient initCompounding error:: ",
|
|
7909
|
-
throw
|
|
7477
|
+
err_54 = _a.sent();
|
|
7478
|
+
console.log("perpClient initCompounding error:: ", err_54);
|
|
7479
|
+
throw err_54;
|
|
7910
7480
|
case 4: return [2, {
|
|
7911
7481
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
7912
7482
|
additionalSigners: additionalSigners
|
|
@@ -7915,7 +7485,7 @@ var PerpetualsClient = (function () {
|
|
|
7915
7485
|
});
|
|
7916
7486
|
}); };
|
|
7917
7487
|
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,
|
|
7488
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, tokenMint, fundingTokenAccount, initTokenVaultInstruction, err_55;
|
|
7919
7489
|
return __generator(this, function (_a) {
|
|
7920
7490
|
switch (_a.label) {
|
|
7921
7491
|
case 0:
|
|
@@ -7956,9 +7526,9 @@ var PerpetualsClient = (function () {
|
|
|
7956
7526
|
instructions.push(initTokenVaultInstruction);
|
|
7957
7527
|
return [3, 4];
|
|
7958
7528
|
case 3:
|
|
7959
|
-
|
|
7960
|
-
console.log("perpClient InitTokenVaultInstruction error:: ",
|
|
7961
|
-
throw
|
|
7529
|
+
err_55 = _a.sent();
|
|
7530
|
+
console.log("perpClient InitTokenVaultInstruction error:: ", err_55);
|
|
7531
|
+
throw err_55;
|
|
7962
7532
|
case 4: return [2, {
|
|
7963
7533
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
7964
7534
|
additionalSigners: additionalSigners
|
|
@@ -7967,7 +7537,7 @@ var PerpetualsClient = (function () {
|
|
|
7967
7537
|
});
|
|
7968
7538
|
}); };
|
|
7969
7539
|
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,
|
|
7540
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, setTokenVaultConfigInstruction, err_56;
|
|
7971
7541
|
return __generator(this, function (_a) {
|
|
7972
7542
|
switch (_a.label) {
|
|
7973
7543
|
case 0:
|
|
@@ -7998,9 +7568,9 @@ var PerpetualsClient = (function () {
|
|
|
7998
7568
|
instructions.push(setTokenVaultConfigInstruction);
|
|
7999
7569
|
return [3, 4];
|
|
8000
7570
|
case 3:
|
|
8001
|
-
|
|
8002
|
-
console.log("perpClient setTokenVaultConfigInstruction error:: ",
|
|
8003
|
-
throw
|
|
7571
|
+
err_56 = _a.sent();
|
|
7572
|
+
console.log("perpClient setTokenVaultConfigInstruction error:: ", err_56);
|
|
7573
|
+
throw err_56;
|
|
8004
7574
|
case 4: return [2, {
|
|
8005
7575
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
8006
7576
|
additionalSigners: additionalSigners
|
|
@@ -8009,7 +7579,7 @@ var PerpetualsClient = (function () {
|
|
|
8009
7579
|
});
|
|
8010
7580
|
}); };
|
|
8011
7581
|
this.withdrawInstantFee = function (poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
8012
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, receivingTokenAccount, withdrawInstantFeeInstruction,
|
|
7582
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, receivingTokenAccount, withdrawInstantFeeInstruction, err_57;
|
|
8013
7583
|
return __generator(this, function (_a) {
|
|
8014
7584
|
switch (_a.label) {
|
|
8015
7585
|
case 0:
|
|
@@ -8048,9 +7618,59 @@ var PerpetualsClient = (function () {
|
|
|
8048
7618
|
instructions.push(withdrawInstantFeeInstruction);
|
|
8049
7619
|
return [3, 6];
|
|
8050
7620
|
case 5:
|
|
8051
|
-
|
|
8052
|
-
console.log("perpClient withdrawInstantFeeInstruction error:: ",
|
|
8053
|
-
throw
|
|
7621
|
+
err_57 = _a.sent();
|
|
7622
|
+
console.log("perpClient withdrawInstantFeeInstruction error:: ", err_57);
|
|
7623
|
+
throw err_57;
|
|
7624
|
+
case 6: return [2, {
|
|
7625
|
+
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
7626
|
+
additionalSigners: additionalSigners
|
|
7627
|
+
}];
|
|
7628
|
+
}
|
|
7629
|
+
});
|
|
7630
|
+
}); };
|
|
7631
|
+
this.withdrawUnclaimedTokens = function (poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7632
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, receivingTokenAccount, withdrawUnclaimedTokensInstruction, err_58;
|
|
7633
|
+
return __generator(this, function (_a) {
|
|
7634
|
+
switch (_a.label) {
|
|
7635
|
+
case 0:
|
|
7636
|
+
publicKey = this.provider.wallet.publicKey;
|
|
7637
|
+
preInstructions = [];
|
|
7638
|
+
instructions = [];
|
|
7639
|
+
postInstructions = [];
|
|
7640
|
+
additionalSigners = [];
|
|
7641
|
+
_a.label = 1;
|
|
7642
|
+
case 1:
|
|
7643
|
+
_a.trys.push([1, 5, , 6]);
|
|
7644
|
+
return [4, (0, spl_token_1.getAssociatedTokenAddress)(poolConfig.tokenMint, publicKey, true)];
|
|
7645
|
+
case 2:
|
|
7646
|
+
receivingTokenAccount = _a.sent();
|
|
7647
|
+
return [4, (0, utils_1.checkIfAccountExists)(receivingTokenAccount, this.provider.connection)];
|
|
7648
|
+
case 3:
|
|
7649
|
+
if (!(_a.sent())) {
|
|
7650
|
+
preInstructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(publicKey, receivingTokenAccount, publicKey, poolConfig.tokenMint));
|
|
7651
|
+
}
|
|
7652
|
+
return [4, this.program.methods
|
|
7653
|
+
.withdrawUnclaimedTokens({})
|
|
7654
|
+
.accounts({
|
|
7655
|
+
admin: publicKey,
|
|
7656
|
+
multisig: this.multisig.publicKey,
|
|
7657
|
+
perpetuals: this.perpetuals.publicKey,
|
|
7658
|
+
transferAuthority: poolConfig.transferAuthority,
|
|
7659
|
+
tokenVault: poolConfig.tokenVault,
|
|
7660
|
+
tokenVaultTokenAccount: poolConfig.tokenVaultTokenAccount,
|
|
7661
|
+
receivingTokenAccount: receivingTokenAccount,
|
|
7662
|
+
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
7663
|
+
receivingTokenMint: poolConfig.tokenMint,
|
|
7664
|
+
})
|
|
7665
|
+
.instruction()];
|
|
7666
|
+
case 4:
|
|
7667
|
+
withdrawUnclaimedTokensInstruction = _a.sent();
|
|
7668
|
+
instructions.push(withdrawUnclaimedTokensInstruction);
|
|
7669
|
+
return [3, 6];
|
|
7670
|
+
case 5:
|
|
7671
|
+
err_58 = _a.sent();
|
|
7672
|
+
console.log("perpClient withdrawUnclaimedTokensInstruction error:: ", err_58);
|
|
7673
|
+
throw err_58;
|
|
8054
7674
|
case 6: return [2, {
|
|
8055
7675
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
8056
7676
|
additionalSigners: additionalSigners
|
|
@@ -8059,7 +7679,7 @@ var PerpetualsClient = (function () {
|
|
|
8059
7679
|
});
|
|
8060
7680
|
}); };
|
|
8061
7681
|
this.initRevenueTokenAccount = function (feeShareBps, rewardSymbol, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
8062
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyMint, initRevenueTokenAccountInstruction,
|
|
7682
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyMint, initRevenueTokenAccountInstruction, err_59;
|
|
8063
7683
|
return __generator(this, function (_a) {
|
|
8064
7684
|
switch (_a.label) {
|
|
8065
7685
|
case 0:
|
|
@@ -8096,9 +7716,55 @@ var PerpetualsClient = (function () {
|
|
|
8096
7716
|
instructions.push(initRevenueTokenAccountInstruction);
|
|
8097
7717
|
return [3, 4];
|
|
8098
7718
|
case 3:
|
|
8099
|
-
|
|
8100
|
-
console.log("perpClient initRevenueTokenAccountInstruction error:: ",
|
|
8101
|
-
throw
|
|
7719
|
+
err_59 = _a.sent();
|
|
7720
|
+
console.log("perpClient initRevenueTokenAccountInstruction error:: ", err_59);
|
|
7721
|
+
throw err_59;
|
|
7722
|
+
case 4: return [2, {
|
|
7723
|
+
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
7724
|
+
additionalSigners: additionalSigners
|
|
7725
|
+
}];
|
|
7726
|
+
}
|
|
7727
|
+
});
|
|
7728
|
+
}); };
|
|
7729
|
+
this.initRebateVault = function (allowRebatePayout, rebateSymbol, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
7730
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rebateCustodyMint, initRebateVaultInstruction, err_60;
|
|
7731
|
+
return __generator(this, function (_a) {
|
|
7732
|
+
switch (_a.label) {
|
|
7733
|
+
case 0:
|
|
7734
|
+
publicKey = this.provider.wallet.publicKey;
|
|
7735
|
+
preInstructions = [];
|
|
7736
|
+
instructions = [];
|
|
7737
|
+
postInstructions = [];
|
|
7738
|
+
additionalSigners = [];
|
|
7739
|
+
_a.label = 1;
|
|
7740
|
+
case 1:
|
|
7741
|
+
_a.trys.push([1, 3, , 4]);
|
|
7742
|
+
rebateCustodyMint = poolConfig.getTokenFromSymbol(rebateSymbol).mintKey;
|
|
7743
|
+
return [4, this.program.methods
|
|
7744
|
+
.initRebateVault({
|
|
7745
|
+
allowRebatePayout: allowRebatePayout
|
|
7746
|
+
})
|
|
7747
|
+
.accounts({
|
|
7748
|
+
admin: publicKey,
|
|
7749
|
+
multisig: this.multisig.publicKey,
|
|
7750
|
+
transferAuthority: poolConfig.transferAuthority,
|
|
7751
|
+
perpetuals: this.perpetuals.publicKey,
|
|
7752
|
+
rebateMint: rebateCustodyMint,
|
|
7753
|
+
rebateTokenAccount: poolConfig.rebateTokenAccount,
|
|
7754
|
+
rebateVault: poolConfig.rebateVault,
|
|
7755
|
+
systemProgram: web3_js_1.SystemProgram.programId,
|
|
7756
|
+
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
7757
|
+
rent: web3_js_1.SYSVAR_RENT_PUBKEY
|
|
7758
|
+
})
|
|
7759
|
+
.instruction()];
|
|
7760
|
+
case 2:
|
|
7761
|
+
initRebateVaultInstruction = _a.sent();
|
|
7762
|
+
instructions.push(initRebateVaultInstruction);
|
|
7763
|
+
return [3, 4];
|
|
7764
|
+
case 3:
|
|
7765
|
+
err_60 = _a.sent();
|
|
7766
|
+
console.log("perpClient initRebateVaultInstruction error:: ", err_60);
|
|
7767
|
+
throw err_60;
|
|
8102
7768
|
case 4: return [2, {
|
|
8103
7769
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
8104
7770
|
additionalSigners: additionalSigners
|
|
@@ -8107,7 +7773,7 @@ var PerpetualsClient = (function () {
|
|
|
8107
7773
|
});
|
|
8108
7774
|
}); };
|
|
8109
7775
|
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,
|
|
7776
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, rewardCustodyMint, fundingTokenAccount, revenueFundingTokenAccount, distributeTokenRewardInstruction, err_61;
|
|
8111
7777
|
return __generator(this, function (_a) {
|
|
8112
7778
|
switch (_a.label) {
|
|
8113
7779
|
case 0:
|
|
@@ -8146,9 +7812,9 @@ var PerpetualsClient = (function () {
|
|
|
8146
7812
|
instructions.push(distributeTokenRewardInstruction);
|
|
8147
7813
|
return [3, 4];
|
|
8148
7814
|
case 3:
|
|
8149
|
-
|
|
8150
|
-
console.log("perpClient distributeTokenRewardInstruction error:: ",
|
|
8151
|
-
throw
|
|
7815
|
+
err_61 = _a.sent();
|
|
7816
|
+
console.log("perpClient distributeTokenRewardInstruction error:: ", err_61);
|
|
7817
|
+
throw err_61;
|
|
8152
7818
|
case 4: return [2, {
|
|
8153
7819
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
8154
7820
|
additionalSigners: additionalSigners
|
|
@@ -8157,7 +7823,7 @@ var PerpetualsClient = (function () {
|
|
|
8157
7823
|
});
|
|
8158
7824
|
}); };
|
|
8159
7825
|
this.setTokenStakeLevel = function (owner, stakeLevel) { return __awaiter(_this, void 0, void 0, function () {
|
|
8160
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, setTokenStakeLevelInstruction,
|
|
7826
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, setTokenStakeLevelInstruction, err_62;
|
|
8161
7827
|
return __generator(this, function (_a) {
|
|
8162
7828
|
switch (_a.label) {
|
|
8163
7829
|
case 0:
|
|
@@ -8185,9 +7851,9 @@ var PerpetualsClient = (function () {
|
|
|
8185
7851
|
instructions.push(setTokenStakeLevelInstruction);
|
|
8186
7852
|
return [3, 4];
|
|
8187
7853
|
case 3:
|
|
8188
|
-
|
|
8189
|
-
console.log("perpClient setTokenStakeLevelInstruction error:: ",
|
|
8190
|
-
throw
|
|
7854
|
+
err_62 = _a.sent();
|
|
7855
|
+
console.log("perpClient setTokenStakeLevelInstruction error:: ", err_62);
|
|
7856
|
+
throw err_62;
|
|
8191
7857
|
case 4: return [2, {
|
|
8192
7858
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
8193
7859
|
additionalSigners: additionalSigners
|
|
@@ -8196,7 +7862,7 @@ var PerpetualsClient = (function () {
|
|
|
8196
7862
|
});
|
|
8197
7863
|
}); };
|
|
8198
7864
|
this.setTokenReward = function (owner, amount, epochCount, poolConfig) { return __awaiter(_this, void 0, void 0, function () {
|
|
8199
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, setTokenRewardInstruction,
|
|
7865
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, tokenStakeAccount, setTokenRewardInstruction, err_63;
|
|
8200
7866
|
return __generator(this, function (_a) {
|
|
8201
7867
|
switch (_a.label) {
|
|
8202
7868
|
case 0:
|
|
@@ -8228,9 +7894,9 @@ var PerpetualsClient = (function () {
|
|
|
8228
7894
|
instructions.push(setTokenRewardInstruction);
|
|
8229
7895
|
return [3, 4];
|
|
8230
7896
|
case 3:
|
|
8231
|
-
|
|
8232
|
-
console.log("perpClient setTokenRewardInstruction error:: ",
|
|
8233
|
-
throw
|
|
7897
|
+
err_63 = _a.sent();
|
|
7898
|
+
console.log("perpClient setTokenRewardInstruction error:: ", err_63);
|
|
7899
|
+
throw err_63;
|
|
8234
7900
|
case 4: return [2, {
|
|
8235
7901
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
8236
7902
|
additionalSigners: additionalSigners
|
|
@@ -8239,7 +7905,7 @@ var PerpetualsClient = (function () {
|
|
|
8239
7905
|
});
|
|
8240
7906
|
}); };
|
|
8241
7907
|
this.resizeInternalOracle = function (extOracle, tokenMint, intOracleAccount) { return __awaiter(_this, void 0, void 0, function () {
|
|
8242
|
-
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, resizeInternalOracleInstruction,
|
|
7908
|
+
var publicKey, preInstructions, instructions, postInstructions, additionalSigners, resizeInternalOracleInstruction, err_64;
|
|
8243
7909
|
return __generator(this, function (_a) {
|
|
8244
7910
|
switch (_a.label) {
|
|
8245
7911
|
case 0:
|
|
@@ -8268,9 +7934,9 @@ var PerpetualsClient = (function () {
|
|
|
8268
7934
|
instructions.push(resizeInternalOracleInstruction);
|
|
8269
7935
|
return [3, 4];
|
|
8270
7936
|
case 3:
|
|
8271
|
-
|
|
8272
|
-
console.log("perpClient resizeInternalOracleInstruction error:: ",
|
|
8273
|
-
throw
|
|
7937
|
+
err_64 = _a.sent();
|
|
7938
|
+
console.log("perpClient resizeInternalOracleInstruction error:: ", err_64);
|
|
7939
|
+
throw err_64;
|
|
8274
7940
|
case 4: return [2, {
|
|
8275
7941
|
instructions: __spreadArray(__spreadArray(__spreadArray([], preInstructions, true), instructions, true), postInstructions, true),
|
|
8276
7942
|
additionalSigners: additionalSigners
|