@crypticdot/defituna-client 3.1.4 → 3.1.5

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 CHANGED
@@ -6859,11 +6859,11 @@ declare function closeActiveTunaLpPositionFusionInstructions(rpc: Rpc<GetAccount
6859
6859
 
6860
6860
  type CloseActiveTunaSpotPositionFusionInstructionsArgs = Omit<CloseActiveTunaSpotPositionFusionInstructionDataArgs, "remainingAccountsInfo">;
6861
6861
  declare function closeActiveTunaSpotPositionFusionInstructions(rpc: Rpc<GetAccountInfoApi & GetMultipleAccountsApi>, authority: TransactionSigner, fusionPoolAddress: Address, args: CloseActiveTunaSpotPositionFusionInstructionsArgs, createInstructions?: IInstruction[], cleanupInstructions?: IInstruction[]): Promise<IInstruction[]>;
6862
- declare function closeActiveTunaSpotPositionFusionInstruction(authority: TransactionSigner, tunaPositionAddress: Address, mintA: Account<Mint>, mintB: Account<Mint>, vaultA: Account<Vault>, vaultB: Account<Vault>, fusionPool: Account<FusionPool>, args: CloseActiveTunaSpotPositionFusionInstructionsArgs): Promise<IInstruction>;
6862
+ declare function closeActiveTunaSpotPositionFusionInstruction(authority: TransactionSigner, tunaPosition: Account<TunaSpotPosition>, mintA: Account<Mint>, mintB: Account<Mint>, vaultA: Account<Vault>, vaultB: Account<Vault>, fusionPool: Account<FusionPool>, setTunaPositionOwnerAtaA: boolean, setTunaPositionOwnerAtaB: boolean, args: CloseActiveTunaSpotPositionFusionInstructionsArgs): Promise<IInstruction>;
6863
6863
 
6864
6864
  type CloseActiveTunaSpotPositionOrcaInstructionsArgs = Omit<CloseActiveTunaSpotPositionOrcaInstructionDataArgs, "remainingAccountsInfo">;
6865
6865
  declare function closeActiveTunaSpotPositionOrcaInstructions(rpc: Rpc<GetAccountInfoApi & GetMultipleAccountsApi>, authority: TransactionSigner, whirlpoolAddress: Address, args: CloseActiveTunaSpotPositionOrcaInstructionsArgs, createInstructions?: IInstruction[], cleanupInstructions?: IInstruction[]): Promise<IInstruction[]>;
6866
- declare function closeActiveTunaSpotPositionOrcaInstruction(authority: TransactionSigner, tunaPositionAddress: Address, mintA: Account<Mint>, mintB: Account<Mint>, vaultA: Account<Vault>, vaultB: Account<Vault>, whirlpool: Account<Whirlpool>, args: CloseActiveTunaSpotPositionOrcaInstructionsArgs): Promise<IInstruction>;
6866
+ declare function closeActiveTunaSpotPositionOrcaInstruction(authority: TransactionSigner, tunaPosition: Account<TunaSpotPosition>, mintA: Account<Mint>, mintB: Account<Mint>, vaultA: Account<Vault>, vaultB: Account<Vault>, whirlpool: Account<Whirlpool>, setTunaPositionOwnerAtaA: boolean, setTunaPositionOwnerAtaB: boolean, args: CloseActiveTunaSpotPositionOrcaInstructionsArgs): Promise<IInstruction>;
6867
6867
 
6868
6868
  type IncreaseTunaSpotPositionOrcaInstructionsArgs = Omit<IncreaseTunaSpotPositionOrcaInstructionDataArgs, "remainingAccountsInfo">;
6869
6869
  declare function increaseTunaSpotPositionOrcaInstructions(rpc: Rpc<GetAccountInfoApi & GetMultipleAccountsApi>, authority: TransactionSigner, whirlpoolAddress: Address, args: IncreaseTunaSpotPositionOrcaInstructionsArgs, createInstructions?: IInstruction[], cleanupInstructions?: IInstruction[]): Promise<IInstruction[]>;
@@ -6875,11 +6875,11 @@ declare function increaseTunaSpotPositionFusionInstruction(authority: Transactio
6875
6875
 
6876
6876
  type DecreaseTunaSpotPositionOrcaInstructionsArgs = Omit<DecreaseTunaSpotPositionOrcaInstructionDataArgs, "remainingAccountsInfo">;
6877
6877
  declare function decreaseTunaSpotPositionOrcaInstructions(rpc: Rpc<GetAccountInfoApi & GetMultipleAccountsApi>, authority: TransactionSigner, whirlpoolAddress: Address, args: DecreaseTunaSpotPositionOrcaInstructionsArgs, createInstructions?: IInstruction[], cleanupInstructions?: IInstruction[]): Promise<IInstruction[]>;
6878
- declare function decreaseTunaSpotPositionOrcaInstruction(authority: TransactionSigner, tunaPosition: Account<TunaSpotPosition>, tunaConfig: Account<TunaConfig>, mintA: Account<Mint>, mintB: Account<Mint>, vaultA: Account<Vault>, vaultB: Account<Vault>, whirlpool: Account<Whirlpool>, passTunaPositionOwnerAtaA: boolean, passTunaPositionOwnerAtaB: boolean, args: DecreaseTunaSpotPositionOrcaInstructionsArgs): Promise<IInstruction>;
6878
+ declare function decreaseTunaSpotPositionOrcaInstruction(authority: TransactionSigner, tunaPosition: Account<TunaSpotPosition>, tunaConfig: Account<TunaConfig>, mintA: Account<Mint>, mintB: Account<Mint>, vaultA: Account<Vault>, vaultB: Account<Vault>, whirlpool: Account<Whirlpool>, setTunaPositionOwnerAtaA: boolean, setTunaPositionOwnerAtaB: boolean, args: DecreaseTunaSpotPositionOrcaInstructionsArgs): Promise<IInstruction>;
6879
6879
 
6880
6880
  type DecreaseTunaSpotPositionFusionInstructionsArgs = Omit<DecreaseTunaSpotPositionFusionInstructionDataArgs, "remainingAccountsInfo">;
6881
6881
  declare function decreaseTunaSpotPositionFusionInstructions(rpc: Rpc<GetAccountInfoApi & GetMultipleAccountsApi>, authority: TransactionSigner, fusionPoolAddress: Address, args: DecreaseTunaSpotPositionFusionInstructionsArgs, createInstructions?: IInstruction[], cleanupInstructions?: IInstruction[]): Promise<IInstruction[]>;
6882
- declare function decreaseTunaSpotPositionFusionInstruction(authority: TransactionSigner, tunaPosition: Account<TunaSpotPosition>, tunaConfig: Account<TunaConfig>, mintA: Account<Mint>, mintB: Account<Mint>, vaultA: Account<Vault>, vaultB: Account<Vault>, fusionPool: Account<FusionPool>, passTunaPositionOwnerAtaA: boolean, passTunaPositionOwnerAtaB: boolean, args: DecreaseTunaSpotPositionFusionInstructionsArgs): Promise<IInstruction>;
6882
+ declare function decreaseTunaSpotPositionFusionInstruction(authority: TransactionSigner, tunaPosition: Account<TunaSpotPosition>, tunaConfig: Account<TunaConfig>, mintA: Account<Mint>, mintB: Account<Mint>, vaultA: Account<Vault>, vaultB: Account<Vault>, fusionPool: Account<FusionPool>, setTunaPositionOwnerAtaA: boolean, setTunaPositionOwnerAtaB: boolean, args: DecreaseTunaSpotPositionFusionInstructionsArgs): Promise<IInstruction>;
6883
6883
 
6884
6884
  declare function closeTunaSpotPositionInstructions(rpc: Rpc<GetAccountInfoApi & GetMultipleAccountsApi>, authority: TransactionSigner, poolAddress: Address): Promise<IInstruction[]>;
6885
6885
  declare function closeTunaSpotPositionInstruction(authority: TransactionSigner, poolAddress: Address, mintA: Account<Mint>, mintB: Account<Mint>): Promise<IInstruction>;
package/dist/index.d.ts CHANGED
@@ -6859,11 +6859,11 @@ declare function closeActiveTunaLpPositionFusionInstructions(rpc: Rpc<GetAccount
6859
6859
 
6860
6860
  type CloseActiveTunaSpotPositionFusionInstructionsArgs = Omit<CloseActiveTunaSpotPositionFusionInstructionDataArgs, "remainingAccountsInfo">;
6861
6861
  declare function closeActiveTunaSpotPositionFusionInstructions(rpc: Rpc<GetAccountInfoApi & GetMultipleAccountsApi>, authority: TransactionSigner, fusionPoolAddress: Address, args: CloseActiveTunaSpotPositionFusionInstructionsArgs, createInstructions?: IInstruction[], cleanupInstructions?: IInstruction[]): Promise<IInstruction[]>;
6862
- declare function closeActiveTunaSpotPositionFusionInstruction(authority: TransactionSigner, tunaPositionAddress: Address, mintA: Account<Mint>, mintB: Account<Mint>, vaultA: Account<Vault>, vaultB: Account<Vault>, fusionPool: Account<FusionPool>, args: CloseActiveTunaSpotPositionFusionInstructionsArgs): Promise<IInstruction>;
6862
+ declare function closeActiveTunaSpotPositionFusionInstruction(authority: TransactionSigner, tunaPosition: Account<TunaSpotPosition>, mintA: Account<Mint>, mintB: Account<Mint>, vaultA: Account<Vault>, vaultB: Account<Vault>, fusionPool: Account<FusionPool>, setTunaPositionOwnerAtaA: boolean, setTunaPositionOwnerAtaB: boolean, args: CloseActiveTunaSpotPositionFusionInstructionsArgs): Promise<IInstruction>;
6863
6863
 
6864
6864
  type CloseActiveTunaSpotPositionOrcaInstructionsArgs = Omit<CloseActiveTunaSpotPositionOrcaInstructionDataArgs, "remainingAccountsInfo">;
6865
6865
  declare function closeActiveTunaSpotPositionOrcaInstructions(rpc: Rpc<GetAccountInfoApi & GetMultipleAccountsApi>, authority: TransactionSigner, whirlpoolAddress: Address, args: CloseActiveTunaSpotPositionOrcaInstructionsArgs, createInstructions?: IInstruction[], cleanupInstructions?: IInstruction[]): Promise<IInstruction[]>;
6866
- declare function closeActiveTunaSpotPositionOrcaInstruction(authority: TransactionSigner, tunaPositionAddress: Address, mintA: Account<Mint>, mintB: Account<Mint>, vaultA: Account<Vault>, vaultB: Account<Vault>, whirlpool: Account<Whirlpool>, args: CloseActiveTunaSpotPositionOrcaInstructionsArgs): Promise<IInstruction>;
6866
+ declare function closeActiveTunaSpotPositionOrcaInstruction(authority: TransactionSigner, tunaPosition: Account<TunaSpotPosition>, mintA: Account<Mint>, mintB: Account<Mint>, vaultA: Account<Vault>, vaultB: Account<Vault>, whirlpool: Account<Whirlpool>, setTunaPositionOwnerAtaA: boolean, setTunaPositionOwnerAtaB: boolean, args: CloseActiveTunaSpotPositionOrcaInstructionsArgs): Promise<IInstruction>;
6867
6867
 
6868
6868
  type IncreaseTunaSpotPositionOrcaInstructionsArgs = Omit<IncreaseTunaSpotPositionOrcaInstructionDataArgs, "remainingAccountsInfo">;
6869
6869
  declare function increaseTunaSpotPositionOrcaInstructions(rpc: Rpc<GetAccountInfoApi & GetMultipleAccountsApi>, authority: TransactionSigner, whirlpoolAddress: Address, args: IncreaseTunaSpotPositionOrcaInstructionsArgs, createInstructions?: IInstruction[], cleanupInstructions?: IInstruction[]): Promise<IInstruction[]>;
@@ -6875,11 +6875,11 @@ declare function increaseTunaSpotPositionFusionInstruction(authority: Transactio
6875
6875
 
6876
6876
  type DecreaseTunaSpotPositionOrcaInstructionsArgs = Omit<DecreaseTunaSpotPositionOrcaInstructionDataArgs, "remainingAccountsInfo">;
6877
6877
  declare function decreaseTunaSpotPositionOrcaInstructions(rpc: Rpc<GetAccountInfoApi & GetMultipleAccountsApi>, authority: TransactionSigner, whirlpoolAddress: Address, args: DecreaseTunaSpotPositionOrcaInstructionsArgs, createInstructions?: IInstruction[], cleanupInstructions?: IInstruction[]): Promise<IInstruction[]>;
6878
- declare function decreaseTunaSpotPositionOrcaInstruction(authority: TransactionSigner, tunaPosition: Account<TunaSpotPosition>, tunaConfig: Account<TunaConfig>, mintA: Account<Mint>, mintB: Account<Mint>, vaultA: Account<Vault>, vaultB: Account<Vault>, whirlpool: Account<Whirlpool>, passTunaPositionOwnerAtaA: boolean, passTunaPositionOwnerAtaB: boolean, args: DecreaseTunaSpotPositionOrcaInstructionsArgs): Promise<IInstruction>;
6878
+ declare function decreaseTunaSpotPositionOrcaInstruction(authority: TransactionSigner, tunaPosition: Account<TunaSpotPosition>, tunaConfig: Account<TunaConfig>, mintA: Account<Mint>, mintB: Account<Mint>, vaultA: Account<Vault>, vaultB: Account<Vault>, whirlpool: Account<Whirlpool>, setTunaPositionOwnerAtaA: boolean, setTunaPositionOwnerAtaB: boolean, args: DecreaseTunaSpotPositionOrcaInstructionsArgs): Promise<IInstruction>;
6879
6879
 
6880
6880
  type DecreaseTunaSpotPositionFusionInstructionsArgs = Omit<DecreaseTunaSpotPositionFusionInstructionDataArgs, "remainingAccountsInfo">;
6881
6881
  declare function decreaseTunaSpotPositionFusionInstructions(rpc: Rpc<GetAccountInfoApi & GetMultipleAccountsApi>, authority: TransactionSigner, fusionPoolAddress: Address, args: DecreaseTunaSpotPositionFusionInstructionsArgs, createInstructions?: IInstruction[], cleanupInstructions?: IInstruction[]): Promise<IInstruction[]>;
6882
- declare function decreaseTunaSpotPositionFusionInstruction(authority: TransactionSigner, tunaPosition: Account<TunaSpotPosition>, tunaConfig: Account<TunaConfig>, mintA: Account<Mint>, mintB: Account<Mint>, vaultA: Account<Vault>, vaultB: Account<Vault>, fusionPool: Account<FusionPool>, passTunaPositionOwnerAtaA: boolean, passTunaPositionOwnerAtaB: boolean, args: DecreaseTunaSpotPositionFusionInstructionsArgs): Promise<IInstruction>;
6882
+ declare function decreaseTunaSpotPositionFusionInstruction(authority: TransactionSigner, tunaPosition: Account<TunaSpotPosition>, tunaConfig: Account<TunaConfig>, mintA: Account<Mint>, mintB: Account<Mint>, vaultA: Account<Vault>, vaultB: Account<Vault>, fusionPool: Account<FusionPool>, setTunaPositionOwnerAtaA: boolean, setTunaPositionOwnerAtaB: boolean, args: DecreaseTunaSpotPositionFusionInstructionsArgs): Promise<IInstruction>;
6883
6883
 
6884
6884
  declare function closeTunaSpotPositionInstructions(rpc: Rpc<GetAccountInfoApi & GetMultipleAccountsApi>, authority: TransactionSigner, poolAddress: Address): Promise<IInstruction[]>;
6885
6885
  declare function closeTunaSpotPositionInstruction(authority: TransactionSigner, poolAddress: Address, mintA: Account<Mint>, mintB: Account<Mint>): Promise<IInstruction>;
package/dist/index.js CHANGED
@@ -11880,30 +11880,42 @@ async function closeActiveTunaSpotPositionFusionInstructions(rpc, authority, fus
11880
11880
  const instructions = [];
11881
11881
  if (!createInstructions) createInstructions = instructions;
11882
11882
  if (!cleanupInstructions) cleanupInstructions = instructions;
11883
- const collateralTokenMint = tunaPosition.data.collateralToken == 0 /* A */ ? mintA : mintB;
11884
- const createUserAtaInstructions = await getCreateAtaInstructions(
11885
- rpc,
11886
- authority,
11887
- collateralTokenMint.address,
11888
- authority.address,
11889
- collateralTokenMint.programAddress
11890
- );
11891
- createInstructions.push(...createUserAtaInstructions.init);
11883
+ const tunaPositionAtaAAddress = (await (0, import_token_202213.findAssociatedTokenPda)({
11884
+ owner: tunaPosition.address,
11885
+ mint: mintA.address,
11886
+ tokenProgram: mintA.programAddress
11887
+ }))[0];
11888
+ const tunaPositionAtaBAddress = (await (0, import_token_202213.findAssociatedTokenPda)({
11889
+ owner: tunaPosition.address,
11890
+ mint: mintB.address,
11891
+ tokenProgram: mintB.programAddress
11892
+ }))[0];
11893
+ const [tunaPositionAtaA, tunaPositionAtaB] = await (0, import_token_202213.fetchAllToken)(rpc, [
11894
+ tunaPositionAtaAAddress,
11895
+ tunaPositionAtaBAddress
11896
+ ]);
11897
+ const createUserAtaAInstructions = tunaPosition.data.collateralToken == 0 /* A */ || tunaPositionAtaA.data.amount > (tunaPosition.data.positionToken == 0 /* A */ ? tunaPosition.data.amount : 0n) ? await getCreateAtaInstructions(rpc, authority, mintA.address, authority.address, mintA.programAddress) : void 0;
11898
+ if (createUserAtaAInstructions) createInstructions.push(...createUserAtaAInstructions.init);
11899
+ const createUserAtaBInstructions = tunaPosition.data.collateralToken == 1 /* B */ || tunaPositionAtaB.data.amount > (tunaPosition.data.positionToken == 1 /* B */ ? tunaPosition.data.amount : 0n) ? await getCreateAtaInstructions(rpc, authority, mintB.address, authority.address, mintB.programAddress) : void 0;
11900
+ if (createUserAtaBInstructions) createInstructions.push(...createUserAtaBInstructions.init);
11892
11901
  const ix = await closeActiveTunaSpotPositionFusionInstruction(
11893
11902
  authority,
11894
- tunaPosition.address,
11903
+ tunaPosition,
11895
11904
  mintA,
11896
11905
  mintB,
11897
11906
  vaultA,
11898
11907
  vaultB,
11899
11908
  fusionPool,
11909
+ createUserAtaAInstructions != void 0,
11910
+ createUserAtaBInstructions != void 0,
11900
11911
  { ...args }
11901
11912
  );
11902
11913
  instructions.push(ix);
11903
- cleanupInstructions.push(...createUserAtaInstructions.cleanup);
11914
+ if (createUserAtaAInstructions) cleanupInstructions.push(...createUserAtaAInstructions.cleanup);
11915
+ if (createUserAtaBInstructions) cleanupInstructions.push(...createUserAtaBInstructions.cleanup);
11904
11916
  return instructions;
11905
11917
  }
11906
- async function closeActiveTunaSpotPositionFusionInstruction(authority, tunaPositionAddress, mintA, mintB, vaultA, vaultB, fusionPool, args) {
11918
+ async function closeActiveTunaSpotPositionFusionInstruction(authority, tunaPosition, mintA, mintB, vaultA, vaultB, fusionPool, setTunaPositionOwnerAtaA, setTunaPositionOwnerAtaB, args) {
11907
11919
  const tunaConfig = (await getTunaConfigAddress())[0];
11908
11920
  const marketAddress = (await getMarketAddress(fusionPool.address))[0];
11909
11921
  const tunaPositionOwnerAtaA = (await (0, import_token_202213.findAssociatedTokenPda)({
@@ -11917,12 +11929,12 @@ async function closeActiveTunaSpotPositionFusionInstruction(authority, tunaPosit
11917
11929
  tokenProgram: mintB.programAddress
11918
11930
  }))[0];
11919
11931
  const tunaPositionAtaA = (await (0, import_token_202213.findAssociatedTokenPda)({
11920
- owner: tunaPositionAddress,
11932
+ owner: tunaPosition.address,
11921
11933
  mint: mintA.address,
11922
11934
  tokenProgram: mintA.programAddress
11923
11935
  }))[0];
11924
11936
  const tunaPositionAtaB = (await (0, import_token_202213.findAssociatedTokenPda)({
11925
- owner: tunaPositionAddress,
11937
+ owner: tunaPosition.address,
11926
11938
  mint: mintB.address,
11927
11939
  tokenProgram: mintB.programAddress
11928
11940
  }))[0];
@@ -11967,9 +11979,9 @@ async function closeActiveTunaSpotPositionFusionInstruction(authority, tunaPosit
11967
11979
  tunaConfig,
11968
11980
  tunaPositionAtaA,
11969
11981
  tunaPositionAtaB,
11970
- tunaPositionOwnerAtaA,
11971
- tunaPositionOwnerAtaB,
11972
- tunaPosition: tunaPositionAddress,
11982
+ ...setTunaPositionOwnerAtaA && { tunaPositionOwnerAtaA },
11983
+ ...setTunaPositionOwnerAtaB && { tunaPositionOwnerAtaB },
11984
+ tunaPosition: tunaPosition.address,
11973
11985
  fusionPool: fusionPool.address,
11974
11986
  fusionammProgram: import_fusionamm_client7.FUSIONAMM_PROGRAM_ADDRESS,
11975
11987
  tokenProgramA: mintA.programAddress,
@@ -12004,30 +12016,42 @@ async function closeActiveTunaSpotPositionOrcaInstructions(rpc, authority, whirl
12004
12016
  const instructions = [];
12005
12017
  if (!createInstructions) createInstructions = instructions;
12006
12018
  if (!cleanupInstructions) cleanupInstructions = instructions;
12007
- const collateralTokenMint = tunaPosition.data.collateralToken == 0 /* A */ ? mintA : mintB;
12008
- const createUserAtaInstructions = await getCreateAtaInstructions(
12009
- rpc,
12010
- authority,
12011
- collateralTokenMint.address,
12012
- authority.address,
12013
- collateralTokenMint.programAddress
12014
- );
12015
- createInstructions.push(...createUserAtaInstructions.init);
12019
+ const tunaPositionAtaAAddress = (await (0, import_token_202214.findAssociatedTokenPda)({
12020
+ owner: tunaPosition.address,
12021
+ mint: mintA.address,
12022
+ tokenProgram: mintA.programAddress
12023
+ }))[0];
12024
+ const tunaPositionAtaBAddress = (await (0, import_token_202214.findAssociatedTokenPda)({
12025
+ owner: tunaPosition.address,
12026
+ mint: mintB.address,
12027
+ tokenProgram: mintB.programAddress
12028
+ }))[0];
12029
+ const [tunaPositionAtaA, tunaPositionAtaB] = await (0, import_token_202214.fetchAllToken)(rpc, [
12030
+ tunaPositionAtaAAddress,
12031
+ tunaPositionAtaBAddress
12032
+ ]);
12033
+ const createUserAtaAInstructions = tunaPosition.data.collateralToken == 0 /* A */ || tunaPositionAtaA.data.amount > (tunaPosition.data.positionToken == 0 /* A */ ? tunaPosition.data.amount : 0n) ? await getCreateAtaInstructions(rpc, authority, mintA.address, authority.address, mintA.programAddress) : void 0;
12034
+ if (createUserAtaAInstructions) createInstructions.push(...createUserAtaAInstructions.init);
12035
+ const createUserAtaBInstructions = tunaPosition.data.collateralToken == 1 /* B */ || tunaPositionAtaB.data.amount > (tunaPosition.data.positionToken == 1 /* B */ ? tunaPosition.data.amount : 0n) ? await getCreateAtaInstructions(rpc, authority, mintB.address, authority.address, mintB.programAddress) : void 0;
12036
+ if (createUserAtaBInstructions) createInstructions.push(...createUserAtaBInstructions.init);
12016
12037
  const ix = await closeActiveTunaSpotPositionOrcaInstruction(
12017
12038
  authority,
12018
- tunaPosition.address,
12039
+ tunaPosition,
12019
12040
  mintA,
12020
12041
  mintB,
12021
12042
  vaultA,
12022
12043
  vaultB,
12023
12044
  whirlpool,
12045
+ createUserAtaAInstructions != void 0,
12046
+ createUserAtaBInstructions != void 0,
12024
12047
  { ...args }
12025
12048
  );
12026
12049
  instructions.push(ix);
12027
- cleanupInstructions.push(...createUserAtaInstructions.cleanup);
12050
+ if (createUserAtaAInstructions) cleanupInstructions.push(...createUserAtaAInstructions.cleanup);
12051
+ if (createUserAtaBInstructions) cleanupInstructions.push(...createUserAtaBInstructions.cleanup);
12028
12052
  return instructions;
12029
12053
  }
12030
- async function closeActiveTunaSpotPositionOrcaInstruction(authority, tunaPositionAddress, mintA, mintB, vaultA, vaultB, whirlpool, args) {
12054
+ async function closeActiveTunaSpotPositionOrcaInstruction(authority, tunaPosition, mintA, mintB, vaultA, vaultB, whirlpool, setTunaPositionOwnerAtaA, setTunaPositionOwnerAtaB, args) {
12031
12055
  const tunaConfig = (await getTunaConfigAddress())[0];
12032
12056
  const marketAddress = (await getMarketAddress(whirlpool.address))[0];
12033
12057
  const orcaOracleAddress = (await (0, import_whirlpools_client7.getOracleAddress)(whirlpool.address))[0];
@@ -12042,12 +12066,12 @@ async function closeActiveTunaSpotPositionOrcaInstruction(authority, tunaPositio
12042
12066
  tokenProgram: mintB.programAddress
12043
12067
  }))[0];
12044
12068
  const tunaPositionAtaA = (await (0, import_token_202214.findAssociatedTokenPda)({
12045
- owner: tunaPositionAddress,
12069
+ owner: tunaPosition.address,
12046
12070
  mint: mintA.address,
12047
12071
  tokenProgram: mintA.programAddress
12048
12072
  }))[0];
12049
12073
  const tunaPositionAtaB = (await (0, import_token_202214.findAssociatedTokenPda)({
12050
- owner: tunaPositionAddress,
12074
+ owner: tunaPosition.address,
12051
12075
  mint: mintB.address,
12052
12076
  tokenProgram: mintB.programAddress
12053
12077
  }))[0];
@@ -12094,9 +12118,9 @@ async function closeActiveTunaSpotPositionOrcaInstruction(authority, tunaPositio
12094
12118
  tunaConfig,
12095
12119
  tunaPositionAtaA,
12096
12120
  tunaPositionAtaB,
12097
- tunaPositionOwnerAtaA,
12098
- tunaPositionOwnerAtaB,
12099
- tunaPosition: tunaPositionAddress,
12121
+ ...setTunaPositionOwnerAtaA && { tunaPositionOwnerAtaA },
12122
+ ...setTunaPositionOwnerAtaB && { tunaPositionOwnerAtaB },
12123
+ tunaPosition: tunaPosition.address,
12100
12124
  whirlpool: whirlpool.address,
12101
12125
  whirlpoolProgram: import_whirlpools_client7.WHIRLPOOL_PROGRAM_ADDRESS,
12102
12126
  tokenProgramA: mintA.programAddress,
@@ -12440,39 +12464,24 @@ async function decreaseTunaSpotPositionOrcaInstructions(rpc, authority, whirlpoo
12440
12464
  (await getLendingVaultAddress(whirlpool.data.tokenMintA))[0],
12441
12465
  (await getLendingVaultAddress(whirlpool.data.tokenMintB))[0]
12442
12466
  ]);
12443
- const tunaPositionAtaA = (await (0, import_token_202217.findAssociatedTokenPda)({
12467
+ const tunaPositionAtaAAddress = (await (0, import_token_202217.findAssociatedTokenPda)({
12444
12468
  owner: tunaPosition.address,
12445
12469
  mint: mintA.address,
12446
12470
  tokenProgram: mintA.programAddress
12447
12471
  }))[0];
12448
- const tunaPositionAtaB = (await (0, import_token_202217.findAssociatedTokenPda)({
12472
+ const tunaPositionAtaBAddress = (await (0, import_token_202217.findAssociatedTokenPda)({
12449
12473
  owner: tunaPosition.address,
12450
12474
  mint: mintB.address,
12451
12475
  tokenProgram: mintB.programAddress
12452
12476
  }))[0];
12453
- const tunaPositionTokenAccounts = await (0, import_token_202217.fetchAllToken)(rpc, [tunaPositionAtaA, tunaPositionAtaB]);
12454
- let createUserAtaAInstructions = void 0;
12455
- if (tunaPosition.data.collateralToken == 0 /* A */ || tunaPositionTokenAccounts[0].data.amount > (tunaPosition.data.positionToken == 0 /* A */ ? tunaPosition.data.amount : 0n)) {
12456
- createUserAtaAInstructions = await getCreateAtaInstructions(
12457
- rpc,
12458
- authority,
12459
- mintA.address,
12460
- authority.address,
12461
- mintA.programAddress
12462
- );
12463
- createInstructions.push(...createUserAtaAInstructions.init);
12464
- }
12465
- let createUserAtaBInstructions = void 0;
12466
- if (tunaPosition.data.collateralToken == 1 /* B */ || tunaPositionTokenAccounts[1].data.amount > (tunaPosition.data.positionToken == 1 /* B */ ? tunaPosition.data.amount : 0n)) {
12467
- createUserAtaBInstructions = await getCreateAtaInstructions(
12468
- rpc,
12469
- authority,
12470
- mintB.address,
12471
- authority.address,
12472
- mintB.programAddress
12473
- );
12474
- createInstructions.push(...createUserAtaBInstructions.init);
12475
- }
12477
+ const [tunaPositionAtaA, tunaPositionAtaB] = await (0, import_token_202217.fetchAllToken)(rpc, [
12478
+ tunaPositionAtaAAddress,
12479
+ tunaPositionAtaBAddress
12480
+ ]);
12481
+ const createUserAtaAInstructions = tunaPosition.data.collateralToken == 0 /* A */ || tunaPositionAtaA.data.amount > (tunaPosition.data.positionToken == 0 /* A */ ? tunaPosition.data.amount : 0n) ? await getCreateAtaInstructions(rpc, authority, mintA.address, authority.address, mintA.programAddress) : void 0;
12482
+ if (createUserAtaAInstructions) createInstructions.push(...createUserAtaAInstructions.init);
12483
+ const createUserAtaBInstructions = tunaPosition.data.collateralToken == 1 /* B */ || tunaPositionAtaB.data.amount > (tunaPosition.data.positionToken == 1 /* B */ ? tunaPosition.data.amount : 0n) ? await getCreateAtaInstructions(rpc, authority, mintB.address, authority.address, mintB.programAddress) : void 0;
12484
+ if (createUserAtaBInstructions) createInstructions.push(...createUserAtaBInstructions.init);
12476
12485
  const ix = await decreaseTunaSpotPositionOrcaInstruction(
12477
12486
  authority,
12478
12487
  tunaPosition,
@@ -12491,7 +12500,7 @@ async function decreaseTunaSpotPositionOrcaInstructions(rpc, authority, whirlpoo
12491
12500
  if (createUserAtaBInstructions) cleanupInstructions.push(...createUserAtaBInstructions.cleanup);
12492
12501
  return instructions;
12493
12502
  }
12494
- async function decreaseTunaSpotPositionOrcaInstruction(authority, tunaPosition, tunaConfig, mintA, mintB, vaultA, vaultB, whirlpool, passTunaPositionOwnerAtaA, passTunaPositionOwnerAtaB, args) {
12503
+ async function decreaseTunaSpotPositionOrcaInstruction(authority, tunaPosition, tunaConfig, mintA, mintB, vaultA, vaultB, whirlpool, setTunaPositionOwnerAtaA, setTunaPositionOwnerAtaB, args) {
12495
12504
  const marketAddress = (await getMarketAddress(whirlpool.address))[0];
12496
12505
  const orcaOracleAddress = (await (0, import_whirlpools_client9.getOracleAddress)(whirlpool.address))[0];
12497
12506
  const tunaPositionOwnerAtaA = (await (0, import_token_202217.findAssociatedTokenPda)({
@@ -12560,8 +12569,8 @@ async function decreaseTunaSpotPositionOrcaInstruction(authority, tunaPosition,
12560
12569
  tunaPosition: tunaPosition.address,
12561
12570
  tunaPositionAtaA,
12562
12571
  tunaPositionAtaB,
12563
- tunaPositionOwnerAtaA: passTunaPositionOwnerAtaA ? tunaPositionOwnerAtaA : void 0,
12564
- tunaPositionOwnerAtaB: passTunaPositionOwnerAtaB ? tunaPositionOwnerAtaB : void 0,
12572
+ ...setTunaPositionOwnerAtaA && { tunaPositionOwnerAtaA },
12573
+ ...setTunaPositionOwnerAtaB && { tunaPositionOwnerAtaB },
12565
12574
  whirlpool: whirlpool.address,
12566
12575
  whirlpoolProgram: import_whirlpools_client9.WHIRLPOOL_PROGRAM_ADDRESS,
12567
12576
  memoProgram: import_memo12.MEMO_PROGRAM_ADDRESS,
@@ -12594,39 +12603,24 @@ async function decreaseTunaSpotPositionFusionInstructions(rpc, authority, fusion
12594
12603
  (await getLendingVaultAddress(fusionPool.data.tokenMintA))[0],
12595
12604
  (await getLendingVaultAddress(fusionPool.data.tokenMintB))[0]
12596
12605
  ]);
12597
- const tunaPositionAtaA = (await (0, import_token_202218.findAssociatedTokenPda)({
12606
+ const tunaPositionAtaAAddress = (await (0, import_token_202218.findAssociatedTokenPda)({
12598
12607
  owner: tunaPosition.address,
12599
12608
  mint: mintA.address,
12600
12609
  tokenProgram: mintA.programAddress
12601
12610
  }))[0];
12602
- const tunaPositionAtaB = (await (0, import_token_202218.findAssociatedTokenPda)({
12611
+ const tunaPositionAtaBAddress = (await (0, import_token_202218.findAssociatedTokenPda)({
12603
12612
  owner: tunaPosition.address,
12604
12613
  mint: mintB.address,
12605
12614
  tokenProgram: mintB.programAddress
12606
12615
  }))[0];
12607
- const tunaPositionTokenAccounts = await (0, import_token_202218.fetchAllToken)(rpc, [tunaPositionAtaA, tunaPositionAtaB]);
12608
- let createUserAtaAInstructions = void 0;
12609
- if (tunaPosition.data.collateralToken == 0 /* A */ || tunaPositionTokenAccounts[0].data.amount > (tunaPosition.data.positionToken == 0 /* A */ ? tunaPosition.data.amount : 0n)) {
12610
- createUserAtaAInstructions = await getCreateAtaInstructions(
12611
- rpc,
12612
- authority,
12613
- mintA.address,
12614
- authority.address,
12615
- mintA.programAddress
12616
- );
12617
- createInstructions.push(...createUserAtaAInstructions.init);
12618
- }
12619
- let createUserAtaBInstructions = void 0;
12620
- if (tunaPosition.data.collateralToken == 1 /* B */ || tunaPositionTokenAccounts[1].data.amount > (tunaPosition.data.positionToken == 1 /* B */ ? tunaPosition.data.amount : 0n)) {
12621
- createUserAtaBInstructions = await getCreateAtaInstructions(
12622
- rpc,
12623
- authority,
12624
- mintB.address,
12625
- authority.address,
12626
- mintB.programAddress
12627
- );
12628
- createInstructions.push(...createUserAtaBInstructions.init);
12629
- }
12616
+ const [tunaPositionAtaA, tunaPositionAtaB] = await (0, import_token_202218.fetchAllToken)(rpc, [
12617
+ tunaPositionAtaAAddress,
12618
+ tunaPositionAtaBAddress
12619
+ ]);
12620
+ const createUserAtaAInstructions = tunaPosition.data.collateralToken == 0 /* A */ || tunaPositionAtaA.data.amount > (tunaPosition.data.positionToken == 0 /* A */ ? tunaPosition.data.amount : 0n) ? await getCreateAtaInstructions(rpc, authority, mintA.address, authority.address, mintA.programAddress) : void 0;
12621
+ if (createUserAtaAInstructions) createInstructions.push(...createUserAtaAInstructions.init);
12622
+ const createUserAtaBInstructions = tunaPosition.data.collateralToken == 1 /* B */ || tunaPositionAtaB.data.amount > (tunaPosition.data.positionToken == 1 /* B */ ? tunaPosition.data.amount : 0n) ? await getCreateAtaInstructions(rpc, authority, mintB.address, authority.address, mintB.programAddress) : void 0;
12623
+ if (createUserAtaBInstructions) createInstructions.push(...createUserAtaBInstructions.init);
12630
12624
  const ix = await decreaseTunaSpotPositionFusionInstruction(
12631
12625
  authority,
12632
12626
  tunaPosition,
@@ -12645,7 +12639,7 @@ async function decreaseTunaSpotPositionFusionInstructions(rpc, authority, fusion
12645
12639
  if (createUserAtaBInstructions) cleanupInstructions.push(...createUserAtaBInstructions.cleanup);
12646
12640
  return instructions;
12647
12641
  }
12648
- async function decreaseTunaSpotPositionFusionInstruction(authority, tunaPosition, tunaConfig, mintA, mintB, vaultA, vaultB, fusionPool, passTunaPositionOwnerAtaA, passTunaPositionOwnerAtaB, args) {
12642
+ async function decreaseTunaSpotPositionFusionInstruction(authority, tunaPosition, tunaConfig, mintA, mintB, vaultA, vaultB, fusionPool, setTunaPositionOwnerAtaA, setTunaPositionOwnerAtaB, args) {
12649
12643
  const marketAddress = (await getMarketAddress(fusionPool.address))[0];
12650
12644
  const tunaPositionOwnerAtaA = (await (0, import_token_202218.findAssociatedTokenPda)({
12651
12645
  owner: authority.address,
@@ -12711,8 +12705,8 @@ async function decreaseTunaSpotPositionFusionInstruction(authority, tunaPosition
12711
12705
  tunaPosition: tunaPosition.address,
12712
12706
  tunaPositionAtaA,
12713
12707
  tunaPositionAtaB,
12714
- tunaPositionOwnerAtaA: passTunaPositionOwnerAtaA ? tunaPositionOwnerAtaA : void 0,
12715
- tunaPositionOwnerAtaB: passTunaPositionOwnerAtaB ? tunaPositionOwnerAtaB : void 0,
12708
+ ...setTunaPositionOwnerAtaA && { tunaPositionOwnerAtaA },
12709
+ ...setTunaPositionOwnerAtaB && { tunaPositionOwnerAtaB },
12716
12710
  fusionPool: fusionPool.address,
12717
12711
  fusionammProgram: import_fusionamm_client9.FUSIONAMM_PROGRAM_ADDRESS,
12718
12712
  memoProgram: import_memo13.MEMO_PROGRAM_ADDRESS,
package/dist/index.mjs CHANGED
@@ -12115,7 +12115,7 @@ import {
12115
12115
  AccountRole as AccountRole8
12116
12116
  } from "@solana/kit";
12117
12117
  import { MEMO_PROGRAM_ADDRESS as MEMO_PROGRAM_ADDRESS8 } from "@solana-program/memo";
12118
- import { fetchAllMaybeMint as fetchAllMaybeMint11, findAssociatedTokenPda as findAssociatedTokenPda13 } from "@solana-program/token-2022";
12118
+ import { fetchAllMaybeMint as fetchAllMaybeMint11, fetchAllToken, findAssociatedTokenPda as findAssociatedTokenPda13 } from "@solana-program/token-2022";
12119
12119
  import assert11 from "assert";
12120
12120
  async function closeActiveTunaSpotPositionFusionInstructions(rpc, authority, fusionPoolAddress, args, createInstructions, cleanupInstructions) {
12121
12121
  const tunaPositionAddress = (await getTunaSpotPositionAddress(authority.address, fusionPoolAddress))[0];
@@ -12133,30 +12133,42 @@ async function closeActiveTunaSpotPositionFusionInstructions(rpc, authority, fus
12133
12133
  const instructions = [];
12134
12134
  if (!createInstructions) createInstructions = instructions;
12135
12135
  if (!cleanupInstructions) cleanupInstructions = instructions;
12136
- const collateralTokenMint = tunaPosition.data.collateralToken == 0 /* A */ ? mintA : mintB;
12137
- const createUserAtaInstructions = await getCreateAtaInstructions(
12138
- rpc,
12139
- authority,
12140
- collateralTokenMint.address,
12141
- authority.address,
12142
- collateralTokenMint.programAddress
12143
- );
12144
- createInstructions.push(...createUserAtaInstructions.init);
12136
+ const tunaPositionAtaAAddress = (await findAssociatedTokenPda13({
12137
+ owner: tunaPosition.address,
12138
+ mint: mintA.address,
12139
+ tokenProgram: mintA.programAddress
12140
+ }))[0];
12141
+ const tunaPositionAtaBAddress = (await findAssociatedTokenPda13({
12142
+ owner: tunaPosition.address,
12143
+ mint: mintB.address,
12144
+ tokenProgram: mintB.programAddress
12145
+ }))[0];
12146
+ const [tunaPositionAtaA, tunaPositionAtaB] = await fetchAllToken(rpc, [
12147
+ tunaPositionAtaAAddress,
12148
+ tunaPositionAtaBAddress
12149
+ ]);
12150
+ const createUserAtaAInstructions = tunaPosition.data.collateralToken == 0 /* A */ || tunaPositionAtaA.data.amount > (tunaPosition.data.positionToken == 0 /* A */ ? tunaPosition.data.amount : 0n) ? await getCreateAtaInstructions(rpc, authority, mintA.address, authority.address, mintA.programAddress) : void 0;
12151
+ if (createUserAtaAInstructions) createInstructions.push(...createUserAtaAInstructions.init);
12152
+ const createUserAtaBInstructions = tunaPosition.data.collateralToken == 1 /* B */ || tunaPositionAtaB.data.amount > (tunaPosition.data.positionToken == 1 /* B */ ? tunaPosition.data.amount : 0n) ? await getCreateAtaInstructions(rpc, authority, mintB.address, authority.address, mintB.programAddress) : void 0;
12153
+ if (createUserAtaBInstructions) createInstructions.push(...createUserAtaBInstructions.init);
12145
12154
  const ix = await closeActiveTunaSpotPositionFusionInstruction(
12146
12155
  authority,
12147
- tunaPosition.address,
12156
+ tunaPosition,
12148
12157
  mintA,
12149
12158
  mintB,
12150
12159
  vaultA,
12151
12160
  vaultB,
12152
12161
  fusionPool,
12162
+ createUserAtaAInstructions != void 0,
12163
+ createUserAtaBInstructions != void 0,
12153
12164
  { ...args }
12154
12165
  );
12155
12166
  instructions.push(ix);
12156
- cleanupInstructions.push(...createUserAtaInstructions.cleanup);
12167
+ if (createUserAtaAInstructions) cleanupInstructions.push(...createUserAtaAInstructions.cleanup);
12168
+ if (createUserAtaBInstructions) cleanupInstructions.push(...createUserAtaBInstructions.cleanup);
12157
12169
  return instructions;
12158
12170
  }
12159
- async function closeActiveTunaSpotPositionFusionInstruction(authority, tunaPositionAddress, mintA, mintB, vaultA, vaultB, fusionPool, args) {
12171
+ async function closeActiveTunaSpotPositionFusionInstruction(authority, tunaPosition, mintA, mintB, vaultA, vaultB, fusionPool, setTunaPositionOwnerAtaA, setTunaPositionOwnerAtaB, args) {
12160
12172
  const tunaConfig = (await getTunaConfigAddress())[0];
12161
12173
  const marketAddress = (await getMarketAddress(fusionPool.address))[0];
12162
12174
  const tunaPositionOwnerAtaA = (await findAssociatedTokenPda13({
@@ -12170,12 +12182,12 @@ async function closeActiveTunaSpotPositionFusionInstruction(authority, tunaPosit
12170
12182
  tokenProgram: mintB.programAddress
12171
12183
  }))[0];
12172
12184
  const tunaPositionAtaA = (await findAssociatedTokenPda13({
12173
- owner: tunaPositionAddress,
12185
+ owner: tunaPosition.address,
12174
12186
  mint: mintA.address,
12175
12187
  tokenProgram: mintA.programAddress
12176
12188
  }))[0];
12177
12189
  const tunaPositionAtaB = (await findAssociatedTokenPda13({
12178
- owner: tunaPositionAddress,
12190
+ owner: tunaPosition.address,
12179
12191
  mint: mintB.address,
12180
12192
  tokenProgram: mintB.programAddress
12181
12193
  }))[0];
@@ -12220,9 +12232,9 @@ async function closeActiveTunaSpotPositionFusionInstruction(authority, tunaPosit
12220
12232
  tunaConfig,
12221
12233
  tunaPositionAtaA,
12222
12234
  tunaPositionAtaB,
12223
- tunaPositionOwnerAtaA,
12224
- tunaPositionOwnerAtaB,
12225
- tunaPosition: tunaPositionAddress,
12235
+ ...setTunaPositionOwnerAtaA && { tunaPositionOwnerAtaA },
12236
+ ...setTunaPositionOwnerAtaB && { tunaPositionOwnerAtaB },
12237
+ tunaPosition: tunaPosition.address,
12226
12238
  fusionPool: fusionPool.address,
12227
12239
  fusionammProgram: FUSIONAMM_PROGRAM_ADDRESS6,
12228
12240
  tokenProgramA: mintA.programAddress,
@@ -12245,7 +12257,7 @@ import {
12245
12257
  AccountRole as AccountRole9
12246
12258
  } from "@solana/kit";
12247
12259
  import { MEMO_PROGRAM_ADDRESS as MEMO_PROGRAM_ADDRESS9 } from "@solana-program/memo";
12248
- import { fetchAllMaybeMint as fetchAllMaybeMint12, findAssociatedTokenPda as findAssociatedTokenPda14 } from "@solana-program/token-2022";
12260
+ import { fetchAllMaybeMint as fetchAllMaybeMint12, fetchAllToken as fetchAllToken2, findAssociatedTokenPda as findAssociatedTokenPda14 } from "@solana-program/token-2022";
12249
12261
  import assert12 from "assert";
12250
12262
  async function closeActiveTunaSpotPositionOrcaInstructions(rpc, authority, whirlpoolAddress, args, createInstructions, cleanupInstructions) {
12251
12263
  const tunaPositionAddress = (await getTunaSpotPositionAddress(authority.address, whirlpoolAddress))[0];
@@ -12263,30 +12275,42 @@ async function closeActiveTunaSpotPositionOrcaInstructions(rpc, authority, whirl
12263
12275
  const instructions = [];
12264
12276
  if (!createInstructions) createInstructions = instructions;
12265
12277
  if (!cleanupInstructions) cleanupInstructions = instructions;
12266
- const collateralTokenMint = tunaPosition.data.collateralToken == 0 /* A */ ? mintA : mintB;
12267
- const createUserAtaInstructions = await getCreateAtaInstructions(
12268
- rpc,
12269
- authority,
12270
- collateralTokenMint.address,
12271
- authority.address,
12272
- collateralTokenMint.programAddress
12273
- );
12274
- createInstructions.push(...createUserAtaInstructions.init);
12278
+ const tunaPositionAtaAAddress = (await findAssociatedTokenPda14({
12279
+ owner: tunaPosition.address,
12280
+ mint: mintA.address,
12281
+ tokenProgram: mintA.programAddress
12282
+ }))[0];
12283
+ const tunaPositionAtaBAddress = (await findAssociatedTokenPda14({
12284
+ owner: tunaPosition.address,
12285
+ mint: mintB.address,
12286
+ tokenProgram: mintB.programAddress
12287
+ }))[0];
12288
+ const [tunaPositionAtaA, tunaPositionAtaB] = await fetchAllToken2(rpc, [
12289
+ tunaPositionAtaAAddress,
12290
+ tunaPositionAtaBAddress
12291
+ ]);
12292
+ const createUserAtaAInstructions = tunaPosition.data.collateralToken == 0 /* A */ || tunaPositionAtaA.data.amount > (tunaPosition.data.positionToken == 0 /* A */ ? tunaPosition.data.amount : 0n) ? await getCreateAtaInstructions(rpc, authority, mintA.address, authority.address, mintA.programAddress) : void 0;
12293
+ if (createUserAtaAInstructions) createInstructions.push(...createUserAtaAInstructions.init);
12294
+ const createUserAtaBInstructions = tunaPosition.data.collateralToken == 1 /* B */ || tunaPositionAtaB.data.amount > (tunaPosition.data.positionToken == 1 /* B */ ? tunaPosition.data.amount : 0n) ? await getCreateAtaInstructions(rpc, authority, mintB.address, authority.address, mintB.programAddress) : void 0;
12295
+ if (createUserAtaBInstructions) createInstructions.push(...createUserAtaBInstructions.init);
12275
12296
  const ix = await closeActiveTunaSpotPositionOrcaInstruction(
12276
12297
  authority,
12277
- tunaPosition.address,
12298
+ tunaPosition,
12278
12299
  mintA,
12279
12300
  mintB,
12280
12301
  vaultA,
12281
12302
  vaultB,
12282
12303
  whirlpool,
12304
+ createUserAtaAInstructions != void 0,
12305
+ createUserAtaBInstructions != void 0,
12283
12306
  { ...args }
12284
12307
  );
12285
12308
  instructions.push(ix);
12286
- cleanupInstructions.push(...createUserAtaInstructions.cleanup);
12309
+ if (createUserAtaAInstructions) cleanupInstructions.push(...createUserAtaAInstructions.cleanup);
12310
+ if (createUserAtaBInstructions) cleanupInstructions.push(...createUserAtaBInstructions.cleanup);
12287
12311
  return instructions;
12288
12312
  }
12289
- async function closeActiveTunaSpotPositionOrcaInstruction(authority, tunaPositionAddress, mintA, mintB, vaultA, vaultB, whirlpool, args) {
12313
+ async function closeActiveTunaSpotPositionOrcaInstruction(authority, tunaPosition, mintA, mintB, vaultA, vaultB, whirlpool, setTunaPositionOwnerAtaA, setTunaPositionOwnerAtaB, args) {
12290
12314
  const tunaConfig = (await getTunaConfigAddress())[0];
12291
12315
  const marketAddress = (await getMarketAddress(whirlpool.address))[0];
12292
12316
  const orcaOracleAddress = (await getOracleAddress3(whirlpool.address))[0];
@@ -12301,12 +12325,12 @@ async function closeActiveTunaSpotPositionOrcaInstruction(authority, tunaPositio
12301
12325
  tokenProgram: mintB.programAddress
12302
12326
  }))[0];
12303
12327
  const tunaPositionAtaA = (await findAssociatedTokenPda14({
12304
- owner: tunaPositionAddress,
12328
+ owner: tunaPosition.address,
12305
12329
  mint: mintA.address,
12306
12330
  tokenProgram: mintA.programAddress
12307
12331
  }))[0];
12308
12332
  const tunaPositionAtaB = (await findAssociatedTokenPda14({
12309
- owner: tunaPositionAddress,
12333
+ owner: tunaPosition.address,
12310
12334
  mint: mintB.address,
12311
12335
  tokenProgram: mintB.programAddress
12312
12336
  }))[0];
@@ -12353,9 +12377,9 @@ async function closeActiveTunaSpotPositionOrcaInstruction(authority, tunaPositio
12353
12377
  tunaConfig,
12354
12378
  tunaPositionAtaA,
12355
12379
  tunaPositionAtaB,
12356
- tunaPositionOwnerAtaA,
12357
- tunaPositionOwnerAtaB,
12358
- tunaPosition: tunaPositionAddress,
12380
+ ...setTunaPositionOwnerAtaA && { tunaPositionOwnerAtaA },
12381
+ ...setTunaPositionOwnerAtaB && { tunaPositionOwnerAtaB },
12382
+ tunaPosition: tunaPosition.address,
12359
12383
  whirlpool: whirlpool.address,
12360
12384
  whirlpoolProgram: WHIRLPOOL_PROGRAM_ADDRESS6,
12361
12385
  tokenProgramA: mintA.programAddress,
@@ -12687,7 +12711,7 @@ import {
12687
12711
  AccountRole as AccountRole12
12688
12712
  } from "@solana/kit";
12689
12713
  import { MEMO_PROGRAM_ADDRESS as MEMO_PROGRAM_ADDRESS12 } from "@solana-program/memo";
12690
- import { fetchAllMaybeMint as fetchAllMaybeMint15, fetchAllToken, findAssociatedTokenPda as findAssociatedTokenPda17 } from "@solana-program/token-2022";
12714
+ import { fetchAllMaybeMint as fetchAllMaybeMint15, fetchAllToken as fetchAllToken3, findAssociatedTokenPda as findAssociatedTokenPda17 } from "@solana-program/token-2022";
12691
12715
  import assert15 from "assert";
12692
12716
  async function decreaseTunaSpotPositionOrcaInstructions(rpc, authority, whirlpoolAddress, args, createInstructions, cleanupInstructions) {
12693
12717
  const instructions = [];
@@ -12705,39 +12729,24 @@ async function decreaseTunaSpotPositionOrcaInstructions(rpc, authority, whirlpoo
12705
12729
  (await getLendingVaultAddress(whirlpool.data.tokenMintA))[0],
12706
12730
  (await getLendingVaultAddress(whirlpool.data.tokenMintB))[0]
12707
12731
  ]);
12708
- const tunaPositionAtaA = (await findAssociatedTokenPda17({
12732
+ const tunaPositionAtaAAddress = (await findAssociatedTokenPda17({
12709
12733
  owner: tunaPosition.address,
12710
12734
  mint: mintA.address,
12711
12735
  tokenProgram: mintA.programAddress
12712
12736
  }))[0];
12713
- const tunaPositionAtaB = (await findAssociatedTokenPda17({
12737
+ const tunaPositionAtaBAddress = (await findAssociatedTokenPda17({
12714
12738
  owner: tunaPosition.address,
12715
12739
  mint: mintB.address,
12716
12740
  tokenProgram: mintB.programAddress
12717
12741
  }))[0];
12718
- const tunaPositionTokenAccounts = await fetchAllToken(rpc, [tunaPositionAtaA, tunaPositionAtaB]);
12719
- let createUserAtaAInstructions = void 0;
12720
- if (tunaPosition.data.collateralToken == 0 /* A */ || tunaPositionTokenAccounts[0].data.amount > (tunaPosition.data.positionToken == 0 /* A */ ? tunaPosition.data.amount : 0n)) {
12721
- createUserAtaAInstructions = await getCreateAtaInstructions(
12722
- rpc,
12723
- authority,
12724
- mintA.address,
12725
- authority.address,
12726
- mintA.programAddress
12727
- );
12728
- createInstructions.push(...createUserAtaAInstructions.init);
12729
- }
12730
- let createUserAtaBInstructions = void 0;
12731
- if (tunaPosition.data.collateralToken == 1 /* B */ || tunaPositionTokenAccounts[1].data.amount > (tunaPosition.data.positionToken == 1 /* B */ ? tunaPosition.data.amount : 0n)) {
12732
- createUserAtaBInstructions = await getCreateAtaInstructions(
12733
- rpc,
12734
- authority,
12735
- mintB.address,
12736
- authority.address,
12737
- mintB.programAddress
12738
- );
12739
- createInstructions.push(...createUserAtaBInstructions.init);
12740
- }
12742
+ const [tunaPositionAtaA, tunaPositionAtaB] = await fetchAllToken3(rpc, [
12743
+ tunaPositionAtaAAddress,
12744
+ tunaPositionAtaBAddress
12745
+ ]);
12746
+ const createUserAtaAInstructions = tunaPosition.data.collateralToken == 0 /* A */ || tunaPositionAtaA.data.amount > (tunaPosition.data.positionToken == 0 /* A */ ? tunaPosition.data.amount : 0n) ? await getCreateAtaInstructions(rpc, authority, mintA.address, authority.address, mintA.programAddress) : void 0;
12747
+ if (createUserAtaAInstructions) createInstructions.push(...createUserAtaAInstructions.init);
12748
+ const createUserAtaBInstructions = tunaPosition.data.collateralToken == 1 /* B */ || tunaPositionAtaB.data.amount > (tunaPosition.data.positionToken == 1 /* B */ ? tunaPosition.data.amount : 0n) ? await getCreateAtaInstructions(rpc, authority, mintB.address, authority.address, mintB.programAddress) : void 0;
12749
+ if (createUserAtaBInstructions) createInstructions.push(...createUserAtaBInstructions.init);
12741
12750
  const ix = await decreaseTunaSpotPositionOrcaInstruction(
12742
12751
  authority,
12743
12752
  tunaPosition,
@@ -12756,7 +12765,7 @@ async function decreaseTunaSpotPositionOrcaInstructions(rpc, authority, whirlpoo
12756
12765
  if (createUserAtaBInstructions) cleanupInstructions.push(...createUserAtaBInstructions.cleanup);
12757
12766
  return instructions;
12758
12767
  }
12759
- async function decreaseTunaSpotPositionOrcaInstruction(authority, tunaPosition, tunaConfig, mintA, mintB, vaultA, vaultB, whirlpool, passTunaPositionOwnerAtaA, passTunaPositionOwnerAtaB, args) {
12768
+ async function decreaseTunaSpotPositionOrcaInstruction(authority, tunaPosition, tunaConfig, mintA, mintB, vaultA, vaultB, whirlpool, setTunaPositionOwnerAtaA, setTunaPositionOwnerAtaB, args) {
12760
12769
  const marketAddress = (await getMarketAddress(whirlpool.address))[0];
12761
12770
  const orcaOracleAddress = (await getOracleAddress5(whirlpool.address))[0];
12762
12771
  const tunaPositionOwnerAtaA = (await findAssociatedTokenPda17({
@@ -12825,8 +12834,8 @@ async function decreaseTunaSpotPositionOrcaInstruction(authority, tunaPosition,
12825
12834
  tunaPosition: tunaPosition.address,
12826
12835
  tunaPositionAtaA,
12827
12836
  tunaPositionAtaB,
12828
- tunaPositionOwnerAtaA: passTunaPositionOwnerAtaA ? tunaPositionOwnerAtaA : void 0,
12829
- tunaPositionOwnerAtaB: passTunaPositionOwnerAtaB ? tunaPositionOwnerAtaB : void 0,
12837
+ ...setTunaPositionOwnerAtaA && { tunaPositionOwnerAtaA },
12838
+ ...setTunaPositionOwnerAtaB && { tunaPositionOwnerAtaB },
12830
12839
  whirlpool: whirlpool.address,
12831
12840
  whirlpoolProgram: WHIRLPOOL_PROGRAM_ADDRESS8,
12832
12841
  memoProgram: MEMO_PROGRAM_ADDRESS12,
@@ -12843,7 +12852,7 @@ import {
12843
12852
  AccountRole as AccountRole13
12844
12853
  } from "@solana/kit";
12845
12854
  import { MEMO_PROGRAM_ADDRESS as MEMO_PROGRAM_ADDRESS13 } from "@solana-program/memo";
12846
- import { fetchAllMaybeMint as fetchAllMaybeMint16, fetchAllToken as fetchAllToken2, findAssociatedTokenPda as findAssociatedTokenPda18 } from "@solana-program/token-2022";
12855
+ import { fetchAllMaybeMint as fetchAllMaybeMint16, fetchAllToken as fetchAllToken4, findAssociatedTokenPda as findAssociatedTokenPda18 } from "@solana-program/token-2022";
12847
12856
  import assert16 from "assert";
12848
12857
  async function decreaseTunaSpotPositionFusionInstructions(rpc, authority, fusionPoolAddress, args, createInstructions, cleanupInstructions) {
12849
12858
  const instructions = [];
@@ -12861,39 +12870,24 @@ async function decreaseTunaSpotPositionFusionInstructions(rpc, authority, fusion
12861
12870
  (await getLendingVaultAddress(fusionPool.data.tokenMintA))[0],
12862
12871
  (await getLendingVaultAddress(fusionPool.data.tokenMintB))[0]
12863
12872
  ]);
12864
- const tunaPositionAtaA = (await findAssociatedTokenPda18({
12873
+ const tunaPositionAtaAAddress = (await findAssociatedTokenPda18({
12865
12874
  owner: tunaPosition.address,
12866
12875
  mint: mintA.address,
12867
12876
  tokenProgram: mintA.programAddress
12868
12877
  }))[0];
12869
- const tunaPositionAtaB = (await findAssociatedTokenPda18({
12878
+ const tunaPositionAtaBAddress = (await findAssociatedTokenPda18({
12870
12879
  owner: tunaPosition.address,
12871
12880
  mint: mintB.address,
12872
12881
  tokenProgram: mintB.programAddress
12873
12882
  }))[0];
12874
- const tunaPositionTokenAccounts = await fetchAllToken2(rpc, [tunaPositionAtaA, tunaPositionAtaB]);
12875
- let createUserAtaAInstructions = void 0;
12876
- if (tunaPosition.data.collateralToken == 0 /* A */ || tunaPositionTokenAccounts[0].data.amount > (tunaPosition.data.positionToken == 0 /* A */ ? tunaPosition.data.amount : 0n)) {
12877
- createUserAtaAInstructions = await getCreateAtaInstructions(
12878
- rpc,
12879
- authority,
12880
- mintA.address,
12881
- authority.address,
12882
- mintA.programAddress
12883
- );
12884
- createInstructions.push(...createUserAtaAInstructions.init);
12885
- }
12886
- let createUserAtaBInstructions = void 0;
12887
- if (tunaPosition.data.collateralToken == 1 /* B */ || tunaPositionTokenAccounts[1].data.amount > (tunaPosition.data.positionToken == 1 /* B */ ? tunaPosition.data.amount : 0n)) {
12888
- createUserAtaBInstructions = await getCreateAtaInstructions(
12889
- rpc,
12890
- authority,
12891
- mintB.address,
12892
- authority.address,
12893
- mintB.programAddress
12894
- );
12895
- createInstructions.push(...createUserAtaBInstructions.init);
12896
- }
12883
+ const [tunaPositionAtaA, tunaPositionAtaB] = await fetchAllToken4(rpc, [
12884
+ tunaPositionAtaAAddress,
12885
+ tunaPositionAtaBAddress
12886
+ ]);
12887
+ const createUserAtaAInstructions = tunaPosition.data.collateralToken == 0 /* A */ || tunaPositionAtaA.data.amount > (tunaPosition.data.positionToken == 0 /* A */ ? tunaPosition.data.amount : 0n) ? await getCreateAtaInstructions(rpc, authority, mintA.address, authority.address, mintA.programAddress) : void 0;
12888
+ if (createUserAtaAInstructions) createInstructions.push(...createUserAtaAInstructions.init);
12889
+ const createUserAtaBInstructions = tunaPosition.data.collateralToken == 1 /* B */ || tunaPositionAtaB.data.amount > (tunaPosition.data.positionToken == 1 /* B */ ? tunaPosition.data.amount : 0n) ? await getCreateAtaInstructions(rpc, authority, mintB.address, authority.address, mintB.programAddress) : void 0;
12890
+ if (createUserAtaBInstructions) createInstructions.push(...createUserAtaBInstructions.init);
12897
12891
  const ix = await decreaseTunaSpotPositionFusionInstruction(
12898
12892
  authority,
12899
12893
  tunaPosition,
@@ -12912,7 +12906,7 @@ async function decreaseTunaSpotPositionFusionInstructions(rpc, authority, fusion
12912
12906
  if (createUserAtaBInstructions) cleanupInstructions.push(...createUserAtaBInstructions.cleanup);
12913
12907
  return instructions;
12914
12908
  }
12915
- async function decreaseTunaSpotPositionFusionInstruction(authority, tunaPosition, tunaConfig, mintA, mintB, vaultA, vaultB, fusionPool, passTunaPositionOwnerAtaA, passTunaPositionOwnerAtaB, args) {
12909
+ async function decreaseTunaSpotPositionFusionInstruction(authority, tunaPosition, tunaConfig, mintA, mintB, vaultA, vaultB, fusionPool, setTunaPositionOwnerAtaA, setTunaPositionOwnerAtaB, args) {
12916
12910
  const marketAddress = (await getMarketAddress(fusionPool.address))[0];
12917
12911
  const tunaPositionOwnerAtaA = (await findAssociatedTokenPda18({
12918
12912
  owner: authority.address,
@@ -12978,8 +12972,8 @@ async function decreaseTunaSpotPositionFusionInstruction(authority, tunaPosition
12978
12972
  tunaPosition: tunaPosition.address,
12979
12973
  tunaPositionAtaA,
12980
12974
  tunaPositionAtaB,
12981
- tunaPositionOwnerAtaA: passTunaPositionOwnerAtaA ? tunaPositionOwnerAtaA : void 0,
12982
- tunaPositionOwnerAtaB: passTunaPositionOwnerAtaB ? tunaPositionOwnerAtaB : void 0,
12975
+ ...setTunaPositionOwnerAtaA && { tunaPositionOwnerAtaA },
12976
+ ...setTunaPositionOwnerAtaB && { tunaPositionOwnerAtaB },
12983
12977
  fusionPool: fusionPool.address,
12984
12978
  fusionammProgram: FUSIONAMM_PROGRAM_ADDRESS8,
12985
12979
  memoProgram: MEMO_PROGRAM_ADDRESS13,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@crypticdot/defituna-client",
3
3
  "description": "Typescript client to interact with DefiTuna's on-chain program.",
4
- "version": "3.1.4",
4
+ "version": "3.1.5",
5
5
  "private": false,
6
6
  "license": "SEE LICENSE IN LICENSE",
7
7
  "main": "./dist/index.js",