@defisaver/positions-sdk 0.0.14 → 0.0.16

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 (40) hide show
  1. package/cjs/aaveV3/index.d.ts +1 -1
  2. package/cjs/aaveV3/index.js +17 -14
  3. package/cjs/config/contracts.d.ts +184 -72
  4. package/cjs/config/contracts.js +16 -0
  5. package/cjs/markets/curveUsd/index.d.ts +2 -0
  6. package/cjs/markets/curveUsd/index.js +14 -1
  7. package/cjs/morphoAaveV3/index.d.ts +1 -1
  8. package/cjs/morphoAaveV3/index.js +3 -2
  9. package/cjs/types/contracts/generated/CrvUSDsfrxETHAmm.d.ts +139 -0
  10. package/cjs/types/contracts/generated/CrvUSDsfrxETHAmm.js +5 -0
  11. package/cjs/types/contracts/generated/CrvUSDsfrxETHController.d.ts +205 -0
  12. package/cjs/types/contracts/generated/CrvUSDsfrxETHController.js +5 -0
  13. package/cjs/types/contracts/generated/index.d.ts +2 -0
  14. package/cjs/types/curveUsd.d.ts +2 -1
  15. package/cjs/types/curveUsd.js +1 -0
  16. package/esm/aaveV3/index.d.ts +1 -1
  17. package/esm/aaveV3/index.js +18 -15
  18. package/esm/config/contracts.d.ts +184 -72
  19. package/esm/config/contracts.js +16 -0
  20. package/esm/markets/curveUsd/index.d.ts +2 -0
  21. package/esm/markets/curveUsd/index.js +12 -0
  22. package/esm/morphoAaveV3/index.d.ts +1 -1
  23. package/esm/morphoAaveV3/index.js +3 -2
  24. package/esm/types/contracts/generated/CrvUSDsfrxETHAmm.d.ts +139 -0
  25. package/esm/types/contracts/generated/CrvUSDsfrxETHAmm.js +4 -0
  26. package/esm/types/contracts/generated/CrvUSDsfrxETHController.d.ts +205 -0
  27. package/esm/types/contracts/generated/CrvUSDsfrxETHController.js +4 -0
  28. package/esm/types/contracts/generated/index.d.ts +2 -0
  29. package/esm/types/curveUsd.d.ts +2 -1
  30. package/esm/types/curveUsd.js +1 -0
  31. package/package.json +2 -2
  32. package/src/aaveV3/index.ts +21 -15
  33. package/src/config/contracts.js +16 -0
  34. package/src/markets/curveUsd/index.ts +13 -0
  35. package/src/morphoAaveV3/index.ts +4 -1
  36. package/src/types/contracts/generated/CrvUSDsfrxETHAmm.ts +286 -0
  37. package/src/types/contracts/generated/CrvUSDsfrxETHController.ts +403 -0
  38. package/src/types/contracts/generated/index.ts +2 -0
  39. package/src/types/curveUsd.ts +1 -0
  40. package/yarn-error.log +64 -0
@@ -56,6 +56,8 @@ export type { CrvUSDFactory } from "./CrvUSDFactory";
56
56
  export type { CrvUSDView } from "./CrvUSDView";
57
57
  export type { CrvUSDWBTCAmm } from "./CrvUSDWBTCAmm";
58
58
  export type { CrvUSDWBTCController } from "./CrvUSDWBTCController";
59
+ export type { CrvUSDsfrxETHAmm } from "./CrvUSDsfrxETHAmm";
60
+ export type { CrvUSDsfrxETHController } from "./CrvUSDsfrxETHController";
59
61
  export type { CrvUSDtBTCAmm } from "./CrvUSDtBTCAmm";
60
62
  export type { CrvUSDtBTCController } from "./CrvUSDtBTCController";
61
63
  export type { CrvUSDwstETHAmm } from "./CrvUSDwstETHAmm";
@@ -3,7 +3,8 @@ export declare enum CrvUSDVersions {
3
3
  'wstETH' = "wstETH",
4
4
  'WBTC' = "WBTC",
5
5
  'ETH' = "ETH",
6
- 'tBTC' = "tBTC"
6
+ 'tBTC' = "tBTC",
7
+ 'sfrxETH' = "sfrxETH"
7
8
  }
8
9
  export declare enum CrvUSDStatus {
9
10
  Nonexistant = "Nonexistant",
@@ -4,6 +4,7 @@ export var CrvUSDVersions;
4
4
  CrvUSDVersions["WBTC"] = "WBTC";
5
5
  CrvUSDVersions["ETH"] = "ETH";
6
6
  CrvUSDVersions["tBTC"] = "tBTC";
7
+ CrvUSDVersions["sfrxETH"] = "sfrxETH";
7
8
  })(CrvUSDVersions || (CrvUSDVersions = {}));
8
9
  export var CrvUSDStatus;
9
10
  (function (CrvUSDStatus) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@defisaver/positions-sdk",
3
- "version": "0.0.14",
3
+ "version": "0.0.16",
4
4
  "description": "",
5
5
  "main": "./cjs/index.js",
6
6
  "module": "./esm/index.js",
@@ -19,7 +19,7 @@
19
19
  "author": "",
20
20
  "license": "ISC",
21
21
  "dependencies": {
22
- "@defisaver/tokens": "^1.5.2",
22
+ "@defisaver/tokens": "^1.5.3",
23
23
  "decimal.js": "^10.4.3",
24
24
  "@morpho-org/morpho-aave-v3-sdk": "^1.5.3",
25
25
  "@ethersproject/bignumber": "^5.7.0"
@@ -178,7 +178,10 @@ export async function getAaveV3MarketData(web3: Web3, network: NetworkNumber, ma
178
178
  let discountRateOnBorrow = '0';
179
179
 
180
180
  if (nativeAsset && facilitatorsList && discountRate && minDiscountTokenBalance && minGhoBalanceForDiscount && ghoDiscountedPerDiscountToken) {
181
- borrowCap = assetAmountInEth((await ghoContract.methods.getFacilitatorBucket(facilitatorsList[0]).call())[0], 'GHO');
181
+ const facilitatorBucket = await ghoContract.methods.getFacilitatorBucket(facilitatorsList[0]).call();
182
+ const availableFacilitatorCap = assetAmountInEth(new Dec(facilitatorBucket[0]).sub(facilitatorBucket[1]).toString(), 'GHO');
183
+
184
+ borrowCap = Dec.min(borrowCap, availableFacilitatorCap).toString();
182
185
 
183
186
  discountRateOnBorrow = aaveV3CalculateDiscountRate(
184
187
  tokenMarket.totalBorrow.toString(),
@@ -190,6 +193,18 @@ export async function getAaveV3MarketData(web3: Web3, network: NetworkNumber, ma
190
193
  );
191
194
  }
192
195
 
196
+ let marketLiquidity = nativeAsset
197
+ ? assetAmountInEth(new Dec(assetAmountInWei(borrowCap.toString(), 'GHO'))
198
+ .sub(tokenMarket.totalBorrow.toString())
199
+ .toString(), symbol)
200
+ : assetAmountInEth(new Dec(tokenMarket.totalSupply.toString())
201
+ .sub(tokenMarket.totalBorrow.toString())
202
+ .toString(), symbol);
203
+
204
+ if (new Dec(marketLiquidity).lt(0)) {
205
+ marketLiquidity = '0';
206
+ }
207
+
193
208
  return ({
194
209
  nativeAsset,
195
210
  ...addToObjectIf(nativeAsset, {
@@ -214,13 +229,7 @@ export async function getAaveV3MarketData(web3: Web3, network: NetworkNumber, ma
214
229
  borrowRateStable: new Dec(tokenMarket.borrowRateStable.toString()).div(1e25).toString(),
215
230
  collateralFactor: new Dec(tokenMarket.collateralFactor.toString()).div(10000).toString(),
216
231
  liquidationRatio: new Dec(tokenMarket.liquidationRatio.toString()).div(10000).toString(),
217
- marketLiquidity: nativeAsset
218
- ? assetAmountInEth(new Dec(assetAmountInWei(borrowCap.toString(), 'GHO'))
219
- .sub(tokenMarket.totalBorrow.toString())
220
- .toString(), symbol)
221
- : assetAmountInEth(new Dec(tokenMarket.totalSupply.toString())
222
- .sub(tokenMarket.totalBorrow.toString())
223
- .toString(), symbol),
232
+ marketLiquidity,
224
233
  utilization: new Dec(tokenMarket.totalBorrow.toString())
225
234
  .div(new Dec(tokenMarket.totalSupply.toString()))
226
235
  .times(100)
@@ -389,7 +398,7 @@ export const getAaveV3AccountBalances = async (web3: Web3, network: NetworkNumbe
389
398
  return balances;
390
399
  };
391
400
 
392
- export const getAaveV3AccountData = async (web3: Web3, network: NetworkNumber, address: EthAddress, extractedState: any): Promise<AaveV3PositionData> => {
401
+ export const getAaveV3AccountData = async (web3: Web3, network: NetworkNumber, address: EthAddress, extractedState: any, customGetAggregatedDataFunction?: Function): Promise<AaveV3PositionData> => {
393
402
  const {
394
403
  selectedMarket: market, assetsData,
395
404
  } = extractedState;
@@ -500,11 +509,13 @@ export const getAaveV3AccountData = async (web3: Web3, network: NetworkNumber, a
500
509
  };
501
510
  });
502
511
 
512
+ const aggregateFunction = customGetAggregatedDataFunction || aaveAnyGetAggregatedPositionData;
513
+
503
514
  payload.eModeCategory = +multicallRes[0][0];
504
515
  payload = {
505
516
  ...payload,
506
517
  usedAssets,
507
- ...aaveAnyGetAggregatedPositionData({
518
+ ...aggregateFunction({
508
519
  ...extractedState, usedAssets, eModeCategory: payload.eModeCategory,
509
520
  }),
510
521
  };
@@ -532,11 +543,6 @@ export const getAaveV3AccountData = async (web3: Web3, network: NetworkNumber, a
532
543
  }
533
544
  });
534
545
 
535
- const { netApy, incentiveUsd, totalInterestUsd } = calculateNetApy(usedAssets, assetsData);
536
- payload.netApy = netApy;
537
- payload.incentiveUsd = incentiveUsd;
538
- payload.totalInterestUsd = totalInterestUsd;
539
-
540
546
  payload.isSubscribedToAutomation = false;
541
547
  payload.automationResubscribeRequired = false;
542
548
 
@@ -456,6 +456,14 @@ module.exports = {
456
456
  }
457
457
  }
458
458
  },
459
+ "crvUSDsfrxETHController": {
460
+ "abi": [{"name":"UserState","inputs":[{"name":"user","type":"address","indexed":true},{"name":"collateral","type":"uint256","indexed":false},{"name":"debt","type":"uint256","indexed":false},{"name":"n1","type":"int256","indexed":false},{"name":"n2","type":"int256","indexed":false},{"name":"liquidation_discount","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"Borrow","inputs":[{"name":"user","type":"address","indexed":true},{"name":"collateral_increase","type":"uint256","indexed":false},{"name":"loan_increase","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"Repay","inputs":[{"name":"user","type":"address","indexed":true},{"name":"collateral_decrease","type":"uint256","indexed":false},{"name":"loan_decrease","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"RemoveCollateral","inputs":[{"name":"user","type":"address","indexed":true},{"name":"collateral_decrease","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"Liquidate","inputs":[{"name":"liquidator","type":"address","indexed":true},{"name":"user","type":"address","indexed":true},{"name":"collateral_received","type":"uint256","indexed":false},{"name":"stablecoin_received","type":"uint256","indexed":false},{"name":"debt","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"SetMonetaryPolicy","inputs":[{"name":"monetary_policy","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"SetBorrowingDiscounts","inputs":[{"name":"loan_discount","type":"uint256","indexed":false},{"name":"liquidation_discount","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"CollectFees","inputs":[{"name":"amount","type":"uint256","indexed":false},{"name":"new_supply","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"collateral_token","type":"address"},{"name":"monetary_policy","type":"address"},{"name":"loan_discount","type":"uint256"},{"name":"liquidation_discount","type":"uint256"},{"name":"amm","type":"address"}],"outputs":[]},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"view","type":"function","name":"factory","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"amm","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"collateral_token","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"debt","inputs":[{"name":"user","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"loan_exists","inputs":[{"name":"user","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"total_debt","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"max_borrowable","inputs":[{"name":"collateral","type":"uint256"},{"name":"N","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"max_borrowable","inputs":[{"name":"collateral","type":"uint256"},{"name":"N","type":"uint256"},{"name":"current_debt","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"min_collateral","inputs":[{"name":"debt","type":"uint256"},{"name":"N","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"calculate_debt_n1","inputs":[{"name":"collateral","type":"uint256"},{"name":"debt","type":"uint256"},{"name":"N","type":"uint256"}],"outputs":[{"name":"","type":"int256"}]},{"stateMutability":"payable","type":"function","name":"create_loan","inputs":[{"name":"collateral","type":"uint256"},{"name":"debt","type":"uint256"},{"name":"N","type":"uint256"}],"outputs":[]},{"stateMutability":"payable","type":"function","name":"create_loan_extended","inputs":[{"name":"collateral","type":"uint256"},{"name":"debt","type":"uint256"},{"name":"N","type":"uint256"},{"name":"callbacker","type":"address"},{"name":"callback_args","type":"uint256[]"}],"outputs":[]},{"stateMutability":"payable","type":"function","name":"add_collateral","inputs":[{"name":"collateral","type":"uint256"}],"outputs":[]},{"stateMutability":"payable","type":"function","name":"add_collateral","inputs":[{"name":"collateral","type":"uint256"},{"name":"_for","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"remove_collateral","inputs":[{"name":"collateral","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"remove_collateral","inputs":[{"name":"collateral","type":"uint256"},{"name":"use_eth","type":"bool"}],"outputs":[]},{"stateMutability":"payable","type":"function","name":"borrow_more","inputs":[{"name":"collateral","type":"uint256"},{"name":"debt","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"repay","inputs":[{"name":"_d_debt","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"repay","inputs":[{"name":"_d_debt","type":"uint256"},{"name":"_for","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"repay","inputs":[{"name":"_d_debt","type":"uint256"},{"name":"_for","type":"address"},{"name":"max_active_band","type":"int256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"repay","inputs":[{"name":"_d_debt","type":"uint256"},{"name":"_for","type":"address"},{"name":"max_active_band","type":"int256"},{"name":"use_eth","type":"bool"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"repay_extended","inputs":[{"name":"callbacker","type":"address"},{"name":"callback_args","type":"uint256[]"}],"outputs":[]},{"stateMutability":"view","type":"function","name":"health_calculator","inputs":[{"name":"user","type":"address"},{"name":"d_collateral","type":"int256"},{"name":"d_debt","type":"int256"},{"name":"full","type":"bool"}],"outputs":[{"name":"","type":"int256"}]},{"stateMutability":"view","type":"function","name":"health_calculator","inputs":[{"name":"user","type":"address"},{"name":"d_collateral","type":"int256"},{"name":"d_debt","type":"int256"},{"name":"full","type":"bool"},{"name":"N","type":"uint256"}],"outputs":[{"name":"","type":"int256"}]},{"stateMutability":"nonpayable","type":"function","name":"liquidate","inputs":[{"name":"user","type":"address"},{"name":"min_x","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"liquidate","inputs":[{"name":"user","type":"address"},{"name":"min_x","type":"uint256"},{"name":"use_eth","type":"bool"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"liquidate_extended","inputs":[{"name":"user","type":"address"},{"name":"min_x","type":"uint256"},{"name":"frac","type":"uint256"},{"name":"use_eth","type":"bool"},{"name":"callbacker","type":"address"},{"name":"callback_args","type":"uint256[]"}],"outputs":[]},{"stateMutability":"view","type":"function","name":"tokens_to_liquidate","inputs":[{"name":"user","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"tokens_to_liquidate","inputs":[{"name":"user","type":"address"},{"name":"frac","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"health","inputs":[{"name":"user","type":"address"}],"outputs":[{"name":"","type":"int256"}]},{"stateMutability":"view","type":"function","name":"health","inputs":[{"name":"user","type":"address"},{"name":"full","type":"bool"}],"outputs":[{"name":"","type":"int256"}]},{"stateMutability":"view","type":"function","name":"users_to_liquidate","inputs":[],"outputs":[{"name":"","type":"tuple[]","components":[{"name":"user","type":"address"},{"name":"x","type":"uint256"},{"name":"y","type":"uint256"},{"name":"debt","type":"uint256"},{"name":"health","type":"int256"}]}]},{"stateMutability":"view","type":"function","name":"users_to_liquidate","inputs":[{"name":"_from","type":"uint256"}],"outputs":[{"name":"","type":"tuple[]","components":[{"name":"user","type":"address"},{"name":"x","type":"uint256"},{"name":"y","type":"uint256"},{"name":"debt","type":"uint256"},{"name":"health","type":"int256"}]}]},{"stateMutability":"view","type":"function","name":"users_to_liquidate","inputs":[{"name":"_from","type":"uint256"},{"name":"_limit","type":"uint256"}],"outputs":[{"name":"","type":"tuple[]","components":[{"name":"user","type":"address"},{"name":"x","type":"uint256"},{"name":"y","type":"uint256"},{"name":"debt","type":"uint256"},{"name":"health","type":"int256"}]}]},{"stateMutability":"view","type":"function","name":"amm_price","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"user_prices","inputs":[{"name":"user","type":"address"}],"outputs":[{"name":"","type":"uint256[2]"}]},{"stateMutability":"view","type":"function","name":"user_state","inputs":[{"name":"user","type":"address"}],"outputs":[{"name":"","type":"uint256[4]"}]},{"stateMutability":"nonpayable","type":"function","name":"set_amm_fee","inputs":[{"name":"fee","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_amm_admin_fee","inputs":[{"name":"fee","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_monetary_policy","inputs":[{"name":"monetary_policy","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_borrowing_discounts","inputs":[{"name":"loan_discount","type":"uint256"},{"name":"liquidation_discount","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_callback","inputs":[{"name":"cb","type":"address"}],"outputs":[]},{"stateMutability":"view","type":"function","name":"admin_fees","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"collect_fees","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"liquidation_discounts","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"loans","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"loan_ix","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"n_loans","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"minted","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"redeemed","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"monetary_policy","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"liquidation_discount","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"loan_discount","inputs":[],"outputs":[{"name":"","type":"uint256"}]}],
461
+ "networks": {
462
+ "1": {
463
+ "address": "0xEC0820EfafC41D8943EE8dE495fC9Ba8495B15cf"
464
+ }
465
+ }
466
+ },
459
467
  "crvUSDwstETHAmm": {
460
468
  "abi": [{"name":"TokenExchange","inputs":[{"name":"buyer","type":"address","indexed":true},{"name":"sold_id","type":"uint256","indexed":false},{"name":"tokens_sold","type":"uint256","indexed":false},{"name":"bought_id","type":"uint256","indexed":false},{"name":"tokens_bought","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"Deposit","inputs":[{"name":"provider","type":"address","indexed":true},{"name":"amount","type":"uint256","indexed":false},{"name":"n1","type":"int256","indexed":false},{"name":"n2","type":"int256","indexed":false}],"anonymous":false,"type":"event"},{"name":"Withdraw","inputs":[{"name":"provider","type":"address","indexed":true},{"name":"amount_borrowed","type":"uint256","indexed":false},{"name":"amount_collateral","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"SetRate","inputs":[{"name":"rate","type":"uint256","indexed":false},{"name":"rate_mul","type":"uint256","indexed":false},{"name":"time","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"SetFee","inputs":[{"name":"fee","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"SetAdminFee","inputs":[{"name":"fee","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_borrowed_token","type":"address"},{"name":"_borrowed_precision","type":"uint256"},{"name":"_collateral_token","type":"address"},{"name":"_collateral_precision","type":"uint256"},{"name":"_A","type":"uint256"},{"name":"_sqrt_band_ratio","type":"uint256"},{"name":"_log_A_ratio","type":"int256"},{"name":"_base_price","type":"uint256"},{"name":"fee","type":"uint256"},{"name":"admin_fee","type":"uint256"},{"name":"_price_oracle_contract","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_admin","inputs":[{"name":"_admin","type":"address"}],"outputs":[]},{"stateMutability":"pure","type":"function","name":"coins","inputs":[{"name":"i","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"price_oracle","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"dynamic_fee","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"get_rate_mul","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"get_base_price","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"p_current_up","inputs":[{"name":"n","type":"int256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"p_current_down","inputs":[{"name":"n","type":"int256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"p_oracle_up","inputs":[{"name":"n","type":"int256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"p_oracle_down","inputs":[{"name":"n","type":"int256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"get_p","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"read_user_tick_numbers","inputs":[{"name":"user","type":"address"}],"outputs":[{"name":"","type":"int256[2]"}]},{"stateMutability":"view","type":"function","name":"can_skip_bands","inputs":[{"name":"n_end","type":"int256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"active_band_with_skip","inputs":[],"outputs":[{"name":"","type":"int256"}]},{"stateMutability":"view","type":"function","name":"has_liquidity","inputs":[{"name":"user","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"deposit_range","inputs":[{"name":"user","type":"address"},{"name":"amount","type":"uint256"},{"name":"n1","type":"int256"},{"name":"n2","type":"int256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"withdraw","inputs":[{"name":"user","type":"address"},{"name":"frac","type":"uint256"}],"outputs":[{"name":"","type":"uint256[2]"}]},{"stateMutability":"view","type":"function","name":"get_dy","inputs":[{"name":"i","type":"uint256"},{"name":"j","type":"uint256"},{"name":"in_amount","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"get_dxdy","inputs":[{"name":"i","type":"uint256"},{"name":"j","type":"uint256"},{"name":"in_amount","type":"uint256"}],"outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"get_dx","inputs":[{"name":"i","type":"uint256"},{"name":"j","type":"uint256"},{"name":"out_amount","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"get_dydx","inputs":[{"name":"i","type":"uint256"},{"name":"j","type":"uint256"},{"name":"out_amount","type":"uint256"}],"outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"exchange","inputs":[{"name":"i","type":"uint256"},{"name":"j","type":"uint256"},{"name":"in_amount","type":"uint256"},{"name":"min_amount","type":"uint256"}],"outputs":[{"name":"","type":"uint256[2]"}]},{"stateMutability":"nonpayable","type":"function","name":"exchange","inputs":[{"name":"i","type":"uint256"},{"name":"j","type":"uint256"},{"name":"in_amount","type":"uint256"},{"name":"min_amount","type":"uint256"},{"name":"_for","type":"address"}],"outputs":[{"name":"","type":"uint256[2]"}]},{"stateMutability":"nonpayable","type":"function","name":"exchange_dy","inputs":[{"name":"i","type":"uint256"},{"name":"j","type":"uint256"},{"name":"out_amount","type":"uint256"},{"name":"max_amount","type":"uint256"}],"outputs":[{"name":"","type":"uint256[2]"}]},{"stateMutability":"nonpayable","type":"function","name":"exchange_dy","inputs":[{"name":"i","type":"uint256"},{"name":"j","type":"uint256"},{"name":"out_amount","type":"uint256"},{"name":"max_amount","type":"uint256"},{"name":"_for","type":"address"}],"outputs":[{"name":"","type":"uint256[2]"}]},{"stateMutability":"view","type":"function","name":"get_y_up","inputs":[{"name":"user","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"get_x_down","inputs":[{"name":"user","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"get_sum_xy","inputs":[{"name":"user","type":"address"}],"outputs":[{"name":"","type":"uint256[2]"}]},{"stateMutability":"view","type":"function","name":"get_xy","inputs":[{"name":"user","type":"address"}],"outputs":[{"name":"","type":"uint256[][2]"}]},{"stateMutability":"view","type":"function","name":"get_amount_for_price","inputs":[{"name":"p","type":"uint256"}],"outputs":[{"name":"","type":"uint256"},{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"set_rate","inputs":[{"name":"rate","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"set_fee","inputs":[{"name":"fee","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_admin_fee","inputs":[{"name":"fee","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"reset_admin_fees","inputs":[],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_callback","inputs":[{"name":"liquidity_mining_callback","type":"address"}],"outputs":[]},{"stateMutability":"view","type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"A","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"fee","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"admin_fee","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"rate","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"active_band","inputs":[],"outputs":[{"name":"","type":"int256"}]},{"stateMutability":"view","type":"function","name":"min_band","inputs":[],"outputs":[{"name":"","type":"int256"}]},{"stateMutability":"view","type":"function","name":"max_band","inputs":[],"outputs":[{"name":"","type":"int256"}]},{"stateMutability":"view","type":"function","name":"admin_fees_x","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"admin_fees_y","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"price_oracle_contract","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"bands_x","inputs":[{"name":"arg0","type":"int256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"bands_y","inputs":[{"name":"arg0","type":"int256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"liquidity_mining_callback","inputs":[],"outputs":[{"name":"","type":"address"}]}],
461
469
  "networks": {
@@ -488,6 +496,14 @@ module.exports = {
488
496
  }
489
497
  }
490
498
  },
499
+ "crvUSDsfrxETHAmm": {
500
+ "abi": [{"name":"TokenExchange","inputs":[{"name":"buyer","type":"address","indexed":true},{"name":"sold_id","type":"uint256","indexed":false},{"name":"tokens_sold","type":"uint256","indexed":false},{"name":"bought_id","type":"uint256","indexed":false},{"name":"tokens_bought","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"Deposit","inputs":[{"name":"provider","type":"address","indexed":true},{"name":"amount","type":"uint256","indexed":false},{"name":"n1","type":"int256","indexed":false},{"name":"n2","type":"int256","indexed":false}],"anonymous":false,"type":"event"},{"name":"Withdraw","inputs":[{"name":"provider","type":"address","indexed":true},{"name":"amount_borrowed","type":"uint256","indexed":false},{"name":"amount_collateral","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"SetRate","inputs":[{"name":"rate","type":"uint256","indexed":false},{"name":"rate_mul","type":"uint256","indexed":false},{"name":"time","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"SetFee","inputs":[{"name":"fee","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"SetAdminFee","inputs":[{"name":"fee","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_borrowed_token","type":"address"},{"name":"_borrowed_precision","type":"uint256"},{"name":"_collateral_token","type":"address"},{"name":"_collateral_precision","type":"uint256"},{"name":"_A","type":"uint256"},{"name":"_sqrt_band_ratio","type":"uint256"},{"name":"_log_A_ratio","type":"int256"},{"name":"_base_price","type":"uint256"},{"name":"fee","type":"uint256"},{"name":"admin_fee","type":"uint256"},{"name":"_price_oracle_contract","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_admin","inputs":[{"name":"_admin","type":"address"}],"outputs":[]},{"stateMutability":"pure","type":"function","name":"coins","inputs":[{"name":"i","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"price_oracle","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"dynamic_fee","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"get_rate_mul","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"get_base_price","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"p_current_up","inputs":[{"name":"n","type":"int256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"p_current_down","inputs":[{"name":"n","type":"int256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"p_oracle_up","inputs":[{"name":"n","type":"int256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"p_oracle_down","inputs":[{"name":"n","type":"int256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"get_p","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"read_user_tick_numbers","inputs":[{"name":"user","type":"address"}],"outputs":[{"name":"","type":"int256[2]"}]},{"stateMutability":"view","type":"function","name":"can_skip_bands","inputs":[{"name":"n_end","type":"int256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"active_band_with_skip","inputs":[],"outputs":[{"name":"","type":"int256"}]},{"stateMutability":"view","type":"function","name":"has_liquidity","inputs":[{"name":"user","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"deposit_range","inputs":[{"name":"user","type":"address"},{"name":"amount","type":"uint256"},{"name":"n1","type":"int256"},{"name":"n2","type":"int256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"withdraw","inputs":[{"name":"user","type":"address"},{"name":"frac","type":"uint256"}],"outputs":[{"name":"","type":"uint256[2]"}]},{"stateMutability":"view","type":"function","name":"get_dy","inputs":[{"name":"i","type":"uint256"},{"name":"j","type":"uint256"},{"name":"in_amount","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"get_dxdy","inputs":[{"name":"i","type":"uint256"},{"name":"j","type":"uint256"},{"name":"in_amount","type":"uint256"}],"outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"get_dx","inputs":[{"name":"i","type":"uint256"},{"name":"j","type":"uint256"},{"name":"out_amount","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"get_dydx","inputs":[{"name":"i","type":"uint256"},{"name":"j","type":"uint256"},{"name":"out_amount","type":"uint256"}],"outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"exchange","inputs":[{"name":"i","type":"uint256"},{"name":"j","type":"uint256"},{"name":"in_amount","type":"uint256"},{"name":"min_amount","type":"uint256"}],"outputs":[{"name":"","type":"uint256[2]"}]},{"stateMutability":"nonpayable","type":"function","name":"exchange","inputs":[{"name":"i","type":"uint256"},{"name":"j","type":"uint256"},{"name":"in_amount","type":"uint256"},{"name":"min_amount","type":"uint256"},{"name":"_for","type":"address"}],"outputs":[{"name":"","type":"uint256[2]"}]},{"stateMutability":"nonpayable","type":"function","name":"exchange_dy","inputs":[{"name":"i","type":"uint256"},{"name":"j","type":"uint256"},{"name":"out_amount","type":"uint256"},{"name":"max_amount","type":"uint256"}],"outputs":[{"name":"","type":"uint256[2]"}]},{"stateMutability":"nonpayable","type":"function","name":"exchange_dy","inputs":[{"name":"i","type":"uint256"},{"name":"j","type":"uint256"},{"name":"out_amount","type":"uint256"},{"name":"max_amount","type":"uint256"},{"name":"_for","type":"address"}],"outputs":[{"name":"","type":"uint256[2]"}]},{"stateMutability":"view","type":"function","name":"get_y_up","inputs":[{"name":"user","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"get_x_down","inputs":[{"name":"user","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"get_sum_xy","inputs":[{"name":"user","type":"address"}],"outputs":[{"name":"","type":"uint256[2]"}]},{"stateMutability":"view","type":"function","name":"get_xy","inputs":[{"name":"user","type":"address"}],"outputs":[{"name":"","type":"uint256[][2]"}]},{"stateMutability":"view","type":"function","name":"get_amount_for_price","inputs":[{"name":"p","type":"uint256"}],"outputs":[{"name":"","type":"uint256"},{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"set_rate","inputs":[{"name":"rate","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"set_fee","inputs":[{"name":"fee","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_admin_fee","inputs":[{"name":"fee","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"reset_admin_fees","inputs":[],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_callback","inputs":[{"name":"liquidity_mining_callback","type":"address"}],"outputs":[]},{"stateMutability":"view","type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"A","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"fee","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"admin_fee","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"rate","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"active_band","inputs":[],"outputs":[{"name":"","type":"int256"}]},{"stateMutability":"view","type":"function","name":"min_band","inputs":[],"outputs":[{"name":"","type":"int256"}]},{"stateMutability":"view","type":"function","name":"max_band","inputs":[],"outputs":[{"name":"","type":"int256"}]},{"stateMutability":"view","type":"function","name":"admin_fees_x","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"admin_fees_y","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"price_oracle_contract","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"bands_x","inputs":[{"name":"arg0","type":"int256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"bands_y","inputs":[{"name":"arg0","type":"int256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"liquidity_mining_callback","inputs":[],"outputs":[{"name":"","type":"address"}]}],
501
+ "networks": {
502
+ "1": {
503
+ "address": "0xfA96ad0a9E64261dB86950e2dA362f5572c5c6fd"
504
+ }
505
+ }
506
+ },
491
507
  "crvUSDView": {
492
508
  "abi": [{"inputs":[{"internalType":"address","name":"market","type":"address"},{"internalType":"uint256","name":"collateral","type":"uint256"},{"internalType":"uint256","name":"debt","type":"uint256"},{"internalType":"uint256","name":"N","type":"uint256"}],"name":"createLoanData","outputs":[{"components":[{"internalType":"int256","name":"health","type":"int256"},{"internalType":"uint256","name":"minColl","type":"uint256"},{"internalType":"uint256","name":"maxBorrow","type":"uint256"},{"components":[{"internalType":"int256","name":"id","type":"int256"},{"internalType":"uint256","name":"lowPrice","type":"uint256"},{"internalType":"uint256","name":"highPrice","type":"uint256"},{"internalType":"uint256","name":"collAmount","type":"uint256"},{"internalType":"uint256","name":"debtAmount","type":"uint256"}],"internalType":"struct CurveUsdView.Band[]","name":"bands","type":"tuple[]"}],"internalType":"struct CurveUsdView.CreateLoanData","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"market","type":"address"},{"internalType":"int256","name":"n","type":"int256"}],"name":"getBandData","outputs":[{"components":[{"internalType":"int256","name":"id","type":"int256"},{"internalType":"uint256","name":"lowPrice","type":"uint256"},{"internalType":"uint256","name":"highPrice","type":"uint256"},{"internalType":"uint256","name":"collAmount","type":"uint256"},{"internalType":"uint256","name":"debtAmount","type":"uint256"}],"internalType":"struct CurveUsdView.Band","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"market","type":"address"},{"internalType":"uint256","name":"collateral","type":"uint256"},{"internalType":"uint256","name":"debt","type":"uint256"},{"internalType":"uint256","name":"N","type":"uint256"}],"name":"getBandsData","outputs":[{"components":[{"internalType":"int256","name":"id","type":"int256"},{"internalType":"uint256","name":"lowPrice","type":"uint256"},{"internalType":"uint256","name":"highPrice","type":"uint256"},{"internalType":"uint256","name":"collAmount","type":"uint256"},{"internalType":"uint256","name":"debtAmount","type":"uint256"}],"internalType":"struct CurveUsdView.Band[]","name":"bands","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"market","type":"address"},{"internalType":"int256","name":"from","type":"int256"},{"internalType":"int256","name":"to","type":"int256"}],"name":"getBandsData","outputs":[{"components":[{"internalType":"int256","name":"id","type":"int256"},{"internalType":"uint256","name":"lowPrice","type":"uint256"},{"internalType":"uint256","name":"highPrice","type":"uint256"},{"internalType":"uint256","name":"collAmount","type":"uint256"},{"internalType":"uint256","name":"debtAmount","type":"uint256"}],"internalType":"struct CurveUsdView.Band[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"market","type":"address"}],"name":"globalData","outputs":[{"components":[{"internalType":"address","name":"collateral","type":"address"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"int256","name":"activeBand","type":"int256"},{"internalType":"uint256","name":"A","type":"uint256"},{"internalType":"uint256","name":"totalDebt","type":"uint256"},{"internalType":"uint256","name":"ammPrice","type":"uint256"},{"internalType":"uint256","name":"basePrice","type":"uint256"},{"internalType":"uint256","name":"oraclePrice","type":"uint256"},{"internalType":"uint256","name":"minted","type":"uint256"},{"internalType":"uint256","name":"redeemed","type":"uint256"},{"internalType":"uint256","name":"monetaryPolicyRate","type":"uint256"},{"internalType":"uint256","name":"ammRate","type":"uint256"},{"internalType":"int256","name":"minBand","type":"int256"},{"internalType":"int256","name":"maxBand","type":"int256"}],"internalType":"struct CurveUsdView.GlobalData","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"market","type":"address"},{"internalType":"address","name":"user","type":"address"},{"internalType":"int256","name":"collChange","type":"int256"},{"internalType":"int256","name":"debtChange","type":"int256"},{"internalType":"bool","name":"isFull","type":"bool"},{"internalType":"uint256","name":"numBands","type":"uint256"}],"name":"healthCalculator","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"market","type":"address"},{"internalType":"uint256","name":"collateral","type":"uint256"},{"internalType":"uint256","name":"N","type":"uint256"}],"name":"maxBorrow","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"market","type":"address"},{"internalType":"uint256","name":"debt","type":"uint256"},{"internalType":"uint256","name":"N","type":"uint256"}],"name":"minCollateral","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"market","type":"address"},{"internalType":"address","name":"user","type":"address"}],"name":"userData","outputs":[{"components":[{"internalType":"bool","name":"loanExists","type":"bool"},{"internalType":"uint256","name":"collateralPrice","type":"uint256"},{"internalType":"uint256","name":"marketCollateralAmount","type":"uint256"},{"internalType":"uint256","name":"curveUsdCollateralAmount","type":"uint256"},{"internalType":"uint256","name":"debtAmount","type":"uint256"},{"internalType":"uint256","name":"N","type":"uint256"},{"internalType":"uint256","name":"priceLow","type":"uint256"},{"internalType":"uint256","name":"priceHigh","type":"uint256"},{"internalType":"uint256","name":"liquidationDiscount","type":"uint256"},{"internalType":"int256","name":"health","type":"int256"},{"internalType":"int256[2]","name":"bandRange","type":"int256[2]"},{"internalType":"uint256[][2]","name":"usersBands","type":"uint256[][2]"}],"internalType":"struct CurveUsdView.UserData","name":"","type":"tuple"}],"stateMutability":"view","type":"function"}],
493
509
  "networks": {
@@ -48,10 +48,23 @@ export const CRVUSD_TBTC_MARKET = (networkId: NetworkNumber): CrvUSDMarketData =
48
48
  createCollAssets: ['tBTC'],
49
49
  });
50
50
 
51
+ export const CRVUSD_SFRXETH_MARKET = (networkId: NetworkNumber): CrvUSDMarketData => ({
52
+ chainIds: [1],
53
+ label: 'sfrxETH',
54
+ shortLabel: 'sfrxETH',
55
+ value: CrvUSDVersions.sfrxETH,
56
+ collAsset: 'sfrxETH',
57
+ baseAsset: 'crvUSD',
58
+ controllerAddress: getConfigContractAddress('crvUSDsfrxETHController', networkId),
59
+ ammAddress: getConfigContractAddress('crvUSDsfrxETHAmm', networkId),
60
+ createCollAssets: ['sfrxETH'],
61
+ });
62
+
51
63
 
52
64
  export const CrvUsdMarkets = (networkId: NetworkNumber) => ({
53
65
  [CrvUSDVersions.wstETH]: CRVUSD_WSTETH_MARKET(networkId),
54
66
  [CrvUSDVersions.ETH]: CRVUSD_ETH_MARKET(networkId),
55
67
  [CrvUSDVersions.WBTC]: CRVUSD_WBTC_MARKET(networkId),
56
68
  [CrvUSDVersions.tBTC]: CRVUSD_TBTC_MARKET(networkId),
69
+ [CrvUSDVersions.sfrxETH]: CRVUSD_SFRXETH_MARKET(networkId),
57
70
  }) as const;
@@ -447,6 +447,7 @@ export const getMorphoAaveV3AccountData = async (
447
447
  assetsData: MorphoAaveV3AssetsData,
448
448
  delegator: string,
449
449
  selectedMarket: MorphoAaveV3MarketInfo,
450
+ customGetAggregatedDataFunction?: Function,
450
451
  ): Promise<MorphoAaveV3PositionData> => {
451
452
  if (!address) {
452
453
  throw new Error('No address provided.');
@@ -590,9 +591,11 @@ export const getMorphoAaveV3AccountData = async (
590
591
  }
591
592
  });
592
593
 
594
+ const aggregateFunction = customGetAggregatedDataFunction || aaveAnyGetAggregatedPositionData;
595
+
593
596
  payload = {
594
597
  ...payload,
595
- ...aaveAnyGetAggregatedPositionData({
598
+ ...aggregateFunction({
596
599
  usedAssets: payload.usedAssets, assetsData, eModeCategory, selectedMarket,
597
600
  }),
598
601
  };
@@ -0,0 +1,286 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+
5
+ import type BN from "bn.js";
6
+ import type { ContractOptions } from "web3-eth-contract";
7
+ import type { EventLog } from "web3-core";
8
+ import type { EventEmitter } from "events";
9
+ import type {
10
+ Callback,
11
+ PayableTransactionObject,
12
+ NonPayableTransactionObject,
13
+ BlockType,
14
+ ContractEventLog,
15
+ BaseContract,
16
+ } from "./types";
17
+
18
+ export interface EventOptions {
19
+ filter?: object;
20
+ fromBlock?: BlockType;
21
+ topics?: string[];
22
+ }
23
+
24
+ export type TokenExchange = ContractEventLog<{
25
+ buyer: string;
26
+ sold_id: string;
27
+ tokens_sold: string;
28
+ bought_id: string;
29
+ tokens_bought: string;
30
+ 0: string;
31
+ 1: string;
32
+ 2: string;
33
+ 3: string;
34
+ 4: string;
35
+ }>;
36
+ export type Deposit = ContractEventLog<{
37
+ provider: string;
38
+ amount: string;
39
+ n1: string;
40
+ n2: string;
41
+ 0: string;
42
+ 1: string;
43
+ 2: string;
44
+ 3: string;
45
+ }>;
46
+ export type Withdraw = ContractEventLog<{
47
+ provider: string;
48
+ amount_borrowed: string;
49
+ amount_collateral: string;
50
+ 0: string;
51
+ 1: string;
52
+ 2: string;
53
+ }>;
54
+ export type SetRate = ContractEventLog<{
55
+ rate: string;
56
+ rate_mul: string;
57
+ time: string;
58
+ 0: string;
59
+ 1: string;
60
+ 2: string;
61
+ }>;
62
+ export type SetFee = ContractEventLog<{
63
+ fee: string;
64
+ 0: string;
65
+ }>;
66
+ export type SetAdminFee = ContractEventLog<{
67
+ fee: string;
68
+ 0: string;
69
+ }>;
70
+
71
+ export interface CrvUSDsfrxETHAmm extends BaseContract {
72
+ constructor(
73
+ jsonInterface: any[],
74
+ address?: string,
75
+ options?: ContractOptions
76
+ ): CrvUSDsfrxETHAmm;
77
+ clone(): CrvUSDsfrxETHAmm;
78
+ methods: {
79
+ set_admin(_admin: string): NonPayableTransactionObject<void>;
80
+
81
+ coins(i: number | string | BN): NonPayableTransactionObject<string>;
82
+
83
+ price_oracle(): NonPayableTransactionObject<string>;
84
+
85
+ dynamic_fee(): NonPayableTransactionObject<string>;
86
+
87
+ get_rate_mul(): NonPayableTransactionObject<string>;
88
+
89
+ get_base_price(): NonPayableTransactionObject<string>;
90
+
91
+ p_current_up(n: number | string | BN): NonPayableTransactionObject<string>;
92
+
93
+ p_current_down(
94
+ n: number | string | BN
95
+ ): NonPayableTransactionObject<string>;
96
+
97
+ p_oracle_up(n: number | string | BN): NonPayableTransactionObject<string>;
98
+
99
+ p_oracle_down(n: number | string | BN): NonPayableTransactionObject<string>;
100
+
101
+ get_p(): NonPayableTransactionObject<string>;
102
+
103
+ read_user_tick_numbers(
104
+ user: string
105
+ ): NonPayableTransactionObject<[string, string]>;
106
+
107
+ can_skip_bands(
108
+ n_end: number | string | BN
109
+ ): NonPayableTransactionObject<boolean>;
110
+
111
+ active_band_with_skip(): NonPayableTransactionObject<string>;
112
+
113
+ has_liquidity(user: string): NonPayableTransactionObject<boolean>;
114
+
115
+ deposit_range(
116
+ user: string,
117
+ amount: number | string | BN,
118
+ n1: number | string | BN,
119
+ n2: number | string | BN
120
+ ): NonPayableTransactionObject<void>;
121
+
122
+ withdraw(
123
+ user: string,
124
+ frac: number | string | BN
125
+ ): NonPayableTransactionObject<[string, string]>;
126
+
127
+ get_dy(
128
+ i: number | string | BN,
129
+ j: number | string | BN,
130
+ in_amount: number | string | BN
131
+ ): NonPayableTransactionObject<string>;
132
+
133
+ get_dxdy(
134
+ i: number | string | BN,
135
+ j: number | string | BN,
136
+ in_amount: number | string | BN
137
+ ): NonPayableTransactionObject<[string, string]>;
138
+
139
+ get_dx(
140
+ i: number | string | BN,
141
+ j: number | string | BN,
142
+ out_amount: number | string | BN
143
+ ): NonPayableTransactionObject<string>;
144
+
145
+ get_dydx(
146
+ i: number | string | BN,
147
+ j: number | string | BN,
148
+ out_amount: number | string | BN
149
+ ): NonPayableTransactionObject<[string, string]>;
150
+
151
+ "exchange(uint256,uint256,uint256,uint256)"(
152
+ i: number | string | BN,
153
+ j: number | string | BN,
154
+ in_amount: number | string | BN,
155
+ min_amount: number | string | BN
156
+ ): NonPayableTransactionObject<[string, string]>;
157
+
158
+ "exchange(uint256,uint256,uint256,uint256,address)"(
159
+ i: number | string | BN,
160
+ j: number | string | BN,
161
+ in_amount: number | string | BN,
162
+ min_amount: number | string | BN,
163
+ _for: string
164
+ ): NonPayableTransactionObject<[string, string]>;
165
+
166
+ "exchange_dy(uint256,uint256,uint256,uint256)"(
167
+ i: number | string | BN,
168
+ j: number | string | BN,
169
+ out_amount: number | string | BN,
170
+ max_amount: number | string | BN
171
+ ): NonPayableTransactionObject<[string, string]>;
172
+
173
+ "exchange_dy(uint256,uint256,uint256,uint256,address)"(
174
+ i: number | string | BN,
175
+ j: number | string | BN,
176
+ out_amount: number | string | BN,
177
+ max_amount: number | string | BN,
178
+ _for: string
179
+ ): NonPayableTransactionObject<[string, string]>;
180
+
181
+ get_y_up(user: string): NonPayableTransactionObject<string>;
182
+
183
+ get_x_down(user: string): NonPayableTransactionObject<string>;
184
+
185
+ get_sum_xy(user: string): NonPayableTransactionObject<[string, string]>;
186
+
187
+ get_xy(user: string): NonPayableTransactionObject<[string[], string[]]>;
188
+
189
+ get_amount_for_price(
190
+ p: number | string | BN
191
+ ): NonPayableTransactionObject<[string, boolean]>;
192
+
193
+ set_rate(rate: number | string | BN): NonPayableTransactionObject<string>;
194
+
195
+ set_fee(fee: number | string | BN): NonPayableTransactionObject<void>;
196
+
197
+ set_admin_fee(fee: number | string | BN): NonPayableTransactionObject<void>;
198
+
199
+ reset_admin_fees(): NonPayableTransactionObject<void>;
200
+
201
+ set_callback(
202
+ liquidity_mining_callback: string
203
+ ): NonPayableTransactionObject<void>;
204
+
205
+ admin(): NonPayableTransactionObject<string>;
206
+
207
+ A(): NonPayableTransactionObject<string>;
208
+
209
+ fee(): NonPayableTransactionObject<string>;
210
+
211
+ admin_fee(): NonPayableTransactionObject<string>;
212
+
213
+ rate(): NonPayableTransactionObject<string>;
214
+
215
+ active_band(): NonPayableTransactionObject<string>;
216
+
217
+ min_band(): NonPayableTransactionObject<string>;
218
+
219
+ max_band(): NonPayableTransactionObject<string>;
220
+
221
+ admin_fees_x(): NonPayableTransactionObject<string>;
222
+
223
+ admin_fees_y(): NonPayableTransactionObject<string>;
224
+
225
+ price_oracle_contract(): NonPayableTransactionObject<string>;
226
+
227
+ bands_x(arg0: number | string | BN): NonPayableTransactionObject<string>;
228
+
229
+ bands_y(arg0: number | string | BN): NonPayableTransactionObject<string>;
230
+
231
+ liquidity_mining_callback(): NonPayableTransactionObject<string>;
232
+ };
233
+ events: {
234
+ TokenExchange(cb?: Callback<TokenExchange>): EventEmitter;
235
+ TokenExchange(
236
+ options?: EventOptions,
237
+ cb?: Callback<TokenExchange>
238
+ ): EventEmitter;
239
+
240
+ Deposit(cb?: Callback<Deposit>): EventEmitter;
241
+ Deposit(options?: EventOptions, cb?: Callback<Deposit>): EventEmitter;
242
+
243
+ Withdraw(cb?: Callback<Withdraw>): EventEmitter;
244
+ Withdraw(options?: EventOptions, cb?: Callback<Withdraw>): EventEmitter;
245
+
246
+ SetRate(cb?: Callback<SetRate>): EventEmitter;
247
+ SetRate(options?: EventOptions, cb?: Callback<SetRate>): EventEmitter;
248
+
249
+ SetFee(cb?: Callback<SetFee>): EventEmitter;
250
+ SetFee(options?: EventOptions, cb?: Callback<SetFee>): EventEmitter;
251
+
252
+ SetAdminFee(cb?: Callback<SetAdminFee>): EventEmitter;
253
+ SetAdminFee(
254
+ options?: EventOptions,
255
+ cb?: Callback<SetAdminFee>
256
+ ): EventEmitter;
257
+
258
+ allEvents(options?: EventOptions, cb?: Callback<EventLog>): EventEmitter;
259
+ };
260
+
261
+ once(event: "TokenExchange", cb: Callback<TokenExchange>): void;
262
+ once(
263
+ event: "TokenExchange",
264
+ options: EventOptions,
265
+ cb: Callback<TokenExchange>
266
+ ): void;
267
+
268
+ once(event: "Deposit", cb: Callback<Deposit>): void;
269
+ once(event: "Deposit", options: EventOptions, cb: Callback<Deposit>): void;
270
+
271
+ once(event: "Withdraw", cb: Callback<Withdraw>): void;
272
+ once(event: "Withdraw", options: EventOptions, cb: Callback<Withdraw>): void;
273
+
274
+ once(event: "SetRate", cb: Callback<SetRate>): void;
275
+ once(event: "SetRate", options: EventOptions, cb: Callback<SetRate>): void;
276
+
277
+ once(event: "SetFee", cb: Callback<SetFee>): void;
278
+ once(event: "SetFee", options: EventOptions, cb: Callback<SetFee>): void;
279
+
280
+ once(event: "SetAdminFee", cb: Callback<SetAdminFee>): void;
281
+ once(
282
+ event: "SetAdminFee",
283
+ options: EventOptions,
284
+ cb: Callback<SetAdminFee>
285
+ ): void;
286
+ }