@crypticdot/defituna-client 3.1.12 → 3.1.14
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/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +25 -36
- package/dist/index.mjs +25 -36
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -6819,7 +6819,7 @@ type DecreaseSpotPositionQuoteResult = {
|
|
|
6819
6819
|
priceImpact: number;
|
|
6820
6820
|
};
|
|
6821
6821
|
declare function getDecreaseSpotPositionQuote(args: DecreaseSpotPositionQuoteArgs): DecreaseSpotPositionQuoteResult;
|
|
6822
|
-
declare function getPositionSizeByCollateralAndLeverage(collateral: bigint, leverage: number, swapFeeRate: number, protocolFeeRateOnCollateral: number, protocolFeeRate: number): bigint;
|
|
6822
|
+
declare function getPositionSizeByCollateralAndLeverage(collateral: bigint, leverage: number, swapCollateral: boolean, swapFeeRate: number, protocolFeeRateOnCollateral: number, protocolFeeRate: number): bigint;
|
|
6823
6823
|
declare function getLiquidationPrice(positionToken: PoolToken, amount: number, debt: number, liquidationThreshold: number): Number;
|
|
6824
6824
|
|
|
6825
6825
|
type IncreaseTunaLpPositionOrcaInstructionsArgs = Omit<IncreaseTunaLpPositionOrcaInstructionDataArgs, "remainingAccountsInfo" | "minAddedAmountA" | "minAddedAmountB"> & {
|
package/dist/index.d.ts
CHANGED
|
@@ -6819,7 +6819,7 @@ type DecreaseSpotPositionQuoteResult = {
|
|
|
6819
6819
|
priceImpact: number;
|
|
6820
6820
|
};
|
|
6821
6821
|
declare function getDecreaseSpotPositionQuote(args: DecreaseSpotPositionQuoteArgs): DecreaseSpotPositionQuoteResult;
|
|
6822
|
-
declare function getPositionSizeByCollateralAndLeverage(collateral: bigint, leverage: number, swapFeeRate: number, protocolFeeRateOnCollateral: number, protocolFeeRate: number): bigint;
|
|
6822
|
+
declare function getPositionSizeByCollateralAndLeverage(collateral: bigint, leverage: number, swapCollateral: boolean, swapFeeRate: number, protocolFeeRateOnCollateral: number, protocolFeeRate: number): bigint;
|
|
6823
6823
|
declare function getLiquidationPrice(positionToken: PoolToken, amount: number, debt: number, liquidationThreshold: number): Number;
|
|
6824
6824
|
|
|
6825
6825
|
type IncreaseTunaLpPositionOrcaInstructionsArgs = Omit<IncreaseTunaLpPositionOrcaInstructionDataArgs, "remainingAccountsInfo" | "minAddedAmountA" | "minAddedAmountB"> & {
|
package/dist/index.js
CHANGED
|
@@ -10400,9 +10400,8 @@ function getDecreaseSpotPositionQuote(args) {
|
|
|
10400
10400
|
let newPositionToken = positionToken;
|
|
10401
10401
|
let decreasePercent;
|
|
10402
10402
|
const price = (0, import_fusionamm_core4.sqrtPriceToPrice)(fusionPool.sqrtPrice, 1, 1);
|
|
10403
|
-
|
|
10404
|
-
|
|
10405
|
-
);
|
|
10403
|
+
const positionToOppositeTokenPrice = positionToken == 0 /* A */ ? price : 1 / price;
|
|
10404
|
+
let decreaseAmountInPositionToken = collateralToken == positionToken ? decreaseAmount : BigInt(Math.floor(Number(decreaseAmount) / positionToOppositeTokenPrice));
|
|
10406
10405
|
if (reduceOnly && decreaseAmountInPositionToken > positionAmount) {
|
|
10407
10406
|
decreaseAmountInPositionToken = positionAmount;
|
|
10408
10407
|
}
|
|
@@ -10421,49 +10420,36 @@ function getDecreaseSpotPositionQuote(args) {
|
|
|
10421
10420
|
}
|
|
10422
10421
|
} else {
|
|
10423
10422
|
swapInputAmount = positionAmount - BigInt(Math.floor(Number(positionAmount) * (HUNDRED_PERCENT - decreasePercent) / HUNDRED_PERCENT));
|
|
10424
|
-
|
|
10425
|
-
|
|
10426
|
-
positionToken == 0 /* A */,
|
|
10427
|
-
0,
|
|
10428
|
-
fusionPool,
|
|
10429
|
-
tickArrays
|
|
10430
|
-
).nextSqrtPrice;
|
|
10423
|
+
const swapQuote = (0, import_fusionamm_core4.swapQuoteByInputToken)(swapInputAmount, positionToken == 0 /* A */, 0, fusionPool, tickArrays);
|
|
10424
|
+
nextSqrtPrice = swapQuote.nextSqrtPrice;
|
|
10431
10425
|
}
|
|
10432
10426
|
} else {
|
|
10433
10427
|
decreasePercent = HUNDRED_PERCENT;
|
|
10434
|
-
const posTokenIsA = positionToken == 0 /* A */;
|
|
10435
10428
|
newPositionToken = positionToken == 0 /* A */ ? 1 /* B */ : 0 /* A */;
|
|
10436
10429
|
const increaseAmount = decreaseAmountInPositionToken - positionAmount;
|
|
10437
10430
|
if (positionToken == collateralToken) {
|
|
10438
|
-
estimatedAmount = BigInt(
|
|
10439
|
-
|
|
10440
|
-
);
|
|
10441
|
-
collateral =
|
|
10442
|
-
borrow = increaseAmount - collateral;
|
|
10431
|
+
estimatedAmount = BigInt(Math.floor(Number(increaseAmount) * positionToOppositeTokenPrice));
|
|
10432
|
+
borrow = BigInt(Math.floor(Number(increaseAmount) * (leverage - 1)) / leverage);
|
|
10433
|
+
const borrowWithFeesApplied = (0, import_fusionamm_core4.tryApplySwapFee)(applyTunaProtocolFee(borrow, protocolFeeRate), fusionPool.feeRate);
|
|
10434
|
+
collateral = increaseAmount - borrowWithFeesApplied;
|
|
10443
10435
|
if (positionDebt > 0) {
|
|
10444
|
-
const
|
|
10445
|
-
swapInputAmount =
|
|
10436
|
+
const swapQuote2 = (0, import_fusionamm_core4.swapQuoteByOutputToken)(positionDebt, positionToken != 0 /* A */, 0, fusionPool, tickArrays);
|
|
10437
|
+
swapInputAmount = swapQuote2.tokenEstIn;
|
|
10446
10438
|
}
|
|
10447
|
-
swapInputAmount +=
|
|
10448
|
-
|
|
10439
|
+
swapInputAmount += collateral + applyTunaProtocolFee(borrow, protocolFeeRate);
|
|
10440
|
+
const swapQuote = (0, import_fusionamm_core4.swapQuoteByInputToken)(swapInputAmount, positionToken == 0 /* A */, 0, fusionPool, tickArrays);
|
|
10441
|
+
nextSqrtPrice = swapQuote.nextSqrtPrice;
|
|
10449
10442
|
collateral = reverseApplyTunaProtocolFee(collateral, protocolFeeRateOnCollateral);
|
|
10450
|
-
borrow = reverseApplyTunaProtocolFee(borrow, protocolFeeRate);
|
|
10451
10443
|
} else {
|
|
10452
|
-
|
|
10453
|
-
borrow = increaseAmount -
|
|
10454
|
-
|
|
10455
|
-
|
|
10456
|
-
|
|
10457
|
-
)
|
|
10458
|
-
);
|
|
10459
|
-
const borrowInNewPositionToken = BigInt(
|
|
10460
|
-
Math.floor(newPositionToken == 1 /* B */ ? Number(borrow) * price : Number(borrow) / price)
|
|
10461
|
-
);
|
|
10462
|
-
estimatedAmount = collateral + borrowInNewPositionToken;
|
|
10463
|
-
swapInputAmount = positionAmount + borrow;
|
|
10464
|
-
nextSqrtPrice = (0, import_fusionamm_core4.swapQuoteByInputToken)(swapInputAmount, posTokenIsA, 0, fusionPool, tickArrays).nextSqrtPrice;
|
|
10444
|
+
estimatedAmount = BigInt(Math.floor(Number(increaseAmount) * positionToOppositeTokenPrice));
|
|
10445
|
+
borrow = BigInt(Math.floor(Number(increaseAmount) * (leverage - 1) / leverage));
|
|
10446
|
+
const borrowWithFeesApplied = (0, import_fusionamm_core4.tryApplySwapFee)(applyTunaProtocolFee(borrow, protocolFeeRate), fusionPool.feeRate);
|
|
10447
|
+
collateral = increaseAmount - borrowWithFeesApplied;
|
|
10448
|
+
collateral = BigInt(Math.floor(Number(collateral) * positionToOppositeTokenPrice));
|
|
10465
10449
|
collateral = reverseApplyTunaProtocolFee(collateral, protocolFeeRateOnCollateral);
|
|
10466
|
-
|
|
10450
|
+
swapInputAmount = positionAmount + applyTunaProtocolFee(borrow, protocolFeeRate);
|
|
10451
|
+
const swapQuote = (0, import_fusionamm_core4.swapQuoteByInputToken)(swapInputAmount, positionToken == 0 /* A */, 0, fusionPool, tickArrays);
|
|
10452
|
+
nextSqrtPrice = swapQuote.nextSqrtPrice;
|
|
10467
10453
|
}
|
|
10468
10454
|
}
|
|
10469
10455
|
const protocolFeeA = (collateralToken == 0 /* A */ ? collateral - applyTunaProtocolFee(collateral, protocolFeeRateOnCollateral) : 0n) + (positionToken == 1 /* B */ ? borrow - applyTunaProtocolFee(borrow, protocolFeeRate) : 0n);
|
|
@@ -10483,7 +10469,7 @@ function getDecreaseSpotPositionQuote(args) {
|
|
|
10483
10469
|
priceImpact
|
|
10484
10470
|
};
|
|
10485
10471
|
}
|
|
10486
|
-
function getPositionSizeByCollateralAndLeverage(collateral, leverage, swapFeeRate, protocolFeeRateOnCollateral, protocolFeeRate) {
|
|
10472
|
+
function getPositionSizeByCollateralAndLeverage(collateral, leverage, swapCollateral, swapFeeRate, protocolFeeRateOnCollateral, protocolFeeRate) {
|
|
10487
10473
|
if (leverage < 1) {
|
|
10488
10474
|
throw new Error("leverage must be greater or equal than 1.0");
|
|
10489
10475
|
}
|
|
@@ -10500,6 +10486,9 @@ function getPositionSizeByCollateralAndLeverage(collateral, leverage, swapFeeRat
|
|
|
10500
10486
|
);
|
|
10501
10487
|
borrow = applyTunaProtocolFee(borrow, protocolFeeRate);
|
|
10502
10488
|
borrow = (0, import_fusionamm_core4.tryApplySwapFee)(borrow, swapFeeRate);
|
|
10489
|
+
if (swapCollateral) {
|
|
10490
|
+
collateral = (0, import_fusionamm_core4.tryApplySwapFee)(collateral, swapFeeRate);
|
|
10491
|
+
}
|
|
10503
10492
|
return collateral + borrow;
|
|
10504
10493
|
}
|
|
10505
10494
|
function getLiquidationPrice(positionToken, amount, debt, liquidationThreshold) {
|
package/dist/index.mjs
CHANGED
|
@@ -10570,9 +10570,8 @@ function getDecreaseSpotPositionQuote(args) {
|
|
|
10570
10570
|
let newPositionToken = positionToken;
|
|
10571
10571
|
let decreasePercent;
|
|
10572
10572
|
const price = sqrtPriceToPrice(fusionPool.sqrtPrice, 1, 1);
|
|
10573
|
-
|
|
10574
|
-
|
|
10575
|
-
);
|
|
10573
|
+
const positionToOppositeTokenPrice = positionToken == 0 /* A */ ? price : 1 / price;
|
|
10574
|
+
let decreaseAmountInPositionToken = collateralToken == positionToken ? decreaseAmount : BigInt(Math.floor(Number(decreaseAmount) / positionToOppositeTokenPrice));
|
|
10576
10575
|
if (reduceOnly && decreaseAmountInPositionToken > positionAmount) {
|
|
10577
10576
|
decreaseAmountInPositionToken = positionAmount;
|
|
10578
10577
|
}
|
|
@@ -10591,49 +10590,36 @@ function getDecreaseSpotPositionQuote(args) {
|
|
|
10591
10590
|
}
|
|
10592
10591
|
} else {
|
|
10593
10592
|
swapInputAmount = positionAmount - BigInt(Math.floor(Number(positionAmount) * (HUNDRED_PERCENT - decreasePercent) / HUNDRED_PERCENT));
|
|
10594
|
-
|
|
10595
|
-
|
|
10596
|
-
positionToken == 0 /* A */,
|
|
10597
|
-
0,
|
|
10598
|
-
fusionPool,
|
|
10599
|
-
tickArrays
|
|
10600
|
-
).nextSqrtPrice;
|
|
10593
|
+
const swapQuote = swapQuoteByInputToken(swapInputAmount, positionToken == 0 /* A */, 0, fusionPool, tickArrays);
|
|
10594
|
+
nextSqrtPrice = swapQuote.nextSqrtPrice;
|
|
10601
10595
|
}
|
|
10602
10596
|
} else {
|
|
10603
10597
|
decreasePercent = HUNDRED_PERCENT;
|
|
10604
|
-
const posTokenIsA = positionToken == 0 /* A */;
|
|
10605
10598
|
newPositionToken = positionToken == 0 /* A */ ? 1 /* B */ : 0 /* A */;
|
|
10606
10599
|
const increaseAmount = decreaseAmountInPositionToken - positionAmount;
|
|
10607
10600
|
if (positionToken == collateralToken) {
|
|
10608
|
-
estimatedAmount = BigInt(
|
|
10609
|
-
|
|
10610
|
-
);
|
|
10611
|
-
collateral =
|
|
10612
|
-
borrow = increaseAmount - collateral;
|
|
10601
|
+
estimatedAmount = BigInt(Math.floor(Number(increaseAmount) * positionToOppositeTokenPrice));
|
|
10602
|
+
borrow = BigInt(Math.floor(Number(increaseAmount) * (leverage - 1)) / leverage);
|
|
10603
|
+
const borrowWithFeesApplied = tryApplySwapFee2(applyTunaProtocolFee(borrow, protocolFeeRate), fusionPool.feeRate);
|
|
10604
|
+
collateral = increaseAmount - borrowWithFeesApplied;
|
|
10613
10605
|
if (positionDebt > 0) {
|
|
10614
|
-
const
|
|
10615
|
-
swapInputAmount =
|
|
10606
|
+
const swapQuote2 = swapQuoteByOutputToken(positionDebt, positionToken != 0 /* A */, 0, fusionPool, tickArrays);
|
|
10607
|
+
swapInputAmount = swapQuote2.tokenEstIn;
|
|
10616
10608
|
}
|
|
10617
|
-
swapInputAmount +=
|
|
10618
|
-
|
|
10609
|
+
swapInputAmount += collateral + applyTunaProtocolFee(borrow, protocolFeeRate);
|
|
10610
|
+
const swapQuote = swapQuoteByInputToken(swapInputAmount, positionToken == 0 /* A */, 0, fusionPool, tickArrays);
|
|
10611
|
+
nextSqrtPrice = swapQuote.nextSqrtPrice;
|
|
10619
10612
|
collateral = reverseApplyTunaProtocolFee(collateral, protocolFeeRateOnCollateral);
|
|
10620
|
-
borrow = reverseApplyTunaProtocolFee(borrow, protocolFeeRate);
|
|
10621
10613
|
} else {
|
|
10622
|
-
|
|
10623
|
-
borrow = increaseAmount -
|
|
10624
|
-
|
|
10625
|
-
|
|
10626
|
-
|
|
10627
|
-
)
|
|
10628
|
-
);
|
|
10629
|
-
const borrowInNewPositionToken = BigInt(
|
|
10630
|
-
Math.floor(newPositionToken == 1 /* B */ ? Number(borrow) * price : Number(borrow) / price)
|
|
10631
|
-
);
|
|
10632
|
-
estimatedAmount = collateral + borrowInNewPositionToken;
|
|
10633
|
-
swapInputAmount = positionAmount + borrow;
|
|
10634
|
-
nextSqrtPrice = swapQuoteByInputToken(swapInputAmount, posTokenIsA, 0, fusionPool, tickArrays).nextSqrtPrice;
|
|
10614
|
+
estimatedAmount = BigInt(Math.floor(Number(increaseAmount) * positionToOppositeTokenPrice));
|
|
10615
|
+
borrow = BigInt(Math.floor(Number(increaseAmount) * (leverage - 1) / leverage));
|
|
10616
|
+
const borrowWithFeesApplied = tryApplySwapFee2(applyTunaProtocolFee(borrow, protocolFeeRate), fusionPool.feeRate);
|
|
10617
|
+
collateral = increaseAmount - borrowWithFeesApplied;
|
|
10618
|
+
collateral = BigInt(Math.floor(Number(collateral) * positionToOppositeTokenPrice));
|
|
10635
10619
|
collateral = reverseApplyTunaProtocolFee(collateral, protocolFeeRateOnCollateral);
|
|
10636
|
-
|
|
10620
|
+
swapInputAmount = positionAmount + applyTunaProtocolFee(borrow, protocolFeeRate);
|
|
10621
|
+
const swapQuote = swapQuoteByInputToken(swapInputAmount, positionToken == 0 /* A */, 0, fusionPool, tickArrays);
|
|
10622
|
+
nextSqrtPrice = swapQuote.nextSqrtPrice;
|
|
10637
10623
|
}
|
|
10638
10624
|
}
|
|
10639
10625
|
const protocolFeeA = (collateralToken == 0 /* A */ ? collateral - applyTunaProtocolFee(collateral, protocolFeeRateOnCollateral) : 0n) + (positionToken == 1 /* B */ ? borrow - applyTunaProtocolFee(borrow, protocolFeeRate) : 0n);
|
|
@@ -10653,7 +10639,7 @@ function getDecreaseSpotPositionQuote(args) {
|
|
|
10653
10639
|
priceImpact
|
|
10654
10640
|
};
|
|
10655
10641
|
}
|
|
10656
|
-
function getPositionSizeByCollateralAndLeverage(collateral, leverage, swapFeeRate, protocolFeeRateOnCollateral, protocolFeeRate) {
|
|
10642
|
+
function getPositionSizeByCollateralAndLeverage(collateral, leverage, swapCollateral, swapFeeRate, protocolFeeRateOnCollateral, protocolFeeRate) {
|
|
10657
10643
|
if (leverage < 1) {
|
|
10658
10644
|
throw new Error("leverage must be greater or equal than 1.0");
|
|
10659
10645
|
}
|
|
@@ -10670,6 +10656,9 @@ function getPositionSizeByCollateralAndLeverage(collateral, leverage, swapFeeRat
|
|
|
10670
10656
|
);
|
|
10671
10657
|
borrow = applyTunaProtocolFee(borrow, protocolFeeRate);
|
|
10672
10658
|
borrow = tryApplySwapFee2(borrow, swapFeeRate);
|
|
10659
|
+
if (swapCollateral) {
|
|
10660
|
+
collateral = tryApplySwapFee2(collateral, swapFeeRate);
|
|
10661
|
+
}
|
|
10673
10662
|
return collateral + borrow;
|
|
10674
10663
|
}
|
|
10675
10664
|
function getLiquidationPrice(positionToken, amount, debt, liquidationThreshold) {
|
package/package.json
CHANGED