@defisaver/positions-sdk 2.1.83 → 2.1.84-aave-v4-max-1-dev

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.
@@ -128,6 +128,8 @@ const formatReserveAsset = (reserveAsset, hubAsset, reserveId, oracleDecimals, n
128
128
  const premiumMultiplier = totalDrawnShares.isZero() ? new decimal_js_1.default(1) : totalDrawnShares.add(totalPremiumShares).div(totalDrawnShares);
129
129
  const supplyApr = borrowApr.mul(hubUtilization).mul(premiumMultiplier).mul(new decimal_js_1.default(1).minus(liquidityFee));
130
130
  const utilization = hubUtilization.times(100).toString();
131
+ const hubLiquidityRaw = hubAsset.liquidity;
132
+ const hubLiquidity = (0, utils_1.isMaxUint)(hubLiquidityRaw.toString()) ? hubLiquidityRaw.toString() : (0, tokens_1.assetAmountInEth)(hubLiquidityRaw.toString(), symbol);
131
133
  return ({
132
134
  symbol,
133
135
  underlying: reserveAsset.underlying,
@@ -161,6 +163,7 @@ const formatReserveAsset = (reserveAsset, hubAsset, reserveId, oracleDecimals, n
161
163
  canBeWithdrawn: reserveAsset.spokeActive && !reserveAsset.spokeHalted && !reserveAsset.paused,
162
164
  canBePayBacked: reserveAsset.spokeActive && !reserveAsset.spokeHalted && !reserveAsset.paused,
163
165
  utilization,
166
+ hubLiquidity,
164
167
  });
165
168
  });
166
169
  function _getAaveV4SpokeData(provider_1, network_1, market_1) {
@@ -173,6 +176,7 @@ function _getAaveV4SpokeData(provider_1, network_1, market_1) {
173
176
  hubsData[hubAddress] = yield fetchHubData(viewContract, hubAddress);
174
177
  })),
175
178
  ]);
179
+ console.log(spokeData);
176
180
  const reserveAssetsArray = yield Promise.all(spokeData[1].map((reserveAssetOnChain, index) => __awaiter(this, void 0, void 0, function* () { return formatReserveAsset(reserveAssetOnChain, hubsData[reserveAssetOnChain.hub].assets[reserveAssetOnChain.assetId], index, +spokeData[0].oracleDecimals.toString(), network); })));
177
181
  return {
178
182
  assetsData: reserveAssetsArray.reduce((acc, reserveAsset) => {
@@ -105,6 +105,8 @@ export interface AaveV4ReserveAssetData {
105
105
  canBeWithdrawn: boolean;
106
106
  canBePayBacked: boolean;
107
107
  utilization: string;
108
+ /** Hub `liquidity` for this assetId (underlying amount), used for pool-level borrow/withdraw limits */
109
+ hubLiquidity: string;
108
110
  }
109
111
  export type AaveV4AssetsData = Record<string, AaveV4ReserveAssetData>;
110
112
  export interface AaveV4UsedReserveAsset {
@@ -85,6 +85,8 @@ const formatReserveAsset = (reserveAsset, hubAsset, reserveId, oracleDecimals, n
85
85
  const premiumMultiplier = totalDrawnShares.isZero() ? new Dec(1) : totalDrawnShares.add(totalPremiumShares).div(totalDrawnShares);
86
86
  const supplyApr = borrowApr.mul(hubUtilization).mul(premiumMultiplier).mul(new Dec(1).minus(liquidityFee));
87
87
  const utilization = hubUtilization.times(100).toString();
88
+ const hubLiquidityRaw = hubAsset.liquidity;
89
+ const hubLiquidity = isMaxUint(hubLiquidityRaw.toString()) ? hubLiquidityRaw.toString() : assetAmountInEth(hubLiquidityRaw.toString(), symbol);
88
90
  return ({
89
91
  symbol,
90
92
  underlying: reserveAsset.underlying,
@@ -118,6 +120,7 @@ const formatReserveAsset = (reserveAsset, hubAsset, reserveId, oracleDecimals, n
118
120
  canBeWithdrawn: reserveAsset.spokeActive && !reserveAsset.spokeHalted && !reserveAsset.paused,
119
121
  canBePayBacked: reserveAsset.spokeActive && !reserveAsset.spokeHalted && !reserveAsset.paused,
120
122
  utilization,
123
+ hubLiquidity,
121
124
  });
122
125
  });
123
126
  export function _getAaveV4SpokeData(provider_1, network_1, market_1) {
@@ -130,6 +133,7 @@ export function _getAaveV4SpokeData(provider_1, network_1, market_1) {
130
133
  hubsData[hubAddress] = yield fetchHubData(viewContract, hubAddress);
131
134
  })),
132
135
  ]);
136
+ console.log(spokeData);
133
137
  const reserveAssetsArray = yield Promise.all(spokeData[1].map((reserveAssetOnChain, index) => __awaiter(this, void 0, void 0, function* () { return formatReserveAsset(reserveAssetOnChain, hubsData[reserveAssetOnChain.hub].assets[reserveAssetOnChain.assetId], index, +spokeData[0].oracleDecimals.toString(), network); })));
134
138
  return {
135
139
  assetsData: reserveAssetsArray.reduce((acc, reserveAsset) => {
@@ -105,6 +105,8 @@ export interface AaveV4ReserveAssetData {
105
105
  canBeWithdrawn: boolean;
106
106
  canBePayBacked: boolean;
107
107
  utilization: string;
108
+ /** Hub `liquidity` for this assetId (underlying amount), used for pool-level borrow/withdraw limits */
109
+ hubLiquidity: string;
108
110
  }
109
111
  export type AaveV4AssetsData = Record<string, AaveV4ReserveAssetData>;
110
112
  export interface AaveV4UsedReserveAsset {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@defisaver/positions-sdk",
3
- "version": "2.1.83",
3
+ "version": "2.1.84-aave-v4-max-1-dev",
4
4
  "description": "",
5
5
  "main": "./cjs/index.js",
6
6
  "module": "./esm/index.js",
@@ -99,6 +99,9 @@ const formatReserveAsset = async (reserveAsset: AaveV4ReserveAssetOnChain, hubAs
99
99
  const supplyApr = borrowApr.mul(hubUtilization).mul(premiumMultiplier).mul(new Dec(1).minus(liquidityFee));
100
100
  const utilization = hubUtilization.times(100).toString();
101
101
 
102
+ const hubLiquidityRaw = hubAsset.liquidity;
103
+ const hubLiquidity = isMaxUint(hubLiquidityRaw.toString()) ? hubLiquidityRaw.toString() : assetAmountInEth(hubLiquidityRaw.toString(), symbol);
104
+
102
105
  return ({
103
106
  symbol,
104
107
  underlying: reserveAsset.underlying,
@@ -132,6 +135,7 @@ const formatReserveAsset = async (reserveAsset: AaveV4ReserveAssetOnChain, hubAs
132
135
  canBeWithdrawn: reserveAsset.spokeActive && !reserveAsset.spokeHalted && !reserveAsset.paused,
133
136
  canBePayBacked: reserveAsset.spokeActive && !reserveAsset.spokeHalted && !reserveAsset.paused,
134
137
  utilization,
138
+ hubLiquidity,
135
139
  });
136
140
  };
137
141
 
@@ -146,6 +150,8 @@ export async function _getAaveV4SpokeData(provider: Client, network: NetworkNumb
146
150
  }),
147
151
  ]);
148
152
 
153
+ console.log(spokeData);
154
+
149
155
  const reserveAssetsArray = await Promise.all(spokeData[1].map(async (reserveAssetOnChain: AaveV4ReserveAssetOnChain, index: number) => formatReserveAsset(reserveAssetOnChain, hubsData[reserveAssetOnChain.hub].assets[reserveAssetOnChain.assetId], index, +spokeData[0].oracleDecimals.toString(), network)));
150
156
 
151
157
  return {
@@ -116,6 +116,8 @@ export interface AaveV4ReserveAssetData {
116
116
  canBeWithdrawn: boolean;
117
117
  canBePayBacked: boolean;
118
118
  utilization: string;
119
+ /** Hub `liquidity` for this assetId (underlying amount), used for pool-level borrow/withdraw limits */
120
+ hubLiquidity: string,
119
121
  }
120
122
 
121
123
  export type AaveV4AssetsData = Record<string, AaveV4ReserveAssetData>;