@kamino-finance/klend-sdk 5.0.1 → 5.0.2-fix

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.
@@ -4,7 +4,6 @@ import { KaminoReserve } from './reserve';
4
4
  import { Obligation } from '../idl_codegen/accounts';
5
5
  import { ElevationGroupDescription, KaminoMarket } from './market';
6
6
  import { ObligationCollateral, ObligationLiquidity } from '../idl_codegen/types';
7
- import { PubkeyHashMap } from '../utils';
8
7
  import { ActionType } from './action';
9
8
  export type Position = {
10
9
  reserveAddress: PublicKey;
@@ -181,14 +180,14 @@ export declare class KaminoObligation {
181
180
  * @returns Cumulative borrow rate for the specified obligation liquidity/borrow asset
182
181
  */
183
182
  static getCumulativeBorrowRate(borrow: ObligationLiquidity): Decimal;
184
- static getRatesForObligation(kaminoMarket: KaminoMarket, obligation: Obligation, slot: number): {
183
+ static getRatesForObligation(kaminoMarket: KaminoMarket, obligation: Obligation, slot: number, additionalReserves?: PublicKey[]): {
185
184
  collateralExchangeRates: Map<PublicKey, Decimal>;
186
185
  cumulativeBorrowRates: Map<PublicKey, Decimal>;
187
186
  };
188
187
  static addRatesForObligation(kaminoMarket: KaminoMarket, obligation: Obligation, collateralExchangeRates: Map<PublicKey, Decimal>, cumulativeBorrowRates: Map<PublicKey, Decimal>, slot: number): void;
189
- static getCollateralExchangeRatesForObligation(kaminoMarket: KaminoMarket, obligation: Obligation, slot: number): Map<PublicKey, Decimal>;
188
+ static getCollateralExchangeRatesForObligation(kaminoMarket: KaminoMarket, obligation: Obligation, slot: number, additionalReserves: PublicKey[]): Map<PublicKey, Decimal>;
190
189
  static addCollateralExchangeRatesForObligation(kaminoMarket: KaminoMarket, collateralExchangeRates: Map<PublicKey, Decimal>, obligation: Obligation, slot: number): void;
191
- static getCumulativeBorrowRatesForObligation(kaminoMarket: KaminoMarket, obligation: Obligation, slot: number): PubkeyHashMap<PublicKey, Decimal>;
190
+ static getCumulativeBorrowRatesForObligation(kaminoMarket: KaminoMarket, obligation: Obligation, slot: number, additionalReserves?: PublicKey[]): Map<PublicKey, Decimal>;
192
191
  static addCumulativeBorrowRatesForObligation(kaminoMarket: KaminoMarket, cumulativeBorrowRates: Map<PublicKey, Decimal>, obligation: Obligation, slot: number): void;
193
192
  /**
194
193
  * Get the borrow factor for a borrow reserve, accounting for the obligation elevation group if it is active
@@ -1 +1 @@
1
- {"version":3,"file":"obligation.d.ts","sourceRoot":"","sources":["../../src/classes/obligation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"obligation.d.ts","sourceRoot":"","sources":["../../src/classes/obligation.ts"],"names":[],"mappings":"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"}
@@ -239,6 +239,8 @@ class KaminoObligation {
239
239
  }
240
240
  simulateDepositChange(obligationDeposits, changeInLamports, changeReserve, collateralExchangeRates) {
241
241
  const newDeposits = [];
242
+ const depositIndex = obligationDeposits.findIndex((deposit) => deposit.depositReserve.equals(changeReserve));
243
+ // Always copy the previous deposits and modify the changeReserve one if it exists
242
244
  for (let i = 0; i < obligationDeposits.length; i++) {
243
245
  if (obligationDeposits[i].depositReserve.equals(changeReserve)) {
244
246
  const coll = { ...obligationDeposits[i] };
@@ -252,20 +254,43 @@ class KaminoObligation {
252
254
  newDeposits.push(obligationDeposits[i]);
253
255
  }
254
256
  }
257
+ if (depositIndex === -1) {
258
+ // If the reserve is not in the obligation, we add it
259
+ const firstBorrowIndexAvailable = obligationDeposits.findIndex((deposit) => deposit.depositReserve.equals(web3_js_1.PublicKey.default));
260
+ if (firstBorrowIndexAvailable === -1) {
261
+ throw new Error('No available borrows to modify');
262
+ }
263
+ const coll = { ...obligationDeposits[firstBorrowIndexAvailable] };
264
+ const exchangeRate = collateralExchangeRates.get(changeReserve);
265
+ const changeInCollateral = new decimal_js_1.default(changeInLamports).mul(exchangeRate).toFixed(0);
266
+ coll.depositedAmount = new bn_js_1.default((0, utils_1.positiveOrZero)(new decimal_js_1.default(changeInCollateral)).toString());
267
+ coll.depositReserve = changeReserve;
268
+ newDeposits[firstBorrowIndexAvailable] = new types_1.ObligationCollateral(coll);
269
+ }
255
270
  return newDeposits;
256
271
  }
257
272
  simulateBorrowChange(obligationBorrows, changeInLamports, changeReserve, cumulativeBorrowRate) {
258
273
  const newBorrows = [];
259
274
  const borrowIndex = obligationBorrows.findIndex((borrow) => borrow.borrowReserve.equals(changeReserve));
260
- if (borrowIndex !== -1) {
261
- const borrow = { ...obligationBorrows[borrowIndex] };
262
- const newBorrowedAmount = new fraction_1.Fraction(borrow.borrowedAmountSf).toDecimal().add(changeInLamports);
263
- const newBorrowedAmountSf = fraction_1.Fraction.fromDecimal((0, utils_1.positiveOrZero)(newBorrowedAmount)).getValue();
264
- borrow.borrowedAmountSf = newBorrowedAmountSf;
265
- newBorrows.push(new types_1.ObligationLiquidity(borrow));
275
+ // Always copy the previous borrows and modify the changeReserve one if it exists
276
+ for (let i = 0; i < obligationBorrows.length; i++) {
277
+ if (obligationBorrows[i].borrowReserve.equals(changeReserve)) {
278
+ const borrow = { ...obligationBorrows[borrowIndex] };
279
+ const newBorrowedAmount = new fraction_1.Fraction(borrow.borrowedAmountSf).toDecimal().add(changeInLamports);
280
+ const newBorrowedAmountSf = fraction_1.Fraction.fromDecimal((0, utils_1.positiveOrZero)(newBorrowedAmount)).getValue();
281
+ borrow.borrowedAmountSf = newBorrowedAmountSf;
282
+ newBorrows.push(new types_1.ObligationLiquidity(borrow));
283
+ }
284
+ else {
285
+ newBorrows.push(obligationBorrows[i]);
286
+ }
266
287
  }
267
- else {
288
+ if (borrowIndex === -1) {
289
+ // If the reserve is not in the obligation, we add it
268
290
  const firstBorrowIndexAvailable = obligationBorrows.findIndex((borrow) => borrow.borrowReserve.equals(web3_js_1.PublicKey.default));
291
+ if (firstBorrowIndexAvailable === -1) {
292
+ throw new Error('No available borrows to modify');
293
+ }
269
294
  const borrow = { ...obligationBorrows[firstBorrowIndexAvailable] };
270
295
  borrow.borrowedAmountSf = fraction_1.Fraction.fromDecimal(new decimal_js_1.default(changeInLamports)).getValue();
271
296
  borrow.borrowReserve = changeReserve;
@@ -273,7 +298,7 @@ class KaminoObligation {
273
298
  padding: [],
274
299
  value: [fraction_1.Fraction.fromDecimal(cumulativeBorrowRate).getValue(), new bn_js_1.default(0), new bn_js_1.default(0), new bn_js_1.default(0)],
275
300
  };
276
- newBorrows.push(new types_1.ObligationLiquidity(borrow));
301
+ newBorrows[firstBorrowIndexAvailable] = new types_1.ObligationLiquidity(borrow);
277
302
  }
278
303
  return newBorrows;
279
304
  }
@@ -284,20 +309,34 @@ class KaminoObligation {
284
309
  getSimulatedObligationStats(params) {
285
310
  const { amountCollateral, amountDebt, action, mintCollateral, mintDebt, market } = params;
286
311
  let newStats = { ...this.refreshedStats };
287
- const { collateralExchangeRates } = KaminoObligation.getRatesForObligation(market, this.state, params.slot);
312
+ const collateralReservePk = mintCollateral ? market.getReserveByMint(mintCollateral).address : undefined;
313
+ const debtReservePk = mintDebt ? market.getReserveByMint(mintDebt).address : undefined;
314
+ const additionalReserves = [];
315
+ if (collateralReservePk !== undefined) {
316
+ additionalReserves.push(collateralReservePk);
317
+ }
318
+ if (debtReservePk !== undefined) {
319
+ additionalReserves.push(debtReservePk);
320
+ }
321
+ const { collateralExchangeRates } = KaminoObligation.getRatesForObligation(market, this.state, params.slot, additionalReserves);
288
322
  const elevationGroup = params.elevationGroupOverride ?? this.state.elevationGroup;
289
323
  let newDeposits = new utils_2.PubkeyHashMap([...this.deposits.entries()]);
290
324
  let newBorrows = new utils_2.PubkeyHashMap([...this.borrows.entries()]);
291
325
  // Any action can impact both deposit stats and borrow stats if elevation group is changed
292
326
  // so we have to recalculate the entire position, not just an updated deposit or borrow
293
327
  // as both LTVs and borrow factors can change, affecting all calcs
294
- const collateralReservePk = mintCollateral ? market.getReserveByMint(mintCollateral).address : undefined;
295
- const debtReservePk = mintDebt ? market.getReserveByMint(mintDebt).address : undefined;
296
328
  const debtReserveCumulativeBorrowRate = mintDebt
297
329
  ? market.getReserveByMint(mintDebt).getCumulativeBorrowRate()
298
330
  : undefined;
299
331
  let newObligationDeposits = this.state.deposits;
300
332
  let newObligationBorrows = this.state.borrows;
333
+ // Print deposits and borrows before
334
+ for (const deposit of this.state.deposits) {
335
+ console.log(`Before Deposit: ${deposit.depositReserve.toBase58()} - ${deposit.depositedAmount}`);
336
+ }
337
+ for (const borrow of this.state.borrows) {
338
+ console.log(`Before Borrow: ${borrow.borrowReserve.toBase58()} - ${borrow.borrowedAmountSf}`);
339
+ }
301
340
  switch (action) {
302
341
  case 'deposit': {
303
342
  if (amountCollateral === undefined || mintCollateral === undefined) {
@@ -354,6 +393,13 @@ class KaminoObligation {
354
393
  }
355
394
  }
356
395
  const { borrows, deposits, refreshedStats } = this.calculatePositions(market, newObligationDeposits, newObligationBorrows, elevationGroup, collateralExchangeRates, null);
396
+ // Print deposits and borrows after
397
+ for (const deposit of newObligationDeposits) {
398
+ console.log(`After Deposit: ${deposit.depositReserve.toBase58()} - ${deposit.depositedAmount}`);
399
+ }
400
+ for (const borrow of newObligationBorrows) {
401
+ console.log(`After Borrow: ${borrow.borrowReserve.toBase58()} - ${borrow.borrowedAmountSf}`);
402
+ }
357
403
  newStats = refreshedStats;
358
404
  newDeposits = deposits;
359
405
  newBorrows = borrows;
@@ -569,7 +615,7 @@ class KaminoObligation {
569
615
  if (!reserve) {
570
616
  throw new Error('Reserve not found');
571
617
  }
572
- const liquidityAvailable = reserve.getLiquidityAvailableForDebtReserveGivenCaps(market, [elevationGroup])[0];
618
+ const liquidityAvailable = reserve.getLiquidityAvailableForDebtReserveGivenCaps(market, [elevationGroup], Array.from(this.deposits.keys()))[0];
573
619
  const maxBorrowAmount = this.getBorrowPower(market, liquidityMint, slot, elevationGroup);
574
620
  if (elevationGroup === this.state.elevationGroup) {
575
621
  return decimal_js_1.default.min(maxBorrowAmount, liquidityAvailable);
@@ -781,9 +827,9 @@ class KaminoObligation {
781
827
  }
782
828
  return new fraction_1.Fraction(accSf).toDecimal();
783
829
  }
784
- static getRatesForObligation(kaminoMarket, obligation, slot) {
785
- const collateralExchangeRates = KaminoObligation.getCollateralExchangeRatesForObligation(kaminoMarket, obligation, slot);
786
- const cumulativeBorrowRates = KaminoObligation.getCumulativeBorrowRatesForObligation(kaminoMarket, obligation, slot);
830
+ static getRatesForObligation(kaminoMarket, obligation, slot, additionalReserves = []) {
831
+ const collateralExchangeRates = KaminoObligation.getCollateralExchangeRatesForObligation(kaminoMarket, obligation, slot, additionalReserves);
832
+ const cumulativeBorrowRates = KaminoObligation.getCumulativeBorrowRatesForObligation(kaminoMarket, obligation, slot, additionalReserves);
787
833
  return {
788
834
  collateralExchangeRates,
789
835
  cumulativeBorrowRates,
@@ -793,16 +839,27 @@ class KaminoObligation {
793
839
  KaminoObligation.addCollateralExchangeRatesForObligation(kaminoMarket, collateralExchangeRates, obligation, slot);
794
840
  KaminoObligation.addCumulativeBorrowRatesForObligation(kaminoMarket, cumulativeBorrowRates, obligation, slot);
795
841
  }
796
- static getCollateralExchangeRatesForObligation(kaminoMarket, obligation, slot) {
842
+ static getCollateralExchangeRatesForObligation(kaminoMarket, obligation, slot, additionalReserves) {
797
843
  const collateralExchangeRates = new utils_2.PubkeyHashMap();
844
+ // Create a set of all reserves coming from deposit plus additional reserves
845
+ const allReserves = new Set();
798
846
  for (let i = 0; i < obligation.deposits.length; i++) {
799
847
  const deposit = obligation.deposits[i];
800
- if ((0, utils_2.isNotNullPubkey)(deposit.depositReserve) && !collateralExchangeRates.has(deposit.depositReserve)) {
801
- const reserve = kaminoMarket.getReserveByAddress(deposit.depositReserve);
802
- const collateralExchangeRate = reserve.getEstimatedCollateralExchangeRate(slot, kaminoMarket.state.referralFeeBps);
803
- collateralExchangeRates.set(reserve.address, collateralExchangeRate);
848
+ if ((0, utils_2.isNotNullPubkey)(deposit.depositReserve)) {
849
+ allReserves.add(deposit.depositReserve);
804
850
  }
805
851
  }
852
+ for (let i = 0; i < additionalReserves.length; i++) {
853
+ if ((0, utils_2.isNotNullPubkey)(additionalReserves[i])) {
854
+ allReserves.add(additionalReserves[i]);
855
+ }
856
+ }
857
+ // Run through all reserves and get the exchange rate
858
+ for (const reserve of allReserves) {
859
+ const reserveInstance = kaminoMarket.getReserveByAddress(reserve);
860
+ const collateralExchangeRate = reserveInstance.getEstimatedCollateralExchangeRate(slot, kaminoMarket.state.referralFeeBps);
861
+ collateralExchangeRates.set(reserve, collateralExchangeRate);
862
+ }
806
863
  return collateralExchangeRates;
807
864
  }
808
865
  static addCollateralExchangeRatesForObligation(kaminoMarket, collateralExchangeRates, obligation, slot) {
@@ -815,16 +872,27 @@ class KaminoObligation {
815
872
  }
816
873
  }
817
874
  }
818
- static getCumulativeBorrowRatesForObligation(kaminoMarket, obligation, slot) {
819
- const cumulativeBorrowRates = new utils_2.PubkeyHashMap();
875
+ static getCumulativeBorrowRatesForObligation(kaminoMarket, obligation, slot, additionalReserves = []) {
876
+ const allReserves = new Set();
820
877
  for (let i = 0; i < obligation.borrows.length; i++) {
821
878
  const borrow = obligation.borrows[i];
822
- if ((0, utils_2.isNotNullPubkey)(borrow.borrowReserve) && !cumulativeBorrowRates.has(borrow.borrowReserve)) {
823
- const reserve = kaminoMarket.getReserveByAddress(borrow.borrowReserve);
824
- const cumulativeBorrowRate = reserve.getEstimatedCumulativeBorrowRate(slot, kaminoMarket.state.referralFeeBps);
825
- cumulativeBorrowRates.set(reserve.address, cumulativeBorrowRate);
879
+ if ((0, utils_2.isNotNullPubkey)(borrow.borrowReserve)) {
880
+ allReserves.add(borrow.borrowReserve);
826
881
  }
827
882
  }
883
+ // Add additional reserves
884
+ for (let i = 0; i < additionalReserves.length; i++) {
885
+ if ((0, utils_2.isNotNullPubkey)(additionalReserves[i])) {
886
+ allReserves.add(additionalReserves[i]);
887
+ }
888
+ }
889
+ const cumulativeBorrowRates = new utils_2.PubkeyHashMap();
890
+ // Run through all reserves and get the cumulative borrow rate
891
+ for (const reserve of allReserves) {
892
+ const reserveInstance = kaminoMarket.getReserveByAddress(reserve);
893
+ const cumulativeBorrowRate = reserveInstance.getEstimatedCumulativeBorrowRate(slot, kaminoMarket.state.referralFeeBps);
894
+ cumulativeBorrowRates.set(reserve, cumulativeBorrowRate);
895
+ }
828
896
  return cumulativeBorrowRates;
829
897
  }
830
898
  static addCumulativeBorrowRatesForObligation(kaminoMarket, cumulativeBorrowRates, obligation, slot) {
@@ -1 +1 @@
1
- {"version":3,"file":"obligation.js","sourceRoot":"","sources":["../../src/classes/obligation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"obligation.js","sourceRoot":"","sources":["../../src/classes/obligation.ts"],"names":[],"mappings":"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"}
@@ -173,6 +173,7 @@ export declare class KaminoReserve {
173
173
  getEstimatedUtilizationRatio(slot: number, referralFeeBps: number): number;
174
174
  calcSimulatedUtilizationRatio(amount: Decimal, action: ActionType, slot: number, referralFeeBps: number, outflowAmount?: Decimal): number;
175
175
  getMaxBorrowAmountWithCollReserve(market: KaminoMarket, collReserve: KaminoReserve, slot: number): Decimal;
176
+ calcSimulatedBorrowRate(amount: Decimal, action: ActionType, slot: number, referralFeeBps: number, outflowAmount?: Decimal): number;
176
177
  calcSimulatedBorrowAPR(amount: Decimal, action: ActionType, slot: number, referralFeeBps: number, outflowAmount?: Decimal): number;
177
178
  calcSimulatedSupplyAPR(amount: Decimal, action: ActionType, slot: number, referralFeeBps: number, outflowAmount?: Decimal): number;
178
179
  slotAdjustmentFactor(): number;
@@ -224,7 +225,7 @@ export declare class KaminoReserve {
224
225
  */
225
226
  private approximateCompoundedInterest;
226
227
  getBorrowCapForReserve(market: KaminoMarket): BorrowCapsAndCounters;
227
- getLiquidityAvailableForDebtReserveGivenCaps(market: KaminoMarket, elevationGroups: number[]): Decimal[];
228
+ getLiquidityAvailableForDebtReserveGivenCaps(market: KaminoMarket, elevationGroups: number[], collateralReserves?: PublicKey[]): Decimal[];
228
229
  }
229
230
  export declare function createReserveIxs(connection: Connection, owner: PublicKey, lendingMarket: PublicKey, liquidityMint: PublicKey, reserveAddress: PublicKey, programId: PublicKey): Promise<TransactionInstruction[]>;
230
231
  export declare function updateReserveConfigIx(marketWithAddress: MarketWithAddress, reserveAddress: PublicKey, modeDiscriminator: number, value: Uint8Array, programId: PublicKey): TransactionInstruction;
@@ -1 +1 @@
1
- {"version":3,"file":"reserve.d.ts","sourceRoot":"","sources":["../../src/classes/reserve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reserve.d.ts","sourceRoot":"","sources":["../../src/classes/reserve.ts"],"names":[],"mappings":"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"}
@@ -477,15 +477,19 @@ class KaminoReserve {
477
477
  maxBorrowAmount = decimal_js_1.default.min(maxBorrowAmount, borrowLimitDependentOnElevationGroup);
478
478
  return decimal_js_1.default.max(new decimal_js_1.default(0), maxBorrowAmount);
479
479
  }
480
- calcSimulatedBorrowAPR(amount, action, slot, referralFeeBps, outflowAmount) {
480
+ calcSimulatedBorrowRate(amount, action, slot, referralFeeBps, outflowAmount) {
481
481
  const slotAdjustmentFactor = this.slotAdjustmentFactor();
482
482
  const newUtilization = this.calcSimulatedUtilizationRatio(amount, action, slot, referralFeeBps, outflowAmount);
483
483
  const curve = truncateBorrowCurve(this.state.config.borrowRateCurve.points);
484
- return (0, utils_2.getBorrowRate)(newUtilization, curve) * slotAdjustmentFactor + this.getFixedHostInterestRate().toNumber();
484
+ return (0, utils_2.getBorrowRate)(newUtilization, curve) * slotAdjustmentFactor;
485
+ }
486
+ calcSimulatedBorrowAPR(amount, action, slot, referralFeeBps, outflowAmount) {
487
+ return (this.calcSimulatedBorrowRate(amount, action, slot, referralFeeBps, outflowAmount) +
488
+ this.getFixedHostInterestRate().toNumber());
485
489
  }
486
490
  calcSimulatedSupplyAPR(amount, action, slot, referralFeeBps, outflowAmount) {
487
491
  const newUtilization = this.calcSimulatedUtilizationRatio(amount, action, slot, referralFeeBps, outflowAmount);
488
- const simulatedBorrowAPR = this.calcSimulatedBorrowAPR(amount, action, slot, referralFeeBps, outflowAmount);
492
+ const simulatedBorrowAPR = this.calcSimulatedBorrowRate(amount, action, slot, referralFeeBps, outflowAmount);
489
493
  const protocolTakeRatePct = 1 - this.state.config.protocolTakeRatePct / 100;
490
494
  return newUtilization * simulatedBorrowAPR * protocolTakeRatePct;
491
495
  }
@@ -827,7 +831,7 @@ class KaminoReserve {
827
831
  return caps;
828
832
  }
829
833
  /* This takes into account all the caps */
830
- getLiquidityAvailableForDebtReserveGivenCaps(market, elevationGroups) {
834
+ getLiquidityAvailableForDebtReserveGivenCaps(market, elevationGroups, collateralReserves = []) {
831
835
  const caps = this.getBorrowCapForReserve(market);
832
836
  const liquidityAvailable = this.getLiquidityAvailableAmount();
833
837
  // Cap this to utilization cap first
@@ -848,7 +852,15 @@ class KaminoReserve {
848
852
  let remainingInsideEmodeCaps = new decimal_js_1.default(0);
849
853
  const capsGivenEgroup = caps.debtAgainstCollateralReserveCaps.filter((x) => x.elevationGroup === elevationGroup);
850
854
  if (capsGivenEgroup.length > 0) {
851
- remainingInsideEmodeCaps = decimal_js_1.default.min(...capsGivenEgroup.map((x) => x.maxDebt.minus(x.currentValue)));
855
+ remainingInsideEmodeCaps = decimal_js_1.default.min(...capsGivenEgroup.map((x) => {
856
+ // check reserve is part of collReserves array
857
+ if (collateralReserves.find((collateralReserve) => collateralReserve.equals(x.collateralReserve))) {
858
+ return x.maxDebt.minus(x.currentValue);
859
+ }
860
+ else {
861
+ return new decimal_js_1.default(utils_1.U64_MAX);
862
+ }
863
+ }));
852
864
  }
853
865
  return decimal_js_1.default.min((0, utils_2.positiveOrZero)(liquidityAvailable), (0, utils_2.positiveOrZero)(remainingInsideEmodeCaps), (0, utils_2.positiveOrZero)(remainingDailyCap), (0, utils_2.positiveOrZero)(remainingGlobalCap), (0, utils_2.positiveOrZero)(liquidityGivenUtilizationCap));
854
866
  }