@jup-ag/lend 0.0.27 → 0.0.28

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.
@@ -3726,26 +3726,7 @@ declare const calculateFinalPosition: ({ vaultId, currentPosition, newColAmount,
3726
3726
  finalAmount: BN;
3727
3727
  isSupplyOnlyPosition: boolean;
3728
3728
  }>;
3729
- declare function loadRelevantBranches(vaultId: number, vaultState: VaultState, program: Program<Vaults>): Promise<({
3730
- vaultId: number;
3731
- branchId: number;
3732
- status: number;
3733
- minimaTick: number;
3734
- minimaTickPartials: number;
3735
- debtLiquidity: BN;
3736
- debtFactor: BN;
3737
- connectedBranchId: number;
3738
- connectedMinimaTick: number;
3739
- } | {
3740
- branchId: number;
3741
- status: number;
3742
- minimaTick: number;
3743
- minimaTickPartials: number;
3744
- debtLiquidity: number;
3745
- debtFactor: number;
3746
- connectedBranchId: number;
3747
- connectedMinimaTick: number;
3748
- } | undefined)[]>;
3729
+ declare function loadRelevantBranches(vaultId: number, vaultState: VaultState, program: Program<Vaults>): Promise<number[]>;
3749
3730
  declare function loadRelevantTicksHasDebtArrays(vaultId: number, program: Program<Vaults>): Promise<{
3750
3731
  vaultId: number;
3751
3732
  index: number;
@@ -3726,26 +3726,7 @@ declare const calculateFinalPosition: ({ vaultId, currentPosition, newColAmount,
3726
3726
  finalAmount: BN;
3727
3727
  isSupplyOnlyPosition: boolean;
3728
3728
  }>;
3729
- declare function loadRelevantBranches(vaultId: number, vaultState: VaultState, program: Program<Vaults>): Promise<({
3730
- vaultId: number;
3731
- branchId: number;
3732
- status: number;
3733
- minimaTick: number;
3734
- minimaTickPartials: number;
3735
- debtLiquidity: BN;
3736
- debtFactor: BN;
3737
- connectedBranchId: number;
3738
- connectedMinimaTick: number;
3739
- } | {
3740
- branchId: number;
3741
- status: number;
3742
- minimaTick: number;
3743
- minimaTickPartials: number;
3744
- debtLiquidity: number;
3745
- debtFactor: number;
3746
- connectedBranchId: number;
3747
- connectedMinimaTick: number;
3748
- } | undefined)[]>;
3729
+ declare function loadRelevantBranches(vaultId: number, vaultState: VaultState, program: Program<Vaults>): Promise<number[]>;
3749
3730
  declare function loadRelevantTicksHasDebtArrays(vaultId: number, program: Program<Vaults>): Promise<{
3750
3731
  vaultId: number;
3751
3732
  index: number;
@@ -951,75 +951,42 @@ const calculateFinalPosition = async ({
951
951
  };
952
952
  };
953
953
  async function loadRelevantBranches(vaultId, vaultState, program) {
954
- const branches = [];
954
+ const addedBranchIds = /* @__PURE__ */ new Set();
955
955
  const currentBranchId = vaultState.currentBranchId;
956
+ let connectedBranchId = 0;
956
957
  if (currentBranchId > 0) {
957
958
  try {
958
959
  const currentBranch = await program.account.branch.fetch(
959
960
  getBranch(vaultId, currentBranchId)
960
961
  );
961
962
  if (currentBranch) {
962
- branches.push(currentBranch);
963
+ addedBranchIds.add(currentBranch.branchId);
964
+ connectedBranchId = currentBranch.connectedBranchId;
963
965
  }
964
966
  } catch (error) {
965
967
  console.warn(`Failed to fetch current branch ${currentBranchId}:`, error);
966
968
  }
967
969
  }
968
- if (branches.length > 0) {
969
- let connectedBranchId = branches[0].connectedBranchId;
970
- while (connectedBranchId > 0 && branches.length < 10) {
971
- try {
972
- const connectedBranch = await program.account.branch.fetch(
973
- getBranch(vaultId, connectedBranchId)
974
- );
975
- if (connectedBranch) {
976
- branches.push(connectedBranch);
977
- connectedBranchId = connectedBranch.connectedBranchId;
978
- } else {
979
- break;
980
- }
981
- } catch (error) {
982
- console.warn(
983
- `Failed to fetch connected branch ${connectedBranchId}:`,
984
- error
985
- );
986
- break;
987
- }
988
- }
989
- }
990
- if (branches.length < 10) {
991
- for (let i = 1; i <= vaultState.totalBranchId && branches.length < 10; i++) {
992
- if (branches.some((b) => b.branchId === i)) {
993
- continue;
994
- }
995
- try {
996
- const branch = await program.account.branch.fetch(
997
- getBranch(vaultId, i)
998
- );
999
- if (branch) {
1000
- branches.push(branch);
1001
- }
1002
- } catch (error) {
1003
- }
1004
- }
1005
- }
1006
- while (branches.length < 10) {
1007
- if (branches.length > 0) {
1008
- branches.push(branches[0]);
1009
- } else {
1010
- branches.push({
1011
- branchId: 1,
1012
- status: 0,
1013
- minimaTick: MIN_TICK,
1014
- minimaTickPartials: 0,
1015
- debtLiquidity: 0,
1016
- debtFactor: 0,
1017
- connectedBranchId: 0,
1018
- connectedMinimaTick: 0
1019
- });
970
+ while (connectedBranchId > 0) {
971
+ try {
972
+ const connectedBranch = await program.account.branch.fetch(
973
+ getBranch(vaultId, connectedBranchId)
974
+ );
975
+ if (connectedBranch) {
976
+ if (!addedBranchIds.has(connectedBranch.branchId))
977
+ addedBranchIds.add(connectedBranch.branchId);
978
+ connectedBranchId = connectedBranch.connectedBranchId;
979
+ } else break;
980
+ } catch (error) {
981
+ console.warn(
982
+ `Failed to fetch connected branch ${connectedBranchId}:`,
983
+ error
984
+ );
985
+ break;
1020
986
  }
1021
987
  }
1022
- return branches.slice(0, 10);
988
+ if (!addedBranchIds.has(0)) addedBranchIds.add(0);
989
+ return Array.from(addedBranchIds);
1023
990
  }
1024
991
  async function loadRelevantTicksHasDebtArrays(vaultId, program) {
1025
992
  return await Promise.all(
@@ -1185,7 +1152,7 @@ async function getRemainingAccountsOperate(vaultId, vaultState, vaultConfig, pro
1185
1152
  for (const branch of branches) {
1186
1153
  if (!branch) continue;
1187
1154
  remainingAccounts.push({
1188
- pubkey: getBranch(vaultId, branch.branchId),
1155
+ pubkey: getBranch(vaultId, branch),
1189
1156
  isWritable: true,
1190
1157
  isSigner: false
1191
1158
  });
package/dist/index.mjs CHANGED
@@ -5,6 +5,6 @@ import '@solana/web3.js';
5
5
  import '@solana/spl-token';
6
6
  import 'bn.js';
7
7
 
8
- const version = "0.0.27";
8
+ const version = "0.0.28";
9
9
 
10
10
  export { version };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jup-ag/lend",
3
- "version": "0.0.27",
3
+ "version": "0.0.28",
4
4
  "license": "MIT",
5
5
  "sideEffects": false,
6
6
  "type": "module",