@strkfarm/sdk 2.0.0-staging.17 → 2.0.0-staging.19

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.
@@ -6,6 +6,7 @@ import axios from "axios";
6
6
 
7
7
  // src/dataTypes/_bignumber.ts
8
8
  import BigNumber from "bignumber.js";
9
+ import { uint256 } from "starknet";
9
10
  var _Web3Number = class extends BigNumber {
10
11
  constructor(value, decimals) {
11
12
  super(value);
@@ -80,6 +81,9 @@ var _Web3Number = class extends BigNumber {
80
81
  sign
81
82
  };
82
83
  }
84
+ toUint256() {
85
+ return uint256.bnToUint256(this.toWei());
86
+ }
83
87
  };
84
88
  BigNumber.config({ DECIMAL_PLACES: 18, ROUNDING_MODE: BigNumber.ROUND_DOWN });
85
89
  _Web3Number.config({ DECIMAL_PLACES: 18, ROUNDING_MODE: BigNumber.ROUND_DOWN });
@@ -521,7 +525,7 @@ var PricerBase = class {
521
525
  };
522
526
 
523
527
  // src/modules/avnu.ts
524
- import { uint256 } from "starknet";
528
+ import { uint256 as uint2562 } from "starknet";
525
529
  import { fetchBuildExecuteTransaction, fetchQuotes } from "@avnu/avnu-sdk";
526
530
 
527
531
  // src/utils/oz-merkle.ts
@@ -666,10 +670,10 @@ var AvnuWrapper = class {
666
670
  const _minAmount = minAmount || (quote.buyAmount * 95n / 100n).toString();
667
671
  const swapInfo = {
668
672
  token_from_address: quote.sellTokenAddress,
669
- token_from_amount: uint256.bnToUint256(quote.sellAmount),
673
+ token_from_amount: uint2562.bnToUint256(quote.sellAmount),
670
674
  token_to_address: quote.buyTokenAddress,
671
- token_to_amount: uint256.bnToUint256(_minAmount),
672
- token_to_min_amount: uint256.bnToUint256(_minAmount),
675
+ token_to_amount: uint2562.bnToUint256(_minAmount),
676
+ token_to_min_amount: uint2562.bnToUint256(_minAmount),
673
677
  beneficiary: taker,
674
678
  integrator_fee_amount_bps: integratorFeeBps,
675
679
  integrator_fee_recipient: integratorFeeRecipient,
@@ -680,10 +684,10 @@ var AvnuWrapper = class {
680
684
  static buildZeroSwap(tokenToSell, beneficiary, tokenToBuy = tokenToSell) {
681
685
  return {
682
686
  token_from_address: tokenToSell.address,
683
- token_from_amount: uint256.bnToUint256(0),
687
+ token_from_amount: uint2562.bnToUint256(0),
684
688
  token_to_address: tokenToBuy.address,
685
- token_to_amount: uint256.bnToUint256(0),
686
- token_to_min_amount: uint256.bnToUint256(0),
689
+ token_to_amount: uint2562.bnToUint256(0),
690
+ token_to_min_amount: uint2562.bnToUint256(0),
687
691
  beneficiary,
688
692
  integrator_fee_amount_bps: 0,
689
693
  integrator_fee_recipient: beneficiary,
@@ -3250,7 +3254,7 @@ var Initializable = class {
3250
3254
  };
3251
3255
 
3252
3256
  // src/strategies/autoCompounderStrk.ts
3253
- import { Contract as Contract4, uint256 as uint2562 } from "starknet";
3257
+ import { Contract as Contract4, uint256 as uint2563 } from "starknet";
3254
3258
  var AutoCompounderSTRK = class {
3255
3259
  constructor(config, pricer) {
3256
3260
  this.addr = ContractAddr.from("0x541681b9ad63dff1b35f79c78d8477f64857de29a27902f7298f7b620838ea");
@@ -3294,7 +3298,7 @@ var AutoCompounderSTRK = class {
3294
3298
  /** Returns underlying assets of user */
3295
3299
  async balanceOfUnderlying(user) {
3296
3300
  const balanceShares = await this.balanceOf(user);
3297
- const assets = await this.contract.convert_to_assets(uint2562.bnToUint256(balanceShares.toWei()));
3301
+ const assets = await this.contract.convert_to_assets(uint2563.bnToUint256(balanceShares.toWei()));
3298
3302
  return Web3Number.fromWei(assets.toString(), this.metadata.decimals);
3299
3303
  }
3300
3304
  /** Returns usd value of assets */
@@ -3310,7 +3314,7 @@ var AutoCompounderSTRK = class {
3310
3314
  };
3311
3315
 
3312
3316
  // src/strategies/vesu-rebalance.tsx
3313
- import { CairoCustomEnum, Contract as Contract6, num as num4, uint256 as uint2563 } from "starknet";
3317
+ import { CairoCustomEnum, Contract as Contract6, num as num4, uint256 as uint2564 } from "starknet";
3314
3318
 
3315
3319
  // src/data/vesu-rebalance.abi.json
3316
3320
  var vesu_rebalance_abi_default = [
@@ -10461,10 +10465,10 @@ var VesuRebalance = class _VesuRebalance extends BaseStrategy {
10461
10465
  });
10462
10466
  const call1 = assetContract.populate("approve", [
10463
10467
  this.address.address,
10464
- uint2563.bnToUint256(amountInfo.amount.toWei())
10468
+ uint2564.bnToUint256(amountInfo.amount.toWei())
10465
10469
  ]);
10466
10470
  const call2 = this.contract.populate("deposit", [
10467
- uint2563.bnToUint256(amountInfo.amount.toWei()),
10471
+ uint2564.bnToUint256(amountInfo.amount.toWei()),
10468
10472
  receiver.address
10469
10473
  ]);
10470
10474
  return [call1, call2];
@@ -10479,7 +10483,7 @@ var VesuRebalance = class _VesuRebalance extends BaseStrategy {
10479
10483
  async withdrawCall(amountInfo, receiver, owner) {
10480
10484
  return [
10481
10485
  this.contract.populate("withdraw", [
10482
- uint2563.bnToUint256(amountInfo.amount.toWei()),
10486
+ uint2564.bnToUint256(amountInfo.amount.toWei()),
10483
10487
  receiver.address,
10484
10488
  owner.address
10485
10489
  ])
@@ -10503,7 +10507,7 @@ var VesuRebalance = class _VesuRebalance extends BaseStrategy {
10503
10507
  const shares = await this.contract.call("balanceOf", [user.address], { blockIdentifier });
10504
10508
  const assets = await this.contract.call(
10505
10509
  "convert_to_assets",
10506
- [uint2563.bnToUint256(shares)],
10510
+ [uint2564.bnToUint256(shares)],
10507
10511
  { blockIdentifier }
10508
10512
  );
10509
10513
  const amount = Web3Number.fromWei(
@@ -10661,7 +10665,7 @@ var VesuRebalance = class _VesuRebalance extends BaseStrategy {
10661
10665
  });
10662
10666
  const bal = await vTokenContract.balanceOf(this.address.address);
10663
10667
  const assets = await vTokenContract.convert_to_assets(
10664
- uint2563.bnToUint256(bal.toString())
10668
+ uint2564.bnToUint256(bal.toString())
10665
10669
  );
10666
10670
  logger.verbose(`Collateral: ${JSON.stringify(vesuPosition?.collateral)}`);
10667
10671
  logger.verbose(`supplyApy: ${JSON.stringify(assetInfo?.stats.supplyApy)}`);
@@ -10967,7 +10971,7 @@ var VesuRebalance = class _VesuRebalance extends BaseStrategy {
10967
10971
  p.isDeposit ? { DEPOSIT: {} } : { WITHDRAW: {} }
10968
10972
  ),
10969
10973
  token: this.asset().address.address,
10970
- amount: uint2563.bnToUint256(
10974
+ amount: uint2564.bnToUint256(
10971
10975
  p.changeAmt.multipliedBy(p.isDeposit ? 1 : -1).toWei()
10972
10976
  )
10973
10977
  });
@@ -11026,10 +11030,10 @@ var VesuRebalance = class _VesuRebalance extends BaseStrategy {
11026
11030
  const avnu = new AvnuWrapper();
11027
11031
  let swapInfo = {
11028
11032
  token_from_address: harvest.token.address,
11029
- token_from_amount: uint2563.bnToUint256(harvest.actualReward.toWei()),
11033
+ token_from_amount: uint2564.bnToUint256(harvest.actualReward.toWei()),
11030
11034
  token_to_address: this.asset().address.address,
11031
- token_to_amount: uint2563.bnToUint256(0),
11032
- token_to_min_amount: uint2563.bnToUint256(0),
11035
+ token_to_amount: uint2564.bnToUint256(0),
11036
+ token_to_min_amount: uint2564.bnToUint256(0),
11033
11037
  beneficiary: this.address.address,
11034
11038
  integrator_fee_amount_bps: 0,
11035
11039
  integrator_fee_recipient: this.address.address,
@@ -11301,7 +11305,7 @@ VesuRebalanceStrategies.forEach((s) => {
11301
11305
  import {
11302
11306
  Contract as Contract7,
11303
11307
  num as num5,
11304
- uint256 as uint2564
11308
+ uint256 as uint2565
11305
11309
  } from "starknet";
11306
11310
 
11307
11311
  // src/data/cl-vault.abi.json
@@ -16371,7 +16375,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
16371
16375
  const shares = await this.tokensToShares(amountInfo);
16372
16376
  const { amount0, amount1 } = await this.contract.call(
16373
16377
  "convert_to_assets",
16374
- [uint2564.bnToUint256(shares.toWei())]
16378
+ [uint2565.bnToUint256(shares.toWei())]
16375
16379
  );
16376
16380
  return {
16377
16381
  token0: {
@@ -16404,15 +16408,15 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
16404
16408
  });
16405
16409
  const call1 = token0Contract.populate("approve", [
16406
16410
  this.address.address,
16407
- uint2564.bnToUint256(updateAmountInfo.token0.amount.toWei())
16411
+ uint2565.bnToUint256(updateAmountInfo.token0.amount.toWei())
16408
16412
  ]);
16409
16413
  const call2 = token1Contract.populate("approve", [
16410
16414
  this.address.address,
16411
- uint2564.bnToUint256(updateAmountInfo.token1.amount.toWei())
16415
+ uint2565.bnToUint256(updateAmountInfo.token1.amount.toWei())
16412
16416
  ]);
16413
16417
  const call3 = this.contract.populate("deposit", [
16414
- uint2564.bnToUint256(updateAmountInfo.token0.amount.toWei()),
16415
- uint2564.bnToUint256(updateAmountInfo.token1.amount.toWei()),
16418
+ uint2565.bnToUint256(updateAmountInfo.token0.amount.toWei()),
16419
+ uint2565.bnToUint256(updateAmountInfo.token1.amount.toWei()),
16416
16420
  receiver.address
16417
16421
  ]);
16418
16422
  const calls = [];
@@ -16422,8 +16426,8 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
16422
16426
  }
16423
16427
  async tokensToShares(amountInfo) {
16424
16428
  const shares = await this.contract.call("convert_to_shares", [
16425
- uint2564.bnToUint256(amountInfo.token0.amount.toWei()),
16426
- uint2564.bnToUint256(amountInfo.token1.amount.toWei())
16429
+ uint2565.bnToUint256(amountInfo.token0.amount.toWei()),
16430
+ uint2565.bnToUint256(amountInfo.token1.amount.toWei())
16427
16431
  ]);
16428
16432
  return Web3Number.fromWei(shares.toString(), 18);
16429
16433
  }
@@ -16434,7 +16438,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
16434
16438
  );
16435
16439
  return [
16436
16440
  this.contract.populate("withdraw", [
16437
- uint2564.bnToUint256(shares.toWei()),
16441
+ uint2565.bnToUint256(shares.toWei()),
16438
16442
  receiver.address
16439
16443
  ])
16440
16444
  ];
@@ -16456,14 +16460,21 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
16456
16460
  handleFeesCall() {
16457
16461
  return [this.contract.populate("handle_fees", [])];
16458
16462
  }
16459
- async getFeeHistory(timePeriod = "24h") {
16463
+ async getFeeHistory(timePeriod = "24h", range) {
16460
16464
  const { data } = await apollo_client_default.query({
16461
16465
  query: gql2`
16462
16466
  query ContractFeeEarnings(
16463
16467
  $timeframe: String!
16464
16468
  $contract: String!
16469
+ $startTimestamp: Float
16470
+ $endTimestamp: Float
16465
16471
  ) {
16466
- contractFeeEarnings(timeframe: $timeframe, contract: $contract) {
16472
+ contractFeeEarnings(
16473
+ timeframe: $timeframe
16474
+ contract: $contract
16475
+ startTimestamp: $startTimestamp
16476
+ endTimestamp: $endTimestamp
16477
+ ) {
16467
16478
  contract
16468
16479
  dailyEarnings {
16469
16480
  date
@@ -16476,7 +16487,9 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
16476
16487
  `,
16477
16488
  variables: {
16478
16489
  timeframe: timePeriod,
16479
- contract: this.address.address
16490
+ contract: this.address.address,
16491
+ startTimestamp: range?.startTimestamp,
16492
+ endTimestamp: range?.endTimestamp
16480
16493
  },
16481
16494
  fetchPolicy: "no-cache"
16482
16495
  });
@@ -16648,7 +16661,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
16648
16661
  let bal = await this.balanceOf(user, blockIdentifier);
16649
16662
  const assets = await this.contract.call(
16650
16663
  "convert_to_assets",
16651
- [uint2564.bnToUint256(bal.toWei())],
16664
+ [uint2565.bnToUint256(bal.toWei())],
16652
16665
  {
16653
16666
  blockIdentifier
16654
16667
  }
@@ -16794,7 +16807,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
16794
16807
  return this.metadata.additionalInfo.truePrice;
16795
16808
  } else if (this.lstContract) {
16796
16809
  const result = await this.lstContract.call("convert_to_assets", [
16797
- uint2564.bnToUint256(BigInt(1e18).toString())
16810
+ uint2565.bnToUint256(BigInt(1e18).toString())
16798
16811
  ]);
16799
16812
  const truePrice = Number(BigInt(result.toString()) * BigInt(1e9) / BigInt(1e18)) / 1e9;
16800
16813
  return truePrice;
@@ -17295,7 +17308,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
17295
17308
  logger.error(`Rebalance failed after ${MAX_SAME_ERROR_COUNT} same errors`);
17296
17309
  throw new Error(`Rebalance failed after ${MAX_SAME_ERROR_COUNT} same errors`);
17297
17310
  }
17298
- const fromAmount = uint2564.uint256ToBN(swapInfo.token_from_amount);
17311
+ const fromAmount = uint2565.uint256ToBN(swapInfo.token_from_amount);
17299
17312
  const fromTokenInfo = await Global.getTokenInfoFromAddr(ContractAddr.from(swapInfo.token_from_address));
17300
17313
  logger.verbose(
17301
17314
  `Selling ${fromAmount.toString()} of token ${swapInfo.token_from_address}`
@@ -17324,7 +17337,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
17324
17337
  logger.error("Convergence failed: nextAmount <= lowerLimit");
17325
17338
  throw err;
17326
17339
  }
17327
- newSwapInfo.token_from_amount = uint2564.bnToUint256(nextAmount);
17340
+ newSwapInfo.token_from_amount = uint2565.bnToUint256(nextAmount);
17328
17341
  } else {
17329
17342
  logger.verbose("Increasing swap amount - deficit token0");
17330
17343
  let nextAmount = (fromAmount + upperLimit) / 2n;
@@ -17336,7 +17349,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
17336
17349
  logger.error("Convergence failed: nextAmount >= upperLimit");
17337
17350
  throw err;
17338
17351
  }
17339
- newSwapInfo.token_from_amount = uint2564.bnToUint256(nextAmount);
17352
+ newSwapInfo.token_from_amount = uint2565.bnToUint256(nextAmount);
17340
17353
  }
17341
17354
  } else if (err.message.includes("invalid token1 amount") || err.message.includes("invalid token1 balance")) {
17342
17355
  if (isSellTokenToken0) {
@@ -17347,7 +17360,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
17347
17360
  logger.error("Convergence failed: nextAmount <= lowerLimit");
17348
17361
  throw err;
17349
17362
  }
17350
- newSwapInfo.token_from_amount = uint2564.bnToUint256(nextAmount);
17363
+ newSwapInfo.token_from_amount = uint2565.bnToUint256(nextAmount);
17351
17364
  } else {
17352
17365
  logger.verbose("Increasing swap amount - deficit token1");
17353
17366
  let nextAmount = (fromAmount + upperLimit) / 2n;
@@ -17359,7 +17372,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
17359
17372
  logger.error("Convergence failed: nextAmount >= upperLimit");
17360
17373
  throw err;
17361
17374
  }
17362
- newSwapInfo.token_from_amount = uint2564.bnToUint256(nextAmount);
17375
+ newSwapInfo.token_from_amount = uint2565.bnToUint256(nextAmount);
17363
17376
  }
17364
17377
  } else if (err.message.includes("Residual tokens")) {
17365
17378
  logger.error("Residual tokens");
@@ -17389,7 +17402,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
17389
17402
  logger.error("Unexpected error:", err);
17390
17403
  throw err;
17391
17404
  }
17392
- newSwapInfo.token_to_min_amount = uint2564.bnToUint256("0");
17405
+ newSwapInfo.token_to_min_amount = uint2565.bnToUint256("0");
17393
17406
  return this.rebalanceIter(
17394
17407
  newSwapInfo,
17395
17408
  acc,
@@ -17440,15 +17453,15 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
17440
17453
  const result = await this.ekuboMathContract.call(
17441
17454
  "liquidity_delta_to_amount_delta",
17442
17455
  [
17443
- uint2564.bnToUint256(currentPrice.sqrtRatio),
17456
+ uint2565.bnToUint256(currentPrice.sqrtRatio),
17444
17457
  {
17445
17458
  mag: liquidity.toWei(),
17446
17459
  sign: 0
17447
17460
  },
17448
- uint2564.bnToUint256(
17461
+ uint2565.bnToUint256(
17449
17462
  _EkuboCLVault.priceToSqrtRatio(lowerPrice).toString()
17450
17463
  ),
17451
- uint2564.bnToUint256(
17464
+ uint2565.bnToUint256(
17452
17465
  _EkuboCLVault.priceToSqrtRatio(upperPrice).toString()
17453
17466
  )
17454
17467
  ],
@@ -17551,7 +17564,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
17551
17564
  const claimTokenInfo = await Global.getTokenInfoFromAddr(claim.token);
17552
17565
  const harvestEstimateCall = async (baseSwapInfo2) => {
17553
17566
  let baseSwapAmount = Web3Number.fromWei(
17554
- uint2564.uint256ToBN(baseSwapInfo2.token_from_amount).toString(),
17567
+ uint2565.uint256ToBN(baseSwapInfo2.token_from_amount).toString(),
17555
17568
  claimTokenInfo.decimals
17556
17569
  ).minimum(
17557
17570
  postFeeAmount.toFixed(claimTokenInfo.decimals)
@@ -17559,7 +17572,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
17559
17572
  if (baseSwapAmount.lt(1e-4)) {
17560
17573
  baseSwapAmount = new Web3Number(0, claimTokenInfo.decimals);
17561
17574
  }
17562
- baseSwapInfo2.token_from_amount = uint2564.bnToUint256(baseSwapAmount.toWei());
17575
+ baseSwapInfo2.token_from_amount = uint2565.bnToUint256(baseSwapAmount.toWei());
17563
17576
  const isToken0ClaimToken2 = claim.token.eq(poolKey.token0);
17564
17577
  logger.verbose(
17565
17578
  `${_EkuboCLVault.name}: harvest => isToken0ClaimToken: ${isToken0ClaimToken2}, baseSwapAmount: ${baseSwapAmount}`
@@ -17569,7 +17582,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
17569
17582
  `${_EkuboCLVault.name}: harvest => remainingAmount: ${remainingAmount}`
17570
17583
  );
17571
17584
  let dummySwapInfo = AvnuWrapper.buildZeroSwap(claim.token, this.address.address, claim.token);
17572
- dummySwapInfo.token_from_amount = uint2564.bnToUint256(remainingAmount.toWei());
17585
+ dummySwapInfo.token_from_amount = uint2565.bnToUint256(remainingAmount.toWei());
17573
17586
  logger.verbose(
17574
17587
  `${_EkuboCLVault.name}: harvest => dummySwapInfo: ${JSON.stringify(
17575
17588
  dummySwapInfo
@@ -17596,7 +17609,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
17596
17609
  };
17597
17610
  const isToken0ClaimToken = claim.token.eq(poolKey.token0);
17598
17611
  let baseSwapInfo = AvnuWrapper.buildZeroSwap(claim.token, this.address.address, isToken0ClaimToken ? token1Info.address : token0Info.address);
17599
- baseSwapInfo.token_from_amount = uint2564.bnToUint256(postFeeAmount.toWei());
17612
+ baseSwapInfo.token_from_amount = uint2565.bnToUint256(postFeeAmount.toWei());
17600
17613
  if (postFeeAmount.greaterThan(0) && !isToken0ClaimToken) {
17601
17614
  const avnuWrapper = new AvnuWrapper();
17602
17615
  const quote = await avnuWrapper.getQuotes(
@@ -18396,7 +18409,7 @@ EkuboCLVaultStrategies.forEach((s) => {
18396
18409
  });
18397
18410
 
18398
18411
  // src/strategies/sensei.ts
18399
- import { Contract as Contract9, num as num8, uint256 as uint2566 } from "starknet";
18412
+ import { Contract as Contract9, num as num8, uint256 as uint2567 } from "starknet";
18400
18413
 
18401
18414
  // src/data/sensei.abi.json
18402
18415
  var sensei_abi_default = [
@@ -20160,7 +20173,7 @@ var sensei_abi_default = [
20160
20173
  ];
20161
20174
 
20162
20175
  // src/strategies/universal-adapters/vesu-adapter.ts
20163
- import { CairoCustomEnum as CairoCustomEnum2, Contract as Contract8, hash as hash2, num as num7, RpcProvider as RpcProvider5, shortString as shortString2, uint256 as uint2565 } from "starknet";
20176
+ import { CairoCustomEnum as CairoCustomEnum2, Contract as Contract8, hash as hash2, num as num7, RpcProvider as RpcProvider5, shortString as shortString2, uint256 as uint2566 } from "starknet";
20164
20177
 
20165
20178
  // src/strategies/universal-adapters/adapter-utils.ts
20166
20179
  var SIMPLE_SANITIZER = ContractAddr.from("0x5a2e3ceb3da368b983a8717898427ab7b6daf04014b70f321e777f9aad940b4");
@@ -27400,7 +27413,7 @@ function getVesuMultiplyParams(isIncrease, params) {
27400
27413
  tick_spacing: route.pool_key.tick_spacing,
27401
27414
  extension: BigInt(num7.hexToDecimalString(route.pool_key.extension))
27402
27415
  },
27403
- sqrt_ratio_limit: uint2565.bnToUint256(route.sqrt_ratio_limit.toWei()),
27416
+ sqrt_ratio_limit: uint2566.bnToUint256(route.sqrt_ratio_limit.toWei()),
27404
27417
  skip_ahead: BigInt(100)
27405
27418
  })),
27406
27419
  token_amount: {
@@ -27418,7 +27431,7 @@ function getVesuMultiplyParams(isIncrease, params) {
27418
27431
  tick_spacing: route.pool_key.tick_spacing,
27419
27432
  extension: BigInt(num7.hexToDecimalString(route.pool_key.extension))
27420
27433
  },
27421
- sqrt_ratio_limit: uint2565.bnToUint256(route.sqrt_ratio_limit.toWei()),
27434
+ sqrt_ratio_limit: uint2566.bnToUint256(route.sqrt_ratio_limit.toWei()),
27422
27435
  skip_ahead: BigInt(100)
27423
27436
  })),
27424
27437
  token_amount: {
@@ -27448,7 +27461,7 @@ function getVesuMultiplyParams(isIncrease, params) {
27448
27461
  tick_spacing: route.pool_key.tick_spacing,
27449
27462
  extension: ContractAddr.from(route.pool_key.extension).toBigInt()
27450
27463
  },
27451
- sqrt_ratio_limit: uint2565.bnToUint256(route.sqrt_ratio_limit.toWei()),
27464
+ sqrt_ratio_limit: uint2566.bnToUint256(route.sqrt_ratio_limit.toWei()),
27452
27465
  skip_ahead: BigInt(route.skip_ahead.toWei())
27453
27466
  })),
27454
27467
  token_amount: {
@@ -27467,7 +27480,7 @@ function getVesuMultiplyParams(isIncrease, params) {
27467
27480
  tick_spacing: route.pool_key.tick_spacing,
27468
27481
  extension: ContractAddr.from(route.pool_key.extension).toBigInt()
27469
27482
  },
27470
- sqrt_ratio_limit: uint2565.bnToUint256(route.sqrt_ratio_limit.toWei()),
27483
+ sqrt_ratio_limit: uint2566.bnToUint256(route.sqrt_ratio_limit.toWei()),
27471
27484
  skip_ahead: BigInt(route.skip_ahead.toWei())
27472
27485
  })),
27473
27486
  token_amount: {
@@ -27485,7 +27498,25 @@ var VesuPools = {
27485
27498
  Genesis: ContractAddr.from("0x4dc4f0ca6ea4961e4c8373265bfd5317678f4fe374d76f3fd7135f57763bf28"),
27486
27499
  Re7xSTRK: ContractAddr.from("0x052fb52363939c3aa848f8f4ac28f0a51379f8d1b971d8444de25fbd77d8f161"),
27487
27500
  Re7xBTC: ContractAddr.from("0x3a8416bf20d036df5b1cf3447630a2e1cb04685f6b0c3a70ed7fb1473548ecf"),
27488
- Prime: ContractAddr.from("0x451fe483d5921a2919ddd81d0de6696669bccdacd859f72a4fba7656b97c3b5")
27501
+ Prime: ContractAddr.from("0x451fe483d5921a2919ddd81d0de6696669bccdacd859f72a4fba7656b97c3b5"),
27502
+ Re7STRK: ContractAddr.from("0x01fcdacc1d8184eca7b472b5acbaf1500cec9d5683ca95fede8128b46c8f9cc2")
27503
+ };
27504
+ var VesuPoolMetadata = {
27505
+ [VesuPools.Genesis.address]: {
27506
+ name: "Genesis"
27507
+ },
27508
+ [VesuPools.Re7xSTRK.address]: {
27509
+ name: "Re7 xSTRK"
27510
+ },
27511
+ [VesuPools.Re7xBTC.address]: {
27512
+ name: "Re7 xBTC"
27513
+ },
27514
+ [VesuPools.Prime.address]: {
27515
+ name: "Prime"
27516
+ },
27517
+ [VesuPools.Re7STRK.address]: {
27518
+ name: "Re7 STRK"
27519
+ }
27489
27520
  };
27490
27521
  var extensionMap = {};
27491
27522
  extensionMap[VesuPools.Re7xSTRK.address] = ContractAddr.from("0x04e06e04b8d624d039aa1c3ca8e0aa9e21dc1ccba1d88d0d650837159e0ee054");
@@ -27533,7 +27564,7 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
27533
27564
  amount_type: this.formatAmountTypeEnum(params.collateralAmount.amount_type),
27534
27565
  denomination: this.formatAmountDenominationEnum(params.collateralAmount.denomination),
27535
27566
  value: {
27536
- abs: uint2565.bnToUint256(params.collateralAmount.value.abs.toWei()),
27567
+ abs: uint2566.bnToUint256(params.collateralAmount.value.abs.toWei()),
27537
27568
  is_negative: params.collateralAmount.value.abs.isZero() ? false : params.collateralAmount.value.is_negative
27538
27569
  }
27539
27570
  };
@@ -27542,7 +27573,7 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
27542
27573
  amount_type: this.formatAmountTypeEnum(params.debtAmount.amount_type),
27543
27574
  denomination: this.formatAmountDenominationEnum(params.debtAmount.denomination),
27544
27575
  value: {
27545
- abs: uint2565.bnToUint256(params.debtAmount.value.abs.toWei()),
27576
+ abs: uint2566.bnToUint256(params.debtAmount.value.abs.toWei()),
27546
27577
  is_negative: params.debtAmount.value.abs.isZero() ? false : params.debtAmount.value.is_negative
27547
27578
  }
27548
27579
  };
@@ -27628,15 +27659,15 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
27628
27659
  }
27629
27660
  };
27630
27661
  };
27631
- this.getVesuModifyDelegationAdapter = (id) => {
27662
+ this.getVesuModifyDelegationAdapter = (id, delegatee) => {
27632
27663
  return () => {
27633
27664
  const { addr: VESU_SINGLETON2, isV2 } = getVesuSingletonAddress(this.config.poolId);
27634
27665
  const packedArguments = isV2 ? [
27635
- toBigInt(this.VESU_MULTIPLY.toString())
27666
+ toBigInt(delegatee.toString())
27636
27667
  // v2
27637
27668
  ] : [
27638
27669
  this.config.poolId.toBigInt(),
27639
- toBigInt(this.VESU_MULTIPLY_V1.toString())
27670
+ toBigInt(delegatee.toString())
27640
27671
  // v1
27641
27672
  ];
27642
27673
  const output = this.constructSimpleLeafData({
@@ -27645,29 +27676,31 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
27645
27676
  method: "modify_delegation",
27646
27677
  packedArguments
27647
27678
  }, isV2 ? SIMPLE_SANITIZER_V2 : SIMPLE_SANITIZER_VESU_V1_DELEGATIONS);
27648
- return { leaf: output, callConstructor: this.getVesuModifyDelegationCall.bind(this) };
27679
+ return { leaf: output, callConstructor: this.getVesuModifyDelegationCall(delegatee).bind(this) };
27649
27680
  };
27650
27681
  };
27651
- this.getVesuModifyDelegationCall = (params) => {
27652
- const VESU_SINGLETON2 = getVesuSingletonAddress(this.config.poolId).addr;
27653
- const { contract, isV2 } = this.getVesuSingletonContract(getMainnetConfig(), this.config.poolId);
27654
- const call = contract.populate("modify_delegation", isV2 ? {
27655
- delegatee: this.VESU_MULTIPLY.toBigInt(),
27656
- delegation: params.delegation
27657
- } : {
27658
- pool_id: this.config.poolId.toBigInt(),
27659
- delegatee: this.VESU_MULTIPLY_V1.toBigInt(),
27660
- delegation: params.delegation
27661
- });
27662
- return {
27663
- sanitizer: isV2 ? SIMPLE_SANITIZER_V2 : SIMPLE_SANITIZER_VESU_V1_DELEGATIONS,
27664
- call: {
27665
- contractAddress: VESU_SINGLETON2,
27666
- selector: hash2.getSelectorFromName("modify_delegation"),
27667
- calldata: [
27668
- ...call.calldata
27669
- ]
27670
- }
27682
+ this.getVesuModifyDelegationCall = (delegatee) => {
27683
+ return (params) => {
27684
+ const VESU_SINGLETON2 = getVesuSingletonAddress(this.config.poolId).addr;
27685
+ const { contract, isV2 } = this.getVesuSingletonContract(getMainnetConfig(), this.config.poolId);
27686
+ const call = contract.populate("modify_delegation", isV2 ? {
27687
+ delegatee: delegatee.toBigInt(),
27688
+ delegation: params.delegation
27689
+ } : {
27690
+ pool_id: this.config.poolId.toBigInt(),
27691
+ delegatee: delegatee.toBigInt(),
27692
+ delegation: params.delegation
27693
+ });
27694
+ return {
27695
+ sanitizer: isV2 ? SIMPLE_SANITIZER_V2 : SIMPLE_SANITIZER_VESU_V1_DELEGATIONS,
27696
+ call: {
27697
+ contractAddress: VESU_SINGLETON2,
27698
+ selector: hash2.getSelectorFromName("modify_delegation"),
27699
+ calldata: [
27700
+ ...call.calldata
27701
+ ]
27702
+ }
27703
+ };
27671
27704
  };
27672
27705
  };
27673
27706
  this.getDefispringRewardsAdapter = (id) => {
@@ -27870,12 +27903,12 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
27870
27903
  amount: collateralAmount,
27871
27904
  token: this.config.collateral,
27872
27905
  usdValue: collateralAmount.multipliedBy(token1Price.price).toNumber(),
27873
- remarks: "Collateral"
27906
+ remarks: `Collateral - ${VesuPoolMetadata[this.config.poolId.address].name} pool`
27874
27907
  }, {
27875
27908
  amount: debtAmount,
27876
27909
  token: this.config.debt,
27877
27910
  usdValue: debtAmount.multipliedBy(token2Price.price).toNumber(),
27878
- remarks: "Debt"
27911
+ remarks: `Debt - ${VesuPoolMetadata[this.config.poolId.address].name} pool`
27879
27912
  }];
27880
27913
  this.setCache(CACHE_KEY, value, 6e4);
27881
27914
  return value;
@@ -28075,7 +28108,7 @@ var SenseiVault = class _SenseiVault extends BaseStrategy {
28075
28108
  }
28076
28109
  );
28077
28110
  const amount = Web3Number.fromWei(
28078
- uint2566.uint256ToBN(result[1].estimated_size).toString(),
28111
+ uint2567.uint256ToBN(result[1].estimated_size).toString(),
28079
28112
  this.metadata.depositTokens[0].decimals
28080
28113
  );
28081
28114
  const blockNumber = typeof blockIdentifier === "number" || typeof blockIdentifier === "bigint" ? Number(blockIdentifier) : void 0;
@@ -28125,10 +28158,10 @@ var SenseiVault = class _SenseiVault extends BaseStrategy {
28125
28158
  });
28126
28159
  const call1 = mainTokenContract.populate("approve", [
28127
28160
  this.address.address,
28128
- uint2566.bnToUint256(amountInfo.amount.toWei())
28161
+ uint2567.bnToUint256(amountInfo.amount.toWei())
28129
28162
  ]);
28130
28163
  const call2 = this.contract.populate("deposit", [
28131
- uint2566.bnToUint256(amountInfo.amount.toWei()),
28164
+ uint2567.bnToUint256(amountInfo.amount.toWei()),
28132
28165
  receiver.address
28133
28166
  ]);
28134
28167
  const calls = [call1, call2];
@@ -28136,7 +28169,7 @@ var SenseiVault = class _SenseiVault extends BaseStrategy {
28136
28169
  }
28137
28170
  async withdrawCall(amountInfo, receiver, owner) {
28138
28171
  const call = this.contract.populate("withdraw", [
28139
- uint2566.bnToUint256(amountInfo.amount.toWei()),
28172
+ uint2567.bnToUint256(amountInfo.amount.toWei()),
28140
28173
  receiver.address,
28141
28174
  300
28142
28175
  // 3% max slippage
@@ -28456,7 +28489,7 @@ var SenseiStrategies = [
28456
28489
  ];
28457
28490
 
28458
28491
  // src/strategies/universal-adapters/common-adapter.ts
28459
- import { hash as hash3, num as num9, uint256 as uint2567 } from "starknet";
28492
+ import { hash as hash3, num as num9, uint256 as uint2568 } from "starknet";
28460
28493
  var CommonAdapter = class extends BaseAdapter {
28461
28494
  constructor(config) {
28462
28495
  super();
@@ -28481,7 +28514,7 @@ var CommonAdapter = class extends BaseAdapter {
28481
28514
  return { leaf, callConstructor: this.getFlashloanCall.bind(this) };
28482
28515
  }
28483
28516
  getFlashloanCall(params) {
28484
- const uint256Amount = uint2567.bnToUint256(params.amount.toWei());
28517
+ const uint256Amount = uint2568.bnToUint256(params.amount.toWei());
28485
28518
  return {
28486
28519
  sanitizer: SIMPLE_SANITIZER,
28487
28520
  call: {
@@ -28520,7 +28553,7 @@ var CommonAdapter = class extends BaseAdapter {
28520
28553
  }
28521
28554
  getApproveCall(token, spender) {
28522
28555
  return (params) => {
28523
- const uint256Amount = uint2567.bnToUint256(params.amount.toWei());
28556
+ const uint256Amount = uint2568.bnToUint256(params.amount.toWei());
28524
28557
  return {
28525
28558
  sanitizer: SIMPLE_SANITIZER,
28526
28559
  call: {
@@ -28551,7 +28584,7 @@ var CommonAdapter = class extends BaseAdapter {
28551
28584
  }
28552
28585
  getBringLiquidityCall() {
28553
28586
  return (params) => {
28554
- const uint256Amount = uint2567.bnToUint256(params.amount.toWei());
28587
+ const uint256Amount = uint2568.bnToUint256(params.amount.toWei());
28555
28588
  return {
28556
28589
  sanitizer: SIMPLE_SANITIZER,
28557
28590
  call: {
@@ -28630,7 +28663,7 @@ var CommonAdapter = class extends BaseAdapter {
28630
28663
  };
28631
28664
 
28632
28665
  // src/strategies/universal-strategy.tsx
28633
- import { CallData, Contract as Contract10, num as num10, uint256 as uint2568 } from "starknet";
28666
+ import { CallData, Contract as Contract10, num as num10, uint256 as uint2569 } from "starknet";
28634
28667
 
28635
28668
  // src/data/universal-vault.abi.json
28636
28669
  var universal_vault_abi_default = [
@@ -30918,10 +30951,10 @@ var UniversalStrategy = class _UniversalStrategy extends BaseStrategy {
30918
30951
  });
30919
30952
  const call1 = assetContract.populate("approve", [
30920
30953
  this.address.address,
30921
- uint2568.bnToUint256(amountInfo.amount.toWei())
30954
+ uint2569.bnToUint256(amountInfo.amount.toWei())
30922
30955
  ]);
30923
30956
  const call2 = this.contract.populate("deposit", [
30924
- uint2568.bnToUint256(amountInfo.amount.toWei()),
30957
+ uint2569.bnToUint256(amountInfo.amount.toWei()),
30925
30958
  receiver.address
30926
30959
  ]);
30927
30960
  return [call1, call2];
@@ -30931,9 +30964,9 @@ var UniversalStrategy = class _UniversalStrategy extends BaseStrategy {
30931
30964
  amountInfo.tokenInfo.address.eq(this.asset().address),
30932
30965
  "Withdraw token mismatch"
30933
30966
  );
30934
- const shares = await this.contract.call("convert_to_shares", [uint2568.bnToUint256(amountInfo.amount.toWei())]);
30967
+ const shares = await this.contract.call("convert_to_shares", [uint2569.bnToUint256(amountInfo.amount.toWei())]);
30935
30968
  const call = this.contract.populate("request_redeem", [
30936
- uint2568.bnToUint256(shares.toString()),
30969
+ uint2569.bnToUint256(shares.toString()),
30937
30970
  receiver.address,
30938
30971
  owner.address
30939
30972
  ]);
@@ -30943,7 +30976,7 @@ var UniversalStrategy = class _UniversalStrategy extends BaseStrategy {
30943
30976
  const shares = await this.contract.call("balanceOf", [user.address], { blockIdentifier });
30944
30977
  const assets = await this.contract.call(
30945
30978
  "convert_to_assets",
30946
- [uint2568.bnToUint256(shares)],
30979
+ [uint2569.bnToUint256(shares)],
30947
30980
  { blockIdentifier }
30948
30981
  );
30949
30982
  const amount = Web3Number.fromWei(
@@ -31944,7 +31977,7 @@ var UniversalStrategies = [
31944
31977
  ];
31945
31978
 
31946
31979
  // src/strategies/universal-lst-muliplier-strategy.tsx
31947
- import { Contract as Contract11, uint256 as uint2569 } from "starknet";
31980
+ import { Contract as Contract11, uint256 as uint25610 } from "starknet";
31948
31981
 
31949
31982
  // src/utils/health-factor-math.ts
31950
31983
  var HealthFactorMath = class {
@@ -32011,20 +32044,19 @@ var UniversalLstMultiplierStrategy = class _UniversalLstMultiplierStrategy exten
32011
32044
  // todo support lending assets of underlying as well (like if xSTRK looping is not viable, simply supply STRK)
32012
32045
  getVesuAdapters() {
32013
32046
  const adapters = [];
32014
- for (const poolId of [this.metadata.additionalInfo.defaultPoolId, ...this.metadata.additionalInfo.altSupportedPoolIds]) {
32015
- const baseAdapter = this.getVesuSameTokenAdapter(poolId);
32016
- for (const asset of this.metadata.additionalInfo.borrowable_assets) {
32017
- const vesuAdapter1 = new VesuAdapter({
32018
- poolId: baseAdapter.config.poolId,
32019
- collateral: this.asset(),
32020
- debt: asset,
32021
- vaultAllocator: this.metadata.additionalInfo.vaultAllocator,
32022
- id: ""
32023
- });
32024
- vesuAdapter1.pricer = this.pricer;
32025
- vesuAdapter1.networkConfig = this.config;
32026
- adapters.push(vesuAdapter1);
32027
- }
32047
+ for (const borrowableInfo of this.metadata.additionalInfo.borrowable_assets) {
32048
+ const asset = borrowableInfo.token;
32049
+ const poolId = borrowableInfo.poolId;
32050
+ const vesuAdapter1 = new VesuAdapter({
32051
+ poolId,
32052
+ collateral: this.asset(),
32053
+ debt: asset,
32054
+ vaultAllocator: this.metadata.additionalInfo.vaultAllocator,
32055
+ id: ""
32056
+ });
32057
+ vesuAdapter1.pricer = this.pricer;
32058
+ vesuAdapter1.networkConfig = this.config;
32059
+ adapters.push(vesuAdapter1);
32028
32060
  }
32029
32061
  return adapters;
32030
32062
  }
@@ -32483,8 +32515,8 @@ var UniversalLstMultiplierStrategy = class _UniversalLstMultiplierStrategy exten
32483
32515
  address: lstTokenInfo.address.address,
32484
32516
  providerOrAccount: this.config.provider
32485
32517
  });
32486
- const price = await lstABI.call("convert_to_assets", [uint2569.bnToUint256(new Web3Number(1, lstTokenInfo.decimals).toWei())]);
32487
- const exchangeRate = Number(uint2569.uint256ToBN(price).toString()) / Math.pow(10, lstTokenInfo.decimals);
32518
+ const price = await lstABI.call("convert_to_assets", [uint25610.bnToUint256(new Web3Number(1, lstTokenInfo.decimals).toWei())]);
32519
+ const exchangeRate = Number(uint25610.uint256ToBN(price).toString()) / Math.pow(10, lstTokenInfo.decimals);
32488
32520
  logger.verbose(`${this.getTag()}:: LST Exchange Rate: ${exchangeRate}`);
32489
32521
  return exchangeRate;
32490
32522
  }
@@ -32650,19 +32682,21 @@ function addVesuLeaves(poolId, lstSymbol, underlyingSymbol, vaultSettings, commo
32650
32682
  id: getVesuLegId("vesu_leg1" /* VESU_LEG1 */, underlyingToken.symbol, poolId.toString()),
32651
32683
  adapter: vesuAdapterLST
32652
32684
  }]);
32653
- const { isV2, addr: _ } = getVesuSingletonAddress(poolId);
32685
+ const { isV2, addr: poolAddr } = getVesuSingletonAddress(poolId);
32654
32686
  const VESU_MULTIPLY = isV2 ? vesuAdapterLST.VESU_MULTIPLY : vesuAdapterLST.VESU_MULTIPLY_V1;
32655
32687
  const leafIdApprove = getVesuGenericLegId(poolId.toString(), "multiple_approve" /* MULTIPLE_APPROVE */);
32656
32688
  vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, VESU_MULTIPLY, leafIdApprove).bind(commonAdapter));
32657
32689
  const leafIdDelegationOn = getVesuGenericLegId(poolId.toString(), "switch_delegation_on" /* SWITCH_DELEGATION_ON */);
32658
- vaultSettings.leafAdapters.push(vesuAdapterLST.getVesuModifyDelegationAdapter(leafIdDelegationOn).bind(vesuAdapterLST));
32690
+ vaultSettings.leafAdapters.push(vesuAdapterLST.getVesuModifyDelegationAdapter(leafIdDelegationOn, VESU_MULTIPLY).bind(vesuAdapterLST));
32659
32691
  const leafIdDelegationOff = getVesuGenericLegId(poolId.toString(), "switch_delegation_off" /* SWITCH_DELEGATION_OFF */);
32660
- vaultSettings.leafAdapters.push(vesuAdapterLST.getVesuModifyDelegationAdapter(leafIdDelegationOff).bind(vesuAdapterLST));
32692
+ vaultSettings.leafAdapters.push(vesuAdapterLST.getVesuModifyDelegationAdapter(leafIdDelegationOff, VESU_MULTIPLY).bind(vesuAdapterLST));
32661
32693
  const multiplID = getVesuLegId("multiply_vesu" /* MULTIPLY_VESU */, underlyingToken.symbol, poolId.toString());
32662
32694
  vaultSettings.leafAdapters.push(vesuAdapterLST.getMultiplyAdapter(multiplID).bind(vesuAdapterLST));
32695
+ vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, poolAddr, "approve_token1" /* APPROVE_TOKEN1 */).bind(commonAdapter));
32696
+ vaultSettings.leafAdapters.push(vesuAdapterLST.getModifyPosition.bind(vesuAdapterLST));
32663
32697
  return vesuAdapterLST;
32664
32698
  }
32665
- function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, defaultPoolId, altSupportedPoolIds = []) {
32699
+ function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, defaultPoolId) {
32666
32700
  vaultSettings.leafAdapters = [];
32667
32701
  const pool1 = vaultSettings.defaultPoolId;
32668
32702
  if (!pool1.eq(defaultPoolId)) {
@@ -32681,10 +32715,11 @@ function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, defaultP
32681
32715
  id: "common_adapter" /* COMMON */,
32682
32716
  adapter: commonAdapter
32683
32717
  }]);
32684
- const vesuAdapterLST = addVesuLeaves(defaultPoolId, lstSymbol, underlyingSymbol, vaultSettings, commonAdapter);
32685
- altSupportedPoolIds.map((poolId) => addVesuLeaves(poolId, lstSymbol, underlyingSymbol, vaultSettings, commonAdapter));
32718
+ vaultSettings.borrowable_assets.map((borrowableAsset) => addVesuLeaves(borrowableAsset.poolId, lstSymbol, underlyingSymbol, vaultSettings, commonAdapter));
32686
32719
  vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, AVNU_EXCHANGE, "avnu_mul_approve_withdr" /* AVNU_MULTIPLY_APPROVE_WITHDRAW */).bind(commonAdapter));
32687
- for (let borrowableAsset of vaultSettings.borrowable_assets) {
32720
+ const uniqueBorrowableAssets = [...new Set(vaultSettings.borrowable_assets.map((borrowableAsset) => borrowableAsset.token.symbol))];
32721
+ for (let borrowableAssetSymbol of uniqueBorrowableAssets) {
32722
+ const borrowableAsset = Global.getDefaultTokens().find((token) => token.symbol === borrowableAssetSymbol);
32688
32723
  const debtAsset = borrowableAsset;
32689
32724
  const approve_debt_token_id = getAvnuManageIDs("avnu_mul_approve_dep" /* AVNU_MULTIPLY_APPROVE_DEPOSIT */, debtAsset.symbol);
32690
32725
  const swap_debt_token_id = getAvnuManageIDs("avnu_mul_swap_dep" /* AVNU_MULTIPLY_SWAP_DEPOSIT */, debtAsset.symbol);
@@ -32692,23 +32727,9 @@ function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, defaultP
32692
32727
  vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(debtAsset.address, AVNU_EXCHANGE, approve_debt_token_id).bind(commonAdapter));
32693
32728
  vaultSettings.leafAdapters.push(commonAdapter.getAvnuAdapter(debtAsset.address, lstToken.address, swap_debt_token_id, false).bind(commonAdapter));
32694
32729
  vaultSettings.leafAdapters.push(commonAdapter.getAvnuAdapter(lstToken.address, debtAsset.address, swap_lst_token_id, false).bind(commonAdapter));
32695
- const vesuAdapter = new VesuAdapter({
32696
- poolId: pool1,
32697
- collateral: lstToken,
32698
- debt: debtAsset,
32699
- vaultAllocator: vaultSettings.vaultAllocator,
32700
- id: getVesuLegId("vesu_leg1" /* VESU_LEG1 */, debtAsset.symbol, pool1.toString())
32701
- });
32702
- const { isV2, addr: poolAddr } = getVesuSingletonAddress(pool1);
32703
- vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, poolAddr, "approve_token1" /* APPROVE_TOKEN1 */).bind(commonAdapter));
32704
- vaultSettings.leafAdapters.push(vesuAdapter.getModifyPosition.bind(vesuAdapter));
32705
- if (borrowableAsset.address.eq(underlyingToken.address)) {
32706
- continue;
32707
- }
32708
32730
  }
32709
32731
  vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, vaultSettings.vaultAddress, "approve_bring_liquidity" /* APPROVE_BRING_LIQUIDITY */).bind(commonAdapter));
32710
32732
  vaultSettings.leafAdapters.push(commonAdapter.getBringLiquidityAdapter("bring_liquidity" /* BRING_LIQUIDITY */).bind(commonAdapter));
32711
- vaultSettings.leafAdapters.push(vesuAdapterLST.getDefispringRewardsAdapter("defispring_rewards" /* DEFISPRING_REWARDS */).bind(vesuAdapterLST));
32712
32733
  const STRKToken = Global.getDefaultTokens().find((token) => token.symbol === "STRK");
32713
32734
  vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(STRKToken.address, AVNU_EXCHANGE, "approve_swap_token1" /* APPROVE_SWAP_TOKEN1 */).bind(commonAdapter));
32714
32735
  vaultSettings.leafAdapters.push(commonAdapter.getAvnuAdapter(STRKToken.address, lstToken.address, "avnu_swap_rewards" /* AVNU_SWAP_REWARDS */, false).bind(commonAdapter));
@@ -32767,7 +32788,7 @@ var _riskFactor4 = [
32767
32788
  { type: "Technical Risk" /* TECHNICAL_RISK */, value: 1 /* STABLE_INFRASTRUCTURE */, weight: 25, reason: "Liquidation can only happen if vault is left un-monitored for weeks, which is highly unlikely. We actively monitor all services on a daily basis." },
32768
32789
  { type: "Depeg Risk" /* DEPEG_RISK */, value: 2 /* GENERALLY_STABLE */, weight: 25, reason: "Generally stable pegged assets" }
32769
32790
  ];
32770
- var borrowableAssets = [
32791
+ var btcBorrowableAssets = [
32771
32792
  "WBTC",
32772
32793
  "tBTC",
32773
32794
  "LBTC",
@@ -32783,10 +32804,14 @@ var hyperxSTRK = {
32783
32804
  adapters: [],
32784
32805
  targetHealthFactor: 1.1,
32785
32806
  minHealthFactor: 1.05,
32786
- borrowable_assets: Global.getDefaultTokens().filter((token) => token.symbol === "STRK"),
32807
+ borrowable_assets: [
32808
+ ...Global.getDefaultTokens().filter((token) => token.symbol === "STRK").map((token) => ({ token, poolId: VesuPools.Re7xSTRK })),
32809
+ ...Global.getDefaultTokens().filter((token) => token.symbol === "STRK").map((token) => ({ token, poolId: VesuPools.Prime })),
32810
+ ...Global.getDefaultTokens().filter((token) => token.symbol === "STRK").map((token) => ({ token, poolId: VesuPools.Re7STRK }))
32811
+ // v2, new alt for Re7xSTRK
32812
+ ],
32787
32813
  underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "STRK"),
32788
- defaultPoolId: VesuPools.Re7xSTRK,
32789
- altSupportedPoolIds: [VesuPools.Prime]
32814
+ defaultPoolId: VesuPools.Re7xSTRK
32790
32815
  };
32791
32816
  var hyperxWBTC = {
32792
32817
  vaultAddress: ContractAddr.from("0x2da9d0f96a46b453f55604313785dc866424240b1c6811d13bef594343db818"),
@@ -32798,10 +32823,14 @@ var hyperxWBTC = {
32798
32823
  adapters: [],
32799
32824
  targetHealthFactor: 1.1,
32800
32825
  minHealthFactor: 1.05,
32801
- borrowable_assets: borrowableAssets.map((asset) => Global.getDefaultTokens().find((token) => token.symbol === asset)),
32826
+ borrowable_assets: [
32827
+ // allow all BTC flavours borrowing on Re7xBTC pool
32828
+ ...btcBorrowableAssets.map((asset) => Global.getDefaultTokens().find((token) => token.symbol === asset)).map((token) => ({ token, poolId: VesuPools.Re7xBTC })),
32829
+ // allow only WBTC borrowing on Prime pool
32830
+ ...Global.getDefaultTokens().filter((token) => token.symbol === "WBTC").map((token) => ({ token, poolId: VesuPools.Prime }))
32831
+ ],
32802
32832
  underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "WBTC"),
32803
32833
  defaultPoolId: VesuPools.Re7xBTC,
32804
- altSupportedPoolIds: [VesuPools.Prime],
32805
32834
  redemptionRouter: ContractAddr.from("0x6ea649f402898f69baf775c1afdd08522c071c640b9c4460192070ec2b96417")
32806
32835
  };
32807
32836
  var hyperxtBTC = {
@@ -32814,10 +32843,11 @@ var hyperxtBTC = {
32814
32843
  adapters: [],
32815
32844
  targetHealthFactor: 1.1,
32816
32845
  minHealthFactor: 1.05,
32817
- borrowable_assets: Global.getDefaultTokens().filter((token) => token.symbol === "tBTC" || token.symbol === "WBTC"),
32846
+ borrowable_assets: [
32847
+ ...Global.getDefaultTokens().filter((token) => token.symbol === "tBTC" || token.symbol === "WBTC").map((token) => ({ token, poolId: VesuPools.Re7xBTC }))
32848
+ ],
32818
32849
  underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "tBTC"),
32819
32850
  defaultPoolId: VesuPools.Re7xBTC,
32820
- altSupportedPoolIds: [],
32821
32851
  redemptionRouter: ContractAddr.from("0x3de9c409d1e357e25778fb7a3e2e2393666956846a5c2caa607296fa8e76b5d")
32822
32852
  };
32823
32853
  var hyperxsBTC = {
@@ -32830,10 +32860,11 @@ var hyperxsBTC = {
32830
32860
  adapters: [],
32831
32861
  targetHealthFactor: 1.1,
32832
32862
  minHealthFactor: 1.05,
32833
- borrowable_assets: Global.getDefaultTokens().filter((token) => token.symbol === "solvBTC"),
32863
+ borrowable_assets: [
32864
+ ...Global.getDefaultTokens().filter((token) => token.symbol === "solvBTC").map((token) => ({ token, poolId: VesuPools.Re7xBTC }))
32865
+ ],
32834
32866
  underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "solvBTC"),
32835
- defaultPoolId: VesuPools.Re7xBTC,
32836
- altSupportedPoolIds: []
32867
+ defaultPoolId: VesuPools.Re7xBTC
32837
32868
  };
32838
32869
  var hyperxLBTC = {
32839
32870
  vaultAddress: ContractAddr.from("0x64cf24d4883fe569926419a0569ab34497c6956a1a308fa883257f7486d7030"),
@@ -32845,10 +32876,11 @@ var hyperxLBTC = {
32845
32876
  adapters: [],
32846
32877
  targetHealthFactor: 1.1,
32847
32878
  minHealthFactor: 1.05,
32848
- borrowable_assets: Global.getDefaultTokens().filter((token) => token.symbol === "LBTC"),
32879
+ borrowable_assets: [
32880
+ ...Global.getDefaultTokens().filter((token) => token.symbol === "LBTC").map((token) => ({ token, poolId: VesuPools.Re7xBTC }))
32881
+ ],
32849
32882
  underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "LBTC"),
32850
- defaultPoolId: VesuPools.Re7xBTC,
32851
- altSupportedPoolIds: []
32883
+ defaultPoolId: VesuPools.Re7xBTC
32852
32884
  };
32853
32885
  function getInvestmentSteps(lstSymbol, underlyingSymbol) {
32854
32886
  return [
@@ -32944,12 +32976,12 @@ var HYPER_LST_REDEMPTION_INFO = {
32944
32976
  tab: "withdraw"
32945
32977
  }]
32946
32978
  };
32947
- function getStrategySettings(lstSymbol, underlyingSymbol, addresses, isPreview = false) {
32979
+ function getStrategySettings(lstSymbol, underlyingSymbol, settings, isPreview = false) {
32948
32980
  return {
32949
32981
  id: `hyper_${lstSymbol.toLowerCase()}`,
32950
32982
  name: `Hyper ${lstSymbol}`,
32951
32983
  description: getDescription2(lstSymbol, underlyingSymbol),
32952
- address: addresses.vaultAddress,
32984
+ address: settings.vaultAddress,
32953
32985
  launchBlock: 0,
32954
32986
  type: "Other",
32955
32987
  vaultType: {
@@ -32964,7 +32996,7 @@ function getStrategySettings(lstSymbol, underlyingSymbol, addresses, isPreview =
32964
32996
  additionalInfo: getLooperSettings2(
32965
32997
  lstSymbol,
32966
32998
  underlyingSymbol,
32967
- addresses,
32999
+ settings,
32968
33000
  lstSymbol === "xSTRK" ? VesuPools.Re7xSTRK : VesuPools.Re7xBTC
32969
33001
  ),
32970
33002
  risk: {
@@ -32982,7 +33014,7 @@ function getStrategySettings(lstSymbol, underlyingSymbol, addresses, isPreview =
32982
33014
  logo: "https://assets.troves.fi/integrations/unwraplabs/white.png"
32983
33015
  },
32984
33016
  settings: createHyperLSTSettings(lstSymbol, underlyingSymbol),
32985
- contractDetails: getContractDetails(addresses),
33017
+ contractDetails: getContractDetails(settings),
32986
33018
  faqs: getFAQs2(lstSymbol, underlyingSymbol),
32987
33019
  investmentSteps: getInvestmentSteps(lstSymbol, underlyingSymbol),
32988
33020
  isPreview,
@@ -33277,6 +33309,7 @@ export {
33277
33309
  VesuAdapter,
33278
33310
  VesuAmountDenomination,
33279
33311
  VesuAmountType,
33312
+ VesuPoolMetadata,
33280
33313
  VesuPools,
33281
33314
  VesuRebalance,
33282
33315
  VesuRebalanceStrategies,