@kamino-finance/klend-sdk 5.2.9 → 5.2.11

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/README.md CHANGED
@@ -53,37 +53,6 @@ const env = await initEnv('mainnet-beta');
53
53
  await sendTransactionFromAction(env, sendTransaction); // sendTransaction from wallet adapter or custom
54
54
  ```
55
55
 
56
- ## FAQ
57
-
58
- ## Client
59
- * npx tsx src/client.ts deposit --url <RPC> --owner ./keypair.json --token USDH --amount 10
60
- * npx tsx src/client.ts deposit --url <RPC> --owner ./keypair.json --token SOL --amount 10
61
-
62
- ## Codegen
63
- * Copy the new `idl` from the kamino-lending program to `src/idl.json`
64
- * `yarn codegen`
65
-
66
- ## Setup localnet
67
- * Ensure `deps` contains the correct `.so` you want to test against. Either build it from the main repo or dump it from mainnet
68
- * `yarn start-validator`
69
-
70
- ## Run tests
71
- * `yarn start-validator-and-test`
72
- * Or, if the local validator is already running, `yarn test`
73
-
74
- ## TODO:
75
-
76
- Better sdk documentation
77
-
78
- ## Sync with smart contracts
79
- * Copy the program .so, idl and codegen
80
- ```sh
81
- $ yarn
82
- $ cp ../kamino-lending/target/deploy/kamino_lending.so deps/programs/kamino_lending.so
83
- $ cp ../kamino-lending/target/idl/kamino_lending.json src/idl.json
84
- $ yarn codegen
85
- ```
86
-
87
56
  ### Getting a vanilla obligation for a user
88
57
  ```ts
89
58
  const kaminoMarket = await KaminoMarket.load(env.provider.connection, marketAddress, DEFAULT_RECENT_SLOT_DURATION_MS, programId);
@@ -124,4 +93,12 @@ $ yarn codegen
124
93
  }
125
94
  }
126
95
  });
127
- ```
96
+ ```
97
+
98
+ ## CLI
99
+ * npx tsx src/client.ts deposit --url <RPC> --owner ./keypair.json --token USDH --amount 10
100
+ * npx tsx src/client.ts deposit --url <RPC> --owner ./keypair.json --token SOL --amount 10
101
+
102
+ ## Codegen
103
+ * Copy the new `idl` from the kamino-lending program to `src/idl.json`
104
+ * `yarn codegen`
@@ -48,7 +48,6 @@ export declare class KaminoAction {
48
48
  depositReserves: Array<PublicKey>;
49
49
  borrowReserves: Array<PublicKey>;
50
50
  preLoadedDepositReservesSameTx: Array<PublicKey>;
51
- preLoadedBorrowReservesSameTx: Array<PublicKey>;
52
51
  currentSlot: number;
53
52
  private constructor();
54
53
  static initialize(action: ActionType, amount: string | BN, mint: PublicKey, owner: PublicKey, kaminoMarket: KaminoMarket, obligation: KaminoObligation | ObligationType, referrer?: PublicKey, currentSlot?: number, payer?: PublicKey): Promise<KaminoAction>;
@@ -87,7 +86,7 @@ export declare class KaminoAction {
87
86
  static buildRepayAndWithdrawTxns(kaminoMarket: KaminoMarket, repayAmount: string | BN, repayMint: PublicKey, withdrawAmount: string | BN, withdrawMint: PublicKey, payer: PublicKey, currentSlot: number, obligation: KaminoObligation | ObligationType, extraComputeBudget?: number, // if > 0 then adds the ixn
88
87
  includeAtaIxns?: boolean, // if true it includes create and close wsol and token atas,
89
88
  requestElevationGroup?: boolean, includeUserMetadata?: boolean, // if true it includes user metadata,
90
- isClosingPosition?: boolean, referrer?: PublicKey, scopeRefresh?: ScopeRefresh): Promise<KaminoAction>;
89
+ referrer?: PublicKey, scopeRefresh?: ScopeRefresh): Promise<KaminoAction>;
91
90
  static buildWithdrawTxns(kaminoMarket: KaminoMarket, amount: string | BN, mint: PublicKey, owner: PublicKey, obligation: KaminoObligation | ObligationType, extraComputeBudget?: number, // if > 0 then adds the ixn
92
91
  includeAtaIxns?: boolean, // if true it includes create and close wsol and token atas,
93
92
  requestElevationGroup?: boolean, includeUserMetadata?: boolean, // if true it includes user metadata
@@ -132,9 +131,9 @@ export declare class KaminoAction {
132
131
  addWithdrawIx(): Promise<void>;
133
132
  addRepayIx(): Promise<void>;
134
133
  addLiquidateIx(maxAllowedLtvOverridePercent?: number): Promise<void>;
135
- addInBetweenIxs(action: ActionType, includeAtaIxns: boolean, requestElevationGroup: boolean, addInitObligationForFarm: boolean, isClosingPosition?: boolean): Promise<void>;
134
+ addInBetweenIxs(action: ActionType, includeAtaIxns: boolean, requestElevationGroup: boolean, addInitObligationForFarm: boolean): Promise<void>;
136
135
  addRefreshObligation(crank: PublicKey): void;
137
- addSupportIxsWithoutInitObligation(action: ActionType, includeAtaIxns: boolean, addAsSupportIx?: AuxiliaryIx, requestElevationGroup?: boolean, addInitObligationForFarm?: boolean, isClosingPosition?: boolean, twoTokenAction?: boolean, overrideElevationGroupRequest?: number): Promise<void>;
136
+ addSupportIxsWithoutInitObligation(action: ActionType, includeAtaIxns: boolean, addAsSupportIx?: AuxiliaryIx, requestElevationGroup?: boolean, addInitObligationForFarm?: boolean, twoTokenAction?: boolean, overrideElevationGroupRequest?: number): Promise<void>;
138
137
  addSupportIxs(action: ActionType, includeAtaIxns: boolean, requestElevationGroup: boolean, includeUserMetadata: boolean, addInitObligationForFarm: boolean, twoTokenAction?: boolean, overrideElevationGroupRequest?: number): Promise<void>;
139
138
  private static optionalAccount;
140
139
  private addRefreshReserveIxs;
@@ -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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"}
@@ -59,7 +59,6 @@ class KaminoAction {
59
59
  depositReserves;
60
60
  borrowReserves;
61
61
  preLoadedDepositReservesSameTx;
62
- preLoadedBorrowReservesSameTx;
63
62
  currentSlot;
64
63
  constructor(kaminoMarket, owner, obligation, userTokenAccountAddress, userCollateralAccountAddress, mint, positions, amount, depositReserves, borrowReserves, reserveState, currentSlot, secondaryMint, additionalTokenAccountAddress, outflowReserveState, outflowAmount, referrer, payer) {
65
64
  if (obligation instanceof obligation_1.KaminoObligation) {
@@ -100,7 +99,6 @@ class KaminoAction {
100
99
  this.outflowReserve = outflowReserveState;
101
100
  this.outflowAmount = outflowAmount ? new bn_js_1.default(outflowAmount) : undefined;
102
101
  this.preLoadedDepositReservesSameTx = [];
103
- this.preLoadedBorrowReservesSameTx = [];
104
102
  this.referrer = referrer ? referrer : web3_js_1.PublicKey.default;
105
103
  this.currentSlot = currentSlot;
106
104
  }
@@ -363,7 +361,7 @@ class KaminoAction {
363
361
  static async buildRepayAndWithdrawTxns(kaminoMarket, repayAmount, repayMint, withdrawAmount, withdrawMint, payer, currentSlot, obligation, extraComputeBudget = 1_000_000, // if > 0 then adds the ixn
364
362
  includeAtaIxns = true, // if true it includes create and close wsol and token atas,
365
363
  requestElevationGroup = false, includeUserMetadata = true, // if true it includes user metadata,
366
- isClosingPosition = false, referrer = web3_js_1.PublicKey.default, scopeRefresh = { includeScopeRefresh: false, scopeFeed: 'hubble' }) {
364
+ referrer = web3_js_1.PublicKey.default, scopeRefresh = { includeScopeRefresh: false, scopeFeed: 'hubble' }) {
367
365
  const axn = await KaminoAction.initializeMultiTokenAction(kaminoMarket, 'repayAndWithdraw', repayAmount, repayMint, withdrawMint, payer, payer, obligation, withdrawAmount, referrer, currentSlot);
368
366
  const addInitObligationForFarmForRepay = true;
369
367
  const addInitObligationForFarmForWithdraw = false;
@@ -383,7 +381,7 @@ class KaminoAction {
383
381
  }
384
382
  await axn.addSupportIxs('repay', includeAtaIxns, requestElevationGroup, includeUserMetadata, addInitObligationForFarmForRepay, twoTokenAction);
385
383
  await axn.addRepayAndWithdrawIxs();
386
- await axn.addInBetweenIxs('repayAndWithdraw', includeAtaIxns, requestElevationGroup, addInitObligationForFarmForWithdraw, isClosingPosition);
384
+ await axn.addInBetweenIxs('repayAndWithdraw', includeAtaIxns, requestElevationGroup, addInitObligationForFarmForWithdraw);
387
385
  axn.addRefreshFarmsCleanupTxnIxsToCleanupIxs();
388
386
  return axn;
389
387
  }
@@ -839,8 +837,8 @@ class KaminoAction {
839
837
  : liquidateIx.keys;
840
838
  this.lendingIxs.push(liquidateIx);
841
839
  }
842
- async addInBetweenIxs(action, includeAtaIxns, requestElevationGroup, addInitObligationForFarm, isClosingPosition = false) {
843
- await this.addSupportIxsWithoutInitObligation(action, includeAtaIxns, 'inBetween', requestElevationGroup, addInitObligationForFarm, isClosingPosition);
840
+ async addInBetweenIxs(action, includeAtaIxns, requestElevationGroup, addInitObligationForFarm) {
841
+ await this.addSupportIxsWithoutInitObligation(action, includeAtaIxns, 'inBetween', requestElevationGroup, addInitObligationForFarm);
844
842
  }
845
843
  addRefreshObligation(crank) {
846
844
  const uniqueReserveAddresses = new utils_1.PublicKeySet(this.depositReserves.concat(this.borrowReserves)).toArray();
@@ -850,9 +848,9 @@ class KaminoAction {
850
848
  this.addRefreshReserveIxs(allReservesExcludingCurrent, addAllToSetupIxns);
851
849
  this.addRefreshFarmsForReserve(this.depositReserves.map((r) => this.kaminoMarket.getReserveByAddress(r)), addAllToSetupIxns, types_1.ReserveFarmKind.Collateral, crank);
852
850
  this.addRefreshFarmsForReserve(this.borrowReserves.map((r) => this.kaminoMarket.getReserveByAddress(r)), addAllToSetupIxns, types_1.ReserveFarmKind.Debt, crank);
853
- this.addRefreshObligationIx(addAllToSetupIxns, false);
851
+ this.addRefreshObligationIx(addAllToSetupIxns);
854
852
  }
855
- async addSupportIxsWithoutInitObligation(action, includeAtaIxns, addAsSupportIx = 'setup', requestElevationGroup = false, addInitObligationForFarm = false, isClosingPosition = false, twoTokenAction = false, overrideElevationGroupRequest) {
853
+ async addSupportIxsWithoutInitObligation(action, includeAtaIxns, addAsSupportIx = 'setup', requestElevationGroup = false, addInitObligationForFarm = false, twoTokenAction = false, overrideElevationGroupRequest) {
856
854
  // TODO: why are we not doing this first?
857
855
  if (includeAtaIxns) {
858
856
  await this.addAtaIxs(action);
@@ -887,33 +885,18 @@ class KaminoAction {
887
885
  }
888
886
  if (action === 'depositAndBorrow' || action === 'repayAndWithdraw') {
889
887
  currentReserves = [this.reserve, this.outflowReserve];
890
- if (this.obligation) {
891
- if (action === 'depositAndBorrow') {
892
- const deposit = this.obligation.state.deposits.find((deposit) => deposit.depositReserve.equals(this.reserve.address));
888
+ if (action === 'depositAndBorrow') {
889
+ if (this.obligation) {
890
+ const deposit = this.obligation.getDepositByReserve(this.reserve.address);
893
891
  if (!deposit) {
894
892
  this.preLoadedDepositReservesSameTx.push(this.reserve.address);
895
893
  }
896
894
  }
897
895
  else {
898
- const borrow = this.obligation.state.borrows.find((borrow) => borrow.borrowReserve.equals(this.reserve.address));
899
- if (!borrow) {
900
- throw Error(`Unable to find obligation borrow to repay for ${this.obligation.state.owner.toBase58()}`);
901
- }
902
- const cumulativeBorrowRateObligation = obligation_1.KaminoObligation.getCumulativeBorrowRate(borrow);
903
- const cumulativeBorrowRateReserve = this.reserve.getEstimatedCumulativeBorrowRate(this.currentSlot, this.kaminoMarket.state.referralFeeBps);
904
- const fullRepay = obligation_1.KaminoObligation.getBorrowAmount(borrow)
905
- .mul(cumulativeBorrowRateReserve)
906
- .div(cumulativeBorrowRateObligation);
907
- const amountDecimal = new decimal_js_1.default(this.amount.toString());
908
- if (fullRepay.lte(amountDecimal)) {
909
- this.preLoadedBorrowReservesSameTx.push(this.reserve.address);
910
- }
896
+ // Obligation doesn't exist yet, so we have to preload the deposit reserve
897
+ this.preLoadedDepositReservesSameTx.push(this.reserve.address);
911
898
  }
912
899
  }
913
- else {
914
- // Obligation doesn't exist yet, so we have to preload the deposit reserve
915
- this.preLoadedDepositReservesSameTx.push(this.reserve.address);
916
- }
917
900
  }
918
901
  else if (action === 'liquidate' && !this.outflowReserve.address.equals(this.reserve.address)) {
919
902
  currentReserves = [this.outflowReserve, this.reserve];
@@ -961,15 +944,18 @@ class KaminoAction {
961
944
  }
962
945
  }
963
946
  this.addRefreshReserveIxs(currentReserveAddresses.toArray(), addAsSupportIx);
964
- if (action === 'repayAndWithdraw' && addAsSupportIx === 'inBetween' && isClosingPosition) {
965
- // addToSetupIxs === addInBetween (same thing)
966
- // If this is a repay and withdraw, and it's not the first action, and it's closing a position
967
- // we don't need to include the repay reserve in the refresh obligation
968
- // I am ashamed of this code, we need to rewrite this entire thing
969
- this.addRefreshObligationIx(addAsSupportIx, true);
947
+ if (action === 'repayAndWithdraw' && addAsSupportIx === 'inBetween') {
948
+ const repayObligationLiquidity = this.obligation.getBorrowByReserve(this.reserve.address);
949
+ if (!repayObligationLiquidity) {
950
+ throw new Error(`Could not find debt reserve ${this.reserve.address} in obligation`);
951
+ }
952
+ const repaidBorrowReservesToSkip = repayObligationLiquidity.amount.lte(new decimal_js_1.default(this.amount.toString()))
953
+ ? [repayObligationLiquidity.reserveAddress]
954
+ : [];
955
+ this.addRefreshObligationIx(addAsSupportIx, repaidBorrowReservesToSkip);
970
956
  }
971
957
  else {
972
- this.addRefreshObligationIx(addAsSupportIx, false);
958
+ this.addRefreshObligationIx(addAsSupportIx);
973
959
  }
974
960
  if (requestElevationGroup) {
975
961
  if (action === 'repay') {
@@ -977,13 +963,13 @@ class KaminoAction {
977
963
  if (!repayObligationLiquidity) {
978
964
  throw new Error(`Could not find debt reserve ${this.reserve.address} in obligation`);
979
965
  }
980
- if (new decimal_js_1.default(repayObligationLiquidity.amount).lte(new decimal_js_1.default(this.amount.toString())) &&
966
+ if (repayObligationLiquidity.amount.lte(new decimal_js_1.default(this.amount.toString())) &&
981
967
  this.obligation.borrows.size === 1 &&
982
968
  this.obligation?.state.elevationGroup !== 0) {
983
969
  this.addRefreshReserveIxs(allReservesExcludingCurrent, 'cleanup');
984
970
  // Skip the borrow reserve, since we repay in the same tx
985
- this.addRefreshObligationIx('cleanup', true);
986
- this.addRequestElevationIx(overrideElevationGroupRequest ?? 0, 'cleanup', true);
971
+ this.addRefreshObligationIx('cleanup', [this.reserve.address]);
972
+ this.addRequestElevationIx(overrideElevationGroupRequest ?? 0, 'cleanup', [this.reserve.address]);
987
973
  }
988
974
  }
989
975
  else if (action === 'depositAndBorrow' || action === 'borrow') {
@@ -1099,7 +1085,7 @@ class KaminoAction {
1099
1085
  }
1100
1086
  await this.addInitObligationIxs();
1101
1087
  }
1102
- await this.addSupportIxsWithoutInitObligation(action, includeAtaIxns, 'setup', requestElevationGroup, addInitObligationForFarm, false, twoTokenAction, overrideElevationGroupRequest);
1088
+ await this.addSupportIxsWithoutInitObligation(action, includeAtaIxns, 'setup', requestElevationGroup, addInitObligationForFarm, twoTokenAction, overrideElevationGroupRequest);
1103
1089
  }
1104
1090
  static optionalAccount(pubkey, programId = lib_1.PROGRAM_ID) {
1105
1091
  if ((0, utils_1.isNotNullPubkey)(pubkey)) {
@@ -1155,7 +1141,7 @@ class KaminoAction {
1155
1141
  }, kaminoMarket.programId);
1156
1142
  });
1157
1143
  }
1158
- addRefreshObligationIx(addAsSupportIx = 'setup', skipBorrowObligations = false) {
1144
+ addRefreshObligationIx(addAsSupportIx = 'setup', borrowReservesToSkip = []) {
1159
1145
  const marketAddress = this.kaminoMarket.getAddress();
1160
1146
  const obligationPda = this.getObligationPda();
1161
1147
  const refreshObligationIx = (0, instructions_1.refreshObligation)({
@@ -1166,8 +1152,8 @@ class KaminoAction {
1166
1152
  const depositReserveAccountMetas = depositReservesList.map((reserve) => {
1167
1153
  return { pubkey: reserve, isSigner: false, isWritable: true };
1168
1154
  });
1169
- const preloadedBorrowReservesString = this.preLoadedBorrowReservesSameTx.map((reserve) => reserve.toString());
1170
- const borrowReservesList = this.borrowReserves.filter((reserve) => !preloadedBorrowReservesString.includes(reserve.toString()));
1155
+ const skipBorrowsSet = new utils_1.PublicKeySet(borrowReservesToSkip);
1156
+ const borrowReservesList = this.borrowReserves.filter((reserve) => !skipBorrowsSet.contains(reserve));
1171
1157
  const borrowReserveAccountMetas = borrowReservesList.map((reserve) => {
1172
1158
  return { pubkey: reserve, isSigner: false, isWritable: true };
1173
1159
  });
@@ -1182,7 +1168,8 @@ class KaminoAction {
1182
1168
  .filter((x) => !x.pubkey.equals(this.kaminoMarket.programId));
1183
1169
  refreshObligationIx.keys = refreshObligationIx.keys.concat([
1184
1170
  ...depositReserveAccountMetas,
1185
- ...(skipBorrowObligations ? [] : [...borrowReserveAccountMetas, ...borrowReservesReferrerTokenStates]),
1171
+ ...borrowReserveAccountMetas,
1172
+ ...borrowReservesReferrerTokenStates,
1186
1173
  ]);
1187
1174
  if (addAsSupportIx === 'setup') {
1188
1175
  this.setupIxs.push(refreshObligationIx);
@@ -1197,7 +1184,7 @@ class KaminoAction {
1197
1184
  this.cleanupIxsLabels.push(`RefreshObligation[${obligationPda.toString()}]`);
1198
1185
  }
1199
1186
  }
1200
- addRequestElevationIx(elevationGroup, addAsSupportIx, skipBorrowObligations = false) {
1187
+ addRequestElevationIx(elevationGroup, addAsSupportIx, skipBorrowReserves = []) {
1201
1188
  const obligationPda = this.getObligationPda();
1202
1189
  const args = {
1203
1190
  elevationGroup,
@@ -1212,8 +1199,8 @@ class KaminoAction {
1212
1199
  const depositReserveAccountMetas = depositReservesList.map((reserve) => {
1213
1200
  return { pubkey: reserve, isSigner: false, isWritable: true };
1214
1201
  });
1215
- const preloadedBorrowReservesString = this.preLoadedBorrowReservesSameTx.map((reserve) => reserve.toString());
1216
- const borrowReservesList = this.borrowReserves.filter((reserve) => !preloadedBorrowReservesString.includes(reserve.toString()));
1202
+ const skipBorrowReservesSet = new utils_1.PublicKeySet(skipBorrowReserves);
1203
+ const borrowReservesList = this.borrowReserves.filter((reserve) => !skipBorrowReservesSet.contains(reserve));
1217
1204
  const borrowReserveAccountMetas = borrowReservesList.map((reserve) => {
1218
1205
  return { pubkey: reserve, isSigner: false, isWritable: true };
1219
1206
  });
@@ -1229,7 +1216,8 @@ class KaminoAction {
1229
1216
  .filter((x) => !x.pubkey.equals(this.kaminoMarket.programId));
1230
1217
  requestElevationGroupIx.keys = requestElevationGroupIx.keys.concat([
1231
1218
  ...depositReserveAccountMetas,
1232
- ...(skipBorrowObligations ? [] : [...borrowReserveAccountMetas, ...borrowReservesReferrerTokenStates]),
1219
+ ...borrowReserveAccountMetas,
1220
+ ...borrowReservesReferrerTokenStates,
1233
1221
  ]);
1234
1222
  if (addAsSupportIx === 'setup') {
1235
1223
  this.setupIxs.push(requestElevationGroupIx);