@kamino-finance/klend-sdk 5.11.3-beta.0 → 5.11.3-beta.1

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.
Files changed (87) hide show
  1. package/dist/classes/action.d.ts +23 -23
  2. package/dist/classes/action.d.ts.map +1 -1
  3. package/dist/classes/action.js +149 -69
  4. package/dist/classes/action.js.map +1 -1
  5. package/dist/classes/manager.d.ts +1 -1
  6. package/dist/classes/manager.js +1 -1
  7. package/dist/classes/market.d.ts +3 -3
  8. package/dist/classes/market.d.ts.map +1 -1
  9. package/dist/classes/market.js +16 -30
  10. package/dist/classes/market.js.map +1 -1
  11. package/dist/classes/obligation.d.ts +0 -2
  12. package/dist/classes/obligation.d.ts.map +1 -1
  13. package/dist/classes/obligation.js +0 -5
  14. package/dist/classes/obligation.js.map +1 -1
  15. package/dist/classes/vault.js +14 -14
  16. package/dist/classes/vault.js.map +1 -1
  17. package/dist/idl_codegen_kamino_vault/accounts/VaultState.d.ts +3 -3
  18. package/dist/idl_codegen_kamino_vault/accounts/VaultState.d.ts.map +1 -1
  19. package/dist/idl_codegen_kamino_vault/accounts/VaultState.js +6 -6
  20. package/dist/idl_codegen_kamino_vault/accounts/VaultState.js.map +1 -1
  21. package/dist/idl_codegen_kamino_vault/instructions/giveUpPendingFees.d.ts +1 -1
  22. package/dist/idl_codegen_kamino_vault/instructions/giveUpPendingFees.d.ts.map +1 -1
  23. package/dist/idl_codegen_kamino_vault/instructions/giveUpPendingFees.js +1 -1
  24. package/dist/idl_codegen_kamino_vault/instructions/giveUpPendingFees.js.map +1 -1
  25. package/dist/idl_codegen_kamino_vault/instructions/initializeSharesMetadata.d.ts +1 -1
  26. package/dist/idl_codegen_kamino_vault/instructions/initializeSharesMetadata.d.ts.map +1 -1
  27. package/dist/idl_codegen_kamino_vault/instructions/initializeSharesMetadata.js +1 -1
  28. package/dist/idl_codegen_kamino_vault/instructions/initializeSharesMetadata.js.map +1 -1
  29. package/dist/idl_codegen_kamino_vault/instructions/updateSharesMetadata.d.ts +1 -1
  30. package/dist/idl_codegen_kamino_vault/instructions/updateSharesMetadata.d.ts.map +1 -1
  31. package/dist/idl_codegen_kamino_vault/instructions/updateSharesMetadata.js +1 -1
  32. package/dist/idl_codegen_kamino_vault/instructions/updateSharesMetadata.js.map +1 -1
  33. package/dist/idl_codegen_kamino_vault/instructions/updateVaultConfig.d.ts +1 -1
  34. package/dist/idl_codegen_kamino_vault/instructions/updateVaultConfig.d.ts.map +1 -1
  35. package/dist/idl_codegen_kamino_vault/instructions/updateVaultConfig.js +1 -1
  36. package/dist/idl_codegen_kamino_vault/instructions/updateVaultConfig.js.map +1 -1
  37. package/dist/idl_codegen_kamino_vault/instructions/withdrawPendingFees.d.ts +1 -1
  38. package/dist/idl_codegen_kamino_vault/instructions/withdrawPendingFees.d.ts.map +1 -1
  39. package/dist/idl_codegen_kamino_vault/instructions/withdrawPendingFees.js +1 -1
  40. package/dist/idl_codegen_kamino_vault/instructions/withdrawPendingFees.js.map +1 -1
  41. package/dist/lending_operations/repay_with_collateral_operations.d.ts +4 -4
  42. package/dist/lending_operations/repay_with_collateral_operations.d.ts.map +1 -1
  43. package/dist/lending_operations/repay_with_collateral_operations.js +8 -10
  44. package/dist/lending_operations/repay_with_collateral_operations.js.map +1 -1
  45. package/dist/lending_operations/swap_collateral_operations.d.ts +2 -2
  46. package/dist/lending_operations/swap_collateral_operations.d.ts.map +1 -1
  47. package/dist/lending_operations/swap_collateral_operations.js +6 -11
  48. package/dist/lending_operations/swap_collateral_operations.js.map +1 -1
  49. package/dist/leverage/calcs.d.ts +10 -5
  50. package/dist/leverage/calcs.d.ts.map +1 -1
  51. package/dist/leverage/calcs.js +13 -6
  52. package/dist/leverage/calcs.js.map +1 -1
  53. package/dist/leverage/operations.d.ts +7 -9
  54. package/dist/leverage/operations.d.ts.map +1 -1
  55. package/dist/leverage/operations.js +72 -78
  56. package/dist/leverage/operations.js.map +1 -1
  57. package/dist/leverage/types.d.ts +4 -4
  58. package/dist/leverage/types.d.ts.map +1 -1
  59. package/dist/utils/ObligationType.d.ts +1 -1
  60. package/dist/utils/ObligationType.d.ts.map +1 -1
  61. package/dist/utils/managerTypes.d.ts.map +1 -1
  62. package/dist/utils/managerTypes.js +52 -7
  63. package/dist/utils/managerTypes.js.map +1 -1
  64. package/dist/utils/oracle.d.ts +3 -3
  65. package/dist/utils/oracle.d.ts.map +1 -1
  66. package/package.json +2 -2
  67. package/src/classes/action.ts +162 -75
  68. package/src/classes/manager.ts +1 -1
  69. package/src/classes/market.ts +25 -34
  70. package/src/classes/obligation.ts +0 -6
  71. package/src/classes/vault.ts +14 -14
  72. package/src/client.ts +3 -8
  73. package/src/idl_codegen_kamino_vault/accounts/VaultState.ts +8 -8
  74. package/src/idl_codegen_kamino_vault/instructions/giveUpPendingFees.ts +2 -2
  75. package/src/idl_codegen_kamino_vault/instructions/initializeSharesMetadata.ts +2 -2
  76. package/src/idl_codegen_kamino_vault/instructions/updateSharesMetadata.ts +2 -2
  77. package/src/idl_codegen_kamino_vault/instructions/updateVaultConfig.ts +2 -2
  78. package/src/idl_codegen_kamino_vault/instructions/withdrawPendingFees.ts +2 -2
  79. package/src/idl_kamino_vault.json +7 -7
  80. package/src/lending_operations/repay_with_collateral_operations.ts +11 -15
  81. package/src/lending_operations/swap_collateral_operations.ts +7 -19
  82. package/src/leverage/calcs.ts +18 -2
  83. package/src/leverage/operations.ts +72 -114
  84. package/src/leverage/types.ts +4 -4
  85. package/src/utils/ObligationType.ts +1 -1
  86. package/src/utils/managerTypes.ts +52 -10
  87. package/src/utils/oracle.ts +2 -2
@@ -1,10 +1,9 @@
1
1
  import { Connection, PublicKey, RpcResponseAndContext, SimulatedTransactionResponse, Transaction, TransactionInstruction, TransactionSignature } from '@solana/web3.js';
2
2
  import BN from 'bn.js';
3
- import { ObligationType, ScopePriceRefreshConfig } from '../utils';
3
+ import { ObligationType, ScopeRefresh } from '../utils';
4
4
  import { KaminoMarket } from './market';
5
5
  import { KaminoObligation } from './obligation';
6
6
  import { KaminoReserve } from './reserve';
7
- import { Scope } from '@kamino-finance/scope-sdk';
8
7
  export type ActionType = 'deposit' | 'borrow' | 'withdraw' | 'repay' | 'mint' | 'redeem' | 'depositCollateral' | 'liquidate' | 'depositAndBorrow' | 'repayAndWithdraw' | 'refreshObligation' | 'requestElevationGroup' | 'withdrawReferrerFees';
9
8
  export type AuxiliaryIx = 'setup' | 'inBetween' | 'cleanup';
10
9
  export declare class KaminoAction {
@@ -55,39 +54,40 @@ export declare class KaminoAction {
55
54
  currentSlot?: number): Promise<KaminoAction>;
56
55
  static buildRequestElevationGroupTxns(kaminoMarket: KaminoMarket, payer: PublicKey, obligation: KaminoObligation, elevationGroup: number, extraComputeBudget?: number, // if > 0 then adds the ixn
57
56
  currentSlot?: number): Promise<KaminoAction>;
58
- static buildDepositTxns(kaminoMarket: KaminoMarket, amount: string | BN, mint: PublicKey, owner: PublicKey, obligation: KaminoObligation | ObligationType, useV2Ixs: boolean, scopeRefreshConfig: ScopePriceRefreshConfig | undefined, extraComputeBudget?: number, // if > 0 then adds the ixn
57
+ static buildDepositTxns(kaminoMarket: KaminoMarket, amount: string | BN, mint: PublicKey, owner: PublicKey, obligation: KaminoObligation | ObligationType, useV2Ixs: boolean, extraComputeBudget?: number, // if > 0 then adds the ixn
59
58
  includeAtaIxns?: boolean, // if true it includes create and close wsol and token atas,
60
59
  requestElevationGroup?: boolean, // to be requested *before* the deposit
61
60
  includeUserMetadata?: boolean, // if true it includes user metadata
62
- createLookupTable?: boolean, referrer?: PublicKey, currentSlot?: number, overrideElevationGroupRequest?: number | undefined): Promise<KaminoAction>;
63
- addScopeRefreshIxs(scope: Scope, tokens: number[], feed?: string): Promise<void>;
64
- static buildBorrowTxns(kaminoMarket: KaminoMarket, amount: string | BN, mint: PublicKey, owner: PublicKey, obligation: KaminoObligation | ObligationType, useV2Ixs: boolean, scopeRefreshConfig: ScopePriceRefreshConfig | undefined, extraComputeBudget?: number, // if > 0 then adds the ixn
61
+ createLookupTable?: boolean, referrer?: PublicKey, currentSlot?: number, scopeRefresh?: ScopeRefresh, overrideElevationGroupRequest?: number | undefined): Promise<KaminoAction>;
62
+ getTokenIdsForScopeRefresh(kaminoMarket: KaminoMarket, reserves: PublicKey[]): number[];
63
+ addScopeRefreshIxs(tokens: number[], feed?: string): Promise<void>;
64
+ static buildBorrowTxns(kaminoMarket: KaminoMarket, amount: string | BN, mint: PublicKey, owner: PublicKey, obligation: KaminoObligation | ObligationType, useV2Ixs: boolean, extraComputeBudget?: number, // if > 0 then adds the ixn
65
65
  includeAtaIxns?: boolean, // if true it includes create and close wsol and token atas,
66
66
  requestElevationGroup?: boolean, includeUserMetadata?: boolean, // if true it includes user metadata
67
- createLookupTable?: boolean, referrer?: PublicKey, currentSlot?: number, overrideElevationGroupRequest?: number | undefined): Promise<KaminoAction>;
68
- static buildDepositReserveLiquidityTxns(kaminoMarket: KaminoMarket, amount: string | BN, mint: PublicKey, owner: PublicKey, obligation: KaminoObligation | ObligationType, scopeRefreshConfig: ScopePriceRefreshConfig | undefined, extraComputeBudget?: number, // if > 0 then adds the ixn
67
+ createLookupTable?: boolean, referrer?: PublicKey, currentSlot?: number, scopeRefresh?: ScopeRefresh, overrideElevationGroupRequest?: number | undefined): Promise<KaminoAction>;
68
+ static buildDepositReserveLiquidityTxns(kaminoMarket: KaminoMarket, amount: string | BN, mint: PublicKey, owner: PublicKey, obligation: KaminoObligation | ObligationType, extraComputeBudget?: number, // if > 0 then adds the ixn
69
69
  includeAtaIxns?: boolean, // if true it includes create and close wsol and token atas
70
- requestElevationGroup?: boolean, referrer?: PublicKey, currentSlot?: number): Promise<KaminoAction>;
71
- static buildRedeemReserveCollateralTxns(kaminoMarket: KaminoMarket, amount: string | BN, mint: PublicKey, owner: PublicKey, obligation: KaminoObligation | ObligationType, scopeRefreshConfig: ScopePriceRefreshConfig | undefined, extraComputeBudget?: number, // if > 0 then adds the ixn
70
+ requestElevationGroup?: boolean, referrer?: PublicKey, currentSlot?: number, scopeRefresh?: ScopeRefresh): Promise<KaminoAction>;
71
+ static buildRedeemReserveCollateralTxns(kaminoMarket: KaminoMarket, amount: string | BN, mint: PublicKey, owner: PublicKey, obligation: KaminoObligation | ObligationType, extraComputeBudget?: number, // if > 0 then adds the ixn
72
72
  includeAtaIxns?: boolean, // if true it includes create and close wsol and token atas
73
- requestElevationGroup?: boolean, referrer?: PublicKey, currentSlot?: number): Promise<KaminoAction>;
74
- static buildDepositObligationCollateralTxns(kaminoMarket: KaminoMarket, amount: string | BN, mint: PublicKey, owner: PublicKey, obligation: KaminoObligation | ObligationType, useV2Ixs: boolean, scopeRefreshConfig: ScopePriceRefreshConfig | undefined, extraComputeBudget?: number, // if > 0 then adds the ixn
73
+ requestElevationGroup?: boolean, referrer?: PublicKey, currentSlot?: number, scopeRefresh?: ScopeRefresh): Promise<KaminoAction>;
74
+ static buildDepositObligationCollateralTxns(kaminoMarket: KaminoMarket, amount: string | BN, mint: PublicKey, owner: PublicKey, obligation: KaminoObligation | ObligationType, useV2Ixs: boolean, extraComputeBudget?: number, // if > 0 then adds the ixn
75
75
  includeAtaIxns?: boolean, // if true it includes create and close wsol and token atas
76
76
  requestElevationGroup?: boolean, includeUserMetadata?: boolean, // if true it includes user metadata
77
- createLookupTable?: boolean, referrer?: PublicKey, currentSlot?: number): Promise<KaminoAction>;
78
- static buildDepositAndBorrowTxns(kaminoMarket: KaminoMarket, depositAmount: string | BN, depositMint: PublicKey, borrowAmount: string | BN, borrowMint: PublicKey, payer: PublicKey, obligation: KaminoObligation | ObligationType, useV2Ixs: boolean, scopeRefreshConfig: ScopePriceRefreshConfig | undefined, extraComputeBudget?: number, // if > 0 then adds the ixn
77
+ createLookupTable?: boolean, referrer?: PublicKey, currentSlot?: number, scopeRefresh?: ScopeRefresh): Promise<KaminoAction>;
78
+ static buildDepositAndBorrowTxns(kaminoMarket: KaminoMarket, depositAmount: string | BN, depositMint: PublicKey, borrowAmount: string | BN, borrowMint: PublicKey, payer: PublicKey, obligation: KaminoObligation | ObligationType, useV2Ixs: boolean, extraComputeBudget?: number, // if > 0 then adds the ixn
79
79
  includeAtaIxns?: boolean, // if true it includes create and close wsol and token atas,
80
80
  requestElevationGroup?: boolean, includeUserMetadata?: boolean, // if true it includes user metadata,
81
- createLookupTable?: boolean, referrer?: PublicKey, currentSlot?: number): Promise<KaminoAction>;
82
- static buildRepayAndWithdrawTxns(kaminoMarket: KaminoMarket, repayAmount: string | BN, repayMint: PublicKey, withdrawAmount: string | BN, withdrawMint: PublicKey, payer: PublicKey, currentSlot: number, obligation: KaminoObligation | ObligationType, useV2Ixs: boolean, scopeRefreshConfig: ScopePriceRefreshConfig | undefined, extraComputeBudget?: number, // if > 0 then adds the ixn
81
+ createLookupTable?: boolean, referrer?: PublicKey, currentSlot?: number, scopeRefresh?: ScopeRefresh): Promise<KaminoAction>;
82
+ static buildRepayAndWithdrawTxns(kaminoMarket: KaminoMarket, repayAmount: string | BN, repayMint: PublicKey, withdrawAmount: string | BN, withdrawMint: PublicKey, payer: PublicKey, currentSlot: number, obligation: KaminoObligation | ObligationType, useV2Ixs: boolean, extraComputeBudget?: number, // if > 0 then adds the ixn
83
83
  includeAtaIxns?: boolean, // if true it includes create and close wsol and token atas,
84
84
  requestElevationGroup?: boolean, includeUserMetadata?: boolean, // if true it includes user metadata,
85
- createLookupTable?: boolean, referrer?: PublicKey): Promise<KaminoAction>;
86
- static buildWithdrawTxns(kaminoMarket: KaminoMarket, amount: string | BN, mint: PublicKey, owner: PublicKey, obligation: KaminoObligation | ObligationType, useV2Ixs: boolean, scopeRefreshConfig: ScopePriceRefreshConfig | undefined, extraComputeBudget?: number, // if > 0 then adds the ixn
85
+ createLookupTable?: boolean, referrer?: PublicKey, scopeRefresh?: ScopeRefresh): Promise<KaminoAction>;
86
+ static buildWithdrawTxns(kaminoMarket: KaminoMarket, amount: string | BN, mint: PublicKey, owner: PublicKey, obligation: KaminoObligation | ObligationType, useV2Ixs: boolean, extraComputeBudget?: number, // if > 0 then adds the ixn
87
87
  includeAtaIxns?: boolean, // if true it includes create and close wsol and token atas,
88
88
  requestElevationGroup?: boolean, // to be requested *after* the withdraw
89
89
  includeUserMetadata?: boolean, // if true it includes user metadata
90
- createLookupTable?: boolean, referrer?: PublicKey, currentSlot?: number, overrideElevationGroupRequest?: number, obligationCustomizations?: {
90
+ createLookupTable?: boolean, referrer?: PublicKey, currentSlot?: number, scopeRefresh?: ScopeRefresh | undefined, overrideElevationGroupRequest?: number, obligationCustomizations?: {
91
91
  addedDepositReserves?: PublicKey[];
92
92
  }): Promise<KaminoAction>;
93
93
  /**
@@ -105,11 +105,11 @@ export declare class KaminoAction {
105
105
  * @param includeUserMetadata - if true it includes user metadata
106
106
  * @param referrer
107
107
  */
108
- static buildRepayTxns(kaminoMarket: KaminoMarket, amount: string | BN, mint: PublicKey, owner: PublicKey, obligation: KaminoObligation | ObligationType, useV2Ixs: boolean, scopeRefreshConfig: ScopePriceRefreshConfig | undefined, currentSlot: number, payer?: PublicKey | undefined, extraComputeBudget?: number, includeAtaIxns?: boolean, requestElevationGroup?: boolean, includeUserMetadata?: boolean, createLookupTable?: boolean, referrer?: PublicKey): Promise<KaminoAction>;
109
- static buildLiquidateTxns(kaminoMarket: KaminoMarket, amount: string | BN, minCollateralReceiveAmount: string | BN, repayTokenMint: PublicKey, withdrawTokenMint: PublicKey, liquidator: PublicKey, obligationOwner: PublicKey, obligation: KaminoObligation | ObligationType, useV2Ixs: boolean, scopeRefreshConfig: ScopePriceRefreshConfig | undefined, extraComputeBudget?: number, // if > 0 then adds the ixn
108
+ static buildRepayTxns(kaminoMarket: KaminoMarket, amount: string | BN, mint: PublicKey, owner: PublicKey, obligation: KaminoObligation | ObligationType, useV2Ixs: boolean, currentSlot: number, payer?: PublicKey | undefined, extraComputeBudget?: number, includeAtaIxns?: boolean, requestElevationGroup?: boolean, includeUserMetadata?: boolean, createLookupTable?: boolean, referrer?: PublicKey, scopeRefresh?: ScopeRefresh): Promise<KaminoAction>;
109
+ static buildLiquidateTxns(kaminoMarket: KaminoMarket, amount: string | BN, minCollateralReceiveAmount: string | BN, repayTokenMint: PublicKey, withdrawTokenMint: PublicKey, liquidator: PublicKey, obligationOwner: PublicKey, obligation: KaminoObligation | ObligationType, useV2Ixs: boolean, extraComputeBudget?: number, // if > 0 then adds the ixn
110
110
  includeAtaIxns?: boolean, // if true it includes create and close wsol and token atas, and creates all other token atas if they don't exist
111
111
  requestElevationGroup?: boolean, includeUserMetadata?: boolean, // if true it includes user metadata
112
- createLookupTable?: boolean, referrer?: PublicKey, maxAllowedLtvOverridePercent?: number, currentSlot?: number): Promise<KaminoAction>;
112
+ createLookupTable?: boolean, referrer?: PublicKey, maxAllowedLtvOverridePercent?: number, currentSlot?: number, scopeRefresh?: ScopeRefresh): Promise<KaminoAction>;
113
113
  static buildWithdrawReferrerFeeTxns(owner: PublicKey, tokenMint: PublicKey, kaminoMarket: KaminoMarket, currentSlot?: number): Promise<KaminoAction>;
114
114
  getTransactions(): Promise<{
115
115
  preLendingTxn: Transaction | null;
@@ -141,7 +141,7 @@ export declare class KaminoAction {
141
141
  addInBetweenIxs(action: ActionType, includeAtaIxns: boolean, requestElevationGroup: boolean, addInitObligationForFarm: boolean, useV2Ixs: boolean): Promise<void>;
142
142
  addRefreshObligation(crank: PublicKey): void;
143
143
  addSupportIxsWithoutInitObligation(action: ActionType, includeAtaIxns: boolean, useV2Ixs: boolean, addAsSupportIx?: AuxiliaryIx, requestElevationGroup?: boolean, addInitObligationForFarm?: boolean, twoTokenAction?: boolean, overrideElevationGroupRequest?: number): Promise<void>;
144
- addSupportIxs(action: ActionType, includeAtaIxns: boolean, requestElevationGroup: boolean, includeUserMetadata: boolean, addInitObligationForFarm: boolean, useV2Ixs: boolean, scopeRefreshConfig: ScopePriceRefreshConfig | undefined, createLookupTable: boolean, twoTokenAction?: boolean, overrideElevationGroupRequest?: number): Promise<void>;
144
+ addSupportIxs(action: ActionType, includeAtaIxns: boolean, requestElevationGroup: boolean, includeUserMetadata: boolean, addInitObligationForFarm: boolean, useV2Ixs: boolean, createLookupTable: boolean, twoTokenAction?: boolean, overrideElevationGroupRequest?: number): Promise<void>;
145
145
  private static optionalAccount;
146
146
  private addRefreshReserveIxs;
147
147
  static getRefreshAllReserves(kaminoMarket: KaminoMarket, reserves: PublicKey[]): TransactionInstruction[];
@@ -1 +1 @@
1
- {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../src/classes/action.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../src/classes/action.ts"],"names":[],"mappings":"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"}
@@ -10,12 +10,12 @@ const bn_js_1 = __importDefault(require("bn.js"));
10
10
  const decimal_js_1 = __importDefault(require("decimal.js"));
11
11
  const instructions_1 = require("../idl_codegen/instructions");
12
12
  const utils_1 = require("../utils");
13
- const market_1 = require("./market");
14
13
  const obligation_1 = require("./obligation");
15
14
  const types_1 = require("../idl_codegen/types");
16
15
  const farms_sdk_1 = require("@kamino-finance/farms-sdk");
17
16
  const ObligationType_1 = require("../utils/ObligationType");
18
17
  const lib_1 = require("../lib");
18
+ const scope_sdk_1 = require("@kamino-finance/scope-sdk");
19
19
  const SOL_PADDING_FOR_INTEREST = new bn_js_1.default('1000000');
20
20
  class KaminoAction {
21
21
  kaminoMarket;
@@ -180,18 +180,27 @@ class KaminoAction {
180
180
  axn.addRequestElevationIx(elevationGroup, 'setup');
181
181
  return axn;
182
182
  }
183
- static async buildDepositTxns(kaminoMarket, amount, mint, owner, obligation, useV2Ixs, scopeRefreshConfig, extraComputeBudget = 1_000_000, // if > 0 then adds the ixn
183
+ static async buildDepositTxns(kaminoMarket, amount, mint, owner, obligation, useV2Ixs, extraComputeBudget = 1_000_000, // if > 0 then adds the ixn
184
184
  includeAtaIxns = true, // if true it includes create and close wsol and token atas,
185
185
  requestElevationGroup = false, // to be requested *before* the deposit
186
186
  includeUserMetadata = true, // if true it includes user metadata
187
- createLookupTable = true, referrer = web3_js_1.PublicKey.default, currentSlot = 0, overrideElevationGroupRequest = undefined // if set, when an elevationgroup request is made, it will use this value
187
+ createLookupTable = true, referrer = web3_js_1.PublicKey.default, currentSlot = 0, scopeRefresh = { includeScopeRefresh: false, scopeFeed: 'hubble' }, overrideElevationGroupRequest = undefined // if set, when an elevationgroup request is made, it will use this value
188
188
  ) {
189
189
  const axn = await KaminoAction.initialize('deposit', amount, mint, owner, kaminoMarket, obligation, referrer, currentSlot);
190
190
  const addInitObligationForFarm = true;
191
191
  if (extraComputeBudget > 0) {
192
192
  axn.addComputeBudgetIxn(extraComputeBudget);
193
193
  }
194
- await axn.addSupportIxs('deposit', includeAtaIxns, requestElevationGroup, includeUserMetadata, addInitObligationForFarm, useV2Ixs, scopeRefreshConfig, createLookupTable, undefined, overrideElevationGroupRequest);
194
+ const allReserves = new utils_1.PublicKeySet([
195
+ ...axn.depositReserves,
196
+ ...axn.borrowReserves,
197
+ axn.reserve.address,
198
+ ]).toArray();
199
+ const tokenIds = axn.getTokenIdsForScopeRefresh(kaminoMarket, allReserves);
200
+ if (tokenIds.length > 0 && scopeRefresh.includeScopeRefresh) {
201
+ await axn.addScopeRefreshIxs(tokenIds, scopeRefresh.scopeFeed);
202
+ }
203
+ await axn.addSupportIxs('deposit', includeAtaIxns, requestElevationGroup, includeUserMetadata, addInitObligationForFarm, useV2Ixs, createLookupTable, undefined, overrideElevationGroupRequest);
195
204
  if (useV2Ixs) {
196
205
  axn.addDepositIxV2();
197
206
  }
@@ -201,23 +210,54 @@ class KaminoAction {
201
210
  axn.addRefreshFarmsCleanupTxnIxsToCleanupIxs();
202
211
  return axn;
203
212
  }
204
- async addScopeRefreshIxs(scope, tokens, feed = 'hubble') {
205
- this.setupIxsLabels.unshift(`refreshScopePrices`);
206
- this.setupIxs.unshift(await scope.refreshPriceListIx({
213
+ getTokenIdsForScopeRefresh(kaminoMarket, reserves) {
214
+ const tokenIds = [];
215
+ for (const reserveAddress of reserves) {
216
+ const reserve = kaminoMarket.getReserveByAddress(reserveAddress);
217
+ if (!reserve) {
218
+ throw new Error(`Reserve not found for reserve ${reserveAddress.toBase58()}`);
219
+ }
220
+ if (!reserve.state.config.tokenInfo.scopeConfiguration.priceFeed.equals(web3_js_1.PublicKey.default)) {
221
+ reserve.state.config.tokenInfo.scopeConfiguration.priceChain.map((x) => {
222
+ if (x !== scope_sdk_1.U16_MAX) {
223
+ tokenIds.push(x);
224
+ }
225
+ });
226
+ reserve.state.config.tokenInfo.scopeConfiguration.twapChain.map((x) => {
227
+ if (x !== scope_sdk_1.U16_MAX) {
228
+ tokenIds.push(x);
229
+ }
230
+ });
231
+ }
232
+ }
233
+ return tokenIds;
234
+ }
235
+ async addScopeRefreshIxs(tokens, feed = 'hubble') {
236
+ this.preTxnIxsLabels.unshift(`refreshScopePrices`);
237
+ this.preTxnIxs.unshift(await this.kaminoMarket.scope.refreshPriceListIx({
207
238
  feed: feed,
208
239
  }, tokens));
209
240
  }
210
- static async buildBorrowTxns(kaminoMarket, amount, mint, owner, obligation, useV2Ixs, scopeRefreshConfig, extraComputeBudget = 1_000_000, // if > 0 then adds the ixn
241
+ static async buildBorrowTxns(kaminoMarket, amount, mint, owner, obligation, useV2Ixs, extraComputeBudget = 1_000_000, // if > 0 then adds the ixn
211
242
  includeAtaIxns = true, // if true it includes create and close wsol and token atas,
212
243
  requestElevationGroup = false, includeUserMetadata = true, // if true it includes user metadata
213
- createLookupTable = true, referrer = web3_js_1.PublicKey.default, currentSlot = 0, overrideElevationGroupRequest = undefined // if set, when an elevationgroup request is made, it will use this value
244
+ createLookupTable = true, referrer = web3_js_1.PublicKey.default, currentSlot = 0, scopeRefresh = { includeScopeRefresh: false, scopeFeed: 'hubble' }, overrideElevationGroupRequest = undefined // if set, when an elevationgroup request is made, it will use this value
214
245
  ) {
215
246
  const axn = await KaminoAction.initialize('borrow', amount, mint, owner, kaminoMarket, obligation, referrer, currentSlot);
216
247
  const addInitObligationForFarm = true;
217
248
  if (extraComputeBudget > 0) {
218
249
  axn.addComputeBudgetIxn(extraComputeBudget);
219
250
  }
220
- await axn.addSupportIxs('borrow', includeAtaIxns, requestElevationGroup, includeUserMetadata, addInitObligationForFarm, useV2Ixs, scopeRefreshConfig, createLookupTable, undefined, overrideElevationGroupRequest);
251
+ const allReserves = new utils_1.PublicKeySet([
252
+ ...axn.depositReserves,
253
+ ...axn.borrowReserves,
254
+ axn.reserve.address,
255
+ ]).toArray();
256
+ const tokenIds = axn.getTokenIdsForScopeRefresh(kaminoMarket, allReserves);
257
+ if (tokenIds.length > 0 && scopeRefresh.includeScopeRefresh) {
258
+ await axn.addScopeRefreshIxs(tokenIds, scopeRefresh.scopeFeed);
259
+ }
260
+ await axn.addSupportIxs('borrow', includeAtaIxns, requestElevationGroup, includeUserMetadata, addInitObligationForFarm, useV2Ixs, createLookupTable, undefined, overrideElevationGroupRequest);
221
261
  if (useV2Ixs) {
222
262
  axn.addBorrowIxV2();
223
263
  }
@@ -227,42 +267,69 @@ class KaminoAction {
227
267
  axn.addRefreshFarmsCleanupTxnIxsToCleanupIxs();
228
268
  return axn;
229
269
  }
230
- static async buildDepositReserveLiquidityTxns(kaminoMarket, amount, mint, owner, obligation, scopeRefreshConfig, extraComputeBudget = 1_000_000, // if > 0 then adds the ixn
270
+ static async buildDepositReserveLiquidityTxns(kaminoMarket, amount, mint, owner, obligation, extraComputeBudget = 1_000_000, // if > 0 then adds the ixn
231
271
  includeAtaIxns = true, // if true it includes create and close wsol and token atas
232
- requestElevationGroup = false, referrer = web3_js_1.PublicKey.default, currentSlot = 0) {
272
+ requestElevationGroup = false, referrer = web3_js_1.PublicKey.default, currentSlot = 0, scopeRefresh = { includeScopeRefresh: false, scopeFeed: 'hubble' }) {
233
273
  const axn = await KaminoAction.initialize('mint', amount, mint, owner, kaminoMarket, obligation, referrer, currentSlot);
234
274
  const addInitObligationForFarm = true;
235
275
  if (extraComputeBudget > 0) {
236
276
  axn.addComputeBudgetIxn(extraComputeBudget);
237
277
  }
238
- await axn.addSupportIxs('mint', includeAtaIxns, requestElevationGroup, false, addInitObligationForFarm, false, scopeRefreshConfig, false);
278
+ const allReserves = new utils_1.PublicKeySet([
279
+ ...axn.depositReserves,
280
+ ...axn.borrowReserves,
281
+ axn.reserve.address,
282
+ ]).toArray();
283
+ const tokenIds = axn.getTokenIdsForScopeRefresh(kaminoMarket, allReserves);
284
+ if (tokenIds.length > 0 && scopeRefresh.includeScopeRefresh) {
285
+ await axn.addScopeRefreshIxs(tokenIds, scopeRefresh.scopeFeed);
286
+ }
287
+ await axn.addSupportIxs('mint', includeAtaIxns, requestElevationGroup, false, addInitObligationForFarm, false, false);
239
288
  axn.addDepositReserveLiquidityIx();
240
289
  axn.addRefreshFarmsCleanupTxnIxsToCleanupIxs();
241
290
  return axn;
242
291
  }
243
- static async buildRedeemReserveCollateralTxns(kaminoMarket, amount, mint, owner, obligation, scopeRefreshConfig, extraComputeBudget = 1_000_000, // if > 0 then adds the ixn
292
+ static async buildRedeemReserveCollateralTxns(kaminoMarket, amount, mint, owner, obligation, extraComputeBudget = 1_000_000, // if > 0 then adds the ixn
244
293
  includeAtaIxns = true, // if true it includes create and close wsol and token atas
245
- requestElevationGroup = false, referrer = web3_js_1.PublicKey.default, currentSlot = 0) {
294
+ requestElevationGroup = false, referrer = web3_js_1.PublicKey.default, currentSlot = 0, scopeRefresh = { includeScopeRefresh: false, scopeFeed: 'hubble' }) {
246
295
  const axn = await KaminoAction.initialize('redeem', amount, mint, owner, kaminoMarket, obligation, referrer, currentSlot);
247
296
  const addInitObligationForFarm = true;
248
297
  if (extraComputeBudget > 0) {
249
298
  axn.addComputeBudgetIxn(extraComputeBudget);
250
299
  }
251
- await axn.addSupportIxs('redeem', includeAtaIxns, requestElevationGroup, false, addInitObligationForFarm, false, scopeRefreshConfig, false);
300
+ const allReserves = new utils_1.PublicKeySet([
301
+ ...axn.depositReserves,
302
+ ...axn.borrowReserves,
303
+ axn.reserve.address,
304
+ ]).toArray();
305
+ const tokenIds = axn.getTokenIdsForScopeRefresh(kaminoMarket, allReserves);
306
+ if (tokenIds.length > 0 && scopeRefresh.includeScopeRefresh) {
307
+ await axn.addScopeRefreshIxs(tokenIds, scopeRefresh.scopeFeed);
308
+ }
309
+ await axn.addSupportIxs('redeem', includeAtaIxns, requestElevationGroup, false, addInitObligationForFarm, false, false);
252
310
  axn.addRedeemReserveCollateralIx();
253
311
  axn.addRefreshFarmsCleanupTxnIxsToCleanupIxs();
254
312
  return axn;
255
313
  }
256
- static async buildDepositObligationCollateralTxns(kaminoMarket, amount, mint, owner, obligation, useV2Ixs, scopeRefreshConfig, extraComputeBudget = 1_000_000, // if > 0 then adds the ixn
314
+ static async buildDepositObligationCollateralTxns(kaminoMarket, amount, mint, owner, obligation, useV2Ixs, extraComputeBudget = 1_000_000, // if > 0 then adds the ixn
257
315
  includeAtaIxns = true, // if true it includes create and close wsol and token atas
258
316
  requestElevationGroup = false, includeUserMetadata = true, // if true it includes user metadata
259
- createLookupTable = true, referrer = web3_js_1.PublicKey.default, currentSlot = 0) {
317
+ createLookupTable = true, referrer = web3_js_1.PublicKey.default, currentSlot = 0, scopeRefresh = { includeScopeRefresh: false, scopeFeed: 'hubble' }) {
260
318
  const axn = await KaminoAction.initialize('depositCollateral', amount, mint, owner, kaminoMarket, obligation, referrer, currentSlot);
261
319
  const addInitObligationForFarm = true;
262
320
  if (extraComputeBudget > 0) {
263
321
  axn.addComputeBudgetIxn(extraComputeBudget);
264
322
  }
265
- await axn.addSupportIxs('depositCollateral', includeAtaIxns, requestElevationGroup, includeUserMetadata, addInitObligationForFarm, useV2Ixs, scopeRefreshConfig, createLookupTable);
323
+ const allReserves = new utils_1.PublicKeySet([
324
+ ...axn.depositReserves,
325
+ ...axn.borrowReserves,
326
+ axn.reserve.address,
327
+ ]).toArray();
328
+ const tokenIds = axn.getTokenIdsForScopeRefresh(kaminoMarket, allReserves);
329
+ if (tokenIds.length > 0 && scopeRefresh.includeScopeRefresh) {
330
+ await axn.addScopeRefreshIxs(tokenIds, scopeRefresh.scopeFeed);
331
+ }
332
+ await axn.addSupportIxs('depositCollateral', includeAtaIxns, requestElevationGroup, includeUserMetadata, addInitObligationForFarm, useV2Ixs, createLookupTable);
266
333
  if (useV2Ixs) {
267
334
  axn.addDepositObligationCollateralIxV2();
268
335
  }
@@ -272,10 +339,10 @@ class KaminoAction {
272
339
  axn.addRefreshFarmsCleanupTxnIxsToCleanupIxs();
273
340
  return axn;
274
341
  }
275
- static async buildDepositAndBorrowTxns(kaminoMarket, depositAmount, depositMint, borrowAmount, borrowMint, payer, obligation, useV2Ixs, scopeRefreshConfig, extraComputeBudget = 1_000_000, // if > 0 then adds the ixn
342
+ static async buildDepositAndBorrowTxns(kaminoMarket, depositAmount, depositMint, borrowAmount, borrowMint, payer, obligation, useV2Ixs, extraComputeBudget = 1_000_000, // if > 0 then adds the ixn
276
343
  includeAtaIxns = true, // if true it includes create and close wsol and token atas,
277
344
  requestElevationGroup = false, includeUserMetadata = true, // if true it includes user metadata,
278
- createLookupTable = true, referrer = web3_js_1.PublicKey.default, currentSlot = 0) {
345
+ createLookupTable = true, referrer = web3_js_1.PublicKey.default, currentSlot = 0, scopeRefresh = { includeScopeRefresh: false, scopeFeed: 'hubble' }) {
279
346
  const axn = await KaminoAction.initializeMultiTokenAction(kaminoMarket, 'depositAndBorrow', depositAmount, depositMint, borrowMint, payer, payer, obligation, borrowAmount, referrer, currentSlot);
280
347
  const addInitObligationForFarmForDeposit = true;
281
348
  const addInitObligationForFarmForBorrow = false;
@@ -283,7 +350,17 @@ class KaminoAction {
283
350
  if (extraComputeBudget > 0) {
284
351
  axn.addComputeBudgetIxn(extraComputeBudget);
285
352
  }
286
- await axn.addSupportIxs('deposit', includeAtaIxns, requestElevationGroup, includeUserMetadata, addInitObligationForFarmForDeposit, useV2Ixs, undefined, createLookupTable, twoTokenAction);
353
+ const allReserves = new utils_1.PublicKeySet([
354
+ ...axn.depositReserves,
355
+ ...axn.borrowReserves,
356
+ axn.reserve.address,
357
+ axn.outflowReserve.address,
358
+ ]).toArray();
359
+ const tokenIds = axn.getTokenIdsForScopeRefresh(kaminoMarket, allReserves);
360
+ if (tokenIds.length > 0 && scopeRefresh.includeScopeRefresh) {
361
+ await axn.addScopeRefreshIxs(tokenIds, scopeRefresh.scopeFeed);
362
+ }
363
+ await axn.addSupportIxs('deposit', includeAtaIxns, requestElevationGroup, includeUserMetadata, addInitObligationForFarmForDeposit, useV2Ixs, createLookupTable, twoTokenAction);
287
364
  if (useV2Ixs) {
288
365
  await axn.addDepositAndBorrowIxV2();
289
366
  }
@@ -292,24 +369,12 @@ class KaminoAction {
292
369
  }
293
370
  await axn.addInBetweenIxs('depositAndBorrow', includeAtaIxns, requestElevationGroup, addInitObligationForFarmForBorrow, useV2Ixs);
294
371
  axn.addRefreshFarmsCleanupTxnIxsToCleanupIxs();
295
- // Create the scope refresh ixn in here to ensure it's the first ixn in the txn
296
- const allReserves = new utils_1.PublicKeySet([
297
- ...axn.depositReserves,
298
- ...axn.borrowReserves,
299
- axn.reserve.address,
300
- ...(axn.outflowReserve ? [axn.outflowReserve.address] : []),
301
- ...(axn.preLoadedDepositReservesSameTx ? axn.preLoadedDepositReservesSameTx : []),
302
- ]).toArray();
303
- const tokenIds = (0, market_1.getTokenIdsForScopeRefresh)(axn.kaminoMarket, allReserves);
304
- if (tokenIds.length > 0 && scopeRefreshConfig) {
305
- await axn.addScopeRefreshIxs(scopeRefreshConfig.scope, tokenIds, scopeRefreshConfig.scopeFeed);
306
- }
307
372
  return axn;
308
373
  }
309
- static async buildRepayAndWithdrawTxns(kaminoMarket, repayAmount, repayMint, withdrawAmount, withdrawMint, payer, currentSlot, obligation, useV2Ixs, scopeRefreshConfig, extraComputeBudget = 1_000_000, // if > 0 then adds the ixn
374
+ static async buildRepayAndWithdrawTxns(kaminoMarket, repayAmount, repayMint, withdrawAmount, withdrawMint, payer, currentSlot, obligation, useV2Ixs, extraComputeBudget = 1_000_000, // if > 0 then adds the ixn
310
375
  includeAtaIxns = true, // if true it includes create and close wsol and token atas,
311
376
  requestElevationGroup = false, includeUserMetadata = true, // if true it includes user metadata,
312
- createLookupTable = true, referrer = web3_js_1.PublicKey.default) {
377
+ createLookupTable = true, referrer = web3_js_1.PublicKey.default, scopeRefresh = { includeScopeRefresh: false, scopeFeed: 'hubble' }) {
313
378
  const axn = await KaminoAction.initializeMultiTokenAction(kaminoMarket, 'repayAndWithdraw', repayAmount, repayMint, withdrawMint, payer, payer, obligation, withdrawAmount, referrer, currentSlot);
314
379
  const addInitObligationForFarmForRepay = true;
315
380
  const addInitObligationForFarmForWithdraw = false;
@@ -317,7 +382,17 @@ class KaminoAction {
317
382
  if (extraComputeBudget > 0) {
318
383
  axn.addComputeBudgetIxn(extraComputeBudget);
319
384
  }
320
- await axn.addSupportIxs('repay', includeAtaIxns, requestElevationGroup, includeUserMetadata, addInitObligationForFarmForRepay, useV2Ixs, undefined, createLookupTable, twoTokenAction);
385
+ const allReserves = new utils_1.PublicKeySet([
386
+ ...axn.depositReserves,
387
+ ...axn.borrowReserves,
388
+ axn.reserve.address,
389
+ axn.outflowReserve.address,
390
+ ]).toArray();
391
+ const tokenIds = axn.getTokenIdsForScopeRefresh(kaminoMarket, allReserves);
392
+ if (tokenIds.length > 0 && scopeRefresh.includeScopeRefresh) {
393
+ await axn.addScopeRefreshIxs(tokenIds, scopeRefresh.scopeFeed);
394
+ }
395
+ await axn.addSupportIxs('repay', includeAtaIxns, requestElevationGroup, includeUserMetadata, addInitObligationForFarmForRepay, useV2Ixs, createLookupTable, twoTokenAction);
321
396
  const withdrawCollateralAmount = axn.getWithdrawCollateralAmount(axn.outflowReserve, axn.outflowAmount);
322
397
  if (useV2Ixs) {
323
398
  await axn.addRepayAndWithdrawIxsV2(withdrawCollateralAmount);
@@ -327,25 +402,13 @@ class KaminoAction {
327
402
  }
328
403
  await axn.addInBetweenIxs('repayAndWithdraw', includeAtaIxns, requestElevationGroup, addInitObligationForFarmForWithdraw, useV2Ixs);
329
404
  axn.addRefreshFarmsCleanupTxnIxsToCleanupIxs();
330
- // Create the scope refresh ixn in here to ensure it's the first ixn in the txn
331
- const allReserves = new utils_1.PublicKeySet([
332
- ...axn.depositReserves,
333
- ...axn.borrowReserves,
334
- axn.reserve.address,
335
- ...(axn.outflowReserve ? [axn.outflowReserve.address] : []),
336
- ...(axn.preLoadedDepositReservesSameTx ? axn.preLoadedDepositReservesSameTx : []),
337
- ]).toArray();
338
- const tokenIds = (0, market_1.getTokenIdsForScopeRefresh)(axn.kaminoMarket, allReserves);
339
- if (tokenIds.length > 0 && scopeRefreshConfig) {
340
- await axn.addScopeRefreshIxs(scopeRefreshConfig.scope, tokenIds, scopeRefreshConfig.scopeFeed);
341
- }
342
405
  return axn;
343
406
  }
344
- static async buildWithdrawTxns(kaminoMarket, amount, mint, owner, obligation, useV2Ixs, scopeRefreshConfig, extraComputeBudget = 1_000_000, // if > 0 then adds the ixn
407
+ static async buildWithdrawTxns(kaminoMarket, amount, mint, owner, obligation, useV2Ixs, extraComputeBudget = 1_000_000, // if > 0 then adds the ixn
345
408
  includeAtaIxns = true, // if true it includes create and close wsol and token atas,
346
409
  requestElevationGroup = false, // to be requested *after* the withdraw
347
410
  includeUserMetadata = true, // if true it includes user metadata
348
- createLookupTable = true, referrer = web3_js_1.PublicKey.default, currentSlot = 0, overrideElevationGroupRequest,
411
+ createLookupTable = true, referrer = web3_js_1.PublicKey.default, currentSlot = 0, scopeRefresh = undefined, overrideElevationGroupRequest,
349
412
  // Optional customizations which may be needed if the obligation was mutated by some previous ixn.
350
413
  obligationCustomizations) {
351
414
  const axn = await KaminoAction.initialize('withdraw', amount, mint, owner, kaminoMarket, obligation, referrer, currentSlot);
@@ -354,7 +417,16 @@ class KaminoAction {
354
417
  axn.addComputeBudgetIxn(extraComputeBudget);
355
418
  }
356
419
  axn.depositReserves.push(...(obligationCustomizations?.addedDepositReserves || []));
357
- await axn.addSupportIxs('withdraw', includeAtaIxns, requestElevationGroup, includeUserMetadata, addInitObligationForFarm, useV2Ixs, scopeRefreshConfig, createLookupTable, false, overrideElevationGroupRequest);
420
+ const allReserves = new utils_1.PublicKeySet([
421
+ ...axn.depositReserves,
422
+ ...axn.borrowReserves,
423
+ axn.reserve.address,
424
+ ]).toArray();
425
+ const tokenIds = axn.getTokenIdsForScopeRefresh(kaminoMarket, allReserves);
426
+ if (tokenIds.length > 0 && scopeRefresh && scopeRefresh.includeScopeRefresh) {
427
+ await axn.addScopeRefreshIxs(tokenIds, scopeRefresh.scopeFeed);
428
+ }
429
+ await axn.addSupportIxs('withdraw', includeAtaIxns, requestElevationGroup, includeUserMetadata, addInitObligationForFarm, useV2Ixs, createLookupTable, false, overrideElevationGroupRequest);
358
430
  const collateralAmount = axn.getWithdrawCollateralAmount(axn.reserve, axn.amount);
359
431
  if (useV2Ixs) {
360
432
  await axn.addWithdrawIxV2(collateralAmount);
@@ -380,13 +452,22 @@ class KaminoAction {
380
452
  * @param includeUserMetadata - if true it includes user metadata
381
453
  * @param referrer
382
454
  */
383
- static async buildRepayTxns(kaminoMarket, amount, mint, owner, obligation, useV2Ixs, scopeRefreshConfig, currentSlot, payer = undefined, extraComputeBudget = 1_000_000, includeAtaIxns = true, requestElevationGroup = false, includeUserMetadata = true, createLookupTable = true, referrer = web3_js_1.PublicKey.default) {
455
+ static async buildRepayTxns(kaminoMarket, amount, mint, owner, obligation, useV2Ixs, currentSlot, payer = undefined, extraComputeBudget = 1_000_000, includeAtaIxns = true, requestElevationGroup = false, includeUserMetadata = true, createLookupTable = true, referrer = web3_js_1.PublicKey.default, scopeRefresh = { includeScopeRefresh: false, scopeFeed: 'hubble' }) {
384
456
  const axn = await KaminoAction.initialize('repay', amount, mint, owner, kaminoMarket, obligation, referrer, currentSlot, payer);
385
457
  const addInitObligationForFarm = true;
386
458
  if (extraComputeBudget > 0) {
387
459
  axn.addComputeBudgetIxn(extraComputeBudget);
388
460
  }
389
- await axn.addSupportIxs('repay', includeAtaIxns, requestElevationGroup, includeUserMetadata, addInitObligationForFarm, useV2Ixs, scopeRefreshConfig, createLookupTable);
461
+ const allReserves = new utils_1.PublicKeySet([
462
+ ...axn.depositReserves,
463
+ ...axn.borrowReserves,
464
+ axn.reserve.address,
465
+ ]).toArray();
466
+ const tokenIds = axn.getTokenIdsForScopeRefresh(kaminoMarket, allReserves);
467
+ if (tokenIds.length > 0 && scopeRefresh.includeScopeRefresh) {
468
+ await axn.addScopeRefreshIxs(tokenIds, scopeRefresh.scopeFeed);
469
+ }
470
+ await axn.addSupportIxs('repay', includeAtaIxns, requestElevationGroup, includeUserMetadata, addInitObligationForFarm, useV2Ixs, createLookupTable);
390
471
  if (useV2Ixs) {
391
472
  await axn.addRepayIxV2();
392
473
  }
@@ -396,16 +477,26 @@ class KaminoAction {
396
477
  axn.addRefreshFarmsCleanupTxnIxsToCleanupIxs();
397
478
  return axn;
398
479
  }
399
- static async buildLiquidateTxns(kaminoMarket, amount, minCollateralReceiveAmount, repayTokenMint, withdrawTokenMint, liquidator, obligationOwner, obligation, useV2Ixs, scopeRefreshConfig, extraComputeBudget = 1_000_000, // if > 0 then adds the ixn
480
+ static async buildLiquidateTxns(kaminoMarket, amount, minCollateralReceiveAmount, repayTokenMint, withdrawTokenMint, liquidator, obligationOwner, obligation, useV2Ixs, extraComputeBudget = 1_000_000, // if > 0 then adds the ixn
400
481
  includeAtaIxns = true, // if true it includes create and close wsol and token atas, and creates all other token atas if they don't exist
401
482
  requestElevationGroup = false, includeUserMetadata = true, // if true it includes user metadata
402
- createLookupTable = true, referrer = web3_js_1.PublicKey.default, maxAllowedLtvOverridePercent = 0, currentSlot = 0) {
483
+ createLookupTable = true, referrer = web3_js_1.PublicKey.default, maxAllowedLtvOverridePercent = 0, currentSlot = 0, scopeRefresh = { includeScopeRefresh: false, scopeFeed: 'hubble' }) {
403
484
  const axn = await KaminoAction.initializeMultiTokenAction(kaminoMarket, 'liquidate', amount, repayTokenMint, withdrawTokenMint, liquidator, obligationOwner, obligation, minCollateralReceiveAmount, referrer, currentSlot);
404
485
  const addInitObligationForFarm = true;
405
486
  if (extraComputeBudget > 0) {
406
487
  axn.addComputeBudgetIxn(extraComputeBudget);
407
488
  }
408
- await axn.addSupportIxs('liquidate', includeAtaIxns, requestElevationGroup, includeUserMetadata, addInitObligationForFarm, useV2Ixs, scopeRefreshConfig, createLookupTable);
489
+ const allReserves = new utils_1.PublicKeySet([
490
+ ...axn.depositReserves,
491
+ ...axn.borrowReserves,
492
+ axn.reserve.address,
493
+ axn.outflowReserve.address,
494
+ ]).toArray();
495
+ const tokenIds = axn.getTokenIdsForScopeRefresh(kaminoMarket, allReserves);
496
+ if (tokenIds.length > 0 && scopeRefresh.includeScopeRefresh) {
497
+ await axn.addScopeRefreshIxs(tokenIds, scopeRefresh.scopeFeed);
498
+ }
499
+ await axn.addSupportIxs('liquidate', includeAtaIxns, requestElevationGroup, includeUserMetadata, addInitObligationForFarm, useV2Ixs, createLookupTable);
409
500
  if (useV2Ixs) {
410
501
  await axn.addLiquidateIxV2(maxAllowedLtvOverridePercent);
411
502
  }
@@ -1430,7 +1521,7 @@ class KaminoAction {
1430
1521
  }
1431
1522
  }
1432
1523
  }
1433
- async addSupportIxs(action, includeAtaIxns, requestElevationGroup, includeUserMetadata, addInitObligationForFarm, useV2Ixs, scopeRefreshConfig, createLookupTable, twoTokenAction = false, overrideElevationGroupRequest) {
1524
+ async addSupportIxs(action, includeAtaIxns, requestElevationGroup, includeUserMetadata, addInitObligationForFarm, useV2Ixs, createLookupTable, twoTokenAction = false, overrideElevationGroupRequest) {
1434
1525
  if (!['mint', 'redeem'].includes(action)) {
1435
1526
  const [, ownerUserMetadata] = await this.kaminoMarket.getUserMetadata(this.owner);
1436
1527
  if (!ownerUserMetadata && includeUserMetadata) {
@@ -1453,17 +1544,6 @@ class KaminoAction {
1453
1544
  await this.addInitObligationIxs();
1454
1545
  }
1455
1546
  await this.addSupportIxsWithoutInitObligation(action, includeAtaIxns, useV2Ixs, 'setup', requestElevationGroup, addInitObligationForFarm, twoTokenAction, overrideElevationGroupRequest);
1456
- const allReserves = new utils_1.PublicKeySet([
1457
- ...this.depositReserves,
1458
- ...this.borrowReserves,
1459
- this.reserve.address,
1460
- ...(this.outflowReserve ? [this.outflowReserve.address] : []),
1461
- ...(this.preLoadedDepositReservesSameTx ? this.preLoadedDepositReservesSameTx : []),
1462
- ]).toArray();
1463
- const tokenIds = (0, market_1.getTokenIdsForScopeRefresh)(this.kaminoMarket, allReserves);
1464
- if (tokenIds.length > 0 && scopeRefreshConfig) {
1465
- await this.addScopeRefreshIxs(scopeRefreshConfig.scope, tokenIds, scopeRefreshConfig.scopeFeed);
1466
- }
1467
1547
  }
1468
1548
  static optionalAccount(pubkey, programId = lib_1.PROGRAM_ID) {
1469
1549
  if ((0, utils_1.isNotNullPubkey)(pubkey)) {