@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.
package/dist/index.js CHANGED
@@ -92,6 +92,7 @@ __export(index_exports, {
92
92
  VesuAdapter: () => VesuAdapter,
93
93
  VesuAmountDenomination: () => VesuAmountDenomination,
94
94
  VesuAmountType: () => VesuAmountType,
95
+ VesuPoolMetadata: () => VesuPoolMetadata,
95
96
  VesuPools: () => VesuPools,
96
97
  VesuRebalance: () => VesuRebalance,
97
98
  VesuRebalanceStrategies: () => VesuRebalanceStrategies,
@@ -142,6 +143,7 @@ var import_util = __toESM(require("util"));
142
143
 
143
144
  // src/dataTypes/_bignumber.ts
144
145
  var import_bignumber = __toESM(require("bignumber.js"));
146
+ var import_starknet = require("starknet");
145
147
  var _Web3Number = class extends import_bignumber.default {
146
148
  constructor(value, decimals) {
147
149
  super(value);
@@ -216,6 +218,9 @@ var _Web3Number = class extends import_bignumber.default {
216
218
  sign
217
219
  };
218
220
  }
221
+ toUint256() {
222
+ return import_starknet.uint256.bnToUint256(this.toWei());
223
+ }
219
224
  };
220
225
  import_bignumber.default.config({ DECIMAL_PLACES: 18, ROUNDING_MODE: import_bignumber.default.ROUND_DOWN });
221
226
  _Web3Number.config({ DECIMAL_PLACES: 18, ROUNDING_MODE: import_bignumber.default.ROUND_DOWN });
@@ -238,7 +243,7 @@ var Web3Number = class _Web3Number2 extends _Web3Number {
238
243
  };
239
244
 
240
245
  // src/dataTypes/address.ts
241
- var import_starknet = require("starknet");
246
+ var import_starknet2 = require("starknet");
242
247
  var ContractAddr = class _ContractAddr {
243
248
  constructor(address) {
244
249
  this.address = _ContractAddr.standardise(address);
@@ -257,7 +262,7 @@ var ContractAddr = class _ContractAddr {
257
262
  if (!address) {
258
263
  _a = "0";
259
264
  }
260
- const a = import_starknet.num.getHexString(import_starknet.num.getDecimalString(_a.toString()));
265
+ const a = import_starknet2.num.getHexString(import_starknet2.num.getDecimalString(_a.toString()));
261
266
  return a;
262
267
  }
263
268
  static eqString(a, b) {
@@ -267,7 +272,7 @@ var ContractAddr = class _ContractAddr {
267
272
  return this.address;
268
273
  }
269
274
  toBigInt() {
270
- return import_starknet.num.toBigInt(this.address);
275
+ return import_starknet2.num.toBigInt(this.address);
271
276
  }
272
277
  };
273
278
 
@@ -699,7 +704,7 @@ var PricerBase = class {
699
704
  };
700
705
 
701
706
  // src/modules/avnu.ts
702
- var import_starknet4 = require("starknet");
707
+ var import_starknet5 = require("starknet");
703
708
  var import_avnu_sdk = require("@avnu/avnu-sdk");
704
709
 
705
710
  // src/utils/oz-merkle.ts
@@ -707,8 +712,8 @@ var import_bytes = require("@ericnordelo/strk-merkle-tree/dist/bytes");
707
712
  var import_core = require("@ericnordelo/strk-merkle-tree/dist/core");
708
713
  var import_hashes = require("@ericnordelo/strk-merkle-tree/dist/hashes");
709
714
  var import_merkletree = require("@ericnordelo/strk-merkle-tree/dist/merkletree");
710
- var import_starknet2 = require("starknet");
711
- var import_starknet3 = require("@scure/starknet");
715
+ var import_starknet3 = require("starknet");
716
+ var import_starknet4 = require("@scure/starknet");
712
717
  function hash_leaf(leaf) {
713
718
  if (leaf.data.length < 1) {
714
719
  throw new Error("Invalid leaf data");
@@ -718,10 +723,10 @@ function hash_leaf(leaf) {
718
723
  for (let i = 1; i < leaf.data.length; i++) {
719
724
  value = pedersen_hash(value, leaf.data[i]);
720
725
  }
721
- return `0x${import_starknet2.num.toHexString(value).replace(/^0x/, "").padStart(64, "0")}`;
726
+ return `0x${import_starknet3.num.toHexString(value).replace(/^0x/, "").padStart(64, "0")}`;
722
727
  }
723
728
  function pedersen_hash(a, b) {
724
- return BigInt((0, import_starknet3.pedersen)(a, b).toString());
729
+ return BigInt((0, import_starknet4.pedersen)(a, b).toString());
725
730
  }
726
731
  var StandardMerkleTree = class _StandardMerkleTree extends import_merkletree.MerkleTreeImpl {
727
732
  constructor(tree, values, leafEncoding) {
@@ -844,10 +849,10 @@ var AvnuWrapper = class {
844
849
  const _minAmount = minAmount || (quote.buyAmount * 95n / 100n).toString();
845
850
  const swapInfo = {
846
851
  token_from_address: quote.sellTokenAddress,
847
- token_from_amount: import_starknet4.uint256.bnToUint256(quote.sellAmount),
852
+ token_from_amount: import_starknet5.uint256.bnToUint256(quote.sellAmount),
848
853
  token_to_address: quote.buyTokenAddress,
849
- token_to_amount: import_starknet4.uint256.bnToUint256(_minAmount),
850
- token_to_min_amount: import_starknet4.uint256.bnToUint256(_minAmount),
854
+ token_to_amount: import_starknet5.uint256.bnToUint256(_minAmount),
855
+ token_to_min_amount: import_starknet5.uint256.bnToUint256(_minAmount),
851
856
  beneficiary: taker,
852
857
  integrator_fee_amount_bps: integratorFeeBps,
853
858
  integrator_fee_recipient: integratorFeeRecipient,
@@ -858,10 +863,10 @@ var AvnuWrapper = class {
858
863
  static buildZeroSwap(tokenToSell, beneficiary, tokenToBuy = tokenToSell) {
859
864
  return {
860
865
  token_from_address: tokenToSell.address,
861
- token_from_amount: import_starknet4.uint256.bnToUint256(0),
866
+ token_from_amount: import_starknet5.uint256.bnToUint256(0),
862
867
  token_to_address: tokenToBuy.address,
863
- token_to_amount: import_starknet4.uint256.bnToUint256(0),
864
- token_to_min_amount: import_starknet4.uint256.bnToUint256(0),
868
+ token_to_amount: import_starknet5.uint256.bnToUint256(0),
869
+ token_to_min_amount: import_starknet5.uint256.bnToUint256(0),
865
870
  beneficiary,
866
871
  integrator_fee_amount_bps: 0,
867
872
  integrator_fee_recipient: beneficiary,
@@ -1079,7 +1084,7 @@ var Pricer = class extends PricerBase {
1079
1084
  };
1080
1085
 
1081
1086
  // src/modules/pragma.ts
1082
- var import_starknet5 = require("starknet");
1087
+ var import_starknet6 = require("starknet");
1083
1088
 
1084
1089
  // src/data/pragma.abi.json
1085
1090
  var pragma_abi_default = [
@@ -1184,7 +1189,7 @@ var Pragma = class extends PricerBase {
1184
1189
  constructor(config, tokens2) {
1185
1190
  super(config, tokens2);
1186
1191
  this.contractAddr = "0x023fb3afbff2c0e3399f896dcf7400acf1a161941cfb386e34a123f228c62832";
1187
- this.contract = new import_starknet5.Contract({
1192
+ this.contract = new import_starknet6.Contract({
1188
1193
  abi: pragma_abi_default,
1189
1194
  address: this.contractAddr,
1190
1195
  providerOrAccount: config.provider
@@ -1406,7 +1411,7 @@ var apolloClient = new import_client.ApolloClient({
1406
1411
  var import_client2 = require("@apollo/client");
1407
1412
 
1408
1413
  // src/modules/ekubo-pricer.ts
1409
- var import_starknet6 = require("starknet");
1414
+ var import_starknet7 = require("starknet");
1410
1415
 
1411
1416
  // src/data/ekubo-price-fethcer.abi.json
1412
1417
  var ekubo_price_fethcer_abi_default = [
@@ -1682,7 +1687,7 @@ var EkuboPricer = class extends PricerBase {
1682
1687
  this.EKUBO_PRICE_FETCHER_ADDRESS = "0x04946fb4ad5237d97bbb1256eba2080c4fe1de156da6a7f83e3b4823bb6d7da1";
1683
1688
  this.USDC_ADDRESS = "0x053c91253bc9682c04929ca02ed00b3e423f6710d2ee7e0d5ebb06f3ecf368a8";
1684
1689
  this.USDC_DECIMALS = 6;
1685
- this.contract = new import_starknet6.Contract({
1690
+ this.contract = new import_starknet7.Contract({
1686
1691
  abi: ekubo_price_fethcer_abi_default,
1687
1692
  address: this.EKUBO_PRICE_FETCHER_ADDRESS,
1688
1693
  providerOrAccount: config.provider
@@ -1893,7 +1898,7 @@ var PricerFromApi = class extends PricerBase {
1893
1898
  };
1894
1899
 
1895
1900
  // src/modules/erc20.ts
1896
- var import_starknet7 = require("starknet");
1901
+ var import_starknet8 = require("starknet");
1897
1902
 
1898
1903
  // src/data/erc20.abi.json
1899
1904
  var erc20_abi_default = [
@@ -3026,7 +3031,7 @@ var ERC20 = class {
3026
3031
  }
3027
3032
  contract(addr) {
3028
3033
  const _addr = typeof addr === "string" ? addr : addr.address;
3029
- return new import_starknet7.Contract({ abi: erc20_abi_default, address: _addr, providerOrAccount: this.config.provider });
3034
+ return new import_starknet8.Contract({ abi: erc20_abi_default, address: _addr, providerOrAccount: this.config.provider });
3030
3035
  }
3031
3036
  async balanceOf(token, address, tokenDecimals) {
3032
3037
  const contract = this.contract(token);
@@ -3105,7 +3110,7 @@ var EkuboQuoter = class {
3105
3110
  };
3106
3111
 
3107
3112
  // src/interfaces/common.tsx
3108
- var import_starknet8 = require("starknet");
3113
+ var import_starknet9 = require("starknet");
3109
3114
  var import_jsx_runtime = require("react/jsx-runtime");
3110
3115
  var RiskType = /* @__PURE__ */ ((RiskType2) => {
3111
3116
  RiskType2["MARKET_RISK"] = "Market Risk";
@@ -3174,9 +3179,9 @@ var StrategyLiveStatus = /* @__PURE__ */ ((StrategyLiveStatus2) => {
3174
3179
  StrategyLiveStatus2["HOT"] = "Hot & New \u{1F525}";
3175
3180
  return StrategyLiveStatus2;
3176
3181
  })(StrategyLiveStatus || {});
3177
- function getMainnetConfig(rpcUrl = "https://starknet-mainnet.public.blastapi.io", blockIdentifier = import_starknet8.BlockTag.LATEST) {
3182
+ function getMainnetConfig(rpcUrl = "https://starknet-mainnet.public.blastapi.io", blockIdentifier = import_starknet9.BlockTag.LATEST) {
3178
3183
  return {
3179
- provider: new import_starknet8.RpcProvider({
3184
+ provider: new import_starknet9.RpcProvider({
3180
3185
  nodeUrl: rpcUrl,
3181
3186
  blockIdentifier
3182
3187
  // specVersion
@@ -3285,7 +3290,7 @@ var Initializable = class {
3285
3290
  };
3286
3291
 
3287
3292
  // src/strategies/autoCompounderStrk.ts
3288
- var import_starknet9 = require("starknet");
3293
+ var import_starknet10 = require("starknet");
3289
3294
  var AutoCompounderSTRK = class {
3290
3295
  constructor(config, pricer) {
3291
3296
  this.addr = ContractAddr.from("0x541681b9ad63dff1b35f79c78d8477f64857de29a27902f7298f7b620838ea");
@@ -3308,7 +3313,7 @@ var AutoCompounderSTRK = class {
3308
3313
  async init() {
3309
3314
  const provider2 = this.config.provider;
3310
3315
  const cls = await provider2.getClassAt(this.addr.address);
3311
- this.contract = new import_starknet9.Contract({ abi: cls.abi, address: this.addr.address, providerOrAccount: provider2 });
3316
+ this.contract = new import_starknet10.Contract({ abi: cls.abi, address: this.addr.address, providerOrAccount: provider2 });
3312
3317
  this.initialized = true;
3313
3318
  }
3314
3319
  async waitForInitilisation() {
@@ -3329,7 +3334,7 @@ var AutoCompounderSTRK = class {
3329
3334
  /** Returns underlying assets of user */
3330
3335
  async balanceOfUnderlying(user) {
3331
3336
  const balanceShares = await this.balanceOf(user);
3332
- const assets = await this.contract.convert_to_assets(import_starknet9.uint256.bnToUint256(balanceShares.toWei()));
3337
+ const assets = await this.contract.convert_to_assets(import_starknet10.uint256.bnToUint256(balanceShares.toWei()));
3333
3338
  return Web3Number.fromWei(assets.toString(), this.metadata.decimals);
3334
3339
  }
3335
3340
  /** Returns usd value of assets */
@@ -3345,7 +3350,7 @@ var AutoCompounderSTRK = class {
3345
3350
  };
3346
3351
 
3347
3352
  // src/strategies/vesu-rebalance.tsx
3348
- var import_starknet11 = require("starknet");
3353
+ var import_starknet12 = require("starknet");
3349
3354
 
3350
3355
  // src/data/vesu-rebalance.abi.json
3351
3356
  var vesu_rebalance_abi_default = [
@@ -4887,7 +4892,7 @@ async function getAPIUsingHeadlessBrowser(url) {
4887
4892
  }
4888
4893
 
4889
4894
  // src/modules/harvests.ts
4890
- var import_starknet10 = require("starknet");
4895
+ var import_starknet11 = require("starknet");
4891
4896
  var Harvests = class _Harvests {
4892
4897
  constructor(config) {
4893
4898
  this.config = config;
@@ -4907,7 +4912,7 @@ var Harvests = class _Harvests {
4907
4912
  }
4908
4913
  const cls = await this.config.provider.getClassAt(sortedRewards[0].rewardsContract.address);
4909
4914
  for (const reward of sortedRewards) {
4910
- const contract = new import_starknet10.Contract({ abi: cls.abi, address: reward.rewardsContract.address, providerOrAccount: this.config.provider });
4915
+ const contract = new import_starknet11.Contract({ abi: cls.abi, address: reward.rewardsContract.address, providerOrAccount: this.config.provider });
4911
4916
  const isClaimed = await contract.call("is_claimed", [reward.claim.id]);
4912
4917
  logger.verbose(`${_Harvests.name}: isClaimed: ${isClaimed}, claim id: ${reward.claim.id}, address: ${reward.rewardsContract.address}`);
4913
4918
  if (isClaimed) {
@@ -4961,7 +4966,7 @@ var VesuHarvests = class _VesuHarvests extends Harvests {
4961
4966
  const _data = await result.json();
4962
4967
  const rewardsContract = VESU_REWARDS_CONTRACT;
4963
4968
  const cls = await this.config.provider.getClassAt(rewardsContract.address);
4964
- const contract = new import_starknet10.Contract({ abi: cls.abi, address: rewardsContract.address, providerOrAccount: this.config.provider });
4969
+ const contract = new import_starknet11.Contract({ abi: cls.abi, address: rewardsContract.address, providerOrAccount: this.config.provider });
4965
4970
  const _claimed_amount = await contract.call("amount_already_claimed", [addr.address]);
4966
4971
  const claimed_amount = Web3Number.fromWei(_claimed_amount.toString(), 18);
4967
4972
  logger.verbose(`${_VesuHarvests.name}: claimed_amount: ${claimed_amount.toString()}`);
@@ -4979,7 +4984,7 @@ var VesuHarvests = class _VesuHarvests extends Harvests {
4979
4984
  endDate: /* @__PURE__ */ new Date(0),
4980
4985
  claim: {
4981
4986
  id: 0,
4982
- amount: Web3Number.fromWei(import_starknet10.num.getDecimalString(data.amount), 18),
4987
+ amount: Web3Number.fromWei(import_starknet11.num.getDecimalString(data.amount), 18),
4983
4988
  claimee: addr
4984
4989
  },
4985
4990
  actualReward,
@@ -10472,7 +10477,7 @@ var VesuRebalance = class _VesuRebalance extends BaseStrategy {
10472
10477
  );
10473
10478
  this.metadata = metadata;
10474
10479
  this.address = metadata.address;
10475
- this.contract = new import_starknet11.Contract({
10480
+ this.contract = new import_starknet12.Contract({
10476
10481
  abi: vesu_rebalance_abi_default,
10477
10482
  address: this.address.address,
10478
10483
  providerOrAccount: this.config.provider
@@ -10489,17 +10494,17 @@ var VesuRebalance = class _VesuRebalance extends BaseStrategy {
10489
10494
  amountInfo.tokenInfo.address.eq(this.asset().address),
10490
10495
  "Deposit token mismatch"
10491
10496
  );
10492
- const assetContract = new import_starknet11.Contract({
10497
+ const assetContract = new import_starknet12.Contract({
10493
10498
  abi: vesu_rebalance_abi_default,
10494
10499
  address: this.asset().address.address,
10495
10500
  providerOrAccount: this.config.provider
10496
10501
  });
10497
10502
  const call1 = assetContract.populate("approve", [
10498
10503
  this.address.address,
10499
- import_starknet11.uint256.bnToUint256(amountInfo.amount.toWei())
10504
+ import_starknet12.uint256.bnToUint256(amountInfo.amount.toWei())
10500
10505
  ]);
10501
10506
  const call2 = this.contract.populate("deposit", [
10502
- import_starknet11.uint256.bnToUint256(amountInfo.amount.toWei()),
10507
+ import_starknet12.uint256.bnToUint256(amountInfo.amount.toWei()),
10503
10508
  receiver.address
10504
10509
  ]);
10505
10510
  return [call1, call2];
@@ -10514,7 +10519,7 @@ var VesuRebalance = class _VesuRebalance extends BaseStrategy {
10514
10519
  async withdrawCall(amountInfo, receiver, owner) {
10515
10520
  return [
10516
10521
  this.contract.populate("withdraw", [
10517
- import_starknet11.uint256.bnToUint256(amountInfo.amount.toWei()),
10522
+ import_starknet12.uint256.bnToUint256(amountInfo.amount.toWei()),
10518
10523
  receiver.address,
10519
10524
  owner.address
10520
10525
  ])
@@ -10538,7 +10543,7 @@ var VesuRebalance = class _VesuRebalance extends BaseStrategy {
10538
10543
  const shares = await this.contract.call("balanceOf", [user.address], { blockIdentifier });
10539
10544
  const assets = await this.contract.call(
10540
10545
  "convert_to_assets",
10541
- [import_starknet11.uint256.bnToUint256(shares)],
10546
+ [import_starknet12.uint256.bnToUint256(shares)],
10542
10547
  { blockIdentifier }
10543
10548
  );
10544
10549
  const amount = Web3Number.fromWei(
@@ -10664,7 +10669,7 @@ var VesuRebalance = class _VesuRebalance extends BaseStrategy {
10664
10669
  );
10665
10670
  const _pool = pools.find((d) => {
10666
10671
  logger.verbose(
10667
- `pool check: ${ContractAddr.from(d.id).eq(p.pool_id)}, id: ${d.id}, pool_id: ${import_starknet11.num.getDecimalString(
10672
+ `pool check: ${ContractAddr.from(d.id).eq(p.pool_id)}, id: ${d.id}, pool_id: ${import_starknet12.num.getDecimalString(
10668
10673
  p.pool_id.address.toString()
10669
10674
  )}`
10670
10675
  );
@@ -10689,14 +10694,14 @@ var VesuRebalance = class _VesuRebalance extends BaseStrategy {
10689
10694
  `Asset ${this.asset().address.toString()} not found in pool ${p.pool_id.address.toString()}`
10690
10695
  );
10691
10696
  }
10692
- let vTokenContract = new import_starknet11.Contract({
10697
+ let vTokenContract = new import_starknet12.Contract({
10693
10698
  abi: vesu_rebalance_abi_default,
10694
10699
  address: p.v_token.address,
10695
10700
  providerOrAccount: this.config.provider
10696
10701
  });
10697
10702
  const bal = await vTokenContract.balanceOf(this.address.address);
10698
10703
  const assets = await vTokenContract.convert_to_assets(
10699
- import_starknet11.uint256.bnToUint256(bal.toString())
10704
+ import_starknet12.uint256.bnToUint256(bal.toString())
10700
10705
  );
10701
10706
  logger.verbose(`Collateral: ${JSON.stringify(vesuPosition?.collateral)}`);
10702
10707
  logger.verbose(`supplyApy: ${JSON.stringify(assetInfo?.stats.supplyApy)}`);
@@ -10998,11 +11003,11 @@ var VesuRebalance = class _VesuRebalance extends BaseStrategy {
10998
11003
  if (p.changeAmt.eq(0)) return null;
10999
11004
  actions.push({
11000
11005
  pool_id: p.pool_id.address,
11001
- feature: new import_starknet11.CairoCustomEnum(
11006
+ feature: new import_starknet12.CairoCustomEnum(
11002
11007
  p.isDeposit ? { DEPOSIT: {} } : { WITHDRAW: {} }
11003
11008
  ),
11004
11009
  token: this.asset().address.address,
11005
- amount: import_starknet11.uint256.bnToUint256(
11010
+ amount: import_starknet12.uint256.bnToUint256(
11006
11011
  p.changeAmt.multipliedBy(p.isDeposit ? 1 : -1).toWei()
11007
11012
  )
11008
11013
  });
@@ -11061,10 +11066,10 @@ var VesuRebalance = class _VesuRebalance extends BaseStrategy {
11061
11066
  const avnu = new AvnuWrapper();
11062
11067
  let swapInfo = {
11063
11068
  token_from_address: harvest.token.address,
11064
- token_from_amount: import_starknet11.uint256.bnToUint256(harvest.actualReward.toWei()),
11069
+ token_from_amount: import_starknet12.uint256.bnToUint256(harvest.actualReward.toWei()),
11065
11070
  token_to_address: this.asset().address.address,
11066
- token_to_amount: import_starknet11.uint256.bnToUint256(0),
11067
- token_to_min_amount: import_starknet11.uint256.bnToUint256(0),
11071
+ token_to_amount: import_starknet12.uint256.bnToUint256(0),
11072
+ token_to_min_amount: import_starknet12.uint256.bnToUint256(0),
11068
11073
  beneficiary: this.address.address,
11069
11074
  integrator_fee_amount_bps: 0,
11070
11075
  integrator_fee_recipient: this.address.address,
@@ -11333,7 +11338,7 @@ VesuRebalanceStrategies.forEach((s) => {
11333
11338
  });
11334
11339
 
11335
11340
  // src/strategies/ekubo-cl-vault.tsx
11336
- var import_starknet12 = require("starknet");
11341
+ var import_starknet13 = require("starknet");
11337
11342
 
11338
11343
  // src/data/cl-vault.abi.json
11339
11344
  var cl_vault_abi_default = [
@@ -16350,13 +16355,13 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
16350
16355
  );
16351
16356
  this.metadata = metadata;
16352
16357
  this.address = metadata.address;
16353
- this.contract = new import_starknet12.Contract({
16358
+ this.contract = new import_starknet13.Contract({
16354
16359
  abi: cl_vault_abi_default,
16355
16360
  address: this.address.address,
16356
16361
  providerOrAccount: this.config.provider
16357
16362
  });
16358
16363
  if (this.metadata.additionalInfo.lstContract) {
16359
- this.lstContract = new import_starknet12.Contract({
16364
+ this.lstContract = new import_starknet13.Contract({
16360
16365
  abi: erc4626_abi_default,
16361
16366
  address: this.metadata.additionalInfo.lstContract.address,
16362
16367
  providerOrAccount: this.config.provider
@@ -16365,13 +16370,13 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
16365
16370
  this.lstContract = null;
16366
16371
  }
16367
16372
  const EKUBO_POSITION = "0x02e0af29598b407c8716b17f6d2795eca1b471413fa03fb145a5e33722184067";
16368
- this.ekuboPositionsContract = new import_starknet12.Contract({
16373
+ this.ekuboPositionsContract = new import_starknet13.Contract({
16369
16374
  abi: ekubo_positions_abi_default,
16370
16375
  address: EKUBO_POSITION,
16371
16376
  providerOrAccount: this.config.provider
16372
16377
  });
16373
16378
  const EKUBO_MATH = "0x04a72e9e166f6c0e9d800af4dc40f6b6fb4404b735d3f528d9250808b2481995";
16374
- this.ekuboMathContract = new import_starknet12.Contract({
16379
+ this.ekuboMathContract = new import_starknet13.Contract({
16375
16380
  abi: ekubo_math_abi_default,
16376
16381
  address: EKUBO_MATH,
16377
16382
  providerOrAccount: this.config.provider
@@ -16402,7 +16407,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
16402
16407
  const shares = await this.tokensToShares(amountInfo);
16403
16408
  const { amount0, amount1 } = await this.contract.call(
16404
16409
  "convert_to_assets",
16405
- [import_starknet12.uint256.bnToUint256(shares.toWei())]
16410
+ [import_starknet13.uint256.bnToUint256(shares.toWei())]
16406
16411
  );
16407
16412
  return {
16408
16413
  token0: {
@@ -16423,27 +16428,27 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
16423
16428
  }
16424
16429
  async depositCall(amountInfo, receiver) {
16425
16430
  const updateAmountInfo = await this.getMinDepositAmounts(amountInfo);
16426
- const token0Contract = new import_starknet12.Contract({
16431
+ const token0Contract = new import_starknet13.Contract({
16427
16432
  abi: erc4626_abi_default,
16428
16433
  address: amountInfo.token0.tokenInfo.address.address,
16429
16434
  providerOrAccount: this.config.provider
16430
16435
  });
16431
- const token1Contract = new import_starknet12.Contract({
16436
+ const token1Contract = new import_starknet13.Contract({
16432
16437
  abi: erc4626_abi_default,
16433
16438
  address: amountInfo.token1.tokenInfo.address.address,
16434
16439
  providerOrAccount: this.config.provider
16435
16440
  });
16436
16441
  const call1 = token0Contract.populate("approve", [
16437
16442
  this.address.address,
16438
- import_starknet12.uint256.bnToUint256(updateAmountInfo.token0.amount.toWei())
16443
+ import_starknet13.uint256.bnToUint256(updateAmountInfo.token0.amount.toWei())
16439
16444
  ]);
16440
16445
  const call2 = token1Contract.populate("approve", [
16441
16446
  this.address.address,
16442
- import_starknet12.uint256.bnToUint256(updateAmountInfo.token1.amount.toWei())
16447
+ import_starknet13.uint256.bnToUint256(updateAmountInfo.token1.amount.toWei())
16443
16448
  ]);
16444
16449
  const call3 = this.contract.populate("deposit", [
16445
- import_starknet12.uint256.bnToUint256(updateAmountInfo.token0.amount.toWei()),
16446
- import_starknet12.uint256.bnToUint256(updateAmountInfo.token1.amount.toWei()),
16450
+ import_starknet13.uint256.bnToUint256(updateAmountInfo.token0.amount.toWei()),
16451
+ import_starknet13.uint256.bnToUint256(updateAmountInfo.token1.amount.toWei()),
16447
16452
  receiver.address
16448
16453
  ]);
16449
16454
  const calls = [];
@@ -16453,8 +16458,8 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
16453
16458
  }
16454
16459
  async tokensToShares(amountInfo) {
16455
16460
  const shares = await this.contract.call("convert_to_shares", [
16456
- import_starknet12.uint256.bnToUint256(amountInfo.token0.amount.toWei()),
16457
- import_starknet12.uint256.bnToUint256(amountInfo.token1.amount.toWei())
16461
+ import_starknet13.uint256.bnToUint256(amountInfo.token0.amount.toWei()),
16462
+ import_starknet13.uint256.bnToUint256(amountInfo.token1.amount.toWei())
16458
16463
  ]);
16459
16464
  return Web3Number.fromWei(shares.toString(), 18);
16460
16465
  }
@@ -16465,7 +16470,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
16465
16470
  );
16466
16471
  return [
16467
16472
  this.contract.populate("withdraw", [
16468
- import_starknet12.uint256.bnToUint256(shares.toWei()),
16473
+ import_starknet13.uint256.bnToUint256(shares.toWei()),
16469
16474
  receiver.address
16470
16475
  ])
16471
16476
  ];
@@ -16487,14 +16492,21 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
16487
16492
  handleFeesCall() {
16488
16493
  return [this.contract.populate("handle_fees", [])];
16489
16494
  }
16490
- async getFeeHistory(timePeriod = "24h") {
16495
+ async getFeeHistory(timePeriod = "24h", range) {
16491
16496
  const { data } = await apollo_client_default.query({
16492
16497
  query: import_client4.gql`
16493
16498
  query ContractFeeEarnings(
16494
16499
  $timeframe: String!
16495
16500
  $contract: String!
16501
+ $startTimestamp: Float
16502
+ $endTimestamp: Float
16496
16503
  ) {
16497
- contractFeeEarnings(timeframe: $timeframe, contract: $contract) {
16504
+ contractFeeEarnings(
16505
+ timeframe: $timeframe
16506
+ contract: $contract
16507
+ startTimestamp: $startTimestamp
16508
+ endTimestamp: $endTimestamp
16509
+ ) {
16498
16510
  contract
16499
16511
  dailyEarnings {
16500
16512
  date
@@ -16507,7 +16519,9 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
16507
16519
  `,
16508
16520
  variables: {
16509
16521
  timeframe: timePeriod,
16510
- contract: this.address.address
16522
+ contract: this.address.address,
16523
+ startTimestamp: range?.startTimestamp,
16524
+ endTimestamp: range?.endTimestamp
16511
16525
  },
16512
16526
  fetchPolicy: "no-cache"
16513
16527
  });
@@ -16679,7 +16693,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
16679
16693
  let bal = await this.balanceOf(user, blockIdentifier);
16680
16694
  const assets = await this.contract.call(
16681
16695
  "convert_to_assets",
16682
- [import_starknet12.uint256.bnToUint256(bal.toWei())],
16696
+ [import_starknet13.uint256.bnToUint256(bal.toWei())],
16683
16697
  {
16684
16698
  blockIdentifier
16685
16699
  }
@@ -16825,7 +16839,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
16825
16839
  return this.metadata.additionalInfo.truePrice;
16826
16840
  } else if (this.lstContract) {
16827
16841
  const result = await this.lstContract.call("convert_to_assets", [
16828
- import_starknet12.uint256.bnToUint256(BigInt(1e18).toString())
16842
+ import_starknet13.uint256.bnToUint256(BigInt(1e18).toString())
16829
16843
  ]);
16830
16844
  const truePrice = Number(BigInt(result.toString()) * BigInt(1e9) / BigInt(1e18)) / 1e9;
16831
16845
  return truePrice;
@@ -17326,7 +17340,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
17326
17340
  logger.error(`Rebalance failed after ${MAX_SAME_ERROR_COUNT} same errors`);
17327
17341
  throw new Error(`Rebalance failed after ${MAX_SAME_ERROR_COUNT} same errors`);
17328
17342
  }
17329
- const fromAmount = import_starknet12.uint256.uint256ToBN(swapInfo.token_from_amount);
17343
+ const fromAmount = import_starknet13.uint256.uint256ToBN(swapInfo.token_from_amount);
17330
17344
  const fromTokenInfo = await Global.getTokenInfoFromAddr(ContractAddr.from(swapInfo.token_from_address));
17331
17345
  logger.verbose(
17332
17346
  `Selling ${fromAmount.toString()} of token ${swapInfo.token_from_address}`
@@ -17355,7 +17369,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
17355
17369
  logger.error("Convergence failed: nextAmount <= lowerLimit");
17356
17370
  throw err;
17357
17371
  }
17358
- newSwapInfo.token_from_amount = import_starknet12.uint256.bnToUint256(nextAmount);
17372
+ newSwapInfo.token_from_amount = import_starknet13.uint256.bnToUint256(nextAmount);
17359
17373
  } else {
17360
17374
  logger.verbose("Increasing swap amount - deficit token0");
17361
17375
  let nextAmount = (fromAmount + upperLimit) / 2n;
@@ -17367,7 +17381,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
17367
17381
  logger.error("Convergence failed: nextAmount >= upperLimit");
17368
17382
  throw err;
17369
17383
  }
17370
- newSwapInfo.token_from_amount = import_starknet12.uint256.bnToUint256(nextAmount);
17384
+ newSwapInfo.token_from_amount = import_starknet13.uint256.bnToUint256(nextAmount);
17371
17385
  }
17372
17386
  } else if (err.message.includes("invalid token1 amount") || err.message.includes("invalid token1 balance")) {
17373
17387
  if (isSellTokenToken0) {
@@ -17378,7 +17392,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
17378
17392
  logger.error("Convergence failed: nextAmount <= lowerLimit");
17379
17393
  throw err;
17380
17394
  }
17381
- newSwapInfo.token_from_amount = import_starknet12.uint256.bnToUint256(nextAmount);
17395
+ newSwapInfo.token_from_amount = import_starknet13.uint256.bnToUint256(nextAmount);
17382
17396
  } else {
17383
17397
  logger.verbose("Increasing swap amount - deficit token1");
17384
17398
  let nextAmount = (fromAmount + upperLimit) / 2n;
@@ -17390,7 +17404,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
17390
17404
  logger.error("Convergence failed: nextAmount >= upperLimit");
17391
17405
  throw err;
17392
17406
  }
17393
- newSwapInfo.token_from_amount = import_starknet12.uint256.bnToUint256(nextAmount);
17407
+ newSwapInfo.token_from_amount = import_starknet13.uint256.bnToUint256(nextAmount);
17394
17408
  }
17395
17409
  } else if (err.message.includes("Residual tokens")) {
17396
17410
  logger.error("Residual tokens");
@@ -17420,7 +17434,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
17420
17434
  logger.error("Unexpected error:", err);
17421
17435
  throw err;
17422
17436
  }
17423
- newSwapInfo.token_to_min_amount = import_starknet12.uint256.bnToUint256("0");
17437
+ newSwapInfo.token_to_min_amount = import_starknet13.uint256.bnToUint256("0");
17424
17438
  return this.rebalanceIter(
17425
17439
  newSwapInfo,
17426
17440
  acc,
@@ -17471,15 +17485,15 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
17471
17485
  const result = await this.ekuboMathContract.call(
17472
17486
  "liquidity_delta_to_amount_delta",
17473
17487
  [
17474
- import_starknet12.uint256.bnToUint256(currentPrice.sqrtRatio),
17488
+ import_starknet13.uint256.bnToUint256(currentPrice.sqrtRatio),
17475
17489
  {
17476
17490
  mag: liquidity.toWei(),
17477
17491
  sign: 0
17478
17492
  },
17479
- import_starknet12.uint256.bnToUint256(
17493
+ import_starknet13.uint256.bnToUint256(
17480
17494
  _EkuboCLVault.priceToSqrtRatio(lowerPrice).toString()
17481
17495
  ),
17482
- import_starknet12.uint256.bnToUint256(
17496
+ import_starknet13.uint256.bnToUint256(
17483
17497
  _EkuboCLVault.priceToSqrtRatio(upperPrice).toString()
17484
17498
  )
17485
17499
  ],
@@ -17582,7 +17596,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
17582
17596
  const claimTokenInfo = await Global.getTokenInfoFromAddr(claim.token);
17583
17597
  const harvestEstimateCall = async (baseSwapInfo2) => {
17584
17598
  let baseSwapAmount = Web3Number.fromWei(
17585
- import_starknet12.uint256.uint256ToBN(baseSwapInfo2.token_from_amount).toString(),
17599
+ import_starknet13.uint256.uint256ToBN(baseSwapInfo2.token_from_amount).toString(),
17586
17600
  claimTokenInfo.decimals
17587
17601
  ).minimum(
17588
17602
  postFeeAmount.toFixed(claimTokenInfo.decimals)
@@ -17590,7 +17604,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
17590
17604
  if (baseSwapAmount.lt(1e-4)) {
17591
17605
  baseSwapAmount = new Web3Number(0, claimTokenInfo.decimals);
17592
17606
  }
17593
- baseSwapInfo2.token_from_amount = import_starknet12.uint256.bnToUint256(baseSwapAmount.toWei());
17607
+ baseSwapInfo2.token_from_amount = import_starknet13.uint256.bnToUint256(baseSwapAmount.toWei());
17594
17608
  const isToken0ClaimToken2 = claim.token.eq(poolKey.token0);
17595
17609
  logger.verbose(
17596
17610
  `${_EkuboCLVault.name}: harvest => isToken0ClaimToken: ${isToken0ClaimToken2}, baseSwapAmount: ${baseSwapAmount}`
@@ -17600,7 +17614,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
17600
17614
  `${_EkuboCLVault.name}: harvest => remainingAmount: ${remainingAmount}`
17601
17615
  );
17602
17616
  let dummySwapInfo = AvnuWrapper.buildZeroSwap(claim.token, this.address.address, claim.token);
17603
- dummySwapInfo.token_from_amount = import_starknet12.uint256.bnToUint256(remainingAmount.toWei());
17617
+ dummySwapInfo.token_from_amount = import_starknet13.uint256.bnToUint256(remainingAmount.toWei());
17604
17618
  logger.verbose(
17605
17619
  `${_EkuboCLVault.name}: harvest => dummySwapInfo: ${JSON.stringify(
17606
17620
  dummySwapInfo
@@ -17618,7 +17632,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
17618
17632
  amount: claim.claim.amount.toWei(),
17619
17633
  claimee: claim.claim.claimee.address
17620
17634
  },
17621
- claim.proof.map((p) => import_starknet12.num.getDecimalString(p)),
17635
+ claim.proof.map((p) => import_starknet13.num.getDecimalString(p)),
17622
17636
  isToken0ClaimToken2 ? dummySwapInfo : baseSwapInfo2,
17623
17637
  // is token0 claim token, its just dummy swap
17624
17638
  isToken0ClaimToken2 ? baseSwapInfo2 : dummySwapInfo
@@ -17627,7 +17641,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
17627
17641
  };
17628
17642
  const isToken0ClaimToken = claim.token.eq(poolKey.token0);
17629
17643
  let baseSwapInfo = AvnuWrapper.buildZeroSwap(claim.token, this.address.address, isToken0ClaimToken ? token1Info.address : token0Info.address);
17630
- baseSwapInfo.token_from_amount = import_starknet12.uint256.bnToUint256(postFeeAmount.toWei());
17644
+ baseSwapInfo.token_from_amount = import_starknet13.uint256.bnToUint256(postFeeAmount.toWei());
17631
17645
  if (postFeeAmount.greaterThan(0) && !isToken0ClaimToken) {
17632
17646
  const avnuWrapper = new AvnuWrapper();
17633
17647
  const quote = await avnuWrapper.getQuotes(
@@ -17736,7 +17750,7 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
17736
17750
  amount: claim.claim.amount.toWei(),
17737
17751
  claimee: claim.claim.claimee.address
17738
17752
  },
17739
- claim.proof.map((p) => import_starknet12.num.getDecimalString(p)),
17753
+ claim.proof.map((p) => import_starknet13.num.getDecimalString(p)),
17740
17754
  swapInfo1,
17741
17755
  swapInfo2
17742
17756
  ];
@@ -18427,7 +18441,7 @@ EkuboCLVaultStrategies.forEach((s) => {
18427
18441
  });
18428
18442
 
18429
18443
  // src/strategies/sensei.ts
18430
- var import_starknet15 = require("starknet");
18444
+ var import_starknet16 = require("starknet");
18431
18445
 
18432
18446
  // src/data/sensei.abi.json
18433
18447
  var sensei_abi_default = [
@@ -20191,7 +20205,7 @@ var sensei_abi_default = [
20191
20205
  ];
20192
20206
 
20193
20207
  // src/strategies/universal-adapters/vesu-adapter.ts
20194
- var import_starknet14 = require("starknet");
20208
+ var import_starknet15 = require("starknet");
20195
20209
 
20196
20210
  // src/strategies/universal-adapters/adapter-utils.ts
20197
20211
  var SIMPLE_SANITIZER = ContractAddr.from("0x5a2e3ceb3da368b983a8717898427ab7b6daf04014b70f321e777f9aad940b4");
@@ -20213,7 +20227,7 @@ function toBigInt(value) {
20213
20227
  }
20214
20228
 
20215
20229
  // src/strategies/universal-adapters/baseAdapter.ts
20216
- var import_starknet13 = require("starknet");
20230
+ var import_starknet14 = require("starknet");
20217
20231
  var APYType = /* @__PURE__ */ ((APYType2) => {
20218
20232
  APYType2["BASE"] = "base";
20219
20233
  APYType2["REWARD"] = "reward";
@@ -20269,14 +20283,14 @@ var BaseAdapter = class extends CacheClass {
20269
20283
  constructSimpleLeafData(params, sanitizer = SIMPLE_SANITIZER) {
20270
20284
  const { id, target, method, packedArguments } = params;
20271
20285
  return {
20272
- id: BigInt(import_starknet13.num.getDecimalString(import_starknet13.shortString.encodeShortString(id))),
20286
+ id: BigInt(import_starknet14.num.getDecimalString(import_starknet14.shortString.encodeShortString(id))),
20273
20287
  readableId: id,
20274
20288
  data: [
20275
20289
  sanitizer.toBigInt(),
20276
20290
  // sanitizer address
20277
20291
  target.toBigInt(),
20278
20292
  // contract
20279
- toBigInt(import_starknet13.hash.getSelectorFromName(method)),
20293
+ toBigInt(import_starknet14.hash.getSelectorFromName(method)),
20280
20294
  // method name
20281
20295
  BigInt(packedArguments.length),
20282
20296
  ...packedArguments
@@ -27416,7 +27430,7 @@ function getVesuMultiplyParams(isIncrease, params) {
27416
27430
  if (isIncrease) {
27417
27431
  const _params2 = params;
27418
27432
  return {
27419
- action: new import_starknet14.CairoCustomEnum({ IncreaseLever: {
27433
+ action: new import_starknet15.CairoCustomEnum({ IncreaseLever: {
27420
27434
  pool_id: _params2.pool_id.toBigInt(),
27421
27435
  collateral_asset: _params2.collateral_asset.toBigInt(),
27422
27436
  debt_asset: _params2.debt_asset.toBigInt(),
@@ -27429,9 +27443,9 @@ function getVesuMultiplyParams(isIncrease, params) {
27429
27443
  token1: route.pool_key.token1.toBigInt(),
27430
27444
  fee: route.pool_key.fee,
27431
27445
  tick_spacing: route.pool_key.tick_spacing,
27432
- extension: BigInt(import_starknet14.num.hexToDecimalString(route.pool_key.extension))
27446
+ extension: BigInt(import_starknet15.num.hexToDecimalString(route.pool_key.extension))
27433
27447
  },
27434
- sqrt_ratio_limit: import_starknet14.uint256.bnToUint256(route.sqrt_ratio_limit.toWei()),
27448
+ sqrt_ratio_limit: import_starknet15.uint256.bnToUint256(route.sqrt_ratio_limit.toWei()),
27435
27449
  skip_ahead: BigInt(100)
27436
27450
  })),
27437
27451
  token_amount: {
@@ -27447,9 +27461,9 @@ function getVesuMultiplyParams(isIncrease, params) {
27447
27461
  token1: route.pool_key.token1.toBigInt(),
27448
27462
  fee: route.pool_key.fee,
27449
27463
  tick_spacing: route.pool_key.tick_spacing,
27450
- extension: BigInt(import_starknet14.num.hexToDecimalString(route.pool_key.extension))
27464
+ extension: BigInt(import_starknet15.num.hexToDecimalString(route.pool_key.extension))
27451
27465
  },
27452
- sqrt_ratio_limit: import_starknet14.uint256.bnToUint256(route.sqrt_ratio_limit.toWei()),
27466
+ sqrt_ratio_limit: import_starknet15.uint256.bnToUint256(route.sqrt_ratio_limit.toWei()),
27453
27467
  skip_ahead: BigInt(100)
27454
27468
  })),
27455
27469
  token_amount: {
@@ -27463,7 +27477,7 @@ function getVesuMultiplyParams(isIncrease, params) {
27463
27477
  }
27464
27478
  const _params = params;
27465
27479
  return {
27466
- action: new import_starknet14.CairoCustomEnum({ DecreaseLever: {
27480
+ action: new import_starknet15.CairoCustomEnum({ DecreaseLever: {
27467
27481
  pool_id: _params.pool_id.toBigInt(),
27468
27482
  collateral_asset: _params.collateral_asset.toBigInt(),
27469
27483
  debt_asset: _params.debt_asset.toBigInt(),
@@ -27479,7 +27493,7 @@ function getVesuMultiplyParams(isIncrease, params) {
27479
27493
  tick_spacing: route.pool_key.tick_spacing,
27480
27494
  extension: ContractAddr.from(route.pool_key.extension).toBigInt()
27481
27495
  },
27482
- sqrt_ratio_limit: import_starknet14.uint256.bnToUint256(route.sqrt_ratio_limit.toWei()),
27496
+ sqrt_ratio_limit: import_starknet15.uint256.bnToUint256(route.sqrt_ratio_limit.toWei()),
27483
27497
  skip_ahead: BigInt(route.skip_ahead.toWei())
27484
27498
  })),
27485
27499
  token_amount: {
@@ -27498,7 +27512,7 @@ function getVesuMultiplyParams(isIncrease, params) {
27498
27512
  tick_spacing: route.pool_key.tick_spacing,
27499
27513
  extension: ContractAddr.from(route.pool_key.extension).toBigInt()
27500
27514
  },
27501
- sqrt_ratio_limit: import_starknet14.uint256.bnToUint256(route.sqrt_ratio_limit.toWei()),
27515
+ sqrt_ratio_limit: import_starknet15.uint256.bnToUint256(route.sqrt_ratio_limit.toWei()),
27502
27516
  skip_ahead: BigInt(route.skip_ahead.toWei())
27503
27517
  })),
27504
27518
  token_amount: {
@@ -27516,7 +27530,25 @@ var VesuPools = {
27516
27530
  Genesis: ContractAddr.from("0x4dc4f0ca6ea4961e4c8373265bfd5317678f4fe374d76f3fd7135f57763bf28"),
27517
27531
  Re7xSTRK: ContractAddr.from("0x052fb52363939c3aa848f8f4ac28f0a51379f8d1b971d8444de25fbd77d8f161"),
27518
27532
  Re7xBTC: ContractAddr.from("0x3a8416bf20d036df5b1cf3447630a2e1cb04685f6b0c3a70ed7fb1473548ecf"),
27519
- Prime: ContractAddr.from("0x451fe483d5921a2919ddd81d0de6696669bccdacd859f72a4fba7656b97c3b5")
27533
+ Prime: ContractAddr.from("0x451fe483d5921a2919ddd81d0de6696669bccdacd859f72a4fba7656b97c3b5"),
27534
+ Re7STRK: ContractAddr.from("0x01fcdacc1d8184eca7b472b5acbaf1500cec9d5683ca95fede8128b46c8f9cc2")
27535
+ };
27536
+ var VesuPoolMetadata = {
27537
+ [VesuPools.Genesis.address]: {
27538
+ name: "Genesis"
27539
+ },
27540
+ [VesuPools.Re7xSTRK.address]: {
27541
+ name: "Re7 xSTRK"
27542
+ },
27543
+ [VesuPools.Re7xBTC.address]: {
27544
+ name: "Re7 xBTC"
27545
+ },
27546
+ [VesuPools.Prime.address]: {
27547
+ name: "Prime"
27548
+ },
27549
+ [VesuPools.Re7STRK.address]: {
27550
+ name: "Re7 STRK"
27551
+ }
27520
27552
  };
27521
27553
  var extensionMap = {};
27522
27554
  extensionMap[VesuPools.Re7xSTRK.address] = ContractAddr.from("0x04e06e04b8d624d039aa1c3ca8e0aa9e21dc1ccba1d88d0d650837159e0ee054");
@@ -27564,7 +27596,7 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
27564
27596
  amount_type: this.formatAmountTypeEnum(params.collateralAmount.amount_type),
27565
27597
  denomination: this.formatAmountDenominationEnum(params.collateralAmount.denomination),
27566
27598
  value: {
27567
- abs: import_starknet14.uint256.bnToUint256(params.collateralAmount.value.abs.toWei()),
27599
+ abs: import_starknet15.uint256.bnToUint256(params.collateralAmount.value.abs.toWei()),
27568
27600
  is_negative: params.collateralAmount.value.abs.isZero() ? false : params.collateralAmount.value.is_negative
27569
27601
  }
27570
27602
  };
@@ -27573,7 +27605,7 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
27573
27605
  amount_type: this.formatAmountTypeEnum(params.debtAmount.amount_type),
27574
27606
  denomination: this.formatAmountDenominationEnum(params.debtAmount.denomination),
27575
27607
  value: {
27576
- abs: import_starknet14.uint256.bnToUint256(params.debtAmount.value.abs.toWei()),
27608
+ abs: import_starknet15.uint256.bnToUint256(params.debtAmount.value.abs.toWei()),
27577
27609
  is_negative: params.debtAmount.value.abs.isZero() ? false : params.debtAmount.value.is_negative
27578
27610
  }
27579
27611
  };
@@ -27600,7 +27632,7 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
27600
27632
  sanitizer: isV2 ? VESU_V2_MODIFY_POSITION_SANITIZER : SIMPLE_SANITIZER,
27601
27633
  call: {
27602
27634
  contractAddress: ContractAddr.from(contract.address),
27603
- selector: import_starknet14.hash.getSelectorFromName("modify_position"),
27635
+ selector: import_starknet15.hash.getSelectorFromName("modify_position"),
27604
27636
  calldata: [
27605
27637
  ...call.calldata
27606
27638
  ]
@@ -27637,7 +27669,7 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
27637
27669
  }
27638
27670
  const { isV2 } = getVesuSingletonAddress(this.config.poolId);
27639
27671
  const VESU_MULTIPLY = isV2 ? this.VESU_MULTIPLY : this.VESU_MULTIPLY_V1;
27640
- const multiplyContract = new import_starknet14.Contract({ abi: vesu_multiple_abi_default, address: VESU_MULTIPLY.toString(), providerOrAccount: new import_starknet14.RpcProvider({ nodeUrl: "" }) });
27672
+ const multiplyContract = new import_starknet15.Contract({ abi: vesu_multiple_abi_default, address: VESU_MULTIPLY.toString(), providerOrAccount: new import_starknet15.RpcProvider({ nodeUrl: "" }) });
27641
27673
  const call = multiplyContract.populate("modify_lever", {
27642
27674
  modify_lever_params: getVesuMultiplyParams(isIncrease, {
27643
27675
  ...multiplyParams,
@@ -27652,22 +27684,22 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
27652
27684
  sanitizer: SIMPLE_SANITIZER_V2,
27653
27685
  call: {
27654
27686
  contractAddress: VESU_MULTIPLY,
27655
- selector: import_starknet14.hash.getSelectorFromName("modify_lever"),
27687
+ selector: import_starknet15.hash.getSelectorFromName("modify_lever"),
27656
27688
  calldata: [
27657
27689
  ...call.calldata
27658
27690
  ]
27659
27691
  }
27660
27692
  };
27661
27693
  };
27662
- this.getVesuModifyDelegationAdapter = (id) => {
27694
+ this.getVesuModifyDelegationAdapter = (id, delegatee) => {
27663
27695
  return () => {
27664
27696
  const { addr: VESU_SINGLETON2, isV2 } = getVesuSingletonAddress(this.config.poolId);
27665
27697
  const packedArguments = isV2 ? [
27666
- toBigInt(this.VESU_MULTIPLY.toString())
27698
+ toBigInt(delegatee.toString())
27667
27699
  // v2
27668
27700
  ] : [
27669
27701
  this.config.poolId.toBigInt(),
27670
- toBigInt(this.VESU_MULTIPLY_V1.toString())
27702
+ toBigInt(delegatee.toString())
27671
27703
  // v1
27672
27704
  ];
27673
27705
  const output = this.constructSimpleLeafData({
@@ -27676,43 +27708,45 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
27676
27708
  method: "modify_delegation",
27677
27709
  packedArguments
27678
27710
  }, isV2 ? SIMPLE_SANITIZER_V2 : SIMPLE_SANITIZER_VESU_V1_DELEGATIONS);
27679
- return { leaf: output, callConstructor: this.getVesuModifyDelegationCall.bind(this) };
27711
+ return { leaf: output, callConstructor: this.getVesuModifyDelegationCall(delegatee).bind(this) };
27680
27712
  };
27681
27713
  };
27682
- this.getVesuModifyDelegationCall = (params) => {
27683
- const VESU_SINGLETON2 = getVesuSingletonAddress(this.config.poolId).addr;
27684
- const { contract, isV2 } = this.getVesuSingletonContract(getMainnetConfig(), this.config.poolId);
27685
- const call = contract.populate("modify_delegation", isV2 ? {
27686
- delegatee: this.VESU_MULTIPLY.toBigInt(),
27687
- delegation: params.delegation
27688
- } : {
27689
- pool_id: this.config.poolId.toBigInt(),
27690
- delegatee: this.VESU_MULTIPLY_V1.toBigInt(),
27691
- delegation: params.delegation
27692
- });
27693
- return {
27694
- sanitizer: isV2 ? SIMPLE_SANITIZER_V2 : SIMPLE_SANITIZER_VESU_V1_DELEGATIONS,
27695
- call: {
27696
- contractAddress: VESU_SINGLETON2,
27697
- selector: import_starknet14.hash.getSelectorFromName("modify_delegation"),
27698
- calldata: [
27699
- ...call.calldata
27700
- ]
27701
- }
27714
+ this.getVesuModifyDelegationCall = (delegatee) => {
27715
+ return (params) => {
27716
+ const VESU_SINGLETON2 = getVesuSingletonAddress(this.config.poolId).addr;
27717
+ const { contract, isV2 } = this.getVesuSingletonContract(getMainnetConfig(), this.config.poolId);
27718
+ const call = contract.populate("modify_delegation", isV2 ? {
27719
+ delegatee: delegatee.toBigInt(),
27720
+ delegation: params.delegation
27721
+ } : {
27722
+ pool_id: this.config.poolId.toBigInt(),
27723
+ delegatee: delegatee.toBigInt(),
27724
+ delegation: params.delegation
27725
+ });
27726
+ return {
27727
+ sanitizer: isV2 ? SIMPLE_SANITIZER_V2 : SIMPLE_SANITIZER_VESU_V1_DELEGATIONS,
27728
+ call: {
27729
+ contractAddress: VESU_SINGLETON2,
27730
+ selector: import_starknet15.hash.getSelectorFromName("modify_delegation"),
27731
+ calldata: [
27732
+ ...call.calldata
27733
+ ]
27734
+ }
27735
+ };
27702
27736
  };
27703
27737
  };
27704
27738
  this.getDefispringRewardsAdapter = (id) => {
27705
27739
  return () => {
27706
27740
  const packedArguments = [];
27707
27741
  const output = {
27708
- id: BigInt(import_starknet14.num.getDecimalString(import_starknet14.shortString.encodeShortString(id))),
27742
+ id: BigInt(import_starknet15.num.getDecimalString(import_starknet15.shortString.encodeShortString(id))),
27709
27743
  readableId: id,
27710
27744
  data: [
27711
27745
  SIMPLE_SANITIZER.toBigInt(),
27712
27746
  // sanitizer address
27713
27747
  VESU_REWARDS_CONTRACT.toBigInt(),
27714
27748
  // contract
27715
- toBigInt(import_starknet14.hash.getSelectorFromName("claim")),
27749
+ toBigInt(import_starknet15.hash.getSelectorFromName("claim")),
27716
27750
  // method name
27717
27751
  BigInt(packedArguments.length),
27718
27752
  ...packedArguments
@@ -27726,11 +27760,11 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
27726
27760
  sanitizer: SIMPLE_SANITIZER,
27727
27761
  call: {
27728
27762
  contractAddress: VESU_REWARDS_CONTRACT,
27729
- selector: import_starknet14.hash.getSelectorFromName("claim"),
27763
+ selector: import_starknet15.hash.getSelectorFromName("claim"),
27730
27764
  calldata: [
27731
27765
  BigInt(params.amount.toWei()),
27732
27766
  BigInt(params.proofs.length),
27733
- ...params.proofs.map((proof) => BigInt(import_starknet14.num.hexToDecimalString(proof)))
27767
+ ...params.proofs.map((proof) => BigInt(import_starknet15.num.hexToDecimalString(proof)))
27734
27768
  ]
27735
27769
  }
27736
27770
  });
@@ -27760,18 +27794,18 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
27760
27794
  formatAmountTypeEnum(amountType) {
27761
27795
  switch (amountType) {
27762
27796
  case 0 /* Delta */:
27763
- return new import_starknet14.CairoCustomEnum({ Delta: {} });
27797
+ return new import_starknet15.CairoCustomEnum({ Delta: {} });
27764
27798
  case 1 /* Target */:
27765
- return new import_starknet14.CairoCustomEnum({ Target: {} });
27799
+ return new import_starknet15.CairoCustomEnum({ Target: {} });
27766
27800
  }
27767
27801
  throw new Error(`Unknown VesuAmountType: ${amountType}`);
27768
27802
  }
27769
27803
  formatAmountDenominationEnum(denomination) {
27770
27804
  switch (denomination) {
27771
27805
  case 0 /* Native */:
27772
- return new import_starknet14.CairoCustomEnum({ Native: {} });
27806
+ return new import_starknet15.CairoCustomEnum({ Native: {} });
27773
27807
  case 1 /* Assets */:
27774
- return new import_starknet14.CairoCustomEnum({ Assets: {} });
27808
+ return new import_starknet15.CairoCustomEnum({ Assets: {} });
27775
27809
  }
27776
27810
  throw new Error(`Unknown VesuAmountDenomination: ${denomination}`);
27777
27811
  }
@@ -27779,7 +27813,7 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
27779
27813
  const { addr: VESU_SINGLETON2, isV2 } = getVesuSingletonAddress(poolId);
27780
27814
  const ABI = isV2 ? vesu_pool_v2_abi_default : vesu_singleton_abi_default;
27781
27815
  return {
27782
- contract: new import_starknet14.Contract({ abi: ABI, address: VESU_SINGLETON2.address, providerOrAccount: config.provider }),
27816
+ contract: new import_starknet15.Contract({ abi: ABI, address: VESU_SINGLETON2.address, providerOrAccount: config.provider }),
27783
27817
  isV2
27784
27818
  };
27785
27819
  }
@@ -27790,7 +27824,7 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
27790
27824
  if (!extensionAddr) {
27791
27825
  throw new Error("Extension address not found");
27792
27826
  }
27793
- const extensionContract = new import_starknet14.Contract({ abi: vesu_extension_abi_default, address: extensionAddr.address, providerOrAccount: config.provider });
27827
+ const extensionContract = new import_starknet15.Contract({ abi: vesu_extension_abi_default, address: extensionAddr.address, providerOrAccount: config.provider });
27794
27828
  const output2 = await extensionContract.call("debt_caps", [this.config.poolId.address, this.config.collateral.address.address, this.config.debt.address.address]);
27795
27829
  logger.verbose(`${this.config.debt.symbol}::VesuAdapter::getDebtCap debt_cap: ${output2.toString()}`);
27796
27830
  return Web3Number.fromWei(output2.toString(), this.config.debt.decimals);
@@ -27820,7 +27854,7 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
27820
27854
  if (!extensionAddr) {
27821
27855
  throw new Error("Extension address not found");
27822
27856
  }
27823
- interestRateConfigContract = new import_starknet14.Contract({ abi: vesu_extension_abi_default, address: extensionAddr.address, providerOrAccount: config.provider });
27857
+ interestRateConfigContract = new import_starknet15.Contract({ abi: vesu_extension_abi_default, address: extensionAddr.address, providerOrAccount: config.provider });
27824
27858
  }
27825
27859
  const _interestRateConfig = await interestRateConfigContract.call(
27826
27860
  "interest_rate_config",
@@ -27901,12 +27935,12 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
27901
27935
  amount: collateralAmount,
27902
27936
  token: this.config.collateral,
27903
27937
  usdValue: collateralAmount.multipliedBy(token1Price.price).toNumber(),
27904
- remarks: "Collateral"
27938
+ remarks: `Collateral - ${VesuPoolMetadata[this.config.poolId.address].name} pool`
27905
27939
  }, {
27906
27940
  amount: debtAmount,
27907
27941
  token: this.config.debt,
27908
27942
  usdValue: debtAmount.multipliedBy(token2Price.price).toNumber(),
27909
- remarks: "Debt"
27943
+ remarks: `Debt - ${VesuPoolMetadata[this.config.poolId.address].name} pool`
27910
27944
  }];
27911
27945
  this.setCache(CACHE_KEY, value, 6e4);
27912
27946
  return value;
@@ -28193,7 +28227,7 @@ var SenseiVault = class _SenseiVault extends BaseStrategy {
28193
28227
  this.address = metadata.address;
28194
28228
  this.pricer = pricer;
28195
28229
  this.metadata = metadata;
28196
- this.contract = new import_starknet15.Contract({ abi: sensei_abi_default, address: this.address.address, providerOrAccount: this.config.provider });
28230
+ this.contract = new import_starknet16.Contract({ abi: sensei_abi_default, address: this.address.address, providerOrAccount: this.config.provider });
28197
28231
  if (metadata.depositTokens.length === 0) {
28198
28232
  throw new Error("Deposit tokens are not defined in metadata");
28199
28233
  }
@@ -28207,7 +28241,7 @@ var SenseiVault = class _SenseiVault extends BaseStrategy {
28207
28241
  }
28208
28242
  );
28209
28243
  const amount = Web3Number.fromWei(
28210
- import_starknet15.uint256.uint256ToBN(result[1].estimated_size).toString(),
28244
+ import_starknet16.uint256.uint256ToBN(result[1].estimated_size).toString(),
28211
28245
  this.metadata.depositTokens[0].decimals
28212
28246
  );
28213
28247
  const blockNumber = typeof blockIdentifier === "number" || typeof blockIdentifier === "bigint" ? Number(blockIdentifier) : void 0;
@@ -28250,17 +28284,17 @@ var SenseiVault = class _SenseiVault extends BaseStrategy {
28250
28284
  }
28251
28285
  }
28252
28286
  async depositCall(amountInfo, receiver) {
28253
- const mainTokenContract = new import_starknet15.Contract({
28287
+ const mainTokenContract = new import_starknet16.Contract({
28254
28288
  abi: erc20_abi_default,
28255
28289
  address: this.metadata.depositTokens[0].address.address,
28256
28290
  providerOrAccount: this.config.provider
28257
28291
  });
28258
28292
  const call1 = mainTokenContract.populate("approve", [
28259
28293
  this.address.address,
28260
- import_starknet15.uint256.bnToUint256(amountInfo.amount.toWei())
28294
+ import_starknet16.uint256.bnToUint256(amountInfo.amount.toWei())
28261
28295
  ]);
28262
28296
  const call2 = this.contract.populate("deposit", [
28263
- import_starknet15.uint256.bnToUint256(amountInfo.amount.toWei()),
28297
+ import_starknet16.uint256.bnToUint256(amountInfo.amount.toWei()),
28264
28298
  receiver.address
28265
28299
  ]);
28266
28300
  const calls = [call1, call2];
@@ -28268,7 +28302,7 @@ var SenseiVault = class _SenseiVault extends BaseStrategy {
28268
28302
  }
28269
28303
  async withdrawCall(amountInfo, receiver, owner) {
28270
28304
  const call = this.contract.populate("withdraw", [
28271
- import_starknet15.uint256.bnToUint256(amountInfo.amount.toWei()),
28305
+ import_starknet16.uint256.bnToUint256(amountInfo.amount.toWei()),
28272
28306
  receiver.address,
28273
28307
  300
28274
28308
  // 3% max slippage
@@ -28356,7 +28390,7 @@ var SenseiVault = class _SenseiVault extends BaseStrategy {
28356
28390
  const { pools } = await VesuAdapter.getVesuPools();
28357
28391
  const re7PoolId = VesuPools.Re7xSTRK;
28358
28392
  const pool = pools.find(
28359
- (p) => ContractAddr.from(import_starknet15.num.getHexString(p.id)).eq(re7PoolId)
28393
+ (p) => ContractAddr.from(import_starknet16.num.getHexString(p.id)).eq(re7PoolId)
28360
28394
  );
28361
28395
  if (!pool) {
28362
28396
  logger.warn(`${_SenseiVault.name}::netAPY - Re7 xSTRK pool not found`);
@@ -28588,7 +28622,7 @@ var SenseiStrategies = [
28588
28622
  ];
28589
28623
 
28590
28624
  // src/strategies/universal-adapters/common-adapter.ts
28591
- var import_starknet16 = require("starknet");
28625
+ var import_starknet17 = require("starknet");
28592
28626
  var CommonAdapter = class extends BaseAdapter {
28593
28627
  constructor(config) {
28594
28628
  super();
@@ -28613,12 +28647,12 @@ var CommonAdapter = class extends BaseAdapter {
28613
28647
  return { leaf, callConstructor: this.getFlashloanCall.bind(this) };
28614
28648
  }
28615
28649
  getFlashloanCall(params) {
28616
- const uint256Amount = import_starknet16.uint256.bnToUint256(params.amount.toWei());
28650
+ const uint256Amount = import_starknet17.uint256.bnToUint256(params.amount.toWei());
28617
28651
  return {
28618
28652
  sanitizer: SIMPLE_SANITIZER,
28619
28653
  call: {
28620
28654
  contractAddress: this.config.manager,
28621
- selector: import_starknet16.hash.getSelectorFromName("flash_loan"),
28655
+ selector: import_starknet17.hash.getSelectorFromName("flash_loan"),
28622
28656
  calldata: [
28623
28657
  this.config.manager.toBigInt(),
28624
28658
  // receiver
@@ -28652,12 +28686,12 @@ var CommonAdapter = class extends BaseAdapter {
28652
28686
  }
28653
28687
  getApproveCall(token, spender) {
28654
28688
  return (params) => {
28655
- const uint256Amount = import_starknet16.uint256.bnToUint256(params.amount.toWei());
28689
+ const uint256Amount = import_starknet17.uint256.bnToUint256(params.amount.toWei());
28656
28690
  return {
28657
28691
  sanitizer: SIMPLE_SANITIZER,
28658
28692
  call: {
28659
28693
  contractAddress: token,
28660
- selector: import_starknet16.hash.getSelectorFromName("approve"),
28694
+ selector: import_starknet17.hash.getSelectorFromName("approve"),
28661
28695
  calldata: [
28662
28696
  spender.toBigInt(),
28663
28697
  // spender
@@ -28683,12 +28717,12 @@ var CommonAdapter = class extends BaseAdapter {
28683
28717
  }
28684
28718
  getBringLiquidityCall() {
28685
28719
  return (params) => {
28686
- const uint256Amount = import_starknet16.uint256.bnToUint256(params.amount.toWei());
28720
+ const uint256Amount = import_starknet17.uint256.bnToUint256(params.amount.toWei());
28687
28721
  return {
28688
28722
  sanitizer: SIMPLE_SANITIZER,
28689
28723
  call: {
28690
28724
  contractAddress: this.config.vaultAddress,
28691
- selector: import_starknet16.hash.getSelectorFromName("bring_liquidity"),
28725
+ selector: import_starknet17.hash.getSelectorFromName("bring_liquidity"),
28692
28726
  calldata: [
28693
28727
  toBigInt(uint256Amount.low.toString()),
28694
28728
  // amount low
@@ -28720,7 +28754,7 @@ var CommonAdapter = class extends BaseAdapter {
28720
28754
  sanitizer: SIMPLE_SANITIZER,
28721
28755
  call: {
28722
28756
  contractAddress: isMiddleware ? AVNU_MIDDLEWARE : AVNU_EXCHANGE,
28723
- selector: import_starknet16.hash.getSelectorFromName("multi_route_swap"),
28757
+ selector: import_starknet17.hash.getSelectorFromName("multi_route_swap"),
28724
28758
  calldata: [
28725
28759
  fromToken.toBigInt(),
28726
28760
  // sell_token_address
@@ -28747,12 +28781,12 @@ var CommonAdapter = class extends BaseAdapter {
28747
28781
  // unpack routes
28748
28782
  BigInt(params.props.routes.length),
28749
28783
  ...params.props.routes.map((r) => [
28750
- BigInt(import_starknet16.num.hexToDecimalString(r.token_from)),
28751
- BigInt(import_starknet16.num.hexToDecimalString(r.token_to)),
28752
- BigInt(import_starknet16.num.hexToDecimalString(r.exchange_address)),
28784
+ BigInt(import_starknet17.num.hexToDecimalString(r.token_from)),
28785
+ BigInt(import_starknet17.num.hexToDecimalString(r.token_to)),
28786
+ BigInt(import_starknet17.num.hexToDecimalString(r.exchange_address)),
28753
28787
  BigInt(r.percent),
28754
28788
  BigInt(r.additional_swap_params.length),
28755
- ...r.additional_swap_params.map((p) => BigInt(import_starknet16.num.hexToDecimalString(p)))
28789
+ ...r.additional_swap_params.map((p) => BigInt(import_starknet17.num.hexToDecimalString(p)))
28756
28790
  ]).flat()
28757
28791
  ]
28758
28792
  }
@@ -28762,7 +28796,7 @@ var CommonAdapter = class extends BaseAdapter {
28762
28796
  };
28763
28797
 
28764
28798
  // src/strategies/universal-strategy.tsx
28765
- var import_starknet17 = require("starknet");
28799
+ var import_starknet18 = require("starknet");
28766
28800
 
28767
28801
  // src/data/universal-vault.abi.json
28768
28802
  var universal_vault_abi_default = [
@@ -30984,12 +31018,12 @@ var UniversalStrategy = class _UniversalStrategy extends BaseStrategy {
30984
31018
  );
30985
31019
  this.metadata = metadata;
30986
31020
  this.address = metadata.address;
30987
- this.contract = new import_starknet17.Contract({
31021
+ this.contract = new import_starknet18.Contract({
30988
31022
  abi: universal_vault_abi_default,
30989
31023
  address: this.address.address,
30990
31024
  providerOrAccount: this.config.provider
30991
31025
  });
30992
- this.managerContract = new import_starknet17.Contract({
31026
+ this.managerContract = new import_starknet18.Contract({
30993
31027
  abi: vault_manager_abi_default,
30994
31028
  address: this.metadata.additionalInfo.manager.address,
30995
31029
  providerOrAccount: this.config.provider
@@ -31043,17 +31077,17 @@ var UniversalStrategy = class _UniversalStrategy extends BaseStrategy {
31043
31077
  amountInfo.tokenInfo.address.eq(this.asset().address),
31044
31078
  "Deposit token mismatch"
31045
31079
  );
31046
- const assetContract = new import_starknet17.Contract({
31080
+ const assetContract = new import_starknet18.Contract({
31047
31081
  abi: universal_vault_abi_default,
31048
31082
  address: this.asset().address.address,
31049
31083
  providerOrAccount: this.config.provider
31050
31084
  });
31051
31085
  const call1 = assetContract.populate("approve", [
31052
31086
  this.address.address,
31053
- import_starknet17.uint256.bnToUint256(amountInfo.amount.toWei())
31087
+ import_starknet18.uint256.bnToUint256(amountInfo.amount.toWei())
31054
31088
  ]);
31055
31089
  const call2 = this.contract.populate("deposit", [
31056
- import_starknet17.uint256.bnToUint256(amountInfo.amount.toWei()),
31090
+ import_starknet18.uint256.bnToUint256(amountInfo.amount.toWei()),
31057
31091
  receiver.address
31058
31092
  ]);
31059
31093
  return [call1, call2];
@@ -31063,9 +31097,9 @@ var UniversalStrategy = class _UniversalStrategy extends BaseStrategy {
31063
31097
  amountInfo.tokenInfo.address.eq(this.asset().address),
31064
31098
  "Withdraw token mismatch"
31065
31099
  );
31066
- const shares = await this.contract.call("convert_to_shares", [import_starknet17.uint256.bnToUint256(amountInfo.amount.toWei())]);
31100
+ const shares = await this.contract.call("convert_to_shares", [import_starknet18.uint256.bnToUint256(amountInfo.amount.toWei())]);
31067
31101
  const call = this.contract.populate("request_redeem", [
31068
- import_starknet17.uint256.bnToUint256(shares.toString()),
31102
+ import_starknet18.uint256.bnToUint256(shares.toString()),
31069
31103
  receiver.address,
31070
31104
  owner.address
31071
31105
  ]);
@@ -31075,7 +31109,7 @@ var UniversalStrategy = class _UniversalStrategy extends BaseStrategy {
31075
31109
  const shares = await this.contract.call("balanceOf", [user.address], { blockIdentifier });
31076
31110
  const assets = await this.contract.call(
31077
31111
  "convert_to_assets",
31078
- [import_starknet17.uint256.bnToUint256(shares)],
31112
+ [import_starknet18.uint256.bnToUint256(shares)],
31079
31113
  { blockIdentifier }
31080
31114
  );
31081
31115
  const amount = Web3Number.fromWei(
@@ -31098,7 +31132,7 @@ var UniversalStrategy = class _UniversalStrategy extends BaseStrategy {
31098
31132
  const vesuAdapters = this.getVesuAdapters();
31099
31133
  const allVesuPools = await VesuAdapter.getVesuPools();
31100
31134
  const pools = vesuAdapters.map((vesuAdapter) => {
31101
- return allVesuPools.pools.find((p) => vesuAdapter.config.poolId.eqString(import_starknet17.num.getHexString(p.id)));
31135
+ return allVesuPools.pools.find((p) => vesuAdapter.config.poolId.eqString(import_starknet18.num.getHexString(p.id)));
31102
31136
  });
31103
31137
  logger.verbose(`${this.metadata.name}::netAPY: vesu-pools: ${JSON.stringify(pools)}`);
31104
31138
  if (pools.some((p) => !p)) {
@@ -31384,7 +31418,7 @@ var UniversalStrategy = class _UniversalStrategy extends BaseStrategy {
31384
31418
  }];
31385
31419
  }
31386
31420
  getSetManagerCall(strategist, root = this.getMerkleRoot()) {
31387
- return this.managerContract.populate("set_manage_root", [strategist.address, import_starknet17.num.getHexString(root)]);
31421
+ return this.managerContract.populate("set_manage_root", [strategist.address, import_starknet18.num.getHexString(root)]);
31388
31422
  }
31389
31423
  getManageCall(proofIds, manageCalls) {
31390
31424
  assert(proofIds.length == manageCalls.length, "Proof IDs and Manage Calls length mismatch");
@@ -31568,7 +31602,7 @@ var UniversalStrategy = class _UniversalStrategy extends BaseStrategy {
31568
31602
  callSet1 = [...temp];
31569
31603
  }
31570
31604
  const allActions = [...callSet1.map((i) => i.manageCall), ...callSet2.map((i) => i.manageCall)];
31571
- const flashloanCalldata = import_starknet17.CallData.compile([
31605
+ const flashloanCalldata = import_starknet18.CallData.compile([
31572
31606
  [...callSet1.map((i) => i.proofs), ...callSet2.map((i) => i.proofs)],
31573
31607
  allActions.map((i) => i.sanitizer.address),
31574
31608
  allActions.map((i) => i.call.contractAddress.address),
@@ -32076,7 +32110,7 @@ var UniversalStrategies = [
32076
32110
  ];
32077
32111
 
32078
32112
  // src/strategies/universal-lst-muliplier-strategy.tsx
32079
- var import_starknet18 = require("starknet");
32113
+ var import_starknet19 = require("starknet");
32080
32114
 
32081
32115
  // src/utils/health-factor-math.ts
32082
32116
  var HealthFactorMath = class {
@@ -32143,20 +32177,19 @@ var UniversalLstMultiplierStrategy = class _UniversalLstMultiplierStrategy exten
32143
32177
  // todo support lending assets of underlying as well (like if xSTRK looping is not viable, simply supply STRK)
32144
32178
  getVesuAdapters() {
32145
32179
  const adapters = [];
32146
- for (const poolId of [this.metadata.additionalInfo.defaultPoolId, ...this.metadata.additionalInfo.altSupportedPoolIds]) {
32147
- const baseAdapter = this.getVesuSameTokenAdapter(poolId);
32148
- for (const asset of this.metadata.additionalInfo.borrowable_assets) {
32149
- const vesuAdapter1 = new VesuAdapter({
32150
- poolId: baseAdapter.config.poolId,
32151
- collateral: this.asset(),
32152
- debt: asset,
32153
- vaultAllocator: this.metadata.additionalInfo.vaultAllocator,
32154
- id: ""
32155
- });
32156
- vesuAdapter1.pricer = this.pricer;
32157
- vesuAdapter1.networkConfig = this.config;
32158
- adapters.push(vesuAdapter1);
32159
- }
32180
+ for (const borrowableInfo of this.metadata.additionalInfo.borrowable_assets) {
32181
+ const asset = borrowableInfo.token;
32182
+ const poolId = borrowableInfo.poolId;
32183
+ const vesuAdapter1 = new VesuAdapter({
32184
+ poolId,
32185
+ collateral: this.asset(),
32186
+ debt: asset,
32187
+ vaultAllocator: this.metadata.additionalInfo.vaultAllocator,
32188
+ id: ""
32189
+ });
32190
+ vesuAdapter1.pricer = this.pricer;
32191
+ vesuAdapter1.networkConfig = this.config;
32192
+ adapters.push(vesuAdapter1);
32160
32193
  }
32161
32194
  return adapters;
32162
32195
  }
@@ -32610,13 +32643,13 @@ var UniversalLstMultiplierStrategy = class _UniversalLstMultiplierStrategy exten
32610
32643
  async getLSTExchangeRate() {
32611
32644
  const vesuAdapter1 = this.getVesuSameTokenAdapter(this.metadata.additionalInfo.defaultPoolId);
32612
32645
  const lstTokenInfo = vesuAdapter1.config.collateral;
32613
- const lstABI = new import_starknet18.Contract({
32646
+ const lstABI = new import_starknet19.Contract({
32614
32647
  abi: erc4626_abi_default,
32615
32648
  address: lstTokenInfo.address.address,
32616
32649
  providerOrAccount: this.config.provider
32617
32650
  });
32618
- const price = await lstABI.call("convert_to_assets", [import_starknet18.uint256.bnToUint256(new Web3Number(1, lstTokenInfo.decimals).toWei())]);
32619
- const exchangeRate = Number(import_starknet18.uint256.uint256ToBN(price).toString()) / Math.pow(10, lstTokenInfo.decimals);
32651
+ const price = await lstABI.call("convert_to_assets", [import_starknet19.uint256.bnToUint256(new Web3Number(1, lstTokenInfo.decimals).toWei())]);
32652
+ const exchangeRate = Number(import_starknet19.uint256.uint256ToBN(price).toString()) / Math.pow(10, lstTokenInfo.decimals);
32620
32653
  logger.verbose(`${this.getTag()}:: LST Exchange Rate: ${exchangeRate}`);
32621
32654
  return exchangeRate;
32622
32655
  }
@@ -32782,19 +32815,21 @@ function addVesuLeaves(poolId, lstSymbol, underlyingSymbol, vaultSettings, commo
32782
32815
  id: getVesuLegId("vesu_leg1" /* VESU_LEG1 */, underlyingToken.symbol, poolId.toString()),
32783
32816
  adapter: vesuAdapterLST
32784
32817
  }]);
32785
- const { isV2, addr: _ } = getVesuSingletonAddress(poolId);
32818
+ const { isV2, addr: poolAddr } = getVesuSingletonAddress(poolId);
32786
32819
  const VESU_MULTIPLY = isV2 ? vesuAdapterLST.VESU_MULTIPLY : vesuAdapterLST.VESU_MULTIPLY_V1;
32787
32820
  const leafIdApprove = getVesuGenericLegId(poolId.toString(), "multiple_approve" /* MULTIPLE_APPROVE */);
32788
32821
  vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, VESU_MULTIPLY, leafIdApprove).bind(commonAdapter));
32789
32822
  const leafIdDelegationOn = getVesuGenericLegId(poolId.toString(), "switch_delegation_on" /* SWITCH_DELEGATION_ON */);
32790
- vaultSettings.leafAdapters.push(vesuAdapterLST.getVesuModifyDelegationAdapter(leafIdDelegationOn).bind(vesuAdapterLST));
32823
+ vaultSettings.leafAdapters.push(vesuAdapterLST.getVesuModifyDelegationAdapter(leafIdDelegationOn, VESU_MULTIPLY).bind(vesuAdapterLST));
32791
32824
  const leafIdDelegationOff = getVesuGenericLegId(poolId.toString(), "switch_delegation_off" /* SWITCH_DELEGATION_OFF */);
32792
- vaultSettings.leafAdapters.push(vesuAdapterLST.getVesuModifyDelegationAdapter(leafIdDelegationOff).bind(vesuAdapterLST));
32825
+ vaultSettings.leafAdapters.push(vesuAdapterLST.getVesuModifyDelegationAdapter(leafIdDelegationOff, VESU_MULTIPLY).bind(vesuAdapterLST));
32793
32826
  const multiplID = getVesuLegId("multiply_vesu" /* MULTIPLY_VESU */, underlyingToken.symbol, poolId.toString());
32794
32827
  vaultSettings.leafAdapters.push(vesuAdapterLST.getMultiplyAdapter(multiplID).bind(vesuAdapterLST));
32828
+ vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, poolAddr, "approve_token1" /* APPROVE_TOKEN1 */).bind(commonAdapter));
32829
+ vaultSettings.leafAdapters.push(vesuAdapterLST.getModifyPosition.bind(vesuAdapterLST));
32795
32830
  return vesuAdapterLST;
32796
32831
  }
32797
- function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, defaultPoolId, altSupportedPoolIds = []) {
32832
+ function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, defaultPoolId) {
32798
32833
  vaultSettings.leafAdapters = [];
32799
32834
  const pool1 = vaultSettings.defaultPoolId;
32800
32835
  if (!pool1.eq(defaultPoolId)) {
@@ -32813,10 +32848,11 @@ function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, defaultP
32813
32848
  id: "common_adapter" /* COMMON */,
32814
32849
  adapter: commonAdapter
32815
32850
  }]);
32816
- const vesuAdapterLST = addVesuLeaves(defaultPoolId, lstSymbol, underlyingSymbol, vaultSettings, commonAdapter);
32817
- altSupportedPoolIds.map((poolId) => addVesuLeaves(poolId, lstSymbol, underlyingSymbol, vaultSettings, commonAdapter));
32851
+ vaultSettings.borrowable_assets.map((borrowableAsset) => addVesuLeaves(borrowableAsset.poolId, lstSymbol, underlyingSymbol, vaultSettings, commonAdapter));
32818
32852
  vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, AVNU_EXCHANGE, "avnu_mul_approve_withdr" /* AVNU_MULTIPLY_APPROVE_WITHDRAW */).bind(commonAdapter));
32819
- for (let borrowableAsset of vaultSettings.borrowable_assets) {
32853
+ const uniqueBorrowableAssets = [...new Set(vaultSettings.borrowable_assets.map((borrowableAsset) => borrowableAsset.token.symbol))];
32854
+ for (let borrowableAssetSymbol of uniqueBorrowableAssets) {
32855
+ const borrowableAsset = Global.getDefaultTokens().find((token) => token.symbol === borrowableAssetSymbol);
32820
32856
  const debtAsset = borrowableAsset;
32821
32857
  const approve_debt_token_id = getAvnuManageIDs("avnu_mul_approve_dep" /* AVNU_MULTIPLY_APPROVE_DEPOSIT */, debtAsset.symbol);
32822
32858
  const swap_debt_token_id = getAvnuManageIDs("avnu_mul_swap_dep" /* AVNU_MULTIPLY_SWAP_DEPOSIT */, debtAsset.symbol);
@@ -32824,23 +32860,9 @@ function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, defaultP
32824
32860
  vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(debtAsset.address, AVNU_EXCHANGE, approve_debt_token_id).bind(commonAdapter));
32825
32861
  vaultSettings.leafAdapters.push(commonAdapter.getAvnuAdapter(debtAsset.address, lstToken.address, swap_debt_token_id, false).bind(commonAdapter));
32826
32862
  vaultSettings.leafAdapters.push(commonAdapter.getAvnuAdapter(lstToken.address, debtAsset.address, swap_lst_token_id, false).bind(commonAdapter));
32827
- const vesuAdapter = new VesuAdapter({
32828
- poolId: pool1,
32829
- collateral: lstToken,
32830
- debt: debtAsset,
32831
- vaultAllocator: vaultSettings.vaultAllocator,
32832
- id: getVesuLegId("vesu_leg1" /* VESU_LEG1 */, debtAsset.symbol, pool1.toString())
32833
- });
32834
- const { isV2, addr: poolAddr } = getVesuSingletonAddress(pool1);
32835
- vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, poolAddr, "approve_token1" /* APPROVE_TOKEN1 */).bind(commonAdapter));
32836
- vaultSettings.leafAdapters.push(vesuAdapter.getModifyPosition.bind(vesuAdapter));
32837
- if (borrowableAsset.address.eq(underlyingToken.address)) {
32838
- continue;
32839
- }
32840
32863
  }
32841
32864
  vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, vaultSettings.vaultAddress, "approve_bring_liquidity" /* APPROVE_BRING_LIQUIDITY */).bind(commonAdapter));
32842
32865
  vaultSettings.leafAdapters.push(commonAdapter.getBringLiquidityAdapter("bring_liquidity" /* BRING_LIQUIDITY */).bind(commonAdapter));
32843
- vaultSettings.leafAdapters.push(vesuAdapterLST.getDefispringRewardsAdapter("defispring_rewards" /* DEFISPRING_REWARDS */).bind(vesuAdapterLST));
32844
32866
  const STRKToken = Global.getDefaultTokens().find((token) => token.symbol === "STRK");
32845
32867
  vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(STRKToken.address, AVNU_EXCHANGE, "approve_swap_token1" /* APPROVE_SWAP_TOKEN1 */).bind(commonAdapter));
32846
32868
  vaultSettings.leafAdapters.push(commonAdapter.getAvnuAdapter(STRKToken.address, lstToken.address, "avnu_swap_rewards" /* AVNU_SWAP_REWARDS */, false).bind(commonAdapter));
@@ -32899,7 +32921,7 @@ var _riskFactor4 = [
32899
32921
  { 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." },
32900
32922
  { type: "Depeg Risk" /* DEPEG_RISK */, value: 2 /* GENERALLY_STABLE */, weight: 25, reason: "Generally stable pegged assets" }
32901
32923
  ];
32902
- var borrowableAssets = [
32924
+ var btcBorrowableAssets = [
32903
32925
  "WBTC",
32904
32926
  "tBTC",
32905
32927
  "LBTC",
@@ -32915,10 +32937,14 @@ var hyperxSTRK = {
32915
32937
  adapters: [],
32916
32938
  targetHealthFactor: 1.1,
32917
32939
  minHealthFactor: 1.05,
32918
- borrowable_assets: Global.getDefaultTokens().filter((token) => token.symbol === "STRK"),
32940
+ borrowable_assets: [
32941
+ ...Global.getDefaultTokens().filter((token) => token.symbol === "STRK").map((token) => ({ token, poolId: VesuPools.Re7xSTRK })),
32942
+ ...Global.getDefaultTokens().filter((token) => token.symbol === "STRK").map((token) => ({ token, poolId: VesuPools.Prime })),
32943
+ ...Global.getDefaultTokens().filter((token) => token.symbol === "STRK").map((token) => ({ token, poolId: VesuPools.Re7STRK }))
32944
+ // v2, new alt for Re7xSTRK
32945
+ ],
32919
32946
  underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "STRK"),
32920
- defaultPoolId: VesuPools.Re7xSTRK,
32921
- altSupportedPoolIds: [VesuPools.Prime]
32947
+ defaultPoolId: VesuPools.Re7xSTRK
32922
32948
  };
32923
32949
  var hyperxWBTC = {
32924
32950
  vaultAddress: ContractAddr.from("0x2da9d0f96a46b453f55604313785dc866424240b1c6811d13bef594343db818"),
@@ -32930,10 +32956,14 @@ var hyperxWBTC = {
32930
32956
  adapters: [],
32931
32957
  targetHealthFactor: 1.1,
32932
32958
  minHealthFactor: 1.05,
32933
- borrowable_assets: borrowableAssets.map((asset) => Global.getDefaultTokens().find((token) => token.symbol === asset)),
32959
+ borrowable_assets: [
32960
+ // allow all BTC flavours borrowing on Re7xBTC pool
32961
+ ...btcBorrowableAssets.map((asset) => Global.getDefaultTokens().find((token) => token.symbol === asset)).map((token) => ({ token, poolId: VesuPools.Re7xBTC })),
32962
+ // allow only WBTC borrowing on Prime pool
32963
+ ...Global.getDefaultTokens().filter((token) => token.symbol === "WBTC").map((token) => ({ token, poolId: VesuPools.Prime }))
32964
+ ],
32934
32965
  underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "WBTC"),
32935
32966
  defaultPoolId: VesuPools.Re7xBTC,
32936
- altSupportedPoolIds: [VesuPools.Prime],
32937
32967
  redemptionRouter: ContractAddr.from("0x6ea649f402898f69baf775c1afdd08522c071c640b9c4460192070ec2b96417")
32938
32968
  };
32939
32969
  var hyperxtBTC = {
@@ -32946,10 +32976,11 @@ var hyperxtBTC = {
32946
32976
  adapters: [],
32947
32977
  targetHealthFactor: 1.1,
32948
32978
  minHealthFactor: 1.05,
32949
- borrowable_assets: Global.getDefaultTokens().filter((token) => token.symbol === "tBTC" || token.symbol === "WBTC"),
32979
+ borrowable_assets: [
32980
+ ...Global.getDefaultTokens().filter((token) => token.symbol === "tBTC" || token.symbol === "WBTC").map((token) => ({ token, poolId: VesuPools.Re7xBTC }))
32981
+ ],
32950
32982
  underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "tBTC"),
32951
32983
  defaultPoolId: VesuPools.Re7xBTC,
32952
- altSupportedPoolIds: [],
32953
32984
  redemptionRouter: ContractAddr.from("0x3de9c409d1e357e25778fb7a3e2e2393666956846a5c2caa607296fa8e76b5d")
32954
32985
  };
32955
32986
  var hyperxsBTC = {
@@ -32962,10 +32993,11 @@ var hyperxsBTC = {
32962
32993
  adapters: [],
32963
32994
  targetHealthFactor: 1.1,
32964
32995
  minHealthFactor: 1.05,
32965
- borrowable_assets: Global.getDefaultTokens().filter((token) => token.symbol === "solvBTC"),
32996
+ borrowable_assets: [
32997
+ ...Global.getDefaultTokens().filter((token) => token.symbol === "solvBTC").map((token) => ({ token, poolId: VesuPools.Re7xBTC }))
32998
+ ],
32966
32999
  underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "solvBTC"),
32967
- defaultPoolId: VesuPools.Re7xBTC,
32968
- altSupportedPoolIds: []
33000
+ defaultPoolId: VesuPools.Re7xBTC
32969
33001
  };
32970
33002
  var hyperxLBTC = {
32971
33003
  vaultAddress: ContractAddr.from("0x64cf24d4883fe569926419a0569ab34497c6956a1a308fa883257f7486d7030"),
@@ -32977,10 +33009,11 @@ var hyperxLBTC = {
32977
33009
  adapters: [],
32978
33010
  targetHealthFactor: 1.1,
32979
33011
  minHealthFactor: 1.05,
32980
- borrowable_assets: Global.getDefaultTokens().filter((token) => token.symbol === "LBTC"),
33012
+ borrowable_assets: [
33013
+ ...Global.getDefaultTokens().filter((token) => token.symbol === "LBTC").map((token) => ({ token, poolId: VesuPools.Re7xBTC }))
33014
+ ],
32981
33015
  underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "LBTC"),
32982
- defaultPoolId: VesuPools.Re7xBTC,
32983
- altSupportedPoolIds: []
33016
+ defaultPoolId: VesuPools.Re7xBTC
32984
33017
  };
32985
33018
  function getInvestmentSteps(lstSymbol, underlyingSymbol) {
32986
33019
  return [
@@ -33076,12 +33109,12 @@ var HYPER_LST_REDEMPTION_INFO = {
33076
33109
  tab: "withdraw"
33077
33110
  }]
33078
33111
  };
33079
- function getStrategySettings(lstSymbol, underlyingSymbol, addresses, isPreview = false) {
33112
+ function getStrategySettings(lstSymbol, underlyingSymbol, settings, isPreview = false) {
33080
33113
  return {
33081
33114
  id: `hyper_${lstSymbol.toLowerCase()}`,
33082
33115
  name: `Hyper ${lstSymbol}`,
33083
33116
  description: getDescription2(lstSymbol, underlyingSymbol),
33084
- address: addresses.vaultAddress,
33117
+ address: settings.vaultAddress,
33085
33118
  launchBlock: 0,
33086
33119
  type: "Other",
33087
33120
  vaultType: {
@@ -33096,7 +33129,7 @@ function getStrategySettings(lstSymbol, underlyingSymbol, addresses, isPreview =
33096
33129
  additionalInfo: getLooperSettings2(
33097
33130
  lstSymbol,
33098
33131
  underlyingSymbol,
33099
- addresses,
33132
+ settings,
33100
33133
  lstSymbol === "xSTRK" ? VesuPools.Re7xSTRK : VesuPools.Re7xBTC
33101
33134
  ),
33102
33135
  risk: {
@@ -33114,7 +33147,7 @@ function getStrategySettings(lstSymbol, underlyingSymbol, addresses, isPreview =
33114
33147
  logo: "https://assets.troves.fi/integrations/unwraplabs/white.png"
33115
33148
  },
33116
33149
  settings: createHyperLSTSettings(lstSymbol, underlyingSymbol),
33117
- contractDetails: getContractDetails(addresses),
33150
+ contractDetails: getContractDetails(settings),
33118
33151
  faqs: getFAQs2(lstSymbol, underlyingSymbol),
33119
33152
  investmentSteps: getInvestmentSteps(lstSymbol, underlyingSymbol),
33120
33153
  isPreview,
@@ -33590,12 +33623,12 @@ var PricerRedis = class extends Pricer {
33590
33623
 
33591
33624
  // src/node/deployer.ts
33592
33625
  var import_assert = __toESM(require("assert"));
33593
- var import_starknet20 = require("starknet");
33626
+ var import_starknet21 = require("starknet");
33594
33627
  var import_fs2 = require("fs");
33595
33628
 
33596
33629
  // src/utils/store.ts
33597
33630
  var import_fs = __toESM(require("fs"));
33598
- var import_starknet19 = require("starknet");
33631
+ var import_starknet20 = require("starknet");
33599
33632
  var crypto2 = __toESM(require("crypto"));
33600
33633
 
33601
33634
  // src/utils/encrypt.ts
@@ -33689,7 +33722,7 @@ var Store = class _Store {
33689
33722
  }
33690
33723
  logger.verbose(`Account loaded: ${accountKey} from network: ${this.config.network}`);
33691
33724
  logger.verbose(`Address: ${data.address}`);
33692
- const acc = new import_starknet19.Account({
33725
+ const acc = new import_starknet20.Account({
33693
33726
  provider: this.config.provider,
33694
33727
  address: data.address,
33695
33728
  signer: data.pk,
@@ -33784,10 +33817,10 @@ function getAccount(accountKey, config, password = process.env.ACCOUNT_SECURE_PA
33784
33817
  }
33785
33818
  async function myDeclare(contract_name, package_name = "strkfarm", config, acc) {
33786
33819
  const provider2 = config.provider;
33787
- const compiledSierra = import_starknet20.json.parse(
33820
+ const compiledSierra = import_starknet21.json.parse(
33788
33821
  (0, import_fs2.readFileSync)(`./target/release/${package_name}_${contract_name}.contract_class.json`).toString("ascii")
33789
33822
  );
33790
- const compiledCasm = import_starknet20.json.parse(
33823
+ const compiledCasm = import_starknet21.json.parse(
33791
33824
  (0, import_fs2.readFileSync)(`./target/release/${package_name}_${contract_name}.compiled_contract_class.json`).toString("ascii")
33792
33825
  );
33793
33826
  const contracts = getContracts();
@@ -33795,7 +33828,7 @@ async function myDeclare(contract_name, package_name = "strkfarm", config, acc)
33795
33828
  contract: compiledSierra,
33796
33829
  casm: compiledCasm
33797
33830
  };
33798
- const result = (0, import_starknet20.extractContractHashes)(payload);
33831
+ const result = (0, import_starknet21.extractContractHashes)(payload);
33799
33832
  console.log("classhash:", result.classHash);
33800
33833
  try {
33801
33834
  const cls = await provider2.getClassByHash(result.classHash);
@@ -33813,7 +33846,7 @@ async function myDeclare(contract_name, package_name = "strkfarm", config, acc)
33813
33846
  const tx = await acc.declareIfNot(payload);
33814
33847
  console.log(`Declaring: ${contract_name}, tx:`, tx.transaction_hash);
33815
33848
  await provider2.waitForTransaction(tx.transaction_hash, {
33816
- successStates: [import_starknet20.TransactionExecutionStatus.SUCCEEDED]
33849
+ successStates: [import_starknet21.TransactionExecutionStatus.SUCCEEDED]
33817
33850
  });
33818
33851
  if (!contracts.class_hashes) {
33819
33852
  contracts["class_hashes"] = {};
@@ -33837,7 +33870,7 @@ async function deployContract(contract_name, classHash, constructorData, config,
33837
33870
  });
33838
33871
  console.log("Deploy tx: ", tx.transaction_hash);
33839
33872
  await provider2.waitForTransaction(tx.transaction_hash, {
33840
- successStates: [import_starknet20.TransactionExecutionStatus.SUCCEEDED]
33873
+ successStates: [import_starknet21.TransactionExecutionStatus.SUCCEEDED]
33841
33874
  });
33842
33875
  const contracts = getContracts();
33843
33876
  if (!contracts.contracts) {
@@ -33854,7 +33887,7 @@ async function prepareMultiDeployContracts(contracts, config, acc) {
33854
33887
  for (const { contract_name, package_name, constructorData } of contracts) {
33855
33888
  const declaredInfo = await myDeclare(contract_name, package_name, config, acc);
33856
33889
  const classHash = declaredInfo.class_hash;
33857
- const { calls, addresses } = new import_starknet20.Deployer().buildDeployerCall({
33890
+ const { calls, addresses } = new import_starknet21.Deployer().buildDeployerCall({
33858
33891
  classHash,
33859
33892
  constructorCalldata: constructorData
33860
33893
  }, acc.address);
@@ -33872,7 +33905,7 @@ async function prepareMultiDeployContracts(contracts, config, acc) {
33872
33905
  }
33873
33906
  async function executeDeployCalls(contractsInfo, acc, provider2) {
33874
33907
  for (let contractInfo of contractsInfo) {
33875
- (0, import_assert.default)(import_starknet20.num.toHexString(contractInfo.call.contractAddress) == import_starknet20.num.toHexString(import_starknet20.constants.UDC.ADDRESS), "Must be pointed at UDC address");
33908
+ (0, import_assert.default)(import_starknet21.num.toHexString(contractInfo.call.contractAddress) == import_starknet21.num.toHexString(import_starknet21.constants.UDC.ADDRESS), "Must be pointed at UDC address");
33876
33909
  }
33877
33910
  const allCalls = contractsInfo.map((info) => info.call);
33878
33911
  await executeTransactions(allCalls, acc, provider2, `Deploying contracts: ${contractsInfo.map((info) => info.contract_name).join(", ")}`);
@@ -33896,7 +33929,7 @@ async function executeTransactions(calls, acc, provider2, remarks) {
33896
33929
  if (remarks)
33897
33930
  console.log(`Remarks: ${remarks}`);
33898
33931
  await provider2.waitForTransaction(tx.transaction_hash, {
33899
- successStates: [import_starknet20.TransactionExecutionStatus.SUCCEEDED]
33932
+ successStates: [import_starknet21.TransactionExecutionStatus.SUCCEEDED]
33900
33933
  });
33901
33934
  console.log(`Transaction confirmed: ${tx.transaction_hash}`);
33902
33935
  return tx;
@@ -33907,10 +33940,10 @@ async function myWaitForTransaction(transaction_hash, provider2, retry = 0) {
33907
33940
  try {
33908
33941
  const status = await provider2.getTransactionStatus(transaction_hash);
33909
33942
  logger.verbose(`Transaction status: ${JSON.stringify(status.execution_status)}`);
33910
- if (status.execution_status == import_starknet20.TransactionExecutionStatus.SUCCEEDED) {
33943
+ if (status.execution_status == import_starknet21.TransactionExecutionStatus.SUCCEEDED) {
33911
33944
  return true;
33912
33945
  }
33913
- if (status.execution_status == import_starknet20.TransactionExecutionStatus.REVERTED) {
33946
+ if (status.execution_status == import_starknet21.TransactionExecutionStatus.REVERTED) {
33914
33947
  throw new Error(`Transaction reverted: ${transaction_hash}`);
33915
33948
  }
33916
33949
  if (retry > MAX_RETRIES) {
@@ -34003,6 +34036,7 @@ var deployer_default = Deployer;
34003
34036
  VesuAdapter,
34004
34037
  VesuAmountDenomination,
34005
34038
  VesuAmountType,
34039
+ VesuPoolMetadata,
34006
34040
  VesuPools,
34007
34041
  VesuRebalance,
34008
34042
  VesuRebalanceStrategies,