@strkfarm/sdk 1.0.25 → 1.0.27

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/cli.js CHANGED
@@ -574,6 +574,7 @@ var VesuRebalanceStrategies = [{
574
574
  address: ContractAddr.from("0x115e94e722cfc4c77a2f15c4aefb0928c1c0029e5a57570df24c650cb7cec2c"),
575
575
  type: "ERC4626",
576
576
  depositTokens: [Global.getDefaultTokens().find((t) => t.symbol === "USDT")],
577
+ auditUrl: AUDIT_URL,
577
578
  protocols: [_protocol],
578
579
  maxTVL: Web3Number.fromWei("0", 6),
579
580
  risk: {
@@ -590,6 +591,7 @@ var VesuRebalanceStrategies = [{
590
591
  // address: ContractAddr.from('0x778007f8136a5b827325d21613803e796bda4d676fbe1e34aeab0b2a2ec027f'),
591
592
  // type: 'ERC4626',
592
593
  // depositTokens: [Global.getDefaultTokens().find(t => t.symbol === 'WBTC')!],
594
+ // auditUrl: AUDIT_URL,
593
595
  // protocols: [_protocol],
594
596
  // maxTVL: Web3Number.fromWei('0', 8),
595
597
  // risk: {
package/dist/cli.mjs CHANGED
@@ -551,6 +551,7 @@ var VesuRebalanceStrategies = [{
551
551
  address: ContractAddr.from("0x115e94e722cfc4c77a2f15c4aefb0928c1c0029e5a57570df24c650cb7cec2c"),
552
552
  type: "ERC4626",
553
553
  depositTokens: [Global.getDefaultTokens().find((t) => t.symbol === "USDT")],
554
+ auditUrl: AUDIT_URL,
554
555
  protocols: [_protocol],
555
556
  maxTVL: Web3Number.fromWei("0", 6),
556
557
  risk: {
@@ -567,6 +568,7 @@ var VesuRebalanceStrategies = [{
567
568
  // address: ContractAddr.from('0x778007f8136a5b827325d21613803e796bda4d676fbe1e34aeab0b2a2ec027f'),
568
569
  // type: 'ERC4626',
569
570
  // depositTokens: [Global.getDefaultTokens().find(t => t.symbol === 'WBTC')!],
571
+ // auditUrl: AUDIT_URL,
570
572
  // protocols: [_protocol],
571
573
  // maxTVL: Web3Number.fromWei('0', 8),
572
574
  // risk: {
@@ -38661,6 +38661,50 @@ var strkfarm_risk_engine = (() => {
38661
38661
  }).filter((p) => p !== null);
38662
38662
  return pools;
38663
38663
  }
38664
+ async getPoolInfo(p, pools, vesuPositions, totalAssets, isErrorPositionsAPI, isErrorPoolsAPI) {
38665
+ const vesuPosition = vesuPositions.find((d) => d.pool.id.toString() === num_exports.getDecimalString(p.pool_id.address.toString()));
38666
+ const _pool = pools.find((d) => {
38667
+ logger.verbose(`pool check: ${d.id == num_exports.getDecimalString(p.pool_id.address.toString())}, id: ${d.id}, pool_id: ${num_exports.getDecimalString(p.pool_id.address.toString())}`);
38668
+ return d.id == num_exports.getDecimalString(p.pool_id.address.toString());
38669
+ });
38670
+ logger.verbose(`pool: ${JSON.stringify(_pool)}`);
38671
+ logger.verbose(typeof _pool);
38672
+ logger.verbose(`name: ${_pool?.name}`);
38673
+ const name = _pool?.name;
38674
+ logger.verbose(`name2: ${name}`);
38675
+ const assetInfo = _pool?.assets.find((d) => this.asset().address.eqString(d.address));
38676
+ if (!name) {
38677
+ throw new Error(`Pool name ${p.pool_id.address.toString()} not found`);
38678
+ }
38679
+ if (!assetInfo) {
38680
+ throw new Error(`Asset ${this.asset().address.toString()} not found in pool ${p.pool_id.address.toString()}`);
38681
+ }
38682
+ let vTokenContract = new Contract(vesu_rebalance_abi_default, p.v_token.address, this.config.provider);
38683
+ const bal = await vTokenContract.balanceOf(this.address.address);
38684
+ const assets = await vTokenContract.convert_to_assets(uint256_exports.bnToUint256(bal.toString()));
38685
+ const item = {
38686
+ pool_id: p.pool_id,
38687
+ pool_name: _pool?.name,
38688
+ max_weight: p.max_weight,
38689
+ current_weight: isErrorPositionsAPI || !vesuPosition ? 0 : Number(Web3Number.fromWei(vesuPosition.collateral.value, this.decimals()).dividedBy(totalAssets.toString()).toFixed(6)),
38690
+ v_token: p.v_token,
38691
+ amount: Web3Number.fromWei(assets.toString(), this.decimals()),
38692
+ usdValue: isErrorPositionsAPI || !vesuPosition ? Web3Number.fromWei("0", this.decimals()) : Web3Number.fromWei(vesuPosition.collateral.usdPrice.value, vesuPosition.collateral.usdPrice.decimals),
38693
+ APY: isErrorPoolsAPI || !assetInfo ? {
38694
+ baseApy: 0,
38695
+ defiSpringApy: 0,
38696
+ netApy: 0
38697
+ } : {
38698
+ baseApy: Number(Web3Number.fromWei(assetInfo.stats.supplyApy.value, assetInfo.stats.supplyApy.decimals).toFixed(6)),
38699
+ defiSpringApy: Number(Web3Number.fromWei(assetInfo.stats.defiSpringSupplyApr.value, assetInfo.stats.defiSpringSupplyApr.decimals).toFixed(6)),
38700
+ netApy: 0
38701
+ },
38702
+ currentUtilization: isErrorPoolsAPI || !assetInfo ? 0 : Number(Web3Number.fromWei(assetInfo.stats.currentUtilization.value, assetInfo.stats.currentUtilization.decimals).toFixed(6)),
38703
+ maxUtilization: isErrorPoolsAPI || !assetInfo ? 0 : Number(Web3Number.fromWei(assetInfo.config.maxUtilization.value, assetInfo.config.maxUtilization.decimals).toFixed(6))
38704
+ };
38705
+ item.APY.netApy = item.APY.baseApy + item.APY.defiSpringApy;
38706
+ return item;
38707
+ }
38664
38708
  /**
38665
38709
  * Retrieves the list of allowed pools and their detailed information from multiple sources:
38666
38710
  * 1. Contract's allowed pools
@@ -38699,45 +38743,7 @@ var strkfarm_risk_engine = (() => {
38699
38743
  isErrorPoolsAPI = true;
38700
38744
  }
38701
38745
  const totalAssets = (await this.getTVL()).amount;
38702
- const info = allowedPools.map(async (p) => {
38703
- const vesuPosition = vesuPositions.find((d) => d.pool.id.toString() === num_exports.getDecimalString(p.pool_id.address.toString()));
38704
- const _pool = pools.find((d) => {
38705
- logger.verbose(`pool check: ${d.id == num_exports.getDecimalString(p.pool_id.address.toString())}, id: ${d.id}, pool_id: ${num_exports.getDecimalString(p.pool_id.address.toString())}`);
38706
- return d.id == num_exports.getDecimalString(p.pool_id.address.toString());
38707
- });
38708
- logger.verbose(`pool: ${JSON.stringify(_pool)}`);
38709
- logger.verbose(typeof _pool);
38710
- logger.verbose(`name: ${_pool?.name}`);
38711
- if (!_pool) {
38712
- throw new Error(`Pool ${p.pool_id.address.toString()} not found`);
38713
- }
38714
- const assetInfo = _pool?.assets.find((d) => this.asset().address.eqString(d.address));
38715
- let vTokenContract = new Contract(vesu_rebalance_abi_default, p.v_token.address, this.config.provider);
38716
- const bal = await vTokenContract.balanceOf(this.address.address);
38717
- const assets = await vTokenContract.convert_to_assets(uint256_exports.bnToUint256(bal.toString()));
38718
- const item = {
38719
- pool_id: p.pool_id,
38720
- pool_name: _pool?.name,
38721
- max_weight: p.max_weight,
38722
- current_weight: isErrorPositionsAPI || !vesuPosition ? 0 : Number(Web3Number.fromWei(vesuPosition.collateral.value, this.decimals()).dividedBy(totalAssets.toString()).toFixed(6)),
38723
- v_token: p.v_token,
38724
- amount: Web3Number.fromWei(assets.toString(), this.decimals()),
38725
- usdValue: isErrorPositionsAPI || !vesuPosition ? Web3Number.fromWei("0", this.decimals()) : Web3Number.fromWei(vesuPosition.collateral.usdPrice.value, vesuPosition.collateral.usdPrice.decimals),
38726
- APY: isErrorPoolsAPI || !assetInfo ? {
38727
- baseApy: 0,
38728
- defiSpringApy: 0,
38729
- netApy: 0
38730
- } : {
38731
- baseApy: Number(Web3Number.fromWei(assetInfo.stats.supplyApy.value, assetInfo.stats.supplyApy.decimals).toFixed(6)),
38732
- defiSpringApy: Number(Web3Number.fromWei(assetInfo.stats.defiSpringSupplyApr.value, assetInfo.stats.defiSpringSupplyApr.decimals).toFixed(6)),
38733
- netApy: 0
38734
- },
38735
- currentUtilization: isErrorPoolsAPI || !assetInfo ? 0 : Number(Web3Number.fromWei(assetInfo.stats.currentUtilization.value, assetInfo.stats.currentUtilization.decimals).toFixed(6)),
38736
- maxUtilization: isErrorPoolsAPI || !assetInfo ? 0 : Number(Web3Number.fromWei(assetInfo.config.maxUtilization.value, assetInfo.config.maxUtilization.decimals).toFixed(6))
38737
- };
38738
- item.APY.netApy = item.APY.baseApy + item.APY.defiSpringApy;
38739
- return item;
38740
- });
38746
+ const info = allowedPools.map((p) => this.getPoolInfo(p, pools, vesuPositions, totalAssets, isErrorPositionsAPI, isErrorPoolsAPI));
38741
38747
  const data = await Promise.all(info);
38742
38748
  return {
38743
38749
  data,
@@ -38962,6 +38968,7 @@ var strkfarm_risk_engine = (() => {
38962
38968
  address: ContractAddr.from("0x115e94e722cfc4c77a2f15c4aefb0928c1c0029e5a57570df24c650cb7cec2c"),
38963
38969
  type: "ERC4626",
38964
38970
  depositTokens: [Global.getDefaultTokens().find((t) => t.symbol === "USDT")],
38971
+ auditUrl: AUDIT_URL,
38965
38972
  protocols: [_protocol],
38966
38973
  maxTVL: Web3Number.fromWei("0", 6),
38967
38974
  risk: {
@@ -38978,6 +38985,7 @@ var strkfarm_risk_engine = (() => {
38978
38985
  // address: ContractAddr.from('0x778007f8136a5b827325d21613803e796bda4d676fbe1e34aeab0b2a2ec027f'),
38979
38986
  // type: 'ERC4626',
38980
38987
  // depositTokens: [Global.getDefaultTokens().find(t => t.symbol === 'WBTC')!],
38988
+ // auditUrl: AUDIT_URL,
38981
38989
  // protocols: [_protocol],
38982
38990
  // maxTVL: Web3Number.fromWei('0', 8),
38983
38991
  // risk: {
@@ -3673,6 +3673,50 @@ var VesuRebalance = class _VesuRebalance extends BaseStrategy {
3673
3673
  }).filter((p) => p !== null);
3674
3674
  return pools;
3675
3675
  }
3676
+ async getPoolInfo(p, pools, vesuPositions, totalAssets, isErrorPositionsAPI, isErrorPoolsAPI) {
3677
+ const vesuPosition = vesuPositions.find((d) => d.pool.id.toString() === num2.getDecimalString(p.pool_id.address.toString()));
3678
+ const _pool = pools.find((d) => {
3679
+ logger.verbose(`pool check: ${d.id == num2.getDecimalString(p.pool_id.address.toString())}, id: ${d.id}, pool_id: ${num2.getDecimalString(p.pool_id.address.toString())}`);
3680
+ return d.id == num2.getDecimalString(p.pool_id.address.toString());
3681
+ });
3682
+ logger.verbose(`pool: ${JSON.stringify(_pool)}`);
3683
+ logger.verbose(typeof _pool);
3684
+ logger.verbose(`name: ${_pool?.name}`);
3685
+ const name = _pool?.name;
3686
+ logger.verbose(`name2: ${name}`);
3687
+ const assetInfo = _pool?.assets.find((d) => this.asset().address.eqString(d.address));
3688
+ if (!name) {
3689
+ throw new Error(`Pool name ${p.pool_id.address.toString()} not found`);
3690
+ }
3691
+ if (!assetInfo) {
3692
+ throw new Error(`Asset ${this.asset().address.toString()} not found in pool ${p.pool_id.address.toString()}`);
3693
+ }
3694
+ let vTokenContract = new Contract4(vesu_rebalance_abi_default, p.v_token.address, this.config.provider);
3695
+ const bal = await vTokenContract.balanceOf(this.address.address);
3696
+ const assets = await vTokenContract.convert_to_assets(uint2563.bnToUint256(bal.toString()));
3697
+ const item = {
3698
+ pool_id: p.pool_id,
3699
+ pool_name: _pool?.name,
3700
+ max_weight: p.max_weight,
3701
+ current_weight: isErrorPositionsAPI || !vesuPosition ? 0 : Number(Web3Number.fromWei(vesuPosition.collateral.value, this.decimals()).dividedBy(totalAssets.toString()).toFixed(6)),
3702
+ v_token: p.v_token,
3703
+ amount: Web3Number.fromWei(assets.toString(), this.decimals()),
3704
+ usdValue: isErrorPositionsAPI || !vesuPosition ? Web3Number.fromWei("0", this.decimals()) : Web3Number.fromWei(vesuPosition.collateral.usdPrice.value, vesuPosition.collateral.usdPrice.decimals),
3705
+ APY: isErrorPoolsAPI || !assetInfo ? {
3706
+ baseApy: 0,
3707
+ defiSpringApy: 0,
3708
+ netApy: 0
3709
+ } : {
3710
+ baseApy: Number(Web3Number.fromWei(assetInfo.stats.supplyApy.value, assetInfo.stats.supplyApy.decimals).toFixed(6)),
3711
+ defiSpringApy: Number(Web3Number.fromWei(assetInfo.stats.defiSpringSupplyApr.value, assetInfo.stats.defiSpringSupplyApr.decimals).toFixed(6)),
3712
+ netApy: 0
3713
+ },
3714
+ currentUtilization: isErrorPoolsAPI || !assetInfo ? 0 : Number(Web3Number.fromWei(assetInfo.stats.currentUtilization.value, assetInfo.stats.currentUtilization.decimals).toFixed(6)),
3715
+ maxUtilization: isErrorPoolsAPI || !assetInfo ? 0 : Number(Web3Number.fromWei(assetInfo.config.maxUtilization.value, assetInfo.config.maxUtilization.decimals).toFixed(6))
3716
+ };
3717
+ item.APY.netApy = item.APY.baseApy + item.APY.defiSpringApy;
3718
+ return item;
3719
+ }
3676
3720
  /**
3677
3721
  * Retrieves the list of allowed pools and their detailed information from multiple sources:
3678
3722
  * 1. Contract's allowed pools
@@ -3711,45 +3755,7 @@ var VesuRebalance = class _VesuRebalance extends BaseStrategy {
3711
3755
  isErrorPoolsAPI = true;
3712
3756
  }
3713
3757
  const totalAssets = (await this.getTVL()).amount;
3714
- const info = allowedPools.map(async (p) => {
3715
- const vesuPosition = vesuPositions.find((d) => d.pool.id.toString() === num2.getDecimalString(p.pool_id.address.toString()));
3716
- const _pool = pools.find((d) => {
3717
- logger.verbose(`pool check: ${d.id == num2.getDecimalString(p.pool_id.address.toString())}, id: ${d.id}, pool_id: ${num2.getDecimalString(p.pool_id.address.toString())}`);
3718
- return d.id == num2.getDecimalString(p.pool_id.address.toString());
3719
- });
3720
- logger.verbose(`pool: ${JSON.stringify(_pool)}`);
3721
- logger.verbose(typeof _pool);
3722
- logger.verbose(`name: ${_pool?.name}`);
3723
- if (!_pool) {
3724
- throw new Error(`Pool ${p.pool_id.address.toString()} not found`);
3725
- }
3726
- const assetInfo = _pool?.assets.find((d) => this.asset().address.eqString(d.address));
3727
- let vTokenContract = new Contract4(vesu_rebalance_abi_default, p.v_token.address, this.config.provider);
3728
- const bal = await vTokenContract.balanceOf(this.address.address);
3729
- const assets = await vTokenContract.convert_to_assets(uint2563.bnToUint256(bal.toString()));
3730
- const item = {
3731
- pool_id: p.pool_id,
3732
- pool_name: _pool?.name,
3733
- max_weight: p.max_weight,
3734
- current_weight: isErrorPositionsAPI || !vesuPosition ? 0 : Number(Web3Number.fromWei(vesuPosition.collateral.value, this.decimals()).dividedBy(totalAssets.toString()).toFixed(6)),
3735
- v_token: p.v_token,
3736
- amount: Web3Number.fromWei(assets.toString(), this.decimals()),
3737
- usdValue: isErrorPositionsAPI || !vesuPosition ? Web3Number.fromWei("0", this.decimals()) : Web3Number.fromWei(vesuPosition.collateral.usdPrice.value, vesuPosition.collateral.usdPrice.decimals),
3738
- APY: isErrorPoolsAPI || !assetInfo ? {
3739
- baseApy: 0,
3740
- defiSpringApy: 0,
3741
- netApy: 0
3742
- } : {
3743
- baseApy: Number(Web3Number.fromWei(assetInfo.stats.supplyApy.value, assetInfo.stats.supplyApy.decimals).toFixed(6)),
3744
- defiSpringApy: Number(Web3Number.fromWei(assetInfo.stats.defiSpringSupplyApr.value, assetInfo.stats.defiSpringSupplyApr.decimals).toFixed(6)),
3745
- netApy: 0
3746
- },
3747
- currentUtilization: isErrorPoolsAPI || !assetInfo ? 0 : Number(Web3Number.fromWei(assetInfo.stats.currentUtilization.value, assetInfo.stats.currentUtilization.decimals).toFixed(6)),
3748
- maxUtilization: isErrorPoolsAPI || !assetInfo ? 0 : Number(Web3Number.fromWei(assetInfo.config.maxUtilization.value, assetInfo.config.maxUtilization.decimals).toFixed(6))
3749
- };
3750
- item.APY.netApy = item.APY.baseApy + item.APY.defiSpringApy;
3751
- return item;
3752
- });
3758
+ const info = allowedPools.map((p) => this.getPoolInfo(p, pools, vesuPositions, totalAssets, isErrorPositionsAPI, isErrorPoolsAPI));
3753
3759
  const data = await Promise.all(info);
3754
3760
  return {
3755
3761
  data,
@@ -3974,6 +3980,7 @@ var VesuRebalanceStrategies = [{
3974
3980
  address: ContractAddr.from("0x115e94e722cfc4c77a2f15c4aefb0928c1c0029e5a57570df24c650cb7cec2c"),
3975
3981
  type: "ERC4626",
3976
3982
  depositTokens: [Global.getDefaultTokens().find((t) => t.symbol === "USDT")],
3983
+ auditUrl: AUDIT_URL,
3977
3984
  protocols: [_protocol],
3978
3985
  maxTVL: Web3Number.fromWei("0", 6),
3979
3986
  risk: {
@@ -3990,6 +3997,7 @@ var VesuRebalanceStrategies = [{
3990
3997
  // address: ContractAddr.from('0x778007f8136a5b827325d21613803e796bda4d676fbe1e34aeab0b2a2ec027f'),
3991
3998
  // type: 'ERC4626',
3992
3999
  // depositTokens: [Global.getDefaultTokens().find(t => t.symbol === 'WBTC')!],
4000
+ // auditUrl: AUDIT_URL,
3993
4001
  // protocols: [_protocol],
3994
4002
  // maxTVL: Web3Number.fromWei('0', 8),
3995
4003
  // risk: {
package/dist/index.d.ts CHANGED
@@ -395,6 +395,11 @@ declare class BaseStrategy<TVLInfo, ActionInfo> {
395
395
  withdrawCall(amountInfo: ActionInfo, receiver: ContractAddr, owner: ContractAddr): Call[];
396
396
  }
397
397
 
398
+ interface PoolProps {
399
+ pool_id: ContractAddr;
400
+ max_weight: number;
401
+ v_token: ContractAddr;
402
+ }
398
403
  interface Change {
399
404
  pool_id: ContractAddr;
400
405
  changeAmt: Web3Number;
@@ -488,6 +493,22 @@ declare class VesuRebalance extends BaseStrategy<SingleTokenInfo, SingleActionAm
488
493
  usdValue: number;
489
494
  }>;
490
495
  static getAllPossibleVerifiedPools(asset: ContractAddr): Promise<any>;
496
+ getPoolInfo(p: PoolProps, pools: any[], vesuPositions: any[], totalAssets: Web3Number, isErrorPositionsAPI: boolean, isErrorPoolsAPI: boolean): Promise<{
497
+ pool_id: ContractAddr;
498
+ pool_name: any;
499
+ max_weight: number;
500
+ current_weight: number;
501
+ v_token: ContractAddr;
502
+ amount: Web3Number;
503
+ usdValue: Web3Number;
504
+ APY: {
505
+ baseApy: number;
506
+ defiSpringApy: number;
507
+ netApy: number;
508
+ };
509
+ currentUtilization: number;
510
+ maxUtilization: number;
511
+ }>;
491
512
  /**
492
513
  * Retrieves the list of allowed pools and their detailed information from multiple sources:
493
514
  * 1. Contract's allowed pools
package/dist/index.js CHANGED
@@ -3761,6 +3761,50 @@ var VesuRebalance = class _VesuRebalance extends BaseStrategy {
3761
3761
  }).filter((p) => p !== null);
3762
3762
  return pools;
3763
3763
  }
3764
+ async getPoolInfo(p, pools, vesuPositions, totalAssets, isErrorPositionsAPI, isErrorPoolsAPI) {
3765
+ const vesuPosition = vesuPositions.find((d) => d.pool.id.toString() === import_starknet7.num.getDecimalString(p.pool_id.address.toString()));
3766
+ const _pool = pools.find((d) => {
3767
+ logger.verbose(`pool check: ${d.id == import_starknet7.num.getDecimalString(p.pool_id.address.toString())}, id: ${d.id}, pool_id: ${import_starknet7.num.getDecimalString(p.pool_id.address.toString())}`);
3768
+ return d.id == import_starknet7.num.getDecimalString(p.pool_id.address.toString());
3769
+ });
3770
+ logger.verbose(`pool: ${JSON.stringify(_pool)}`);
3771
+ logger.verbose(typeof _pool);
3772
+ logger.verbose(`name: ${_pool?.name}`);
3773
+ const name = _pool?.name;
3774
+ logger.verbose(`name2: ${name}`);
3775
+ const assetInfo = _pool?.assets.find((d) => this.asset().address.eqString(d.address));
3776
+ if (!name) {
3777
+ throw new Error(`Pool name ${p.pool_id.address.toString()} not found`);
3778
+ }
3779
+ if (!assetInfo) {
3780
+ throw new Error(`Asset ${this.asset().address.toString()} not found in pool ${p.pool_id.address.toString()}`);
3781
+ }
3782
+ let vTokenContract = new import_starknet7.Contract(vesu_rebalance_abi_default, p.v_token.address, this.config.provider);
3783
+ const bal = await vTokenContract.balanceOf(this.address.address);
3784
+ const assets = await vTokenContract.convert_to_assets(import_starknet7.uint256.bnToUint256(bal.toString()));
3785
+ const item = {
3786
+ pool_id: p.pool_id,
3787
+ pool_name: _pool?.name,
3788
+ max_weight: p.max_weight,
3789
+ current_weight: isErrorPositionsAPI || !vesuPosition ? 0 : Number(Web3Number.fromWei(vesuPosition.collateral.value, this.decimals()).dividedBy(totalAssets.toString()).toFixed(6)),
3790
+ v_token: p.v_token,
3791
+ amount: Web3Number.fromWei(assets.toString(), this.decimals()),
3792
+ usdValue: isErrorPositionsAPI || !vesuPosition ? Web3Number.fromWei("0", this.decimals()) : Web3Number.fromWei(vesuPosition.collateral.usdPrice.value, vesuPosition.collateral.usdPrice.decimals),
3793
+ APY: isErrorPoolsAPI || !assetInfo ? {
3794
+ baseApy: 0,
3795
+ defiSpringApy: 0,
3796
+ netApy: 0
3797
+ } : {
3798
+ baseApy: Number(Web3Number.fromWei(assetInfo.stats.supplyApy.value, assetInfo.stats.supplyApy.decimals).toFixed(6)),
3799
+ defiSpringApy: Number(Web3Number.fromWei(assetInfo.stats.defiSpringSupplyApr.value, assetInfo.stats.defiSpringSupplyApr.decimals).toFixed(6)),
3800
+ netApy: 0
3801
+ },
3802
+ currentUtilization: isErrorPoolsAPI || !assetInfo ? 0 : Number(Web3Number.fromWei(assetInfo.stats.currentUtilization.value, assetInfo.stats.currentUtilization.decimals).toFixed(6)),
3803
+ maxUtilization: isErrorPoolsAPI || !assetInfo ? 0 : Number(Web3Number.fromWei(assetInfo.config.maxUtilization.value, assetInfo.config.maxUtilization.decimals).toFixed(6))
3804
+ };
3805
+ item.APY.netApy = item.APY.baseApy + item.APY.defiSpringApy;
3806
+ return item;
3807
+ }
3764
3808
  /**
3765
3809
  * Retrieves the list of allowed pools and their detailed information from multiple sources:
3766
3810
  * 1. Contract's allowed pools
@@ -3799,45 +3843,7 @@ var VesuRebalance = class _VesuRebalance extends BaseStrategy {
3799
3843
  isErrorPoolsAPI = true;
3800
3844
  }
3801
3845
  const totalAssets = (await this.getTVL()).amount;
3802
- const info = allowedPools.map(async (p) => {
3803
- const vesuPosition = vesuPositions.find((d) => d.pool.id.toString() === import_starknet7.num.getDecimalString(p.pool_id.address.toString()));
3804
- const _pool = pools.find((d) => {
3805
- logger.verbose(`pool check: ${d.id == import_starknet7.num.getDecimalString(p.pool_id.address.toString())}, id: ${d.id}, pool_id: ${import_starknet7.num.getDecimalString(p.pool_id.address.toString())}`);
3806
- return d.id == import_starknet7.num.getDecimalString(p.pool_id.address.toString());
3807
- });
3808
- logger.verbose(`pool: ${JSON.stringify(_pool)}`);
3809
- logger.verbose(typeof _pool);
3810
- logger.verbose(`name: ${_pool?.name}`);
3811
- if (!_pool) {
3812
- throw new Error(`Pool ${p.pool_id.address.toString()} not found`);
3813
- }
3814
- const assetInfo = _pool?.assets.find((d) => this.asset().address.eqString(d.address));
3815
- let vTokenContract = new import_starknet7.Contract(vesu_rebalance_abi_default, p.v_token.address, this.config.provider);
3816
- const bal = await vTokenContract.balanceOf(this.address.address);
3817
- const assets = await vTokenContract.convert_to_assets(import_starknet7.uint256.bnToUint256(bal.toString()));
3818
- const item = {
3819
- pool_id: p.pool_id,
3820
- pool_name: _pool?.name,
3821
- max_weight: p.max_weight,
3822
- current_weight: isErrorPositionsAPI || !vesuPosition ? 0 : Number(Web3Number.fromWei(vesuPosition.collateral.value, this.decimals()).dividedBy(totalAssets.toString()).toFixed(6)),
3823
- v_token: p.v_token,
3824
- amount: Web3Number.fromWei(assets.toString(), this.decimals()),
3825
- usdValue: isErrorPositionsAPI || !vesuPosition ? Web3Number.fromWei("0", this.decimals()) : Web3Number.fromWei(vesuPosition.collateral.usdPrice.value, vesuPosition.collateral.usdPrice.decimals),
3826
- APY: isErrorPoolsAPI || !assetInfo ? {
3827
- baseApy: 0,
3828
- defiSpringApy: 0,
3829
- netApy: 0
3830
- } : {
3831
- baseApy: Number(Web3Number.fromWei(assetInfo.stats.supplyApy.value, assetInfo.stats.supplyApy.decimals).toFixed(6)),
3832
- defiSpringApy: Number(Web3Number.fromWei(assetInfo.stats.defiSpringSupplyApr.value, assetInfo.stats.defiSpringSupplyApr.decimals).toFixed(6)),
3833
- netApy: 0
3834
- },
3835
- currentUtilization: isErrorPoolsAPI || !assetInfo ? 0 : Number(Web3Number.fromWei(assetInfo.stats.currentUtilization.value, assetInfo.stats.currentUtilization.decimals).toFixed(6)),
3836
- maxUtilization: isErrorPoolsAPI || !assetInfo ? 0 : Number(Web3Number.fromWei(assetInfo.config.maxUtilization.value, assetInfo.config.maxUtilization.decimals).toFixed(6))
3837
- };
3838
- item.APY.netApy = item.APY.baseApy + item.APY.defiSpringApy;
3839
- return item;
3840
- });
3846
+ const info = allowedPools.map((p) => this.getPoolInfo(p, pools, vesuPositions, totalAssets, isErrorPositionsAPI, isErrorPoolsAPI));
3841
3847
  const data = await Promise.all(info);
3842
3848
  return {
3843
3849
  data,
@@ -4062,6 +4068,7 @@ var VesuRebalanceStrategies = [{
4062
4068
  address: ContractAddr.from("0x115e94e722cfc4c77a2f15c4aefb0928c1c0029e5a57570df24c650cb7cec2c"),
4063
4069
  type: "ERC4626",
4064
4070
  depositTokens: [Global.getDefaultTokens().find((t) => t.symbol === "USDT")],
4071
+ auditUrl: AUDIT_URL,
4065
4072
  protocols: [_protocol],
4066
4073
  maxTVL: Web3Number.fromWei("0", 6),
4067
4074
  risk: {
@@ -4078,6 +4085,7 @@ var VesuRebalanceStrategies = [{
4078
4085
  // address: ContractAddr.from('0x778007f8136a5b827325d21613803e796bda4d676fbe1e34aeab0b2a2ec027f'),
4079
4086
  // type: 'ERC4626',
4080
4087
  // depositTokens: [Global.getDefaultTokens().find(t => t.symbol === 'WBTC')!],
4088
+ // auditUrl: AUDIT_URL,
4081
4089
  // protocols: [_protocol],
4082
4090
  // maxTVL: Web3Number.fromWei('0', 8),
4083
4091
  // risk: {
package/dist/index.mjs CHANGED
@@ -3693,6 +3693,50 @@ var VesuRebalance = class _VesuRebalance extends BaseStrategy {
3693
3693
  }).filter((p) => p !== null);
3694
3694
  return pools;
3695
3695
  }
3696
+ async getPoolInfo(p, pools, vesuPositions, totalAssets, isErrorPositionsAPI, isErrorPoolsAPI) {
3697
+ const vesuPosition = vesuPositions.find((d) => d.pool.id.toString() === num2.getDecimalString(p.pool_id.address.toString()));
3698
+ const _pool = pools.find((d) => {
3699
+ logger.verbose(`pool check: ${d.id == num2.getDecimalString(p.pool_id.address.toString())}, id: ${d.id}, pool_id: ${num2.getDecimalString(p.pool_id.address.toString())}`);
3700
+ return d.id == num2.getDecimalString(p.pool_id.address.toString());
3701
+ });
3702
+ logger.verbose(`pool: ${JSON.stringify(_pool)}`);
3703
+ logger.verbose(typeof _pool);
3704
+ logger.verbose(`name: ${_pool?.name}`);
3705
+ const name = _pool?.name;
3706
+ logger.verbose(`name2: ${name}`);
3707
+ const assetInfo = _pool?.assets.find((d) => this.asset().address.eqString(d.address));
3708
+ if (!name) {
3709
+ throw new Error(`Pool name ${p.pool_id.address.toString()} not found`);
3710
+ }
3711
+ if (!assetInfo) {
3712
+ throw new Error(`Asset ${this.asset().address.toString()} not found in pool ${p.pool_id.address.toString()}`);
3713
+ }
3714
+ let vTokenContract = new Contract4(vesu_rebalance_abi_default, p.v_token.address, this.config.provider);
3715
+ const bal = await vTokenContract.balanceOf(this.address.address);
3716
+ const assets = await vTokenContract.convert_to_assets(uint2563.bnToUint256(bal.toString()));
3717
+ const item = {
3718
+ pool_id: p.pool_id,
3719
+ pool_name: _pool?.name,
3720
+ max_weight: p.max_weight,
3721
+ current_weight: isErrorPositionsAPI || !vesuPosition ? 0 : Number(Web3Number.fromWei(vesuPosition.collateral.value, this.decimals()).dividedBy(totalAssets.toString()).toFixed(6)),
3722
+ v_token: p.v_token,
3723
+ amount: Web3Number.fromWei(assets.toString(), this.decimals()),
3724
+ usdValue: isErrorPositionsAPI || !vesuPosition ? Web3Number.fromWei("0", this.decimals()) : Web3Number.fromWei(vesuPosition.collateral.usdPrice.value, vesuPosition.collateral.usdPrice.decimals),
3725
+ APY: isErrorPoolsAPI || !assetInfo ? {
3726
+ baseApy: 0,
3727
+ defiSpringApy: 0,
3728
+ netApy: 0
3729
+ } : {
3730
+ baseApy: Number(Web3Number.fromWei(assetInfo.stats.supplyApy.value, assetInfo.stats.supplyApy.decimals).toFixed(6)),
3731
+ defiSpringApy: Number(Web3Number.fromWei(assetInfo.stats.defiSpringSupplyApr.value, assetInfo.stats.defiSpringSupplyApr.decimals).toFixed(6)),
3732
+ netApy: 0
3733
+ },
3734
+ currentUtilization: isErrorPoolsAPI || !assetInfo ? 0 : Number(Web3Number.fromWei(assetInfo.stats.currentUtilization.value, assetInfo.stats.currentUtilization.decimals).toFixed(6)),
3735
+ maxUtilization: isErrorPoolsAPI || !assetInfo ? 0 : Number(Web3Number.fromWei(assetInfo.config.maxUtilization.value, assetInfo.config.maxUtilization.decimals).toFixed(6))
3736
+ };
3737
+ item.APY.netApy = item.APY.baseApy + item.APY.defiSpringApy;
3738
+ return item;
3739
+ }
3696
3740
  /**
3697
3741
  * Retrieves the list of allowed pools and their detailed information from multiple sources:
3698
3742
  * 1. Contract's allowed pools
@@ -3731,45 +3775,7 @@ var VesuRebalance = class _VesuRebalance extends BaseStrategy {
3731
3775
  isErrorPoolsAPI = true;
3732
3776
  }
3733
3777
  const totalAssets = (await this.getTVL()).amount;
3734
- const info = allowedPools.map(async (p) => {
3735
- const vesuPosition = vesuPositions.find((d) => d.pool.id.toString() === num2.getDecimalString(p.pool_id.address.toString()));
3736
- const _pool = pools.find((d) => {
3737
- logger.verbose(`pool check: ${d.id == num2.getDecimalString(p.pool_id.address.toString())}, id: ${d.id}, pool_id: ${num2.getDecimalString(p.pool_id.address.toString())}`);
3738
- return d.id == num2.getDecimalString(p.pool_id.address.toString());
3739
- });
3740
- logger.verbose(`pool: ${JSON.stringify(_pool)}`);
3741
- logger.verbose(typeof _pool);
3742
- logger.verbose(`name: ${_pool?.name}`);
3743
- if (!_pool) {
3744
- throw new Error(`Pool ${p.pool_id.address.toString()} not found`);
3745
- }
3746
- const assetInfo = _pool?.assets.find((d) => this.asset().address.eqString(d.address));
3747
- let vTokenContract = new Contract4(vesu_rebalance_abi_default, p.v_token.address, this.config.provider);
3748
- const bal = await vTokenContract.balanceOf(this.address.address);
3749
- const assets = await vTokenContract.convert_to_assets(uint2563.bnToUint256(bal.toString()));
3750
- const item = {
3751
- pool_id: p.pool_id,
3752
- pool_name: _pool?.name,
3753
- max_weight: p.max_weight,
3754
- current_weight: isErrorPositionsAPI || !vesuPosition ? 0 : Number(Web3Number.fromWei(vesuPosition.collateral.value, this.decimals()).dividedBy(totalAssets.toString()).toFixed(6)),
3755
- v_token: p.v_token,
3756
- amount: Web3Number.fromWei(assets.toString(), this.decimals()),
3757
- usdValue: isErrorPositionsAPI || !vesuPosition ? Web3Number.fromWei("0", this.decimals()) : Web3Number.fromWei(vesuPosition.collateral.usdPrice.value, vesuPosition.collateral.usdPrice.decimals),
3758
- APY: isErrorPoolsAPI || !assetInfo ? {
3759
- baseApy: 0,
3760
- defiSpringApy: 0,
3761
- netApy: 0
3762
- } : {
3763
- baseApy: Number(Web3Number.fromWei(assetInfo.stats.supplyApy.value, assetInfo.stats.supplyApy.decimals).toFixed(6)),
3764
- defiSpringApy: Number(Web3Number.fromWei(assetInfo.stats.defiSpringSupplyApr.value, assetInfo.stats.defiSpringSupplyApr.decimals).toFixed(6)),
3765
- netApy: 0
3766
- },
3767
- currentUtilization: isErrorPoolsAPI || !assetInfo ? 0 : Number(Web3Number.fromWei(assetInfo.stats.currentUtilization.value, assetInfo.stats.currentUtilization.decimals).toFixed(6)),
3768
- maxUtilization: isErrorPoolsAPI || !assetInfo ? 0 : Number(Web3Number.fromWei(assetInfo.config.maxUtilization.value, assetInfo.config.maxUtilization.decimals).toFixed(6))
3769
- };
3770
- item.APY.netApy = item.APY.baseApy + item.APY.defiSpringApy;
3771
- return item;
3772
- });
3778
+ const info = allowedPools.map((p) => this.getPoolInfo(p, pools, vesuPositions, totalAssets, isErrorPositionsAPI, isErrorPoolsAPI));
3773
3779
  const data = await Promise.all(info);
3774
3780
  return {
3775
3781
  data,
@@ -3994,6 +4000,7 @@ var VesuRebalanceStrategies = [{
3994
4000
  address: ContractAddr.from("0x115e94e722cfc4c77a2f15c4aefb0928c1c0029e5a57570df24c650cb7cec2c"),
3995
4001
  type: "ERC4626",
3996
4002
  depositTokens: [Global.getDefaultTokens().find((t) => t.symbol === "USDT")],
4003
+ auditUrl: AUDIT_URL,
3997
4004
  protocols: [_protocol],
3998
4005
  maxTVL: Web3Number.fromWei("0", 6),
3999
4006
  risk: {
@@ -4010,6 +4017,7 @@ var VesuRebalanceStrategies = [{
4010
4017
  // address: ContractAddr.from('0x778007f8136a5b827325d21613803e796bda4d676fbe1e34aeab0b2a2ec027f'),
4011
4018
  // type: 'ERC4626',
4012
4019
  // depositTokens: [Global.getDefaultTokens().find(t => t.symbol === 'WBTC')!],
4020
+ // auditUrl: AUDIT_URL,
4013
4021
  // protocols: [_protocol],
4014
4022
  // maxTVL: Web3Number.fromWei('0', 8),
4015
4023
  // risk: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strkfarm/sdk",
3
- "version": "1.0.25",
3
+ "version": "1.0.27",
4
4
  "description": "STRKFarm TS SDK (Meant for our internal use, but feel free to use it)",
5
5
  "typings": "dist/index.d.ts",
6
6
  "types": "dist/index.d.ts",
@@ -172,6 +172,58 @@ export class VesuRebalance extends BaseStrategy<SingleTokenInfo, SingleActionAmo
172
172
  return pools;
173
173
  }
174
174
 
175
+ async getPoolInfo(
176
+ p: PoolProps,
177
+ pools: any[],
178
+ vesuPositions: any[],
179
+ totalAssets: Web3Number,
180
+ isErrorPositionsAPI: boolean,
181
+ isErrorPoolsAPI: boolean,
182
+ ) {
183
+ const vesuPosition = vesuPositions.find((d: any) => d.pool.id.toString() === num.getDecimalString(p.pool_id.address.toString()));
184
+ const _pool = pools.find((d: any) => {
185
+ logger.verbose(`pool check: ${d.id == num.getDecimalString(p.pool_id.address.toString())}, id: ${d.id}, pool_id: ${num.getDecimalString(p.pool_id.address.toString())}`);
186
+ return d.id == num.getDecimalString(p.pool_id.address.toString());
187
+ });
188
+ logger.verbose(`pool: ${JSON.stringify(_pool)}`);
189
+ logger.verbose(typeof _pool);
190
+ logger.verbose(`name: ${_pool?.name}`);
191
+ const name = _pool?.name;
192
+ logger.verbose(`name2: ${name}`);
193
+ const assetInfo = _pool?.assets.find((d: any) => this.asset().address.eqString(d.address));
194
+ if (!name) {
195
+ throw new Error(`Pool name ${p.pool_id.address.toString()} not found`);
196
+ }
197
+ if (!assetInfo) {
198
+ throw new Error(`Asset ${this.asset().address.toString()} not found in pool ${p.pool_id.address.toString()}`);
199
+ }
200
+ let vTokenContract = new Contract(VesuRebalanceAbi, p.v_token.address, this.config.provider);
201
+ const bal = await vTokenContract.balanceOf(this.address.address);
202
+ const assets = await vTokenContract.convert_to_assets(uint256.bnToUint256(bal.toString()));
203
+ const item = {
204
+ pool_id: p.pool_id,
205
+ pool_name: _pool?.name,
206
+ max_weight: p.max_weight,
207
+ current_weight: isErrorPositionsAPI || !vesuPosition ? 0 : Number(Web3Number.fromWei(vesuPosition.collateral.value, this.decimals()).dividedBy(totalAssets.toString()).toFixed(6)),
208
+ v_token: p.v_token,
209
+ amount: Web3Number.fromWei(assets.toString(), this.decimals()),
210
+ usdValue: isErrorPositionsAPI || !vesuPosition ? Web3Number.fromWei("0", this.decimals()) : Web3Number.fromWei(vesuPosition.collateral.usdPrice.value, vesuPosition.collateral.usdPrice.decimals),
211
+ APY: isErrorPoolsAPI || !assetInfo ? {
212
+ baseApy: 0,
213
+ defiSpringApy: 0,
214
+ netApy: 0,
215
+ } : {
216
+ baseApy: Number(Web3Number.fromWei(assetInfo.stats.supplyApy.value, assetInfo.stats.supplyApy.decimals).toFixed(6)),
217
+ defiSpringApy: Number(Web3Number.fromWei(assetInfo.stats.defiSpringSupplyApr.value, assetInfo.stats.defiSpringSupplyApr.decimals).toFixed(6)),
218
+ netApy: 0,
219
+ },
220
+ currentUtilization: isErrorPoolsAPI || !assetInfo ? 0 : Number(Web3Number.fromWei(assetInfo.stats.currentUtilization.value, assetInfo.stats.currentUtilization.decimals).toFixed(6)),
221
+ maxUtilization: isErrorPoolsAPI || !assetInfo ? 0 : Number(Web3Number.fromWei(assetInfo.config.maxUtilization.value, assetInfo.config.maxUtilization.decimals).toFixed(6)),
222
+ }
223
+ item.APY.netApy = item.APY.baseApy + item.APY.defiSpringApy;
224
+ return item;
225
+ }
226
+
175
227
  /**
176
228
  * Retrieves the list of allowed pools and their detailed information from multiple sources:
177
229
  * 1. Contract's allowed pools
@@ -262,45 +314,7 @@ export class VesuRebalance extends BaseStrategy<SingleTokenInfo, SingleActionAmo
262
314
 
263
315
  const totalAssets = (await this.getTVL()).amount;
264
316
 
265
- const info = allowedPools.map(async (p) => {
266
- const vesuPosition = vesuPositions.find((d: any) => d.pool.id.toString() === num.getDecimalString(p.pool_id.address.toString()));
267
- const _pool = pools.find((d: any) => {
268
- logger.verbose(`pool check: ${d.id == num.getDecimalString(p.pool_id.address.toString())}, id: ${d.id}, pool_id: ${num.getDecimalString(p.pool_id.address.toString())}`);
269
- return d.id == num.getDecimalString(p.pool_id.address.toString());
270
- });
271
- logger.verbose(`pool: ${JSON.stringify(_pool)}`);
272
- logger.verbose(typeof _pool);
273
- logger.verbose(`name: ${_pool?.name}`);
274
- if (!_pool) {
275
- throw new Error(`Pool ${p.pool_id.address.toString()} not found`);
276
- }
277
- const assetInfo = _pool?.assets.find((d: any) => this.asset().address.eqString(d.address));
278
- let vTokenContract = new Contract(VesuRebalanceAbi, p.v_token.address, this.config.provider);
279
- const bal = await vTokenContract.balanceOf(this.address.address);
280
- const assets = await vTokenContract.convert_to_assets(uint256.bnToUint256(bal.toString()));
281
- const item = {
282
- pool_id: p.pool_id,
283
- pool_name: _pool?.name,
284
- max_weight: p.max_weight,
285
- current_weight: isErrorPositionsAPI || !vesuPosition ? 0 : Number(Web3Number.fromWei(vesuPosition.collateral.value, this.decimals()).dividedBy(totalAssets.toString()).toFixed(6)),
286
- v_token: p.v_token,
287
- amount: Web3Number.fromWei(assets.toString(), this.decimals()),
288
- usdValue: isErrorPositionsAPI || !vesuPosition ? Web3Number.fromWei("0", this.decimals()) : Web3Number.fromWei(vesuPosition.collateral.usdPrice.value, vesuPosition.collateral.usdPrice.decimals),
289
- APY: isErrorPoolsAPI || !assetInfo ? {
290
- baseApy: 0,
291
- defiSpringApy: 0,
292
- netApy: 0,
293
- } : {
294
- baseApy: Number(Web3Number.fromWei(assetInfo.stats.supplyApy.value, assetInfo.stats.supplyApy.decimals).toFixed(6)),
295
- defiSpringApy: Number(Web3Number.fromWei(assetInfo.stats.defiSpringSupplyApr.value, assetInfo.stats.defiSpringSupplyApr.decimals).toFixed(6)),
296
- netApy: 0,
297
- },
298
- currentUtilization: isErrorPoolsAPI || !assetInfo ? 0 : Number(Web3Number.fromWei(assetInfo.stats.currentUtilization.value, assetInfo.stats.currentUtilization.decimals).toFixed(6)),
299
- maxUtilization: isErrorPoolsAPI || !assetInfo ? 0 : Number(Web3Number.fromWei(assetInfo.config.maxUtilization.value, assetInfo.config.maxUtilization.decimals).toFixed(6)),
300
- }
301
- item.APY.netApy = item.APY.baseApy + item.APY.defiSpringApy;
302
- return item;
303
- });
317
+ const info = allowedPools.map(p => this.getPoolInfo(p, pools, vesuPositions, totalAssets, isErrorPositionsAPI, isErrorPoolsAPI));
304
318
  const data = await Promise.all(info);
305
319
  return {
306
320
  data,
@@ -554,6 +568,7 @@ export const VesuRebalanceStrategies: IStrategyMetadata<VesuRebalanceSettings>[]
554
568
  address: ContractAddr.from('0x115e94e722cfc4c77a2f15c4aefb0928c1c0029e5a57570df24c650cb7cec2c'),
555
569
  type: 'ERC4626',
556
570
  depositTokens: [Global.getDefaultTokens().find(t => t.symbol === 'USDT')!],
571
+ auditUrl: AUDIT_URL,
557
572
  protocols: [_protocol],
558
573
  maxTVL: Web3Number.fromWei('0', 6),
559
574
  risk: {
@@ -570,6 +585,7 @@ export const VesuRebalanceStrategies: IStrategyMetadata<VesuRebalanceSettings>[]
570
585
  // address: ContractAddr.from('0x778007f8136a5b827325d21613803e796bda4d676fbe1e34aeab0b2a2ec027f'),
571
586
  // type: 'ERC4626',
572
587
  // depositTokens: [Global.getDefaultTokens().find(t => t.symbol === 'WBTC')!],
588
+ // auditUrl: AUDIT_URL,
573
589
  // protocols: [_protocol],
574
590
  // maxTVL: Web3Number.fromWei('0', 8),
575
591
  // risk: {