@defisaver/positions-sdk 2.1.160-shifter-v2-dev → 2.1.161-portfolio-api-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.
Files changed (118) hide show
  1. package/cjs/aaveV2/index.js +0 -2
  2. package/cjs/curveUsd/index.d.ts +2 -5
  3. package/cjs/curveUsd/index.js +15 -30
  4. package/cjs/fluid/index.d.ts +0 -5
  5. package/cjs/fluid/index.js +1 -36
  6. package/cjs/helpers/aaveHelpers/index.js +0 -3
  7. package/cjs/helpers/aaveV4Helpers/index.js +0 -1
  8. package/cjs/helpers/compoundHelpers/index.js +0 -2
  9. package/cjs/helpers/curveUsdHelpers/index.d.ts +1 -3
  10. package/cjs/helpers/curveUsdHelpers/index.js +2 -16
  11. package/cjs/helpers/fluidHelpers/index.js +0 -1
  12. package/cjs/helpers/liquityV2Helpers/index.js +0 -1
  13. package/cjs/helpers/llamaLendHelpers/index.js +0 -2
  14. package/cjs/helpers/makerHelpers/index.d.ts +1 -1
  15. package/cjs/helpers/makerHelpers/index.js +2 -2
  16. package/cjs/helpers/morphoBlueHelpers/index.js +0 -2
  17. package/cjs/helpers/morphoMidnightHelpers/index.js +0 -2
  18. package/cjs/helpers/sparkHelpers/index.js +0 -1
  19. package/cjs/liquity/index.js +2 -16
  20. package/cjs/maker/index.d.ts +2 -7
  21. package/cjs/maker/index.js +12 -45
  22. package/cjs/markets/index.d.ts +0 -1
  23. package/cjs/markets/index.js +1 -3
  24. package/cjs/portfolio/index.d.ts +1 -5
  25. package/cjs/portfolio/index.js +7 -277
  26. package/cjs/staking/staking.d.ts +0 -20
  27. package/cjs/staking/staking.js +1 -19
  28. package/cjs/types/aave.d.ts +15 -4
  29. package/cjs/types/aaveV4.d.ts +0 -1
  30. package/cjs/types/compound.d.ts +26 -4
  31. package/cjs/types/curveUsd.d.ts +9 -7
  32. package/cjs/types/fluid.d.ts +0 -1
  33. package/cjs/types/liquity.d.ts +0 -4
  34. package/cjs/types/liquityV2.d.ts +0 -2
  35. package/cjs/types/llamaLend.d.ts +12 -1
  36. package/cjs/types/maker.d.ts +0 -4
  37. package/cjs/types/morphoBlue.d.ts +2 -2
  38. package/cjs/types/morphoMidnight.d.ts +0 -1
  39. package/cjs/types/portfolio.d.ts +10 -26
  40. package/cjs/types/spark.d.ts +21 -3
  41. package/esm/aaveV2/index.js +0 -2
  42. package/esm/curveUsd/index.d.ts +2 -5
  43. package/esm/curveUsd/index.js +15 -30
  44. package/esm/fluid/index.d.ts +0 -5
  45. package/esm/fluid/index.js +0 -33
  46. package/esm/helpers/aaveHelpers/index.js +0 -3
  47. package/esm/helpers/aaveV4Helpers/index.js +0 -1
  48. package/esm/helpers/compoundHelpers/index.js +0 -2
  49. package/esm/helpers/curveUsdHelpers/index.d.ts +1 -3
  50. package/esm/helpers/curveUsdHelpers/index.js +2 -16
  51. package/esm/helpers/fluidHelpers/index.js +0 -1
  52. package/esm/helpers/liquityV2Helpers/index.js +0 -1
  53. package/esm/helpers/llamaLendHelpers/index.js +0 -2
  54. package/esm/helpers/makerHelpers/index.d.ts +1 -1
  55. package/esm/helpers/makerHelpers/index.js +2 -2
  56. package/esm/helpers/morphoBlueHelpers/index.js +0 -2
  57. package/esm/helpers/morphoMidnightHelpers/index.js +0 -2
  58. package/esm/helpers/sparkHelpers/index.js +0 -1
  59. package/esm/liquity/index.js +2 -16
  60. package/esm/maker/index.d.ts +2 -7
  61. package/esm/maker/index.js +13 -44
  62. package/esm/markets/index.d.ts +0 -1
  63. package/esm/markets/index.js +0 -1
  64. package/esm/portfolio/index.d.ts +1 -5
  65. package/esm/portfolio/index.js +10 -279
  66. package/esm/staking/staking.d.ts +0 -20
  67. package/esm/staking/staking.js +0 -17
  68. package/esm/types/aave.d.ts +15 -4
  69. package/esm/types/aaveV4.d.ts +0 -1
  70. package/esm/types/compound.d.ts +26 -4
  71. package/esm/types/curveUsd.d.ts +9 -7
  72. package/esm/types/fluid.d.ts +0 -1
  73. package/esm/types/liquity.d.ts +0 -4
  74. package/esm/types/liquityV2.d.ts +0 -2
  75. package/esm/types/llamaLend.d.ts +12 -1
  76. package/esm/types/maker.d.ts +0 -4
  77. package/esm/types/morphoBlue.d.ts +2 -2
  78. package/esm/types/morphoMidnight.d.ts +0 -1
  79. package/esm/types/portfolio.d.ts +10 -26
  80. package/esm/types/spark.d.ts +21 -3
  81. package/package.json +1 -1
  82. package/src/aaveV2/index.ts +0 -2
  83. package/src/curveUsd/index.ts +16 -33
  84. package/src/fluid/index.ts +0 -40
  85. package/src/helpers/aaveHelpers/index.ts +0 -3
  86. package/src/helpers/aaveV4Helpers/index.ts +0 -1
  87. package/src/helpers/compoundHelpers/index.ts +0 -2
  88. package/src/helpers/curveUsdHelpers/index.ts +2 -23
  89. package/src/helpers/fluidHelpers/index.ts +0 -1
  90. package/src/helpers/liquityV2Helpers/index.ts +0 -1
  91. package/src/helpers/llamaLendHelpers/index.ts +0 -2
  92. package/src/helpers/makerHelpers/index.ts +1 -2
  93. package/src/helpers/morphoBlueHelpers/index.ts +0 -2
  94. package/src/helpers/morphoMidnightHelpers/index.ts +0 -2
  95. package/src/helpers/sparkHelpers/index.ts +0 -1
  96. package/src/liquity/index.ts +2 -17
  97. package/src/maker/index.ts +29 -77
  98. package/src/markets/index.ts +1 -2
  99. package/src/portfolio/index.ts +8 -261
  100. package/src/staking/staking.ts +0 -28
  101. package/src/types/aave.ts +18 -4
  102. package/src/types/aaveV4.ts +0 -1
  103. package/src/types/compound.ts +38 -4
  104. package/src/types/curveUsd.ts +17 -8
  105. package/src/types/fluid.ts +0 -1
  106. package/src/types/liquity.ts +0 -6
  107. package/src/types/liquityV2.ts +0 -2
  108. package/src/types/llamaLend.ts +19 -1
  109. package/src/types/maker.ts +0 -6
  110. package/src/types/morphoBlue.ts +3 -2
  111. package/src/types/morphoMidnight.ts +0 -1
  112. package/src/types/portfolio.ts +12 -31
  113. package/src/types/spark.ts +25 -3
  114. package/cjs/markets/maker/index.d.ts +0 -1
  115. package/cjs/markets/maker/index.js +0 -13
  116. package/esm/markets/maker/index.d.ts +0 -1
  117. package/esm/markets/maker/index.js +0 -10
  118. package/src/markets/maker/index.ts +0 -10
@@ -177,8 +177,6 @@ const _getAaveV2AccountData = (provider, network, address, assetsData, market) =
177
177
  payload.collRatio = payload.borrowedUsd && payload.borrowedUsd !== '0'
178
178
  ? new decimal_js_1.default(payload.suppliedCollateralUsd).div(payload.borrowedUsd).mul(100).toString()
179
179
  : '0';
180
- // Aave v2 has no LTV-0 fallback (AaveV3View only), so its safety ratio is the plain ratio.
181
- payload.safetyRatio = payload.ratio;
182
180
  // Calculate borrow limits per asset
183
181
  Object.values(payload.usedAssets).forEach((item) => {
184
182
  if (item.isBorrowed) {
@@ -5,9 +5,6 @@ export declare const _getCurveUsdGlobalData: (provider: Client, network: Network
5
5
  export declare const getCurveUsdGlobalData: (provider: EthereumProvider, network: NetworkNumber, selectedMarket: CrvUSDMarketData) => Promise<CrvUSDGlobalMarketData>;
6
6
  export declare const _getCrvUsdAccountBalances: (provider: Client, network: NetworkNumber, block: Blockish, addressMapping: boolean, address: EthAddress, controllerAddress: EthAddress) => Promise<PositionBalances>;
7
7
  export declare const getCrvUsdAccountBalances: (provider: EthereumProvider, network: NetworkNumber, block: Blockish, addressMapping: boolean, address: EthAddress, controllerAddress: EthAddress) => Promise<PositionBalances>;
8
- /**
9
- * @param borrowRate market borrow APY in % (`CrvUSDGlobalMarketData.borrowRate`); when omitted it is read from the view contract
10
- */
11
- export declare const _getCurveUsdUserData: (provider: Client, network: NetworkNumber, address: EthAddress, selectedMarket: CrvUSDMarketData, activeBand: string, borrowRate?: string) => Promise<CrvUSDUserData>;
12
- export declare const getCurveUsdUserData: (provider: EthereumProvider, network: NetworkNumber, address: EthAddress, selectedMarket: CrvUSDMarketData, activeBand: string, borrowRate?: string) => Promise<CrvUSDUserData>;
8
+ export declare const _getCurveUsdUserData: (provider: Client, network: NetworkNumber, address: EthAddress, selectedMarket: CrvUSDMarketData, activeBand: string) => Promise<CrvUSDUserData>;
9
+ export declare const getCurveUsdUserData: (provider: EthereumProvider, network: NetworkNumber, address: EthAddress, selectedMarket: CrvUSDMarketData, activeBand: string) => Promise<CrvUSDUserData>;
13
10
  export declare const getCurveUsdFullPositionData: (provider: EthereumProvider, network: NetworkNumber, address: EthAddress, selectedMarket: CrvUSDMarketData) => Promise<CrvUSDUserData>;
@@ -22,12 +22,6 @@ const curveUsdHelpers_1 = require("../helpers/curveUsdHelpers");
22
22
  const markets_1 = require("../markets");
23
23
  const utils_1 = require("../services/utils");
24
24
  const viem_1 = require("../services/viem");
25
- const staking_1 = require("../staking");
26
- /** Converts a per-second AMM rate (wei, 18 decimals) into a yearly compounded borrow APY in %. */
27
- const ammRateToBorrowApy = (rateWei) => {
28
- const exponent = new decimal_js_1.default((0, tokens_1.assetAmountInEth)(rateWei)).mul(365).mul(86400);
29
- return new decimal_js_1.default(new decimal_js_1.default(2.718281828459).pow(exponent).minus(1)).mul(100).toString();
30
- };
31
25
  const getAndFormatBands = (provider, network, selectedMarket, _minBand, _maxBand) => __awaiter(void 0, void 0, void 0, function* () {
32
26
  const contract = (0, contracts_1.CrvUSDViewContractViem)(provider, network);
33
27
  const minBand = parseInt(_minBand, 10);
@@ -77,8 +71,14 @@ const _getCurveUsdGlobalData = (provider, network, selectedMarket) => __awaiter(
77
71
  // all prices are in 18 decimals
78
72
  const totalDebt = (0, tokens_1.assetAmountInEth)(data.totalDebt.toString(), debtAsset);
79
73
  const ammPrice = (0, tokens_1.assetAmountInEth)(data.ammPrice.toString(), debtAsset);
80
- const borrowRate = ammRateToBorrowApy(data.ammRate.toString());
81
- const futureBorrowRate = ammRateToBorrowApy(data.monetaryPolicyRate.toString());
74
+ const rate = (0, tokens_1.assetAmountInEth)(data.ammRate.toString());
75
+ const futureRate = (0, tokens_1.assetAmountInEth)(data.monetaryPolicyRate.toString());
76
+ const exponentRate = new decimal_js_1.default(rate).mul(365).mul(86400);
77
+ const exponentFutureRate = new decimal_js_1.default(futureRate).mul(365).mul(86400);
78
+ const borrowRate = new decimal_js_1.default(new decimal_js_1.default(2.718281828459).pow(exponentRate).minus(1)).mul(100)
79
+ .toString();
80
+ const futureBorrowRate = new decimal_js_1.default(new decimal_js_1.default(2.718281828459).pow(exponentFutureRate).minus(1)).mul(100)
81
+ .toString();
82
82
  const bandsData = yield getAndFormatBands(provider, network, selectedMarket, data.minBand.toString(), data.maxBand.toString());
83
83
  const leftToBorrow = new decimal_js_1.default(debtCeiling.toString()).minus(totalDebt).toString();
84
84
  const loanDiscount = (0, tokens_1.assetAmountInEth)(loanDiscountWei.toString(), debtAsset);
@@ -131,20 +131,11 @@ const _getCrvUsdAccountBalances = (provider, network, block, addressMapping, add
131
131
  exports._getCrvUsdAccountBalances = _getCrvUsdAccountBalances;
132
132
  const getCrvUsdAccountBalances = (provider, network, block, addressMapping, address, controllerAddress) => __awaiter(void 0, void 0, void 0, function* () { return (0, exports._getCrvUsdAccountBalances)((0, viem_1.getViemProvider)(provider, network), network, block, addressMapping, address, controllerAddress); });
133
133
  exports.getCrvUsdAccountBalances = getCrvUsdAccountBalances;
134
- /**
135
- * @param borrowRate market borrow APY in % (`CrvUSDGlobalMarketData.borrowRate`); when omitted it is read from the view contract
136
- */
137
- const _getCurveUsdUserData = (provider, network, address, selectedMarket, activeBand, borrowRate) => __awaiter(void 0, void 0, void 0, function* () {
134
+ const _getCurveUsdUserData = (provider, network, address, selectedMarket, activeBand) => __awaiter(void 0, void 0, void 0, function* () {
138
135
  const contract = (0, contracts_1.CrvUSDViewContractViem)(provider, network);
136
+ const data = yield contract.read.userData([selectedMarket.controllerAddress, address]);
139
137
  const collAsset = selectedMarket.collAsset;
140
138
  const debtAsset = selectedMarket.baseAsset;
141
- const [data, collStakingApy, marketBorrowRate] = yield Promise.all([
142
- contract.read.userData([selectedMarket.controllerAddress, address]),
143
- staking_1.STAKING_ASSETS.includes(collAsset) ? (0, staking_1.getStakingApy)(collAsset) : Promise.resolve('0'),
144
- borrowRate !== undefined
145
- ? Promise.resolve(borrowRate)
146
- : contract.read.globalData([selectedMarket.controllerAddress]).then((globalData) => ammRateToBorrowApy(globalData.ammRate.toString())),
147
- ]);
148
139
  const health = (0, tokens_1.assetAmountInEth)(data.health.toString());
149
140
  const healthPercent = new decimal_js_1.default(health).mul(100).toString();
150
141
  const collPrice = (0, tokens_1.assetAmountInEth)(data.collateralPrice.toString(), debtAsset);
@@ -175,7 +166,7 @@ const _getCurveUsdUserData = (provider, network, address, selectedMarket, active
175
166
  isBorrowed: new decimal_js_1.default(debtBorrowed).gt('0'),
176
167
  symbol: 'crvUSD',
177
168
  price: '1',
178
- interestRate: marketBorrowRate,
169
+ interestRate: '0',
179
170
  },
180
171
  } : {};
181
172
  const priceHigh = (0, tokens_1.assetAmountInEth)(data.priceHigh.toString());
@@ -187,22 +178,16 @@ const _getCurveUsdUserData = (provider, network, address, selectedMarket, active
187
178
  healthPercent,
188
179
  priceHigh,
189
180
  priceLow, liquidationDiscount: (0, tokens_1.assetAmountInEth)(data.liquidationDiscount.toString()), numOfBands: data.N.toString(), usedAssets,
190
- status, borrowRate: marketBorrowRate }), (0, curveUsdHelpers_1.getCrvUsdAggregatedData)({
191
- loanExists: data.loanExists,
192
- usedAssets,
193
- network: common_1.NetworkNumber.Eth,
194
- selectedMarket,
195
- numOfBands: data.N.toString(),
196
- borrowRate: marketBorrowRate,
197
- collStakingApy,
181
+ status }), (0, curveUsdHelpers_1.getCrvUsdAggregatedData)({
182
+ loanExists: data.loanExists, usedAssets, network: common_1.NetworkNumber.Eth, selectedMarket, numOfBands: data.N.toString(),
198
183
  })), { userBands });
199
184
  });
200
185
  exports._getCurveUsdUserData = _getCurveUsdUserData;
201
- const getCurveUsdUserData = (provider, network, address, selectedMarket, activeBand, borrowRate) => __awaiter(void 0, void 0, void 0, function* () { return (0, exports._getCurveUsdUserData)((0, viem_1.getViemProvider)(provider, network), network, address, selectedMarket, activeBand, borrowRate); });
186
+ const getCurveUsdUserData = (provider, network, address, selectedMarket, activeBand) => __awaiter(void 0, void 0, void 0, function* () { return (0, exports._getCurveUsdUserData)((0, viem_1.getViemProvider)(provider, network), network, address, selectedMarket, activeBand); });
202
187
  exports.getCurveUsdUserData = getCurveUsdUserData;
203
188
  const getCurveUsdFullPositionData = (provider, network, address, selectedMarket) => __awaiter(void 0, void 0, void 0, function* () {
204
189
  const marketData = yield (0, exports.getCurveUsdGlobalData)(provider, network, selectedMarket);
205
- const positionData = yield (0, exports.getCurveUsdUserData)(provider, network, address, selectedMarket, marketData.activeBand, marketData.borrowRate);
190
+ const positionData = yield (0, exports.getCurveUsdUserData)(provider, network, address, selectedMarket, marketData.activeBand);
206
191
  return positionData;
207
192
  });
208
193
  exports.getCurveUsdFullPositionData = getCurveUsdFullPositionData;
@@ -133,7 +133,6 @@ export declare const _getUserPositions: (provider: PublicClient, network: Networ
133
133
  merklBorrowIncentives: import("../types").IncentiveData[];
134
134
  ratio: string;
135
135
  collRatio: string;
136
- safetyRatio: string;
137
136
  minRatio: string;
138
137
  totalInterestUsd: string;
139
138
  leveragedType?: import("../types").LeverageType;
@@ -168,7 +167,6 @@ export declare const getUserPositions: (provider: EthereumProvider, network: Net
168
167
  merklBorrowIncentives: import("../types").IncentiveData[];
169
168
  ratio: string;
170
169
  collRatio: string;
171
- safetyRatio: string;
172
170
  minRatio: string;
173
171
  totalInterestUsd: string;
174
172
  leveragedType?: import("../types").LeverageType;
@@ -203,7 +201,6 @@ export declare const _getUserPositionsPortfolio: (provider: PublicClient, networ
203
201
  merklBorrowIncentives: import("../types").IncentiveData[];
204
202
  ratio: string;
205
203
  collRatio: string;
206
- safetyRatio: string;
207
204
  minRatio: string;
208
205
  totalInterestUsd: string;
209
206
  leveragedType?: import("../types").LeverageType;
@@ -224,5 +221,3 @@ export declare const _getUserPositionsPortfolio: (provider: PublicClient, networ
224
221
  nftId: string;
225
222
  } | undefined;
226
223
  }[]>;
227
- export declare const _getAllFluidMarketDataPortfolio: (provider: PublicClient, network: NetworkNumber) => Promise<Record<string, FluidMarketData>>;
228
- export declare const getAllFluidMarketDataPortfolio: (provider: EthereumProvider, network: NetworkNumber) => Promise<Record<string, FluidMarketData>>;
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.getAllFluidMarketDataPortfolio = exports._getAllFluidMarketDataPortfolio = exports._getUserPositionsPortfolio = exports.getUserPositions = exports._getUserPositions = exports.getAllUserEarnPositionsWithFTokens = exports._getAllUserEarnPositionsWithFTokens = exports.getFluidDepositData = exports._getFluidDepositData = exports.getFluidTokenData = exports._getFluidTokenData = exports.getAllFluidMarketDataChunked = exports._getAllFluidMarketDataChunked = exports.getFluidPositionWithMarket = exports._getFluidPositionWithMarket = exports.getFluidPosition = exports._getFluidPosition = exports.getFluidVaultIdsForUser = exports._getFluidVaultIdsForUser = exports.getFluidMarketData = exports._getFluidMarketData = exports.EMPTY_FLUID_DATA = exports.EMPTY_USED_ASSET = exports.attachFluidMerklIncentives = exports.getFluidMerklCampaigns = exports.buildFluidMerklRewardMap = exports.FluidMerklOpportunityType = void 0;
15
+ exports._getUserPositionsPortfolio = exports.getUserPositions = exports._getUserPositions = exports.getAllUserEarnPositionsWithFTokens = exports._getAllUserEarnPositionsWithFTokens = exports.getFluidDepositData = exports._getFluidDepositData = exports.getFluidTokenData = exports._getFluidTokenData = exports.getAllFluidMarketDataChunked = exports._getAllFluidMarketDataChunked = exports.getFluidPositionWithMarket = exports._getFluidPositionWithMarket = exports.getFluidPosition = exports._getFluidPosition = exports.getFluidVaultIdsForUser = exports._getFluidVaultIdsForUser = exports.getFluidMarketData = exports._getFluidMarketData = exports.EMPTY_FLUID_DATA = exports.EMPTY_USED_ASSET = exports.attachFluidMerklIncentives = exports.getFluidMerklCampaigns = exports.buildFluidMerklRewardMap = exports.FluidMerklOpportunityType = void 0;
16
16
  const decimal_js_1 = __importDefault(require("decimal.js"));
17
17
  const tokens_1 = require("@defisaver/tokens");
18
18
  const common_1 = require("../types/common");
@@ -1410,38 +1410,3 @@ const _getUserPositionsPortfolio = (provider, network, user) => __awaiter(void 0
1410
1410
  })).filter(md => md.marketData !== undefined);
1411
1411
  });
1412
1412
  exports._getUserPositionsPortfolio = _getUserPositionsPortfolio;
1413
- const _getAllFluidMarketDataPortfolio = (provider, network) => __awaiter(void 0, void 0, void 0, function* () {
1414
- const versions = (0, markets_1.getFluidVersionsDataForNetwork)(network);
1415
- if (versions.length === 0)
1416
- return {};
1417
- const view = (0, contracts_1.FluidViewContractViem)(provider, network);
1418
- const vaultsData = yield Promise.all(versions.map((version) => view.read.getVaultData([version.marketAddress])));
1419
- const tokens = Array.from(new Set(vaultsData.map((vaultData) => {
1420
- const vaultTokens = [(0, tokens_1.getAssetInfoByAddress)(vaultData.supplyToken0, network).symbol, (0, tokens_1.getAssetInfoByAddress)(vaultData.borrowToken0, network).symbol];
1421
- if (vaultData.supplyToken1 && !(0, utils_1.compareAddresses)(constants_1.ZERO_ADDRESS, vaultData.supplyToken1))
1422
- vaultTokens.push((0, tokens_1.getAssetInfoByAddress)(vaultData.supplyToken1, network).symbol);
1423
- if (vaultData.borrowToken1 && !(0, utils_1.compareAddresses)(constants_1.ZERO_ADDRESS, vaultData.borrowToken1))
1424
- vaultTokens.push((0, tokens_1.getAssetInfoByAddress)(vaultData.borrowToken1, network).symbol);
1425
- return vaultTokens;
1426
- }).flat()));
1427
- // ETH and WBTC needed for other tokens prices
1428
- if (!tokens.includes('ETH'))
1429
- tokens.push('ETH');
1430
- if (!tokens.includes('WBTC'))
1431
- tokens.push('WBTC');
1432
- const [tokenPrices, merklCampaigns] = yield Promise.all([
1433
- getTokensPricesForPortfolio(tokens, provider, network),
1434
- (0, merkl_1.getFluidMerklCampaigns)(network),
1435
- ]);
1436
- const parsedMarketsData = yield Promise.all(vaultsData.map((vaultData) => __awaiter(void 0, void 0, void 0, function* () { return parseMarketData(provider, vaultData, network, tokenPrices); })));
1437
- const marketsData = {};
1438
- parsedMarketsData.forEach((marketData, i) => {
1439
- if (!marketData)
1440
- return;
1441
- marketsData[versions[i].value] = (0, merkl_1.attachFluidMerklIncentives)(marketData, merklCampaigns);
1442
- });
1443
- return marketsData;
1444
- });
1445
- exports._getAllFluidMarketDataPortfolio = _getAllFluidMarketDataPortfolio;
1446
- const getAllFluidMarketDataPortfolio = (provider, network) => __awaiter(void 0, void 0, void 0, function* () { return (0, exports._getAllFluidMarketDataPortfolio)((0, viem_1.getViemProvider)(provider, network, { batch: { multicall: true } }), network); });
1447
- exports.getAllFluidMarketDataPortfolio = getAllFluidMarketDataPortfolio;
@@ -140,9 +140,6 @@ const aaveAnyGetAggregatedPositionData = (_a) => {
140
140
  return new decimal_js_1.default(suppliedUsd).mul(effectiveLtv);
141
141
  });
142
142
  payload.safetyRatioWithLtvZeroFallback = +payload.suppliedUsd ? new decimal_js_1.default(payload.borrowLimitWithLtvZeroFallbackUsd).div(payload.borrowedUsd).mul(100).toString() : '0';
143
- // Normalised safety ratio (100 = liquidation on every protocol): the automation ratio above, falling back
144
- // to the regular ratio when the fallback carries its '0' placeholder.
145
- payload.safetyRatio = +payload.safetyRatioWithLtvZeroFallback ? payload.safetyRatioWithLtvZeroFallback : payload.ratio;
146
143
  payload.liqRatio = new decimal_js_1.default(payload.borrowLimitUsd).div(payload.liquidationLimitUsd).toString();
147
144
  payload.liqPercent = new decimal_js_1.default(payload.borrowLimitUsd).div(payload.liquidationLimitUsd).mul(100).toString();
148
145
  const { leveragedType, leveragedAsset } = (0, moneymarket_1.isLeveragedPos)(usedAssets);
@@ -219,7 +219,6 @@ const aaveV4GetAggregatedPositionData = ({ usedAssets, assetsData, network, useU
219
219
  payload.ratio = +payload.suppliedUsd ? new decimal_js_1.default(payload.borrowLimitUsd).div(payload.borrowedUsd).mul(100).toString() : '0';
220
220
  payload.minRatio = '100';
221
221
  payload.collRatio = +payload.suppliedUsd ? new decimal_js_1.default(payload.suppliedCollateralUsd).div(payload.borrowedUsd).mul(100).toString() : '0';
222
- payload.safetyRatio = payload.ratio;
223
222
  payload.liqRatio = new decimal_js_1.default(payload.borrowLimitUsd).div(payload.liquidationLimitUsd).toString();
224
223
  payload.liqPercent = new decimal_js_1.default(payload.borrowLimitUsd).div(payload.liquidationLimitUsd).mul(100).toString();
225
224
  const { leveragedType, leveragedAsset } = (0, exports.isLeveragedPosAaveV4)(usedAssets);
@@ -102,7 +102,6 @@ const getCompoundV2AggregatedData = (_a) => {
102
102
  payload.collRatio = payload.borrowedUsd && payload.borrowedUsd !== '0'
103
103
  ? new decimal_js_1.default(payload.suppliedCollateralUsd).div(payload.borrowedUsd).mul(100).toString()
104
104
  : '0';
105
- payload.safetyRatio = payload.ratio;
106
105
  // Calculate borrow limits per asset
107
106
  Object.values(usedAssets).forEach((item) => {
108
107
  if (item.isBorrowed) {
@@ -145,7 +144,6 @@ const getCompoundV3AggregatedData = (_a) => {
145
144
  payload.incentiveUsd = incentiveUsd;
146
145
  payload.totalInterestUsd = totalInterestUsd;
147
146
  payload.minRatio = '100';
148
- payload.safetyRatio = payload.ratio;
149
147
  payload.liqRatio = new decimal_js_1.default(payload.borrowLimitUsd).div(payload.liquidationLimitUsd).toString();
150
148
  payload.liqPercent = new decimal_js_1.default(payload.borrowLimitUsd).div(payload.liquidationLimitUsd).mul(100).toString();
151
149
  payload.minDebt = assetsData[selectedMarket.baseAsset].minDebt;
@@ -1,11 +1,9 @@
1
1
  import { CrvUSDAggregatedPositionData, CrvUSDMarketData, CrvUSDUsedAssets } from '../../types';
2
2
  import { NetworkNumber } from '../../types/common';
3
- export declare const getCrvUsdAggregatedData: ({ loanExists, usedAssets, network, selectedMarket, numOfBands, borrowRate, collStakingApy, ...rest }: {
3
+ export declare const getCrvUsdAggregatedData: ({ loanExists, usedAssets, network, selectedMarket, numOfBands, ...rest }: {
4
4
  loanExists: boolean;
5
5
  usedAssets: CrvUSDUsedAssets;
6
6
  network: NetworkNumber;
7
7
  selectedMarket: CrvUSDMarketData;
8
8
  numOfBands: number | string;
9
- borrowRate?: string;
10
- collStakingApy?: string;
11
9
  }) => CrvUSDAggregatedPositionData;
@@ -18,10 +18,9 @@ exports.getCrvUsdAggregatedData = void 0;
18
18
  const decimal_js_1 = __importDefault(require("decimal.js"));
19
19
  const moneymarket_1 = require("../../moneymarket");
20
20
  const utils_1 = require("../../services/utils");
21
- const staking_1 = require("../../staking");
22
21
  const getCrvUsdAggregatedData = (_a) => {
23
- var _b, _c;
24
- var { loanExists, usedAssets, network, selectedMarket, numOfBands, borrowRate = '0', collStakingApy = '0' } = _a, rest = __rest(_a, ["loanExists", "usedAssets", "network", "selectedMarket", "numOfBands", "borrowRate", "collStakingApy"]);
22
+ var _b;
23
+ var { loanExists, usedAssets, network, selectedMarket, numOfBands } = _a, rest = __rest(_a, ["loanExists", "usedAssets", "network", "selectedMarket", "numOfBands"]);
25
24
  const payload = {};
26
25
  payload.supplied = (0, moneymarket_1.getAssetsTotal)(usedAssets, ({ isSupplied }) => isSupplied, ({ supplied }) => supplied); // this is wrong if we are in soft-liquidations
27
26
  payload.borrowed = (0, moneymarket_1.getAssetsTotal)(usedAssets, ({ isBorrowed }) => isBorrowed, ({ borrowed }) => borrowed);
@@ -35,8 +34,6 @@ const getCrvUsdAggregatedData = (_a) => {
35
34
  : '0';
36
35
  // this is all approximation
37
36
  payload.minAllowedRatio = (0, utils_1.mapRange)(numOfBands, 4, 50, 115, 140); // collateral ratio
38
- // Collateral ratio rebased so 100 sits on the band-derived minimum (normalised safety ratio, same scale as the other protocols).
39
- payload.safetyRatio = loanExists && payload.minAllowedRatio ? new decimal_js_1.default(payload.ratio).div(payload.minAllowedRatio).mul(100).toString() : '0';
40
37
  payload.collFactor = new decimal_js_1.default(1).div(payload.minAllowedRatio).mul(100).toString(); // collateral factor = 1 / collateral ratio
41
38
  // only take in consideration collAsset
42
39
  payload.borrowLimitUsd = ((_b = usedAssets === null || usedAssets === void 0 ? void 0 : usedAssets[selectedMarket.collAsset]) === null || _b === void 0 ? void 0 : _b.isSupplied)
@@ -50,17 +47,6 @@ const getCrvUsdAggregatedData = (_a) => {
50
47
  payload.liquidationPrice = (0, moneymarket_1.calcLeverageLiqPrice)(leveragedType, usedAssets[selectedMarket.collAsset].price, payload.borrowedUsd, payload.borrowLimitUsd);
51
48
  }
52
49
  payload.exposure = (0, moneymarket_1.getExposure)(payload.borrowedUsd, payload.suppliedUsd);
53
- // crvUSD debt accrues the market borrow rate. Collateral (including crvUSD held during soft liquidation) earns
54
- // nothing from the protocol itself; only the native yield of staked collateral is counted, as an incentive.
55
- const { netApy, totalInterestUsd, incentiveUsd } = (0, staking_1.calculateNetApyFromRates)({
56
- suppliedUsd: payload.suppliedUsd,
57
- borrowedUsd: payload.borrowedUsd,
58
- borrowRate,
59
- incentives: [{ apy: collStakingApy, amountUsd: ((_c = usedAssets === null || usedAssets === void 0 ? void 0 : usedAssets[selectedMarket.collAsset]) === null || _c === void 0 ? void 0 : _c.suppliedUsd) || '0' }],
60
- });
61
- payload.netApy = netApy;
62
- payload.totalInterestUsd = totalInterestUsd;
63
- payload.incentiveUsd = incentiveUsd;
64
50
  return payload;
65
51
  };
66
52
  exports.getCrvUsdAggregatedData = getCrvUsdAggregatedData;
@@ -85,7 +85,6 @@ const getFluidAggregatedData = ({ usedAssets, assetsData, marketData, }, supplyS
85
85
  payload.ratio = +payload.suppliedUsd ? new decimal_js_1.default(payload.borrowLimitUsd).div(payload.borrowedUsd).mul(100).toString() : '0';
86
86
  payload.collRatio = +payload.suppliedUsd ? new decimal_js_1.default(payload.suppliedUsd).div(payload.borrowedUsd).mul(100).toString() : '0';
87
87
  payload.minRatio = marketData.minRatio;
88
- payload.safetyRatio = payload.ratio;
89
88
  const { leveragedType, leveragedAsset } = (0, moneymarket_1.isLeveragedPos)(usedAssets);
90
89
  payload.leveragedType = leveragedType;
91
90
  payload.liquidationPrice = '';
@@ -48,7 +48,6 @@ const getLiquityV2AggregatedPositionData = ({ usedAssets, assetsData, minCollRat
48
48
  payload.leftToBorrowUsd = leftToBorrowUsd.lte('0') ? '0' : leftToBorrowUsd.toString();
49
49
  payload.ratio = (+payload.suppliedUsd && +payload.borrowedUsd) ? new decimal_js_1.default(payload.borrowLimitUsd).div(payload.borrowedUsd).mul(100).toString() : '0';
50
50
  payload.collRatio = (+payload.suppliedUsd && +payload.borrowedUsd) ? new decimal_js_1.default(payload.suppliedUsd).div(payload.borrowedUsd).mul(100).toString() : '0';
51
- payload.safetyRatio = payload.ratio;
52
51
  const { netApy, incentiveUsd, totalInterestUsd } = (0, exports.calculateNetApyLiquityV2)(usedAssets, assetsData, interestRate);
53
52
  payload.netApy = netApy;
54
53
  payload.incentiveUsd = incentiveUsd;
@@ -42,8 +42,6 @@ const getLlamaLendAggregatedData = (_a) => {
42
42
  : '0';
43
43
  // this is all approximation
44
44
  payload.minAllowedRatio = (0, utils_1.mapRange)(numOfBands, 4, 50, 115, 140); // collateral ratio
45
- // Collateral ratio rebased so 100 sits on the band-derived minimum (normalised safety ratio, same scale as the other protocols).
46
- payload.safetyRatio = loanExists && payload.minAllowedRatio ? new decimal_js_1.default(payload.ratio).div(payload.minAllowedRatio).mul(100).toString() : '0';
47
45
  payload.collFactor = new decimal_js_1.default(1).div(payload.minAllowedRatio).mul(100).toString(); // collateral factor = 1 / collateral ratio
48
46
  // only take in consideration collAsset
49
47
  payload.borrowLimitUsd = ((_b = usedAssets === null || usedAssets === void 0 ? void 0 : usedAssets[collAsset]) === null || _b === void 0 ? void 0 : _b.isSupplied)
@@ -1,4 +1,4 @@
1
- export declare const parseCollateralInfo: (ilk: string, _par: string, _mat: string, _art: string, _rate: string, _spot: string, _line: string, _dust: string, _duty: string, _futureRate: string, _chop: string) => {
1
+ export declare const parseCollateralInfo: (ilk: string, _par: string, _mat: string, _art: string, _rate: string, _spot: string, _line: string, _duty: string, _futureRate: string, _chop: string) => {
2
2
  ilkLabel: string;
3
3
  currentRate: string;
4
4
  futureRate: string;
@@ -7,14 +7,14 @@ exports.parseCollateralInfo = void 0;
7
7
  const decimal_js_1 = __importDefault(require("decimal.js"));
8
8
  const constants_1 = require("../../constants");
9
9
  const utils_1 = require("../../services/utils");
10
- const parseCollateralInfo = (ilk, _par, _mat, _art, _rate, _spot, _line, _dust, _duty, _futureRate, _chop) => {
10
+ const parseCollateralInfo = (ilk, _par, _mat, _art, _rate, _spot, _line, _duty, _futureRate, _chop) => {
11
11
  const par = new decimal_js_1.default(_par).div(1e27).toString();
12
12
  const mat = new decimal_js_1.default(_mat).div(1e27).toString();
13
13
  const art = new decimal_js_1.default(_art).toString();
14
14
  const rate = new decimal_js_1.default(_rate).toString();
15
15
  const spot = new decimal_js_1.default(_spot).div(1e27).toString();
16
16
  const line = new decimal_js_1.default(_line).div(1e45).toString();
17
- const dust = new decimal_js_1.default(_dust).div(1e45).toString(); // Vat.ilks.dust, rad (1e45) -> DAI
17
+ const dust = new decimal_js_1.default(_rate).div(1e45).toString();
18
18
  const duty = new decimal_js_1.default(_duty).toString();
19
19
  const futureRate = new decimal_js_1.default(_futureRate).toString();
20
20
  const chop = new decimal_js_1.default(_chop).div(1e18).toString();
@@ -46,8 +46,6 @@ const getMorphoBlueAggregatedPositionData = ({ usedAssets, assetsData, marketInf
46
46
  payload.ltv = new decimal_js_1.default(((_c = usedAssets[loanToken]) === null || _c === void 0 ? void 0 : _c.borrowed) || 0).div(oracle).div(((_d = usedAssets[collateralToken]) === null || _d === void 0 ? void 0 : _d.supplied) || 1).toString(); // default to 1 because can't div 0
47
47
  payload.ratio = new decimal_js_1.default(((_e = usedAssets[collateralToken]) === null || _e === void 0 ? void 0 : _e.supplied) || 0).mul(oracle).div(((_f = usedAssets[loanToken]) === null || _f === void 0 ? void 0 : _f.borrowed) || 1).mul(100)
48
48
  .toString();
49
- // Borrow limit over debt, so 100 sits on the market's LLTV however low it is (`ratio` is the raw collateral ratio).
50
- payload.safetyRatio = +payload.borrowedUsd > 0 ? new decimal_js_1.default(payload.borrowLimitUsd).div(payload.borrowedUsd).mul(100).toString() : '0';
51
49
  const { leveragedType, leveragedAsset } = (0, moneymarket_1.isLeveragedPos)(usedAssets);
52
50
  payload.leveragedType = leveragedType;
53
51
  payload.liquidationPrice = '';
@@ -77,8 +77,6 @@ const getMorphoMidnightAggregatedPositionData = ({ usedAssets, assetsData, marke
77
77
  payload.ltv = new decimal_js_1.default(payload.suppliedCollateralUsd).eq(0) ? '0' : new decimal_js_1.default(payload.borrowedUsd).div(payload.suppliedCollateralUsd).toString();
78
78
  payload.ratio = new decimal_js_1.default(payload.borrowedUsd).eq(0) ? '0' : new decimal_js_1.default(payload.suppliedCollateralUsd).div(payload.borrowedUsd).mul(100).toString();
79
79
  payload.healthRatio = new decimal_js_1.default(payload.borrowedUsd).eq(0) ? 'Infinity' : new decimal_js_1.default(payload.liquidationLimitUsd).div(payload.borrowedUsd).toDP(4).toString();
80
- // Borrow limit over debt, so 100 sits on the market's LLTV however low it is (`ratio` is the raw collateral ratio).
81
- payload.safetyRatio = +payload.borrowedUsd > 0 ? new decimal_js_1.default(payload.borrowLimitUsd).div(payload.borrowedUsd).mul(100).toString() : '0';
82
80
  const { leveragedType, leveragedAsset } = (0, moneymarket_1.isLeveragedPos)(usedAssets);
83
81
  payload.leveragedType = leveragedType;
84
82
  payload.liquidationPrice = '';
@@ -81,7 +81,6 @@ const sparkGetAggregatedPositionData = (_a) => {
81
81
  payload.leftToBorrowUsd = leftToBorrowUsd.lte('0') ? '0' : leftToBorrowUsd.toString();
82
82
  payload.ratio = +payload.suppliedUsd ? new decimal_js_1.default(payload.borrowLimitUsd).div(payload.borrowedUsd).mul(100).toString() : '0';
83
83
  payload.collRatio = +payload.suppliedUsd ? new decimal_js_1.default(payload.suppliedCollateralUsd).div(payload.borrowedUsd).mul(100).toString() : '0';
84
- payload.safetyRatio = payload.ratio;
85
84
  const { netApy, incentiveUsd, totalInterestUsd } = (0, staking_1.calculateNetApy)({ usedAssets, assetsData });
86
85
  payload.netApy = netApy;
87
86
  payload.incentiveUsd = incentiveUsd;
@@ -22,7 +22,6 @@ const constants_1 = require("../constants");
22
22
  const viem_1 = require("../services/viem");
23
23
  const utils_1 = require("../services/utils");
24
24
  const moneymarket_1 = require("../moneymarket");
25
- const staking_1 = require("../staking");
26
25
  exports.LIQUITY_NORMAL_MODE_RATIO = 110; // MCR
27
26
  exports.LIQUITY_RECOVERY_MODE_RATIO = 150; // CCR
28
27
  const _getLiquityAccountBalances = (provider, network, block, addressMapping, address) => __awaiter(void 0, void 0, void 0, function* () {
@@ -78,14 +77,6 @@ const _getLiquityTroveInfo = (provider, network, address) => __awaiter(void 0, v
78
77
  _getDebtInFront(viewContract, address),
79
78
  ]);
80
79
  const recoveryMode = troveInfo[6];
81
- const minCollateralRatio = recoveryMode ? exports.LIQUITY_RECOVERY_MODE_RATIO : exports.LIQUITY_NORMAL_MODE_RATIO;
82
- const collateral = (0, tokens_1.assetAmountInEth)(troveInfo[1].toString());
83
- const debtInAsset = (0, tokens_1.assetAmountInEth)(troveInfo[2].toString());
84
- const collateralUsd = new decimal_js_1.default(collateral).mul((0, tokens_1.assetAmountInEth)(assetPrice.toString())).toString();
85
- const collRatio = +debtInAsset ? new decimal_js_1.default(collateralUsd).div(debtInAsset).mul(100).toString() : '0';
86
- // LUSD debt is interest free (only a one-off borrowing fee on issuance) and ETH collateral earns no yield,
87
- // so a trove's net APY is always 0. It is exposed for parity with the other protocols.
88
- const { netApy, totalInterestUsd, incentiveUsd } = (0, staking_1.calculateNetApyFromRates)({ suppliedUsd: collateralUsd, borrowedUsd: debtInAsset });
89
80
  const payload = {
90
81
  troveStatus: types_1.LIQUITY_TROVE_STATUS_ENUM[+(troveInfo[0].toString())],
91
82
  collateral: (0, tokens_1.assetAmountInEth)(troveInfo[1].toString()),
@@ -98,15 +89,10 @@ const _getLiquityTroveInfo = (provider, network, address) => __awaiter(void 0, v
98
89
  totalETH: totalETH.toString(),
99
90
  totalLUSD: totalLUSD.toString(),
100
91
  debtInFront: debtInFront.toString(),
101
- minCollateralRatio,
102
- // Collateral ratio rebased so 100 sits on the trove's minimum collateral ratio (normalised safety ratio).
103
- safetyRatio: +minCollateralRatio > 0 ? new decimal_js_1.default(collRatio).div(minCollateralRatio).mul(100).toString() : '0',
92
+ minCollateralRatio: recoveryMode ? exports.LIQUITY_RECOVERY_MODE_RATIO : exports.LIQUITY_NORMAL_MODE_RATIO,
104
93
  priceForRecovery: new decimal_js_1.default(recoveryMode ? exports.LIQUITY_RECOVERY_MODE_RATIO : exports.LIQUITY_NORMAL_MODE_RATIO).mul(totalLUSD).div(totalETH).div(100)
105
94
  .toString(),
106
- exposure: (0, moneymarket_1.getExposure)(debtInAsset, collateralUsd),
107
- netApy,
108
- totalInterestUsd,
109
- incentiveUsd,
95
+ exposure: (0, moneymarket_1.getExposure)((0, tokens_1.assetAmountInEth)(troveInfo[2].toString()), new decimal_js_1.default((0, tokens_1.assetAmountInEth)(troveInfo[1].toString())).mul(assetPrice).toString()),
110
96
  };
111
97
  return payload;
112
98
  });
@@ -1,14 +1,9 @@
1
1
  import { Client, PublicClient } from 'viem';
2
2
  import { Blockish, EthAddress, EthereumProvider, NetworkNumber, PositionBalances } from '../types/common';
3
- import { CdpData, CdpInfo, IlkInfo } from '../types';
3
+ import { CdpData, CdpInfo } from '../types';
4
4
  export declare const _getMakerAccountBalances: (provider: PublicClient, network: NetworkNumber, block: Blockish, addressMapping: boolean, cdpId: string, _managerAddress?: EthAddress) => Promise<PositionBalances>;
5
5
  export declare const getMakerAccountBalances: (provider: EthereumProvider, network: NetworkNumber, block: Blockish, addressMapping: boolean, cdpId: string, _managerAddress?: EthAddress) => Promise<PositionBalances>;
6
6
  export declare const _getUserCdps: (provider: Client, network: NetworkNumber, userAddress: EthAddress) => Promise<CdpInfo[]>;
7
7
  export declare const getUserCdps: (provider: EthereumProvider, network: NetworkNumber, userAddress: EthAddress) => Promise<CdpInfo[]>;
8
- export declare const _getMakerIlksData: (provider: Client, network: NetworkNumber, ilkLabels: string[]) => Promise<Record<string, IlkInfo>>;
9
- export declare const getMakerIlksData: (provider: EthereumProvider, network: NetworkNumber, ilkLabels: string[]) => Promise<Record<string, IlkInfo>>;
10
- /**
11
- * @param ilkInfo optional precomputed ilk data (from `_getMakerIlksData`); when provided the per-ilk reads are skipped
12
- */
13
- export declare const _getMakerCdpData: (provider: Client, network: NetworkNumber, cdp: CdpInfo, ilkInfo?: IlkInfo) => Promise<CdpData>;
8
+ export declare const _getMakerCdpData: (provider: Client, network: NetworkNumber, cdp: CdpInfo) => Promise<CdpData>;
14
9
  export declare const getMakerCdpData: (provider: EthereumProvider, network: NetworkNumber, cdp: CdpInfo) => Promise<CdpData>;
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.getMakerCdpData = exports._getMakerCdpData = exports.getMakerIlksData = exports._getMakerIlksData = exports.getUserCdps = exports._getUserCdps = exports.getMakerAccountBalances = exports._getMakerAccountBalances = void 0;
15
+ exports.getMakerCdpData = exports._getMakerCdpData = exports.getUserCdps = exports._getUserCdps = exports.getMakerAccountBalances = exports._getMakerAccountBalances = void 0;
16
16
  const decimal_js_1 = __importDefault(require("decimal.js"));
17
17
  const tokens_1 = require("@defisaver/tokens");
18
18
  const contracts_1 = require("../contracts");
@@ -21,7 +21,6 @@ const utils_1 = require("../services/utils");
21
21
  const makerHelpers_1 = require("../helpers/makerHelpers");
22
22
  const viem_1 = require("../services/viem");
23
23
  const moneymarket_1 = require("../moneymarket");
24
- const staking_1 = require("../staking");
25
24
  const _getMakerAccountBalances = (provider, network, block, addressMapping, cdpId, _managerAddress) => __awaiter(void 0, void 0, void 0, function* () {
26
25
  let balances = {
27
26
  collateral: {},
@@ -45,7 +44,7 @@ const _getMakerAccountBalances = (provider, network, block, addressMapping, cdpI
45
44
  // [urn, owner, userAddr, ilk, collateral, debt]
46
45
  const cdpInfo = yield viewContract.read.getCdpInfo((needsIlk ? [managerAddress, cdpId, ilk] : [cdpId]), (0, viem_1.setViemBlockNumber)(block));
47
46
  cdpInfo.ilk = cdpInfo[3];
48
- const [par, [_, mat], [artGlobal, rate, spot, line, dust], [duty], futureRate, chop,] = yield Promise.all([
47
+ const [par, [_, mat], [artGlobal, rate, spot, line], [duty], futureRate, chop,] = yield Promise.all([
49
48
  spotterContract.read.par((0, viem_1.setViemBlockNumber)(block)),
50
49
  spotterContract.read.ilks(needsIlk ? [ilk] : [cdpInfo.ilk], (0, viem_1.setViemBlockNumber)(block)),
51
50
  vatContract.read.ilks(needsIlk ? [ilk] : [cdpInfo.ilk], (0, viem_1.setViemBlockNumber)(block)),
@@ -53,7 +52,7 @@ const _getMakerAccountBalances = (provider, network, block, addressMapping, cdpI
53
52
  jugContract.read.drip(needsIlk ? [ilk] : [cdpInfo.ilk], (0, viem_1.setViemBlockNumber)(block)),
54
53
  dogContract.read.chop(needsIlk ? [ilk] : [cdpInfo.ilk], (0, viem_1.setViemBlockNumber)(block)),
55
54
  ]);
56
- const ilkInfo = (0, makerHelpers_1.parseCollateralInfo)(needsIlk ? ilk : cdpInfo.ilk, par.toString(), mat.toString(), artGlobal.toString(), rate.toString(), spot.toString(), line.toString(), dust.toString(), duty.toString(), futureRate.toString(), chop.toString());
55
+ const ilkInfo = (0, makerHelpers_1.parseCollateralInfo)(needsIlk ? ilk : cdpInfo.ilk, par.toString(), mat.toString(), artGlobal.toString(), rate.toString(), spot.toString(), line.toString(), duty.toString(), futureRate.toString(), chop.toString());
57
56
  const collateral = cdpInfo[4];
58
57
  const debt = cdpInfo[5];
59
58
  const asset = (0, utils_1.wethToEth)((0, tokens_1.ilkToAsset)(needsIlk ? ilk : cdpInfo.ilk));
@@ -91,40 +90,22 @@ const _getUserCdps = (provider, network, userAddress) => __awaiter(void 0, void
91
90
  exports._getUserCdps = _getUserCdps;
92
91
  const getUserCdps = (provider, network, userAddress) => __awaiter(void 0, void 0, void 0, function* () { return (0, exports._getUserCdps)((0, viem_1.getViemProvider)(provider, network), network, userAddress); });
93
92
  exports.getUserCdps = getUserCdps;
94
- const _getMakerIlksData = (provider, network, ilkLabels) => __awaiter(void 0, void 0, void 0, function* () {
93
+ const _getMakerCdpData = (provider, network, cdp) => __awaiter(void 0, void 0, void 0, function* () {
95
94
  const vatContract = (0, contracts_1.McdVatContractViem)(provider, network);
96
95
  const spotterContract = (0, contracts_1.McdSpotterContractViem)(provider, network);
97
96
  const dogContract = (0, contracts_1.McdDogContractViem)(provider, network);
98
97
  const jugContract = (0, contracts_1.McdJugContractViem)(provider, network);
99
- const par = yield spotterContract.read.par();
100
- const ilksInfo = yield Promise.all(ilkLabels.map((ilkLabel) => __awaiter(void 0, void 0, void 0, function* () {
101
- const ilk = (0, tokens_1.stringToBytes)(ilkLabel);
102
- const [[_, mat], [artGlobal, rate, spot, line, dust], [duty], futureRate, chop,] = yield Promise.all([
103
- spotterContract.read.ilks([ilk]),
104
- vatContract.read.ilks([ilk]),
105
- jugContract.read.ilks([ilk]),
106
- jugContract.read.drip([ilk]),
107
- dogContract.read.chop([ilk]),
108
- ]);
109
- return (0, makerHelpers_1.parseCollateralInfo)(ilk, par.toString(), mat.toString(), artGlobal.toString(), rate.toString(), spot.toString(), line.toString(), dust.toString(), duty.toString(), futureRate.toString(), chop.toString());
110
- })));
111
- return Object.fromEntries(ilksInfo.map((ilkInfo) => [ilkInfo.ilkLabel, ilkInfo]));
112
- });
113
- exports._getMakerIlksData = _getMakerIlksData;
114
- const getMakerIlksData = (provider, network, ilkLabels) => __awaiter(void 0, void 0, void 0, function* () { return (0, exports._getMakerIlksData)((0, viem_1.getViemProvider)(provider, network, { batch: { multicall: true } }), network, ilkLabels); });
115
- exports.getMakerIlksData = getMakerIlksData;
116
- /**
117
- * @param ilkInfo optional precomputed ilk data (from `_getMakerIlksData`); when provided the per-ilk reads are skipped
118
- */
119
- const _getMakerCdpData = (provider, network, cdp, ilkInfo) => __awaiter(void 0, void 0, void 0, function* () {
120
- const vatContract = (0, contracts_1.McdVatContractViem)(provider, network);
121
- const [[ink, art], coll, fetchedIlkInfo, collStakingApy,] = yield Promise.all([
98
+ const [[ink, art], coll, par, [_, mat], [artGlobal, rate, spot, line], [duty], futureRate, chop,] = yield Promise.all([
122
99
  vatContract.read.urns([cdp.ilk, cdp.urn]),
123
100
  vatContract.read.gem([cdp.ilk, cdp.urn]),
124
- ilkInfo || (0, exports._getMakerIlksData)(provider, network, [cdp.ilkLabel]).then((ilks) => ilks[cdp.ilkLabel]),
125
- staking_1.STAKING_ASSETS.includes(cdp.asset) ? (0, staking_1.getStakingApy)(cdp.asset) : Promise.resolve('0'),
101
+ spotterContract.read.par(),
102
+ spotterContract.read.ilks([cdp.ilk]),
103
+ vatContract.read.ilks([cdp.ilk]),
104
+ jugContract.read.ilks([cdp.ilk]),
105
+ jugContract.read.drip([cdp.ilk]),
106
+ dogContract.read.chop([cdp.ilk]),
126
107
  ]);
127
- const collInfo = fetchedIlkInfo;
108
+ const collInfo = (0, makerHelpers_1.parseCollateralInfo)(cdp.ilk, par.toString(), mat.toString(), artGlobal.toString(), rate.toString(), spot.toString(), line.toString(), duty.toString(), futureRate.toString(), chop.toString());
128
109
  const collateral = (0, tokens_1.assetAmountInEth)(ink.toString(), `MCD-${cdp.asset}`);
129
110
  const collateralUsd = new decimal_js_1.default(collateral).mul(collInfo.assetPrice).toString();
130
111
  const debt = new decimal_js_1.default(art).times(collInfo.currentRate).div(1e27).floor()
@@ -136,17 +117,7 @@ const _getMakerCdpData = (provider, network, cdp, ilkInfo) => __awaiter(void 0,
136
117
  .toString();
137
118
  if (new decimal_js_1.default(debt).eq(0))
138
119
  ratio = '0';
139
- // Collateral ratio rebased so 100 sits on the ilk's liquidation ratio (normalised safety ratio).
140
- const safetyRatio = +collInfo.liqPercent > 0 ? new decimal_js_1.default(ratio).div(collInfo.liqPercent).mul(100).toString() : '0';
141
120
  const debtTooLow = new decimal_js_1.default(debt).gt(0) && new decimal_js_1.default((0, tokens_1.assetAmountInEth)(debt, 'DAI')).lt(collInfo.minDebt);
142
- // DAI debt accrues the ilk's stability fee. Collateral earns nothing inside the vault, except for the
143
- // native yield of staked collateral (e.g. wstETH), which is tracked as an incentive.
144
- const { netApy, totalInterestUsd, incentiveUsd } = (0, staking_1.calculateNetApyFromRates)({
145
- suppliedUsd: collateralUsd,
146
- borrowedUsd: (0, tokens_1.assetAmountInEth)(debt, 'DAI'),
147
- borrowRate: collInfo.stabilityFee.toString(),
148
- incentives: [{ apy: collStakingApy, amountUsd: collateralUsd }],
149
- });
150
121
  return {
151
122
  owner: cdp.owner,
152
123
  id: cdp.id.toString(),
@@ -165,7 +136,6 @@ const _getMakerCdpData = (provider, network, cdp, ilkInfo) => __awaiter(void 0,
165
136
  debtAssetMarketPrice: '1',
166
137
  liquidationPrice,
167
138
  ratio,
168
- safetyRatio,
169
139
  liqRatio: collInfo.liqRatio.toString(),
170
140
  liqPercent: parseFloat(collInfo.liqPercent.toString()),
171
141
  assetPrice: collInfo.assetPrice,
@@ -181,9 +151,6 @@ const _getMakerCdpData = (provider, network, cdp, ilkInfo) => __awaiter(void 0,
181
151
  liquidationFee: collInfo.liquidationFee,
182
152
  lastUpdated: Date.now(),
183
153
  exposure: (0, moneymarket_1.getExposure)((0, tokens_1.assetAmountInEth)(debt, 'DAI'), collateralUsd),
184
- netApy,
185
- totalInterestUsd,
186
- incentiveUsd,
187
154
  };
188
155
  });
189
156
  exports._getMakerCdpData = _getMakerCdpData;
@@ -8,4 +8,3 @@ export { LlamaLendMarkets } from './llamaLend';
8
8
  export { LiquityV2Markets, findLiquityV2MarketByAddress } from './liquityV2';
9
9
  export { FluidMarkets, getFluidVersionsDataForNetwork, getFluidMarketInfoById, getFTokenAddress, getFluidMarketInfoByAddress, } from './fluid';
10
10
  export { AaveV4Spokes, findAaveV4SpokeByAddress } from './aaveV4';
11
- export { MakerActiveIlks } from './maker';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MakerActiveIlks = exports.findAaveV4SpokeByAddress = exports.AaveV4Spokes = exports.getFluidMarketInfoByAddress = exports.getFTokenAddress = exports.getFluidMarketInfoById = exports.getFluidVersionsDataForNetwork = exports.FluidMarkets = exports.findLiquityV2MarketByAddress = exports.LiquityV2Markets = exports.LlamaLendMarkets = exports.morphoMidnightVisibleCollaterals = exports.morphoMidnightMarketCollateralParams = exports.isTenorMidnightMarket = exports.findMorphoMidnightMarket = exports.MorphoMidnightMarkets = exports.findMorphoBlueMarket = exports.MorphoBlueMarkets = exports.CrvUsdMarkets = exports.SparkMarkets = exports.v3USDTCollAssets = exports.v3USDCeCollAssets = exports.v3USDCCollAssets = exports.v3USDbCCollAssets = exports.v3ETHCollAssets = exports.compoundV2CollateralAssets = exports.CompoundMarkets = exports.getAaveV3MarketByMarketAddress = exports.aaveV3AssetsDefaultMarket = exports.aaveV2AssetsDefaultMarket = exports.aaveV1AssetsDefaultMarket = exports.AaveMarkets = void 0;
3
+ exports.findAaveV4SpokeByAddress = exports.AaveV4Spokes = exports.getFluidMarketInfoByAddress = exports.getFTokenAddress = exports.getFluidMarketInfoById = exports.getFluidVersionsDataForNetwork = exports.FluidMarkets = exports.findLiquityV2MarketByAddress = exports.LiquityV2Markets = exports.LlamaLendMarkets = exports.morphoMidnightVisibleCollaterals = exports.morphoMidnightMarketCollateralParams = exports.isTenorMidnightMarket = exports.findMorphoMidnightMarket = exports.MorphoMidnightMarkets = exports.findMorphoBlueMarket = exports.MorphoBlueMarkets = exports.CrvUsdMarkets = exports.SparkMarkets = exports.v3USDTCollAssets = exports.v3USDCeCollAssets = exports.v3USDCCollAssets = exports.v3USDbCCollAssets = exports.v3ETHCollAssets = exports.compoundV2CollateralAssets = exports.CompoundMarkets = exports.getAaveV3MarketByMarketAddress = exports.aaveV3AssetsDefaultMarket = exports.aaveV2AssetsDefaultMarket = exports.aaveV1AssetsDefaultMarket = exports.AaveMarkets = void 0;
4
4
  var aave_1 = require("./aave");
5
5
  Object.defineProperty(exports, "AaveMarkets", { enumerable: true, get: function () { return aave_1.AaveMarkets; } });
6
6
  Object.defineProperty(exports, "aaveV1AssetsDefaultMarket", { enumerable: true, get: function () { return aave_1.aaveV1AssetsDefaultMarket; } });
@@ -42,5 +42,3 @@ Object.defineProperty(exports, "getFluidMarketInfoByAddress", { enumerable: true
42
42
  var aaveV4_1 = require("./aaveV4");
43
43
  Object.defineProperty(exports, "AaveV4Spokes", { enumerable: true, get: function () { return aaveV4_1.AaveV4Spokes; } });
44
44
  Object.defineProperty(exports, "findAaveV4SpokeByAddress", { enumerable: true, get: function () { return aaveV4_1.findAaveV4SpokeByAddress; } });
45
- var maker_1 = require("./maker");
46
- Object.defineProperty(exports, "MakerActiveIlks", { enumerable: true, get: function () { return maker_1.MakerActiveIlks; } });
@@ -1,13 +1,9 @@
1
1
  import { EthAddress, EthereumProvider, NetworkNumber } from '../types/common';
2
- import { PortfolioMarketsData, PortfolioPositionsData } from '../types';
2
+ import { PortfolioPositionsData } from '../types';
3
3
  export declare function getPortfolioData(provider: EthereumProvider, network: NetworkNumber, defaultProvider: EthereumProvider, addresses: EthAddress[], isSim?: boolean): Promise<{
4
4
  positions: PortfolioPositionsData;
5
5
  stakingPositions: any;
6
6
  rewardsData: any;
7
7
  markets: any;
8
8
  }>;
9
- export declare function getShifterPortfolioData(provider: EthereumProvider, network: NetworkNumber, defaultProvider: EthereumProvider, addresses: EthAddress[], isSim?: boolean): Promise<{
10
- positions: PortfolioPositionsData;
11
- markets: PortfolioMarketsData;
12
- }>;
13
9
  export * from './discovery';