@crypticdot/defituna-client 3.0.4 → 3.1.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/index.d.mts +79 -104
- package/dist/index.d.ts +79 -104
- package/dist/index.js +65 -131
- package/dist/index.mjs +66 -132
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -49,7 +49,6 @@ __export(index_exports, {
|
|
|
49
49
|
DECREASE_TUNA_SPOT_POSITION_FUSION_DISCRIMINATOR: () => DECREASE_TUNA_SPOT_POSITION_FUSION_DISCRIMINATOR,
|
|
50
50
|
DECREASE_TUNA_SPOT_POSITION_ORCA_DISCRIMINATOR: () => DECREASE_TUNA_SPOT_POSITION_ORCA_DISCRIMINATOR,
|
|
51
51
|
DEFAULT_ADDRESS: () => DEFAULT_ADDRESS,
|
|
52
|
-
DEFAULT_MAX_AMOUNT_SLIPPAGE: () => DEFAULT_MAX_AMOUNT_SLIPPAGE,
|
|
53
52
|
DEFAULT_MAX_SWAP_SLIPPAGE: () => DEFAULT_MAX_SWAP_SLIPPAGE,
|
|
54
53
|
DEFAULT_PUSH_ORACLE_PROGRAM_ID: () => DEFAULT_PUSH_ORACLE_PROGRAM_ID,
|
|
55
54
|
DEPOSIT_DISCRIMINATOR: () => DEPOSIT_DISCRIMINATOR,
|
|
@@ -349,6 +348,7 @@ __export(index_exports, {
|
|
|
349
348
|
getDepositInstructionDataCodec: () => getDepositInstructionDataCodec,
|
|
350
349
|
getDepositInstructionDataDecoder: () => getDepositInstructionDataDecoder,
|
|
351
350
|
getDepositInstructionDataEncoder: () => getDepositInstructionDataEncoder,
|
|
351
|
+
getIncreaseLpPositionQuote: () => getIncreaseLpPositionQuote,
|
|
352
352
|
getIncreaseTunaLpPositionFusionDiscriminatorBytes: () => getIncreaseTunaLpPositionFusionDiscriminatorBytes,
|
|
353
353
|
getIncreaseTunaLpPositionFusionInstruction: () => getIncreaseTunaLpPositionFusionInstruction,
|
|
354
354
|
getIncreaseTunaLpPositionFusionInstructionDataCodec: () => getIncreaseTunaLpPositionFusionInstructionDataCodec,
|
|
@@ -396,7 +396,6 @@ __export(index_exports, {
|
|
|
396
396
|
getLiquidateTunaSpotPositionOrcaInstructionDataCodec: () => getLiquidateTunaSpotPositionOrcaInstructionDataCodec,
|
|
397
397
|
getLiquidateTunaSpotPositionOrcaInstructionDataDecoder: () => getLiquidateTunaSpotPositionOrcaInstructionDataDecoder,
|
|
398
398
|
getLiquidateTunaSpotPositionOrcaInstructionDataEncoder: () => getLiquidateTunaSpotPositionOrcaInstructionDataEncoder,
|
|
399
|
-
getLiquidityIncreaseQuote: () => getLiquidityIncreaseQuote,
|
|
400
399
|
getMarketAddress: () => getMarketAddress,
|
|
401
400
|
getMarketCodec: () => getMarketCodec,
|
|
402
401
|
getMarketDecoder: () => getMarketDecoder,
|
|
@@ -699,7 +698,6 @@ __export(index_exports, {
|
|
|
699
698
|
tunaSpotPositionAuthorityFilter: () => tunaSpotPositionAuthorityFilter,
|
|
700
699
|
tunaSpotPositionMintAFilter: () => tunaSpotPositionMintAFilter,
|
|
701
700
|
tunaSpotPositionMintBFilter: () => tunaSpotPositionMintBFilter,
|
|
702
|
-
tunaSpotPositionMintFilter: () => tunaSpotPositionMintFilter,
|
|
703
701
|
tunaSpotPositionPoolFilter: () => tunaSpotPositionPoolFilter,
|
|
704
702
|
updateMarketInstruction: () => updateMarketInstruction,
|
|
705
703
|
updateVaultInstruction: () => updateVaultInstruction,
|
|
@@ -1250,7 +1248,6 @@ function getTunaSpotPositionEncoder() {
|
|
|
1250
1248
|
["pool", (0, import_kit11.getAddressEncoder)()],
|
|
1251
1249
|
["mintA", (0, import_kit11.getAddressEncoder)()],
|
|
1252
1250
|
["mintB", (0, import_kit11.getAddressEncoder)()],
|
|
1253
|
-
["positionMint", (0, import_kit11.getAddressEncoder)()],
|
|
1254
1251
|
["marketMaker", getMarketMakerEncoder()],
|
|
1255
1252
|
["positionToken", getPoolTokenEncoder()],
|
|
1256
1253
|
["collateralToken", getPoolTokenEncoder()],
|
|
@@ -1276,7 +1273,6 @@ function getTunaSpotPositionDecoder() {
|
|
|
1276
1273
|
["pool", (0, import_kit11.getAddressDecoder)()],
|
|
1277
1274
|
["mintA", (0, import_kit11.getAddressDecoder)()],
|
|
1278
1275
|
["mintB", (0, import_kit11.getAddressDecoder)()],
|
|
1279
|
-
["positionMint", (0, import_kit11.getAddressDecoder)()],
|
|
1280
1276
|
["marketMaker", getMarketMakerDecoder()],
|
|
1281
1277
|
["positionToken", getPoolTokenDecoder()],
|
|
1282
1278
|
["collateralToken", getPoolTokenDecoder()],
|
|
@@ -1328,7 +1324,7 @@ async function fetchAllMaybeTunaSpotPosition(rpc, addresses, config) {
|
|
|
1328
1324
|
);
|
|
1329
1325
|
}
|
|
1330
1326
|
function getTunaSpotPositionSize() {
|
|
1331
|
-
return
|
|
1327
|
+
return 347;
|
|
1332
1328
|
}
|
|
1333
1329
|
|
|
1334
1330
|
// src/generated/accounts/vault.ts
|
|
@@ -6738,10 +6734,6 @@ function getOpenAndIncreaseTunaSpotPositionFusionInstruction(input, config) {
|
|
|
6738
6734
|
vaultAAta: { value: input.vaultAAta ?? null, isWritable: true },
|
|
6739
6735
|
vaultBAta: { value: input.vaultBAta ?? null, isWritable: true },
|
|
6740
6736
|
tunaPosition: { value: input.tunaPosition ?? null, isWritable: true },
|
|
6741
|
-
tunaPositionMint: {
|
|
6742
|
-
value: input.tunaPositionMint ?? null,
|
|
6743
|
-
isWritable: false
|
|
6744
|
-
},
|
|
6745
6737
|
tunaPositionAtaA: {
|
|
6746
6738
|
value: input.tunaPositionAtaA ?? null,
|
|
6747
6739
|
isWritable: true
|
|
@@ -6806,7 +6798,6 @@ function getOpenAndIncreaseTunaSpotPositionFusionInstruction(input, config) {
|
|
|
6806
6798
|
getAccountMeta(accounts.vaultAAta),
|
|
6807
6799
|
getAccountMeta(accounts.vaultBAta),
|
|
6808
6800
|
getAccountMeta(accounts.tunaPosition),
|
|
6809
|
-
getAccountMeta(accounts.tunaPositionMint),
|
|
6810
6801
|
getAccountMeta(accounts.tunaPositionAtaA),
|
|
6811
6802
|
getAccountMeta(accounts.tunaPositionAtaB),
|
|
6812
6803
|
getAccountMeta(accounts.tunaPositionOwnerAtaA),
|
|
@@ -6829,7 +6820,7 @@ function getOpenAndIncreaseTunaSpotPositionFusionInstruction(input, config) {
|
|
|
6829
6820
|
return instruction;
|
|
6830
6821
|
}
|
|
6831
6822
|
function parseOpenAndIncreaseTunaSpotPositionFusionInstruction(instruction) {
|
|
6832
|
-
if (instruction.accounts.length <
|
|
6823
|
+
if (instruction.accounts.length < 25) {
|
|
6833
6824
|
throw new Error("Not enough accounts");
|
|
6834
6825
|
}
|
|
6835
6826
|
let accountIndex = 0;
|
|
@@ -6857,7 +6848,6 @@ function parseOpenAndIncreaseTunaSpotPositionFusionInstruction(instruction) {
|
|
|
6857
6848
|
vaultAAta: getNextAccount(),
|
|
6858
6849
|
vaultBAta: getNextAccount(),
|
|
6859
6850
|
tunaPosition: getNextAccount(),
|
|
6860
|
-
tunaPositionMint: getNextAccount(),
|
|
6861
6851
|
tunaPositionAtaA: getNextAccount(),
|
|
6862
6852
|
tunaPositionAtaB: getNextAccount(),
|
|
6863
6853
|
tunaPositionOwnerAtaA: getNextOptionalAccount(),
|
|
@@ -6941,10 +6931,6 @@ function getOpenAndIncreaseTunaSpotPositionOrcaInstruction(input, config) {
|
|
|
6941
6931
|
vaultAAta: { value: input.vaultAAta ?? null, isWritable: true },
|
|
6942
6932
|
vaultBAta: { value: input.vaultBAta ?? null, isWritable: true },
|
|
6943
6933
|
tunaPosition: { value: input.tunaPosition ?? null, isWritable: true },
|
|
6944
|
-
tunaPositionMint: {
|
|
6945
|
-
value: input.tunaPositionMint ?? null,
|
|
6946
|
-
isWritable: false
|
|
6947
|
-
},
|
|
6948
6934
|
tunaPositionAtaA: {
|
|
6949
6935
|
value: input.tunaPositionAtaA ?? null,
|
|
6950
6936
|
isWritable: true
|
|
@@ -7009,7 +6995,6 @@ function getOpenAndIncreaseTunaSpotPositionOrcaInstruction(input, config) {
|
|
|
7009
6995
|
getAccountMeta(accounts.vaultAAta),
|
|
7010
6996
|
getAccountMeta(accounts.vaultBAta),
|
|
7011
6997
|
getAccountMeta(accounts.tunaPosition),
|
|
7012
|
-
getAccountMeta(accounts.tunaPositionMint),
|
|
7013
6998
|
getAccountMeta(accounts.tunaPositionAtaA),
|
|
7014
6999
|
getAccountMeta(accounts.tunaPositionAtaB),
|
|
7015
7000
|
getAccountMeta(accounts.tunaPositionOwnerAtaA),
|
|
@@ -7032,7 +7017,7 @@ function getOpenAndIncreaseTunaSpotPositionOrcaInstruction(input, config) {
|
|
|
7032
7017
|
return instruction;
|
|
7033
7018
|
}
|
|
7034
7019
|
function parseOpenAndIncreaseTunaSpotPositionOrcaInstruction(instruction) {
|
|
7035
|
-
if (instruction.accounts.length <
|
|
7020
|
+
if (instruction.accounts.length < 25) {
|
|
7036
7021
|
throw new Error("Not enough accounts");
|
|
7037
7022
|
}
|
|
7038
7023
|
let accountIndex = 0;
|
|
@@ -7060,7 +7045,6 @@ function parseOpenAndIncreaseTunaSpotPositionOrcaInstruction(instruction) {
|
|
|
7060
7045
|
vaultAAta: getNextAccount(),
|
|
7061
7046
|
vaultBAta: getNextAccount(),
|
|
7062
7047
|
tunaPosition: getNextAccount(),
|
|
7063
|
-
tunaPositionMint: getNextAccount(),
|
|
7064
7048
|
tunaPositionAtaA: getNextAccount(),
|
|
7065
7049
|
tunaPositionAtaB: getNextAccount(),
|
|
7066
7050
|
tunaPositionOwnerAtaA: getNextOptionalAccount(),
|
|
@@ -7559,10 +7543,6 @@ function getOpenTunaSpotPositionFusionInstruction(input, config) {
|
|
|
7559
7543
|
tokenProgramA: { value: input.tokenProgramA ?? null, isWritable: false },
|
|
7560
7544
|
tokenProgramB: { value: input.tokenProgramB ?? null, isWritable: false },
|
|
7561
7545
|
tunaPosition: { value: input.tunaPosition ?? null, isWritable: true },
|
|
7562
|
-
tunaPositionMint: {
|
|
7563
|
-
value: input.tunaPositionMint ?? null,
|
|
7564
|
-
isWritable: false
|
|
7565
|
-
},
|
|
7566
7546
|
tunaPositionAtaA: {
|
|
7567
7547
|
value: input.tunaPositionAtaA ?? null,
|
|
7568
7548
|
isWritable: true
|
|
@@ -7592,7 +7572,6 @@ function getOpenTunaSpotPositionFusionInstruction(input, config) {
|
|
|
7592
7572
|
getAccountMeta(accounts.tokenProgramA),
|
|
7593
7573
|
getAccountMeta(accounts.tokenProgramB),
|
|
7594
7574
|
getAccountMeta(accounts.tunaPosition),
|
|
7595
|
-
getAccountMeta(accounts.tunaPositionMint),
|
|
7596
7575
|
getAccountMeta(accounts.tunaPositionAtaA),
|
|
7597
7576
|
getAccountMeta(accounts.tunaPositionAtaB),
|
|
7598
7577
|
getAccountMeta(accounts.fusionPool),
|
|
@@ -7607,7 +7586,7 @@ function getOpenTunaSpotPositionFusionInstruction(input, config) {
|
|
|
7607
7586
|
return instruction;
|
|
7608
7587
|
}
|
|
7609
7588
|
function parseOpenTunaSpotPositionFusionInstruction(instruction) {
|
|
7610
|
-
if (instruction.accounts.length <
|
|
7589
|
+
if (instruction.accounts.length < 11) {
|
|
7611
7590
|
throw new Error("Not enough accounts");
|
|
7612
7591
|
}
|
|
7613
7592
|
let accountIndex = 0;
|
|
@@ -7625,7 +7604,6 @@ function parseOpenTunaSpotPositionFusionInstruction(instruction) {
|
|
|
7625
7604
|
tokenProgramA: getNextAccount(),
|
|
7626
7605
|
tokenProgramB: getNextAccount(),
|
|
7627
7606
|
tunaPosition: getNextAccount(),
|
|
7628
|
-
tunaPositionMint: getNextAccount(),
|
|
7629
7607
|
tunaPositionAtaA: getNextAccount(),
|
|
7630
7608
|
tunaPositionAtaB: getNextAccount(),
|
|
7631
7609
|
fusionPool: getNextAccount(),
|
|
@@ -7696,10 +7674,6 @@ function getOpenTunaSpotPositionOrcaInstruction(input, config) {
|
|
|
7696
7674
|
tokenProgramA: { value: input.tokenProgramA ?? null, isWritable: false },
|
|
7697
7675
|
tokenProgramB: { value: input.tokenProgramB ?? null, isWritable: false },
|
|
7698
7676
|
tunaPosition: { value: input.tunaPosition ?? null, isWritable: true },
|
|
7699
|
-
tunaPositionMint: {
|
|
7700
|
-
value: input.tunaPositionMint ?? null,
|
|
7701
|
-
isWritable: false
|
|
7702
|
-
},
|
|
7703
7677
|
tunaPositionAtaA: {
|
|
7704
7678
|
value: input.tunaPositionAtaA ?? null,
|
|
7705
7679
|
isWritable: true
|
|
@@ -7729,7 +7703,6 @@ function getOpenTunaSpotPositionOrcaInstruction(input, config) {
|
|
|
7729
7703
|
getAccountMeta(accounts.tokenProgramA),
|
|
7730
7704
|
getAccountMeta(accounts.tokenProgramB),
|
|
7731
7705
|
getAccountMeta(accounts.tunaPosition),
|
|
7732
|
-
getAccountMeta(accounts.tunaPositionMint),
|
|
7733
7706
|
getAccountMeta(accounts.tunaPositionAtaA),
|
|
7734
7707
|
getAccountMeta(accounts.tunaPositionAtaB),
|
|
7735
7708
|
getAccountMeta(accounts.whirlpool),
|
|
@@ -7744,7 +7717,7 @@ function getOpenTunaSpotPositionOrcaInstruction(input, config) {
|
|
|
7744
7717
|
return instruction;
|
|
7745
7718
|
}
|
|
7746
7719
|
function parseOpenTunaSpotPositionOrcaInstruction(instruction) {
|
|
7747
|
-
if (instruction.accounts.length <
|
|
7720
|
+
if (instruction.accounts.length < 11) {
|
|
7748
7721
|
throw new Error("Not enough accounts");
|
|
7749
7722
|
}
|
|
7750
7723
|
let accountIndex = 0;
|
|
@@ -7762,7 +7735,6 @@ function parseOpenTunaSpotPositionOrcaInstruction(instruction) {
|
|
|
7762
7735
|
tokenProgramA: getNextAccount(),
|
|
7763
7736
|
tokenProgramB: getNextAccount(),
|
|
7764
7737
|
tunaPosition: getNextAccount(),
|
|
7765
|
-
tunaPositionMint: getNextAccount(),
|
|
7766
7738
|
tunaPositionAtaA: getNextAccount(),
|
|
7767
7739
|
tunaPositionAtaB: getNextAccount(),
|
|
7768
7740
|
whirlpool: getNextAccount(),
|
|
@@ -9767,10 +9739,10 @@ async function getLendingVaultAddress(mint) {
|
|
|
9767
9739
|
seeds: ["vault", (0, import_kit72.getAddressEncoder)().encode(mint)]
|
|
9768
9740
|
});
|
|
9769
9741
|
}
|
|
9770
|
-
async function getLendingPositionAddress(
|
|
9742
|
+
async function getLendingPositionAddress(authority, mint) {
|
|
9771
9743
|
return await (0, import_kit72.getProgramDerivedAddress)({
|
|
9772
9744
|
programAddress: TUNA_PROGRAM_ADDRESS,
|
|
9773
|
-
seeds: ["lending_position", (0, import_kit72.getAddressEncoder)().encode(
|
|
9745
|
+
seeds: ["lending_position", (0, import_kit72.getAddressEncoder)().encode(authority), (0, import_kit72.getAddressEncoder)().encode(mint)]
|
|
9774
9746
|
});
|
|
9775
9747
|
}
|
|
9776
9748
|
async function getTunaLpPositionAddress(positionMint) {
|
|
@@ -9779,10 +9751,10 @@ async function getTunaLpPositionAddress(positionMint) {
|
|
|
9779
9751
|
seeds: ["tuna_position", (0, import_kit72.getAddressEncoder)().encode(positionMint)]
|
|
9780
9752
|
});
|
|
9781
9753
|
}
|
|
9782
|
-
async function getTunaSpotPositionAddress(
|
|
9754
|
+
async function getTunaSpotPositionAddress(authority, pool) {
|
|
9783
9755
|
return await (0, import_kit72.getProgramDerivedAddress)({
|
|
9784
9756
|
programAddress: TUNA_PROGRAM_ADDRESS,
|
|
9785
|
-
seeds: ["tuna_spot_position", (0, import_kit72.getAddressEncoder)().encode(
|
|
9757
|
+
seeds: ["tuna_spot_position", (0, import_kit72.getAddressEncoder)().encode(authority), (0, import_kit72.getAddressEncoder)().encode(pool)]
|
|
9786
9758
|
});
|
|
9787
9759
|
}
|
|
9788
9760
|
async function getPythPriceUpdateAccountAddress(shardId, priceFeedId) {
|
|
@@ -9935,15 +9907,6 @@ function tunaSpotPositionMintBFilter(address4) {
|
|
|
9935
9907
|
}
|
|
9936
9908
|
};
|
|
9937
9909
|
}
|
|
9938
|
-
function tunaSpotPositionMintFilter(address4) {
|
|
9939
|
-
return {
|
|
9940
|
-
memcmp: {
|
|
9941
|
-
offset: 139n,
|
|
9942
|
-
bytes: (0, import_kit75.getBase58Decoder)().decode((0, import_kit75.getAddressEncoder)().encode(address4)),
|
|
9943
|
-
encoding: "base58"
|
|
9944
|
-
}
|
|
9945
|
-
};
|
|
9946
|
-
}
|
|
9947
9910
|
async function fetchAllTunaSpotPositionWithFilter(rpc, ...filters) {
|
|
9948
9911
|
const discriminator = (0, import_kit75.getBase58Decoder)().decode(TUNA_SPOT_POSITION_DISCRIMINATOR);
|
|
9949
9912
|
const discriminatorFilter = {
|
|
@@ -10161,10 +10124,9 @@ async function createAddressLookupTableInstructions(authority, addresses, recent
|
|
|
10161
10124
|
return { instructions: [createInstruction, extendInstruction], lookupTableAddress: pda[0] };
|
|
10162
10125
|
}
|
|
10163
10126
|
|
|
10164
|
-
// src/utils/
|
|
10127
|
+
// src/utils/lpPositionMath.ts
|
|
10165
10128
|
var import_fusionamm_core3 = require("@crypticdot/fusionamm-core");
|
|
10166
|
-
|
|
10167
|
-
function getLiquidityIncreaseQuote(args) {
|
|
10129
|
+
function getIncreaseLpPositionQuote(args) {
|
|
10168
10130
|
const { protocolFeeRate, protocolFeeRateOnCollateral, swapFeeRate, sqrtPrice, tickLowerIndex, tickUpperIndex } = args;
|
|
10169
10131
|
let { collateralA, collateralB, borrowA, borrowB } = args;
|
|
10170
10132
|
if (tickLowerIndex > tickUpperIndex) {
|
|
@@ -10176,7 +10138,7 @@ function getLiquidityIncreaseQuote(args) {
|
|
|
10176
10138
|
if (args.collateralA == COMPUTED_AMOUNT && args.collateralB == COMPUTED_AMOUNT) {
|
|
10177
10139
|
throw new Error("Both collateral amounts can't be set to COMPUTED_AMOUNT");
|
|
10178
10140
|
}
|
|
10179
|
-
const maxAmountSlippage =
|
|
10141
|
+
const maxAmountSlippage = BigInt(args.maxAmountSlippage);
|
|
10180
10142
|
let maxCollateralA = BigInt(collateralA);
|
|
10181
10143
|
let maxCollateralB = BigInt(collateralB);
|
|
10182
10144
|
const lowerSqrtPrice = (0, import_fusionamm_core3.tickIndexToSqrtPrice)(tickLowerIndex);
|
|
@@ -10292,7 +10254,7 @@ async function increaseTunaLpPositionOrcaInstructions(rpc, authority, positionMi
|
|
|
10292
10254
|
const [mintA, mintB] = await (0, import_token_20222.fetchAllMaybeMint)(rpc, [whirlpool.data.tokenMintA, whirlpool.data.tokenMintB]);
|
|
10293
10255
|
(0, import_assert.default)(mintA.exists, "Token A not found");
|
|
10294
10256
|
(0, import_assert.default)(mintB.exists, "Token B not found");
|
|
10295
|
-
const increaseAmounts =
|
|
10257
|
+
const increaseAmounts = getIncreaseLpPositionQuote({
|
|
10296
10258
|
collateralA: BigInt(args.collateralA),
|
|
10297
10259
|
collateralB: BigInt(args.collateralB),
|
|
10298
10260
|
borrowA: BigInt(args.borrowA),
|
|
@@ -10523,7 +10485,7 @@ async function increaseTunaLpPositionFusionInstructions(rpc, authority, position
|
|
|
10523
10485
|
const [mintA, mintB] = await (0, import_token_20223.fetchAllMaybeMint)(rpc, [fusionPool.data.tokenMintA, fusionPool.data.tokenMintB]);
|
|
10524
10486
|
(0, import_assert2.default)(mintA.exists, "Token A not found");
|
|
10525
10487
|
(0, import_assert2.default)(mintB.exists, "Token B not found");
|
|
10526
|
-
const increaseAmounts =
|
|
10488
|
+
const increaseAmounts = getIncreaseLpPositionQuote({
|
|
10527
10489
|
collateralA: BigInt(args.collateralA),
|
|
10528
10490
|
collateralB: BigInt(args.collateralB),
|
|
10529
10491
|
borrowA: BigInt(args.borrowA),
|
|
@@ -11637,8 +11599,9 @@ var import_kit86 = require("@solana/kit");
|
|
|
11637
11599
|
var import_memo8 = require("@solana-program/memo");
|
|
11638
11600
|
var import_token_202213 = require("@solana-program/token-2022");
|
|
11639
11601
|
var import_assert11 = __toESM(require("assert"));
|
|
11640
|
-
async function closeActiveTunaSpotPositionFusionInstructions(rpc, authority,
|
|
11641
|
-
const
|
|
11602
|
+
async function closeActiveTunaSpotPositionFusionInstructions(rpc, authority, fusionPoolAddress, args, createInstructions, cleanupInstructions) {
|
|
11603
|
+
const tunaPositionAddress = (await getTunaSpotPositionAddress(authority.address, fusionPoolAddress))[0];
|
|
11604
|
+
const tunaPosition = await fetchMaybeTunaSpotPosition(rpc, tunaPositionAddress);
|
|
11642
11605
|
if (!tunaPosition.exists) throw new Error("Tuna position account not found");
|
|
11643
11606
|
const fusionPool = await (0, import_fusionamm_client7.fetchMaybeFusionPool)(rpc, tunaPosition.data.pool);
|
|
11644
11607
|
if (!fusionPool.exists) throw new Error("FusionPool account not found");
|
|
@@ -11760,8 +11723,9 @@ var import_kit87 = require("@solana/kit");
|
|
|
11760
11723
|
var import_memo9 = require("@solana-program/memo");
|
|
11761
11724
|
var import_token_202214 = require("@solana-program/token-2022");
|
|
11762
11725
|
var import_assert12 = __toESM(require("assert"));
|
|
11763
|
-
async function closeActiveTunaSpotPositionOrcaInstructions(rpc, authority,
|
|
11764
|
-
const
|
|
11726
|
+
async function closeActiveTunaSpotPositionOrcaInstructions(rpc, authority, whirlpoolAddress, args, createInstructions, cleanupInstructions) {
|
|
11727
|
+
const tunaPositionAddress = (await getTunaSpotPositionAddress(authority.address, whirlpoolAddress))[0];
|
|
11728
|
+
const tunaPosition = await fetchMaybeTunaSpotPosition(rpc, tunaPositionAddress);
|
|
11765
11729
|
if (!tunaPosition.exists) throw new Error("Tuna position account not found");
|
|
11766
11730
|
const whirlpool = await (0, import_whirlpools_client7.fetchMaybeWhirlpool)(rpc, tunaPosition.data.pool);
|
|
11767
11731
|
if (!whirlpool.exists) throw new Error("Whirlpool account not found");
|
|
@@ -11886,11 +11850,12 @@ var import_kit88 = require("@solana/kit");
|
|
|
11886
11850
|
var import_memo10 = require("@solana-program/memo");
|
|
11887
11851
|
var import_token_202215 = require("@solana-program/token-2022");
|
|
11888
11852
|
var import_assert13 = __toESM(require("assert"));
|
|
11889
|
-
async function increaseTunaSpotPositionOrcaInstructions(rpc, authority,
|
|
11853
|
+
async function increaseTunaSpotPositionOrcaInstructions(rpc, authority, whirlpoolAddress, args, createInstructions, cleanupInstructions) {
|
|
11890
11854
|
const instructions = [];
|
|
11891
11855
|
if (!createInstructions) createInstructions = instructions;
|
|
11892
11856
|
if (!cleanupInstructions) cleanupInstructions = instructions;
|
|
11893
|
-
const
|
|
11857
|
+
const tunaPositionAddress = (await getTunaSpotPositionAddress(authority.address, whirlpoolAddress))[0];
|
|
11858
|
+
const tunaPosition = await fetchMaybeTunaSpotPosition(rpc, tunaPositionAddress);
|
|
11894
11859
|
if (!tunaPosition.exists) throw new Error("Tuna position account not found");
|
|
11895
11860
|
const tunaConfig = await fetchTunaConfig(rpc, (await getTunaConfigAddress())[0]);
|
|
11896
11861
|
const whirlpool = await (0, import_whirlpools_client8.fetchWhirlpool)(rpc, tunaPosition.data.pool);
|
|
@@ -12041,11 +12006,12 @@ var import_kit89 = require("@solana/kit");
|
|
|
12041
12006
|
var import_memo11 = require("@solana-program/memo");
|
|
12042
12007
|
var import_token_202216 = require("@solana-program/token-2022");
|
|
12043
12008
|
var import_assert14 = __toESM(require("assert"));
|
|
12044
|
-
async function increaseTunaSpotPositionFusionInstructions(rpc, authority,
|
|
12009
|
+
async function increaseTunaSpotPositionFusionInstructions(rpc, authority, fusionPoolAddress, args, createInstructions, cleanupInstructions) {
|
|
12045
12010
|
const instructions = [];
|
|
12046
12011
|
if (!createInstructions) createInstructions = instructions;
|
|
12047
12012
|
if (!cleanupInstructions) cleanupInstructions = instructions;
|
|
12048
|
-
const
|
|
12013
|
+
const tunaPositionAddress = (await getTunaSpotPositionAddress(authority.address, fusionPoolAddress))[0];
|
|
12014
|
+
const tunaPosition = await fetchMaybeTunaSpotPosition(rpc, tunaPositionAddress);
|
|
12049
12015
|
if (!tunaPosition.exists) throw new Error("Tuna position account not found");
|
|
12050
12016
|
const tunaConfig = await fetchTunaConfig(rpc, (await getTunaConfigAddress())[0]);
|
|
12051
12017
|
const fusionPool = await (0, import_fusionamm_client8.fetchFusionPool)(rpc, tunaPosition.data.pool);
|
|
@@ -12193,11 +12159,12 @@ var import_kit90 = require("@solana/kit");
|
|
|
12193
12159
|
var import_memo12 = require("@solana-program/memo");
|
|
12194
12160
|
var import_token_202217 = require("@solana-program/token-2022");
|
|
12195
12161
|
var import_assert15 = __toESM(require("assert"));
|
|
12196
|
-
async function decreaseTunaSpotPositionOrcaInstructions(rpc, authority,
|
|
12162
|
+
async function decreaseTunaSpotPositionOrcaInstructions(rpc, authority, whirlpoolAddress, args, createInstructions, cleanupInstructions) {
|
|
12197
12163
|
const instructions = [];
|
|
12198
12164
|
if (!createInstructions) createInstructions = instructions;
|
|
12199
12165
|
if (!cleanupInstructions) cleanupInstructions = instructions;
|
|
12200
|
-
const
|
|
12166
|
+
const tunaPositionAddress = (await getTunaSpotPositionAddress(authority.address, whirlpoolAddress))[0];
|
|
12167
|
+
const tunaPosition = await fetchMaybeTunaSpotPosition(rpc, tunaPositionAddress);
|
|
12201
12168
|
if (!tunaPosition.exists) throw new Error("Tuna position account not found");
|
|
12202
12169
|
const tunaConfig = await fetchTunaConfig(rpc, (await getTunaConfigAddress())[0]);
|
|
12203
12170
|
const whirlpool = await (0, import_whirlpools_client9.fetchWhirlpool)(rpc, tunaPosition.data.pool);
|
|
@@ -12346,11 +12313,12 @@ var import_kit91 = require("@solana/kit");
|
|
|
12346
12313
|
var import_memo13 = require("@solana-program/memo");
|
|
12347
12314
|
var import_token_202218 = require("@solana-program/token-2022");
|
|
12348
12315
|
var import_assert16 = __toESM(require("assert"));
|
|
12349
|
-
async function decreaseTunaSpotPositionFusionInstructions(rpc, authority,
|
|
12316
|
+
async function decreaseTunaSpotPositionFusionInstructions(rpc, authority, fusionPoolAddress, args, createInstructions, cleanupInstructions) {
|
|
12350
12317
|
const instructions = [];
|
|
12351
12318
|
if (!createInstructions) createInstructions = instructions;
|
|
12352
12319
|
if (!cleanupInstructions) cleanupInstructions = instructions;
|
|
12353
|
-
const
|
|
12320
|
+
const tunaPositionAddress = (await getTunaSpotPositionAddress(authority.address, fusionPoolAddress))[0];
|
|
12321
|
+
const tunaPosition = await fetchMaybeTunaSpotPosition(rpc, tunaPositionAddress);
|
|
12354
12322
|
if (!tunaPosition.exists) throw new Error("Tuna position account not found");
|
|
12355
12323
|
const tunaConfig = await fetchTunaConfig(rpc, (await getTunaConfigAddress())[0]);
|
|
12356
12324
|
const fusionPool = await (0, import_fusionamm_client9.fetchFusionPool)(rpc, tunaPosition.data.pool);
|
|
@@ -12493,17 +12461,18 @@ async function decreaseTunaSpotPositionFusionInstruction(authority, tunaPosition
|
|
|
12493
12461
|
// src/txbuilder/closeTunaSpotPosition.ts
|
|
12494
12462
|
var import_token_202219 = require("@solana-program/token-2022");
|
|
12495
12463
|
var import_assert17 = __toESM(require("assert"));
|
|
12496
|
-
async function closeTunaSpotPositionInstructions(rpc, authority,
|
|
12497
|
-
const tunaPositionAddress = (await getTunaSpotPositionAddress(
|
|
12498
|
-
const tunaPosition = await
|
|
12464
|
+
async function closeTunaSpotPositionInstructions(rpc, authority, poolAddress) {
|
|
12465
|
+
const tunaPositionAddress = (await getTunaSpotPositionAddress(authority.address, poolAddress))[0];
|
|
12466
|
+
const tunaPosition = await fetchMaybeTunaSpotPosition(rpc, tunaPositionAddress);
|
|
12467
|
+
if (!tunaPosition.exists) throw new Error("Tuna position account not found");
|
|
12499
12468
|
const [mintA, mintB] = await (0, import_token_202219.fetchAllMaybeMint)(rpc, [tunaPosition.data.mintA, tunaPosition.data.mintB]);
|
|
12500
12469
|
(0, import_assert17.default)(mintA.exists, "Token A account not found");
|
|
12501
12470
|
(0, import_assert17.default)(mintB.exists, "Token B account not found");
|
|
12502
|
-
const ix = await closeTunaSpotPositionInstruction(authority,
|
|
12471
|
+
const ix = await closeTunaSpotPositionInstruction(authority, poolAddress, mintA, mintB);
|
|
12503
12472
|
return [ix];
|
|
12504
12473
|
}
|
|
12505
|
-
async function closeTunaSpotPositionInstruction(authority,
|
|
12506
|
-
const tunaPositionAddress = (await getTunaSpotPositionAddress(
|
|
12474
|
+
async function closeTunaSpotPositionInstruction(authority, poolAddress, mintA, mintB) {
|
|
12475
|
+
const tunaPositionAddress = (await getTunaSpotPositionAddress(authority.address, poolAddress))[0];
|
|
12507
12476
|
const tunaPositionAtaA = (await (0, import_token_202219.findAssociatedTokenPda)({
|
|
12508
12477
|
owner: tunaPositionAddress,
|
|
12509
12478
|
mint: mintA.address,
|
|
@@ -12873,7 +12842,7 @@ async function liquidateTunaSpotPositionFusionInstructions(authority, tunaPositi
|
|
|
12873
12842
|
instructions.push(...createFeeRecipientAtaInstructions.init);
|
|
12874
12843
|
const ix = await liquidateTunaSpotPositionFusionInstruction(
|
|
12875
12844
|
authority,
|
|
12876
|
-
tunaPosition.
|
|
12845
|
+
tunaPosition.address,
|
|
12877
12846
|
tunaConfig,
|
|
12878
12847
|
mintA,
|
|
12879
12848
|
mintB,
|
|
@@ -12885,8 +12854,7 @@ async function liquidateTunaSpotPositionFusionInstructions(authority, tunaPositi
|
|
|
12885
12854
|
instructions.push(ix);
|
|
12886
12855
|
return instructions;
|
|
12887
12856
|
}
|
|
12888
|
-
async function liquidateTunaSpotPositionFusionInstruction(authority,
|
|
12889
|
-
const tunaPositionAddress = (await getTunaSpotPositionAddress(positionMint))[0];
|
|
12857
|
+
async function liquidateTunaSpotPositionFusionInstruction(authority, tunaPositionAddress, tunaConfig, mintA, mintB, vaultA, vaultB, fusionPool, withdrawPercent) {
|
|
12890
12858
|
const marketAddress = (await getMarketAddress(fusionPool.address))[0];
|
|
12891
12859
|
const tunaPositionAtaA = (await (0, import_token_202223.findAssociatedTokenPda)({
|
|
12892
12860
|
owner: tunaPositionAddress,
|
|
@@ -12982,7 +12950,7 @@ async function liquidateTunaSpotPositionOrcaInstructions(authority, tunaPosition
|
|
|
12982
12950
|
instructions.push(...createFeeRecipientAtaInstructions.init);
|
|
12983
12951
|
const ix = await liquidateTunaSpotPositionOrcaInstruction(
|
|
12984
12952
|
authority,
|
|
12985
|
-
tunaPosition.
|
|
12953
|
+
tunaPosition.address,
|
|
12986
12954
|
tunaConfig,
|
|
12987
12955
|
mintA,
|
|
12988
12956
|
mintB,
|
|
@@ -12994,8 +12962,7 @@ async function liquidateTunaSpotPositionOrcaInstructions(authority, tunaPosition
|
|
|
12994
12962
|
instructions.push(ix);
|
|
12995
12963
|
return instructions;
|
|
12996
12964
|
}
|
|
12997
|
-
async function liquidateTunaSpotPositionOrcaInstruction(authority,
|
|
12998
|
-
const tunaPositionAddress = (await getTunaSpotPositionAddress(positionMint))[0];
|
|
12965
|
+
async function liquidateTunaSpotPositionOrcaInstruction(authority, tunaPositionAddress, tunaConfig, mintA, mintB, vaultA, vaultB, whirlpool, withdrawPercent) {
|
|
12999
12966
|
const marketAddress = (await getMarketAddress(whirlpool.address))[0];
|
|
13000
12967
|
const orcaOracleAddress = (await (0, import_whirlpools_client11.getOracleAddress)(whirlpool.address))[0];
|
|
13001
12968
|
const tunaPositionAtaA = (await (0, import_token_202224.findAssociatedTokenPda)({
|
|
@@ -13215,7 +13182,7 @@ async function openAndIncreaseTunaLpPositionOrcaInstructions(rpc, authority, whi
|
|
|
13215
13182
|
(await getLendingVaultAddress(whirlpool.data.tokenMintA))[0],
|
|
13216
13183
|
(await getLendingVaultAddress(whirlpool.data.tokenMintB))[0]
|
|
13217
13184
|
]);
|
|
13218
|
-
const increaseAmounts =
|
|
13185
|
+
const increaseAmounts = getIncreaseLpPositionQuote({
|
|
13219
13186
|
collateralA: BigInt(args.collateralA),
|
|
13220
13187
|
collateralB: BigInt(args.collateralB),
|
|
13221
13188
|
borrowA: BigInt(args.borrowA),
|
|
@@ -13453,7 +13420,7 @@ async function openAndIncreaseTunaLpPositionFusionInstructions(rpc, authority, f
|
|
|
13453
13420
|
(await getLendingVaultAddress(fusionPool.data.tokenMintA))[0],
|
|
13454
13421
|
(await getLendingVaultAddress(fusionPool.data.tokenMintB))[0]
|
|
13455
13422
|
]);
|
|
13456
|
-
const increaseAmounts =
|
|
13423
|
+
const increaseAmounts = getIncreaseLpPositionQuote({
|
|
13457
13424
|
collateralA: BigInt(args.collateralA),
|
|
13458
13425
|
collateralB: BigInt(args.collateralB),
|
|
13459
13426
|
borrowA: BigInt(args.borrowA),
|
|
@@ -13669,7 +13636,6 @@ async function openAndIncreaseTunaSpotPositionFusionInstructions(rpc, authority,
|
|
|
13669
13636
|
const instructions = [];
|
|
13670
13637
|
if (!createInstructions) createInstructions = instructions;
|
|
13671
13638
|
if (!cleanupInstructions) cleanupInstructions = instructions;
|
|
13672
|
-
const positionMint = await (0, import_kit98.generateKeyPairSigner)();
|
|
13673
13639
|
const tunaConfig = await fetchTunaConfig(rpc, (await getTunaConfigAddress())[0]);
|
|
13674
13640
|
const fusionPool = await (0, import_fusionamm_client15.fetchMaybeFusionPool)(rpc, fusionPoolAddress);
|
|
13675
13641
|
if (!fusionPool.exists) throw new Error("FusionPool account not found");
|
|
@@ -13708,7 +13674,6 @@ async function openAndIncreaseTunaSpotPositionFusionInstructions(rpc, authority,
|
|
|
13708
13674
|
createInstructions.push(...createFeeRecipientAtaBInstructions.init);
|
|
13709
13675
|
const ix = await openAndIncreaseTunaSpotPositionFusionInstruction(
|
|
13710
13676
|
authority,
|
|
13711
|
-
positionMint,
|
|
13712
13677
|
tunaConfig,
|
|
13713
13678
|
mintA,
|
|
13714
13679
|
mintB,
|
|
@@ -13719,13 +13684,10 @@ async function openAndIncreaseTunaSpotPositionFusionInstructions(rpc, authority,
|
|
|
13719
13684
|
);
|
|
13720
13685
|
instructions.push(ix);
|
|
13721
13686
|
cleanupInstructions.push(...createUserAtaInstructions.cleanup);
|
|
13722
|
-
return
|
|
13723
|
-
instructions,
|
|
13724
|
-
positionMint: positionMint.address
|
|
13725
|
-
};
|
|
13687
|
+
return instructions;
|
|
13726
13688
|
}
|
|
13727
|
-
async function openAndIncreaseTunaSpotPositionFusionInstruction(authority,
|
|
13728
|
-
const tunaPositionAddress = (await getTunaSpotPositionAddress(
|
|
13689
|
+
async function openAndIncreaseTunaSpotPositionFusionInstruction(authority, tunaConfig, mintA, mintB, vaultA, vaultB, fusionPool, args) {
|
|
13690
|
+
const tunaPositionAddress = (await getTunaSpotPositionAddress(authority.address, fusionPool.address))[0];
|
|
13729
13691
|
const marketAddress = (await getMarketAddress(fusionPool.address))[0];
|
|
13730
13692
|
const tunaPositionOwnerAtaA = (await (0, import_token_202229.findAssociatedTokenPda)({
|
|
13731
13693
|
owner: authority.address,
|
|
@@ -13799,7 +13761,6 @@ async function openAndIncreaseTunaSpotPositionFusionInstruction(authority, posit
|
|
|
13799
13761
|
vaultB: vaultB.address,
|
|
13800
13762
|
vaultBAta,
|
|
13801
13763
|
tunaPosition: tunaPositionAddress,
|
|
13802
|
-
tunaPositionMint: positionMint,
|
|
13803
13764
|
tunaPositionAtaA,
|
|
13804
13765
|
tunaPositionAtaB,
|
|
13805
13766
|
tunaPositionOwnerAtaA: args.collateralToken == 0 /* A */ ? tunaPositionOwnerAtaA : void 0,
|
|
@@ -13827,7 +13788,6 @@ async function openAndIncreaseTunaSpotPositionOrcaInstructions(rpc, authority, w
|
|
|
13827
13788
|
const instructions = [];
|
|
13828
13789
|
if (!createInstructions) createInstructions = instructions;
|
|
13829
13790
|
if (!cleanupInstructions) cleanupInstructions = instructions;
|
|
13830
|
-
const positionMint = await (0, import_kit99.generateKeyPairSigner)();
|
|
13831
13791
|
const tunaConfig = await fetchTunaConfig(rpc, (await getTunaConfigAddress())[0]);
|
|
13832
13792
|
const whirlpool = await (0, import_whirlpools_client14.fetchMaybeWhirlpool)(rpc, whirlpoolAddress);
|
|
13833
13793
|
if (!whirlpool.exists) throw new Error("Whirlpool account not found");
|
|
@@ -13866,7 +13826,6 @@ async function openAndIncreaseTunaSpotPositionOrcaInstructions(rpc, authority, w
|
|
|
13866
13826
|
createInstructions.push(...createFeeRecipientAtaBInstructions.init);
|
|
13867
13827
|
const ix = await openAndIncreaseTunaSpotPositionOrcaInstruction(
|
|
13868
13828
|
authority,
|
|
13869
|
-
positionMint,
|
|
13870
13829
|
tunaConfig,
|
|
13871
13830
|
mintA,
|
|
13872
13831
|
mintB,
|
|
@@ -13877,13 +13836,10 @@ async function openAndIncreaseTunaSpotPositionOrcaInstructions(rpc, authority, w
|
|
|
13877
13836
|
);
|
|
13878
13837
|
instructions.push(ix);
|
|
13879
13838
|
cleanupInstructions.push(...createUserAtaInstructions.cleanup);
|
|
13880
|
-
return
|
|
13881
|
-
instructions,
|
|
13882
|
-
positionMint: positionMint.address
|
|
13883
|
-
};
|
|
13839
|
+
return instructions;
|
|
13884
13840
|
}
|
|
13885
|
-
async function openAndIncreaseTunaSpotPositionOrcaInstruction(authority,
|
|
13886
|
-
const tunaPositionAddress = (await getTunaSpotPositionAddress(
|
|
13841
|
+
async function openAndIncreaseTunaSpotPositionOrcaInstruction(authority, tunaConfig, mintA, mintB, vaultA, vaultB, whirlpool, args) {
|
|
13842
|
+
const tunaPositionAddress = (await getTunaSpotPositionAddress(authority.address, whirlpool.address))[0];
|
|
13887
13843
|
const marketAddress = (await getMarketAddress(whirlpool.address))[0];
|
|
13888
13844
|
const orcaOracleAddress = (await (0, import_whirlpools_client14.getOracleAddress)(whirlpool.address))[0];
|
|
13889
13845
|
const tunaPositionOwnerAtaA = (await (0, import_token_202230.findAssociatedTokenPda)({
|
|
@@ -13960,7 +13916,6 @@ async function openAndIncreaseTunaSpotPositionOrcaInstruction(authority, positio
|
|
|
13960
13916
|
vaultB: vaultB.address,
|
|
13961
13917
|
vaultBAta,
|
|
13962
13918
|
tunaPosition: tunaPositionAddress,
|
|
13963
|
-
tunaPositionMint: positionMint,
|
|
13964
13919
|
tunaPositionAtaA,
|
|
13965
13920
|
tunaPositionAtaB,
|
|
13966
13921
|
tunaPositionOwnerAtaA: args.collateralToken == 0 /* A */ ? tunaPositionOwnerAtaA : void 0,
|
|
@@ -13982,24 +13937,17 @@ async function openAndIncreaseTunaSpotPositionOrcaInstruction(authority, positio
|
|
|
13982
13937
|
var import_fusionamm_client16 = require("@crypticdot/fusionamm-client");
|
|
13983
13938
|
var import_token_202231 = require("@solana-program/token-2022");
|
|
13984
13939
|
var import_assert24 = __toESM(require("assert"));
|
|
13985
|
-
async function openTunaSpotPositionFusionInstructions(rpc, authority,
|
|
13940
|
+
async function openTunaSpotPositionFusionInstructions(rpc, authority, fusionPoolAddress, args) {
|
|
13986
13941
|
const fusionPool = await (0, import_fusionamm_client16.fetchMaybeFusionPool)(rpc, fusionPoolAddress);
|
|
13987
13942
|
if (!fusionPool.exists) throw new Error("FusionPool account not found");
|
|
13988
13943
|
const [mintA, mintB] = await (0, import_token_202231.fetchAllMaybeMint)(rpc, [fusionPool.data.tokenMintA, fusionPool.data.tokenMintB]);
|
|
13989
13944
|
(0, import_assert24.default)(mintA.exists, "Token A account not found");
|
|
13990
13945
|
(0, import_assert24.default)(mintB.exists, "Token B account not found");
|
|
13991
|
-
const ix = await openTunaSpotPositionFusionInstruction(
|
|
13992
|
-
authority,
|
|
13993
|
-
positionMint,
|
|
13994
|
-
mintA,
|
|
13995
|
-
mintB,
|
|
13996
|
-
fusionPoolAddress,
|
|
13997
|
-
args
|
|
13998
|
-
);
|
|
13946
|
+
const ix = await openTunaSpotPositionFusionInstruction(authority, mintA, mintB, fusionPoolAddress, args);
|
|
13999
13947
|
return [ix];
|
|
14000
13948
|
}
|
|
14001
|
-
async function openTunaSpotPositionFusionInstruction(authority,
|
|
14002
|
-
const tunaPositionAddress = (await getTunaSpotPositionAddress(
|
|
13949
|
+
async function openTunaSpotPositionFusionInstruction(authority, mintA, mintB, fusionPoolAddress, args) {
|
|
13950
|
+
const tunaPositionAddress = (await getTunaSpotPositionAddress(authority.address, fusionPoolAddress))[0];
|
|
14003
13951
|
const tunaPositionAtaA = (await (0, import_token_202231.findAssociatedTokenPda)({
|
|
14004
13952
|
owner: tunaPositionAddress,
|
|
14005
13953
|
mint: mintA.address,
|
|
@@ -14017,7 +13965,6 @@ async function openTunaSpotPositionFusionInstruction(authority, positionMint, mi
|
|
|
14017
13965
|
tokenProgramA: mintA.programAddress,
|
|
14018
13966
|
tokenProgramB: mintB.programAddress,
|
|
14019
13967
|
tunaPosition: tunaPositionAddress,
|
|
14020
|
-
tunaPositionMint: positionMint,
|
|
14021
13968
|
tunaPositionAtaA,
|
|
14022
13969
|
tunaPositionAtaB,
|
|
14023
13970
|
fusionPool: fusionPoolAddress,
|
|
@@ -14030,17 +13977,17 @@ async function openTunaSpotPositionFusionInstruction(authority, positionMint, mi
|
|
|
14030
13977
|
var import_whirlpools_client15 = require("@orca-so/whirlpools-client");
|
|
14031
13978
|
var import_token_202232 = require("@solana-program/token-2022");
|
|
14032
13979
|
var import_assert25 = __toESM(require("assert"));
|
|
14033
|
-
async function openTunaSpotPositionOrcaInstructions(rpc, authority,
|
|
13980
|
+
async function openTunaSpotPositionOrcaInstructions(rpc, authority, whirlpoolAddress, args) {
|
|
14034
13981
|
const whirlpool = await (0, import_whirlpools_client15.fetchMaybeWhirlpool)(rpc, whirlpoolAddress);
|
|
14035
13982
|
if (!whirlpool.exists) throw new Error("Whirlpool account not found");
|
|
14036
13983
|
const [mintA, mintB] = await (0, import_token_202232.fetchAllMaybeMint)(rpc, [whirlpool.data.tokenMintA, whirlpool.data.tokenMintB]);
|
|
14037
13984
|
(0, import_assert25.default)(mintA.exists, "Token A account not found");
|
|
14038
13985
|
(0, import_assert25.default)(mintB.exists, "Token B account not found");
|
|
14039
|
-
const ix = await openTunaSpotPositionOrcaInstruction(authority,
|
|
13986
|
+
const ix = await openTunaSpotPositionOrcaInstruction(authority, mintA, mintB, whirlpoolAddress, args);
|
|
14040
13987
|
return [ix];
|
|
14041
13988
|
}
|
|
14042
|
-
async function openTunaSpotPositionOrcaInstruction(authority,
|
|
14043
|
-
const tunaPositionAddress = (await getTunaSpotPositionAddress(
|
|
13989
|
+
async function openTunaSpotPositionOrcaInstruction(authority, mintA, mintB, whirlpoolAddress, args) {
|
|
13990
|
+
const tunaPositionAddress = (await getTunaSpotPositionAddress(authority.address, whirlpoolAddress))[0];
|
|
14044
13991
|
const tunaPositionAtaA = (await (0, import_token_202232.findAssociatedTokenPda)({
|
|
14045
13992
|
owner: tunaPositionAddress,
|
|
14046
13993
|
mint: mintA.address,
|
|
@@ -14058,7 +14005,6 @@ async function openTunaSpotPositionOrcaInstruction(authority, positionMint, mint
|
|
|
14058
14005
|
tokenProgramA: mintA.programAddress,
|
|
14059
14006
|
tokenProgramB: mintB.programAddress,
|
|
14060
14007
|
tunaPosition: tunaPositionAddress,
|
|
14061
|
-
tunaPositionMint: positionMint,
|
|
14062
14008
|
tunaPositionAtaA,
|
|
14063
14009
|
tunaPositionAtaB,
|
|
14064
14010
|
whirlpool: whirlpoolAddress,
|
|
@@ -14475,13 +14421,8 @@ async function setTunaLpPositionLimitOrdersInstruction(authority, args, position
|
|
|
14475
14421
|
}
|
|
14476
14422
|
|
|
14477
14423
|
// src/txbuilder/setTunaSpotPositionLimitOrders.ts
|
|
14478
|
-
async function setTunaSpotPositionLimitOrdersInstruction(authority,
|
|
14479
|
-
|
|
14480
|
-
if (positionMint === void 0) {
|
|
14481
|
-
throw new Error("At least one of 'positionMint' or 'tunaPositionAddress' must be provided.");
|
|
14482
|
-
}
|
|
14483
|
-
tunaPositionAddress = (await getTunaSpotPositionAddress(positionMint))[0];
|
|
14484
|
-
}
|
|
14424
|
+
async function setTunaSpotPositionLimitOrdersInstruction(authority, poolAddress, args) {
|
|
14425
|
+
const tunaPositionAddress = (await getTunaSpotPositionAddress(authority.address, poolAddress))[0];
|
|
14485
14426
|
return getSetTunaSpotPositionLimitOrdersInstruction({
|
|
14486
14427
|
...args,
|
|
14487
14428
|
authority,
|
|
@@ -14492,13 +14433,8 @@ async function setTunaSpotPositionLimitOrdersInstruction(authority, args, positi
|
|
|
14492
14433
|
// src/txbuilder/resetTunaSpotPosition.ts
|
|
14493
14434
|
var import_token_202236 = require("@solana-program/token-2022");
|
|
14494
14435
|
var import_assert28 = __toESM(require("assert"));
|
|
14495
|
-
async function resetTunaSpotPositionInstruction(rpc, authority,
|
|
14496
|
-
|
|
14497
|
-
if (positionMint === void 0) {
|
|
14498
|
-
throw new Error("At least one of 'positionMint' or 'tunaPositionAddress' must be provided.");
|
|
14499
|
-
}
|
|
14500
|
-
tunaPositionAddress = (await getTunaSpotPositionAddress(positionMint))[0];
|
|
14501
|
-
}
|
|
14436
|
+
async function resetTunaSpotPositionInstruction(rpc, authority, poolAddress, args) {
|
|
14437
|
+
const tunaPositionAddress = (await getTunaSpotPositionAddress(authority.address, poolAddress))[0];
|
|
14502
14438
|
const tunaPosition = await fetchTunaSpotPosition(rpc, tunaPositionAddress);
|
|
14503
14439
|
const [mintA, mintB] = await (0, import_token_202236.fetchAllMaybeMint)(rpc, [tunaPosition.data.mintA, tunaPosition.data.mintB]);
|
|
14504
14440
|
(0, import_assert28.default)(mintA.exists, "Token A not found");
|
|
@@ -15164,7 +15100,6 @@ async function rebalanceTunaLpPositionFusionInstruction(authority, tunaPosition,
|
|
|
15164
15100
|
DECREASE_TUNA_SPOT_POSITION_FUSION_DISCRIMINATOR,
|
|
15165
15101
|
DECREASE_TUNA_SPOT_POSITION_ORCA_DISCRIMINATOR,
|
|
15166
15102
|
DEFAULT_ADDRESS,
|
|
15167
|
-
DEFAULT_MAX_AMOUNT_SLIPPAGE,
|
|
15168
15103
|
DEFAULT_MAX_SWAP_SLIPPAGE,
|
|
15169
15104
|
DEFAULT_PUSH_ORACLE_PROGRAM_ID,
|
|
15170
15105
|
DEPOSIT_DISCRIMINATOR,
|
|
@@ -15464,6 +15399,7 @@ async function rebalanceTunaLpPositionFusionInstruction(authority, tunaPosition,
|
|
|
15464
15399
|
getDepositInstructionDataCodec,
|
|
15465
15400
|
getDepositInstructionDataDecoder,
|
|
15466
15401
|
getDepositInstructionDataEncoder,
|
|
15402
|
+
getIncreaseLpPositionQuote,
|
|
15467
15403
|
getIncreaseTunaLpPositionFusionDiscriminatorBytes,
|
|
15468
15404
|
getIncreaseTunaLpPositionFusionInstruction,
|
|
15469
15405
|
getIncreaseTunaLpPositionFusionInstructionDataCodec,
|
|
@@ -15511,7 +15447,6 @@ async function rebalanceTunaLpPositionFusionInstruction(authority, tunaPosition,
|
|
|
15511
15447
|
getLiquidateTunaSpotPositionOrcaInstructionDataCodec,
|
|
15512
15448
|
getLiquidateTunaSpotPositionOrcaInstructionDataDecoder,
|
|
15513
15449
|
getLiquidateTunaSpotPositionOrcaInstructionDataEncoder,
|
|
15514
|
-
getLiquidityIncreaseQuote,
|
|
15515
15450
|
getMarketAddress,
|
|
15516
15451
|
getMarketCodec,
|
|
15517
15452
|
getMarketDecoder,
|
|
@@ -15814,7 +15749,6 @@ async function rebalanceTunaLpPositionFusionInstruction(authority, tunaPosition,
|
|
|
15814
15749
|
tunaSpotPositionAuthorityFilter,
|
|
15815
15750
|
tunaSpotPositionMintAFilter,
|
|
15816
15751
|
tunaSpotPositionMintBFilter,
|
|
15817
|
-
tunaSpotPositionMintFilter,
|
|
15818
15752
|
tunaSpotPositionPoolFilter,
|
|
15819
15753
|
updateMarketInstruction,
|
|
15820
15754
|
updateVaultInstruction,
|