@gearbox-protocol/sdk 4.1.6 → 4.1.8

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.
@@ -173,22 +173,32 @@ class AccountOpener extends import_sdk.SDKConstruct {
173
173
  target: symbol
174
174
  });
175
175
  const leverage = this.#getLeverage(input);
176
- logger?.debug(`using leverage ${leverage}`);
177
176
  const { minDebt, underlying } = cm.creditFacade;
177
+ const expectedUnderlyingBalance = minDebt * leverage / import_sdk.PERCENTAGE_FACTOR;
178
178
  const expectedBalances = [];
179
179
  const leftoverBalances = [];
180
180
  for (const t of cm.creditManager.collateralTokens) {
181
181
  const token = t;
182
182
  expectedBalances.push({
183
183
  token,
184
- balance: token === underlying ? BigInt(leverage) * minDebt / import_sdk.PERCENTAGE_FACTOR : 1n
184
+ balance: token === underlying ? expectedUnderlyingBalance : 1n
185
185
  });
186
186
  leftoverBalances.push({
187
187
  token,
188
188
  balance: 1n
189
189
  });
190
190
  }
191
- logger?.debug("looking for open strategy");
191
+ logger?.debug(
192
+ {
193
+ minDebt: this.sdk.tokensMeta.formatBN(underlying, minDebt),
194
+ leverage: leverage.toString(),
195
+ expectedUnderlyingBalance: this.sdk.tokensMeta.formatBN(
196
+ underlying,
197
+ expectedUnderlyingBalance
198
+ )
199
+ },
200
+ "looking for open strategy"
201
+ );
192
202
  const strategy = await this.sdk.routerFor(cm).findOpenStrategyPath({
193
203
  creditManager: cm.creditManager,
194
204
  expectedBalances,
@@ -502,7 +512,7 @@ class AccountOpener extends import_sdk.SDKConstruct {
502
512
  });
503
513
  return acc;
504
514
  }
505
- #getCollateralQuota(cm, collateral, amount, debt, logger) {
515
+ #getCollateralQuota(cm, collateral, collateralAmount, debt, logger) {
506
516
  const {
507
517
  underlying,
508
518
  creditManager: { liquidationThresholds }
@@ -522,6 +532,10 @@ class AccountOpener extends import_sdk.SDKConstruct {
522
532
  `quota exceeded for asset ${this.labelAddress(collateral)} in ${cm.name}`
523
533
  );
524
534
  }
535
+ const oracle = this.sdk.marketRegister.findByCreditManager(
536
+ cm.creditManager.address
537
+ ).priceOracle;
538
+ const amount = oracle.convert(collateral, underlying, collateralAmount);
525
539
  const desiredQuota = this.#calcQuota(amount, debt, collateralLT);
526
540
  logger?.debug(
527
541
  {
@@ -530,6 +544,10 @@ class AccountOpener extends import_sdk.SDKConstruct {
530
544
  underlying,
531
545
  availableQuota
532
546
  ),
547
+ collateralAmount: this.sdk.tokensMeta.formatBN(
548
+ collateral,
549
+ collateralAmount
550
+ ),
533
551
  amount: this.sdk.tokensMeta.formatBN(underlying, amount),
534
552
  debt: this.sdk.tokensMeta.formatBN(underlying, debt),
535
553
  lt: Number(collateralLT)
@@ -159,22 +159,32 @@ class AccountOpener extends SDKConstruct {
159
159
  target: symbol
160
160
  });
161
161
  const leverage = this.#getLeverage(input);
162
- logger?.debug(`using leverage ${leverage}`);
163
162
  const { minDebt, underlying } = cm.creditFacade;
163
+ const expectedUnderlyingBalance = minDebt * leverage / PERCENTAGE_FACTOR;
164
164
  const expectedBalances = [];
165
165
  const leftoverBalances = [];
166
166
  for (const t of cm.creditManager.collateralTokens) {
167
167
  const token = t;
168
168
  expectedBalances.push({
169
169
  token,
170
- balance: token === underlying ? BigInt(leverage) * minDebt / PERCENTAGE_FACTOR : 1n
170
+ balance: token === underlying ? expectedUnderlyingBalance : 1n
171
171
  });
172
172
  leftoverBalances.push({
173
173
  token,
174
174
  balance: 1n
175
175
  });
176
176
  }
177
- logger?.debug("looking for open strategy");
177
+ logger?.debug(
178
+ {
179
+ minDebt: this.sdk.tokensMeta.formatBN(underlying, minDebt),
180
+ leverage: leverage.toString(),
181
+ expectedUnderlyingBalance: this.sdk.tokensMeta.formatBN(
182
+ underlying,
183
+ expectedUnderlyingBalance
184
+ )
185
+ },
186
+ "looking for open strategy"
187
+ );
178
188
  const strategy = await this.sdk.routerFor(cm).findOpenStrategyPath({
179
189
  creditManager: cm.creditManager,
180
190
  expectedBalances,
@@ -488,7 +498,7 @@ class AccountOpener extends SDKConstruct {
488
498
  });
489
499
  return acc;
490
500
  }
491
- #getCollateralQuota(cm, collateral, amount, debt, logger) {
501
+ #getCollateralQuota(cm, collateral, collateralAmount, debt, logger) {
492
502
  const {
493
503
  underlying,
494
504
  creditManager: { liquidationThresholds }
@@ -508,6 +518,10 @@ class AccountOpener extends SDKConstruct {
508
518
  `quota exceeded for asset ${this.labelAddress(collateral)} in ${cm.name}`
509
519
  );
510
520
  }
521
+ const oracle = this.sdk.marketRegister.findByCreditManager(
522
+ cm.creditManager.address
523
+ ).priceOracle;
524
+ const amount = oracle.convert(collateral, underlying, collateralAmount);
511
525
  const desiredQuota = this.#calcQuota(amount, debt, collateralLT);
512
526
  logger?.debug(
513
527
  {
@@ -516,6 +530,10 @@ class AccountOpener extends SDKConstruct {
516
530
  underlying,
517
531
  availableQuota
518
532
  ),
533
+ collateralAmount: this.sdk.tokensMeta.formatBN(
534
+ collateral,
535
+ collateralAmount
536
+ ),
519
537
  amount: this.sdk.tokensMeta.formatBN(underlying, amount),
520
538
  debt: this.sdk.tokensMeta.formatBN(underlying, debt),
521
539
  lt: Number(collateralLT)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gearbox-protocol/sdk",
3
- "version": "4.1.6",
3
+ "version": "4.1.8",
4
4
  "description": "Gearbox SDK",
5
5
  "license": "MIT",
6
6
  "main": "./dist/cjs/sdk/index.js",